function getObj(objID)
{
    if (document.getElementById) {return document.getElementById(objID);}
    else if (document.all) {return document.all[objID];}
    else if (document.layers) {return document.layers[objID];}
}

function checkClick(e) {
	e?evt=e:evt=event;
	CSE=evt.target?evt.target:evt.srcElement;
	if (getObj('fc')){
		if (!isChild(CSE,getObj('fc'))){
			getObj('popframe').style.display='none';
			getObj('fc').style.display='none';
			
		}
	}
}

function isChild(s,d) {
	while(s) {

		if (s==d) {
			return true;
			}
		s=s.parentNode;

	}
	return false;
}

function Left(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;	
	return curleft;
}

function Top(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}

function hidecalendar(){
	getObj('fc').style.display='none';
	getObj('popframe').style.display='none';
}



document.write('<table  id="fc" style="position:absolute;border-collapse:collapse;background:#FFFFFF;border:1px solid #ABABAB;display:none;z-index:10;width:170px;" cellpadding=2>');
document.write('<tr><td>&nbsp;</td><td align="right" style="cursor:pointer" onclick="csubm()"><img title ="prev" alt="prev" src="http://openx.wayfareinteractive.com/openx/bannerDeliveries/arrowleftmonth.gif"></td><td colspan=3 id="mns" align="center" style="font:bold 12px Arial"></td>');
document.write('<td align="right" style="cursor:pointer" onclick="caddm()"><img title ="next" alt="next" src="http://openx.wayfareinteractive.com/openx/bannerDeliveries/arrowrightmonth.gif"></td><td align="left"><img style="cursor:pointer" onclick="hidecalendar()" title ="close" alt="close"  src="http://openx.wayfareinteractive.com/openx/bannerDeliveries/X.png"></td></tr>');
document.write('<tr><td align=center style="background:#ABABAB;font:14px Arial">S</td><td align=center style="background:#ABABAB;font:14px Arial">M</td><td align=center style="background:#ABABAB;font:12px Arial">T</td><td align=center style="background:#ABABAB;font:12px Arial">W</td><td align=center style="background:#ABABAB;font:12px Arial">T</td><td align=center style="background:#ABABAB;font:12px Arial">F</td><td align=center style="background:#ABABAB;font:12px Arial">S</td></tr>');
for(var kk=1;kk<=6;kk++) {
	document.write('<tr>');
	for(var tt=1;tt<=7;tt++) {
		num=7 * (kk-1) - (-tt);
		document.write('<td id="v' + num + '" style="width:20px;height:15px">&nbsp;</td>');
	}
	document.write('</tr>');
}
document.write('</table>');

document.all?document.attachEvent('onclick',checkClick):document.addEventListener('click',checkClick,false);


// Calendar script
var now = new Date();
var sccm=now.getMonth();
var sccy=now.getFullYear();
var ccm=now.getMonth();
var ccy=now.getFullYear();
var ccdm = now.getDate();
var month;
var day;
var fullday;
var presmon=0;
var maxDate = dateAdd("d",330,now);
var maxDay = maxDate.getDate();
var maxMonth = maxDate.getMonth();
var maxYear = maxDate.getFullYear();
var ccy2;

var updobj;
function lcs(ielem) {
	updobj=ielem;	
	// First check date is valid
	curdt=ielem.value;
	curdtarr = new Array();
	curdtarr[0] = parseInt(curdt,10);
	curdtarr[1] = parseInt(getObj(updobj.id.replace("Month","Day")).value,10);
	curdtarr[2] = parseInt(sccy,10);
	
	if((curdtarr[0] < sccm+1) || (curdtarr[0] <= sccm+1 && curdtarr[1] < ccdm)){
			curdtarr[2] = curdtarr[2] +1;
	}
	
	isdt=true;
	for(var k=0;k<curdtarr.length;k++) {
		if (isNaN(curdtarr[k]))
			isdt=false;
	}
	if (isdt&(curdtarr.length==3)) {
		ccm=curdtarr[0]-1;
		ccy=curdtarr[2];
		if(ccy >= "2000"){
		prepcalendar(curdtarr[0]-1,curdtarr[1],curdtarr[2]);
		}
	}
	
	
	getObj('fc').style.left=Left(ielem)+"px";
	getObj('fc').style.top=Top(ielem)+ielem.offsetHeight+"px";
	getObj('fc').style.display='';	
	getObj('popframe').style.left =getObj('fc').offsetLeft+"px";
	getObj('popframe').style.top =Top(ielem)+ielem.offsetHeight-5+"px";
	getObj('popframe').style.width =getObj('fc').offsetWidth + 'px';
	getObj('popframe').style.height =getObj('fc').offsetHeight + 'px';
	getObj('popframe').style.display='block';
	
}
function evtTgt(e)
{
	var el;
	if(e.target)el=e.target;
	else if(e.srcElement)el=e.srcElement;
	if(el.nodeType==3)el=el.parentNode; // defeat Safari bug
	return el;
}
function EvtObj(e){if(!e)e=window.event;return e;}
function cs_over(e) {
	evtTgt(EvtObj(e)).style.background='#FFCC66';
}
function cs_out(e) {
	evtTgt(EvtObj(e)).style.background='#C4D3EA';
}
function cs_click(e) {
	dateChange(calvalarr[evtTgt(EvtObj(e)).id.substring(1,evtTgt(EvtObj(e)).id.length)]);
	getObj('fc').style.display='none';
	getObj('popframe').style.display='none';
	
}

fullday = new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");
var mn=new Array('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
var mnn=new Array('31','28','31','30','31','30','31','31','30','31','30','31');
var mnl=new Array('31','29','31','30','31','30','31','31','30','31','30','31');
var calvalarr=new Array(42);

function f_cps(obj) {
	obj.style.background='#C4D3EA';
	obj.style.font='10px Arial';
	obj.style.color='#333333';
	obj.style.textAlign='center';
	obj.style.textDecoration='none';
	obj.style.border='1px solid #6487AE';
	obj.style.cursor='pointer';
}

function f_cpps(obj) {
	obj.style.background='#C4D3EA';
	obj.style.font='10px Arial';
	obj.style.color='#ABABAB';
	obj.style.textAlign='center';
	obj.style.textDecoration='line-through';
	obj.style.border='1px solid #6487AE';
	obj.style.cursor='default';
}

function f_hds(obj) {
	obj.style.background='#FFF799';
	obj.style.font='bold 10px Arial';
	obj.style.color='#333333';
	obj.style.textAlign='center';
	obj.style.border='1px solid #6487AE';
	obj.style.cursor='pointer';
}

// day selected
function prepcalendar(cm,hd,cy) {
	now=new Date();
	sd=now.getDate();
	td=new Date();
	td.setDate(1);
	td.setFullYear(cy);
	td.setMonth(cm);
	cd=td.getDay();
	getObj('mns').innerHTML=mn[cm]+ ' ' + cy;
	marr=((cy%4)==0)?mnl:mnn;
	for(var d=1;d<=42;d++) {
		f_cps(getObj('v'+parseInt(d,10)));
		if ((d >= (cd -(-1))) && (d<=cd-(-marr[cm]))) {
			dip=(((d-cd < sd )&&(cm==sccm)&&(cy==sccy)) || ((d-cd > maxDay)&&(cm >= maxMonth)&&(cy >= maxYear)));
			
			htd=((hd!='')&&(d-cd==hd));
			if (dip)
				f_cpps(getObj('v'+parseInt(d,10)));
			else if (htd)
				f_hds(getObj('v'+parseInt(d,10)));
			else
				f_cps(getObj('v'+parseInt(d,10)));

			getObj('v'+parseInt(d,10)).onmouseover=(dip)?null:cs_over;
			getObj('v'+parseInt(d,10)).onmouseout=(dip)?null:cs_out;
			getObj('v'+parseInt(d,10)).onclick=(dip)?null:cs_click;
			getObj('v'+parseInt(d,10)).innerHTML=d-cd;	
			month = ((cm-(-1))<10)? "0"+(cm-(-1)):(cm-(-1));
			day = ((d-cd)<10)? "0"+(d-cd):(d-cd);
			//calvalarr[d]=(cm-(-1))+'/'+(d-cd)+'/'+cy;
			calvalarr[d]=month+'/'+day+'/'+cy;
		}
		else {
			getObj('v'+d).innerHTML='&nbsp;';
			getObj('v'+parseInt(d,10)).onmouseover=null;
			getObj('v'+parseInt(d,10)).onmouseout=null;
			getObj('v'+parseInt(d,10)).style.cursor='default';
			}
	}
}

prepcalendar(ccm,'',ccy);
//getObj('fc'+cc).style.visibility='hidden';

function caddm() {
	marr=((ccy%4)==0)?mnl:mnn;
	ccm+=1;
	if (ccm>=12) {
		ccm=0;
		ccy++;
	}
	cdayf();
	cddayf();
	prepcalendar(ccm,'',ccy);	
}

function csubm() {
	marr=((ccy%4)==0)?mnl:mnn;
	ccm-=1;
	if (ccm<0) {
		ccm=11;
		ccy--;
	}
	cdayf();
	cddayf();
	if( ccy==sccy && ccm ==  sccm){
		var defaultdate= dateAdd("d",1,now);
		prepcalendar(ccm,defaultdate.getDate(),ccy);
	}
	else{
		prepcalendar(ccm,'',ccy);	
	}	
}

function cdayf() {
if ((ccy>sccy)|((ccy==sccy)&&(ccm>=sccm)))
	return;
else {
	ccy=sccy;
	ccm=sccm;
	//cfd=scfd;
	}
}
function cddayf() {
if ((ccy < maxYear)|((ccy==maxYear)&&(ccm<=maxMonth))){
	return;
}	
else {
	ccy=maxYear;
	ccm=maxMonth;
	//cfd=scfd;
	}
}


function isDate1(p_Expression){
	return !isNaN(new Date(p_Expression));		// <<--- this needs checking
}

function dateAdd(p_Interval, p_Number, p_Date){
	if(!isDate1(p_Date)){return "invalid date: '" + p_Date + "'";}
	if(isNaN(p_Number)){return "invalid number: '" + p_Number + "'";}	
	p_Number = new Number(p_Number);
	var dt = new Date(p_Date);
	switch(p_Interval.toLowerCase()){
		case "m": {								// month
			dt.setMonth(dt.getMonth() + p_Number);
			break;
		}
		case "d":								// day
		case "w": {								// weekday
			dt.setDate(dt.getDate() + p_Number);
			break;
		}
		default: {
			return "invalid interval: '" + p_Interval + "'";
		}
	}
return dt;
}

function dateChange(value){	
	curdtarr1=value.split('/');
	var monthName = parseInt(curdtarr1[0],10);
	var monthDate = parseInt(curdtarr1[1],10);
	ccy2 = parseInt(curdtarr1[2],10);
	updobj.value = monthName;
	setDateAd(updobj.id);
	var DayID=updobj.id.replace("Month","Day");
	getObj(DayID).value = monthDate;
	/*/if(updobj.id == "WINdepartMonthFlights"){
	//	changeNext1('WINreturnMonthFlights','WINdepartMonthFlights');
	}	
	if(updobj.id == "WINdepartMonthHotels"){
		changeNext1('WINreturnMonthHotels','WINdepartMonthHotels');
	}
	if(updobj.id == "WINdepartMonthCars"){
		changeNext1('WINreturnMonthCars','WINdepartMonthCars');
	}
	if(updobj.id == "DepartMonthFH"){
		changeNext1('ReturnMonthFH','DepartMonthFH');
	}*/
	if (updobj.id.indexOf('depart') > 0) {
		changeNext1(updobj.id.replace("depart","return"),updobj.id);
	}
}

function changeNext1(id1,id2){
	var dmonth=getObj(id2).value;
	var dday=getObj(id2.replace("Month","Day")).value;
	var now = new Date;
	var curm = now.getMonth();
	if (dmonth<curm) {
		var dyear = parseInt(now.getFullYear())+1;
	} else {
		var dyear = parseInt(now.getFullYear());
	}	
// depart date is:
	var ddate = new Date;
	ddate.setFullYear(dyear,(dmonth-1),dday);	
	//add 3 to the date
	ddate.setDate(ddate.getDate() + 3);
	if (ddate.getDate()>mnn[(ddate.getMonth())]) {
		ddate.setDate(ddate.getDate()-mnn[(ddate.getMonth())]);
		if (parseInt(ddate.getMonth(),10)<11) {
			ddate.setMonth(parseInt(dmonth,10));
		} else {
			ddate.setMonth(0);
		}
	}
	 getObj(id1).value = ddate.getMonth()+1;
	 setDateAd(id1);
	 getObj(id1.replace("Month","Day")).value = ddate.getDate();
	// alert(ddate.getMonth() + "/" + ddate.getDate());
}



newin = function(link){
  var querypar;
  var html = "";
  html += "<html><head></head><body><form id='formid' method='get' action='" +link+ "'>";
  var newWindow = window.open(""); 
  html += "</form><script type='text/javascript'>document.getElementById(\"formid\").submit()</script></body></html>";
  newWindow.document.write(html);
}



function setAddDate(ID)
{
	var now = new Date;
	//set departure at next week
	now.setDate(now.getDate()+7);
	getObj("WINdepartMonth"+ID).value = (now.getMonth()+1);
	setDateAd("WINdepartMonth"+ID);
	getObj("WINdepartDay"+ID).value = (now.getDate());
	now.setDate(now.getDate()+2);
	changeNext1("WINreturnMonth"+ID,"WINdepartMonth"+ID)
	
}


function setAddDate1(id1,id2,id3,id4)
{
	id1.value = sccm+1;
	id2.value = sccm+1;
	id3.value = ccdm;
	id4.value = ccdm;	
}


var Datedrop,op;

function setDateAd(monthid){
	var monthvalue = getObj(monthid).value;
	monthvalue = monthvalue-1;
	var noOfDays =((ccy%4)==0)?mnl[monthvalue]:mnn[monthvalue];

	Datedrop = document.getElementById(monthid.replace("Month","Day"));

	if(Datedrop == undefined || Datedrop == null)
	{
		return;
	}
	var len = Datedrop.childNodes.length;
	while (Datedrop.hasChildNodes())
	{
		Datedrop.removeChild(Datedrop.firstChild);
	}	
	for(i=1;i<= noOfDays;i++){
		op=document.createElement('option');
		op.text=i;
		op.value=i;

		try
		{
		Datedrop.add(op,null);
		}
		catch(ex)
		{
		Datedrop.add(op);
		}
	}
}

function capturekey(e){
var key=(typeof event!='undefined')?window.event.keyCode:e.keyCode;
	e?evt=e:evt=event;
	CSE1=evt.target?evt.target:evt.srcElement;
	presobj = CSE1;
	if(key == 9){
		if (getObj('fc')){
			getObj('fc').style.display='none';
			getObj('popframe').style.display='none';
		}
	}
}
if(navigator.appName!= "Mozilla"){
	document.onkeydown=capturekey
}
else{
	document.addEventListener("keypress",capturekey,true);
}

function strTrim(sParseString)
{
	var sResultString = "";
	var nCount=0;

	for(nCount=0;nCount<sParseString.length;nCount++)
	{		
		if(sParseString!= null && sParseString.charAt(nCount) != "" && sParseString.charAt(nCount) != " ")
		{
			sResultString = sResultString + sParseString.charAt(nCount);
		}
	}
	return sResultString;
}
function switchDivs(elem){
	if(prevElementDiv != elem){
		getObj("ad"+prevElementDiv).style.display="none";
		getObj("ad"+elem).style.display="block";
		getObj(prevElementDiv).style.display="none";
		getObj(elem).style.display="block";
		prevElementDiv = elem;
	}
}