/**
 *	Date  	:9/8/2006
 *	Author	:George
 *	
 *	Revision History:
 *	Version      	Date            Author            Description
 *	0.1         	9/8/2006        George            coding starts
**/
/**functions for home page **/
var contextPath;
	function loadOnSetupForTripType(orgId,destId){
		var airportList=getFullAirportList();   	
   		populateOrigin(orgId,airportList);
   		populateDestination(destId,airportList);
		if(document.getElementById('owTripId') && document.getElementById('rtTripId')){
			if(document.getElementById('owTripId').checked==true){
				disableRetDate();
			}else if(document.getElementById('rtTripId').checked==true){
				enableRetDate();
			} 
		}
		self.setTimeout("setOandD('"+orgId+"','"+destId+"')", 100) 
		//setOandD(orgId,destId);		
	}	
	/**
	* function to load the origin and destination for add leg mortar
	* 
	*/
	function loadOnSetupForAddFlight(orgId,destId){
		var airportList=getFullAirportList();   	
   		populateOrigin(orgId,airportList);
   		populateDestination(destId,airportList);
	}
	/**
	 * 
	 * @param contextPath
	 * @return
	 */
	function doLoginSubmit(contextPath){	
		document.forms[0].method="post";
		return true;
	}	
	/**
	 * 
	 * @return
	 */
	function doMCSubmit(){
		document.forms[0]._eventId.value="mcsearch";
		document.forms[0].submit();	
	}
	/**
	 * 
	 * @param cntxt
	 * @param locale
	 * @param isSearch
	 * @return
	 */
	function doSearchSubmit(cntxt,locale,isSearch){
		clearMessages();
		if(validateOandD(isSearch)){
			if(document.forms[0].flexTrvlDates && document.forms[0].flexTrvlDates.checked){				
				document.forms[0]._eventId.value="calProceed";  
			}else{
				document.forms[0]._eventId.value="proceed";
			}				
			var trvDateValue = document.getElementById('trvDate_1').value;
			var retDateValue = document.getElementById('aiRESReturnDate').value;
			var adultCount = document.getElementById('aiRESAdult').value;
			var childCount = document.getElementById('aiRESChild').value;
			var ssrSels =   document.getElementsByName('ssrsSelected')
			var isUMNRSel = false;
			for(k=0;k<ssrSels.length;k++){
				if(ssrSels[k].value=="UMNR"){
					isUMNRSel=true;
				} 
			}

			if((adultCount == 0) && (childCount == 0)){
				displayErrorMessages(BKG004_020,document.getElementById('aiRESAdult').id);
				Decor.decorateError(document.getElementById('aiRESAdult'));
				return false;
			}		

			if((adultCount)==0 && childCount>0 && !isUMNRSel){				
				displayErrorMessages(BKG004_018);   
				return false;					       
			}		
			if(document.getElementById('rtTripId').checked){
				var trvDate = getDateFromStringForSearch(trvDateValue,"0:00");
				var retDate = getDateFromStringForSearch(retDateValue,"0:00");
				if(compareSearchDateTime(trvDate,retDate) == 1){
					if(document.getElementById('travelDate#aiRESReturnDate')!=null){
						displayErrorMessages(WS_1017,document.getElementById('travelDate#aiRESReturnDate').id);
						Decor.decorateError(document.getElementById('travelDate#aiRESReturnDate'));
					}else{
						displayErrorMessages(WS_1017,document.getElementById('travelDateNewSearch#aiRESReturnDate').id);
						Decor.decorateError(document.getElementById('travelDateNewSearch#aiRESReturnDate'));
					}
					return false;
				}
				if(document.getElementById('trvDate_1').value == "INVALID_DATE"){
					if(document.getElementById('travelDate#trvDate_1')!=null){
						displayErrorMessages(WS_1022,document.getElementById('travelDate#trvDate_1').id);
						Decor.decorateError(document.getElementById('travelDate#trvDate_1'));
					}else{
						displayErrorMessages(WS_1022,document.getElementById('travelDateNewSearch#trvDate_1').id);
						Decor.decorateError(document.getElementById('travelDateNewSearch#trvDate_1'));
					}
					return false;
				}
				if(document.getElementById('aiRESReturnDate').value == "INVALID_DATE"){
					if(document.getElementById('travelDate#aiRESReturnDate')!=null){
						displayErrorMessages(WS_1022,document.getElementById('travelDate#aiRESReturnDate').id);
						Decor.decorateError(document.getElementById('travelDate#aiRESReturnDate'));
					}else{
						displayErrorMessages(WS_1022,document.getElementById('travelDateNewSearch#aiRESReturnDate').id);
						Decor.decorateError(document.getElementById('travelDateNewSearch#aiRESReturnDate'));
					}
					return false;
				}
			} if( document.getElementById('owTripId')){
				if(document.getElementById('trvDate_1').value == "INVALID_DATE"){ 
					if(document.getElementById('travelDate#trvDate_1')!=null){
						displayErrorMessages(WS_1022,document.getElementById('travelDate#trvDate_1').id);
						Decor.decorateError(document.getElementById('travelDate#trvDate_1'));
					}else{
						displayErrorMessages(WS_1022,document.getElementById('travelDateNewSearch#trvDate_1').id);
						Decor.decorateError(document.getElementById('travelDateNewSearch#trvDate_1'));
					}
					return false;
				}
			}	
			var tmpOrigin = document.getElementById('aiRESOrigin').value;
			var tmpDestination = document.getElementById('aiRESDestination').value;
			if(tmpOrigin.indexOf('(')<0 ){
				document.forms[0].origin.value = tmpOrigin.toUpperCase();		
			} else {
				document.forms[0].origin.value=extractCode('aiRESOrigin');
			}
			if(tmpDestination.indexOf('(')<0 ){
				document.forms[0].destination.value = tmpDestination.toUpperCase();
			} else {
				document.forms[0].destination.value=extractCode('aiRESDestination');	
			}		
			if(document.getElementById('screeId').value=="BKG002"){
				showLightboxForResultPage(cntxt,locale);
			}	
			else {
				showLightbox(cntxt,locale);
			}	 
			//return true;
		} else {
			return false;
		}
		//assignHidDates();
		return true;
	}
	/**
	 * This method assigns the date values from component to hidden field
	 * for date conversion from display date to client date.
	 * @return
	 */
	function assignHidDates() {
		var tmpFrmDt = document.getElementById('trvDate_1');
		var frmDt = document.getElementById('trvDate_1');		
		frmDt.value = toClientDate(tmpFrmDt.value);
		var tmpToDt = document.getElementById('aiRESReturnDate');
		var toDt = document.getElementById('aiRESReturnDate');		
		toDt.value = toClientDate(tmpToDt.value);
	}
	function removeHighlight(eId){
		var elm = document.getElementById(eId);	
		if(elm.value != 0){
			var ppElm=elm.parentNode.parentNode;	
			Decor.remCssClass(ppElm,'ibeError');
		}		
	}
	function extractCode(id){
	var tmpValue=document.getElementById(id).value;
		var startInd=tmpValue.lastIndexOf('(');
		var endInd=tmpValue.lastIndexOf(')')
			
		return tmpValue.substring(startInd+1,endInd);
	}
	function disableRetDate(){
	   	var retDateObj=document.getElementById("aiRESReturnDateDiv");
	   	retDateObj.style.display="none";
	   	var retDateLbl=document.getElementById("aiRESReturnDateLabel");
	   	retDateLbl.style.display="none";
	   	/*
	   	var circFltDiv=document.getElementById("circularFltDiv");
	   	circFltDiv.style.display="block";	   	
	   	circFltDiv.className="float";   
	   	disableDestForCircular();
	   	*/
	}
	function enableRetDate(){
	   	var retDateObj=document.getElementById("aiRESReturnDateDiv");
	   	retDateObj.style.display="block";
	   	var retDateLbl=document.getElementById("aiRESReturnDateLabel");
	   	retDateLbl.style.display="block";
	   	/*
	   	var circFltDiv=document.getElementById("circularFltDiv");
	   	if(document.getElementById("circFltTripId").checked){
	   		document.getElementById("circFltTripId").checked=false;
	   		var destObj=document.getElementById("aiRESDestination");
	   		destObj.value="";
			destObj.readOnly = false;	
	   	}
	   	circFltDiv.className="float";
	   	*/
	}
	function setHappySearch(fare,origin,destination){
			document.homeLayoutForm.fare.value=fare;
			var startDate=document.homeLayoutForm.startDate.value;		
			setDateFrmJs(startDate,"1","2",null);				
			var orginElemt=document.getElementById("aiRESOrigin");
			orginElemt.focus();	
			orginElemt.value=origin;		
			orginElemt.blur();	 			
			var destnElemt=document.getElementById("aiRESDestination");
			destnElemt.focus();		
			destnElemt.value=destination;			
			destnElemt.blur();
	}  
	function changeLanguage(){
		//document.forms[0].action=getTargetURL('WS_index',cont)+"index.do";
		document.forms[0]._eventId.value="changelocale";
		document.forms[0].submit();	
	}
	function disableAll(el){
	var i=0;	
		for(i=0;i<el.elements.length;++i){
			try{ el.elements[i].disabled=true;}catch(e){}	
		}
	}

	function enableAll(el){  
		var i=0;
		for(i=0;i<document.forms[0].elements.length;++i){
			try{ 
				document.forms[0].elements[i].disabled=false;
			}catch(e){}			 
		}			
	}

	function confirmSSRSelection(win,contextPath,locale){
	clearMessages();
		var i=0;		
		clearSSRsInParent(window); 
		var ssrCounts=win.document.getElementsByName("ssrCount");
		var ssrs=win.document.getElementsByName("ssr"); 
		for(i=0;i<ssrCounts.length;++i){			
			if(ssrCounts[i].value!="0"){			 
				var str=document.all?"<input name='ssrsSelected' />":"input";	
				var selectedSSR=document.createElement(str);
				selectedSSR.type="hidden";
				selectedSSR.name="ssrsSelected";
				selectedSSR.value=ssrs[i].value; 
				document.forms[0].appendChild(selectedSSR);
				str=document.all?"<input name='ssrCounts' />":"input";
				var selectedSSRCount=document.createElement(str);
				selectedSSRCount.type="hidden";
				selectedSSRCount.name="ssrCounts";
				selectedSSRCount.value=ssrCounts[i].value;
				document.forms[0].appendChild(selectedSSRCount); 
			}
		}	
		var result;  	
		if(document.forms[0].triptype == undefined || document.forms[0].triptype.value != "MC"){
			enableAll(document.forms[0]);
			if(document.getElementById('screeId').value == "BKG001"){
				result= doSearchSubmit(contextPath,locale,true);// last parameter for modify search submit
			}else{
				result= doNewSearchSubmit(contextPath,locale);	
			}
			
			}
		else{ 
		doMulticitySearch('search',contextPath);
		enableAll(document.forms[0]);
		} 
			closeSSRWindow(document.getElementById('ssrwindow'));
		if(result){
		document.forms[0].submit();
		}
		return result;
	} 	
	function clearSSRsInParent(object){ 
		var ssrCounts=object.document.getElementsByName("ssrCounts");
		var ssrsSelected=object.document.getElementsByName("ssrsSelected");					
		if(ssrCounts){		
		while(ssrCounts&&ssrCounts.length>0){
				ssrCounts[0].parentNode.removeChild(ssrCounts[0]);
				ssrsSelected[0].parentNode.removeChild(ssrsSelected[0]);
								
			}
		} 
	} 
	function preSelectSelectedSSR(){	
		var ssrCounts=document.getElementsByName("ssrCounts");
		var ssrsSelected=document.getElementsByName("ssrsSelected");
		var ssrChildCount=document.getElementsByName("ssrCount");
		var ssrsinChild=document.getElementsByName("ssr");		
		for(i=0;i<ssrsinChild.length;++i){
			for(j=0;j<ssrsSelected.length;++j){						 	
				if(ssrsinChild[i].value==ssrsSelected[j].value){
					ssrChildCount[i].focus();				
					ssrChildCount[i].value=ssrCounts[j].value;							
				}
			}
		}	
	}
   	function toggleEnableSSRButton(origin,destination){      
	
    }   
    function toggleEnableSSRButtonForMC(origin,destination,count){   
	  /* var i=0; 
	   for(i=0;i<count ;++i)
	   toggleEnableSSRButton(origin+(i),destination+(i))
	   */
   	}   
   function decorateField(id,message){
	   var popupdiv = document.createElement("div");
	   var field = document.getElementById(id);
	   	if(field.value == ""){
	   		popupdiv.innerHTML=message;
	   		popupdiv.style.position="absolute";
	   		popupdiv.style.top=getPos(field,"Top")+field.offsetHeight+ 3+"px";
	   		popupdiv.style.left=getPos(field,"Left")+"px";
	   		popupdiv.style.whiteSpace="noWrap"
	   		popupdiv.style.height="15px";
	   		popupdiv.style.backgroundColor="#cceeff"
	   		popupdiv.style.textColor='#CCCCCC'
	   		popupdiv.style.family='Verdana'
	   		popupdiv.style.fontSize='11px'
	   		document.body.appendChild(popupdiv);
	   		popupdiv.id='iMessage'
	   	}
   }   
	function closeSSRWindow(){	
		closePopupWindow(document.getElementById('ssrwindow'));
	}
	function closeMessageWindow(){
		if(  document.getElementById("iMessage")!= null)
			document.getElementById("iMessage").parentNode.removeChild(document.getElementById("iMessage"));
	}	
	function setupSSRLink(e,link,flowExecutionId){
		var adults=document.forms[0].adults.value; 
		var children=document.forms[0].children.value;
		link.href="?adults="+adults+"&children="+children+"&_eventId=popupssrwindow&execution="+flowExecutionId
		document.forms[0]._eventId.value='popupssrwindow' 
		//disableAll(document.forms[0])
		var btn=e.button;
		if((btn==1||btn==0)){  
			setIntervalId=window.setInterval("checkavailability('ssrwindow', 'preSelectSelectedSSR()')",10);
		}
	}	
	var UIObject = function(){}
	UIObject.prototype.objElement = null;
	UIObject.prototype.objElementId = null;
	UIObject.prototype.objValue = null;
	//init method
	UIObject.prototype.init = function(elmStr){
		this.objElementId = elmStr;
		this.objElement = document.getElementById(elmStr);
		this.objValue = this.objElement.value;
	}
	//Error handling method		
	UIObject.prototype.decorateError  = function(){
			Decor.decorateError(this.objElement);
	}
	
	UIObject.prototype.validatePromo = function(){
		if(this.objValue.length >8) {
			displayErrorMessages(WS_1015,this.objElementId);
			this.decorateError();
			return false;
		}else{
			return true;
		}
	}
		
		
	function validateOandD(isSearch){
		var originElement = null;
		var destElement = null;
		if(isSearch){
			originElement = new UIObject();
			originElement.init("aiRESOrigin");			
			destElement = new UIObject();
			destElement.init("aiRESDestination");
		}else{
			originElement = new UIObject();
			originElement.init("originID");			
			destElement = new UIObject();
			destElement.init("destinationID");
		}		
		var promoC = document.getElementById("promoCode_new"); 
//			new UIObject();
//		promoCode.init("promocode");
		var fromDate = document.getElementById('trvDate_1');
		var toDate = document.getElementById('aiRESReturnDate');
		var retValue=true;
		
		if(originElement.objElement != null && originElement.objValue == ""){
			displayErrorMessages(WS_303,originElement.objElementId); 
			//Decor.decorateError(originElement.objElement);
			originElement.decorateError();
			retValue = false;
		} if(destElement.objElement!=null && destElement.objValue == "") {
			displayErrorMessages(WS_304,destElement.objElementId); 
			destElement.decorateError();
			retValue = false;
		}if(document.getElementById('rtTripId').checked==true
				&& originElement.objElement != null && originElement.objValue != ""
				&& destElement.objElement!=null && destElement.objValue != ""
				&& originElement.objValue == destElement.objValue){
			displayErrorMessages(WS_306,destElement.objElementId);			
			destElement.decorateError();
			retValue = false;
			 
		}if(document.forms[0].screeId.value == 'BKG001'){
			if(document.getElementById('promoCode_new')!=null)
			if (!alphaNumericCheck(promoC.value) || promoC.value.length >50){
				displayErrorMessages(WS_1015,'promoCode_new');
				Decor.decorateError(promoC);
				retValue = false;
			}
		} else {
			
			if(document.getElementById('promoCode_new')!=null){
			   var promoC = document.forms[0].promoCode_new;
				if (!alphaNumericCheck(promoC.value) || promoC.value.length >50 ){
					displayErrorMessages(WS_1015,'promoCode_new');
					Decor.decorateError(promoC);
					retValue = false;
				 }
			}
		}
		var purchasePoint = document.getElementById('pointOfPurchase');
		if(purchasePoint!=null && purchasePoint.value == ""){
			displayErrorMessages(BKG004_034, 'pointOfPurchase');
			Decor.decorateError(document.getElementById('pointOfPurchase'));
			retValue = false;
		}
		if (fromDate.value.trim().length == 0 ||fromDate.value=="DD/MM/YYYY") {
			displayErrorMessages(BKG004_101,"travelDate#trvDate_1");
			Decor.decorateError(document.getElementById("travelDate#trvDate_1"));
			retValue = false;
		}
		if (document.getElementById('rtTripId').checked==true) {
			if (toDate.value.trim().length == 0||toDate.value=="DD/MM/YYYY") {
				displayErrorMessages(BKG004_102,"travelDate#aiRESReturnDate");
				Decor.decorateError(document.getElementById("travelDate#aiRESReturnDate"));
				retValue = false;
			}
		}
		if(fromDate != null){
			//str.split(/\/|\\|-/);
			// parsing from the date format specified.
			var parsedDateValues = fromDate.value.split(/\/|\\|-/);
 	       	var thisdate = new Date();     	     	
     		var curDay = parsedDateValues[0];
     		if(curDay.charAt(0)=='0'){
     			var curDay = curDay.substring(1,2);
     		}     		
     		var monthVar = parsedDateValues[1];
     		var monthValue = getMonthByIntForSearch(monthVar); 
     		if(parseInt(parsedDateValues[2]) < parseInt(thisdate.getFullYear())){
     			displayErrorMessages(WS_1016,'travelDate#trvDate_1');
     			Decor.decorateError(document.getElementById("travelDate#trvDate_1"));
     			retValue = false;
 	     	} else if(monthValue > thisdate.getMonth()&& parseInt(parsedDateValues[2]) < parseInt(thisdate.getFullYear())){
	     		displayErrorMessages(WS_1016,'travelDate#trvDate_1');
	     		Decor.decorateError(document.getElementById("travelDate#trvDate_1"));
	     		retValue = false;
 	     	} else if(parseInt(curDay) != null && 
 	     				monthValue == parseInt(thisdate.getMonth()) && 
 	     				parseInt(curDay) < parseInt(thisdate.getDate())){
 	     		displayErrorMessages(WS_1016,'travelDate#trvDate_1'); 	  
 	     		Decor.decorateError(document.getElementById("travelDate#trvDate_1"));
 	     		retValue = false;
	 	     	}  			
		} 
		return retValue;
	}
	function checkOandD(e){
		closeMessageWindow();
		return checkName(e);
	}
	function checkName(e){
		var keynum=0;	
		var retVal;	
		if(window.event){//IE	
			keynum = e.keyCode;
		}
		else if(e.which){//Netscape/Firefox/Opera		
			keynum = e.which;
		}
		if((65 <= keynum && keynum <= 90) || (97 <= keynum && keynum <= 122) || (keynum == 0) 
				|| (keynum == 8) || (keynum == 32) || (keynum == 45) || (keynum == 39)){
			if((e.ctrlKey == true) && (keynum == 118)){
				retVal=false;
			}
			else{
				retVal=true;
			}
		}
		else{
			retVal=false;
		}	
		return retVal;
	}	
	function getDateFromStringForSearch(strDate,strTime){ 
		var retDate=new Date();
		 var valArrOne=strDate.split('-');
		 var date=null;
		 if(valArrOne[0].charAt(0)=='0'){
		 var digit=valArrOne[0].charAt(1);
		 date=parseInt(digit);
		 }
		 else{
		 date=parseInt(valArrOne[0]);
		 }
		 var month=getMonthByIntForSearch(valArrOne[1]);
		 var year=parseInt(valArrOne[2]);
		 var strActTime=getActualTimeForSearch(strTime);
		 var valArrTwo=strActTime.split(':');
		 var hour=valArrTwo[0];
		 var min=valArrTwo[1];
		 retDate.setFullYear(year,month,date);
		 retDate.setHours(hour);
		 retDate.setMinutes(min);
		 return retDate;
	}
	function getMonthByIntForSearch(strMonth){
		if(strMonth == 'Jan')
		 return 0;
		else if(strMonth == 'Feb')
		 return 1;
		else if(strMonth == 'Mar')
		 return 2;
		else if(strMonth == 'Apr')
		 return 3;
		else if(strMonth == 'May')
		 return 4;
		else if(strMonth == 'Jun')
		 return 5;
		else if(strMonth == 'Jul')
		 return 6;
		else if(strMonth == 'Aug')
		 return 7;
		else if(strMonth == 'Sep')
		 return 8;
		else if(strMonth == 'Oct')
		 return 9;
		else if(strMonth == 'Nov')
		 return 10;
		else if(strMonth == 'Dec')
		 return 11;
	}
	function getActualTimeForSearch(strTime){
		var valArr=strTime.split(' ');
		var time=valArr[0];
		var meridian=valArr[1];
		var valArrTmp=time.split(':');
		var retVal;
		var hour = valArrTmp[0];
		var minutes = valArrTmp[1];
		var actHour;	
		if(meridian == 'AM'){		
			if(hour == 12){
				actHour = parseInt(hour)-12;
			}else{		
				actHour = parseInt(hour);
			}
		}
		else{		
			if(hour == 12){
				actHour = parseInt(hour);
			}else{		
				actHour = parseInt(hour)+12;
			}				
		}
		retVal = actHour+':'+minutes;
		return retVal; 
	}
	function compareSearchDateTime(dateOne,dateTwo){
		 var gapInMillis=dateOne.getTime()-dateTwo.getTime();
		 if(gapInMillis < 0 ){
		 	return -1;
		 }
		 else if(gapInMillis > 0){
		 	return 1;
		 }
		 else{
		 	return 0;
		 } 
	}	
	
   /**
	* function to make the destination enable or disable based on :
	* 1.disable for a circular flight selection. If the origin is entered, the value needs to be populated in the destination.
	* 2. enable if circular flight option is not selected.
	*/	
	function disableEnableDestn(){		
		var originObj=document.getElementById("aiRESOrigin");
		var destObj=document.getElementById("aiRESDestination");
		if(document.getElementById("owTripId").checked == false){
			document.getElementById("owTripId").checked = true;
			disableRetDate();
		}
		if(document.getElementById("circFltTripId") != null
			&& document.getElementById("circFltTripId").checked==true){
			if(originObj != null && originObj.value != ""){				
				destObj.value=originObj.value;			
			}else if(destObj != null &&  destObj.value != ""){				
				originObj.value=destObj.value;			
			}
			destObj.readOnly = true;
		}else{
			destObj.value="";
			destObj.readOnly = false;
		}
	}
	
   /**
	* function invoked on origin blur event.
	* the destination is made readonly and the value populated from origin 
	* if circular flights option is selected.
	*
	*/
	function disableDestForCircular(){
		var originObj=document.getElementById("aiRESOrigin");
		var destObj=document.getElementById("aiRESDestination");
		if(document.getElementById("circFltTripId") != null
			&& document.getElementById("circFltTripId").checked==true){
			disableEnableDestn();
		}else if(document.getElementById("owTripId").checked == true
		 		 	&& originObj != null && originObj != "" && destObj != null &&  destObj.value != ""
		  			&& destObj.value == originObj.value){
		  	document.getElementById("circFltTripId").checked=true;
		  	destObj.readOnly = true;
		}
	}
	
   /**
	* function invoked on blur event for destination
	* If origin and destination are same for OW, then check circular flt. it is only for OW
	* For RT , if origin and destination are same, then error is thrown or clicking search button 
	*
	*/
	function enableCircFltForSameOD(){
		var originObj=document.getElementById("aiRESOrigin");
		var destObj=document.getElementById("aiRESDestination");		
		if(document.getElementById("owTripId").checked == true
		  && originObj != null && originObj != "" && destObj != null &&  destObj.value != ""
		  && destObj.value == originObj.value){
			document.getElementById("circFltTripId").checked=true;
			disableEnableDestn();
		}
	}
	
/**functions for home page **/



