var rollon = 0;
function submitToMCPA(){
var temp;
var lang = "EN";
if(document.form1.halfterm.checked==true) {
var sMCPAServer ="#";
} else
 {
var sMCPAServer ="#";
}
 var sLanguageVar;
 temp = document.forms['form1'].depart.value;
 var sDepartTime = temp.substring(0,6) + temp.substring(8,10);
 temp = document.forms['form1'].dreturn.value;
 var sReturnTime = temp.substring(0,6) + temp.substring(8,10);
 var sDepartVar = "";
 var sReturnVar = "";
 sLanguageVar = (document.form1.country.options[document.form1.country.selectedIndex].value=="") ? "UNITEDKINGDOM" : document.form1.country.options[document.form1.country.selectedIndex].value;
 if(sDepartTime.toLowerCase()!=("dd-mm-yyyy")){
  sDepartVar += "20" + 
    sDepartTime.substring(6) +
    sDepartTime.substring(3,5) +
    sDepartTime.substring(0,2) +
    padString(document.form1.d_heure.options[document.form1.d_heure.selectedIndex].value, 2) + 
    padString(document.form1.d_min.options[document.form1.d_min.selectedIndex].value, 2);
   }
 else
   {
   sDepartVar = "";
   }
 if(sReturnTime.toLowerCase()!=("dd-mm-yyyy")){
   sReturnVar += "20" + 
    sReturnTime.substring(6) +
    sReturnTime.substring(3,5) +
    sReturnTime.substring(0,2) +
    padString(document.form1.r_heure.options[document.form1.r_heure.selectedIndex].value, 2) + 
    padString(document.form1.r_min.options[document.form1.r_min.selectedIndex].value, 2);
   }
 else
  {
   sReturnVar = "";
   }
 var sURL = sMCPAServer;
 var sFOCAVar = (document.forms['form1'].direction[0].checked) ? sDepartVar : sReturnVar ;
 var sCAFOVar =  (document.forms['form1'].direction[0].checked) ? sReturnVar : sDepartVar ;
sURL+="PLLME=" + sLanguageVar;
if(document.forms['form1'].direction[0].checked){
 sURL += "&DIRECTION=enfr";
 if (document.forms['form1'].NORET.checked != true)
 {
  sURL+="&FOCAYmdhm=" + sFOCAVar;
  sURL+="&CAFOYmdhm=" + sCAFOVar;
 }
 else
 {
   sURL+="&FOCAYmdhm=" + sFOCAVar;
 }
}
else  
{
 sURL += "&DIRECTION=fren";
 if (document.forms['form1'].NORET.checked != true)
 {
 sURL+="&CAFOYmdhm=" + sCAFOVar;
 sURL+="&FOCAYmdhm=" + sFOCAVar;
 }
 else
 {
 sURL+="&CAFOYmdhm=" + sCAFOVar;
 }
}
window.open(sURL , "booking");
} 
function y2k(number)
{ return (number < 1000) ? number + 1900 : number; }
var today = new Date();
var day   = today.getDate();
var month = today.getMonth();
var year  = y2k(today.getYear());
var curfield = 1;
function padout(number) {
return (number < 10) ? '0' + number : number;
}
function restart() {
eval("document.form1."+curfield+".value = '' + padout(day) + '-' + padout(month - 0 + 1) + '-' + year;");
mywindow.close();
}
function newcal(x,y) {
	if (x != 'dreturn')
	{
		winCalendBox('GB', document.form1[x]);
	}
	else
	{
		winCalendDep('GB', document.form1[x]);
	}
 }
function padString(pSource, pLen) {
    while(pSource.length < pLen){
        pSource = "0" + pSource;
    }
    return pSource;
}

var chosen_field = null;
var Cal_way = 0;

function compareDates(date1,dateformat1,date2,dateformat2) {
	var d1 = getDateFromFormat(date1,dateformat1);
	var d2 = getDateFromFormat(date2,dateformat2);
	if (d1==0 || d2==0) {
		return -1;
		}
	else if (d1 > d2) {
		return 1;
		}
	return 0;
	}

function validateReturnDate()
{
	var dreturn = document.form1.dreturn.value;
	var depart = document.form1.depart.value;
	if (dreturn.length != 10)
	{
		alert("Invalid date, please enter date of the format dd-mm-yyyy.");
	}
	else
	{
		if (dreturn.substring(3,5) == depart.substring(3,5))
		{
			if (compareDates(depart.substring(0,2) + ' ' + depart.substring(3,5) + ' ' + depart.substring(6,10), 'dd mm y', dreturn.substring(0,2) + ' ' + dreturn.substring(3,5) + ' ' + dreturn.substring(6,10), 'dd mm y')==1)
			{
				alert('Please check the chronological order of your travel dates.');
			}		
		}

		if (dreturn.substring(3,5) < depart.substring(3,5))
		{
			alert('Please check the chronological order of your travel dates.');
		}
	}
}

function validateDepartDate()
{
	var dreturn = document.form1.dreturn.value;
	var depart = document.form1.depart.value;
	if (depart.length != 10)
	{
		alert("Invalid date, please enter date of the format dd-mm-yyyy.");
	}
	else
	{
		if (dreturn.substring(3,5) == depart.substring(3,5))
		{
			if (compareDates(depart.substring(0,2) + ' ' + depart.substring(3,5) + ' ' + depart.substring(6,10), 'dd mm y', dreturn.substring(0,2) + ' ' + dreturn.substring(3,5) + ' ' + dreturn.substring(6,10), 'dd mm y') == 1)
			{
				document.form1.dreturn.value = document.form1.depart.value;
			}		
		}
		if (dreturn.substring(3,5) < depart.substring(3,5))
		{
			document.form1.dreturn.value = document.form1.depart.value;
		}
	}
}

function Calendar_result(year,month,day) {
  var theForm1 = document.frm1;
	var dreturn = document.form1.dreturn.value;
	var depart = document.form1.depart.value;

  if(Cal_way <= 0) //Depart
  {
		chosen_field.value = padString(day.toString(), 2) + "-" + padString(month.toString(), 2) + "-" + year.toString().substring(0,4);

		document.form1.dreturn.value = padString(day.toString(), 2) + "-" + padString(month.toString(), 2) + "-" + year.toString().substring(0,4);
  }

  if(Cal_way >= 1) //Return
  {
	  if (depart.toLowerCase()!='dd-mm-yyyy')
	  {
		if (depart.substring(3,5) == padString(month.toString(), 2))
		{
			if (compareDates(depart.substring(0,2) + ' ' + depart.substring(3,5) + ' ' + depart.substring(6,10), 'dd mm y', padString(day.toString(), 2) + ' ' + padString(month.toString(), 2) + ' ' + year.toString().substring(0,4), 'dd mm y')==1)
			{
				alert('Please check the chronological order of your travel dates.');
			}
			else
			{
				chosen_field.value = padString(day.toString(), 2) + "-" + padString(month.toString(), 2) + "-" + year.toString().substring(0,4);		
			}
		}
		if (padString(month.toString(), 2) < depart.substring(3,5))
		{
			if (compareDates(depart.substring(0,2) + ' ' + depart.substring(3,5) + ' ' + depart.substring(6,10), 'dd mm yyyy', padString(day.toString(), 2) + ' ' + padString(month.toString(), 2) + ' ' + year.toString().substring(0,4), 'dd mm yyyy')==1)
			{
				alert('Please check the chronological order of your travel dates.');
			}
			else
			{
				chosen_field.value = padString(day.toString(), 2) + "-" + padString(month.toString(), 2) + "-" + year.toString().substring(0,4);		
			}
		}
		else
		{
			chosen_field.value = padString(day.toString(), 2) + "-" + padString(month.toString(), 2) + "-" + year.toString().substring(0,4);		
		}
	  }
	  else
	  {
		  chosen_field.value = padString(day.toString(), 2) + "-" + padString(month.toString(), 2) + "-" + year.toString().substring(0,4);
	  }
	}
 return true;
}
function Calend_call(mode,lang) {
 var smonth, syear;
 var vDate = new Date();
 vDate.setDate(1);
 Cal_way = mode;
 if(mode >= 1) {
  var theForm2 = document.form1;
  var p_mm, p_yy;
  p_mm = theForm2.depart.value;
  if (p_mm.toLowerCase() != 'dd-mm-yyyy')
  {
	p_yy = p_mm.substring(7,9);
	p_mm = p_mm.substring(3,5);
  }
  else
  {
	p_yy = null;
	p_mm = null;
  }
      smonth = p_mm;
      syear  = p_yy;
 } else { smonth=null; syear=null; }
 Calendar_popup(lang,smonth,syear);
}
function winCalendBox(lang, pField) { 
 chosen_field = pField;
 Calend_call(0,lang); 
 }
function winCalendDep(lang, pField)
{ 
 chosen_field = pField;
 Calend_call(1,lang); 
}

var Cleaner_status = false;
function winCleaner() {
 if(Cleaner_status == true) Calendar_close();
 Cleaner_status = true;
 return (true);
}

var Calendar_Win = null;
var Calendar_Lang = "FR";
var Calendar_Year = 0;
var Calendar_Month = 0;
var Calendar_Maxy = 0;
var Calendar_Top = 100;      //top indent of calendar(was 46)
var Calendar_Left = 100;    //left indent of calendar(was 0)
new Calendar(); // For compatibility with old Navigator, have to create and discard one object before the prototype object exists.
Calendar.prototype.cal_wr = function(text) { this.cWinCal.document.write(text); }
Calendar.prototype.cal_head = function() {
 var lnDAY = 2; // truncate to 2 or 3
 var vHcod = "<TR bgcolor="+this.cNmDayBg+">";
 for(vsd=this.startDay,i=0; i<7; i++) {
 vHcod += "<TD width=21 align=center class=cadaynam><B><FONT size=1 face=\"Arial,Verdana\" color="+this.cNmDayCo+" class=cadaynam>"+this.nmDAY[vsd].substring(0,lnDAY)+"</FONT></B></TD>";
 if(++vsd >= 7) vsd = 0;
 }
 vHcod += "</TR>\n";
 return vHcod;
}
Calendar.prototype.cal_weekclass = function(vday) {
 if(vday==0 || vday==6) return (" bgcolor="+this.cWkDayBg+" class=cadaywee" );
 return (" class=cadaynum" );
}
Calendar.prototype.cal_days = function() {
 var vDate = new Date();
 vDate.setDate(1);
 vDate.setMonth(this.cMonth-1);
 vDate.setFullYear(this.cYear);
 var vFirstDay=vDate.getDay();
 var vLastDay=0;
 var vNowYear = this.cNow.getFullYear();
 var vNowMonth = this.cNow.getMonth()+1;
 var vNowDay = this.cNow.getDate();
 var vNowYMD = 0;
 var vLastYMD = 0;
 var vNW=0;
 var vsd=0;
 var vDay=0;
 var vOnFirstDay=false;
 var vDcod="";
 vNowYMD = (vNowYear*10000)+(vNowMonth*100)+vNowDay;
 vLastYMD = ((vNowYear+this.MaxY)*10000)+(vNowMonth*100)+vNowDay;
 if(this.cMonth== 2
    &&(((this.cYear%4)==0&&(this.cYear%100)!= 0)||(this.cYear%400)==0))
  vLastDay=29; /* February on Leap year */
 else vLastDay=this.ndMON[this.cMonth-1];
 vOnFirstDay=false;
 vDcod += "<TR bgcolor="+this.cNuDayBg+">";
 for(vsd=this.startDay,j=0; j<7; j++) { // Last days of the 1st week
  vDcod += "<TD align=center"+this.cal_weekclass(vsd)+">";
  if(!vOnFirstDay && vsd != vFirstDay) {
  vDcod += "<FONT size=1 face=\"Arial,Verdana\" class=cadaybad>&nbsp;</FONT>";
  } else {
  vOnFirstDay=true;
  vDay += 1;
  vDayYMD = (this.cYear*10000)+(this.cMonth*100)+vDay;
  if(vDayYMD<vNowYMD || vDayYMD>vLastYMD) {
   vDcod += "<FONT size=1 face=\"Arial,Verdana\" color="+this.cBaDayCo+" class=cadaybad>";
   if(vDay <= 9) vDcod += "&nbsp;";
   vDcod += vDay;
   vDcod += "</FONT>";
  } else {
   vDcod += "<B><FONT size=1 face=\"Arial,Verdana\" color="+this.cNuDayCo+" class=cadaynum>";
   vDcod += "<A href='#' "+"onClick=\"Javascript:if(opener && opener.Calendar_result) opener.Calendar_result("+this.cYear+","+this.cMonth+","+vDay+"); window.close();\">";
   if(vDayYMD==vNowYMD) vDcod += "<FONT color=red>";
   if(vDay <= 9) vDcod += "&nbsp;";
   vDcod += vDay;
   if(vDayYMD==vNowYMD) vDcod += "</FONT>";
   vDcod += "</A>";
   vDcod += "</FONT></B>";
  }
  }
  vDcod += "</TD>";
  if(++vsd >= 7) vsd = 0;
 }
 vDcod += "</TR>\n";
 for(nWK=1; nWK<6; nWK++) { // The rest of the weeks
  vDcod += "<TR bgcolor="+this.cNuDayBg+">";
  for(vsd=this.startDay,j=0; j<7; j++) {
   vDcod += "<TD align=center"+this.cal_weekclass(vsd)+">";
   vDay += 1;
   if(vDay > vLastDay) {
   // And last days after the last week
   vDcod += "<FONT size=1 face=\"Arial,Verdana\" class=cadaybad>&nbsp;</FONT>";
   } else {
   vDayYMD = (this.cYear*10000)+(this.cMonth*100)+vDay;
   if(vDayYMD<vNowYMD || vDayYMD>vLastYMD) {
    vDcod += "<FONT size=1 face=\"Arial,Verdana\" color="+this.cBaDayCo+" class=cadaybad>";
    if(vDay <= 9) vDcod += "&nbsp;";
    vDcod += vDay;
    vDcod += "</FONT>";
   } else {
    vDcod += "<B><FONT size=1 face=\"Arial,Verdana\" color="+this.cNuDayCo+" class=cadaynum>";
    vDcod += "<A href='#' "+"onClick=\"Javascript:if(opener && opener.Calendar_result) opener.Calendar_result("+this.cYear+","+this.cMonth+","+vDay+"); window.close();\">";
    if(vDayYMD==vNowYMD) vDcod +="<FONT color=red>";
    if(vDay <= 9) vDcod += "&nbsp;";
    vDcod += vDay;
    if(vDayYMD==vNowYMD) vDcod +="</FONT>";
    vDcod += "</A>";
    vDcod += "</FONT></B>";
   }
   }
   vDcod += "</TD>";
   if(++vsd >= 7) vsd = 0;
  }
  vDcod += "</TR>\n";
 }
 
 return vDcod;
}
Calendar.prototype.cal_show = function() {
 var prevMM = this.cMonth;
 var nextMM = this.cMonth;
 var prevYY = this.cYear;
 var nextYY = this.cYear;
 var vTcod = "";
 
 this.cWinCal.document.open();
 // Setup the page...
 vTcod  = "<HTML>\n<HEAD>\n";
 vTcod += "<META http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">\n";
 vTcod += "<META http-equiv=\"Content-Script-Type\" content=\"text/javascript\">\n";
 vTcod += "</HEAD>\n";
 this.cal_wr(vTcod);
 vTcod  = "<STYLE type=\"text/css\">\n<!--\n";
 vTcod += "body { margin:0px; padding:0px; border-width:0px; border-style:outset; background-color:"+this.cBodyBg+"; font-family:arial,verdana; font-size:8pt; font-weight:normal; color:"+this.cBodyText+" }\n";
 vTcod += "a:link { text-decoration:none; color:"+this.cBodyLink+" }\n";
 vTcod += "a:visited { text-decoration:none; color:"+this.cBodyLink+" }\n";
 vTcod += "a:active { text-decoration:none; color:"+this.cBodyLink+" }\n";
 vTcod += "a:hover { text-decoration:underline }\n";
 vTcod += "table.cabodybg { background-color:"+this.cBodyBg+" }\n";
 vTcod += "table.caaround { background-color:"+this.cAroundBg+" }\n";
 vTcod += "table.caboard  { background-color:"+this.cBoardBg+" }\n";
 vTcod += "table.cacalend { background-color:"+this.cCalenBg+" }\n";
 vTcod += "td { font-family:arial,verdana; font-size:9pt; font-style:normal; font-weight:normal; color:"+this.cBodyText+" }\n";
 vTcod += "td.cabodybg { background-color:"+this.cBodyBg+" }\n";
 vTcod += "td.caaround { background-color:"+this.cAroundBg+" }\n";
 vTcod += "td.caselect { background-color:"+this.cSelectBg+" }\n";
 vTcod += "font.caselect { font-family:arial,verdana; font-size:8pt; font-style:normal; font-weight:normal; color:"+this.cBodyText+" }\n";
 vTcod += "td.camonthy { background-color:"+this.cTitleBg+" }\n";
 vTcod += "font.camonthy { font-family:arial,verdana; font-size:9pt; font-style:normal; font-weight:bold; color:"+this.cBodyText+" }\n";
 vTcod += "td.caprvnxt { background-color:"+this.cTitleBg+" }\n";
 vTcod += "font.caprvnxt { font-family:wingdings; font-size:10pt; font-style:normal; font-weight:normal; color:"+this.cBodyText+" }\n";
 vTcod += "td.capnyear { background-color:"+this.cTitleBg+" }\n";
 vTcod += "font.capnyear { font-family:arial,verdana; font-size:9pt; font-style:normal; font-weight:normal; color:"+this.cBodyText+" }\n";
 vTcod += "td.cadaynam { background-color:"+this.cNmDayBg+" }\n";
 vTcod += "font.cadaynam { font-family:arial,verdana; font-size:9pt; font-style:normal; font-weight:bold; color:"+this.cNmDayCo+" }\n";
 vTcod += "td.cadaywee { background-color:"+this.cWkDayBg+" }\n";
 vTcod += "td.cadaynum { background-color:"+this.cNuDayBg+" }\n";
 vTcod += "font.cadaynum { font-family:arial,verdana; font-size:9pt; font-style:normal; font-weight:bold; color:"+this.cNuDayCo+" }\n";
 vTcod += "font.cadaybad { font-family:arial,verdana; font-size:9pt; font-style:normal; font-weight:normal; color:"+this.cBaDayCo+" }\n";
 vTcod += "select { background-color:"+this.cSelectBg+"; font-family:arial,verdana; font-size:8pt; font-style:normal; font-weight:normal; color:"+this.cBodyText+" }\n";
 vTcod += "// -->\n</STYLE>\n";
 this.cal_wr(vTcod);
 prevMM = this.cMonth-1; prevYY = this.cYear;
 if(prevMM <= 0) { prevMM=12; --prevYY; }
 nextMM = this.cMonth+1; nextYY = this.cYear;
 if(nextMM >= 13) { nextMM=1; ++nextYY; }
 
 vTcod = "<BODY topmargin=0 leftmargin=0 rightmargin=0 marginheight=0 marginwidth=0 link="+this.cBodyLink+" vlink="+this.cBodyLink+" alink="+this.cBodyLink+" text="+this.cBodyText+" bgcolor="+this.cBodyBg+">\n";
 this.cal_wr(vTcod);
 vTcod = "<TABLE width=\"100%\" height=\"100%\" border=0 cellspacing=0 cellpadding=0 align=center valign=top bgcolor="+this.cBodyBg+" class=cabodybg><TR><TD align=center valign=middle class=cabodybg>\n";
 vTcod += "<FORM name=\"CalForm\">";
 vTcod += "<TABLE width=176 border=0 cellspacing=1 cellpadding=0 align=center valign=middle bgcolor="+this.cAroundBg+" class=caaround>";
 vTcod += "<TR><TD align=center class=caaround>\n";
 vTcod += "<TABLE width=174 border=0 cellspacing=0 cellpadding=0 align=center valign=top bgcolor="+this.cBoardBg+" class=caboard>\n";
 vTcod += "<TR bgcolor="+this.cSelectBg+">";
 vTcod += "<TD colspan=3 align=center class=caselect>";
 vTcod += "<FONT size=1 face=\"Arial,Verdana\" class=caselect>";
 vTcod += "<SELECT name=\"Month\"";
 vTcod += " onChange=\"if(window.opener && window.opener.Calendar_build) window.opener.Calendar_build(parseInt(document.CalForm.Month.options[document.CalForm.Month.selectedIndex].value,10),"+this.cYear+");\">";
 sel = this.cMonth;
 for(mm=1; mm<=12; mm++) {
  vTcod += '<OPTION value="' + mm + '"';
  if(mm == sel) vTcod += " selected";
  vTcod += ">"+this.nmMON[mm-1];
 }
 vTcod += "</SELECT><SELECT name=\"Year\"";
 vTcod += " onChange=\"if(window.opener && window.opener.Calendar_build) window.opener.Calendar_build("+this.cMonth+",parseInt(document.CalForm.Year.options[document.CalForm.Year.selectedIndex].value,10));\">";
 sel = this.cYear;
 min = (sel); max = (sel+this.MaxY);
 for(yy=min; yy<=max; yy++) {
  vTcod += '<OPTION value="' + yy + '"';
  if(yy == sel) vTcod += " selected";
  vTcod += ">"+yy;
 }
 vTcod += "</SELECT></FONT></TD></TR>\n";
 vTcod += "<TR bgcolor="+this.cTitleBg+">";
 vTcod += "<TD width=\"9%\" align=left class=caprvnxt>";
 vTcod += "<FONT size=1 face=\"Wingdings\" class=caprvnxt>";
 vTcod += "<A href=\"Javascript:if(window.opener && window.opener.Calendar_build) window.opener.Calendar_build("+prevMM+","+prevYY+");\">ç</A>";
 vTcod += "</FONT></TD>";
 vTcod += "<TD width=\"82%\" align=center class=camonthy>";
 vTcod += "<B><FONT size=1 face=\"Arial,Verdana\" class=camonthy>";
 vTcod += this.cMonthName+" "+this.cYear;
 vTcod += "</FONT></B></TD>";
 vTcod += "<TD width=\"9%\" align=right class=caprvnxt>";
 vTcod += "<FONT size=1 face=\"Wingdings\" class=caprvnxt>";
 vTcod += "<A href=\"Javascript:if(window.opener && window.opener.Calendar_build) window.opener.Calendar_build("+nextMM+","+nextYY+");\">è</A>";
 vTcod += "</FONT></TD></TR>\n";
 vTcod += "</TABLE>\n";
 vTcod += "</TD></TR>\n";
 vTcod += "<TR><TD align=center class=caaround>\n";
 this.cal_wr(vTcod);
 vTcod  = "<TABLE width=174 border=0 cellspacing=1 cellpadding=1 align=center valign=top bgcolor="+this.cCalenBg+" class=cacalend>\n"+this.cal_head()+this.cal_days()+"</TABLE>\n";
 vTcod += "</TD></TR></TABLE></FORM>\n";
 vTcod += "</TD></TR></TABLE>\n";
 vTcod += "</BODY>\n</HTML>\n";
 this.cal_wr(vTcod);
 this.cWinCal.document.close();
}
function Calendar(winCal,month,year,lang,maxy) {
 if(winCal==null || month==null || year==null) return;
 this.GB_Title = "Calendar";
 this.GB_nmMON = ["January","February","March","April","May","June","July","August","September","October","November","December"];
 this.ndMON = [31,28,31,30,31,30,31,31,30,31,30,31];
 this.GB_nmDAY = ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];
 this.cBodyLink="#000000"; // color of body links
 this.cBodyText="#000000"; // color of body texts
 this.cBodyBg="#e0e0e0";  // bgcolor of body
 this.cAroundBg="#ffffff"; // bgcolor around calendar
 this.cBoardBg="#e0e0e0"; // bgcolor of the cmd board
 this.cSelectBg="#e0e0e0"; // bgcolor of the form
 this.cTitleBg="#e0e0e0"; // bgcolor of the title
 this.cCalenBg="#ffffff"; // bgcolor of the calendar table
 this.cNmDayBg="#cccde1"; // bgcolor of days names
 this.cNmDayCo="#003893"; // color of days names
 this.cNuDayBg="#b1e3d8"; // bgcolor of days numbers
 this.cNuDayCo="#000000"; // color of days numbers
 this.cWkDayBg="#f6e989"; // bgcolor of weekend days
 this.cBaDayCo="#000000"; // color of bad days numbers
 this.Title = this.GB_Title;
 this.nmMON = this.GB_nmMON;
 this.nmDAY = this.GB_nmDAY;
 this.cWinCal = winCal;
 this.startDay = 1;  // 0=Sunday, 1=Monday
 this.MaxY = 3; // Max year to be selected (default maxy)
 this.cNow = new Date();
 this.cMonthName = this.nmMON[month-1];
 this.cMonth = month;
 this.cYear = year;
}
function Calendar_build(month,year) {
 if(Calendar_Win != null) {
 n_cal=new Calendar(Calendar_Win,month,year,Calendar_Lang,Calendar_Maxy);
 n_cal.cal_show();
 Calendar_Win.focus();
 }
}
function Calendar_popup() {
 var p_lang  = arguments[0]; // GB,FR,DE,NL
 var p_month = arguments[1]; // 1-12 string
 var p_year  = arguments[2]; // 2001 string
 var p_maxy  = arguments[3]; // 1 num
 var p_now = new Date();
 var v_month = 0;
 var v_year = 0;
 if(p_lang != null) { Calendar_Lang = p_lang; }
 if(p_month != null && p_month != "")
  Calendar_Month = parseInt(p_month,10);
 else Calendar_Month = 0;
 if(Calendar_Month <= 0 || Calendar_Month > 12)
  Calendar_Month = p_now.getMonth()+1;
 if(p_year != null && p_year != "")
  Calendar_Year = parseInt(p_year,10);
 else Calendar_Year = 0;
 if(Calendar_Year <= 2000) Calendar_Year = p_now.getFullYear();
 if(p_maxy != null && p_maxy != 0)
  Calendar_Maxy = p_maxy;
 else Calendar_Maxy = 1;
 Calendar_Win = window.open("","Calendar","width=178,height=170,top="+Calendar_Top+",left="+Calendar_Left+",status=no,resizable=no,scrollbars=no,location=no,status=no,statusbar=no,toolbar=no,menubar=no,directories=no,dependent=yes");
 Calendar_Win.opener = self;
 Calendar_build(Calendar_Month,Calendar_Year);
}
function Calendar_close() { if(Calendar_Win != null && Calendar_Win.close) Calendar_Win.close(); }

// ------------------------------------------------------------------
// Utility functions for parsing in getDateFromFormat()
// ------------------------------------------------------------------
function _isInteger(val) {
	var digits = "1234567890";
	for (var i=0; i < val.length; i++) {
		if (digits.indexOf(val.charAt(i)) == -1) { return false; }
		}
	return true;
	}
function _getInt(str,i,minlength,maxlength) {
	for (x=maxlength; x>=minlength; x--) {
		var token = str.substring(i,i+x);
		if (token.length < minlength) {
			return null;
			}
		if (_isInteger(token)) { 
			return token;
			}
		}
	return null;
	}

function getDateFromFormat(val,format) {
	val = val+"";
	format = format+"";
	var i_val = 0;
	var i_format = 0;
	var c = "";
	var token = "";
	var token2= "";
	var x,y;
	var year  = now.getYear();
	var month = now.getMonth()+1;
	var date  = now.getDate();
	var hh    = now.getHours();
	var mm    = now.getMinutes();
	var ss    = now.getSeconds();
	var ampm  = "";
	
	while (i_format < format.length) {
		// Get next token from format string
		c = format.charAt(i_format);
		token = "";
		while ((format.charAt(i_format) == c) && (i_format < format.length)) {
			token += format.charAt(i_format);
			i_format++;
			}
		// Extract contents of value based on format token
		if (token=="yyyy" || token=="yy" || token=="y") {
			if (token=="yyyy") { x=4;y=4; }
			if (token=="yy")   { x=2;y=2; }
			if (token=="y")    { x=2;y=4; }
			year = _getInt(val,i_val,x,y);
			if (year == null) { return 0; }
			i_val += year.length;
			if (year.length == 2) {
				if (year > 70) { year = 1900+(year-0); }
				else { year = 2000+(year-0); }
				}
			}
		else if (token=="MMM"){
			month = 0;
			for (var i=0; i<MONTH_NAMES.length; i++) {
				var month_name = MONTH_NAMES[i];
				if (val.substring(i_val,i_val+month_name.length).toLowerCase() == month_name.toLowerCase()) {
					month = i+1;
					if (month>12) { month -= 12; }
					i_val += month_name.length;
					break;
					}
				}
			if ((month < 1)||(month>12)){return 0;}
			}
		else if (token=="MM"||token=="M") {
			month=_getInt(val,i_val,token.length,2);
			if(month==null||(month<1)||(month>12)){return 0;}
			i_val+=month.length;}
		else if (token=="dd"||token=="d") {
			date=_getInt(val,i_val,token.length,2);
			if(date==null||(date<1)||(date>31)){return 0;}
			i_val+=date.length;}
		else if (token=="hh"||token=="h") {
			hh=_getInt(val,i_val,token.length,2);
			if(hh==null||(hh<1)||(hh>12)){return 0;}
			i_val+=hh.length; hh--;}
		else if (token=="HH"||token=="H") {
			hh = _getInt(val,i_val,token.length,2);
			if(hh==null||(hh<0)||(hh>23)){return 0;}
			i_val+=hh.length;}
		else if (token=="KK"||token=="K") {
			hh=_getInt(val,i_val,token.length,2);
			if(hh==null||(hh<0)||(hh>11)){return 0;}
			i_val+=hh.length;}
		else if (token=="kk"||token=="k") {
			hh=_getInt(val,i_val,token.length,2);
			if(hh==null||(hh<1)||(hh>24)){return 0;}
			i_val+=hh.length;hh--;}
		else if (token=="mm"||token=="m") {
			mm=_getInt(val,i_val,token.length,2);
			if(mm==null||(mm<0)||(mm>59)){return 0;}
			i_val+=mm.length;}
		else if (token=="ss"||token=="s") {
			ss=_getInt(val,i_val,token.length,2);
			if(ss==null||(ss<0)||(ss>59)){return 0;}
			i_val+=ss.length;}
		else if (token=="a") {
			if (val.substring(i_val,i_val+2).toLowerCase()=="am") {ampm = "AM";}
			else if (val.substring(i_val,i_val+2).toLowerCase()=="pm") {ampm = "PM";}
			else {return 0;}
			i_val+=2;}
		else {
			if (val.substring(i_val,i_val+token.length)!=token) {return 0;}
			else {i_val+=token.length;}
			}
		}
	// If there are any trailing characters left in the value, it doesn't match
	if (i_val != val.length) { return 0; }
	// Is date valid for month?
	if (month==2) {
		// Check for leap year
		if ( ( (year%4 == 0)&&(year%100 != 0) ) || (year%400 == 0) ) { // leap year
			if (date > 29){ return false; }
			}
		else { if (date > 28) { return false; } }
		}
	if ((month==4)||(month==6)||(month==9)||(month==11)) {
		if (date > 30) { return false; }
		}
	// Correct hours value
	if (hh<12 && ampm=="PM") { hh+=12; }
	else if (hh>11 && ampm=="AM") { hh-=12; }
	var newdate = new Date(year,month-1,date,hh,mm,ss);
	return newdate.getTime();
	}
