var SFTab = GetTag("tabTd");
var dtCh= "/";
var minYear=1900;
var maxYear=2100;

var btn = GetTag("ibSubmit");

var errMsgs = "";
var curTab = "F"; //curTab = currentTab
var fWtrmrk = "Enter a city or airport";

window.onload = function windowLoaded()
{ 
	//InitPage();
	setSearchDatafromQueryString();
}

function GetQueryString(queryString_)
{
	  
	 
	 var queryString;
	 queryString = window.location.search.substring(1);
	 if(queryString !=null)
	 {
	 
	  queryString_  = queryString_.toLowerCase();
	 
	  data = queryString.split("&");
	  for(i = 0; i <data.length ; i++)
	  {
		qvar = data[i].split("=");
		if(qvar[0].toLowerCase() == queryString_)
		{
			return qvar[1];
		}
	  }
	  }
}

function InitPage()
{	
	
	document.onclick = HCal;

	var issetdate = GetQueryString("setdate")
	var frmDt = new Date();
	var toDt = new Date();
    if(issetdate == undefined || issetdate.indexOf("1") == -1)
	{
	GetTag('tbDTime').value="mm/dd/yyyy";
	GetTag('tbRTime').value="mm/dd/yyyy";
	}
		
}

function SetDateObj(objNm,dtObj)
{
	GetTag(objNm).value = (dtObj.getMonth()+1) + "/" + dtObj.getDate() + "/" + dtObj.getFullYear();
}
function GetTag(tagId)
{
	return document.getElementById(tagId);
}

function SearchNow()
{
	var searchStr = "http://www.onetravel.com/default.aspx?tabid=3582&t=f";
	
 	 searchStr += "&from=" + GetLocCD("hdnLocFrom", "tbFrom") + "&fromDt=" + GetTag("tbDTime").value + "&fromTm=2200&to=" 
	 + GetLocCD("hdnLocTo", "tbTo") + "&toDt=" + GetTag("tbRTime").value + "&toTm=2200&rt=true&ad=1&se=0&ch=0&class=1&infl=0&infs=0&airpref=&preftyp=&issearchflexible=true&IsNS=false&IsAltApt=true";
	
	parent.location.href = LSclickURL + escape(escape(searchStr));
		
	}



//Flight Validation
function IsVldFltRqst()
{
    var areVldDts = true;
    var retVal = true;  //To Check Valid Input
    var isRT = false; // Round Trip
    
    errMsgs = "";

        isRT =  true;       
	
    if(IsBlank("tbFrom", "From City/AirportCode can't be left blank!", fWtrmrk))
        retVal = false
    else if(!IsVldNmOrCd('tbFrom', 'Invalid From City/Airport Code.',false))
            retVal = false
	
    if(IsBlank("tbTo", "To City/AirportCode can't be left blank!", fWtrmrk))
        retVal = false
    else if(isRT && !IsVldNmOrCd('tbTo', 'Invalid To City/Airport Code.',false))
            retVal = false
	
	if(IsBlank("tbDTime", "Depart date can't be left blank!", ""))
	    areVldDts = false;
	else if(!isDtVld("tbDTime","Depart"))
			areVldDts = false;
	
	if(!areVldDts) retVal = false;
        
       
    if(isRT)
    {

	    if(IsBlank("tbRTime", "Return date can't be left blank!", ""))
	        areVldDts = false;
		else if(!isDtVld("tbRTime","Return"))
			areVldDts = false;
	        
        if(!areVldDts) retVal = false;
        
	    if(areVldDts && !IsVldDtRng('tbDTime', 'tbRTime', 'Depart date must be before Return date.'))
	        retVal = false;
    }
	    
    if(GetTag("tbA1") != null && GetTag("tbA1").value!="")
        if(!IsVldNmOrCd('tbA1','Invalid AirlineCode1 Code.',true))
            retVal = false;

    if(GetTag("tbA2") != null && GetTag("tbA2").value!="")
        if(!IsVldNmOrCd('tbA2','Invalid AirlineCode2 Code.',true))
            retVal = false;

    if(GetTag("tbA3") != null && GetTag("tbA3").value!="")
        if(!IsVldNmOrCd('tbA3','Invalid AirlineCode3 Code.',true))
            retVal = false;

	return retVal;
}

function IsVldNmOrCd(ctlNm, errMsg, isCde)
{
	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>";
		ctrl.focus();
		return false;
	}
    return true;
}
function isDtVld(ctrlName,ctlDtl)
{
	var ctrl = GetTag(ctrlName);
	if(!IsDtVld(ctrl.value,ctlDtl))
	{
		ctrl.focus();
		return false;
	}  
	return 	true;
}
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])
	{
		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())))
	{
	    errMsgs += "<div>&bull; " + ctrlName + " date can't be before today date </div>"; 
		return false;
	}
	return isvalid;
	
}
function IsVldDtRng(fmCtlNm, toCtlNm, errMsg)
{
    var valDt
    if(curTab=="F")
    	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>";
		 GetTag(fmCtlNm).focus();
		 return false;
	}
	return true;
}
function AddVldtnMsg()
{
	if(errMsgs != null && errMsgs != undefined)
		if(errMsgs!="")
			GetTag('errMsg').innerHTML  =  errMsgs ;	
	errMsgs = "";
}

function IsBlank(ctrlName, errMsg, wtrmark)
{
	
	var ctrl = GetTag(ctrlName);
    if(ctrl.value=="" || ctrl.value == wtrmark)
    {   
        errMsgs += "<div>&bull; " + errMsg + "</div>";
        ctrl.focus();
		return true;
    }
	return false;
}

function IsVldNmOrCd(ctlNm, errMsg, isCde)
{
	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>";
		ctrl.focus();
		return false;
	}
    return true;
}
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])
	{
		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())))
	{
	    errMsgs += "<div>&bull; " + ctrlName + " date can't be before today 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;
}
 

 //--------calx.js

function GetLocCD(autoSuggestCD, locTB)
{
    var loc = GetTag(autoSuggestCD).value;
	if(loc=="")
		loc = GetTag(locTB).value;
	//if(loc.length > 3)
		//loc = loc.substring(0,3);
	return loc;
}
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")
        el.value=(el.value==wtrmrk)?'':el.value;
    else if(el.value=='')	
            el.value=wtrmrk;
    
}

