// JavaScript Document

var defURL="http://www.atiflights.com/";
var defCookNoCities=4;
var gArrData=null;
var gAJAXExec=false;
var oUtil=new Utility();
var oListManager=new ListManager(oUtil.findObj("divQE_AJAXListContainer"),null,oUtil);
var oPopupManager=new PopupManager(oUtil.findObj("divPopUpContainer"),oUtil,1,1);

/*****************start AJAX functions**********************/

function ClearDepDest(){
oUtil.findObj('deptext').value=""
oUtil.findObj('desttext').value=""
}

ClearDepDest();

function QE_AJAX_getData(sp,arrSpParams,dataFld,displayFld,processFunction)
{	
	var async=BrowserDetect.browser=="Explorer"?false:true;
	var oReqManager=new AJAXManager(0,'http://www.flycheapabroad.com/Libraries/FLY_QE_AJAX/FLY_QE_AJAXgetList.asp',async,null,null,null,null,processFunction);
	oReqManager.addParams('sp',sp);
	oReqManager.addParams('dataFld',dataFld);
	oReqManager.addParams('displayFld',displayFld);
	
	if(arrSpParams){
		for (i=0;i<arrSpParams.length;i++){
			oReqManager.addParams('params',arrSpParams[i]);
		}	
	}
	oReqManager.sendRequest();
}

function QE_AJAX_list_processResponse(text,xml){
	eval("gArrData="+text);	
	gAJAXExec=true;
	
	if(oListManager.target.value.length>3){
		QE_AJAX_list_processClientData(oListManager.target.value);
	}
	else{
		oListManager.data=gArrData;
		oListManager.dataBind();	
	}
	
}
function QE_AJAX_list_processClientData(filter){
	var arrData=null;
	var arrItem=null;
	k=0;
	if(gArrData!=null){
		arrData=new Array();
		for(i=0;i<gArrData.length;i++){
			arrItem=gArrData[i][1];
			if(arrItem.search(eval("/^"+filter+"/i"))!=-1){
				arrData[k]=gArrData[i];			
				k++;
			}
		}
	}
	if(arrData!=null){
		if(arrData.length==0){
			arrData=null;
		}
	}
	oListManager.data=arrData;
	oListManager.dataBind();
}

function listItem_onMouseClickDelegate(hideSelects,listType){
	var text=oListManager.text();
	var value=oListManager.value();
	if(listType==2){
		if(text.lastIndexOf("(")!=-1){
			text=text.substring(0,text.lastIndexOf("(")-1);
		}
	}
	oUtil.setObjValue(oListManager.target,text);
	if(oListManager.targetValue!=null){
		oUtil.setObjValue(oListManager.targetValue,value);
	}
	oListManager.hide(hideSelects);
}

function txtAJAXLists_onClick(objID){
	oUtil.highlightObj(objID);
}

function txtAJAXLists_onKeyDown(event,targetCtrlID,hideSelects,listType){
	var oTarget = oUtil.findObj(targetCtrlID);
	var charCode=event.which?event.which:event.keyCode;	
	if(charCode==9){
		if(oListManager.noOfItems>0){
			listItem_onMouseClickDelegate(hideSelects,listType);	
		}
		oListManager.hide(hideSelects);		
	}
}

function txtAJAXLists_onKeyUp(event,targetCtrlID,listType,offsetT,offsetL,noCharToRaise,hideSelects,targetValue){
	var charCode;	
	var oTarget = oUtil.findObj(targetCtrlID);
	if(targetValue){
		var oTargetValue=oUtil.findObj(targetValue);
	}
	var val=oTarget.value;
	var len=val.length;
	
	if(len>noCharToRaise && oTarget.readOnly==false){		
		charCode=event.which?event.which:event.keyCode;					
		if(charCode==40 || charCode==38 || charCode==13){
			if(oListManager.noOfItems>0){
				switch(charCode){
					case 40:
						oListManager.navigate(0);						
						break;
					case 38:
						oListManager.navigate(1);						
						break;
					case 13:			
						if(oListManager.noOfItems>0){
							listItem_onMouseClickDelegate(hideSelects,listType);
						}
						oListManager.hide(hideSelects);
						break;					
				}
			}			
		}
		else{
			if(charCode!=37 && charCode!=39 && charCode!=45 && charCode!=20 && charCode!=35 && charCode!=36 && charCode!=16){
				var arrSpParams;
				oListManager.target=oTarget;
				if(targetValue){
					oListManager.targetValue=oTargetValue;
				}
				else{
					oListManager.targetValue=null;
				}
				oListManager.show(offsetT,offsetL,0,0,hideSelects);
				oListManager.onClick="listItem_onMouseClickDelegate("+hideSelects+","+listType+")";
				switch(listType){
					case 1:
						if(len==3){
							arrSpParams=new Array("'"+val+"...'","'"+val+"'");
							QE_AJAX_getData("WEB_ATIQEDepCities",arrSpParams,"PLCID","PLC_Title","QE_AJAX_list_processResponse");							
						}
						else{
							if(gAJAXExec==false){
								arrSpParams=new Array("'"+val+"...'","'"+val+"'");
								QE_AJAX_getData("WEB_ATIQEDepCities",arrSpParams,"PLCID","PLC_Title","QE_AJAX_list_processResponse");
							}
							else{
								QE_AJAX_list_processClientData(val);								
							}
							
						}													
						break;
					case 2:
						if(len==3){
							arrSpParams=new Array("'"+val+"...'");
							QE_AJAX_getData("WEB_ATIQEDestinations",arrSpParams,"STR_PlaceID","City","QE_AJAX_list_processResponse");
						}
						else{
							if(gAJAXExec==false){
								arrSpParams=new Array("'"+val+"...'");
								QE_AJAX_getData("WEB_ATIQEDestinations",arrSpParams,"STR_PlaceID","City","QE_AJAX_list_processResponse");
							}
							else{
								QE_AJAX_list_processClientData(val);								
							}
						}				
						break;
				}
			}
		}		
	}
	else{
		oListManager.hide(hideSelects);
		oPopupManager.hide();
		gArrData=null;
		gAJAXExec=false;
	}
}

/******************end AJAX functions**********************/

/**********************Validation***********************/

function QE_AJAX_getDepDestValidation(depParam,destParam,processFunction)
{	//alert(depParam + destParam + processFunction);
	var async=BrowserDetect.browser=="Explorer"?false:true;
	var oReqManager=new AJAXManager(0,'http://www.flycheapabroad.com/Libraries/FLY_QE_AJAX/FLY_QE_AJAXDepDestValidate.asp',async,null,null,null,null,processFunction);
	oReqManager.addParams('depParam',depParam);
	oReqManager.addParams('destParam',destParam);
	oReqManager.sendRequest();
}

function QE_AJAX_Validate(text,xml){
	eval(text);
	var oDep=oUtil.findObj("deptext");
	var oDest=oUtil.findObj("desttext");
	var bIsValid=true;

		//alert(text + "'here is QE_AJAX_Validate'");

		bIsValid=QE_IsValidDepDest(1,"Please select a valid US city airport!",oDep);
		if(bIsValid==false){
			return false;
		}		

		if(isValidDep==false){
			alert("Please select a valid US city airport!");
			txtAJAXLists_onClick(oDep);		
			return false;		
		}
		
		bIsValid=QE_IsValidDepDest(2,"Please select a valid destination!",oDest);
		if(bIsValid==false){
			return false;
		}		

		if(isValidDest==false){
			alert("Please select a valid destination!");
			txtAJAXLists_onClick(oDest);		
			return false;		
		}
				
		else
		
		sel1Complete = true;
		sel2Complete = true;
	Search();
	return true;
	
}	

function QE_IsValidDepDest(callType,popUpMessage,target){
	var arrInvalidValues;
	var oDestDep=target;
	switch(callType){
		case 1:
			arrInvalidValues=new Array("");
			break;
		case 2:
			arrInvalidValues=new Array("");
			break;
	}	
	if(oUtil.isValueEqual(oDestDep,arrInvalidValues)){
		alert(popUpMessage);
		txtAJAXLists_onClick(oDestDep);
		return false;		
	}	
	return true;
}
	
/**********************end Validation*******************/
