/* PLAYGROUND */
var ONEWAY=true;
var prenotaWidthIT=75;
var prenotaWidthIT_MAC_F=77;
var prenotaWidthIT_MAC_S=79
/* */



var isError=false;
var progressImage=new Image();
var logo=new Image(); 
var progressImg=new Image();
function preloadImage(varContextPath,locale){ 
	progressImage.src= varContextPath+"/"+locale+"/images/progressimage.gif";
	logo.src=varContextPath+"/"+locale+"/images/wtlblimgs/logo.gif";
	progressImg.src=varContextPath+"/"+locale+"/images/progressimage.gif"; 
}
function focusToTop(){
	if(isError==true){
		document.getElementsByName("errorloc")[0].scrollIntoView(true);
		//document.location="#errorloc";	
	}
}


function submitForThroughFlight(val,contPath,el,execution,locale){
	var thrghflts = val.split("_");
	var thrghFlt = thrghflts[0]+"_"+thrghflts[1]+"_"+thrghflts[2]+"_"+thrghflts[3];
	document.forms[0].actionName.value = "viewThroughFlightDetails";
	el.href="?_eventId=viewThroughFlight&actionName=viewThroughFlightDetails&thrghFlt="+thrghFlt+"&execution="+execution;
	viewThroughFlight(contPath,locale);
}
	
var setIntervalIdThrough;
function viewThroughFlight(contxtpath,locale){		
	setIntervalIdThrough=window.setInterval("valueCheckThrough('throughFlight')",100);
	showLightbox(contxtpath,locale);
}
	
function valueCheckThrough(popupwindowId){	 
	var popupwindow=document.getElementById(popupwindowId);		
	if(popupwindow!=undefined && popupwindow.getAttribute('status')=="new"){
		window.clearInterval(setIntervalIdThrough);	
		hideLightBox();	
	}
}	
function doCancelThrough(pageContext){  	
  	if(document.getElementById("throughFlight")){
    		document.getElementById("throughFlight").disabled=false;
    		
  	}
  	closePopupWindow(document.getElementById('throughFlight'));
  	if(document.getElementById('thumb')!=null){
  	document.getElementById('thumb').parentNode.removeChild(document.getElementById('thumb'));
  	}
  }	

/**
 * The submitForSeatMap function activates when the flightnumber is clicked.
 * The method will retrieve the seat map for the flight selected.
 *
 *	Attributes
 *	@param pageContext - The web server context.
 * 	@param val - The selected flight details.
 */
function submitForSeatMap(val,pageContext,el,locale,execution){
	var selFlightDetls = val.split("_"); 	
	var selectedFlights = selFlightDetls[0]+"_"+selFlightDetls[1]+"_"+selFlightDetls[2]+"_"+selFlightDetls[3]+"_"+selFlightDetls[4]+"_"+selFlightDetls[5]+"_"+selFlightDetls[6]+"_"+selFlightDetls[7]+"_"+selFlightDetls[8]+"_"+selFlightDetls[9]+"_"+selFlightDetls[10];
	var cabinClass = document.forms[0].cabinClass.value;
	el.href="?_eventId=seatAssign&actionName=showseatmap&selectedFlts="+selectedFlights+"&execution="+execution+"&cabinClass="+cabinClass;
	assignSeat(pageContext,locale);

}

function createTarget(form) {		
	win = window.open('',form.target,form.args);
	//win.document.write(loading);	
	win.focus();
	win.moveTo(50,50);

	return true;
}


function getPos(el,position){
	var posval=0;
	while(el.offsetParent!=null){
		posval+=el["offset"+position];
		el=el.offsetParent;

	}
	return posval;
}

function getTargetURL(isSecureVar){
	var isSecure;
	if(isSecureVar != 'unsecure'){
		isSecure = isDefined(isSecureVar)?window[isSecureVar]:null;
	}else{
		isSecure = null;
	}

	var targetHostName = window.document.location.hostname; 
	var targetConetxt;

	if(arguments[1]){
		targetConetxt = arguments[1];
	}else{
		targetConetxt = WS_targetContextPath;
	}

	if(isSecure=="secure"){
		targetProtocol = "https";
		targetPort = isDefined('WS_targetHttpsPort')?window['WS_targetHttpsPort']:'';
	}else{
		targetProtocol = "http";
		targetPort = isDefined('WS_targetHttpPort')?window['WS_targetHttpPort']:'';
	}


	if(targetConetxt!=null){
		if(targetConetxt=='/'){
			targetConetxt='';
		}
		retTargetURL = targetProtocol + "://" + targetHostName + ":" + targetPort+targetConetxt+"/";
	}
	else{
		retTargetURL = targetProtocol + "://" + targetHostName + ":" + targetPort+"/";
	}
	return retTargetURL;
}


function isDefined( variable)
{
	return (typeof(window[variable]) == "undefined")?  false: true;
}


function getBookingLnk(action){
	window.location= getTargetURL('WS_retrieve')+action;
}

function getFlifoLnk(action){
	window.location=  getTargetURL('WS_viewInfoPage')+action;
}

function popupCalendar(){
	var i=0;
	for( i=0;i<arguments.length;++i){
		var date= document.getElementById(arguments[i]);
		if(!isaValidDate(date.value)){
		//	date.focus();						
			return false;
		}


	}
	return true;
}
function getTop(obj){     
	return (getPos(obj,'Top')+obj.offsetHeight+143>document.documentElement.offsetHeight?
			getPos(obj,'Top')-143-obj.offsetHeight:
				getPos(obj,'Top')+obj.offsetHeight)


}
function getLeft(obj){       	 	
	return	( getPos(obj,'Left')+385>document.documentElement.offsetWidth? 
			getPos(obj,'Left')-385+obj.offsetWidth: getPos(obj,'Left'));

}

function extractCode(id){
	var tmpValue=document.getElementById(id).value;
	var startInd=tmpValue.lastIndexOf('(');
	var endInd=tmpValue.lastIndexOf(')')

	return tmpValue.substring(startInd+1,endInd);
}

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="#DDDFDF";
		popupdiv.style.border="0px solid gray";
		popupdiv.style.paddingLeft="2px";
		popupdiv.style.paddingRight="2px";
		popupdiv.style.color='#136684';
		popupdiv.style.family='Verdana';
		popupdiv.style.fontSize='11px';   		
		document.body.appendChild(popupdiv);
		popupdiv.id='iMessage';
	}
}

function closeMessageWindow(){
	if(  document.getElementById("iMessage")!= null)
		document.getElementById("iMessage").parentNode.removeChild(document.getElementById("iMessage"));

}

function loginAgent(cntpath){
	window.location=cntpath+"/ibe/ibe/login";

}	

/*
 * to show flight details
 * 
 * param : boolean
 */ 
var prevSegExp;	
function showDetails(el,contpath,locale,objId){
	var totalSegElems = document.getElementsByTagName("Div");
	var elem = document.getElementById(el);	
	var img = document.getElementById(objId);	
	var isCol = elem.isCollapsed;	

	if(isCol == undefined || isCol == true){
		elem.style.display='block';
		elem.isCollapsed = false;
		img.src = contpath+"/"+locale+"/images/arrow_down.png";	
		if(prevSegExp != null && prevSegExp != elem){
			prevSegExp.style.display='none';	
			prevSegExp.isCollapsed = true;	
			var prevSegExpImg = document.getElementById("img_"+prevSegExp.id);		
			prevSegExpImg.src = contpath+"/"+locale+"/images/arrow_frnt.png";				
		}		
		prevSegExp=elem;
	}
	else{	
		elem.style.display='none';	
		elem.isCollapsed = true;
		img.src = contpath+"/"+locale+"/images/arrow_frnt.png";							
	}
}

//*** script to show/hide a div ***//
var collapseInterval = new Array();
var delta = 50;

function registerCollapse(parentId, state){

	var parentObj = document.getElementById(parentId);
	var childObj = document.getElementById(parentObj.getAttribute('child'));
	if(state=="co"){
		childObj.setAttribute('xheight','295');
		childObj.style.height="0px";
		childObj.style.display="none";
		childObj.setAttribute('status','co');
		parentObj.className="rt_caption_up";

	}else{
		childObj.setAttribute('status','ex');
		parentObj.className="rt_caption_dwn";
	}
	parentObj.onclick = toggleShow;


}


function toggleShow(evt){
	var i=0;
	if(document.all)
		var el = window.event.srcElement;
	else
		var el = evt.target;

	while(el.getAttribute('child')==null)
		el = el.parentNode;

	var parentId = el.id;

	var childObj = document.getElementById(el.getAttribute('child'));
	childObj.style.overflow="hidden";
	window.clearInterval(collapseInterval[parentId]);

	var status = childObj.getAttribute('status');
	if(status=="co" || status=="stex"){
		childObj.setAttribute('status','stex');
		childObj.style.display="block";
		if(document.getElementById('sc1')!=null){
			document.getElementById('sc1').style.display="block";	
		}
		
		collapseInterval[parentId] = window.setInterval("expand('"+parentId+"')",100); 
	}else if(status=="stco" || status=="ex"){
		childObj.setAttribute('status','stco');
		var childHeight =  childObj.offsetHeight;
		childObj.setAttribute('xheight', childHeight);
		childObj.style.height = childHeight+"px";
		collapseInterval[parentId] = window.setInterval("collapse('"+parentId+"')",100); 
	}



}


function collapse(parentId){
	var parentObj = document.getElementById(parentId);
	var childObj = document.getElementById(parentObj.getAttribute('child'));


	var newChildHeight =  parseInt(childObj.offsetHeight) - delta;
	if(newChildHeight>0){
		childObj.style.height = newChildHeight+"px"
	}else{
		parentObj.className = "rt_caption_up";
		childObj.style.height = "0px";
		childObj.style.display = "none";
		childObj.setAttribute('status','co');
		window.clearInterval(collapseInterval[parentId]);
	}

}


function expand(parentId){
	var parentObj = document.getElementById(parentId);
	var childObj = document.getElementById(parentObj.getAttribute('child'));
	var xHeight = parseInt(childObj.getAttribute('xheight'));

	var newChildHeight =  parseInt(childObj.offsetHeight) + delta;
	if(newChildHeight<xHeight){
		childObj.style.height = newChildHeight+"px";
	}else{
		childObj.style.height = xHeight+"px";
		childObj.style.overflow = "visible";
		childObj.setAttribute('style','');
		childObj.setAttribute('status','ex');
		parentObj.className = "rt_caption_dwn";
		window.clearInterval(collapseInterval[parentId]);
	}

}

/*
 * to show flight details
 * 
 * param : index
 */ 
var prevExp;
function showAdultFareDetails(index){
	var elem = document.getElementById("adult_cont_"+index);
	var isCol = elem.isCollapsed;
	if(isCol == undefined || isCol == true){
		elem.style.display='block';
		elem.isCollapsed = false;	
		if(prevExp != null && prevExp != elem){
			prevExp.style.display='none';	
			prevExp.isCollapsed = true;				
		}		
		prevExp=elem;
	}
	else{	
		elem.style.display='none';	
		elem.isCollapsed = true;						
	} 	

	//hiding fee details
	var feeDtlsId = document.getElementById("fee");
	if(feeDtlsId != undefined){
		var isFeeCol = feeDtlsId.isCollapsed;	
		if(isFeeCol == undefined || isFeeCol == true){

		}else{
			feeDtlsId.style.display='none';	
			feeDtlsId.isCollapsed = true;
		}
	}

}


/*
 * to show flight details
 * 
 * param : index
 */ 
function showChildFareDetails(index){
	var elem = document.getElementById("child_cont_"+index);	
	var isCol = elem.isCollapsed;
	if(isCol == undefined || isCol == true){
		elem.style.display='block';
		elem.isCollapsed = false;	
		if(prevExp != null && prevExp != elem){
			prevExp.style.display='none';	
			prevExp.isCollapsed = true;				
		}		
		prevExp=elem;
	}
	else{	
		elem.style.display='none';	
		elem.isCollapsed = true;						
	} 	
	// hiding fee details
	var feeDtlsId = document.getElementById("fee");
	if(feeDtlsId != undefined){
		var isFeeCol = feeDtlsId.isCollapsed;	
		if(isFeeCol == undefined || isFeeCol == true){

		}else{
			feeDtlsId.style.display='none';	
			feeDtlsId.isCollapsed = true;
		}
	}	
}

/*
 * currency converter
 */


function doCurrencySubmit(action){
	if (action =='Convert'){
		document.getElementById('valMsg').innerHTML="";
		if (currencyValidation()){
			document.getElementById('idCurrencyConverter').setAttribute("status","old");
			document.getElementById("convAmt").value=document.getElementById("amt").value;
			document.getElementById("fromCurrency").value=document.getElementById("fromCurr").value;
			document.getElementById("toCurrency").value=document.getElementById("toCurr").value;
			document.forms[0]._eventId.value="convert";	 
			document.forms[0].actionName.value="Convert";	     
			Spring.remoting.submitForm('Converter',document.forms[0].name, {fragments:'currency'});	
		}
	}
}
function currencyValidation(){
	var boolcheck = true;
	var fromCurr = document.getElementById("fromCurr").value;
	var toCurr= document.getElementById("toCurr").value;
	var frmAmt= document.getElementById("amt").value;
	if(fromCurr==toCurr){
		displayCurrencyErrorMessages(CRC001_001);
		/*	Decor.decorateError(document.getElementById("fromCurr"));
	Decor.decorateError(document.getElementById("toCurr"));	*/
		boolcheck = false;
	}
	if(frmAmt == '0.00'){
		displayCurrencyErrorMessages(CRC001_002);
		Decor.decorateError(document.getElementById("amt"));
		boolcheck = false;
	}
	if(frmAmt == '0.0'){
		displayCurrencyErrorMessages(CRC001_002);
		Decor.decorateError(document.getElementById("amt"));
		boolcheck = false;
	}
	if(frmAmt == '0'){
		displayCurrencyErrorMessages(CRC001_002);
		Decor.decorateError(document.getElementById("amt"));
		boolcheck = false;
	}
	if(frmAmt == ''){
		displayCurrencyErrorMessages(CRC001_002);
		Decor.decorateError(document.getElementById("amt"));
		boolcheck = false;
	}
	return boolcheck;
}
function displayCurrencyErrorMessages(msg){
	if(isError && document.getElementById('valMsg')){
		/* If any server side message is present */
		var msglabl = document.createElement('label');
		msglabl.innerHTML=msg+"<br/>";
		msglabl.className="valmsglabel";
		msglabl.setAttribute('id',"lbl1"+k);
		document.getElementById('valMsg').appendChild(msglabl); 
	}else{
		/* If no server side message is present */

		document.getElementById('msgDiv').style.display='block'
			document.getElementById('msgDiv').className='msgbox';
		var valMsgDiv = null;
		if(document.getElementById('valMsg')){
			valMsgDiv = document.getElementById('valMsg')
		}else{
			valMsgDiv=document.createElement('div');
		} 
		valMsgDiv.setAttribute('id',"valMsg");
		valMsgDiv.className="valmsg";

		var msglabl = document.createElement('label');
		msglabl.innerHTML=msg+"<br/>";
		msglabl.className="valmsglabel";
		msglabl.setAttribute('id',"lbl1"+k);
		//k++;
		valMsgDiv.appendChild(msglabl);
		document.getElementById('msgDiv').appendChild(valMsgDiv);
	} 
	msg="";
	//document.location="#errorloc";
	document.getElementsByName("errorloc")[0].scrollIntoView(true);

}
function convertCurr(execKey,id,fareAmt,currn){
	var amtToPass; 
	var currToPass;	
	if(fareAmt != "0"){
		amtToPass = fareAmt;
		currToPass = currn;
	}else if(totalFareAmt != undefined){
		amtToPass = totalFareAmt;//totalFareAmt global variable declared in searchscript.js
		currToPass = totalCurrn;//totalCurrn global variable declared in searchscript.js
	}else{
		amtToPass = 0.00;
		currToPass = 'Default';
	}
	id.href = "?_eventId=showCurrencyConverter&actionName=currencyConvert&execution="+execKey+"&famount="+amtToPass+"&totalCurrency="+currToPass+"";

}

function checkDoublevalue(e){
	closeMessageWindow();
	return checkDoubleAmount(e);
}
function checkDoubleAmount(e){
	var keynum=0;	
	var retVal;	
	if(window.event){//IE	
		keynum = e.keyCode;
	}
	else if(e.which){//Netscape/Firefox/Opera		
		keynum = e.which;
	}
	if((48 <= keynum && keynum <= 57)|| (keynum == 0) 
			|| (keynum == 8) || (keynum == 32) || (!keynum == 45) ||(keynum == 46)){
		if((e.ctrlKey == true)){
			retVal=false;
		}
		else{
			retVal=true;
		}
	}
	else{
		retVal=false;
	}	
	return retVal;
}	
function checkCur(e){
	closeMessageWindow();
	return checkAmount(e);
}
function checkAmount(e){
	var keynum=0;	
	var retVal;	
	if(window.event){//IE	
		keynum = e.keyCode;
	}
	else if(e.which){//Netscape/Firefox/Opera		
		keynum = e.which;
	}
	if((48 <= keynum && keynum <= 57)|| (keynum == 0) 
			|| (keynum == 8) || (keynum == 32) || (!keynum == 45) ||(keynum == 46) || (keynum == 44)){
		if((e.ctrlKey == true)){
			retVal=false;
		}
		else{
			retVal=true;
		}
	}
	else{
		retVal=false;
	}	
	return retVal;
}	


/**
 * for including the inside the fare break down inside the form
 *
 */
var setIntervalId;

function farebrkdwn(flowExecutionKey,locale,llt,agentId,eleId){
	var cctype= "";
	if(document.getElementsByName("creditCard")){
		var creditCards = document.getElementsByName("creditCard");
        for(i=0;i<creditCards.length;++i){
         	if(creditCards[i].checked){
         		cctype=creditCards[i].value;
         	}
        }
    }
	var str = "?_eventId=showFareBreakdown&actionName=fareBreakdownDetails&execution="+flowExecutionKey+"&locale="+locale+"&llt="+llt+"&agentId="+agentId+"&cctype="+cctype;
	eleId.href=str;
	
	

}


function valueCheck(popupwindowId,funct){	 
	var popupwindow=document.getElementById(popupwindowId);		
	if(popupwindow!=undefined && popupwindow.getAttribute('status')=="new"){
		window.clearInterval(setIntervalId)		
		eval(funct)	
	}
}


function insertIntoForm(){
	var popupparent=document.getElementById('fareDetails').parentNode.parentNode;
	document.forms[0].appendChild(popupparent);

}

/*
 * to showFeeDetails
 * 
 * param : index
 */ 
function showFeeDetails(seatFe,modSeatFe){
	var elem = document.getElementById("fee");
	var isCol = elem.isCollapsed;
	if(isCol == undefined || isCol == true){
		elem.style.display='block';
		elem.isCollapsed = false;	
		if(prevExp != null && prevExp != elem){
			prevExp.style.display='none';	
			prevExp.isCollapsed = true;				
		}		
		prevExp=elem;
		calculateCartSeatAssignFee(seatFe,modSeatFe);
	}else{	
		elem.style.display='none';	
		elem.isCollapsed = true;	
	}	


}	

/*
 * to showFeeDetails
 * 
 * param : index
 */ 
function showExstDetails(id){
	var elemExst = document.getElementById("exst_Cont");
	var isCol = elemExst.isCollapsed;
	if(isCol == undefined || isCol == true){
		elemExst.style.display='block';
		elemExst.isCollapsed = false;	
		if(prevExp != null && prevExp != elemExst){
			prevExp.style.display='none';	
			prevExp.isCollapsed = true;				
		}		
		prevExp=elemExst;
	}else{	
		elemExst.style.display='none';	
		elemExst.isCollapsed = true;	
	}	


}	

function calculateCartSeatAssignFee(addSeatFee,modSeatFee){
	var feeDtlsTable=document.getElementById("feeDetailsTable");			
	var tbody=feeDtlsTable.getElementsByTagName("TBODY")[0];
	var seatMapDetails=document.getElementsByName("seatMapDetails");
	var i=0;
	var j=0;
	var totalFee=0;		
	var seatFee="";		
	if(document.forms[0].seatMapFee.value != null){
		seatFee = parseFloat(document.forms[0].seatMapFee.value)	
	}		
	if(modSeatFee != null && modSeatFee!=''){
		document.forms[0].totalForAllPax.value = document.forms[0].totalAmt.value;			
	}
	if(isNaN(parseFloat(seatFee))){
		seatFee="0.0";			 
	}
	var newSeatCount = 0;
	var premiumSeatCount=0;
	var totalSeatCountForaPax=0;
	var lastSseatNumberDtls="";
	var currencyPrecision=parseInt(document.forms[0].currencyPrecision.value);
	for( i=0;i<seatMapDetails.length;++i){
		var seatFeeForThidPax=0;	
		var array=new Array();
		if(new String(seatMapDetails[i].value).length==0){						
			continue;
		}
		document.forms[0].customised.value="true";
		var seatSegmentDetails=new String(seatMapDetails[i].value).split(":");			
		for(j=0;j<seatSegmentDetails.length;++j){
			if(new String(seatSegmentDetails[j]).length==0){
				continue;
			}	
			var eachSeatDetails=seatSegmentDetails[j].split("/");
			segment=eachSeatDetails[2];					
			if(eachSeatDetails[8] != "false" && eachSeatDetails[8]!="undefined" && eachSeatDetails[8] != null){
				totalSeatCountForaPax+=1;
				if(lastSseatNumberDtls == eachSeatDetails[3]){
					continue;
				}else{
					lastSseatNumberDtls = eachSeatDetails[3];
				}
				premiumSeatCount+=1;
				var isPrstSeat=document.getElementById("pax"+(i+1)+"_"+eachSeatDetails[7]);
				if(isPrstSeat==null){
					premiumSeatDtlsTR=document.createElement("tr");
					premiumSeatDtlsTR.setAttribute("id","pax"+(i+1)+"_"+eachSeatDetails[7])
					var seatFeeTR=document.getElementById("seatFeeTR");
					var premiumSeatDtlsTD=document.createElement("td");							
					premiumSeatDtlsTD.innerHTML=eachSeatDetails[7]+" "+eachSeatDetails[0]+"-"+PRSTFEE;
					premiumSeatDtlsTR.appendChild(premiumSeatDtlsTD);
					var seatDtlsColoncol=document.createElement("td");
					seatDtlsColoncol.innerHTML=":";
					premiumSeatDtlsTR.appendChild(seatDtlsColoncol);
					tbody.insertBefore(premiumSeatDtlsTR, seatFeeTR);
					var premiumSeatDtls=document.createElement("td");
					premiumSeatDtls.align="right";
					premiumSeatDtls.innerHTML=addseps(formatNumber(eachSeatDetails[8],currencyPrecision))+'<span>&nbsp;'+document.forms[0].defaultcurrency.value+'</span>';
					premiumSeatDtlsTR.appendChild(premiumSeatDtls);
				}
			} else{
				if(eachSeatDetails[4] == 'N'){				
					newSeatCount+=1;
					if(addSeatFee == 'YES'){
						totalSeatCountForaPax+=1;
						var seatFees=document.getElementById("seatFeeId_"+(i+1));
						var seatFeesHeader=document.getElementById("seatFeeHeaderId_"+(i+1));
						var colons=document.getElementById("colonId_"+(i+1));
						if(seatFees != undefined){
							seatFeesHeader.innerHTML=CART_005;
							colons.innerHTML=":";
							seatFees.innerHTML=addseps(formatNumber(seatFee,currencyPrecision))+'<span>&nbsp;'+document.forms[0].defaultcurrency.value+'</span>';
						}	
						//totalFee+=seatFee;						
						//						if(seatFees != undefined){
						//							seatFees.innerHTML=addseps(formatNumberForCurrency(seatFee))+'<span class="space">'+document.forms[0].defaultcurrency.value+'</span>';
						//						}
						if(seatFeeForThidPax==0){
							seatFeeForThidPax+=1;
						}							
					}
				}
				else if(eachSeatDetails[4] == 'O' && eachSeatDetails[5] == 'Y'){
					newSeatCount+=1;
					if(modSeatFee == 'YES'){	 					
						totalSeatCountForaPax+=1;
						var seatFees=document.getElementById("seatFeeId_"+(i+1));
						var seatFeesHeader=document.getElementById("seatFeeHeaderId_"+(i+1));
						var colons=document.getElementById("colonId_"+(i+1));
						if(seatFees != undefined){
							seatFeesHeader.innerHTML=CART_005;
							colons.innerHTML=":";
							seatFees.innerHTML=addseps(formatNumber(seatFee,currencyPrecision))+'<span>&nbsp;'+document.forms[0].defaultcurrency.value+'</span>';
						}	
						//totalFee+=seatFee;	
						//						var seatFees=document.getElementById("seatFeeId_"+(i+1));
						//						seatFees.innerHTML=seatFee;					
						break;
					}
				}		
			}
		}
		if(totalSeatCountForaPax > premiumSeatCount){
			totalFee=totalFee*(totalSeatCountForaPax-premiumSeatCount);
		} else {
			if(document.getElementById('seatFeeTR')){
				tbody.removeChild(document.getElementById('seatFeeTR'));					
			}
		}
	}
}



function addseps(nStr)
{
	var decimalSeparator=decSep;//Set from the syspar.xml
	var groupringseparator=groupsep;//Set from the syspar.xml
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? decimalSeparator + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + groupringseparator + '$2');
	}
	return x1 + x2;
}

/*
 * to show flight details
 * 
 * param : boolean
 */ 	
function showSeatMapDetails(contpath){
	var elem = document.getElementById("seatId");
	//var img = document.getElementById(objId);	
	var isCol = elem.isCollapsed;	
	if(isCol == undefined || isCol == true){
		elem.style.display='block';
		elem.isCollapsed = false;
		//img.src = contpath+"/images/arrow_down.png";
	}
	else{
		elem.style.display='none';	
		elem.isCollapsed = true;
		//img.src = contpath+"/images/arrow_frnt.png";

	}
}


//function to generate the seat details for each pax	
function populateCartSeatDetails(seatMapDetails){
	var seatTable=document.getElementById("cartSeatTable");			
	var tbody=seatTable.getElementsByTagName("TBODY")[0];
	if(tbody==undefined){
		tbody=document.createElement("TBODY");
		seatTable.appendChild(tbody);
		tbody=seatTable.getElementsByTagName("TBODY")[0];
	} else{
		var totalRows = seatTable.rows.length;
		//deleting the seat details before rebuilding
		for ( var rowId = totalRows-1; rowId >= 0; rowId--) {
			seatTable.deleteRow(rowId);
		}
		if(document.getElementById('cartSeatDtlsLabelRow'))
			tbody.removeChild(document.getElementById('cartSeatDtlsLabelRow'));
		if(document.getElementById('cartSeatDetailsRow'))
			tbody.removeChild(document.getElementById('cartSeatDetailsRow'));
	}				
	var seatDetailsRow=document.getElementById('cartSeatDetailsRow');	
	if(seatDetailsRow==undefined||seatDetailsRow==null){
		for( i=0;i<seatMapDetails.length;++i){
			var seatSegmentDetails=new String(seatMapDetails[i].value).split(":");
			if(seatSegmentDetails != ''){
				var seatDtlslabelTR=document.createElement("tr");
				seatDtlslabelTR.setAttribute("id","cartSeatDtlsLabelRow");
				var paxDtlslabelTD=document.createElement("td");	
				paxDtlslabelTD.innerHTML = "<label class='lbl_bld'>"+PASSENGER+(i+1)+"</label>";				
				seatDtlslabelTR.appendChild(paxDtlslabelTD);
				var seatDtlsColonTD=document.createElement("td");
				seatDtlslabelTR.appendChild(seatDtlsColonTD);
				var seatNumberlabelTD=document.createElement("td");	
				seatNumberlabelTD.innerHTML = "<label class='lbl_bld'>"+SEAT+"</label>";			
				seatDtlslabelTR.appendChild(seatNumberlabelTD);					
				tbody.appendChild(seatDtlslabelTR);				
				for(j=0;j<seatSegmentDetails.length;++j){
					if(seatSegmentDetails[j] != ''){	
						var eachSeatDetails=seatSegmentDetails[j].split("/");
						seatDtlsTR=document.createElement("tr");
						seatDtlsTR.setAttribute("id","cartSeatDetailsRow");
						var seatDtlsDescCol=document.createElement("td");							
						seatDtlsDescCol.innerHTML=eachSeatDetails[7]+" "+eachSeatDetails[0];
						seatDtlsTR.appendChild(seatDtlsDescCol);
						var seatDtlsColoncol=document.createElement("td");
						seatDtlsColoncol.innerHTML="";
						seatDtlsTR.appendChild(seatDtlsColoncol);
						var seatDtlsCol=document.createElement("td");
						//seatDtlsCol.align='right';
						seatDtlsCol.innerHTML=eachSeatDetails[3];						
						seatDtlsTR.appendChild(seatDtlsCol);								
						tbody.appendChild(seatDtlsTR);	
						if(document.getElementById("cartSeatInfoId")){
							document.getElementById("cartSeatInfoId").className = "wth_100";
						}
					}			
				}
			}
		}
		seatTable.className="wth_100";	 
	}	
}


//variables used for creating a message box div
var MSG_OK=1;
var MSG_OKCANCEL=2;
var MSG_OKNORMAL=3;

//function for displaying the message box on selecting all the oandD's for deletion
function messagebox(srcElement,message,buttonType,pagecontxt,locale){
	showLightbox(pagecontxt,locale);
	this.value="0";
	var box=document.createElement("div");
	var headerDiv = document.createElement("div");
	headerDiv.style.height="25px";
	headerDiv.className = "top_menu";
	box.appendChild(headerDiv)
	var msgArea=document.createElement("div");
	msgArea.className="msgAreaalert";
	var msgDiv=document.createElement("div");
	msgArea.appendChild(msgDiv)
	box.appendChild(msgArea)
	box.className="msgboxalert"
		box.align="center";  
	msgDiv.innerHTML="<label class='label_color lbl_bld'>"+message+"</label><br/><br/>";
	msgDiv.style.margin="10px";	
	box.style.top="204px"; 
	box.style.left="354px";    
	box.style.display='';
	document.body.appendChild(box)
	box.style.width=getPos(box,"Width")  
	createButtons(msgArea,buttonType,pagecontxt); 
	hideLightBox();
}


//function for creating buttons for the message box.
function createButton(box,buttonValue,functionName){
	var btn=document.createElement("input")     
	btn.type="button";
	btn.value=buttonValue;
	btn.style.position= "relative"; 
	btn.className="buttonLL button";
	btn.style.margin="0px 5px 5px 5px"; 	 
	box.appendChild(btn);
	/*adjustHeight(box.offsetParent,btn);*/
	box.style.height=box.offsetParent.style.height;
	btn.onclick= (functionName)
}

//function for adjusting teh height of teh box
function adjustHeight(box){
	box.style.height=getPos(box,"Height");
}


/**
 * function to check the numeric value
 */
function checkNumeral(e){
	var keyvalue=0;	
	var retValue;	
	if(window.event){//IE	
		keyvalue = e.keyCode;
	}
	else if(e.which){//Netscape/Firefox/Opera		
		keyvalue = e.which;
	}
	if(((48 <= keyvalue) && (keyvalue <= 57)) || (keyvalue == 0) || (keyvalue == 8)){
		if((e.ctrlKey == true) && (keyvalue == 118)){
			retValue=false;
		}
		else{
			retValue=true;
		}
	}
	else{
		retValue=false;
	}	
	return retValue;
}	

//function to display the flight number text
function showFltNoText(srcElement,text1,text2,airlineCode){
	fltNumberInfoBox(srcElement,text1,text2,airlineCode);
}

//function to display the flight number text
function hideFltNoText(textDivId){
	var oNodeToRemove = document.getElementById(textDivId);
	if(oNodeToRemove != null)
		oNodeToRemove.parentNode.removeChild(oNodeToRemove);
}

//function to display the flight number info box
function fltNumberInfoBox(srcElement,text1,text2,airlineCode){
	//showLightbox()
	this.value="0";	
	var box=document.createElement("div");	
	var msgArea=document.createElement("div");
	//msgArea.className="msgAreaalert";	
	msgArea.style.padding="4px"
		box.appendChild(msgArea);
	msgArea.innerHTML=text1+" "+airlineCode+" "+text2+" \""+airlineCode+"\"."	
	//box.appendChild(msgDiv)
	box.className="msgboxalert";	
	//box.align="center";  
	box.style.top=getPos(srcElement,"Top")+10+"px"; 
	box.style.left=getPos(srcElement,"Left")+10+"px";     
	box.style.display='';	
	box.id="fltNumberId";	
	document.body.appendChild(box)
	//box.style.width="180px";  
}


/** 
 * function to format the number based on the currency precision.
 *
 * @param number
 * @param precision
 * @return num the formatted currency 
 */
function formatNumber(number,precision){
	precision=curPrec;// setting the currecy precision to the value read from the syspa.xml and set in the method writeClientSideMsgs of user function class
	var expnum=Math.pow(10,precision)
	var num=Math.round(number*expnum)/expnum;
	num=new String(num);
	var dotindex=num.indexOf(".")
	if(dotindex<0){
		if(parseInt(precision)>=1)
			num+=".";
		for(var i=0;i<parseInt(precision);++i){
			num+="0";
		}	
	}else{
		var fractionPart=num.substr(dotindex,num.length)
		for(var i=fractionPart.length-1;i<parseInt(precision);++i){
			num+="0";

		}
	}
	return num;  
}
/**
 * It is used for adding decimal separator and grouping separator to the currency
 * The decimal separator and grouping separator are defined in the syspar.xml
 * @param nStr
 * @return
 */
function addCommas(nStr)
{
	var decimalSeparator=decSep;//Set from the syspar.xml
	var groupringseparator=groupsep;//Set from the syspar.xml
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? decimalSeparator+x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while(rgx.test(x1)){
		x1 = x1.replace(rgx,'$1' + groupringseparator + '$2');
	}
	return x1 + x2;
}
/**
 * It is used for adding decimal separator and grouping separator to the currency
 * The decimal separator and grouping separator are defined in the syspar.xml
 * @param nStr
 * @return
 */
function addgroupandcentsymbol(nStr,decimalSeparator,groupringseparator)
{
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? decimalSeparator+x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while(rgx.test(x1)){
		x1 = x1.replace(rgx,'$1' + groupringseparator + '$2');
	}
	return x1 + x2;
}
/**
 * This method is used in currency convertor to change the 
 * format of the from currency.
 * 
 * @return
 */
function changeFromcurrencyValue(){
	/*var currencyPrecision=parseInt(document.forms[0].currencyPrecision.value);
	var currentcursym=document.getElementById('fromCurr').value;
	var formattervalue=document.getElementById(currentcursym).value;
	var currencyformatsymbols=formattervalue.split(" ");
	var currentval=document.getElementById('amt').value;
	if(currentval!=null){
		var formatted=formatNumber(parseInt(currentval),currencyPrecision);
		var finalvalue=addgroupandcentsymbol(formatted,currencyformatsymbols[0],currencyformatsymbols[1]);
		document.getElementById('amt').value=finalvalue;
	}*/
}

/**
 * This method is used in currency convertor to change the 
 * format of the to currency value. 
 * 
 * @return
 */
function changeTocurrencyValue(){
/*	var currencyPrecision=parseInt(document.forms[0].currencyPrecision.value);
	var currentcursym=document.getElementById('toCurr').value;
	var formattervalue=document.getElementById(currentcursym).value;
	var currencyformatsymbols=formattervalue.split(" ");
	var  currentval=document.getElementById('convertedAmount').value;
	var finalvalue=null;
	if(currentval!=null){
		var formatted=formatNumber(parseInt(currentval),currencyPrecision);
		finalvalue=addgroupandcentsymbol(formatted,currencyformatsymbols[0],currencyformatsymbols[1]);
		document.getElementById('convertedAmount').value=finalvalue;	
	}*/
}
/**
 * setting the origin and destination
 * @param orginId
 * @param destnId
 * @return
 */
function setOandD(orginId,destnId){		
	var selOriginObj=document.getElementById("selOrigin");
	var selOrigin = "";
	if(selOriginObj)
		 selOrigin =document.getElementById("selOrigin").value;				
	if(selOrigin != ''){			
		var orginElemt=document.getElementById(orginId);			
		orginElemt.value=selOrigin;										
		originChange('aiRESOrigin','aiRESDestination'); 
	}
	var selDestnObj = document.getElementById("selDestn");
	var selDestn = "";
	if(selDestnObj)
		selDestn = document.getElementById("selDestn").value; 
	if(selDestn != ''){	 			
		var destnElemt=document.getElementById(destnId);				
		destnElemt.value=selDestn;					 
	}
}	

/**
 * This method converts a date string in displayDate format 
 * to date Object
 * 
 * @param dtStr
 * @return
 */
/**
 * Holds th month value
 */
var mn = null;
Date.prototype.dtRegExp = null;
function getDtFrmStr(dtStr) {
	var dt = null;
	var yr = null;
	var frmt = null;
	var dtStrArr = dtStr.split(/\/|\\|-/);
	var dtRegExp = null;
	var defaultEngDat=null;
	/*DT_FMT is the display date format initialised from the clientmessages.jsp*/
	switch (DT_FMT.toUpperCase()) {
	case "DD\/MM\/YYYY" :
		dt = dtStrArr [0];mn = dtStrArr [1];yr = dtStrArr [2];
		dtRegExp = /\d{2}\/[0-9]{2}\/\d{4}/;
		break;		
	case "DD-MM-YYYY" :
		dt = dtStrArr [0];mn = dtStrArr [1];yr = dtStrArr [2];
		dtRegExp = /\d{2}\-[0-9]{2}\-\d{4}/;
		break;
	case "DD-MM-YY" :
		dt = dtStrArr [0];mn = dtStrArr [1];yr = dtStrArr [2];
		dtRegExp = /\d{2}\-[0-9]{2}\-\d{2}/;
		break;
	case "MM\/DD\/YYYY" :
		dt = dtStrArr [1];mn = dtStrArr [0];yr = dtStrArr [2];
		dtRegExp = /\d{2}\-[0-9]{2}\-\d{4}/;
		break;
	case "YYYY\/MM\/DD" :		
		dt = dtStrArr [2];mn = dtStrArr [1];yr = dtStrArr [0];
		dtRegExp = /\d{4}\/[0-9]{2}\/\d{2}/;
		break;
	case "DD\/MMM\/YYYY" :
		dt = dtStrArr [0];mn = dtStrArr [1];yr = dtStrArr [2];
		mn=convLocDatToDef(mn);
		if(mn == -1){
			return null;
		}
		//defaultEngDat=convertToDefaultEnglishdate(mn,dt,yr,'/');
		dtRegExp = /\d{2}\/[A-Z a-z]{3}\/\d{4}/;
		break;	
	case "DD-MMM-YYYY" :
		dt = dtStrArr [0];mn = dtStrArr [1];yr = dtStrArr [2];
		mn=convLocDatToDef(mn);
		if(mn == -1){
			return null;
		}
		//defaultEngDat=convertToDefaultEnglishdate(mn,dt,yr,'-');
		dtRegExp = /\d{2}\-[A-Z a-z]{3}\-\d{4}/;
		break;	
	default :			
	}
	var dtObj=null;
	if(mn != null&& dt!=null && yr!=null){
		dtObj = new Date();
		var mnD = mn;
		var dtD = dt;
		if(mn.length == 2 && mn.charAt(0) == '0'){
			mnD = mn.charAt(1);
		}
		if(dt.length == 2 && dt.charAt(0) == '0'){
			dtD = dt.charAt(1);
		}	
		dtObj.setFullYear(parseInt(yr),parseInt(mnD)-1,parseInt(dtD));
		dtObj.dtRegExp = dtRegExp;
		dtObj.defaultEngDat = defaultEngDat;
	}
	return dtObj;
}
/**
 * 
 * @return
 */
function convLocDatToDef(monthval){
	var monthIndex = -1;
		for (var index=0;index<12;index++){
			if(monthval!=null && monthval==monthsVal[index]){
				isaValid =true;
				monthIndex=index+1;
				break;
			}else{
				monthIndex=-1;
			}
		}
	return monthIndex;
}
/**
 * 
 * @param dateval
 * @return
 */
function convtoLocDateFormat(dateval){
	var dtStrArr=dateval.split(/\/|\\|-/);
	var dat=dtStrArr[0];
	var monthval=dtStrArr[1];
	var yearval=dtStrArr[2];
	monthval=getEngMonthIndex(monthval);
	var locamonth=monthsVal[monthval-1];
	return dat+"-"+locamonth+"-"+yearval;
}
/**
 * 
 * @param monthval
 * @return
 */
function getEngMonthIndex(monthval){
	var monthindex=-1
	var engMonths=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
	for (var index=0;index<12;index++){
		if(monthval!=null && monthval==engMonths[index]){
			monthindex = index+1;
			break;
		}else{
			monthindex=-1;
		}
	}
	return monthindex;
}

/*function chkWhtrEng(monthval){
	var monthindex=-1
	var engMonths=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
	for (var index=0;index<12;index++){
		if(monthval!=null && monthval==engMonths[index]){
			monthindex = index+1;
			break;
		}else{
			monthindex=-1;
		}
	}
	return monthindex;
}*/
/**
 * 
 * @return
 */
function convertToDefaultEnglishdate(mn,dt,yr,delimitter){
	var engMonths=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
	var defaultEngDate=dt+delimitter+engMonths[mn-1]+delimitter+yr;
	return defaultEngDate;
}
/**
 * This method validates a given date in string 
 * in display date format
 * 
 * @param dt
 * @return
 */
function isaValidDate(dt){ 
	var isaValid=false;
	if(dt.length!=0){	
		var dateObject=getDtFrmStr(dt);
		if(dateObject!=null){
			var dtFmtRgEx = dateObject.dtRegExp;
			var regExp = new RegExp(dtFmtRgEx);
			isaValid = regExp.test(dt);	
		}else{
			return isaValid;
		}
	} 
	return isaValid;
}
/**
 * 
 * @param idvalue
 * @param hiddenId
 * @return
 */
function validateDateValue(idvalue,hiddenId){
	var date=document.getElementById(idvalue).value;
	
}

/**
 * This method converts a date string in display format to client format
 * client format is DD-MMM-YYYY 
 * @param displayDt
 * @return
 */
function toClientDate(displayDt){	
	/*getDtFrmStr() : common.js */
	if(displayDt != DT_FMT.toUpperCase()){
		var dtObj = getDtFrmStr(displayDt);
		if(dtObj!=null){
			var clientDt = dtObj.getDate()+"-"+ getMonthName(dtObj.getMonth()) +"-"+ dtObj.getFullYear();
			return clientDt;
		}else{
			/*invalid date*/
			return "";
		}
	}else{
		return "";
	}
}
function getMonthName(dMon){
	if(dMon == 0)
		return 'Jan';
	else if(dMon == 1)
		return 'Feb';
	else if(dMon == 2)
		return 'Mar';
	else if(dMon == 3)
		return 'Apr';
	else if(dMon == 4)
		return 'May';
	else if(dMon == 5)
		return 'Jun';
	else if(dMon == 6)
		return 'Jul';
	else if(dMon == 7)
		return 'Aug';
	else if(dMon == 8)
		return 'Sep';
	else if(dMon == 9)
		return 'Oct';
	else if(dMon == 10)
		return 'Nov';
	else if(dMon == 11)
		return 'Dec';
	return null;
}

/*
* funtion to check alpha numeric
*/
function alphaNumericCheck(text){
	for(var j=0; j<text.length; j++){
		var alphaa = text.charAt(j);
		var hh = alphaa.charCodeAt(0);
		if((hh > 47 && hh<58) || (hh > 64 && hh<91) || (hh > 96 && hh<123)){
		}else{                
			 return false;
		}
 	}
 	return true;
 } 

/* --------------------------------------------------------------------------------------------------------------------------- PLAYGROUND FUNCTIONS */
/* ------------------------------------------------------------------------------------------------------------------------------ validatePromoCode */
/*
function validatePromoCode(code){
  if ((code=="codice promozionale") || (code=="promo code") || (code=="code promotionnels")){
    $('#input_promo_code').val('');
  }
}
*/

/* --------------------------------------------------------------------------------------------------------------------------------- validateFlight */
function validateFlight(language,departureTitle,returnTitle){
  //ONEWAY is setting on the top of the page
  
  date=new Date();
  todayDay=date.getDate();
  todayMonth=date.getMonth();
  todayYear=date.getFullYear();

  switch (todayMonth) {
    case 0: todayMonth = 'Jan'; break;
    case 1: todayMonth = 'Feb'; break;
    case 2: todayMonth = 'Mar'; break;
    case 3: todayMonth = 'Apr'; break;
    case 4: todayMonth = 'May'; break;
    case 5: todayMonth = 'May'; break;
    case 6: todayMonth = 'Jul'; break;
    case 7: todayMonth = 'Aug'; break;
    case 8: todayMonth = 'Sep'; break;
    case 9: todayMonth = 'Oct'; break;
    case 10: todayMonth = 'Nov'; break;
    case 11: todayMonth = 'Dec'; break;
    default: todayMonth = 'unknown';
  } 

  today=todayDay+"-"+todayMonth+"-"+todayYear;
    
  error=false;
  errorMessage="";

  if($('#aiRESOrigin option:selected').text()==departureTitle){
    error=true;
    if(language=="it"){errorMessage="Selezionare la partenza <br />";}
    if(language=="en"){errorMessage="Select departure <br />";}
    if(language=="fr"){errorMessage="Sélectionnez le départ <br />";}
  }

  if($('#aiRESDestination option:selected').text()==returnTitle){
    error=true;
    if(language=="it"){errorMessage=errorMessage+"Selezionare la destinazione <br />";}
    if(language=="en"){errorMessage=errorMessage+"Select the destination <br />";}
    if(language=="fr"){errorMessage=errorMessage+"Sélectionnez la destination <br />";}
  }    

  if(($('#trvDate_1').val()=="INVALID_DATE") || ($('#trvDate_1').val()=="DD/MM/YYYY")){
    error=true;
    if(language=="it"){errorMessage=errorMessage+"Data di partenza non valida <br />";}
    if(language=="en"){errorMessage=errorMessage+"Departure date is not valid <br />";}
    if(language=="fr"){errorMessage=errorMessage+"Date de début invalide <br />";}    
  }

  if(ONEWAY==false){
      if(($('#trvDate_2').val()=="INVALID_DATE") || ($('#trvDate_2').val()=="DD/MM/YYYY")){
      error=true;
      if(language=="it"){errorMessage=errorMessage+"Data di ritorno non valida <br />";}
      if(language=="en"){errorMessage=errorMessage+"Return date is not valid <br />";}
      if(language=="fr"){errorMessage=errorMessage+"La date de retour n'est pas valide <br />";}
    }
    
    if(error==false){
      //verify that the date trvDate_2 is bigger than trvDate_1
      if (checkDate($('#trvDate_1').val(), $('#trvDate_2').val())==false){
        error=true;
        if(language=="it"){errorMessage=errorMessage+"La data di ritorno è antecedente alla data di partenza <br />";}
        if(language=="en"){errorMessage=errorMessage+"The arrival date is earlier than the date of departure <br />";}
        if(language=="fr"){errorMessage=errorMessage+"La date de retour est antérieure à la date de départ <br />";}
      }
      
      //verify that the date trvDate_2 is bigger than today
      if (checkDate(today, $('#trvDate_2').val())==false){
        error=true;
        if(language=="it"){errorMessage=errorMessage+"La data di ritorno non può essere antecedente alla data odierna <br />";}
        if(language=="en"){errorMessage=errorMessage+"The return date is earlier than today <br />";}
        if(language=="fr"){errorMessage=errorMessage+"La date de retour ne peut pas être antérieure à la date des présentes <br />";}
      }       
    }        
  }  

  if(error==false){
    //verify that the date trvDate_1 is bigger than today
    if (checkDate(today, $('#trvDate_1').val())==false){
      error=true;
      if(language=="it"){errorMessage=errorMessage+"La data di partenza non può essere antecedente alla data odierna <br />";}
      if(language=="en"){errorMessage=errorMessage+"The departure date is earlier than today <br />";}
      if(language=="fr"){errorMessage=errorMessage+"La date de départ ne peut être antérieure à la date des présentes <br />";}
    }
  }
  
  if($('#infants').val()>$('#adults').val()){
    error=true;
    if(language=="it"){errorMessage=errorMessage+"Il numero dei neonati non può essere superiore al numero degli adulti";}
    if(language=="en"){errorMessage=errorMessage+"The number of infants can not exceed the number of adults";}
    if(language=="fr"){errorMessage=errorMessage+"Le nombre d'enfants ne peut pas dépasser le nombre d'adultes";}  
  }
  
  if(($('#input_promo_code').val()!="promo code") && ($('#input_promo_code').val()!="codice promozionale") && ($('#input_promo_code').val()!="")){
    if (!validateCode($('#input_promo_code').val())){
      error=true; 
      if(language=="it"){errorMessage=errorMessage+"Codice promozionale non valido";}
      if(language=="en"){errorMessage=errorMessage+"Invalid promo code";}
      if(language=="fr"){errorMessage=errorMessage+"Promo code pas valide";} 
    }
  }
  
  if(($('.dateTextbox_2').val()=="Solo andata") || ($('.dateTextbox_2').val()=="One way") || ($('.dateTextbox_2').val()=="Aller-simple")){
    $('#tripType').val('OW');
  }  

  if(error==true){     
    $('#booking_error').html(errorMessage);
    $('#booking_error').show();
    return false;    
  }
  else{
    //$('#booking_error').html(errorMessage);
    $('#booking_error').hide();
    
    if (($('#input_promo_code').val()=="codice promozionale") || ($('#input_promo_code').val()=="promo code") || ($('#input_promo_code').val()=="code promotionnels")){
      $('#input_promo_code').val('');
    }
    
    return true;
  }
}


/* ------------------------------------------------------------------------------------------------------------------------------------------------ */
function validateCode(codeToValidate){
  var RegX = "[0-9A-Z\s]+" ;
  var regex = new RegExp(RegX);
  
  if (!regex.test(codeToValidate))
  {
    return false;
  }
  else{
    return true;
  }
}


/* -------------------------------------------------------------------------------------------------------------------------------- validateCheckin */
function validateCheckin(language){
  error=false;
  errorMessage="";

  if($('#pnr_field').val()==""){
    error=true;
    if(language=="it"){errorMessage="Inserire il PNR <br />";}
    if(language=="en"){errorMessage="Enter the PNR number <br />";}
    if(language=="fr"){errorMessage="Entrez le nombre de PNR <br />";}
  }

  if($('#lastname_field').val()==""){
    error=true;
    if(language=="it"){errorMessage=errorMessage+"Inserire il cognome <br />";}
    if(language=="en"){errorMessage=errorMessage+"Enter the last name <br />";}
    if(language=="fr"){errorMessage=errorMessage+"Entrez le nom de famille <br />";}
  }

  if(error==true){
    $('#booking_error').html(errorMessage);
    $('#booking_error').show();
    return false;    
  }
  else{
    $('#booking_error').html(errorMessage);
    $('#booking_error').hide();
    return true;
  }  
}


/* --------------------------------------------------------------------------------------------------------------------------- validateReservations */
function validateReservations(language,departureTitle,returnTitle,fieldCode,fieldName,fieldLastName,fieldOrigin,fieldDestination){
  error=false;
  errorMessage="";
  
  if($('#'+fieldCode).val()==""){
    error=true;
    if(language=="it"){errorMessage="Inserire il PNR <br />";}
    if(language=="en"){errorMessage="Enter the PNR number <br />";}
    if(language=="fr"){errorMessage="Entrez le nombre de PNR <br />";}
  }  

  if($('#'+fieldName).val()==""){
    error=true;
    if(language=="it"){errorMessage=errorMessage+"Inserire il nome <br />";}
    if(language=="en"){errorMessage=errorMessage+"Enter the name <br />";}
    if(language=="fr"){errorMessage=errorMessage+"Entrez le nom <br />";}
  }
  
  if($('#'+fieldLastName).val()==""){
    error=true;
    if(language=="it"){errorMessage=errorMessage+"Inserire il cognome <br />";}
    if(language=="en"){errorMessage=errorMessage+"Enter the last name <br />";}
    if(language=="fr"){errorMessage=errorMessage+"Entrez le nom de famille <br />";}
  }    

  if($('#'+fieldOrigin+' option:selected').text()==departureTitle){
    error=true;
    if(language=="it"){errorMessage=errorMessage+"Selezionare la partenza <br />";}
    if(language=="en"){errorMessage=errorMessage+"Select departure <br />";}
    if(language=="fr"){errorMessage=errorMessage+"Sélectionnez le départ <br />";}
  }

  if($('#'+fieldDestination+' option:selected').text()==returnTitle){
    error=true;
    if(language=="it"){errorMessage=errorMessage+"Selezionare la destinazione <br />";}
    if(language=="en"){errorMessage=errorMessage+"Select the destination <br />";}
    if(language=="fr"){errorMessage=errorMessage+"Sélectionnez la destination <br />";}
  }
  
  if(error==true){
    $('#booking_error').html(errorMessage);
    $('#booking_error').show();
    return false;    
  }
  else{
    $('#booking_error').html(errorMessage);
    $('#booking_error').hide();
    return true;
  }  
}


/* -------------------------------------------------------------------------------------------------------------------------------------- checkDate */
function checkDate(startDate, endDate){
  var arr1 = startDate.split("-");
  var arr2 = endDate.split("-");
  
  var result1="";
  var result2="";
  
  switch (arr1[1]) {
    case 'Jan': result1 = '0'; break;
    case 'Feb': result1 = '1'; break;
    case 'Mar': result1 = '2'; break;
    case 'Apr': result1 = '3'; break;
    case 'May': result1 = '4'; break;
    case 'Jun': result1 = '5'; break;
    case 'Jul': result1 = '6'; break;
    case 'Aug': result1 = '7'; break;
    case 'Sep': result1 = '8'; break;
    case 'Oct': result1 = '9'; break;
    case 'Nov': result1 = '10'; break;
    case 'Dec': result1 = '11'; break;
    default: result1 = 'unknown';
  } 
  
  switch (arr2[1]) {
    case 'Jan': result2 = '0'; break;
    case 'Feb': result2 = '1'; break;
    case 'Mar': result2 = '2'; break;
    case 'Apr': result2 = '3'; break;
    case 'May': result2 = '4'; break;
    case 'Jun': result2 = '5'; break;
    case 'Jul': result2 = '6'; break;
    case 'Aug': result2 = '7'; break;
    case 'Sep': result2 = '8'; break;
    case 'Oct': result2 = '9'; break;
    case 'Nov': result2 = '10'; break;
    case 'Dec': result2 = '11'; break;
    default: result2 = 'unknown';
  }   
  
  var d1=new Date();
  var d2=new Date();

  d1.setFullYear(arr1[2],result1,arr1[0]);
  d2.setFullYear(arr2[2],result2,arr2[0]);
  
  var r1 = d1.getTime();
  var r2 = d2.getTime();
  
  if (r1<=r2){
    return true;
  }
  else{
    return false;
  } 
}


/* ------------------------------------------------------------------------------------------------------------------------------------- openDialog */ 
function openDialog(){
  $('#dialog-confirm').dialog({
      autoOpen: true, 
      resizable: false,
  		width:534,
      
  		modal: true
  		/*buttons: {
  			"Invia": function(){
  				$(this).dialog("close");
  			},
  			"Cancella": function(){
  				$(this).dialog("close");
  			}
  		} */
  });
  
  var adultsNumber ="";
  
  if($('#adults').val()>5){
    adultsNumber=5;
  }
  else{
    adultsNumber=$('#adults').val();
  }
  
  $('#ssrCountSelect1').html(''); //WCHC
  $('#ssrCountSelect2').html(''); //WCHS
  $('#ssrCountSelect4').html(''); //WCHR 
  $('#ssrCountSelect3').html(''); //PETC
  
  for(i=0; i<=adultsNumber; i++){
    $('#ssrCountSelect1').append('<option value="'+i+'">'+i+'</option>'); //WCHC
    $('#ssrCountSelect2').append('<option value="'+i+'">'+i+'</option>'); //WCHS
    $('#ssrCountSelect4').append('<option value="'+i+'">'+i+'</option>'); //WCHR
    $('#ssrCountSelect3').append('<option value="'+i+'">'+i+'</option>'); //PETC
  }
  
  if(($('#WCHC_count').val()>0) && ($('#WCHC_count').val()<=5)){
    $('#ssrCountSelect1').val($('#WCHC_count').val()).attr("selected", "selected");
  }

  if(($('#WCHS_count').val()>0) && ($('#WCHS_count').val()<=5)){
    $('#ssrCountSelect2').val($('#WCHS_count').val()).attr("selected", "selected");
  }

  if(($('#WCHR_count').val()>0) && ($('#WCHR_count').val()<=5)){
    $('#ssrCountSelect4').val($('#WCHR_count').val()).attr("selected", "selected");
  }
  
  if(($('#PETC_count').val()>0) && ($('#PETC_count').val()<=5)){
    $('#ssrCountSelect3').val($('#PETC_count').val()).attr("selected", "selected");
  }    
}


/* ---------------------------------------------------------------------------------------------------------------- populateSpecialAssistanceFields */
function populateSpecialAssistanceFields(){
  $('input[name="ssrsSelected"]').remove();
  $('input[name="ssrCounts"]').remove();  
  
  if($('#ssrCountSelect1').val()>0){
    $('#searchFlightForm').append('<input type="hidden" name="ssrsSelected" value="WCHC">');
    $('#searchFlightForm').append('<input type="hidden" name="ssrCounts" value="'+$('#ssrCountSelect1').val()+'" id="WCHC_count">');
  }
  
  if($('#ssrCountSelect2').val()>0){
    $('#searchFlightForm').append('<input type="hidden" name="ssrsSelected" value="WCHS">');
    $('#searchFlightForm').append('<input type="hidden" name="ssrCounts" value="'+$('#ssrCountSelect2').val()+'" id="WCHS_count">');
  }
  
  if($('#ssrCountSelect4').val()>0){
    $('#searchFlightForm').append('<input type="hidden" name="ssrsSelected" value="WCHR">');
    $('#searchFlightForm').append('<input type="hidden" name="ssrCounts" value="'+$('#ssrCountSelect4').val()+'" id="WCHR_count">');
  }
  
  if($('#ssrCountSelect3').val()>0){
    $('#searchFlightForm').append('<input type="hidden" name="ssrsSelected" value="PETC">');
    $('#searchFlightForm').append('<input type="hidden" name="ssrCounts" value="'+$('#ssrCountSelect3').val()+'" id="PETC_count">');
  }  
}


/* ----------------------------------------------------------------------------------------------------------------------------------- agencyDialog */
function agencyDialog(){
  $('#agency_dialog').dialog({
      autoOpen: true, 
      resizable: false,
  		width:800,
      
  		modal: true
  		/*buttons: {
  			"Invia": function(){
  				$(this).dialog("close");
  			},
  			"Cancella": function(){
  				$(this).dialog("close");
  			}
  		} */
  });
}




/* ------------------------------------------------ funzione per espandere il width dei select in IE al fine di non tagliare i nomi degli aeroporti */

$(document).ready(function() {
  var clickStateDiv1=0;
  var clickStateDiv2=0;

  $('#aiRESOrigin').click(function() {
    if(clickStateDiv1==0){
      clickStateDiv1++;
      //$('#debugDiv').html("clickStateDiv1="+clickStateDiv1);
      //$('#destination_title').hide();
    }
    else{
      clickStateDiv1=0;
      originChange('aiRESOrigin','aiRESDestination');
      $('#aiRESOrigin').width("177");
      $('#aiRESDestination').width("177");
      //$('#destination_title').show();
      //$('.bar').css("background","green");
      //$('#debugDiv').html("clickStateDiv1="+clickStateDiv1);
    }
  });
  
  $('#aiRESDestination').click(function() {
    if(clickStateDiv2==0){
      clickStateDiv2++;
      //$('.bar').css("background","cyan");
      //$('#debugDiv').html("clickStateDiv2="+clickStateDiv2);
    }
    else{
      clickStateDiv2=0;
      $('#aiRESOrigin').width("177");
      $('#aiRESDestination').width("177");
      //$('.bar').css("background","yellow");
      //$('#debugDiv').html("clickStateDiv2="+clickStateDiv2);
    }
  });  


  if (jQuery.browser.msie) {
    select_init();
  }
});


function select_init () {
    //var selects = $('select');
    //for (var i = 0; i < selects.length; i++) {
    //    _resizeselect.init(selects[i]);
    //    //alert(selects[i]);
    //} 
  
    var tmp1=document.getElementById('aiRESOrigin');
    var tmp2=document.getElementById('aiRESDestination');
    _resizeselect.init(tmp1);
    _resizeselect.init(tmp2);    
}

var _resizeselect = {
    obj : new Array(),
    init : function (el) {
        this.obj[el] = new resizeselect (el);
    }
}

function resizeselect (el) {
    this.el = el;
    this.p = el.parentNode;
    this.ht = el.parentNode.offsetHeight;
    var obj = this;
    this.set = false;

    el.onmousedown = function () {
        obj.set_select("mousedown");
    }
    el.onblur = function () {
        //clickState=0;
        //obj.reset_select("blur");
    }
    el.onchange = function () {
        //clickState=0;
        //obj.reset_select("change");
    }

}
 
resizeselect.prototype.set_select = function (str) {
    if (this.set) {
        this.set = false;
        return;
    }

    this.el.style.width = "auto";
    
    if(this.el.id=="aiRESOrigin"){
      $('#aiRESDestination').width("177");
    }
    else{
      $('#aiRESOrigin').width("177");
    }
    
    //this.el.style.position = "absolute";
    //this.p.style.height = this.ht + "px";
    //this.p.style.zIndex = 100;
    this.set = true;
    this.el.focus();
}

resizeselect.prototype.reset_select = function (str) {
    this.el.style.width = "";
    //this.el.style.position = "";
    //this.p.style.height = "";
    //this.p.style.zIndex = 1;
    this.set = false;
    window.focus();
    
    if((str=="change") && (this.el.id=="aiRESOrigin")){
      originChange('aiRESOrigin','aiRESDestination');
    }
} 

/* ------------------------------------------------------------------------------------------------------------------------------- showTourOperator */
function showTourOperator(country,destination){
  tO = new Array();
  
  tO [1]="ALPITOUR";
  tO [2]="BRIXIA VIAGGI";
  tO [3]="CONDOR";
  tO [4]="DIMENSIONE TURISMO";
  tO [5]="EDEN VIAGGI";
  tO [6]="ENJOY!";
  tO [7]="GOING";
  tO [8]="HAVANATUR";
  tO [9]="I VIAGGI DEL MAPPAMONDO";
  tO[10]="INVIAGGI";
  tO[11]="PHONE&GO";
  tO[12]="PRESS TOURS";  
  tO[13]="SETTEMARI";
//  tO[14]="SPACE TOUR";
  tO[15]="SWAN TOUR";
  tO[16]="UN ALTRO SOLE";
  tO[17]="VERATOUR";
  tO[18]="VILORATOUR";
//  tO[19]="ALBATOUR";
  tO[20]="AXE BRASIL";
  tO[21]="SWEET EMOTION";
  
  switch (destination) {
    case 'bahamas'      : result = '<span class="tour_operator_title">TOUR OPERATOR PARTNER:</span><br /><br />'+tO[1]; break;
    case 'fortaleza'    : result = '<span class="tour_operator_title">TOUR OPERATOR PARTNER:</span><br /><br />'+tO[20]+'<br />'+tO[21]; break;
    case 'natal'        : result = '<span class="tour_operator_title">TOUR OPERATOR PARTNER:</span><br /><br />'+tO[20]+'<br />'+tO[21]; break;
    case 'portoseguro'  : result = '<span class="tour_operator_title">TOUR OPERATOR PARTNER:</span><br /><br />'+tO[20]+'<br />'+tO[21]; break;
    case 'saosalvador'  : result = '<span class="tour_operator_title">TOUR OPERATOR PARTNER:</span><br /><br />'+tO[20]+'<br />'+tO[21]; break;
    case 'roatan'       : result = '<span class="tour_operator_title">TOUR OPERATOR PARTNER:</span><br /><br />'+tO[15]; break;
    case 'havana'       : result = '<span class="tour_operator_title">TOUR OPERATOR PARTNER:</span><br /><br />'+tO[1]+'<br />'+tO[2]+'<br />'+tO[3]+'<br />'+tO[5]+'<br />'+tO[8]+'<br />'+tO[9]+'<br />'+tO[12]+'<br />'+tO[15]+'<br />'+tO[16]; break;
    case 'santiago'     : result = '<span class="tour_operator_title">TOUR OPERATOR PARTNER:</span><br /><br />'+tO[2]+'<br />'+tO[8]+'<br />'+tO[12]; break;
    case 'holguin'      : result = '<span class="tour_operator_title">TOUR OPERATOR PARTNER:</span><br /><br />'+tO[1]+'<br />'+tO[2]+'<br />'+tO[3]+'<br />'+tO[8]+'<br />'+tO[12]+'<br />'+tO[16]; break;
    case 'cayo'         : result = '<span class="tour_operator_title">TOUR OPERATOR PARTNER:</span><br /><br />'+tO[5]+'<br />'+tO[12]+'<br />'+tO[16]+'<br />'+tO[17]; break;
    case 'santaclara'   : result = '<span class="tour_operator_title">TOUR OPERATOR PARTNER:</span><br /><br />'+tO[2]+'<br />'+tO[5]+'<br />'+tO[8]+'<br />'+tO[12]+'<br />'+tO[16]; break;
    case 'cancun'       : result = '<span class="tour_operator_title">TOUR OPERATOR PARTNER:</span><br /><br />'+tO[1]+'<br />'+tO[3]+'<br />'+tO[5]+'<br />'+tO[11]+'<br />'+tO[12]+'<br />'+tO[16]; break;
    case 'laromana'     : result = '<span class="tour_operator_title">TOUR OPERATOR PARTNER:</span><br /><br />'+tO[1]+'<br />'+tO[3]+'<br />'+tO[5]+'<br />'+tO[11]+'<br />'+tO[12]+'<br />'+tO[16]+'<br />'+tO[17]; break;
    case 'antigua'      : result = '<span class="tour_operator_title">TOUR OPERATOR PARTNER:</span><br /><br />'+tO[12]; break;
    case 'aruba'        : result = '<span class="tour_operator_title">TOUR OPERATOR PARTNER:</span><br /><br />'+tO[5]; break;
    case 'curacao'      : result = '<span class="tour_operator_title">TOUR OPERATOR PARTNER:</span><br /><br />'+tO[12]+'<br />'+tO[16]; break;
    case 'montegobay'   : result = '<span class="tour_operator_title">TOUR OPERATOR PARTNER:</span><br /><br />'+tO[5]+'<br />'+tO[6]+'<br />'+tO[12]+'<br />'+tO[16]; break;
    case 'bangkok'      : result = '<span class="tour_operator_title">TOUR OPERATOR PARTNER:</span><br /><br />'+tO[1]+'<br />'+tO[4]+'<br />'+tO[5]; break;
    case 'phuket'       : result = '<span class="tour_operator_title">TOUR OPERATOR PARTNER:</span><br /><br />'+tO[1]+'<br />'+tO[4]+'<br />'+tO[5]; break;
    case 'yangon'       : result = '<span class="tour_operator_title">TOUR OPERATOR PARTNER:</span><br /><br />'+tO[4]; break;
    case 'mombasa'      : result = '<span class="tour_operator_title">TOUR OPERATOR PARTNER:</span><br /><br />'+tO[5]+'<br />'+tO[6]+'<br />'+tO[11]+'<br />'+tO[16]; break;
    case 'zanzibar'     : result = '<span class="tour_operator_title">TOUR OPERATOR PARTNER:</span><br /><br />'+tO[1]+'<br />'+tO[6]+'<br />'+tO[11]+'<br />'+tO[15]; break;
    case 'sharm'        : result = '<span class="tour_operator_title">TOUR OPERATOR PARTNER:</span><br /><br />'+tO[1]+'<br />'+tO[5]+'<br />'+tO[10]+'<br />'+tO[13]+'<br />'+tO[15]+'<br />'+tO[18]; break;
    case 'marsaalam'    : result = '<span class="tour_operator_title">TOUR OPERATOR PARTNER:</span><br /><br />'+tO[1]+'<br />'+tO[5]+'<br />'+tO[13]+'<br />'+tO[15]+'<br />'+tO[18]; break;                                            
    case 'hurghada'     : result = '<span class="tour_operator_title">TOUR OPERATOR PARTNER:</span><br /><br />'+tO[10]; break;
    case 'luxor'        : result = '<span class="tour_operator_title">TOUR OPERATOR PARTNER:</span><br /><br />'+tO[15]; break;
    case 'cairo'        : result = '<span class="tour_operator_title">TOUR OPERATOR PARTNER:</span><br /><br />'+tO[15]; break;
    case 'marsamatrouh' : result = '<span class="tour_operator_title">TOUR OPERATOR PARTNER:</span><br /><br />'+tO[15]+'<br />'+tO[17]; break;                
    
    default: result = '';
  }
  
  switch (country) {
    case 'bahamas'    : closeTourOperator('bahamas');    $('#hp_bahamas').html(result).slideDown("fast"); break;
    case 'brasile'    : closeTourOperator('brasile');    $('#hp_brasile').html(result).slideDown("fast"); break;
    case 'honduras'   : closeTourOperator('honduras');   $('#hp_honduras').html(result).slideDown("fast"); break;
    case 'cuba'       : closeTourOperator('cuba');       $('#hp_cuba').html(result).slideDown("fast"); break;
    case 'messico'    : closeTourOperator('messico');    $('#hp_messico').html(result).slideDown("fast"); break;
    case 'repubblica' : closeTourOperator('repubblica'); $('#hp_repubblica').html(result).slideDown("fast"); break;
    case 'antille'    : closeTourOperator('antille');    $('#hp_antille').html(result).slideDown("fast"); break;
    case 'jamaica'    : closeTourOperator('jamaica');    $('#hp_jamaica').html(result).slideDown("fast"); break;
    case 'thailandia' : closeTourOperator('thailandia'); $('#hp_thailandia').html(result).slideDown("fast"); break;
    case 'myanmar'    : closeTourOperator('myanmar');    $('#hp_myanmar').html(result).slideDown("fast"); break;
    case 'kenya'      : closeTourOperator('kenya');      $('#hp_kenya').html(result).slideDown("fast"); break;
    case 'tanzania'   : closeTourOperator('tanzania');   $('#hp_tanzania').html(result).slideDown("fast"); break;
    case 'egitto'     : closeTourOperator('egitto');     $('#hp_egitto').html(result).slideDown("fast"); break;

    default: result = '';
  }  
}

function closeTourOperator(country){
  countries = new Array();
  
  countries[0]="bahamas"; 
  countries[1]="brasile";
  countries[2]="honduras";    
  countries[3]="cuba";  
  countries[4]="messico";
  countries[5]="repubblica";
  countries[6]="antille";
  countries[7]="jamaica";
  countries[8]="thailandia";
  countries[9]="myanmar";
  countries[10]="kenya";
  countries[11]="tanzania";
  countries[12]="egitto";

  for(i=0; i<countries.length; i++){
    if (country!=countries[i]){
      $('#hp_'+countries[i]).slideUp('fast');
    }
  }
}

function oneWay(lang){

  $('#tripType').val('OW');
  $('#trvDate_2').val('DD/MM/YYYY');
  ONEWAY=true;
  
  if(lang=="it"){
    $('.dateTextbox_2').val('Solo andata');
    $('#solo_andata').hide();
  }
  
  if(lang=="en"){
    $('.dateTextbox_2').val('One way');
    $('#solo_andata').hide();
  }

  if(lang=="fr"){
    $('.dateTextbox_2').val('Aller-simple');
    $('#solo_andata').hide();
  }
  
} 
