// JavaScript Document

var defDestValue="type city name here";
var defDeptValue="US city airport";
var defURL="http://asia.tripmasters.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);
var TPbookProcess = $('#bookProcessTP').val();
var MCbookProcess = $('#bookProcessMC').val();
//alert(TPbookProcess +' | '+ MCbookProcess)
/*****************start AJAX functions**********************/
function QE_AJAX_getData(sp,arrSpParams,dataFld,displayFld,processFunction)
{	
//alert(sp +' | '+ arrSpParams +' | '+ dataFld +' | '+ displayFld +' | '+ processFunction)

	var async=BrowserDetect.browser=="Explorer"?false:true;
	//var oReqManager=new AJAXManager(0,'TMAF_CalendarEngine/TMAF_QE_AJAX/AJAX_SQLFunctions.aspx',async,null,null,null,null,processFunction);
	var oReqManager=new AJAXManager(0,'/TMAF_CalendarEngine/TMAF_QE_AJAX/TMAF_QE_AJAXgetList.asp',async,null,null,null,null,processFunction);
	//alert(oReqManager)
	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_getDepDestValidation(depParam,destParam,processFunction)
{	
	var async=BrowserDetect.browser=="Explorer"?false:true;
	var oReqManager=new AJAXManager(0,'/TMAF_CalendarEngine/TMAF_QE_AJAX/TMAF_QE_AJAXDepDestValidate.asp',async,null,null,null,null,processFunction);
	oReqManager.addParams('depParam',depParam);
	oReqManager.addParams('destParam',destParam);
	oReqManager.sendRequest();
}

function QE_AJAX_getMCValidation(depParam,transpOpt,aircarParam,trainParam,processFunction,depMParam)
{	
	var async=BrowserDetect.browser=="Explorer"?false:true;
	var oReqManager=new AJAXManager(0,'/TMAF_CalendarEngine/TMAF_QE_AJAX/TMAF_QE_AJAXMCValidate.asp',async,null,null,null,null,processFunction);
	oReqManager.addParams('depParam',depParam);
	oReqManager.addParams('transpOpt',transpOpt);
	oReqManager.addParams('trainParam',trainParam);
	oReqManager.addParams('aircarParam',aircarParam);
	if(depMParam!=null){
		oReqManager.addParams('depMParam',depMParam);
	}
	oReqManager.sendRequest();
}

function QE_AJAX_list_processResponse(text,xml){
	//alert(text)
	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){
	//alert(hideSelects +'|' + listType)
	var text=oListManager.text();
	var value=oListManager.value();
	//alert(text +'|'+value);
	if(listType==2){
		if(text.lastIndexOf("(")!=-1){
			text=text.substring(0,text.lastIndexOf("(")-1);
		}
	}
	oUtil.setObjValue(oListManager.target,text);
	if(oListManager.targetValue!=null){
		//alert(oListManager.targetValue.id)
		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;
	charCode=event.which?event.which:event.keyCode;
	if(charCode!=13){
		oTargetValue.value="";
	}
	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_EDQEDepCities",arrSpParams,"PLCID","PLC_Title","QE_AJAX_list_processResponse");							
						}
						else{
							if(gAJAXExec==false){
								arrSpParams=new Array("'"+val+"...'","'"+val+"'");
								QE_AJAX_getData("WEB_EDQEDepCities",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_TMAFQEDestinations",arrSpParams,"STR_PlaceID","City","QE_AJAX_list_processResponse");
						}
						else{
							if(gAJAXExec==false){
								arrSpParams=new Array("'"+val+"...'");
								QE_AJAX_getData("WEB_TMAFQEDestinations",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**********************/

function QETab_onMouseAction(action,tab){
	//action=0-over
	//action=1-out
	//action=2-click	
	var arrTabs=new Array('SC','MC');
	switch(action){
		case 0:
			if (oUtil.getObjClass("td"+tab+"Tab")=="QE_"+tab+"_NotActive_td"){
				oUtil.setObjClass("td"+tab+"Tab","QE_"+tab+"_Over_td");				
			}
			break;
		case 1:
			if (oUtil.getObjClass("td"+tab+"Tab")=="QE_"+tab+"_Over_td"){
				oUtil.setObjClass("td"+tab+"Tab","QE_"+tab+"_NotActive_td");				
			}
			break;
		case 2:
			oUtil.setObjClass("td"+tab+"Tab","QE_"+tab+"_Active_td");
			oUtil.displayObj("div"+tab+"Container",true);
			for (i = 0; i < arrTabs.length; i++) 
			{
				if(arrTabs[i]!=tab){
					oUtil.setObjClass("td"+arrTabs[i]+"Tab","QE_"+arrTabs[i]+"_NotActive_td");
					oUtil.displayObj("div"+arrTabs[i]+"Container",false);
				}
			}
			oUtil.setObjClass("tdMainContainer","QE_"+tab+"_MainContainer_td")
			break;
	}	
}

function QE_SQTCheck_onMouseAction(action,val,tab,hValID){
	//action=0-over
	//action=1-out
	//action=2-click			
	//alert(action+' | '+val+' | '+tab+' | '+hValID)
	
	var arrValuesMC=new Array("MCC","MCS");
	var arrValuesSC=new Array("AH","AC","AHC","HC","H","C");
	var arrTabs=new Array('SC','MC');
	switch(action){
		case 3:
		
			alert('Build your own');
		break;
		
		case 0:
			break;
		case 1:
			break;
		case 2:
		
			var st=oUtil.findObj("hMC_State").value;
			if(st=='2'){
				var isSaved=QE_IsSaved();
				if(isSaved==false){
					if(tab=='SC'){
						oUtil.findObj("chkSQT"+val).checked=false;
					}
					return;
				}
			}
			
			//alert("div"+tab+"Container")
			//alert(arrTabs.length +'= arrTab')
			oUtil.displayObj("div"+tab+"Container",true);
			//oUtil.setObjClass("QE_"+tab+"_TopContainer_td","QE_"+tab+"_MainContainer_active_td");	
			for (i = 0; i < arrTabs.length; i++) 
			{
				if(arrTabs[i]!=tab){
					//oUtil.displayObj("div"+arrTabs[i]+"Container",false);
					//oUtil.setObjClass("QE_"+arrTabs[i]+"_TopContainer_td","QE_"+arrTabs[i]+"_MainContainer_td");	
				}
			}
			//alert(action +" | "+ val+" | "+tab+" | "+hValID)
			switch(tab){
				case 'SC':
					//alert('chkSQT'+val)
					oUtil.findObj("chkSQT"+val).checked=true;
					for (i = 0; i < arrValuesMC.length; i++) 
					{						
						oUtil.setObjClass("divSQT"+arrValuesMC[i],"QE_SQT_NotChecked_div");	
						oUtil.setObjClass("tdSQTText"+arrValuesMC[i],"QE_MC_SQT_Text_NotChecked_td");					
					}	
					for (j = 0; j <arrValuesSC.length; j++) 
					{	
						if(val!=arrValuesSC[j]){
							oUtil.setObjClass("tdSQTText"+arrValuesSC[j],"QE_SC_SQT_Text_NotChecked_td");												
						}
					}
					oPopupManager.hide();
					switch(val){
						case 'AH':
							oUtil.displayObj("divSC_AirContainer",true);
							oUtil.displayObj("divSC_NotAirContainer",false);
							oUtil.displayObj("divSC_LocationsTime",false);
							oUtil.setObjInnerHTML("divSCDepartingText","Arriving:&nbsp;",false);
							oUtil.setObjInnerHTML("divSCReturningText","Returning:&nbsp;",false);
							oUtil.displayObj("trSCRooms",true);
							break;
						case 'AC':
							oUtil.displayObj("divSC_AirContainer",true);
							oUtil.displayObj("divSC_NotAirContainer",false);
							oUtil.displayObj("divSC_LocationsTime",false);
							oUtil.displayObj("trSCRooms",false);							
							oUtil.setObjInnerHTML("divSCDepartingText","Arriving:&nbsp;",false);
							oUtil.setObjInnerHTML("divSCReturningText","Returning:&nbsp;",false);
							break;
						case 'AHC':
							oUtil.displayObj("divSC_AirContainer",true);
							oUtil.displayObj("divSC_NotAirContainer",false);
							oUtil.displayObj("divSC_LocationsTime",false);
							oUtil.setObjInnerHTML("divSCDepartingText","Arriving:&nbsp;",false);
							oUtil.setObjInnerHTML("divSCReturningText","Returning:&nbsp;",false);
							oUtil.displayObj("trSCRooms",true);	
							break;
						case 'HC':
							oUtil.displayObj("divSC_AirContainer",false);
							oUtil.displayObj("divSC_NotAirContainer",true);
							oUtil.displayObj("divSC_LocationsTime",true);
							oUtil.setObjInnerHTML("divSCDepartingText","Check-In:&nbsp;",false);
							oUtil.setObjInnerHTML("divSCReturningText","Check-Out:&nbsp;",false);				
							oUtil.displayObj("trSCRooms",true);	
							break;
						case 'H':
							oUtil.displayObj("divSC_AirContainer",false);
							oUtil.displayObj("divSC_NotAirContainer",true);
							oUtil.displayObj("divSC_LocationsTime",false);
							oUtil.setObjInnerHTML("divSCDepartingText","Check-In:&nbsp;",false);
							oUtil.setObjInnerHTML("divSCReturningText","Check-Out:&nbsp;",false);	
							oUtil.displayObj("trSCRooms",true);	
							break;
						case 'C':
							oUtil.displayObj("divSC_AirContainer",false);
							oUtil.displayObj("divSC_NotAirContainer",true);
							oUtil.displayObj("divSC_LocationsTime",true);
							oUtil.setObjInnerHTML("divSCDepartingText","Check-In:&nbsp;",false);
							oUtil.setObjInnerHTML("divSCReturningText","Check-Out:&nbsp;",false);	
							oUtil.displayObj("trSCRooms",false);	
							break;
					}
					break;
				case 'MC':
					//oUtil.setObjClass("divSQT"+val,"QE_SQT_Checked_div");	
					for (i = 0; i <arrValuesSC.length; i++) 
					{	
						//oUtil.findObj("chkSQT"+arrValuesSC[i]).checked=false;
						//oUtil.setObjClass("tdSQTText"+arrValuesSC[i],"QE_SC_SQT_Text_NotChecked_td");												
					}
					for (j = 0; j < arrValuesMC.length; j++) 
					{			
						if(val!=arrValuesMC[j]){
							//oUtil.setObjClass("divSQT"+arrValuesMC[j],"QE_SQT_NotChecked_div");	
							//oUtil.setObjClass("tdSQTText"+arrValuesMC[j],"QE_MC_SQT_Text_NotChecked_td");					
						}
					}						
					switch(val){
						case 'MCC':							
							if(st=='0'){
								QE_MC_StateRepaint(1);
							}
							else{
								oUtil.displayObj("divMC_Messages",false);
								oUtil.setObjInnerHTML("divMC_MessagesText","&nbsp;",false);
								var noCities=parseInt(oUtil.findObj("hMCNoOfCities").value)+1;
								for (i=1;i<noCities;i++){				
									oUtil.displayObj("divMCTrainObs"+i,false);				
								}			
								QE_MC_StateRepaint(st);
							}							
							break;
						case 'MCS':	
								
							QE_MC_StateRepaint(0);
							break;
					}
					break;
			}
			if(hValID){
				var oValID=oUtil.findObj(hValID);
				oValID.value=val;
			}
			//oUtil.setObjClass("tdSQTText"+val,"QE_"+tab+"_SQT_Text_Checked_td");		
			break;			
	}	
	
}

function QE_Check_onMouseAction(action,val,tab,hValID){
	//action=0-over
	//action=1-out
	//action=2-click			
	switch(action){
		case 0:			
			break;			
		case 1:			
			break;
		case 2:
			switch(tab){
				case 'MCCAir':
					var arrValues=new Array("0","1");
					switch(val){
						case '0':								
							oUtil.displayObj("divMCAirOptions",false);	
							oUtil.findObj("divQECheck"+tab+val).checked=true;
							if(oUtil.findObj("divQECheckMCCTransair").checked==true){
								QE_Check_onMouseAction(2,'train','MCCTrans','hMCTrans');								
							}
							break;
						case '1':							
							oUtil.displayObj("divMCAirOptions",true);	
							oUtil.findObj("divQECheck"+tab+val).checked=true;							
							break;						
					}
					break;
				case 'MCCTrans':
					var arrValues=new Array("train","car","onown","air");
					switch(val){
						case 'train':
							oUtil.findObj("divQECheck"+tab+val).checked=true;
							break;
						case 'car':
							oUtil.findObj("divQECheck"+tab+val).checked=true;
							break;
						case 'air':
							oUtil.findObj("divQECheck"+tab+val).checked=true;
							QE_Check_onMouseAction(2,'1','MCCAir','hMCAir');
							break;
						case 'onown':
							oUtil.findObj("divQECheck"+tab+val).checked=true;
							break;
					}
					break;
			}
			oUtil.displayObj("divMC_Messages",false);
			oUtil.setObjInnerHTML("divMC_MessagesText","&nbsp;",false);
			var noCities=parseInt(oUtil.findObj("hMCNoOfCities").value)+1;
			for (i=1;i<noCities;i++){				
				oUtil.displayObj("divMCTrainObs"+i,false);				
			}			
			if(hValID){
				var oValID=oUtil.findObj(hValID);
				oValID.value=val;
			}			
			oUtil.setObjClass("tdQECheck"+tab+val,"QECheck_Text_Checked_td");			
			for (i = 0; i < arrValues.length; i++) 
			{
				if(arrValues[i]!=val){					
					oUtil.setObjClass("tdQECheck"+tab+arrValues[i],"QECheck_Text_NotChecked_td");					
				}
			}			
			break;
	}	
}

function QE_SC_Submit_onMouseAction(action){
	//action=0-over
	//action=1-out
	//action=2-click		
	switch(action){
		case 0:	
			break;
		case 1:
			break;
		case 2:
			var oTypeOfComp=oUtil.findObj("hSC_TypeOfComp");	
			if (oTypeOfComp.value=='AH' || oTypeOfComp.value=='AC' || oTypeOfComp.value=='AHC'){
				var oDep=oUtil.findObj("txtSCLeavingFrom");
				var oDest=oUtil.findObj("txtSCGoingTo");
				QE_AJAX_getDepDestValidation("WEB_EDQEDepCities '"+oDep.value+"','null-null-0-0'","WEB_EDQEDestinations '"+oDest.value+"'","QE_AJAX_SCValidate");		
			}
			else{
				var oDest2=oUtil.findObj("txtSCDestination");
				QE_AJAX_getDepDestValidation("","WEB_EDQEDestinations '"+oDest2.value+"'","QE_AJAX_SCValidate");
			}			
			break;
	}
}

function QE_MC_NextCity_onMouseAction(action){
	//action=0-over
	//action=1-out
	//action=2-click	
	switch(action){
		case 0:	
			break;
		case 1:
			break;
		case 2:
			var oCurrCity=oUtil.findObj("hMC_CurrCity");
			currCity=parseInt(oCurrCity.value);
			var oCity=oUtil.findObj("txtMCCity"+currCity);
			QE_AJAX_getDepDestValidation("","WEB_EDQEDestinations '"+oCity.value+"'","QE_AJAX_MCNextCityValidate");
			break;
	}
}

function QE_MC_Show_onMouseAction(action){
	//action=0-over
	//action=1-out
	//action=2-click	
	switch(action){
		case 0:								
			break;
		case 1:					
			break;
		case 2:
			var oCurrCity=oUtil.findObj("hMC_CurrCity");
			currCity=parseInt(oCurrCity.value);
			var dep;
			var sMParam="";
			for(k=1;k<currCity+1;k++){
				dep=oUtil.findObj("txtMCCity"+k).value;
				if(k==1){
					sMParam+="'"+dep+"'";
				}
				else{
					sMParam+=","+"'"+dep+"'";
				}						
			}
			//alert(sMParam)
			QE_AJAX_getMCValidation("","","","","QE_AJAX_MCShowValidate",sMParam);
			break;
	}
}

function QE_MC_PriceIt_onMouseAction(action){
	//action=0-over
	//action=1-out
	//action=2-click	
	switch(action){
		case 0:													
			break;
		case 1:						
			break;
		case 2:
			var oMCTrans=oUtil.findObj("hMCTrans");
			var state=parseInt(oUtil.findObj("hMC_State").value);
			//alert(state)
			if(state==2){
				depParam=oUtil.findObj("txtMCLeavingFrom").value;
			}
			else{
				depParam="";
			}
			switch(oMCTrans.value){
				case 'onown':
					sAirCarParam="";
					sTrainParam="";
				break;
				case 'car':
					var currCty=parseInt(oUtil.findObj("hMC_CurrCity").value);				
					sAirCarParam=oUtil.findObj("hMCCity1").value+','+oUtil.findObj("hMCCity"+currCty).value;
					sTrainParam="";
				break;
				case 'air':
					sAirCarParam="";
					var currCty=parseInt(oUtil.findObj("hMC_CurrCity").value);
					for(k=1;k<currCty+1;k++){
						if(k==1){
							sAirCarParam+=oUtil.findObj("hMCCity"+k).value;
						}
						else{
							sAirCarParam+=","+oUtil.findObj("hMCCity"+k).value;
						}
					}					
					sTrainParam="";
				break;
				case 'train':
				//alert('Train')
					sAirCarParam="";
					sTrainParam="";
					var currCty=parseInt(oUtil.findObj("hMC_CurrCity").value);
					for(k=1;k<currCty;k++){
						dep=oUtil.findObj("hMCCity"+k).value;
						arrv=oUtil.findObj("hMCCity"+(k+1)).value;
						if(k==1){
							sTrainParam+="'"+dep+"-"+arrv+"'";
						}
						else{
							sTrainParam+=","+"'"+dep+"-"+arrv+"'";
						}						
					}
				break;	
			}	
			QE_AJAX_getMCValidation(depParam,oMCTrans.value,sAirCarParam,sTrainParam,"QE_AJAX_MCValidate");
			break;
	}
}

function QE_MC_Cancel_onMouseAction(action){
	//action=0-over
	//action=1-out
	//action=2-click	
	switch(action){
		case 0:													
			break;
		case 1:						
			break;
		case 2:
			var transpValue=oUtil.findObj('hMCTrans').value;
			QE_MC_StateRepaint(2);
			oUtil.findObj('hMCTrans').value=transpValue;
			QE_Check_onMouseAction(2,transpValue,"MCCTrans","hMCTrans");
			break;
	}
}

function butMCCityEdit_onMouseAction(action,idx){
	//action=0-over
	//action=1-out
	//action=2-click	
	var cityClass=oUtil.getObjClass("txtMCCity"+idx);
	switch(action){
		case 0:		
			switch(cityClass){
				case "QE_input_text":			
					oUtil.setObjClass("butMCCityEdit"+idx,"QE_MC_CitySaveOver_div");							
					break;
				case "QE_input_text_disabled":			
					oUtil.setObjClass("butMCCityEdit"+idx,"QE_MC_CityEditOver_div");							
					break;
			}			
			break;
		case 1:
			switch(cityClass){
				case "QE_input_text":			
					oUtil.setObjClass("butMCCityEdit"+idx,"QE_MC_CitySaveOut_div");							
					break;
				case "QE_input_text_disabled":			
					oUtil.setObjClass("butMCCityEdit"+idx,"QE_MC_CityEditOut_div");							
					break;
			}			
			break;
		case 2:			
			var oCity=oUtil.findObj("txtMCCity"+idx);
			switch(cityClass){
				case "QE_input_text":
					currItemIndexToSave=idx;			
					QE_AJAX_getDepDestValidation("","WEB_EDQEDestinations '"+oCity.value+"'","QE_AJAX_MCSaveValidate");
					break;
				case "QE_input_text_disabled":			
					oUtil.setObjClass("txtMCCity"+idx,"QE_input_text");	
					oUtil.setObjInnerHTML("butMCCityEdit"+idx,"Save",false);
					oUtil.setObjClass("butMCCityEdit"+idx,"QE_MC_CitySaveOut_div");	
					oCity.readOnly=false;					
					break;
			}
			break;
	}
}
function butMCCityRemove_onMouseAction(action,idx){
	//action=0-over
	//action=1-out
	//action=2-click	
	switch(action){
		case 0:			
			oUtil.setObjClass("butMCCityRemove"+idx,"QE_MC_CityRemoveOver_div");							
			break;
		case 1:
			oUtil.setObjClass("butMCCityRemove"+idx,"QE_MC_CityRemoveOut_div");				
			break;
		case 2:			
			oUtil.findObj("txtMCCity"+idx).value=defDestValue;
			var oCurrCity=oUtil.findObj("hMC_CurrCity");
			oCurrCity.value=idx-1;
			if(idx!=2){
				oUtil.displayObj("butMCCityRemove"+(idx-1),true);
			}
			else{
				var state=parseInt(oUtil.findObj("hMC_State").value);
				if(state==2){
					oUtil.findObj('hMCTrans').value='onown';
					oUtil.displayObj("divMCTrans",false);
				}
			}
			oUtil.displayObj("trMCCity"+idx,false);			
			break;
	}
}

function butMCAdvanced_onMouseAction(action){
	//action=0-over
	//action=1-out
	//action=2-click	
	switch(action){
		case 0:			
			oUtil.setObjClass("divMC_Advanced","QE_MC_CityRemoveOver_div");							
			break;
		case 1:
			oUtil.setObjClass("divMC_Advanced","QE_MC_CityRemoveOut_div");				
			break;
		case 2:
			window.location='/MoreCities.aspx';
	}
}

function QE_MC_StateRepaint(state){
	//alert("qType is not null = " + state )
	var oState=oUtil.findObj("hMC_State");
	oState.value=state;	
	var currCty=parseInt(oUtil.findObj("hMC_CurrCity").value);	
	for(l=1;l<currCty+1;l++){
		oUtil.displayObj("trMCCity"+l,true);
		if(currCty!=l && l!=1){
			oUtil.displayObj("butMCCityRemove"+l,false);			
		}				
	}	
	switch(state){
		case 0:			
			oUtil.displayObj("divMCAirOptions",false);
			oUtil.displayObj("divMCAirChoose",false);
			oUtil.displayObj("divMCRoomsACh",false);
			oUtil.displayObj("divMCTrans",false);
			
			oUtil.displayObj("tdMCOR",true);
			
			oUtil.displayObj("tdMCArrivingText",false);
			oUtil.displayObj("tdNoNightsText",false);
			oUtil.displayObj("tdMCArrivingInput",false);
			oUtil.displayObj("tdMCArrivingEmpty",false);
			
			oUtil.displayObj("butMC_NextCity",true);
			oUtil.displayObj("butMC_Show",true);
			
			oUtil.displayObj("butMC_PriceIt",false);
			oUtil.displayObj("divMC_Advanced",true);
			
			var oCity;
			var noCities=parseInt(oUtil.findObj("hMCNoOfCities").value)+1;
			for (i=1;i<noCities;i++){
				oUtil.displayObj("tdMCNoOfNight"+i,false);
				oUtil.displayObj("butMCCityEdit"+i,false);
				oUtil.displayObj("tdMCCityEdit"+i,false);
				oUtil.displayObj("divMCTrainObs"+i,false);
				
				oCity=oUtil.findObj("txtMCCity"+i);
				oUtil.setObjClass(oCity,"QE_input_text");
				oUtil.setObjDim(oCity,170,0,false);
				
				oCity.readOnly=false;			
				
				oUtil.findObj("selNoOfNight"+i).disabled=false;
			}
			
			if (currCty>1){
				oUtil.displayObj("butMCCityRemove"+currCty,true);
			}
			
			oUtil.displayObj("divMC_Messages",false);
			oUtil.setObjInnerHTML("divMC_MessagesText","&nbsp;",false);			
			break;
		case 1:
		
			if(oUtil.findObj("hMCAir").value=="1"){
				
				oUtil.displayObj("divMCAirOptions",true);
				oUtil.setObjClass("txtMCLeavingFrom","QE_input_text");
				oUtil.findObj("txtMCLeavingFrom").readOnly=false;
				oUtil.findObj("selMCCabin").disabled=false;
				
			}
			else{
				oUtil.displayObj("divMCAirOptions",false);
			}
			
			oUtil.displayObj("divMCAirChoose",true);
			oUtil.displayObj("divMCRoomsACh",false);
			oUtil.displayObj("divMCTrans",false);
			
			oUtil.displayObj("butMC_NextCity",true);
			oUtil.displayObj("butMC_Show",true);
			oUtil.displayObj("butMC_PriceIt",false);
			oUtil.displayObj("divMC_Advanced",true);
			
			oUtil.displayObj("tdMCOR",true);
			
			oUtil.displayObj("tdMCArrivingText",true);
			oUtil.displayObj("tdNoNightsText",true);
			oUtil.displayObj("tdMCArrivingInput",true);
			oUtil.displayObj("tdMCArrivingEmpty",false);
			
			var oCity;
			var noCities=parseInt(oUtil.findObj("hMCNoOfCities").value)+1;
			for (i=1;i<noCities;i++){
				oUtil.displayObj("tdMCNoOfNight"+i,true);
				oUtil.displayObj("butMCCityEdit"+i,false);
				oUtil.displayObj("tdMCCityEdit"+i,false);
				oUtil.displayObj("divMCTrainObs"+i,false);
				oCity=oUtil.findObj("txtMCCity"+i);
				oUtil.setObjClass(oCity,"QE_input_text");
				oUtil.setObjDim(oCity,150,0,false);				
				oCity.readOnly=false;								
				oUtil.findObj("selNoOfNight"+i).disabled=false;
			}
						
			if (currCty>1){
				oUtil.displayObj("butMCCityRemove"+currCty,true);
			}
			
			oUtil.setObjClass("txtMCArriving","QE_input_text");			
			
			oUtil.setObjClass("txtMCNoAdults","QE_input_text");
			oUtil.findObj("txtMCNoAdults").readOnly=false;			
			
			var oMCCh=oUtil.findObj("selMCChildren");
			oMCCh.disabled=false;			
			for (i=1;i<parseInt(oMCCh.value)+1;i++){
				oUtil.setObjClass("txtMCChild"+i,"QE_input_text");
				oUtil.findObj("txtMCChild"+i).readOnly=false;	
			}
			oUtil.findObj("selMCRooms").disabled=false;
			
			oUtil.displayObj("divMC_Messages",false);
			oUtil.setObjInnerHTML("divMC_MessagesText","&nbsp;",false);
			
			break;
		case 2:		
			if(oUtil.findObj("hMCAir").value=="1"){
				oUtil.displayObj("divMCAirOptions",true);
				oUtil.setObjClass("txtMCLeavingFrom","QE_input_text");
				oUtil.findObj("txtMCLeavingFrom").readOnly=false;
				oUtil.findObj("selMCCabin").disabled=false;
			}
			else{
				oUtil.displayObj("divMCAirOptions",false);
			}
			
			oUtil.displayObj("divMCAirChoose",true);
			oUtil.displayObj("divMCRoomsACh",true);
			oUtil.displayObj("divMCTrans",true);
			oUtil.displayObj("butMC_NextCity",false);
			oUtil.displayObj("butMC_Show",false);
			oUtil.displayObj("butMC_PriceIt",true);
			oUtil.displayObj("divMC_Advanced",false);
			
			oUtil.displayObj("tdMCOR",false);
			
			oUtil.displayObj("tdMCArrivingText",true);
			oUtil.displayObj("tdNoNightsText",true);
			oUtil.displayObj("tdMCArrivingInput",true);
			oUtil.displayObj("tdMCArrivingEmpty",true);
			
			var oCity;
			var noCities=parseInt(oUtil.findObj("hMCNoOfCities").value)+1;		
			
			for (i=1;i<noCities;i++){
				oUtil.displayObj("tdMCNoOfNight"+i,true);
				oUtil.displayObj("butMCCityEdit"+i,true);
				oUtil.displayObj("tdMCCityEdit"+i,true);
				oUtil.displayObj("divMCTrainObs"+i,false);
				oCity=oUtil.findObj("txtMCCity"+i);
				oUtil.setObjClass(oCity,"QE_input_text_disabled");
				oUtil.setObjDim(oCity,150,0,false);
				oCity.readOnly=true;		
				oUtil.findObj("selNoOfNight"+i).disabled=false;
			}		
			
			if (currCty>1){
				oUtil.displayObj("butMCCityRemove"+currCty,true);
				oUtil.findObj('hMCTrans').value='train';
				oUtil.displayObj("divMCTrans",true);
				QE_Check_onMouseAction(2,"train","MCCTrans","hMCTrans");
			}
			else{
				oUtil.findObj('hMCTrans').value='onown';
				oUtil.displayObj("divMCTrans",false);
			}
			
			oUtil.setObjClass("txtMCArriving","QE_input_text");			
			
			oUtil.setObjClass("txtMCNoAdults","QE_input_text");
			oUtil.findObj("txtMCNoAdults").readOnly=false;			
			
			var oMCCh=oUtil.findObj("selMCChildren");
			oMCCh.disabled=false;
			
			for (i=1;i<parseInt(oMCCh.value)+1;i++){
				oUtil.setObjClass("txtMCChild"+i,"QE_input_text");
				oUtil.findObj("txtMCChild"+i).readOnly=false;	
			}
			oUtil.findObj("selMCRooms").disabled=false;
			
			oUtil.displayObj("divMC_Messages",false);
			oUtil.setObjInnerHTML("divMC_MessagesText","&nbsp;",false);
			break;
		case 3:
			if(oUtil.findObj("hMCAir").value=="1"){
				oUtil.displayObj("divMCAirOptions",true);
				oUtil.setObjClass("txtMCLeavingFrom","QE_inputTrans_text_disabled");
				oUtil.findObj("txtMCLeavingFrom").readOnly=true;
				oUtil.findObj("selMCCabin").disabled=true;
			}
			else{
				oUtil.displayObj("divMCAirOptions",false);
			}
			
			oUtil.displayObj("divMCAirChoose",false);
			oUtil.displayObj("divMCRoomsACh",true);
			oUtil.displayObj("divMCTrans",true);
			oUtil.displayObj("butMC_NextCity",false);
			oUtil.displayObj("butMC_Show",false);
			oUtil.displayObj("butMC_PriceIt",true);
			oUtil.displayObj("divMC_Advanced",false);
			
			oUtil.displayObj("tdMCOR",false);
			
			oUtil.displayObj("tdMCArrivingText",true);
			oUtil.displayObj("tdNoNightsText",true);
			oUtil.displayObj("tdMCArrivingInput",true);
			oUtil.displayObj("tdMCArrivingEmpty",true);
			
			var oCity;
			var noCities=parseInt(oUtil.findObj("hMCNoOfCities").value)+1;
			for (i=1;i<noCities;i++){
				oUtil.displayObj("tdMCNoOfNight"+i,true);
				oUtil.displayObj("butMCCityEdit"+i,false);
				oCity=oUtil.findObj("txtMCCity"+i);
				oUtil.setObjClass(oCity,"QE_input_text_disabled");
				oUtil.setObjDim(oCity,150,0,false);
				oCity.readOnly=true;
				oUtil.findObj("selNoOfNight"+i).disabled=true;
			}		
						
			if (currCty>1){
				oUtil.displayObj("butMCCityRemove"+currCty,false);
			}
			
			oUtil.setObjClass("txtMCArriving","QE_inputTrans_text_disabled");
			oUtil.setObjClass("txtMCNoAdults","QE_inputTrans_text_disabled");
			oUtil.findObj("txtMCNoAdults").readOnly=true;			
			
			var oMCCh=oUtil.findObj("selMCChildren");
			oMCCh.disabled=true;
			
			for (i=1;i<parseInt(oMCCh.value)+1;i++){
				oUtil.setObjClass("txtMCChild"+i,"QE_inputTrans_text_disabled");
				oUtil.findObj("txtMCChild"+i).readOnly=true;	
			}
			oUtil.findObj("selMCRooms").disabled=true;
			break;
	}
}

function selChildren_onChange(val,tab){
	var oSelChildren=oUtil.findObj("sel"+tab+"Children");
	var	uBound=oSelChildren.options.length;
	if(val=="0"){		
		oUtil.displayObj("div"+tab+"ChildAgesLabel",false);		
		for (i=1;i<uBound;i++){
			oUtil.displayObj("div"+tab+"ChildAge"+i,false);
		}
	}
	else{
		mBound=parseInt(val)+1;
		oUtil.displayObj("div"+tab+"ChildAgesLabel",true);
		for (i=1;i<mBound;i++){
			oUtil.displayObj("div"+tab+"ChildAge"+i,true);
		}
		for (j=mBound;j<uBound;j++){
			oUtil.displayObj("div"+tab+"ChildAge"+j,false);
		}
	}
}

function txtMCArriving_onFocus(obj){
	if(oUtil.getObjClass(obj)!="QE_inputTrans_text_disabled"){
		obj.className = 'txt11_input_text';
		gfPop.fStartPop(obj,'01/01/2050','0','0','0');
	}
}

/**********************Validation***********************/

function QE_AJAX_SCValidate(text,xml){	
	eval(text);
	var oDep=oUtil.findObj("txtSCLeavingFrom");
	var oDest=oUtil.findObj("txtSCGoingTo");
	var oDest2=oUtil.findObj("txtSCDestination");
	var oTypeOfComp=oUtil.findObj("hSC_TypeOfComp");
	var bIsValid=true;
	
	if (oTypeOfComp.value=='AH' || oTypeOfComp.value=='AC' || oTypeOfComp.value=='AHC'){		
		
		bIsValid=QE_IsValidDepDest(1,1,"Please select a valid US city airport !",oDep,new Array("selSCCabin"),new Array(-67,155));
		if(bIsValid==false){
			return false;
		}
		if(isValidDep==false){
			oPopupManager.hide();
			oPopupManager.target=oDep;
			oPopupManager.type=1;
			oPopupManager.show("Warning","<img src=\"TMAF_CalendarEngine/images/warning3.gif\" align=\"absmiddle\">&nbsp;&nbsp;Please select a valid US city airport !",-67,155,new Array("selSCCabin"));
			txtAJAXLists_onClick(oDep);		
			return false;		
		}	
		
		bIsValid=QE_IsValidDepDest(2,1,"Please select a valid destination !",oDest,new Array("selSCCabin"),new Array(-67,155));
		if(bIsValid==false){
			return false;
		}		
		if(isValidDest==false){
			oPopupManager.hide();
			oPopupManager.target=oDest;
			oPopupManager.type=1;
			oPopupManager.show("Warning","<img src=\"TMAF_CalendarEngine/images/warning3.gif\" align=\"absmiddle\">&nbsp;&nbsp;Please select a valid destination !",-67,155,new Array("selSCCabin"));
			txtAJAXLists_onClick(oDest);		
			return false;		
		}	
		
		bIsValid=QE_IsValidDate(1,"Please select a valid arrival date !","txtSCDeparting",new Array("selSCCabin"),new Array(-67,155));
		if(bIsValid==false){
			return false;
		}
		
		bIsValid=QE_IsValidDate(1,"Please select a valid return date !","txtSCReturning",new Array("selSCCabin"),new Array(-67,155));
		if(bIsValid==false){
			return false;
		}
	}
	else{
		bIsValid=QE_IsValidDepDest(2,1,"Please select a valid destination !",oDest2,null,new Array(-67,195));
		if(bIsValid==false){
			return false;
		}
		if(isValidDest==false){
			oPopupManager.hide();
			oPopupManager.target=oDest2;
			oPopupManager.type=1;
			oPopupManager.show("Warning","<img src=\"TMAF_CalendarEngine/images/warning3.gif\" align=\"absmiddle\">&nbsp;&nbsp;Please select a valid destination !",-67,195,null);
			txtAJAXLists_onClick(oDest2);		
			return false;		
		}			
		
		bIsValid=QE_IsValidDate(1,"Please select a check-in date !","txtSCDeparting",null,new Array(-67,155));
		if(bIsValid==false){
			return false;
		}
		
		bIsValid=QE_IsValidDate(1,"Please select a check-out date !","txtSCReturning",new Array("selSCCabin"),new Array(-67,155));
		if(bIsValid==false){
			return false;
		}
	}
	
	bIsValid=QE_isValidAdultsNo("txtSCNoAdults",3,new Array("selSCChildren"));
	if(bIsValid==false){
		return false;
	}
	
	var oSelChildren=oUtil.findObj("selSCChildren");
	var	uBound=parseInt(oSelChildren.value);
	for (i=1;i<uBound+1;i++){
		bValidAge=QE_isValidChildAge("txtSCChild" + i);
		if(bValidAge==false){
			return false;
		}
	}
	QE_SC_Submit();
	return true;
}

function QE_AJAX_MCValidate(text,xml){	
	eval(text);
	var oDep=oUtil.findObj("txtMCLeavingFrom");
	var state=parseInt(oUtil.findObj("hMC_State").value);
	var bIsValid=true;	
	if(state==2){
		bIsValid=QE_IsSaved();
		if(bIsValid==false){
			return false;
		}
		if(oUtil.findObj("hMCAir").value=="1"){
			bIsValid=QE_IsValidDepDest(1,1,"Please select a valid US city airport !",oDep,new Array("selMCCabin"),new Array(-67,155));
			if(bIsValid==false){
				return false;
			}
			if(isValidDep==false){
				oPopupManager.hide();
				oPopupManager.target=oDep;
				oPopupManager.type=1;
				oPopupManager.show("Warning","<img src=\"TMAF_CalendarEngine/images/warning3.gif\" align=\"absmiddle\">&nbsp;&nbsp;Please select a valid US city airport !",-67,155,new Array("selMCCabin"));
				txtAJAXLists_onClick(oDep);		
				return false;		
			}	
		}
		
		bIsValid=QE_IsValidDate(1,"Please select a valid arrival date !","txtMCArriving",new Array("selNoOfNight1"),new Array(-67,80));
		if(bIsValid==false){
			return false;
		}
		
		bIsValid=QE_isValidAdultsNo("txtMCNoAdults",3,new Array("selMCChildren"));
		if(bIsValid==false){
			return false;
		}
		var oSelChildren=oUtil.findObj("selMCChildren");
		var	uBound=parseInt(oSelChildren.value);
		for (i=1;i<uBound+1;i++){
			bValidAge=QE_isValidChildAge("txtMCChild" + i);
			if(bValidAge==false){
				return false;
			}
		}
	}
		
	var oMCTrans=oUtil.findObj("hMCTrans");
	switch(oMCTrans.value){
		case 'onown':
			QE_MCC_Submit();				
		break;
		case 'car':
			var currCty=parseInt(oUtil.findObj("hMC_CurrCity").value);				
			if(oUtil.findObj("hMCCity1").value==oUtil.findObj("hMCCity"+currCty).value){
				QE_MCC_Submit();
				return true;
			}			
			if(sCarMsg!=null){
				oUtil.displayObj("divMC_Messages",true);
				oUtil.setObjInnerHTML("divMC_MessagesText",sCarMsg+"<br><span class=\"Arial11Red\">Call 1-877-267-2247 or select other transportation option.</span>",false);
				QE_MC_StateRepaint(3);
			}
			else{
				QE_MCC_Submit();					
			}
		break;
		case 'air':
			if(sAirMsg!=null){
				oUtil.displayObj("divMC_Messages",true);
				oUtil.setObjInnerHTML("divMC_MessagesText",sAirMsg,false);
				QE_MC_StateRepaint(3);
			}
			else{
				QE_MCC_Submit();
			}
			
		break;
		case 'train':
			if(oUtil.findObj("divMC_MessagesText").innerHTML.indexOf("* overnight train")!=-1){
				QE_MCC_Submit();
				return true;
			}
			var isTrain;
			var dep;
			var arrv;
			var dep0;
			var arrv0;
			var sMessage="";
			var currCty=parseInt(oUtil.findObj("hMC_CurrCity").value);
			var isNight=false;
		
			for(i=1;i<currCty;i++){
				dep0=oUtil.findObj("hMCCity"+i).value;
				arrv0=oUtil.findObj("hMCCity"+(i+1)).value;
				depName=oUtil.findObj("txtMCCity"+i).value;
				arrName=oUtil.findObj("txtMCCity"+(i+1)).value;
				for(j=0;j<arrTrain.length;j++){
					isTrain=arrTrain[j][0];	
					dep=arrTrain[j][1];
					arrv=arrTrain[j][2];					
					if(dep==dep0 && arrv==arrv0){
						if(isTrain=="no"){
							if(sMessage==""){
								sMessage=sMessage+"<span class=\"Arial11Red\"> No train between <span style=\"color:#000000;\">"+depName+"</span> and <span style=\"color:#000000;\">"+arrName+"</span>.</span>";
							}
							else{
								sMessage=sMessage+"<br><span class=\"Arial11Red\">No train between <span style=\"color:#000000;\">"+depName+"</span> and <span style=\"color:#000000;\">"+arrName+"</span>.<span>";
							}
						}
						if(isTrain=="night"){
							oUtil.displayObj("divMCTrainObs"+i,true);
							isNight=true;
						}							
					}
				}						
			}
			if(sMessage==""){
				if(isNight==true){
					sMessage="<span class=\"Arial11Red\">* overnight train.<br>Click \"Go\" to continue or change transportation option.</span>";
				}
				else{
					QE_MCC_Submit();
					return true;
				}
			}
			else{
				sMessage=sMessage+"<br><span class=\"Arial11\">Please call or select other transportation.</span>";
			}
			oUtil.displayObj("divMC_Messages",true);
			oUtil.setObjInnerHTML("divMC_MessagesText",sMessage,false);
			QE_MC_StateRepaint(3);		
		break;
	}	
	return true;	
}

function QE_AJAX_MCNextCityValidate(text,xml){
	eval(text);
	var oCurrCity=oUtil.findObj("hMC_CurrCity");
	currCity=parseInt(oCurrCity.value);
	var oCity=oUtil.findObj("txtMCCity"+currCity);
	var oMC_TypeOfComp=oUtil.findObj("hMC_TypeOfComp");
	var arrHide;
	var popType;
	if (oMC_TypeOfComp.value=='MCS'){
		arrHide=null;
		popType=1;
		offTop=-67;
	}
	else{
		arrHide=new Array("selNoOfNight"+currCity);
		popType=3;
		offTop=0;
	}
	
	var bIsValid=true;	
	bIsValid=QE_IsValidDepDest(2,popType,"Please select a valid destination !",oCity,arrHide,new Array(offTop,155));
	if(bIsValid==false){
		return false;
	}
	if(isValidDest==false){
		oPopupManager.hide();
		oPopupManager.target=oCity;
		oPopupManager.type=popType;
		oPopupManager.show("Warning","<img src=\"TMAF_CalendarEngine/images/warning3.gif\" align=\"absmiddle\">&nbsp;&nbsp;Please select a valid destination !",offTop,155,arrHide);
		txtAJAXLists_onClick(oCity);		
		return false;		
	}
	
	if (oMC_TypeOfComp.value=='MCS'){
		bIsValid=QE_IsValidMDest(currCity,popType,arrHide,new Array(offTop,155));
		if(bIsValid==false){
			return false;
		}
	}
	
	var noCities=parseInt(oUtil.findObj("hMCNoOfCities").value);
	if(currCity<noCities){
		oCurrCity.value=currCity+1;
		oUtil.displayObj("trMCCity"+(currCity+1),true);
		if(currCity!=1){
			oUtil.displayObj("butMCCityRemove"+currCity,false);			
		}				
	}	
}
function QE_AJAX_MCShowValidate(text,xml){
	//alert(text);
	eval(text);
	var oCurrCity=oUtil.findObj("hMC_CurrCity");
	currCity=parseInt(oCurrCity.value);
	var oCity=oUtil.findObj("txtMCCity"+currCity);
	var oMC_TypeOfComp=oUtil.findObj("hMC_TypeOfComp");
	var arrHide;
	var popType;
	var offTop;
	if (oMC_TypeOfComp.value=='MCS'){
		arrHide=null;
		popType=1;
		offTop=-67;
	}
	else{
		arrHide=new Array("selNoOfNight"+currCity);
		popType=3;
		offTop=0;
	}
	
	var bIsValid=true;	
	bIsValid=QE_IsValidDepDest(2,popType,"Please select a valid destination !",oCity,arrHide,new Array(offTop,155));
	if(bIsValid==false){
		return false;
	}
	if(isValidMDep==false){
		oPopupManager.hide();
		oPopupManager.target=oCity;
		oPopupManager.type=0;
		oPopupManager.okOnClick="close_onClick(false);";
		oPopupManager.show("Warning","<img src=\"TMAF_CalendarEngine/images/warning3.gif\" align=\"absmiddle\">&nbsp;&nbsp;Please select valid destinations !",offTop,155,arrHide);
		oPopupManager.okOnClick=null;
		return false;		
	}
	
	if (oMC_TypeOfComp.value=='MCS'){
		bIsValid=QE_IsValidMDest(currCity,popType,arrHide,new Array(offTop,155));
		if(bIsValid==false){
			return false;
		}
	}
	var oState=oUtil.findObj("hMC_State");	
	if(oMC_TypeOfComp.value=="MCC"){
		st=parseInt(oState.value)+1;
		QE_MC_StateRepaint(st);		
	}
	else{
		QE_MCS_Submit();
	}
}

var currItemIndexToSave=1;
function QE_AJAX_MCSaveValidate(text,xml){
	eval(text);
	var oCity=oUtil.findObj("txtMCCity"+currItemIndexToSave);	
	var bIsValid=true;
	
	bIsValid=QE_IsValidDepDest(2,3,"Please select a valid destination !",oCity,null,new Array(0,60));
	if(bIsValid==false){
		return false;
	}
	if(isValidDest==false){
		oPopupManager.hide();
		oPopupManager.target=oCity;
		oPopupManager.type=3;
		oPopupManager.show("Warning","<img src=\"TMAF_CalendarEngine/images/warning3.gif\" align=\"absmiddle\">&nbsp;&nbsp;Please select a valid destination !",0,60,null);
		txtAJAXLists_onClick(oCity);		
		return false;		
	}	
	oUtil.setObjClass("txtMCCity"+currItemIndexToSave,"QE_input_text_disabled");
	oUtil.setObjInnerHTML("butMCCityEdit"+currItemIndexToSave,"Edit",false);
	oUtil.setObjClass("butMCCityEdit"+currItemIndexToSave,"QE_MC_CityEditOut_div");
	oCity.readOnly=true;
}

function QE_IsValidDepDest(callType,popUpType,popUpMessage,target,arrSelectsToHide,arrOffset){
	var arrInvalidValues;
	var oDestDep=target;
	switch(callType){
		case 1:
			arrInvalidValues=new Array("",defDeptValue);
			break;
		case 2:
			arrInvalidValues=new Array("",defDestValue);
			break;
	}	
	if(oUtil.isValueEqual(oDestDep,arrInvalidValues)){
		oPopupManager.hide();
		oPopupManager.target=oDestDep;
		oPopupManager.type=popUpType;
		oPopupManager.show("Warning","<img src=\"TMAF_CalendarEngine/images/warning3.gif\" align=\"absmiddle\">&nbsp;&nbsp;"+popUpMessage,arrOffset[0],arrOffset[1],arrSelectsToHide);
		txtAJAXLists_onClick(oDestDep);
		return false;		
	}	
	return true;
}

function QE_IsValidMDest(currCity,popUpType,arrSelectsToHide,arrOffset){
	var isValid=true;
	var oTarget=oUtil.findObj("txtMCCity"+currCity);	
	var oCity;
	var oTargetUValue=oTarget.value.substring(0,1).toUpperCase()+oTarget.value.substring(1,oTarget.value.length).toLowerCase();
	for(i=1;i<currCity+1;i++){
		oCity=oUtil.findObj("txtMCCity"+i);
		if(oTarget.id!=oCity.id){
			if(oTarget.value==oCity.value || oTargetUValue==oCity.value){
				isValid=false;
				break;
			}
		}
	}		
	if(isValid==false){
		oPopupManager.hide();
		oPopupManager.target=oTarget;
		oPopupManager.type=popUpType;
		message="<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\"><tr><td><img src=\"TMAF_CalendarEngine/images/warning3.gif\" align=\"absmiddle\">&nbsp;&nbsp;</td><td>This destination is already selected.<br>Please select another one!</td></tr></table>";
		oPopupManager.show("Warning",message,arrOffset[0],arrOffset[1],arrSelectsToHide);
		txtAJAXLists_onClick(oTarget);
		return false;		
	}	
	return true;
}

function QE_IsSaved(){	
	var noCities=parseInt(oUtil.findObj("hMCNoOfCities").value)+1;
	for (i=1;i<noCities;i++){
		oCity=oUtil.findObj("txtMCCity"+i);
		if (oCity.readOnly==false){
			oPopupManager.hide();
			oPopupManager.target=oCity;
			oPopupManager.type=3;
			oPopupManager.okOnClick="close_onClick(false);butMCCityEdit_onMouseAction(2,"+i+");";
			oPopupManager.show("Warning","<img src=\"TMAF_CalendarEngine/images/warning3.gif\" align=\"absmiddle\">&nbsp;&nbsp;Please save your changes !",0,60,null);
			oPopupManager.okOnClick=null;
			return false;		
		}
	}
	return true;
}

function QE_IsValidDate(popUpType,popUpMessage,target,arrSelectsToHide,arrOffset){
	var oDate=oUtil.findObj(target);	
	if(oUtil.isValueEqual(oDate,new Array("","mm/dd/yyyy"))){
		oDate.className = 'txt11_input_textalert';
		oPopupManager.hide();
		oPopupManager.target=oDate;
		oPopupManager.type=popUpType;
		oPopupManager.show("Warning","<img src=\"TMAF_CalendarEngine/images/warning3.gif\" align=\"absmiddle\">&nbsp;&nbsp;"+popUpMessage,arrOffset[0],arrOffset[1],arrSelectsToHide);
		return false;		
	}
}
	
function QE_isValidChildAge(target){	
	var oChildAge=oUtil.findObj(target);	
	if(!oUtil.isInteger(oChildAge)){
		oPopupManager.hide();
		oPopupManager.target=oChildAge;
		oPopupManager.type=3;
		oPopupManager.show("Warning","<img src=\"TMAF_CalendarEngine/images/warning3.gif\" align=\"absmiddle\">&nbsp;&nbsp;Please enter a valid child age !",0,15,null);
		return false;		
	}
	if(parseInt(oChildAge.value)>11){
		oPopupManager.hide();
		oPopupManager.target=oChildAge;
		oPopupManager.type=3;
		oPopupManager.show("Warning","<img src=\"TMAF_CalendarEngine/images/warning3.gif\" align=\"absmiddle\">&nbsp;&nbsp;Child age must be a numerical value smaller than 12 !",0,15,null);
		return false;		
	}	
	return true;
}

function QE_isValidAdultsNo(target,listType,arrSelectsToHide){
	var oAdl=oUtil.findObj(target);	
	if(!oUtil.isInteger(oAdl) || oAdl.value=="0"){
		oPopupManager.hide();
		oPopupManager.target=oAdl;
		oPopupManager.type=listType;
		oPopupManager.show("Warning","<img src=\"TMAF_CalendarEngine/images/warning3.gif\" align=\"absmiddle\">&nbsp;&nbsp;Please enter a valid number of adults !",5,23,arrSelectsToHide);
		return false;		
	}
}

/**********************end Validation*******************/
/**********************start submit fuctions************/
function QE_MCS_Submit(){
	var oForm=oUtil.findObj("frmQueryEngine");
	var sDest="";
	var oCity;
	var currCty=parseInt(oUtil.findObj("hMC_CurrCity").value);
	var cook="";
	var cook="";
	
	for(j=1;j<defCookNoCities+1;j++){
		valCCity=oUtil.findObj("hMCCity"+j).value;
		textCCity=oUtil.findObj("txtMCCity"+j).value;		
		if(textCCity==defDestValue){
			textCCity="";
			valCCity="";
		}
		cook=cook+valCCity+"@"+textCCity+"@";		
	}
	
	for(i=1;i<currCty+1;i++){
		sCity=oUtil.findObj("txtMCCity"+i).value;
		sCtyID=oUtil.findObj("hMCCity"+i).value;
		if(i==1){			
			sDest=sCity;
			sDestID=sCtyID;
			oUtil.findObj("txtCty1").value=sCity;
		}
		else{
			sDest+="_"+sCity;
			sDestID+=","+sCtyID;
		}
		oUtil.findObj("txtCty"+i+"value").value=oUtil.findObj("hMCCity"+i).value;		
	}
	oUtil.setCookie('howV2',cook+"@@@@@@@@@0",7);
	oUtil.setCookie('qType','1',7);
	//alert(sDest)
	//alert(sDestID)
	oUtil.findObj("allID").value=sDestID
	oUtil.findObj("allNA").value=sDest
	oForm.action="Find_Package_to_"+ sDest +".aspx";
	//oForm.action=defURL+"Build_Package_to_"+ sDest +".aspx";
	oForm.submit();
}

function QE_MCC_Submit(){
	var oForm=oUtil.findObj("frmQueryEngine");	
	oUtil.findObj("ByStayNite").value="1";
	var transp=oUtil.findObj("hMCTrans").value;
	var air=parseInt(oUtil.findObj("hMCAir").value);
	
	var depVal=oUtil.findObj("hMCLeavingFrom").value;
	var cookAir;
	
	switch(air){
		case 0:
			oUtil.findObj("iDepCity").value="-1";
			oUtil.findObj("iRetCity").value="-1";
			oUtil.findObj("addFlight").value='False';
			cookAir=oUtil.findObj("txtMCArriving").value+"@@@";
			break;
		case 1:
			oUtil.findObj("iDepCity").value=depVal;
			oUtil.findObj("iRetCity").value=depVal;
			oUtil.findObj("addFlight").value='True';
			cookAir=oUtil.findObj("txtMCArriving").value+"@"+oUtil.findObj("selMCCabin").value+"@"+depVal+"@"+oUtil.findObj("txtMCLeavingFrom").value;
			break;
	}
	var noCities=parseInt(oUtil.findObj("hMCNoOfCities").value);
	var currCity=parseInt(oUtil.findObj("hMC_CurrCity").value);
	
	oUtil.findObj("StayCityS").value=oUtil.findObj("hMCCity1").value;
	oUtil.findObj("StayCityS_Name").value=oUtil.findObj("txtMCCity1").value;
	oUtil.findObj("StayCityE").value=oUtil.findObj("hMCCity"+currCity).value;	
	oUtil.findObj("StayCityE_Name").value=oUtil.findObj("txtMCCity"+currCity).value;
		
	var cook="";
	for(j=1;j<defCookNoCities+1;j++){
		valCCity=oUtil.findObj("hMCCity"+j).value;
		textCCity=oUtil.findObj("txtMCCity"+j).value;		
		if(textCCity==defDestValue){
			textCCity="";
			valCCity="";
		}
		cook=cook+valCCity+"@"+textCCity+"@";	
	}
	for(i=1;i<noCities+1;i++){
		oUtil.findObj("StayCity"+i).value="0";
		oUtil.findObj("StayCity"+i+"_Name").value="";
		oUtil.findObj("APICity"+i).value="";
		oUtil.findObj("StayNite"+i).value="";					
		oUtil.findObj("OverNiteT"+i).value="";		
	}		
	for(i=1;i<currCity+1;i++){
		valCity=oUtil.findObj("hMCCity"+i).value;		
		oUtil.findObj("StayCity"+i).value=valCity;
		if(valCity=="2782" || valCity=="2758" || valCity=="1184" || valCity=="1207" || valCity=="2557" || valCity=="2781" || valCity=="2720" || valCity=="1284" || valCity=="3232" || valCity=="1096" || valCity=="2747" || valCity=="3231" || valCity=="2754" || valCity=="3015" || valCity=="2748" || valCity=="2751" || valCity=="981" || valCity=="2784" || valCity=="2954" || valCity=="1147" || valCity=="1093" || valCity=="1233" || valCity=="1285" || valCity=="2725" || valCity=="2716" || valCity=="2800" || valCity=="1141" || valCity=="2816" || valCity=="2749" || valCity=="965" || valCity=="2721" || valCity=="2736" || valCity=="2740" || valCity=="2731" || valCity=="2724" || valCity=="2735" || valCity=="2733" || valCity=="2732" || valCity=="2508" || valCity=="2804" || valCity=="2507"){
			oUtil.findObj("APICity"+i).value="2|X1-X3-X5-X6"; //-X5 Travco
		}else{
			oUtil.findObj("APICity"+i).value="2|X1-X3-X5"; //-X5 Travco
		}
		oUtil.findObj("StayNite"+i).value=oUtil.findObj("selNoOfNight"+i).value;
		oUtil.findObj("StayCity"+i+"_Name").value=oUtil.findObj("txtMCCity"+i).value;				
		if(oUtil.findObj("divMCTrainObs"+i).style['display']=="none"){
			oUtil.findObj("OverNiteT"+i).value="0";
		}
		else{
			oUtil.findObj("OverNiteT"+i).value="1";
		}		
	}
	
	oUtil.findObj("AirVendorAPI").value = "3|62-63-64-65-79-82-84";
	var cabinVal=oUtil.findObj("selMCCabin").value;
	
	oUtil.findObj("TypeOfComp").value="";
	oUtil.findObj("InDate1").value=oUtil.findObj("txtMCArriving").value;	
	oUtil.findObj("OutDate1").value="";
	oUtil.findObj("PickUpLocation").value="";
	oUtil.findObj("PickUpTime").value="";
	oUtil.findObj("DropOffLocation").value="";
	oUtil.findObj("DropOffTime").value="";
	oUtil.findObj("Cabin").value=cabinVal;
	oUtil.findObj("iAdults").value=oUtil.findObj("txtMCNoAdults").value;
	var noChildren=oUtil.findObj("selMCChildren").value;
	oUtil.findObj("iChildren").value=noChildren;
	
	for(i=1;i<parseInt(noChildren)+1;i++){
		oUtil.findObj("iChild"+i).value=oUtil.findObj("txtMCChild"+i).value;
	}
	oUtil.findObj('addHotel').value="";
	//alert(transp)
	switch(transp){
		case 'train':			
			oUtil.findObj('addTransfer_IC').value='True';
			oUtil.findObj('addCar').value='False';
			oUtil.findObj('addAirStopOver_IC').value='False';
			break;
		case 'car':
			oUtil.findObj('addTransfer_IC').value='False';
			oUtil.findObj('addCar').value='True';
			oUtil.findObj('addAirStopOver_IC').value='False';
			break;
		case 'air':
			oUtil.findObj('addTransfer_IC').value='False';
			oUtil.findObj('addCar').value='False';
			oUtil.findObj('addAirStopOver_IC').value='True';
			break;
		case 'own':
			oUtil.findObj('addTransfer_IC').value='False';
			oUtil.findObj('addCar').value='False';
			oUtil.findObj('addAirStopOver_IC').value='False';
			break;
		case 'onown':
			oUtil.findObj('addTransfer_IC').value='False';
			oUtil.findObj('addCar').value='False';
			oUtil.findObj('addAirStopOver_IC').value='False';
			break;	
	}	
	
	oUtil.setCookie('howV2',cook+oUtil.findObj("txtMCChild2").value +"@"+ oUtil.findObj("txtMCChild1").value+"@"+noChildren+"@"+oUtil.findObj("txtMCNoAdults").value+"@"+transp+"@"+cookAir+"@1",7);	
	oUtil.setCookie('qType','1',7);
	//__utmLinkPost('http://reservations.tripmasters.com/TVLAPI/Multicity3/MC_ComponentList.ASP');
	__utmLinkPost(MCbookProcess);
	//oForm.action="http://reservations.tripmasters.com/TVLAPI/Multicity3/MC_ComponentList.ASP";	
	oForn.action=MCbookProcess;
	oForm.submit();
}

function QE_SC_Submit(){
	var oForm=oUtil.findObj("frmQueryEngine");
	var depVal=oUtil.findObj("hSCLeavingFrom").value;
	oUtil.findObj("iDepCity").value=depVal;
	oUtil.findObj("iRetCity").value=depVal;
	oUtil.findObj('addTransfer_IC').value="";			
	oUtil.findObj('addAirStopOver_IC').value="";
	oUtil.findObj("ByStayNite").value="";
	var noCities=parseInt(oUtil.findObj("hMCNoOfCities").value);	
	for(i=1;i<noCities+1;i++){
		oUtil.findObj("StayCity"+i).value="0";
		oUtil.findObj("APICity"+i).value="";
		oUtil.findObj("StayNite"+i).value="";		
		oUtil.findObj("StayCity"+i+"_Name").value="";		
		oUtil.findObj("OverNiteT"+i).value="";
		
	}
	var typeOfComp=oUtil.findObj("hSC_TypeOfComp").value;
	if(typeOfComp.indexOf("A")!=-1){
		var destVal=oUtil.findObj("hSCGoingTo").value;
		var destText=oUtil.findObj("txtSCGoingTo").value;
	}
	else{
		var destVal=oUtil.findObj("hSCDestination").value;
		var destText=oUtil.findObj("txtSCDestination").value;
	}
	
	destVal2=parseInt(destVal);
	
	//2646,4034,4026
	if (destVal2 == 2646 || destVal2 == 4034 || destVal2 == 4026){
		u = "2|X7"; //-X5 Travco
	}
	else{
		u = "2|X1-X3-X5"; 
	}
	oUtil.findObj("StayCityS").value=destVal;
	oUtil.findObj("StayCityS_Name").value=destText;
	oUtil.findObj("APICity1").value=u;
	oUtil.findObj("StayCity1").value=destVal;
	oUtil.findObj("StayCity1_Name").value=destText;
	oUtil.findObj("StayCityE").value=destVal;
	oUtil.findObj("StayCityE_Name").value=destText;
	var cabinVal=oUtil.findObj("selSCCabin").value;
	if (cabinVal=="C" || cabinVal=="F"){
		oUtil.findObj("AirVendorAPI").value = "3|62-63-64-65-79-83-84";
	}	
	oUtil.findObj("TypeOfComp").value=typeOfComp;
	oUtil.findObj("InDate1").value=oUtil.findObj("txtSCDeparting").value;
	oUtil.findObj("OutDate1").value=oUtil.findObj("txtSCReturning").value;
	oUtil.findObj("PickUpLocation").value=oUtil.findObj("selSCPickUpLocation").value;
	oUtil.findObj("PickUpTime").value=oUtil.findObj("selSCPickUpTime").value;
	oUtil.findObj("DropOffLocation").value=oUtil.findObj("selSCDropOffLocation").value;
	oUtil.findObj("DropOffTime").value=oUtil.findObj("selSCDropOffTime").value;
	oUtil.findObj("Cabin").value=cabinVal;
	oUtil.findObj("iAdults").value=oUtil.findObj("txtSCNoAdults").value;
	var noChildren=oUtil.findObj("selSCChildren").value;
	oUtil.findObj("iChildren").value=noChildren;	
	for(i=1;i<parseInt(noChildren)+1;i++){
		oUtil.findObj("iChild"+i).value=oUtil.findObj("txtSCChild"+i).value;
	}
	
	switch(typeOfComp){
		case 'AH':
			findObj('addFlight').value='True';
			findObj('addHotel').value='True';
			findObj('addCar').value='False';
			break;
		case 'AC':
			findObj('addFlight').value='True';
			findObj('addHotel').value='False';
			findObj('addCar').value='True';
			break;
		case 'AHC':
			findObj('addFlight').value='True';
			findObj('addHotel').value='True';
			findObj('addCar').value='True';
			break;
		case 'HC':
			findObj('addFlight').value='False';
			findObj('addHotel').value='True';
			findObj('addCar').value='True';
			break;
		case 'H':
			findObj('addFlight').value='False';
			findObj('addHotel').value='True';
			findObj('addCar').value='False';
			break;
		case 'C':
			findObj('addFlight').value='False';
			findObj('addHotel').value='False';
			findObj('addCar').value='True';
			break;
	}	
	
	oUtil.setCookie('addV1',typeOfComp+"@"+ depVal +"@"+ oUtil.findObj("txtSCLeavingFrom").value +"@"+ destText +"@"+ destVal +"@"+ destText +"@"+ u +"@"+ oUtil.findObj("txtSCDeparting").value +"@"+ oUtil.findObj("txtSCReturning").value +"@"+ oUtil.findObj("txtSCNoAdults").value +"@"+ noChildren +"@"+ oUtil.findObj("txtSCChild1").value +"@"+ oUtil.findObj("txtSCChild2").value +"@"+ "" +"@"+ "",7);	
	oUtil.setCookie('qType','0',7);
	//oForm.action="http://reservations.tripmasters.com/TVLAPI/Multicity3/MC_ComponentList.ASP";	
	oForm.action=TPbookProcess;
	oForm.submit();
}
/**********************end submit fuctions************/
function body_onClick(){
	if(oListManager.noOfItems>0){
		listItem_onMouseClickDelegate(true,2);	
	}	
}
oUtil.addEvent(document.body,"click",body_onClick);

function QE_setDefaultScreen(){
	
	var qType=oUtil.getCookie('qType');
	var addV1=oUtil.getCookie('addV1');
	var howV2=oUtil.getCookie('howV2');
	
	//alert(qType +' | '+ addV1 +' | '+ howV2)
	
	if (qType==null){
		if(addV1==null && howV2==null){
			QE_MC_StateRepaint(1);
			QE_SQTCheck_onMouseAction(2,'MCS','MC','hMC_TypeOfComp');			
			return;
		}
		else{
			if(howV2!=null){
				qType='1';
			}
			else{
				qType='0';
			}
		}
	}		
		if(addV1!=null){
		var arrSCParts=addV1.split("@");
		oUtil.setObjValue("hSCLeavingFrom",arrSCParts[1]);
		oUtil.setObjValue("txtSCLeavingFrom",arrSCParts[2]);
		oUtil.setObjValue("txtSCGoingTo",arrSCParts[3]);
		oUtil.setObjValue("hSCGoingTo",arrSCParts[4]);
		oUtil.setObjValue("txtSCDestination",arrSCParts[3]);
		oUtil.setObjValue("hSCDestination",arrSCParts[4]);					
		var d = Date.parse(Date())-Date.parse(arrSCParts[7]);
		
		if(d<0){
			oUtil.setObjValue("txtSCDeparting",arrSCParts[7]);	
			oUtil.setObjValue("txtSCReturning",arrSCParts[8]);
		}		
		oUtil.setObjValue("txtSCNoAdults",arrSCParts[9]);		
		
		var noChildren=arrSCParts[10];
		oUtil.setObjValue("selSCChildren",noChildren);
		selChildren_onChange(noChildren,'SC');		
		oUtil.setObjValue("txtSCChild1",arrSCParts[11]);
		oUtil.setObjValue("txtSCChild2",arrSCParts[12]);	
		
		if(qType=='0'){
			//alert("here we are on addV1!=null and qType = 0")
			QE_MC_StateRepaint(1);
			QE_SQTCheck_onMouseAction(2,arrSCParts[0],'SC','hSC_TypeOfComp');
		}		
	}
	
	if(howV2!=null){
		//alert("here we are on howV2 !=")
		var arrMCParts=howV2.split("@");
		var sMCType=arrMCParts[arrMCParts.length-1];
		var noCities=arrMCParts.length-10;
		
		if(arrMCParts.length<2*defCookNoCities+10){
			sMCType='0';
			noCities=2*defCookNoCities;
		}
		
		var k1=k2=0;		
		for (i=0;i<noCities;i++){			
			if(arrMCParts[i]!="" && arrMCParts[i]!="City"){
				if(i%2>0){
					k1++;
					oCity=oUtil.findObj("txtMCCity"+k1);
					oUtil.setObjValue(oCity,arrMCParts[i]);					
				}
				else{
					k2++;
					oCity=oUtil.findObj("hMCCity"+k2);
					oUtil.setObjValue(oCity,arrMCParts[i]);						
				}
			}
		}
		oUtil.setObjValue("hMC_CurrCity",k2);
				
		if(sMCType=='1'){
			var depVal=arrMCParts[arrMCParts.length-3];
			var depText=arrMCParts[arrMCParts.length-2];
			if(depVal!='' && depText!=''){
				oUtil.setObjValue("txtMCLeavingFrom",depText);
				oUtil.setObjValue("hMCLeavingFrom",depVal);
				oUtil.setObjValue("selMCCabin",arrMCParts[arrMCParts.length-4]);							
			}
			else{
				QE_Check_onMouseAction(2,'0','MCCAir','hMCAir');
			}
			oUtil.setObjValue("txtMCArriving",arrMCParts[arrMCParts.length-5]);
			QE_Check_onMouseAction(2,arrMCParts[arrMCParts.length-6],'MCCTrans','hMCTrans');		
			oUtil.setObjValue("txtMCNoAdults",arrMCParts[arrMCParts.length-7]);
			
			oUtil.setObjValue("selMCChildren",arrMCParts[arrMCParts.length-8]);
			selChildren_onChange(arrMCParts[arrMCParts.length-8],'MC');
			oUtil.setObjValue("txtMCChild1",arrMCParts[arrMCParts.length-9]);
			oUtil.setObjValue("txtMCChild2",arrMCParts[arrMCParts.length-10]);				
			if(qType=='1'){	
				QE_MC_StateRepaint(1);	
				QE_SQTCheck_onMouseAction(2,'MCC','MC','hMC_TypeOfComp');				
			}
		}
		else{
			if(qType=='1'){
				oUtil.setObjValue("selMCChildren",'0');
				QE_MC_StateRepaint(0);
				QE_SQTCheck_onMouseAction(2,'MCS','MC','hMC_TypeOfComp');					
			}
		}	
	}
}

