//Aitport Seacrh
var urlAP = "/AirportCode.html?textbox=";
//Airline Seacrh
var urlAL = "/AirlineCode.html?textbox=";
//Remote Search Handler
var urlRSH = "http://www.cheapoair.com/default.aspx?tabid=1832";

var SFTab = GetTag("tabTd");




var dtCh= "/";
var minYear=1900;
var maxYear=2100;

var btn = GetTag("ibSubmit");

var errMsgs = "";
var fWtrmrk = "Enter a city or airport";
var hWtrmrk = "Enter a city, airport or landmark";
var cWtrmrk = "Enter a city or airport";
var aWtrmrk = "Enter a city or airport";




function InitPage()
{
//	ShowTabs(showTab);

	document.onclick = HCal;
	//set default Dates
	var frmDt = new Date();
	var toDt = new Date();
	//Hotel only 2 days and for others 7 days
	frmDt.setDate(frmDt.getDate()+14);
	toDt.setDate(toDt.getDate()+16);
	StDteOb('tbCIDt', frmDt);
	StDteOb('tbCODt', toDt);
	toDt.setDate(toDt.getDate()+5);
	StDteOb('tbDTime', frmDt);
	StDteOb('tbRTime', toDt);
	StDteOb('tbPick', frmDt);
	StDteOb('tbDrop', toDt);
	StDteOb('tbFromDate', frmDt);
	StDteOb('tbToDate', toDt);
		
    ToggleTT();	

    FillDDls();
    //Initialize advance search sections
    GetTag("tbA1").value ="";
	GetTag("tbA2").value ="";
	GetTag("tbA3").value ="";
	GetTag("chkFlexiAirport").checked=false;
	GetTag("chkFlexiAirport").checked=false;
	GetTag("chkDirectFlt").checked=false;
	GetTag("tbHtlName").value="";
	GetTag("Nbrm").options[0].selected= true;//1
	GetTag("r1noa").options[1].selected= true;//2
	GetTag("r1noc").options[0].selected= true;//0
	displayRow(0);
	SetDrvrAgeCtrls(1, 0);
	GetTag("selTrans").options[0].selected = true;//ANY
	GetTag("selAcons").options[0].selected = true;//ANY
	GetTag("selCarType").options[0].selected = true;//DEFAULT
	GetTag("Nbrm3").options[0].selected = true;//ANY
	UnSelecetAllRdoBtns(GetTag("tbHotel"));
	UnSelecetAllRdoBtns(GetTag("tabCar"));
	UnSelecetAllRdoBtns(GetTag("tbAct"));
}

function StDteOb(objNm,dtObj)
{
	GetTag(objNm).value = (dtObj.getMonth()+1) + "/" + dtObj.getDate() + "/" + dtObj.getFullYear();
}
function UnSelecetAllRdoBtns(prntObjOfRdoBtns)
{
	if(prntObjOfRdoBtns==null)
		return;
	var inputs = prntObjOfRdoBtns.getElementsByTagName("input");
	if(inputs != null)
	{
		for(i=0;i<inputs.length;i++)
		{
			if(inputs[i].type=='radio')
				inputs[i].checked=false;
		}
	}
}

function StDteOb(objNm,dtObj)
{
	GetTag(objNm).value = (dtObj.getMonth()+1) + "/" + dtObj.getDate() + "/" + dtObj.getFullYear();
}

function ShowTabs(showFor)
{
    if(curTab == showFor)
        return;
        
	var forAir = "none";
	var forHtl = "none"; // forHtl = forHotel
	var forCar = "none";
	var forActvt = "none"; // forActvt = forActivity

	var bckGrnd = "";
    GetTag('errMsg').innerHTML = "";
    
    switch (showFor)
    {
		case "F":
			curTab = "F";
			forAir = "";
			bckGrnd = "STabflightbg";
			break;
		case "H":
			curTab = "H";
			forHtl = "";
			bckGrnd = "STabhotelbg";
			break;
		case "C":
			curTab = "C";
			forCar = "";
			bckGrnd = "STabcarbg";
			break;   
		case "A":
			curTab = "A";
			forActvt = "";
			bckGrnd = "STabactivbg";
			break;   
    }

	GetTag("tabAir").style.display = forAir;
	GetTag("tabCar").style.display = forCar;
	GetTag("tbHotel").style.display = forHtl;
	GetTag("tbAct").style.display = forActvt;

	SFTab.className = bckGrnd;
	
	GetTag('hdFlt').style.display=forAir;
	GetTag('hdCar').style.display=forCar;
	GetTag('hdHtl').style.display=forHtl;
	GetTag('hdActvty').style.display=forActvt;
}

function GetTag(tagId)
{
	return document.getElementById(tagId);
}

function SearchNow()
{
	var srchStr = urlRSH;
	
	switch (curTab)
    {
		case "F":
			if(!IsVldFltRqst())
			{
				AddVldtnMsg();
				return;
			}
            var airPref = "";
            if(GetTag("tbA1")!= null && GetTag("tbA1").value != "")
                airPref = GetTag("tbA1").value + ",";
            if(GetTag("tbA2")!=null && GetTag("tbA2").value != "")
                airPref += GetTag("tbA2").value + ",";
            if(GetTag("tbA3")!=null && GetTag("tbA3").value != "")
                airPref += GetTag("tbA3").value + ",";
            var prefType = 1; //by default for all airline
            
            if(airPref.length>0)
                prefType=2;
                
		    srchStr += "&from=" + GetLocCD("hdnLocFrom", "tbFrom") + "&fromDt=" + GetTag("tbDTime").value + "&fromTm=" + GetTag("depTime").value 
		    + "&to=" + GetLocCD("hdnLocTo", "tbTo") + "&toDt=" + GetTag("tbRTime").value + "&toTm=" + GetTag("retDepTime").value
			    + "&rt=" + GetTag("rbRT").checked + "&ad=" + GetTag("ddAAdt").value + "&se=" + GetTag("ddASnr").value + "&ch=" + GetTag("ddAChd").value 
			    + "&class=" + GetTag("ddClass").value + "&infl=" + GetTag("ddAInl").value + "&infs=" + GetTag("ddAIns").value
		        + "&airpref=" + airPref.substring(0, airPref.length-1)+ "&preftyp=" + prefType + "&searchflxdt=" + GetTag("chkFlexiDts").checked + "&IsNS=" + GetTag("chkDirectFlt").checked + "&searchflxarpt=" + GetTag("chkFlexiAirport").checked;
			break;
		case "H":
			if(!IsVldHltRqst())
			{
				AddVldtnMsg();
				return;
			}

			var rooms=GetTag("Nbrm").value;
			var noOfAdt=0;
			var noOfChd=0;
			var totAdt = 0;
			var totChd = 0;
		    var chdAge = null;
			for(i=1; i<=rooms; i++)
			{
				noOfAdt = parseInt(GetTag("r"+i+"noa").value);
				totAdt += noOfAdt;
				noOfChd = parseInt(GetTag("r" + i + "noc").value);
				totChd += noOfChd;
				srchStr+="&R"+i+"=A"+noOfAdt+"Ch"+noOfChd;
				for(j=1; j<=noOfChd; j++)
				{
		        chdAge=GetTag("r"+i+"c"+j+"a").value;
				if(chdAge.length==1)
				    chdAge="0"+chdAge;
                srchStr+="c"+j+"-"+chdAge;
				}
			}

			srchStr += "&ht=1&fromDt=" + GetTag("tbCIDt").value
				+ "&toDt=" + GetTag("tbCODt").value + "&ad=" + totAdt + "&childs=" + totChd
				+ "&rooms=" + rooms + "&hotelName=" + GetTag("tbHtlName").value + "&rating=" + GetTag("Nbrm3").value;

		    if (GetTag("hdnLocFrom").value != "")
		    {

                srchStr += "&dest=" + ((GetTag("hdnLocFrom").value).split("***")[0]).split("|")[13];
                }
            else
            
                srchStr += "&to=" + GetTag("tbHLoc").value;

			break;
		case "C":
			if(!IsVldCarRqst())
			{
				AddVldtnMsg();
				return;
			}

			srchStr += "&to=" +  GetLocCD("hdnLocFrom", "tbCLoc") + "&fromDt=" + GetTag("tbPick").value + "&fromTm=" + GetTag("pickTime").value +  GetTag("pickFormat").value 
		             + "&toDt=" + GetTag("tbDrop").value + "&toTm=" + GetTag("dropTime").value + GetTag("dropFormat").value+ "&cr=" + GetTag("selCarComp").value + "&ctyp=" + GetTag("selCarType").value
		             + "&tran=" + GetTag("selTrans").value + "&acon=" + GetTag("selAcons").value;
			break;
		case "A":
			if(!IsVldActvtRqst())
			{
				AddVldtnMsg();
				return;
			}

			srchStr += "&ev=1&region=" + GetLocCD("hdnLocFrom", "tbALoc") +"&fromDt=" + GetTag("tbFromDate").value + "&toDt=" + GetTag("tbToDate").value 
			+ "&ad=" + GetTag("adult").value + "&childs=" + GetTag("child").value	+ "&infants=" + GetTag("infant").value; 
				
	}
	location = srchStr;
}



//Flight Validation
function IsVldFltRqst()
{
    var areVldDts = true;
    var retVal = true;  //To Check Valid Input
    var isRT = false; // Round Trip
    
    errMsgs = "";

    if(GetTag("rbRT").checked)
       isRT =  true;

       
    if(IsBlank("tbFrom", "From City/AirportCode can't be left blank!", fWtrmrk,retVal))
        retVal = false;
    else if(!IsVldNmOrCd('tbFrom', 'Invalid From City/Airport Code.',false,retVal))
            retVal = false;

    if(IsBlank("tbTo", "To City/AirportCode can't be left blank!", fWtrmrk,retVal))
        retVal = false;
    else if(isRT && !IsVldNmOrCd('tbTo', 'Invalid To City/Airport Code.',false,retVal))
            retVal = false;    
                 
    if(retVal && GetLocCD("hdnLocFrom", "tbFrom") == GetLocCD("hdnLocTo", "tbTo"))
    {
        errMsgs += "<div>&bull; From and To must be different Airport/ City.</div>";
        if(retVal)GetTag("tbFrom").focus();
		retVal = false;
    }

	if(IsBlank("tbDTime", "Depart date can't be left blank!", "",retVal))
	    areVldDts = false;
	else if(!isDtVld("tbDTime","Depart",retVal))
			areVldDts = false;
	
	if(!areVldDts) retVal = false;
       
    if(isRT)
    {
	    if(IsBlank("tbRTime", "Return date can't be left blank!", "",retVal))
	        areVldDts = false;
		else if(!isDtVld("tbRTime","Return",retVal))
			areVldDts = false;
	        
        if(!areVldDts) retVal = false;
        
	    if(areVldDts && !IsVldDtRng('tbDTime', 'tbRTime', 'Depart date must be before Return date.',retVal))
	        retVal = false;
    }
	    
    if(parseInt(GetTag('ddAAdt').value) + parseInt(GetTag('ddASnr').value) == 0)
    {
        errMsgs += "<div>&bull; There must be 1 adult or 1 senior. </div>";
        retVal = false;
    }
    
    
    if(parseInt(GetTag('ddAAdt').value) + parseInt(GetTag('ddASnr').value) + parseInt(GetTag('ddAChd').value)+ parseInt(GetTag('ddAInl').value)+parseInt(GetTag('ddAIns').value)>7)
    {
        errMsgs += "<div>&bull; Total number of passengers cannot exceed 7 </div>";
        retVal = false;
    }
	var ctlAl = GetTag("tbA1");
    if(ctlAl != null && ctlAl.value!="")
        if(!IsVldNmOrCd('tbA1','Invalid AirlineCode1 Code.',true,retVal))
            retVal = false;
            
    ctlAl = GetTag("tbA2");
    if(ctlAl != null && ctlAl.value!="")
        if(!IsVldNmOrCd('tbA2','Invalid AirlineCode2 Code.',true,retVal))
            retVal = false;
            
    ctlAl = GetTag("tbA3");
    if(ctlAl != null && ctlAl.value!="")
        if(!IsVldNmOrCd('tbA3','Invalid AirlineCode3 Code.',true,retVal))
            retVal = false;

    
	return retVal;
}
//Hotel Validation
function IsVldHltRqst()
{
	var areVldDts = true;  //To Check Blank or Valid Input
    var retVal = true;  //To Check Valid Input
	errMsgs = "";

	if(IsBlank("tbHLoc", "Destination can't be left blank!", hWtrmrk,retVal))
	    retVal = false;
	else if(!IsVldNmOrCd('tbHLoc', 'Invalid Destination.',false,retVal))
	        retVal = false;

	if(IsBlank("tbCIDt", "Check-In Date  can't be left blank!", "",retVal))
	    areVldDts = false;
	else if(!isDtVld("tbCIDt","Check-In",retVal))
		areVldDts = false;

	if(IsBlank("tbCODt", "Check-out Date  can't be left blank!", "",retVal))
	    areVldDts = false;
	else if(!isDtVld("tbCODt","Check-Out",retVal))
		areVldDts = false;

	if(!areVldDts) retVal = false;

	if(areVldDts && !IsVldDtRng('tbCIDt', 'tbCODt', 'Check-in date must be before Check-out date.',retVal))
        retVal = false;

	if(GetTag("tbHtlName").value!="")
        if(!IsVldNmOrCd('tbHtlName','Invalid Hotel Name.',true,retVal))
            retVal = false;

	return retVal;
 
}
//Car Validation
function IsVldCarRqst()
{
    var areVldDts = true;  //To Check Blank or Valid Input
    var retVal = true;  //To Check Valid Input
	msg = "";
	
	if(IsBlank("tbCLoc", "Pickup Location can't be left blank!", cWtrmrk,retVal))
	    retVal = false;
	else if(!IsVldNmOrCd('tbCLoc', 'Invalid Pickup Location.',false,retVal))
	        retVal = false;


	if(IsBlank("tbPick", "Pickup Date can't be left blank!", "",retVal))
	    areVldDts = false;
	else if(!isDtVld("tbPick","PickUp",retVal))
		areVldDts = false;

	if(IsBlank("tbDrop", "Dropoff Date can't be left blank!", "",retVal))
	    areVldDts = false;
	else if(!isDtVld("tbDrop","DropOff",retVal))
		areVldDts = false;
	
	if(!areVldDts) retVal = false;
	
    if(areVldDts && !IsVldDtRng('tbPick', 'tbDrop', 'Pick Up date must be before Drop date.',retVal))
        retVal = false;

	return retVal;
}

//Activity Validation
function IsVldActvtRqst()
{
    
    var retVal = true;  //To Check Valid Input
	msg = "";
	
	if(IsBlank("tbALoc", "City/AirportCode can't be left blank!", aWtrmrk,retVal))
	    retVal = false;
	else if(!IsVldNmOrCd('tbALoc', 'Invalid City/Airport Code.',false,retVal))
	        retVal = false;

    var areVldDts = true;  //To Check Blank or Valid Input
		if(IsBlank("tbFromDate", "From Date can't be left blank!", "",retVal))
		areVldDts = false;
	else if(!isDtVld("tbFromDate","from",retVal))
			areVldDts = false;

		if(IsBlank("tbToDate", "To Date can't be left blank!", "",retVal))
		areVldDts = false;
	else if(!isDtVld("tbToDate","to",retVal))
		areVldDts = false;

	if(!areVldDts) retVal = false;
	
	if(areVldDts && !IsVldDtRng('tbFromDate', 'tbToDate', 'From date must be same or before To date.',retVal))
		retVal = false;
    if(parseInt(GetTag('adult').value) + parseInt(GetTag('child').value) + parseInt(GetTag('infant').value)>9)
    {
        errMsgs += "<div>&bull; Total number of travelers can't not be more than 9 </div>";
        retVal = false;
    }
	
	return retVal;
}


function IsDtVld(dtStr,ctrlName)
{
	var daysInMon = DaysArray(12);
	var pos1=dtStr.indexOf(dtCh);
	var pos2=dtStr.indexOf(dtCh,pos1+1);
	var strMon=dtStr.substring(0,pos1);
	var strDay=dtStr.substring(pos1+1,pos2);
	var strYr=dtStr.substring(pos2+1);
	var isvalid=true;
	if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
	if (strMon.charAt(0)=="0" && strMon.length>1) strMon=strMon.substring(1)
	for (var i = 1; i <= 3; i++) 
	{
		if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1);
	}
	month=parseInt(strMon);
	day=parseInt(strDay);
	year=parseInt(strYr);
	if (pos1==-1 || pos2==-1)
	{
		errMsgs += "<div>&bull; The date format should be : mm/dd/yyyy for " + ctrlName + " date </div>";
		return false;
	}
	if (strMon.length<1 || month<1 || month>12)
	{
		errMsgs += "<div>&bull; Please enter a valid month for " + ctrlName + " date </div>";
		return false;
	}
	//if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMon[month])
	if (day<1 || day>31)
	{
		errMsgs += "<div>&bull; Please enter a valid day for " + ctrlName + " date </div>";
		return false;
	}
	if (strYr.length != 4 || year==0 || year<minYear || year>maxYear)
	{
		errMsgs += "<div>&bull; Please enter a valid 4 digit year between " +  minYear +  " and " + maxYear + " for " + ctrlName + " date </div>";
		return false;
	}

	if (dtStr.indexOf(dtCh,pos2+1)!=-1 || IsInt(stripCharsInBag(dtStr, dtCh))==false)
	{
		errMsgs += "<div>&bull;  Please enter a valid " + ctrlName + " date </div>"; 
		return false;
	}
	
	if((new Date(dtStr)) < (new Date(new Date().toDateString())))//Can not less then current Date
	{
	    errMsgs += "<div>&bull; " + ctrlName + " date can't be before today's date </div>"; 
		return false;
	}
	return isvalid;
	
}
function DaysArray(n)
{
	for (var i = 1; i <= n; i++)
	{
		this[i] = 31;
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
		if (i==2) {this[i] = 29}
   }
   return this;
}
function IsInt(s)
{
	var i;
    for (i = 0; i < s.length; i++)
	{
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}
function stripCharsInBag(s, bag)
{
	var i;
    var retStr = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++)
	{
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) retStr += c;
    }
    return retStr;
}
function daysInFebruary (year)
{
	// February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
	return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}

//--------calx.js

var FDate = 'mm/dd/yy';
var TDate = 'mm/dd/yy';
var MDate = '';
var CalS = '';
var CalE = '';

var FTime = '362';
var TTime = '362';


var cF=null;var cW=null;var g_tid=0;var g_cP,g_eD,g_eDP,g_dmin,g_dmax,g_dtsToBeSlct;
var nextFocus;var g_fNoCal=false;

function getEventObj(e){if(!e)e=window.event;return e;}

function stopBubble(e){e=getEventObj(e);e.cancelBubble=true;if(e.stopPropagation)e.stopPropagation();}

function CB(){stopBubble(event);}

function SCal(cP,eD,eDP,dmin,dmax,dtsToBeSlct)
{
 clearTimeout(g_tid);

 if(g_fNoCal){
    g_fNoCal=false;return;
 }
 if(g_calShown && eD==g_eD)
 {
//    return;
 }
 g_calShown = true;
 g_calCB = null;
 g_cP=cP;
 g_eD=eD;
 g_eDP=eDP;
 g_dmin=dmin;
 g_dmax=dmax;
 g_dtsToBeSlct=dtsToBeSlct;
 
 WaitCal();
}

function CancelCal(){clearTimeout(g_tid);if(!cF)cF=getObj('calendar');cF.style.visibility="hidden";g_calShown=false;}
function WaitCal()
{ 
 if(!cW)
 	cW=frames['calendar'];
 
 if(null==cW || null==cW.g_fCL || false==cW.g_fCL)
 {
	g_tid=setTimeout("WaitCal()", 200);
 }
 else
 {
 	if(!cF)cF=getObj('calendar');
		cF.style.visibility="hidden";
	setTimeout("DoCal()",1);
 }
}

function DoCal(){
	PosCal(g_cP);
	if(!cW)cW=frames['calendar'];
		cW.DoCal(g_eD,g_eDP,g_dmin,g_dmax,g_dtsToBeSlct);
}
function displayRow(whichrow)
{     
		for (var i=1;i<=3;i++)
		{
		    if(i<=whichrow+1)
		        GetTag('room'+ i).style.display	= "";
		    else
		        GetTag('room'+ i).style.display	= "none";
		}

		if (whichrow == 0 ) 
		{
			GetTag('car2').style.display	= "none";
			GetTag('r2noc').value=('0');
			GetTag('car3').style.display	= "none";
			GetTag('r3noc').value=('0');
		}
		if (whichrow == 1 ) 
		{
			GetTag('car3').style.display	= "none";
			GetTag('r3noc').value=('0');
		} 
}

function getScrollTop()
{
	if(document.documentElement.scrollTop) return document.documentElement.scrollTop;
	if(document.body.scrollTop) return document.body.scrollTop;
	if(window.pageYOffset) return window.pageYOffset;
	return 0;
}

function getWinHeight()
{
	if(window.innerHeight) return window.innerHeight;
	if(document.documentElement.clientHeight) return document.documentElement.clientHeight;
	if(document.body.clientHeight) return document.body.clientHeight;
	return 0;
}
function SetDrvrAgeCtrls(roomNo, noOfChild)
{

	var drvrAgeRowID = 'car' + roomNo;
	var drvrAgeCellIDPrefix = "r" + roomNo + "c";
	if (noOfChild==0) 
		GetTag(drvrAgeRowID).style.display	= "none";
	else
	{
		GetTag(drvrAgeRowID).style.display	= "";
		for (var i=1;i<=6;i++)
		{
			if(i<=noOfChild)
				GetTag(drvrAgeCellIDPrefix + i).style.display	= "";
			else
				GetTag(drvrAgeCellIDPrefix+ i).style.display	= "none";
		}
	}
}

function PosCal(cP)
{
	var dB=document.body;var eL=0;var eT=0;
 if(!cF)cF=getObj('calendar');
	for(var p=cP;p&&p.tagName!='BODY';p=p.offsetParent){eL+=p.offsetLeft;eT+=p.offsetTop;}
	var eH=cP.offsetHeight;var dH=parseInt(cF.style.height);var sT=getScrollTop();
	if(eT-dH>=sT&&eT+eH+dH>getWinHeight()+sT)eT-=dH;else eT+=eH;
	cF.style.left=eL+'px';cF.style.top=eT+'px';
}

function SetNextFocus(e){nextFocus=e;if(nextFocus)nextFocus.onfocus=CancelCal;}
function SetPrevFocus(e){if(e)e.onfocus=CancelCal;}

function FGoNextFocus(){if(nextFocus){nextFocus.focus();return true;}return false;}

function CalSetFocus(e){if(e){g_fNoCal=true;e.focus();setTimeout("EndCalFocus()", 200);}}
function EndCalFocus(){g_fNoCal=false;}

function CalDateSet(eInp,d,m,y,giveFocus)
{
	var ds=GetDtSep();
	var fmt=GetDtFmt();

	if(fmt=="mmddyy")eInp.value=m+ds+d+ds+y;
	else if(fmt=="ddmmyy")eInp.value=d+ds+m+ds+y;
	else eInp.value=y+ds+m+ds+d;
	if(!giveFocus)
	CalSetFocus(eInp);
}

var g_calShown = false;
function SetCalShown(fcshown){g_calShown=fcshown;}

var g_calCB;
function CalCallback(){if(g_calCB)g_calCB();}
function SetCalendarCallback(cb){g_calCB=cb;}


function GetInputDate(t)
{
	if(!t.length) return null;
	t=t.replace(/\s+/g,"");
	if(t.match(/[^-|\d|\.|\/]/)) return null;
	var rgt=t.split(/-|\.|\//);
	for(var i=0;i<rgt.length;i++) rgt[i]=parseInt(rgt[i],10);
	if(!rgt[1]) return null;
	var m,d,y;
	var fmt=GetDtFmt();
	if(fmt=="yymmdd")
	{
	if(!rgt[2]) return null;
	m=rgt[1];d=rgt[2];y=rgt[0];
	}
	else
	{
	if(fmt=="mmddyy"){m=rgt[0];d=rgt[1];}
	else{m=rgt[1];d=rgt[0];}//fmt=="ddmmyy"
	if(rgt[2])y=rgt[2];
	else y=DefYr(m-1,d);
	}
	m-=1;if(y<100)y+=2000;
	if(y<1601||y>4500||m<0||m>11||d<1||d>GetMonthCount(m,y))return null;
	return new Date(y,m,d);

}

var rM=new Array(12);rM[0]=rM[2]=rM[4]=rM[6]=rM[7]=rM[9]=rM[11]=31;rM[3]=rM[5]=rM[8]=rM[10]=30;rM[1]=28;
function GetMonthCount(m,y){var c=rM[m];if((1==m)&&IsLY(y))c++;return c;}
function IsLY(y){if(0==y%4&&((y%100!=0)||(y%400==0)))return true;else return false;}
function DefYr(m,d){var dt=new Date();var yC=(dt.getYear()<1000)?1900+dt.getYear():dt.getYear();if(m<dt.getMonth()||(m==dt.getMonth()&&d<dt.getDate()))yC++;return yC;}

function GetDowStart() {return 0;}function GetDtFmt() {return "mmddyy";}function GetDtSep() {return "/";}
function ShowCalendar(eP,eD,eDP,dmin,dmax,dtsToBeSlct)
{

	SCal(eP,eD,eDP,dmin,dmax,dtsToBeSlct);
	
}
function ShowCalSimp(fm,eD,eDP,dmin,dmax,dtsToBeSlct){
 if(!dmin)dmin='3/1/2005';if(!dmax)dmax='1/25/2006';
 if(fm){SetNextFocus(objNext(fm,eD));SetPrevFocus(objPrev(fm,eD));}
 SCal(eD,eD,eDP,dmin,dmax,dtsToBeSlct);
}

var zz, zv, d, fTSR;
d = new Date();
fTSR=0;
zv = d.getTime();
zz = "&zz="+zv;

var gBF=false;
function GoTo(u){window.top.location = u + zz;}
function Go(u){window.top.location = u;} 

function BF(){gBF=true;}

function Foci(o){if(!gBF && IsVis(o)){o.focus();}}

function IsVis(o)
{
	if(!o || o.type=="hidden")
	return false;
	
	while(o && o.style && o.style.display!='none')
	{
	o = o.parentNode;	
	}
	return !o || !o.style;
}


function TEK(a,evt){	
	var keycode;
	if (window.event){ keycode = window.event.keyCode; evt = window.event;}
	else if(evt) {keycode = evt.which;}
	else {return true;}
	if(13==keycode){evt.cancelBubble = true; evt.returnValue = false; eval(a);}
	}

function getObj(objID)
	{
	if (GetTag) {return GetTag(objID);}
	else if (document.all) {return document.all[objID];}
	else if (document.layers) {return document.layers[objID];}
	}
	
function objNext(f,d)
{
	var fFnd=false,el=f.elements,i=0;
	for(;i < el.length;i++)
	{
	if('hidden'!=el[i].type && false==el[i].disabled && IsVis(el[i]) && fFnd)return el[i];
	if(d.id==el[i].id)fFnd=true;
	}
	return null;
}
function objPrev(f,d)
{
	var fFnd=false,el=f.elements,i=el.length - 1;
	for(;i >= 0;i--)
	{
	if('hidden'!=el[i].type && false==el[i].disabled && IsVis(el[i]) && fFnd)return el[i];
	if(d.id==el[i].id)fFnd=true;
	}
	return null;
}

var actvEl;
function HCal()
{
	if (GetTag('calendar'))
	{
		GetTag('calendar').style.visibility="hidden";
	}
}

if(window.navigator.appName.toLowerCase().indexOf("netscape") > -1)
{
	window.captureEvents(Event.CLICK);
	window.onmousemove = NS_MouseEventHandler;
	window.event = new Object;
}

function NS_MouseEventHandler(theMouseEvent)
{
	window.event.clientX = theMouseEvent.pageX;
	window.event.clientY = theMouseEvent.pageY;

	//back to main event handler for the desired purpose
	routeEvent(theMouseEvent)
}

document.onkeydown = StartSearch; 
function StartSearch(keyEvent)
{
    var keyPressedCode = (keyEvent != null ? keyEvent.keyCode : event.keyCode);
    if (keyPressedCode == 13 && blockSrch==false)
        SearchNow();
}

function showCalendar(obj,dtsToBeSlct,dtMin)
{
    var ctrl = GetTag(obj);
    CalS=dtMin;//set Minimum date
	SC(ctrl,dtsToBeSlct);
}

function hideCalendar()
{
	GetTag("calendar").style.display = "none";
	GetTag(actvEl).focus();	
}

function DE(el)
{
    return GetTag(el);
}

function SC(el,dtsToBeSlct)
{
	if (DE('calendar') == null)
	{
	    return;
	}
	var id = el.id;
	var n = el.id;
	el.select();
	var temp=id;
	ShowCalendar(el,el,DE(temp),CalS,CalE,dtsToBeSlct);
}

//Form Validation
function AddVldtnMsg()
{
	if(errMsgs != null && errMsgs != undefined)
		if(errMsgs!="")
			GetTag('errMsg').innerHTML  =  errMsgs ;	
	errMsgs = "";
}

function IsBlank(ctrlName, errMsg, wtrmark,stFocus)
{
	var ctrl = GetTag(ctrlName);
    if(trim(ctrl.value).length==0 || ctrl.value == wtrmark)
    {   
        errMsgs += "<div>&bull; " + errMsg + "</div>";
        if(stFocus)ctrl.focus();
		return true;
    }
	return false;
}

function isDtVld(ctrlName,ctlDtl,stFocus)
{
	var ctrl = GetTag(ctrlName);
	if(!IsDtVld(ctrl.value,ctlDtl))
	{
		//if(stFocus)ctrl.focus();
		return false;
	}  
	return 	true;
}

function IsVldDtRng(fmCtlNm, toCtlNm, errMsg,stFocus)
{
    var valDt
    if(curTab=="A" || curTab=="C")
    	valDt = (new Date(GetTag(fmCtlNm).value)) > (new Date(GetTag(toCtlNm).value));
    else
    	valDt =(new Date(GetTag(fmCtlNm).value)) >= (new Date(GetTag(toCtlNm).value))
    if (valDt)
	{
		 errMsgs += "<div>&bull; " + errMsg + "</div>";
		 if(stFocus)GetTag(fmCtlNm).focus();
		 return false;
	}
	return true;
}

function IsVldNmOrCd(ctlNm, errMsg, isCde,stFocus)
{
	var ctrl = GetTag(ctlNm);

    var regExp = null;
    if(isCde == true)
        regExp = "(?=.*([0-9a-zA-Z]))";
    else 
        regExp = "(?=.+([a-zA-Z]))([0-9a-zA-Z ',&amp;()./\_-]*)";

	var re = new RegExp(regExp);    
	if (!ctrl.value.match(re)) 
	{
		errMsgs += "<div>&bull; " + errMsg + "</div>";
		if(stFocus) ctrl.focus();
		return false;
	}
    return true;
}
//create options list
function GenOpsForDDL(name,ops, strt, opToSel)
{
    for(var i=strt; i<ops + strt;i++)
    {
        AddOptn(name,i,i,opToSel);
    }
}
function AddOptn(e,val,des,opToSel)
{
    var slct=GetTag(e);
    var opt = document.createElement("option");
    
    opt.text = des
    opt.value = val

    if(document.all && !window.opera)
        slct.add(opt);
    else
        slct.add(opt, null);
        
    if(opToSel==val)
        opt.selected= true;
}
function FillDDls()
{



    var opsVal = new Array(new Array("Search All","ACE RENT A CAR","ACO RENT A CAR","ADVANTAGE","ALAMO RENT A CAR","AMERICAR","AUTO EUROPE","AUTORENT","AVIS RENT A CAR","BUDGET RENT A CAR","CAPPS VAN RENTAL","CONTINENTAL RENT A CAR","COUNTY CAR","DISCOUNT RENTALS","DOLLAR RENT A CAR","ECONO CAR","ENTERPRISE RENT A CAR","EUROPCAR","EUROPEAN CAR RES","EXECUTIVE CAR RENTAL","EXOTICAR EXPRESS","EZ RENT A CAR","FOX RENT A CAR","HERTZ RENT A CAR","HOLIDAY RENT A CAR","I.T.S. CAR RENTAL","INTERAMERICA","INTERLOCADORA","IRISH CAR RENTAL","LM CAR RENTAL","LOCALIZA RENT A CAR","MAGIC RENT A CAR","MALONE CAR RENTAL","MERLIN CARS","MIDWAY RENT A CAR","NATIONAL CAR RENTAL","NEW FRONTIER","PAYLESS CAR RENTAL","PRACTICAL CAR RENTAL","RED AND BLUE","RENT RITE CARS","ROUTES CAR RENTAL","ROYAL RENT A CAR","SIXT AUTO","SOUTHWEST CAR RENTAL","SPECIALTY VAN RENTALS","THRIFTY CAR RENTAL","TRIANGLE RENT A CAR","UNIDAS","US RENT A CAR","USAVE AUTO","WESTCOAST RAC"),
                       new Array("Default","AC","AO","AD","AL","AF","ZU","AR","ZI","ZD","CV","CO","CC","DS","ZR","EN","ET","EP","EC","EV","EE","EZ","FX","ZE","HO","SL","IA","IL","EI","LM","LL","MA","MI","ML","MW","ZL","NF","ZA","ZP","BL","RR","RT","RY","SX","SW","VR","ZT","TR","UN","US","SV","WC"));

    AddOptInDDL(opsVal,"selCarComp");
	
    GenOpsForDDL("infant",9,0,0);
    GenOpsForDDL("child",9,0,0);
    GenOpsForDDL("adult",9,1,1);
    GenOpsForDDL("r2noa" ,6,1,2);
    GenOpsForDDL("r2noc" ,7,0,0);
    GenOpsForDDL("r3noa" ,6,1,2);
    GenOpsForDDL("r3noc" ,7,0,0);

    for(var i=1; i<=3;i++)
    {
        for(var j=1; j<=6; j++)
        {
         name= "r" + i + "c" + j + "a";
         GenOpsForDDL(name,12,1,7);
        
        }
    }	
    SetWaterMark("tbFrom", "blur");
    SetWaterMark("tbTo", "blur");
    SetWaterMark("tbCLoc", "blur");
    SetWaterMark("tbHLoc", "blur");
    SetWaterMark("tbALoc", "blur");

}
 
function AddOptInDDL(opsVal, ddlToFill)
{
    for(var i = 0; i <opsVal[0].length ; i++)
    {
        AddOptn(ddlToFill,opsVal[1][i],opsVal[0][i],0);
    }
} 
 
//Populate City/ Airport/ Location	
function SetPopLocs(tbID, str)
{
    GetTag('hdnLocFrom').value=  str.replace(/<\/?[^>]+(>|$)/g, "");
        GetTag(tbID).value= str.split("***")[1].replace(/<\/?[^>]+(>|$)/g, "");
} 

function GetLocCD(autoSgstCD, locTB)
{
    var loc = GetTag(autoSgstCD).value;
	if(loc=="")
		loc = GetTag(locTB).value.toUpperCase();
	else if(loc.length > 3)
		loc = loc.substring(0,3).toUpperCase();
	return loc;
}


/******************getAirportCode*********************/

function gtAptCde(theTagID, hidCtrlCdId)
{
    GetTag(hidCtrlCdId).value="";
    GetTag(theTagID).value="";
	window.open(urlAP + theTagID,"AirportPicker","toolbar=no,status=no,resizable=no,scrollbars=yes,width=650,height=650,top=100,left=100");
}
/******************getAirlineCode*********************/
function gtAlnCde(theTagID)
{
	window.open(urlAL + theTagID, 'AirlineCode', 'toolbar=no,status=no,resizable=no,scrollbars=yes,width=300,height=400,top=100,left=100');
}
/******************ToggleTripType*********************/
function ToggleTT()
{
	if (GetTag('rbOW').checked)
	{
		GetTag('tdlbl').style.display = "none";
		GetTag('tbRTime').value="";
	}
	else 	
	{	
		GetTag('tdlbl').style.display = "";	
		GetTag("retDepTime").options[0].selected = true;//ANY
		// GetTag('retDepTime').value ="1100";	
		setRdate('tbDTime','tbRTime');
	}	
}

function ShowHidett(show_)
{
    if(show_ == 'show')
	 GetTag('minorMsg').style.display = "";
	else
	 GetTag('minorMsg').style.display = "none";
}
function SetWaterMark(tbNm, evnt)
{
    var el = GetTag(tbNm);
    var wtrmrk = "";
    
    if(el.id=="tbFrom" || el.id=="tbTo" || el.id=="tbCLoc")
        wtrmrk = fWtrmrk;
    else if(el.id=="tbCLoc")
        wtrmrk = cWtrmrk;
    else if(el.id=="tbHLoc")
        wtrmrk = hWtrmrk;
    else if(el.id=="tbALoc")
        wtrmrk = aWtrmrk;
        
    if(evnt=="focus")
        if(el.value==wtrmrk)
            el.value="";
        else
            el.select();    
    else if(el.value=='')	
            el.value=wtrmrk;
    
}
function toggle(id) {
   var e = document.getElementById(id);
   if(e.style.display == '')
	  e.style.display = 'none';
   else
	  e.style.display = '';
}

function dispCalendar(elm,dt1,dt2)
{
    var mindt;
    if(elm==dt1)//case of from date
    {
        mindt = new Date();
        mindt = mindt.toDateString(); //mindate will be to date
    }
    else //case of to date
    {
        mindt= GetTag(dt1).value; //mindate will be from date
        
    }
    if(mindt=='mm/dd/yyyy') mindt='';
    var from = GetTag(dt1).value;
    var to = GetTag(dt2).value;
    if(from=='mm/dd/yyyy') from='';
    if(to=='mm/dd/yyyy') to='';
    
    showCalendar(elm,from + "," + to,mindt);
}

function setRdate(depID, retID)
{
	if(depID=='tbDTime' && GetTag('rbOW').checked)
        return;

    if (GetTag(depID).value == "" || GetTag(depID).value == "mm/dd/yyyy")
        return;
    var curDt = new Date(GetTag(depID).value);
    if(curDt != "Invalid Date" &&  curDt != "NaN")
    {
		if(curTab=="H")
			curDt.setDate(curDt.getDate()+2);
		else
			curDt.setDate(curDt.getDate()+7);
			
		var retDt = new Date(GetTag(retID).value);
		if(retDt == "Invalid Date" || retDt == "NaN" || (new Date(GetTag(depID).value)) > retDt)
            GetTag(retID).value = curDt.getMonth()+1+'/'+curDt.getDate()+'/'+curDt.getFullYear();
    }
}
function trim(s)
{
    var l=0; var r=s.length -1;
    while(l < s.length && s[l] == ' ')
    {     l++; }
    while(r > l && s[r] == ' ')
    {     r-=1;     }
    return s.substring(l, r+1);
} 

// Decide browser version
var ns6 = (document.getElementById)? true:false;
var ie4 = (document.all)? true:false;
var ie5 = false;
var mX = 4;
var mY = 4;

// IE Stupidity Check.
if (ie4) {
	if ((navigator.userAgent.indexOf('MSIE 5') > 0) || (navigator.userAgent.indexOf('MSIE 6') > 0) || (navigator.userAgent.indexOf('MSIE 7') > 0)) {
		ie5 = true;
	}
	if (ns6) {
		ns6 = false;
	}
}


//Handle mouse location
document.onmousemove = mouseMove;
function mouseMove(e) {
	if (ns6) {
		mX=e.pageX; 
		mY=e.pageY;
		}
	else if (ie5) {
	    mX=window.event.clientX;
		mY=(document.documentElement.scrollTop +  window.event.clientY);
		}
	else if (ie4) {
		mX=event.x; 
		mY=event.y;
		}
}

//Display widt
var boxWidth = 250;

//Add tooltip message box and its cover
document.write("<div class='drgrbg' id='msgBox' style='display:none;z-index=1602;width:250px;PADDING-TOP:2px;PADDING-BOTTOM:2px;PADDING-RIGHT:2px;PADDING-LEFT:2px; BORDER:1px solid #333333; background-color:#e1e1e1; position:absolute; text-align:justify;'><div id='msgBoxInner' class='notbold' onclick='hideHoverInfo();'>&nbsp;</div><div align=right style='color:#fc3103; text-decoration:underline; font-size:11px;'><a href='JavaScript:hideHoverInfo()' style='color:#fc3103; text-decoration:underline; font-size:11px;font-weight:normal;'>Close [X]</a></div></div>");
	
//catch objects
var	activeMsgBox= document.getElementById("msgBox");
var innerMsgBox = document.getElementById("msgBoxInner");

//show more custom message box
function showHoverInfo(message,width,left,top,hideOnClick)
{
	if (message == null || message.length == 0)
		return;
	
	innerMsgBox.innerHTML = message;
	if (hideOnClick)
	{
		innerMsgBox.setAttribute("onclick","");
	}
	
	if (width != null)
	{
		activeMsgBox.style.width = boxWidth = width;
	}
	// alert("mY: " + mY);
	// alert("scrollTop: " + document.documentElement.scrollTop);
	//prepare message box
	activeMsgBox.style.position = "absolute";
	activeMsgBox.style.left		= (left != null ? left : (document.body.clientWidth < (mX + boxWidth + 20) ? mX-boxWidth : mX)) + "px";
	activeMsgBox.style.top		= (top != null ? top : mY + 5) + "px";
	activeMsgBox.style.display	= "";
	if(typeof hideSelForIE6 == 'function')
	    hideSelForIE6(activeMsgBox, document.getElementById("tabAir"), "hidden");
}

//hide message box & its cover
function hideHoverInfo()
{
	if(activeMsgBox!=null)
	{
	    if(typeof hideSelForIE6 == 'function')
	        hideSelForIE6(document.getElementById("msgBox"), document.getElementById("tabAir"), "visible");
		activeMsgBox.style.display	= "none";
	}
}