//Code for AutoSuggest Ajax
var AutoSugRequest;

function getTimatic(timaticString,serviceProvider,domesticOrInternational)
{
	Gal.getTimaticDetails(timaticString,false,showSession);
}

function showSession(data) 
  {
  	 	if(data=='')
	  	{
	  		alert("Not able to get Timatic Information");
	  	}
	  	else
	  	{
	  		var timaticArray=data.split("TIPN");
	  		var tableString="<table>";
	  		for(var i=0;i<timaticArray.length;i++)
	  		{
	  			tableString=tableString+"<tr><td>"+timaticArray[i]+"</td></tr>";
	  			/**
	  			if(timaticArray[i].search("SCAN COMPLETE")>0)
	  			  break;
	  			**/
	  		}
	  		tableString=tableString+"</table>";;
	  		ruleString=	tableString;
	        window.open("/indus/html/flights/flightRulePopup.html", "desc_window", "width=700,height=400,left=212,top=250,scrollbars=yes,menubar=no, resizable=no,location=no,toolbar=no");				  
	  	}
  }




function getFlightDetail(arrivaltime,deptDateTime,airLineCode,flightNumber,serviceProvider,arrivalAirport,departureAirport,domesticOrInternational)
{	
	AutoSugRequest = makeObject();
	var url="/indus/px/indus/flights/VerifyDetails.do?deptDateTime="+deptDateTime+"&airLineCode="+airLineCode+"&flightNumber="+flightNumber+"&serviceProvider="+serviceProvider+"&departureAirport="+departureAirport+"&arrivalAirport="+arrivalAirport+"&domesticOrInternational="+domesticOrInternational+"&arrivaltime="+arrivaltime;
	AutoSugRequest.open("get",url,true);
  	AutoSugRequest.onreadystatechange = getVerifyDetailFlight;	
	AutoSugRequest.send(null);
}

function getVerifyDetailFlight()
{
	if(AutoSugRequest.readyState == 4)
	{
		var resp = AutoSugRequest.responseText.split("------------------------------------------------------");
		var airrule=resp[1];
	    ruleString=	airrule
        window.open("/indus/html/flights/flightRulePopup.html", "desc_window", "width=700,height=400,left=212,top=250,scrollbars=yes,menubar=no, resizable=no,location=no,toolbar=no");				  
	}	
}


function AutoSuggest(farereferencecode,arrivalAirport,departureAirport,departureDate,airLineCode,serviceProvider,domesticOrInt,flightNo)
{	
	if(domesticOrInt=="International" && serviceProvider == "4")
	{
		var interDestination=document.getElementById("interDestination").value;
		arrivalAirport=interDestination.substring((interDestination.length-3),interDestination.length);
	}
	AutoSugRequest = makeObject();
	var url="/indus/fareRule.do?domORint="+domesticOrInt+"&farereferencecode="+farereferencecode+"&arrivalAirport="+arrivalAirport+"&departureAirport="+departureAirport+"&departureDate="+departureDate+"&airLineCode="+airLineCode+"&serviceProvider="+serviceProvider+"&flightno="+flightNo;
  	AutoSugRequest.open("get",url,true);
	AutoSugRequest.onreadystatechange = AutoSugparseInfo;	
	AutoSugRequest.send(null);
}

function AutoSugparseInfo()
{

	if(AutoSugRequest.readyState == 4)
	{
		var resp = AutoSugRequest.responseText.split("</script>");
		var airrule=resp[1];
		
	    ruleString=	airrule
        window.open("/indus/html/flights/flightRulePopup.html", "desc_window", "width=700,height=400,left=212,top=250,scrollbars=yes,menubar=no, resizable=no,location=no,toolbar=no");				  
	}	
	
}

function makeObject()
{

	var x;
	var browser = navigator.appName;
	if(browser == "Microsoft Internet Explorer")
	{
		
		x = new ActiveXObject("Microsoft.XMLHTTP");
	}
	else
	{
		
		x = new XMLHttpRequest();
	}
	
	return x;
	
}


//Mouse over function
function suggestOver(div_value) 
{

	div_value.className = 'suggest_link_over';

}
//Mouse out function
function suggestOut(div_value) 
{

	div_value.className = 'suggest_link';

}
//Click function
function setSearch(value) 
{

	document.getElementById(textvalue).value = value;
	document.getElementById(showresult).innerHTML = '';

}

function displayPage(ticketDisplayString)
{
	var arr=ticketDisplayString.split("__");
	var flightDetailObject=jsonObjForTicket(arr[1]);
	var ticketDetailObject=jsonObjForTicket(arr[2]);
	var contactDetailObject=jsonObjForTicket(arr[3]);
	var priceDetailObject=jsonObjForTicket(arr[4]);

	var ticketString="<table border=\"0\" width=\"50%\" align=\"center\"><tr><td colspan=\"2\" align=\"center\"><span><font size=\"2\">Congratulations !! Your flight ticket has been booked with the below details<br />Please save / print this for your reference.</font></span></td></tr></table>";
	ticketString=ticketString+"<table border=\"1\" width=\"700\" align=\"center\"><tr><td><table border=\"0\" width=\"700\" align=\"center\" valign=\"top\">";
	ticketString=ticketString+"<tr>	<td align=\"left\" ><font size=\"3\">Indus Refrence no."+arr[0]+"</font></td></tr><tr><td align=\"left\" ><font size=\"3\"><b>Flight Details</b></font></td></tr><tr><td></td></tr>";
	ticketString=ticketString+"<tr><td><table border=\"0\" width=\"700\" align=\"center\"><tr><td align=\"left\" ><font size=\"2\"><b>Flight Number</b></font></td><td align=\"left\" ><font size=\"2\"><b>Departs</b></font></td><td align=\"left\" ><font size=\"2\"><b>Arrives</b></font></td><td align=\"left\" ><font size=\"2\"><b>Class</b></font></td><td align=\"left\" ><font size=\"2\"><b>Status</b></font></td><td align=\"left\" ><font size=\"2\"><b>Ticket Type</b></font></td></tr>";
	
	for(var flightIndex=0;flightIndex<flightDetailObject.flightdetail.length;flightIndex++)	
	{
		ticketString=ticketString+"<tr><td align=\"left\" ><font size=\"2\"><output ref=\"airline\"/> &nbsp"+flightDetailObject.flightdetail[flightIndex].airlinename+"  /"+flightDetailObject.flightdetail[flightIndex].airlinecode+""+flightDetailObject.flightdetail[flightIndex].flightnumber+"</font></td><td align=\"left\" ><font size=\"2\">"+flightDetailObject.flightdetail[flightIndex].departureairport+" /"+flightDetailObject.flightdetail[flightIndex].departuretime+"</font></td><td align=\"left\" ><font size=\"2\">"+flightDetailObject.flightdetail[flightIndex].arrivalairport+" /"+flightDetailObject.flightdetail[flightIndex].arrivaltime+"</font></td><td align=\"left\" ><font size=\"2\">"+flightDetailObject.flightdetail[flightIndex].classwsr+"</font></td><td align=\"left\" ><font size=\"2\">"+flightDetailObject.flightdetail[flightIndex].ticketstatus+"</font></td><td align=\"left\" ><font size=\"2\">"+flightDetailObject.flightdetail[flightIndex].tickettype+"</font></td></tr>";
	}
	ticketString=ticketString+"</table>	</td></tr><br/>";
	ticketString=ticketString+"<tr><td align=\"left\" ><font size=\"3\"><b>Passenger Details</b></font></td></tr><tr><td></td></tr>";
//	ticketString=ticketString+"<tr> <td><table><repeat ref="abacusRefNumber"><tr> <td>Your ticket has been booked with Reference number&nbsp; <output ref="abacusRefNumberPart"/></td></tr><tr> <td>Your ticket will be dispatched to you shortly.</td></tr> </repeat></table></td></tr>";

	ticketString=ticketString+"<tr><td><table border=\"0\" width=\"700\" align=\"center\">";
		for(var segmentIndex=0;segmentIndex<ticketDetailObject.segment.length;segmentIndex++)
		{
			//<tr><td>"+dep_flightsArr[i].segment[segmentIndex].airlineCode+"</td></tr>
          ticketString=ticketString+"<tr><td colspan=\"3\">"+ticketDetailObject.segment[segmentIndex].origin+"&nbsp;"+ticketDetailObject.segment[segmentIndex].destination+"&nbsp;"+ticketDetailObject.segment[segmentIndex].airlineName+"</td></tr><tr><td align=\"left\"><font size=\"2\">Name</font></td><td align=\"left\"><font size=\"2\">Passenger Type</font></td><td align=\"left\"><font size=\"2\">E-Ticket Number</font></td><td align=\"left\"><font size=\"2\">AirLine Reference Number</font></td></tr>";
			for(var psngerIndex=0;psngerIndex<ticketDetailObject.segment[segmentIndex].psngername.length;psngerIndex++)
			{
					
					ticketString=ticketString+"<tr><td align=\"left\"><font size=\"2\">"+ticketDetailObject.segment[segmentIndex].psngername[psngerIndex].Psgerfname+"</font></td><td align=\"left\"><font size=\"2\">"+ticketDetailObject.segment[segmentIndex].psngername[psngerIndex].Psgertype+"</font></td>";
					ticketString=ticketString+"<td><table>";
					for(var eTicketIndex=0;eTicketIndex<ticketDetailObject.segment[segmentIndex].psngername[psngerIndex].eTicket.length;eTicketIndex++)
					{
					    ticketString=ticketString+"<tr><td align=\"left\"><font size=\"2\">"+ticketDetailObject.segment[segmentIndex].psngername[psngerIndex].eTicket[eTicketIndex].eticketno+"</font></td></tr>"	;
					}
					ticketString=ticketString+"</table></td>";
					ticketString=ticketString+"<td align=\"left\"><font size=\"2\">"+ticketDetailObject.segment[segmentIndex].airlineRefNO+"</font></td></tr>";;
			}
			
		}	
	ticketString=ticketString+"</table></td></tr>";



	ticketString=ticketString+"<tr> <table border=\"0\" width=\"700\" align=\"center\">";
	ticketString=ticketString+"<tr><td colspan = \"2\"><font size=\"3\"><b>Contact Details / Delivery Address (for Paper tickets)</b></font></td></tr>";
	ticketString=ticketString+"<tr><td align=\"left\" width=\"20%\"> Name </td><td align=\"left\">"+contactDetailObject.contactDetails[0].firstname+"&nbsp &nbsp </td> </tr>";
	ticketString=ticketString+"<tr><td align=\"left\" width=\"20%\">Address	</td><td align=\"left\">"+contactDetailObject.contactDetails[0].address1+"</td> /tr>";
	ticketString=ticketString+"<tr><td align=\"left\" width=\"20%\">Address2:</td><td align=\"left\">"+contactDetailObject.contactDetails[0].address2+"</td> </tr>";
	ticketString=ticketString+"<tr><td align=\"left\" width=\"20%\"> Telephone Number</td> <td align=\"left\">"+contactDetailObject.contactDetails[0].phonenumber+"</td></tr>";
	ticketString=ticketString+"<tr><td align=\"left\" width=\"20%\">City</td> <td align=\"left\">"+contactDetailObject.contactDetails[0].city+"</td></tr>";
	
	ticketString=ticketString+"<tr><br /><td><font size=\"3\" colspan=\"2\"><b>Pricing Details</b></font></td></tr>";
   
   var adultBasePrice=0;
   var childBasePrice=0;
   var infantBasePrice=0;
   var airLineTaxes=0;
   var govtserviceTax=0;
   var totalDiscount=0;
   var totalPrice=0;
   var noOfAdult=0;
   var noOfChild=0;
   var noOfInfant=0;
   for(var priceIndex=0;priceIndex<priceDetailObject.price.length;priceIndex++)
   {
	   	adultBasePrice=adultBasePrice+Number(priceDetailObject.price[priceIndex].adultbaseprice);
   	   	childBasePrice=adultBasePrice+Number(priceDetailObject.price[priceIndex].childbaseprice);
   	   	infantBasePrice=adultBasePrice+Number(priceDetailObject.price[priceIndex].infantbaseprice);
   	   	airLineTaxes=airLineTaxes+Number(priceDetailObject.price[priceIndex].taxes);
   	   	govtserviceTax=govtserviceTax+Number(priceDetailObject.price[priceIndex].servicetax);
   	   	totalDiscount=totalDiscount+Number(priceDetailObject.price[priceIndex].discount);
   	   	totalPrice=totalPrice+Number(priceDetailObject.price[priceIndex].totalprice);
   	   	noOfChild=Number(priceDetailObject.price[priceIndex].numberofchild);
   	   	noOfInfant=Number(priceDetailObject.price[priceIndex].numberofinfant);
   }
    ticketString=ticketString+"<tr><td align=\"left\" width=\"20%\">Adult Price </td><td align=\"left\">"+adultBasePrice+"</td></tr>";
    if(noOfChild>0)
    {
    	ticketString=ticketString+"<tr id=\"hiderowchild\">	<td align=\"left\" width=\"20%\">Child Price </td><td align=\"left\">"+childBasePrice+"</td></tr>";
    }
    if(noOfInfant>0)
    {
    	ticketString=ticketString+"<tr id=\"hiderowchild\">	<td align=\"left\" width=\"20%\">Infant Price </td><td align=\"left\">"+infantBasePrice+"</td></tr>";
    }
    ticketString=ticketString+"<tr><td align=\"left\" width=\"20%\"> Taxes </td><td align=\"left\">"+airLineTaxes+"</td></tr>";
    ticketString=ticketString+"<tr><td align=\"left\" width=\"20%\"> Service Charges </td><td align=\"left\">"+govtserviceTax+"</td></tr>";
    ticketString=ticketString+"<tr><td align=\"left\" width=\"20%\"> Discount </td><td align=\"left\">"+totalDiscount+"</td></tr>";
    ticketString=ticketString+"<tr><td align=\"left\" width=\"20%\"> Total </td><td align=\"left\">"+totalPrice+"</td></tr>";
	ticketString=ticketString+"<tr><td align=\"center\" colspan=\"2\"><a href=\"javascript:window.print();\" class=\"link\">Print</a></td></tr>";
	ticketString=ticketString+"</table></tr></table></td></tr></table>";
	ruleString=ticketString;
	window.open("/indus/html/flights/flightRulePopup.html", "desc_window", "width=700,height=600,left=300,top=300,scrollbars=yes,menubar=no, resizable=no,location=no,toolbar=no");				  
}
function jsonObjForTicket(jsonstr)
{
	var js=eval('('+jsonstr+')');
	return js;
}

function writeToWindow() {
   var newContent = "<html><head><title>International airport selection according to city</title></head>";
   newContent += "<body>Select country<br />";
   newContent += "<select onchange=\"window.opener.selectValueChanged(this.value);window.opener.selectDelete('true');\">";
   newContent +="<option value=\"\">Select</option>";	
   for (var k in dispArr) 
	{
	  newContent +="<option value="+k+">"+dispArr[k]+"</option>";	
	}
   newContent += "</select><br /><br />";
  g_newWindow.document.write(newContent);  
 }

function selectDelete(val)
{
	try
	{
		if(val=='true')
		{
		   var Parent = g_newWindow.document.getElementById("cities").parentNode.parentNode.parentNode;
		   while(Parent.hasChildNodes())
	 	     {
	   		   Parent.removeChild(Parent.firstChild);
	   		 }
		}   	
   	  var Parent = g_newWindow.document.getElementById("airport").parentNode.parentNode.parentNode;
       while(Parent.hasChildNodes())
 	     {
   		   Parent.removeChild(Parent.firstChild);
   		 }	 
	}catch(e){}
}

var countryCode="";
function selectValueChanged(val)
{
	
	countryCode=val;
    DWREngine._execute('/indus/dwr', 'CodeMaster', 'getIntDetail', val, '',showCallBackSecond);
}

function showCallBackSecond(data)
{
   var newContent ="<table ><tr><td id=\"cities\">Select the cities of selected country</td></tr>";
    newContent += "<tr><td><select onchange=\"window.opener.selectValueClicked(this.value);window.opener.selectDelete('false');\">";
    newContent +="<option value=\"\">Select</option>";	
   for (var k in data) 
	{
		newContent +="<option value="+k+">"+data[k]+"</option>";	
	}
  newContent += "</td></tr></table>";
  g_newWindow.document.write(newContent);   
}	

function selectValueClicked(cityVal)
{
    DWREngine._execute('/indus/dwr', 'CodeMaster', 'getIntDetail', countryCode, cityVal,showCallBackThird);
}

function showCallBackThird(data)
{
   var newContent ="<table><tr><td id=\"airport\">Select the airport of selected city</td></tr>";
   for (var k in data) 
	{
	  newContent +="<tr><td><a href=\"#\" onClick=\"window.opener.setSelectedValue('"+k+"','"+data[k]+"'); self.close()\" >"+data[k]+"</a></td></tr>";
	}
  newContent += "</table>";
  newContent += "</body></html>";
  g_newWindow.document.write(newContent);  
}	

function setSelectedValue(selectedCode,selectedVal)
{
	//document.getElementById("interDestination").value=selectedCode;
	 var obj=document.getElementById('interDestination');
	 g_newWindow.document.close( ); // close layout stream
	// var obj=document.getElementByName('searchFlight/destination');
	 var len=Number(obj.options.length);
	 obj.options[len] = new Option(selectedVal,selectedVal+","+countryCode+"-"+selectedCode);
	  obj.options[len].selected=true;
	// obj.focus();
    return true;
}