var callwait=true;
var LCC="0S_6E_G8_I7";
var serverAddress="";
var airlineIArray=["Air Arabia(G9)","AirAstana(4L)","AeroflotAirlines(SU)","AerosvitAirlines(VV)","AirCanada(AC)","AirFrance(AF)","AirIndia(AI)","AirNewZealand(NZ)","Alitalia(AZ)","AllNipponAirways(NH)","AmericanAirlines(AA)","AsianaAirlines(OZ)","AustrianAirlines(OS)","BritishAirways(BA)","BritishMidland(BD)","CathayPacific(CX)","ChinaEasternAirlines(MU)","ContinentalAirline(CO)","DeltaAirlines(DL)","Eurofly(GJ)","Emirates(EK)","EvaAir(BR)","Finnair(AY)","GulfAir(GF)","IndianAirlines(IC)","JapanAirlines(JL)","Jet Airways(9W)","Kingfisher(IT)","Jet Lite(S2)","Klm(KL)","KoreanAir(KE)","KuwaitAirways(KU)","Lufthansa(LH)","MyanmarAirways(8M)","MajorUsCarrier(NW)","MalaysianAirlines(MH)","OmanAviation(WY)","QantasAirways(QF)","QatarAirways(QR)","RoyalJordanian(RJ)","SingaporeAirlines(SQ)","Swiss(LX)","ThaiAirways(TG)","TurkishAirlines(TK)","UsAirways(US)","UnitedAirlines(UA)","VirginAtlantic(VS)"];
var airlineas_json = new DADAAutoSuggest('InternationalAirline');
airlineas_json.doAjaxRequest = function ()
{	
	var pointer = this;
	var regexpstr="/^"+this.fld.value+"/i";
	var regexp=eval('('+regexpstr+')');
	var temparr=find(regexp,airlineIArray);
	pointer.setSuggestions(temparr);
}
/**
var interOriginas_json = new DADAAutoSuggest('interOrigin');
interOriginas_json.doAjaxRequest = function ()
{	
	var pointer = this;
	CodeMaster.getInternationalAirPorts(2,this.fld.value,respAJAXinterOrigin);
}
function respAJAXinterOrigin(data)
{
	interOriginas_json.setSuggestions(data);
}
var interDestinationas_json = new DADAAutoSuggest('interDestination');
interDestinationas_json.doAjaxRequest = function ()
{	
	var pointer = this;
	var c=checkAPisINorInt();
  	
  
	if(c!=-1)
	{
		CodeMaster.getInternationalAirPorts(c,this.fld.value,respAJAXinterDestination);
	}
	  
}
function respAJAXinterDestination(data)
{
	interDestinationas_json.setSuggestions(data);
}
* **/
/**To work above code properly you need to add AutoSuggestD.js 
	file with this js file.**/

//==================================Functions for Flgiht Home page**********************************************
function formSubmitB2BAgent(formName)
{
    document.getElementById('event').value="B2BAgents";
	var form = document.getElementById(formName);
	form.action="/indus/px/indus/flights/AgentSearchFlight.do";
	form.method="post";
	form.submit();
}
function formSubmitTCILShop(formName)
{
	/**
    document.getElementById('event').value="tcilshopuser";
	var form = document.getElementById(formName);
	form.action="/indus/px/indus/flights/TerminalTransaction.do";
	form.method="post";
	form.submit();
	**/
	window.open('/indus/getGalileoBluescreen.do','GalileBlueScreen','height=550,width=1100,menubar=no,location=no,toolbar=no,resizable=yes');
}
function hideText()
{  
  document.getElementById('returnFlight').style.display = "none";
  document.getElementById('returnFlightTime').style.display = "none"; 
}
function showText()
{  
  document.getElementById('returnFlight').style.display = "block";
  document.getElementById('returnFlightTime').style.display = "block";  
}
function hideTable()
{   
    var srcElement = document.getElementById('adtnlSearch');
    if(srcElement != null) {
    if(srcElement.style.display == "block") {
       srcElement.style.display= 'none';
    }
    else {
       srcElement.style.display='block';
    }
    return false;
   }  
}

//hide while domestic selected
function hideInternational()
{ 
	document.getElementById('DomesticSelectOrig').style.display = "block";  
	document.getElementById('DomesticSelectDest').style.display = "block";
	document.getElementById('domPreferredAirline').style.display = "block";
	document.getElementById('InternationalTextOrig').style.display = "none";
	document.getElementById('InternationalTextDest').style.display = "none";
	document.getElementById('intPreferredAirline').style.display = "none";
	var obj=document.getElementById('cabinType');
    if(obj.options.length==3)
		obj.options[2] =null;
	
}
//hide while International selected
function hideDomestic()
{	
	document.getElementById('InternationalTextOrig').style.display = "block";
	document.getElementById('InternationalTextDest').style.display = "block";
	document.getElementById('intPreferredAirline').style.display = "block";
	document.getElementById('DomesticSelectOrig').style.display = "none";
	document.getElementById('DomesticSelectDest').style.display = "none";
	document.getElementById('domPreferredAirline').style.display = "none";
    var obj=document.getElementById('cabinType');
 	if(obj.options.length==2)
		obj.options[2] = new Option('First Class','F');
}
function clearText()
{
	document.getElementById('interOrigin').value="";
	document.getElementById('interDestination').value="";
	document.getElementById('InternationalAirline').value="";		
}
function clearSelected()
{
	document.getElementById('OriginSelect').options[0].selected=true;
	document.getElementById('DestinationSelect').options[0].selected=true;
	document.getElementById('DomesticAirline').options[1].selected=true;			
}
var inIntAP=["BLR","MAA","DEL","HYD","CCU","BOM","PNQ","AMD","ATQ","GOI","GAU","JAI","COK","CCJ","NAG","TRV","TRZ","VNS","VGA","VTZ","WGC","IXJ","IXE"];
function isProperNameOfIntAP(val)
{
	var ts=/[a-zA-Z](,{1}[a-zA-Z]{2}-[a-zA-Z]{3})$/;
	return ts.test(val);
}
function isProperNameOfIntAirline(val)
{
	var ts=/[a-zA-Z](\({1}[a-zA-Z0-9]{2}\){1})$/;
	return ts.test(val);
}
function checkAPisINorInt()
{
	var val=document.getElementById('interOrigin');
 	alert(val.value);
	if(isProperNameOfIntAP(val.value))
	{
		var isIN=0;
		var code=val.value.substring(val.value.length-3,val.value.length);
	
		for(var i=0;i<inIntAP.length;i++)
		{
			if(code.toLowerCase()==inIntAP[i].toLowerCase())
			{
				isIN=1;
				break;
			}
		}
		return isIN;
	}
	else
	{
		alert(" Invalid Origin Airport!");
		val.focus();		
	}
	return -1;
}
function validate()
{
	var domestic =Boolean(document.getElementById('DomesticRedio').checked);

	if(domestic)
	{
		//document.getElementById('InternationalAirline').options[0].selected=true;		
		document.getElementById('InternationalAirline').value="";		
		var d=document.getElementById('OriginSelect');
		if(d.options[0].selected==true){
		 	alert("Please Select the Origin(From).");
		 	d.focus()
		 	return false;
		}
    	
    	d=document.getElementById('DestinationSelect');
		if(d.options[0].selected==true){
			alert("Please Select the Destination(To).");
		 	d.focus();
		 	return false;
		}
		
		if(document.getElementById('OriginSelect').value==document.getElementById('DestinationSelect').value){
		 	alert("Origin(From) and Destination(To) are same.\n Please Select another Origin(From) OR Destination(To).");
		 	d.focus();
		 	return false;
		}
	} 
	else 
	{
		document.getElementById('DomesticAirline').options[0].selected=true;
		var val=document.getElementById('interOrigin');		
		if(val.value=="" ||val.value==null )
		{
			alert(" Invalid Origin(From) Airport!");
			val.focus();
			return false;
		}
		val=document.getElementById('interDestination');
	
		if(val.value=="" ||val.value==null)
		{
			alert(" Invalid Destination(To) Airport!");
			val.focus();
			return false;
		}
		
	}
	
    var Dep_Date1 = document.getElementById('dpt_date');
    if(!isDate(Dep_Date1.value,"dd-MM-yyyy")){
		alert("Please Select Departure Date.");
		Dep_Date1.focus();
		return false;
	}
	/**
	var inter=document.getElementById("InternationalRedio");
	var serverTodayDateArr=currentDate.split("/");
	var newServerDate=serverTodayDateArr[0]+"-"+serverTodayDateArr[1]+"-"+serverTodayDateArr[2];
	var chgServerDate=getDtObject(newServerDate,"-");
	var getUserDate=document.getElementById('dpt_date');
	var newUserDate=getUserDate.value;
	var chgUserDate=getDtObject(newUserDate,"-");
	
	var no=daysElapsed(chgUserDate, chgServerDate);
	
	if(inter.checked && (no<5)){
    	alert("International bookings allowed only more than 5 days from today.");
    	getUserDate.value="dd-mm-yyyy";
    	getUserDate.focus();
    	return false;
    }
    **/
	var Rtn_Date1 = document.getElementById('rtn_date');
	var Round_T_R =Boolean(document.getElementById('RoundTripRedio').checked);
	if(Round_T_R)
	{
		if(!isDate(Rtn_Date1.value,"dd-MM-yyyy"))
		{
			alert("Please Select Return Date.");
			Rtn_Date1.focus();
			return false;
		}
		if(compareDep_RetDates(Dep_Date1.value,"dd-MM-yyyy",Rtn_Date1.value,"dd-MM-yyyy"))
		{
			alert("Return Date should be greater than OR equal to Departure Date.");
			Rtn_Date1.focus();
			return false;
		}
	}	
	else
	{
		//rtn_date dpt_date
		document.getElementById('rtn_date').value ="DD-MM-YYYY";	
	}
	
	if(!checkMaxPassenger())
	{
		return false;
	}	
	if(domestic)
	{
		document.getElementById('InternationalAirline').value="";
		var Domestic_Airline = document.getElementById('DomesticAirline');
		if(Domestic_Airline.value=="")
		{
			alert("Please select domestic Prefered AirLine");
			Domestic_Airline.focus();
			return false;
		}		
	}
	else
	{
		document.getElementById('DomesticAirline').options[0].selected=true;
		var International_Airline = document.getElementById('InternationalAirline');
		if((trim(International_Airline.value).length>0)&&(!isProperNameOfIntAirline(International_Airline.value)))
		{
			alert("Invalid International Prefered AirLine!");
			International_Airline.focus();
			return false;
		}		
	}	
	return true;
}
function addPax(airline)
{
	var A= Number(document.getElementById('noOfAdult').value);
	var C= Number(document.getElementById('noOfChild').value);
	var I= Number(document.getElementById('noOfInfant').value);
	var aS=document.getElementById('noOfAdult').options;
	var cS=document.getElementById('noOfChild').options;
	var iS=document.getElementById('noOfInfant').options;
	aS.length=0;cS.length=0;iS.length=0;
	var isLCC=LCC.indexOf(airline)!=-1;	
	var loop=isLCC?9:4;
	for(var i=0;i<loop;i++)
	{
		aS[i]=new Option((i+1),(i+1));
		cS[i]=new Option(i,i);
		iS[i]=new Option(i,i);
	}
	iS[loop]=new Option(loop,loop);
	
	if(isLCC)
	{
		document.getElementById('noOfAdult').value=A;
		document.getElementById('noOfChild').value=C;
		document.getElementById('noOfInfant').value=I;		
	}
	else
	{
		document.getElementById('noOfAdult').value=A>4?4:A;
		document.getElementById('noOfChild').value=C>3?3:C;
		document.getElementById('noOfInfant').value=I>4?4:I;	
	}
}
function checkMaxPassenger()
{
	var A= Number(document.getElementById('noOfAdult').value);
	var C= Number(document.getElementById('noOfChild').value);
	var I= Number(document.getElementById('noOfInfant').value);
	var domAirLineObj=document.getElementById('DomesticAirline');
	var maxPax=4;
	if((domAirLineObj!=null) && (LCC.indexOf(domAirLineObj.value)!=-1))
	{
		maxPax=9;
	}
	if((A+C)>maxPax)
	{
		var alertmsg="Number of (Children + Adults) should not be more than "+maxPax;
		if(maxPax==4)
		{
			alertmsg+=". If you need to book more than 4 Passengers, then Please select Low cost Prefered Airline.";
		}
		alert(alertmsg);
		document.getElementById('noOfChild').options[0].selected=true;
		document.getElementById('noOfChild').focus();
		return false;
	}
	if(I>A)
	{
		alert("Number of Infant should be Less than OR Equal to Adults!");
		document.getElementById('noOfInfant').options[0].selected=true;
		document.getElementById('noOfInfant').focus();
		return false;
	}
	return true;
}
function trim(s) 
{
	return s.replace( /^\s*/, "" ).replace( /\s*$/, "" );
}
function formSubmit(formname)
{	
	if(validate())
	{
		if(callwait)
		{
			loadWaitPage();
		}
		var form=document.getElementById(formname);
		form.submit();
	}	
}
var MONTH_NAMES=new Array('January','February','March','April','May','June','July','August','September','October','November','December','Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
var DAY_NAMES=new Array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sun','Mon','Tue','Wed','Thu','Fri','Sat');
// ------------------------------------------------------------------
// isDate ( date_string, format_string )
// Returns true if date string matches format of format string and
// is a valid date. Else returns false.
// It is recommended that you trim whitespace around the value before
// passing it to this function, as whitespace is NOT ignored!
// ------------------------------------------------------------------
function compareDep_RetDates(date1,dateformat1,date2,dateformat2) 
{
	var d1=getDateFromFormat(date1,dateformat1);
	var d2=getDateFromFormat(date2,dateformat2);
	if (d1==0 || d2==0) 
	{
		return true;
	}
	else if (Number(d1) <= Number(d2)) 
	{
		return false;
	}
	return true;
}


function isDate(val,format) 
{	
	var date=getDateFromFormat(val,format);
	if (date==0) 
	{ 
		return false; 
	}
	return true;
}
// ------------------------------------------------------------------
// Utility functions for parsing in getDateFromFormat()
// ------------------------------------------------------------------
function _isInteger(val) 
{
	var digits="1234567890";
	for (var i=0; i < val.length; i++) 
	{
		if (digits.indexOf(val.charAt(i))==-1) 
		{ 
			return false; 
		}
	}
	return true;
}
function _getInt(str,minlength,maxlength) 
{
	var tf=true;
	for (var x=0; x<maxlength; x++) 
	{
		var token=str.charAt(x);
		if (!_isInteger(token)) 
		{ 
			tf=false; 
			break;
		}
	}	
	if(tf)
	{
		return str;
	}
	else
	{
		return null;
	}	
}
	
//-------------------------------------------------------------------

// ------------------------------------------------------------------
// getDateFromFormat( date_string , format_string )
function getDateFromFormat(valstr, format) 
{
	var i_val=0;
	var i_format=0;
	var token="";
	var now=new Date();
	var year=now.getYear();
	var month=now.getMonth()+1;
	var date=1;
	var hh=now.getHours();
	var mm=now.getMinutes();
	var ss=now.getSeconds();
	var formatArr= format.split("-");
	var valArr= valstr.split("-");
	var val="";
	while (i_format < formatArr.length) 
	{		
		// Extract contents of value based on format token
		token=formatArr[i_format];
		val=valArr[i_format];
		if (token=="yyyy")
		{
			year=_getInt(val,0,4);
			if (year==null) 
			{ 
				return 0; 
			}
			i_val += year.length;			
		}
		else if (token=="MM") 
		{
			month=_getInt(val,0,2);
			if(month==null||(month<1)||(month>12))
			{
				return 0;
			}
			i_val+=month.length;
		}
		else if (token=="dd") 
		{
			date=_getInt(val,0,2);
			if(date==null||(date<1)||(date>31))
			{
				return 0;
			}
			i_val+=date.length;
		}		
		i_format++;
	}
		// Is date valid for month?
		if (month==2) 
		{
			// Check for leap year
			if ( ( (year%4==0)&&(year%100 != 0) ) || (year%400==0) ) 
			{ // leap year
				if (date > 29)
				{ 
					return 0; 
				}
			}
			else 
			{ 
				if (date > 28) 
				{ 
					return 0; 
				}
			}
		}
	if ((month==4)||(month==6)||(month==9)||(month==11)) 
	{
		if (date > 30) 
		{ 
			return 0; 
		}
	}
	// Correct hours value
	
	var newdate=new Date(year,month-1,date,hh,mm,ss);
	return newdate.getTime();
}
//-----------------------------------------
function getDtObject(dateStr, del)
{
	var splitedDate=dateStr.split(del);
	var dtDay=splitedDate[0];
	var dtMnth=splitedDate[1];
	var dtYr=splitedDate[2];
	var dt=new Date();
	dt.setFullYear(dtYr,dtMnth-1,dtDay);
	return dt;
}

function daysElapsed(date1,date2) 
{
	var d1=Date.UTC(y2k(date1.getYear()),date1.getMonth(),date1.getDate(),0,0,0);
	var d2=Date.UTC(y2k(date2.getYear()),date2.getMonth(),date2.getDate(),0,0,0);
    var difference =Number(d1)-Number(d2);
    difference=difference/1000/60/60/24;
    return difference;
}

function y2k(number)
{ 
	return (number<1000)?number+1900:number; 
}