/************************************* Flight Result Specific Scripts ****************************************/
/****** Created By: Surabhi Gupta ******/
/****** Dated: 5th September 2007 ******/
/****** Purpose: This Javacript file contains all the functions related to Flight Search & Results ******/

/************************************* Flight Result Specific Scripts Starts ****************************************/
var iFilesLoaded = 0
var strSessionId = ""
var bFirstResult = true
var objMergeXML;   
var strQry
var totAirlines
var arrAirLines = new Array();
var bool;
var sIndex;
var nColumns = 4;
var startAirlineIndex = 1; endAirlineIndex = 5;
var faresearch;
var currencyCode;
var showFareSource = false;
var totalFlight;
var xu = new XML();
var spnTotalResults = document.getElementById("spnTotalResults");
var dom = new DOM();
var globalSortId;
var showClassDiv;
var iBEReply;
var Allresultsload = false;

function SearchFlightMain() 
{
  var hdnJourneyType = getElement("hndJourneyType", false).value;
  var hdnFlightMode = getElement("hdnFlightMode", false).value;
  var hndFirstJourneyType = getElement("hndFirstJourneyType", false).value;
  var flag = true;
  
  if (hndFirstJourneyType != "ID") 
  {
    flag = false;
    GetFlightCount()
  }
  if (flag == true) 
  {
    SearchFlight();
  }
}

var xmlHttp;
function GetFlightCount() 
{
  xmlHttp = new GetXmlHttpObject();
  //var xmldom = xu.GetXMLDocument();
  if (xmlHttp) 
  {
    var webServiceURL;
    // Commented temporarily because Mozilla debugging only works for local requests.
    var wsPath = new DOM().$("ctl00_contentMain_hdnDomain").value;
    wsPath = (wsPath == "http://localhost/") ? "http://localhost/online_1/ASPX/" : wsPath;
    webServiceURL = wsPath + "Online/ASPX/Validations.aspx?Validate=flightsearch";
    
     if (new BrowserSniffer().GetBrowserType() == "ie")
        xmlHttp.open("POST", webServiceURL, true);
    else
        xmlHttp.open("GET", webServiceURL, true);

    xmlHttp.onreadystatechange = fnFlightCount;
    xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    xmlHttp.send(null);
  }
}

function fnFlightCount() 
{
  if (xmlHttp.readyState == 4 || xmlHttp.readyState == 'complete') 
  {
    if (xmlHttp.status == 200) 
    {
      totalFlight = xmlHttp.responseText;
      getElement("hndFilesToLoad", false).value = totalFlight;
      var hdnJourneyType = getElement("hndJourneyType", false).value;
      var hdnFlightMode = getElement("hdnFlightMode", false).value;
      var hndFirstJourneyType = getElement("hndFirstJourneyType", false).value;

      if (hdnFlightMode == "I") 
      {
				// Do nothing?
      }
      else 
      {
        if (hdnFlightMode == "D") 
        {
          if (hdnJourneyType == "R") 
          {
            iBEReply = getElement("hndFilesToLoad", false).value;
            iBEReply = parseInt(iBEReply) / 2
            getElement("hndFilesToLoad", false).value = iBEReply;
          }
        }
        else 
        {
          if (hndFirstJourneyType == "ID") 
          {
            iBEReply = getElement("hndFilesToLoad", false).value;
            iBEReply = parseInt(iBEReply) / 2
            getElement("hndFilesToLoad", false).value = iBEReply;
          }
        }
      }
      SearchFlight();
    }
  }
}

function SearchFlight() 
{
  if (strSessionId == "") 
  {
		// Commented temporarily because Mozilla debugging only works for local requests.
    strSessionId = getElement("hndSessionId", false).value
    //strSessionId = "OD-xtk4wd55ghmghmfnd0liamj3"
  }
  xmlHttp = new GetXmlHttpObject();
	
  if (xmlHttp) 
  {
    var webServiceURL;
    if (bFirstResult == true) 
    {
      strQry = "<QryXML><SessionId>" + strSessionId + "</SessionId><FirstHit>true</FirstHit><AllAtOnce>true</AllAtOnce><FilesToLoad>" + getElement("hndFilesToLoad", false).value + "</FilesToLoad></QryXML>"
    }
    else 
    {
      strQry = "<QryXML><SessionId>" + strSessionId + "</SessionId><FirstHit>false</FirstHit></QryXML>"
    }
    // Commented temporarily because Mozilla debugging only works for local requests.
    var XChangeOnlineService = getElementWithSeparator('hdnSvcXChange', false, '', '_').value;
    //var XChangeOnlineService = "http://localhost/XChangeOnlineService/XChangeOnlineService.asmx"
    webServiceURL = XChangeOnlineService + '/GetFareDetails?strInputXML=' + strQry;

    xmlHttp.onreadystatechange = ServiceResponseHandler;
    xmlHttp.open("GET", webServiceURL, true);
    xmlHttp.send(null);

  }
  else 
  {
    alert("Error! Your browser does not seem to support Ajax!");//Error! Your browser does not seem to support Ajax!
  }
}

function ServiceResponseHandler() 
{
  if (xmlHttp.readyState == 4 || xmlHttp.readyState == 'complete') 
  {
    if (xmlHttp.status == 200) 
    {
		  var aj = new Ajax();
			var strResult = aj.GetResponseText(xmlHttp);
			ToggleLayer(true);
      var xmlResult = xu.LoadXMLString(strResult);

      if ( (xu.HasXML(xmlResult)) && (xmlResult.documentElement.nodeName != "Message") )
      {
        iFilesLoaded += parseInt(xu.SelectNodeValue(xmlResult, "FilesLoaded"))
        var strResult;

        strSalesChannel = getElement("hdnChannelType", false).value
        if (strSalesChannel.indexOf("Online") > 0)
        {
          strSalesChannel = "Online"
        }

        if (bFirstResult == true) 
        {
          ToggleComponents();
        }

        mergeResultXML(xmlResult)
				
        if (bFirstResult == true) 
        {
          document.getElementById("tdFilters").style.visibility = "visible"
          document.getElementById("tdFilters").style.position = ""
          //init(true)
          bFirstResult = false
          totAirlines = 0
        }
        else 
        {
          init(false)
        }
        CreateAirlines(xmlResult)
      }
      else 
      {
        iFilesLoaded += parseInt(xu.SelectNodeValue(xmlResult, "FilesLoaded"))
      }

      var iTotalFiles = getElement("hndFilesToLoad", false).value

      if (parseInt(iFilesLoaded) < parseInt(iTotalFiles)) 
      {
        setTimeout(SearchFlight, 2000)
        //showClassDiv="false"
        if ( (xu.HasXML(xmlResult)) && (xmlResult.documentElement.nodeName != "Message") )
        {
          Allresultsload = true;
          sortAllResults(false, 'PR')
        }
      }
      else 
      {
        if (!xu.HasXML(objMergeXML)) 
				{
					//ObsoleteRedirectToStartPage();
					RedirectToStartPage();
				}
        else 
        {
          //showClassDiv="true"
           Allresultsload = true;
          sortAllResults(false, 'PR')
          document.getElementById("trProcessing").style.visibility = "hidden"
          document.getElementById("trProcessing").style.position = "absolute"
          if ((strSessionId.toString()).substr(0, 2) == 'IN') 
          {
//            CreateFlightOptions(xmlResult)
              CreateFlightOptions()
          }
					Allresultsload = false;
					ToggleLayer(false);
        }
      }
    }
  }
}

function RedirectToStartPage()
{
	window.location.href = "Errorpage.aspx?err=333";
}

function ObsoleteRedirectToStartPage()
{
	alert("No Fares are available for the return trip against the criteria chosen by you.. Please search again.");
	if (document.getElementById("ctl00_contentMain_hndchannelType") != null) 
	{
		if ((document.getElementById("ctl00_contentMain_hndchannelType").value == "1") || (document.getElementById("ctl00_contentMain_hndchannelType").value == "2")) 
		{
			if (document.getElementById("ctl00_contentMain_hndDomainName").value != "") 
			{
				if ((document.getElementById("ctl00_contentMain_hndDomainName").value == "DewanHolidays") || (document.getElementById("ctl00_contentMain_hndDomainName").value == "Saharaglobal")) 
				{
					window.location.href = '../' + document.getElementById("ctl00_contentMain_hndDomainName").value + '/FlightHome.aspx';
				}
				else 
				{
					if ((document.getElementById("ctl00_contentMain_hdnChannelName") != null) && ((document.getElementById("ctl00_contentMain_hdnChannelName").value.toLowerCase() == "bo-dc") || (document.getElementById("ctl00_contentMain_hdnChannelName").value.toLowerCase() == "bo-sa"))) 
					{
						window.location.href = '../' + document.getElementById("ctl00_contentMain_hndDomainName").value + '/Index.aspx?type=flight';
					}
					else 
					{
						// extra check for B2B2C website.
						if (((document.getElementById("ctl00_contentMain_hndchannelType").value == "2") || (document.getElementById("ctl00_contentMain_hndchannelType").value == "1")) && (document.getElementById("ctl00_contentMain_hndDomainName").value.toLowerCase() == "online")) 
						{
							window.location.href = '../main.aspx?type=flight';
						}
						else 
						{
							if (document.getElementById("ctl00_contentMain_hndDomainName").value == "Quadlabs") 
							{
								window.location.href = '../' + document.getElementById("ctl00_contentMain_hndDomainName").value + '/HomePage.aspx?type=flight';
							}
							else 
							{
								history.back();
							}
						}
					}
				}
			}
			else 
			{
				history.back();
			}
		}
		else 
		{
			if (document.getElementById("ctl00_contentMain_hndDomainName").value != "") 
			{
				window.location.href = '../' + document.getElementById("ctl00_contentMain_hndDomainName").value + '/Index.aspx?type=flight';
			}
			else 
			{
				history.back();
			}
		}
	}
}

function ToggleComponents() 
{
  // Hide the Wait DIV.
  var waitDiv = document.getElementById("divWait");
  if (waitDiv) 
  {
    waitDiv.style.visibility = "hidden"
    waitDiv.style.position = "absolute"
  }

  // Show the Results DIV.
  var resultsDiv = document.getElementById("divResults");
  resultsDiv.style.display = "block"

  // Show all - Header/HeaderImage/Footer/FooterImage/NavBar/PoweredBy
  var Headerfr = document.getElementById("ctl00_ifrmHeader");
  if (Headerfr) 
  {
    Headerfr.style.display = "block";
  }

  var imgHeader = document.getElementById("ctl00_imgHeader");
  if (imgHeader) 
  {
    imgHeader.style.display = "block";
  }

  var navBar = document.getElementById("tblNavigation");
  if (navBar != null) 
  {
    navBar.style.display = "";
  }

  var Footerfr = document.getElementById("ctl00_ifrmFooter");
  if (Footerfr) 
  {
    Footerfr.style.display = "block";
  }

  var tblFooter = document.getElementById("ctl00_tblFooter");
  if (tblFooter) 
  {
    tblFooter.style.display = "block";
  }

  var poweredBy = document.getElementById("ctl00_PoweredByCopyRight");
  if (poweredBy) 
  {
    poweredBy.style.display = "";
  }
}

function SelectAllAirlines(checked)
{
ToggleLayer(true);
    for (intCtr = 0; intCtr <= totAirlines - 1; intCtr++)
    {
      var id = "chkAirlines" + intCtr;
      document.getElementById(id).checked = checked;
    }
    
    var selectHTML = checked ? "Deselect All" : "Select All";
    document.getElementById("Select").innerHTML = selectHTML;

    FilterByAirlines();
}
function CreateAirlines(xmlResult) 
{
	  // Set XSL params.s
	var numAdt, numChd, numInf, decFormat, showDecimals;
	numAdt = getElement("numFLAdults", false).value;
	numChd = getElement("numFLChildren", false).value;
	numInf = getElement("numFLInfants", false).value;
	
	var dom = new DOM();
	decFormat = dom.$("ctl00_hdnRegionCode").value;
	showDecimals = dom.$("ctl00_contentMain_hdnDecimalPreference").value.toLowerCase();
	
	//xu.paramArray = new xu.XSLParamArray("numAdt", numAdt, "numChd", numChd, "numInf", numInf);
	xu.AddParameterArray("numAdt", numAdt, "numChd", numChd, "numInf", numInf, "decFormat", decFormat, "showDecimals", showDecimals);
	
	var xml = xu.XSLTransform(objMergeXML, "../XSLT/UniqueAirlineNames.xsl.ay", "xml");
	objAirlineXML = xu.LoadXMLString(xml);
  var rowIndx = 1;
  var tdContainerTblAirlines= document.getElementById("tdContainerTblAirlines");
  tdContainerTblAirlines.innerHTML="<TABLE class='allborder' id='tblAirlines' cellSpacing='2' cellPadding='4' width='98%' border='0'></TABLE>"
  totAirlines = 0
  var root = objAirlineXML.documentElement;
  var count = xu.GetNodeCount(objAirlineXML, "Airline");
  var tblAirlines = document.getElementById("tblAirlines");
  var newRow = dom.InsertTableRow(tblAirlines, 0)
  var deselect = "Deselect All";
  
	newCell =  dom.InsertTableCell(newRow);
	newCell.width = "20";
	newCell.innerHTML = "<input type='checkbox' id='SelectOptions' checked='checked' onclick='SelectAllAirlines(this.checked);' />";
  
  newCell =  dom.InsertTableCell(newRow);
  newCell.colSpan= "3";
  newCell.width = "100%";
  newCell.align = "left";
  newCell.innerHTML = "<span id='Select' class='AirlineList' style='font-weight:600'>" + deselect + "</span>";
	
    
  for (i = 0; i <= count; i++) 
  {
    if(i==0)
    {
      if (xu.SelectNodeValue(objAirlineXML, "Airline[0]") != null)
      {
        count--;
        sIndex = 0;
        startAirlineIndex = 0;
        endAirlineIndex = 4;
      }
      else
      {
        i++;
        sIndex = 1;
        startAirlineIndex = 1;
        endAirlineIndex = 5;
      }
    }
		var airName = xu.SelectNodeValue(objAirlineXML, "Airline[" + i + "]/@name");
		var airLogo = xu.SelectNodeValue(objAirlineXML, "Airline[" + i + "]/@logo");
		var airAmt = xu.SelectNodeValue(objAirlineXML, "Airline[" + i + "]/@amt");

    newRow = dom.InsertTableRow(tblAirlines, rowIndx + totAirlines);
    newCell = dom.InsertTableCell(newRow);
    newCell.width = "20";
    newCell.innerHTML = "<input type=\"checkbox\" id=\"chkAirlines" + totAirlines + "\" checked=\"checked\" name=\"chkAirlines" + totAirlines + "\" value=\"" + airName + "\" OnClick=\"javascript:ToggleCheckAirLine(this.value);\" />";

    newCell = dom.InsertTableCell(newRow);
    newCell.innerHTML = "<img src=" + airLogo + " border='0' alt=''  hspace='0' vspace='0' />";

    newCell = dom.InsertTableCell(newRow);
    newCell.align = "left";
    newCell.innerHTML = "<span class='AirlineList'>" + airName + "</span>";

    newCell = dom.InsertTableCell(newRow);
    newCell.align = "left";
    newCell.innerHTML = "<span class='AirlineList' style='font-weight:600'>" + airAmt + "</span>";

    currencyCode = airAmt.toString().substring(0, 4);
    totAirlines++;
    arrAirLines.push(airName);
  }
}

function CreateFlightOptions() 
{
  var amt;
  
  if (getElement("hndJourneyType", false).value == 'R') 
  {
    xu.AddParameter("jType", 'R');
  }
  else 
  {
    xu.AddParameter("jType", 'O');
  }
  
  var decFormat, showDecimals;
  decFormat = dom.$("ctl00_hdnRegionCode").value;
  showDecimals = dom.$("ctl00_contentMain_hdnDecimalPreference").value.toLowerCase();
  
  xu.AddParameter("decFormat", decFormat);
  xu.AddParameter("showDecimals", showDecimals);
  
	var result = xu.XSLTransform(objMergeXML, "../XSLT/FlightOption.xsl.ay", "xml");
  objAirlineXML = xu.LoadXMLString(result);

  var ind = xu.GetNodeCount(objAirlineXML,"Airline")

  if (ind < nColumns) 
  {
    endAirlineIndex = ind + sIndex;
  }
  else 
  {
    if (endAirlineIndex < nColumns) 
    {
      endAirlineIndex = nColumns + sIndex;
      document.getElementById("ctl00_contentMain_flLink").style.visibility = "hidden";
    }
  }
  if (endAirlineIndex >= ind)  
  {
    endAirlineIndex = ind + sIndex;
    document.getElementById("ctl00_contentMain_flLink").style.visibility = "hidden";
  }
  else 
  {
    document.getElementById("ctl00_contentMain_flLink").style.visibility = "visible";
  }
  
  newrow = dom.InsertTableRow("tlbFlightOption",0);

  if ((endAirlineIndex - startAirlineIndex) < 4 && ind >= 4) 
  {
    startAirlineIndex -= 4 - (endAirlineIndex - startAirlineIndex)
  }
  
  if (startAirlineIndex <= sIndex) 
  {
    startAirlineIndex = sIndex;
    if ((endAirlineIndex < nColumns + sIndex) && (ind >= nColumns))
    {
      endAirlineIndex = nColumns + sIndex;
    }
    document.getElementById("ctl00_contentMain_flLink2").style.visibility = "hidden";
  }
  else 
  {
    document.getElementById("ctl00_contentMain_flLink2").style.visibility = "visible";
  }
    
  newCell = dom.InsertTableCell(newrow, 0);
  newCell.style.width = "110px";
  newCell.style.borderTop = "none";
  newCell.style.borderlRight = "none";
  newCell.style.borderLeft = "none";
  newCell.style.borderColor = "#4464a0"

  newCell.innerHTML = "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"

  for (intCtr = startAirlineIndex; intCtr <= endAirlineIndex - 1; intCtr++) 
  {
    newCell = dom.InsertTableCell(newrow);
    newCell.style.width = "110px";
    newCell.style.borderTop = "none";
    newCell.style.borderlRight = "none";
    newCell.style.borderLeft = "none";
    newCell.style.borderColor = "#4464a0"
        
    if (intCtr == sIndex) 
    {
      newCell.innerHTML = "  <img src=" + xu.SelectNodeValue(objAirlineXML,"Airline[" + intCtr + "]/Logo") + "   alt='' width='30px'    /> <br/>"

      newCell.innerHTML += "<a href =javascript:ToggleLayer(true);Flightoption('','','','true');><span   style='font-size: 10pt;color:#1F5A97;font-weight:lighter;  ' ><u>" + xu.SelectNodeValue(objAirlineXML,"Airline[" + intCtr + "]/Name") + "</u></span></a>   "
    }
    else 
    {
      newCell.innerHTML = "  <img src=" + xu.SelectNodeValue(objAirlineXML,"Airline[" + intCtr + "]/Logo") + "   alt='' width='30px'    /> <br/> "
      newCell.innerHTML += "<a href =javascript:ToggleLayer(true);Flightoption('" + xu.SelectNodeValue(objAirlineXML,"Airline[" + intCtr + "]/Name").replace(/ /gi, "%20") + "','','');><span   style='font-size: 10pt;color:#1F5A97;font-weight:lighter;  ' ><u>" + xu.SelectNodeValue(objAirlineXML,"Airline[" + intCtr + "]/Name") + "</u></span></a>  "
    }
  }

  newrow = dom.InsertTableRow("tlbFlightOption",1);

  newCell = dom.InsertTableCell(newrow,0);
  newCell.style.borderTop = "none";
  newCell.style.borderlRight = "none";
  newCell.style.borderLeft = "none";
  newCell.style.borderColor = "#4464a0"
  newCell.style.backgroundColor = "#DCF3FF"

  newCell.innerHTML = " <span   style='font-size: 10pt; font-weight:bold;' >" + "Non Stop" + " </span> "

  for (intCtr = startAirlineIndex; intCtr <= endAirlineIndex - 1; intCtr++) 
  {
    newCell = dom.InsertTableCell(newrow);
    newCell.style.borderTop = "none";
    newCell.style.borderlRight = "none";
    newCell.style.borderLeft = "none";
    newCell.style.borderColor = "#4464a0"

    newCell.style.backgroundColor = "#DCF3FF"

    amt = xu.SelectNodeValue(objAirlineXML,"Airline[" + intCtr + "]/NonStop")
    if (amt == "") 
    {
      amt = "---   "
    }
    else 
    {
        if (intCtr == sIndex) 
        {
            amt = " <a href =javascript:ToggleLayer(true);Flightoption('','','','true');javascript:Flightoption('All%20Results','" + replaceCommas(amt) + "','0','true');><span   style='font-size: 8pt; font-weight:bold;  color:#1F5A97'><u>" + currencyCode + amt + "</u></span></a>   "
        }
        else 
        {
            amt = " <a href =javascript:ToggleLayer(true);Flightoption('','','');javascript:Flightoption('" + xu.SelectNodeValue(objAirlineXML,"Airline[" + intCtr + "]/Name").replace(/ /gi, "%20") + "','" + replaceCommas(amt) + "','0');><span   style='font-size: 8pt; font-weight:bold;  color:#1F5A97'><u>" + currencyCode + amt + "</u></span></a>   "
        }
      //amt = " <a href =javascript:ToggleLayer(true);Flightoption('','','');javascript:Flightoption('" + xu.SelectNodeValue(objAirlineXML,"Airline[" + intCtr + "]/Name").replace(/ /gi, "%20") + "'," + amt.replace(/,/, '') + ",'0');><span   style='font-size: 8pt; font-weight:bold;  color:#1F5A97'><u>" + currencyCode + amt + "</u></span></a>   "
    }
    newCell.innerHTML = " " + amt
  }
  newrow = dom.InsertTableRow("tlbFlightOption",2);

  newCell = dom.InsertTableCell(newrow);
  newCell.style.borderTop = "none";
  newCell.style.borderlRight = "none";
  newCell.style.borderLeft = "none";
  newCell.style.borderColor = "#4464a0"

  newCell.innerHTML = "  <span   style='font-size: 10pt; font-weight:bold;' >" + "1 Stop" + " </span>   "
  newCell.style.backgroundColor = "#DCF3FF"
  for (intCtr = startAirlineIndex; intCtr <= endAirlineIndex - 1; intCtr++) 
  {
    newCell = dom.InsertTableCell(newrow);
    newCell.style.borderTop = "none";
    newCell.style.borderlRight = "none";
    newCell.style.borderLeft = "none";
    newCell.style.borderColor = "#4464a0"

    newCell.style.backgroundColor = "#DCF3FF"

    amt = xu.SelectNodeValue(objAirlineXML,"Airline[" + intCtr + "]/OneStop")
    if (amt == "") 
    {
      amt = "---   "
    }
    else 
    {
        if (intCtr == sIndex) 
        {
            amt = " <a href =javascript:ToggleLayer(true);Flightoption('','','','true');javascript:Flightoption('All%20Results','" + replaceCommas(amt) + "','1','true');><span   style='font-size: 8pt; font-weight:bold;  color:#1F5A97'><u>" + currencyCode + amt + "</u></span></a>   "
        }
        else 
        {
            amt = " <a href =javascript:ToggleLayer(true);Flightoption('','','');javascript:Flightoption('" + xu.SelectNodeValue(objAirlineXML,"Airline[" + intCtr + "]/Name").replace(/ /gi, "%20") + "','" + replaceCommas(amt) + "','1');><span   style='font-size: 8pt; font-weight:bold;  color:#1F5A97'><u>" + currencyCode + amt + "</u></span></a>   "
        }
      //amt = " <a href =javascript:ToggleLayer(true);Flightoption('','','');javascript:Flightoption('" + xu.SelectNodeValue(objAirlineXML,"Airline[" + intCtr + "]/Name").replace(/ /gi, "%20") + "'," + amt.replace(/,/, '') + ",'1');><span   style='font-size: 8pt; font-weight:bold;  color:#1F5A97'><u>" + currencyCode + amt + "</u></span></a>   "
    }
    newCell.innerHTML = " " + amt
  }
  newrow = dom.InsertTableRow("tlbFlightOption",3);

  newCell = dom.InsertTableCell(newrow);
  newCell.style.borderTop = "none";
  newCell.style.borderlRight = "none";
  newCell.style.borderLeft = "none";
  newCell.style.borderBottom = "none";
  newCell.style.borderColor = "#4464a0"

  newCell.innerHTML = "<span   style='font-size: 10pt; font-weight:bold;' >" + "2+ Stop" + " </span> "
  newCell.style.backgroundColor = "#DCF3FF"
  for (intCtr = startAirlineIndex; intCtr <= endAirlineIndex - 1; intCtr++) 
  {
    newCell = dom.InsertTableCell(newrow);
    newCell.style.borderTop = "none";
    newCell.style.borderlRight = "none";
    newCell.style.borderLeft = "none";
    newCell.style.borderBottom = "none";
    newCell.style.borderColor = "#4464a0"
    newCell.style.backgroundColor = "#DCF3FF"

    amt = xu.SelectNodeValue(objAirlineXML,"Airline[" + intCtr + "]/MoreStop")
    if (amt == "") 
    {
      amt = "---   "
    }
    else 
    {
        if (intCtr == sIndex) 
        {
            amt = " <a href =javascript:ToggleLayer(true);Flightoption('','','','true');javascript:Flightoption('All%20Results','" + replaceCommas(amt) + "','2','true');><span   style='font-size: 8pt; font-weight:bold;  color:#1F5A97'><u>" + currencyCode + amt + "</u></span></a>   "
        }
        else 
        {
            amt = " <a href =javascript:ToggleLayer(true);Flightoption('','','');javascript:Flightoption('" + xu.SelectNodeValue(objAirlineXML,"Airline[" + intCtr + "]/Name").replace(/ /gi, "%20") + "','" + replaceCommas(amt) + "','2');><span   style='font-size: 8pt; font-weight:bold;  color:#1F5A97'><u>" + currencyCode + amt + "</u></span></a>   "
        }
      //amt = " <a href =javascript:ToggleLayer(true);Flightoption('','','');javascript:Flightoption('" + xu.SelectNodeValue(objAirlineXML,"Airline[" + intCtr + "]/Name").replace(/ /gi, "%20") + "'," + amt.replace(/,/, '') + ",'2');><span   style='font-size: 8pt; font-weight:bold;  color:#1F5A97'><u>" + currencyCode + amt + "</u></span></a>   "
    }
    newCell.innerHTML = " " + amt
  }
}

function mergeResultXML(objXML) 
{
  if (xu.HasXML(objMergeXML)) 
  {
		var airlineList = xu.SelectNode(objXML, "/FCRep/AirlineList");
		objMergeXML.documentElement.appendChild(airlineList.cloneNode(true));
  }
  else
  {
		objMergeXML = objXML;
  }
	var xmlOutput = xu.XSLTransform(objMergeXML, "../XSLT/xsltMergeXML.xslt", "xml");
  objMergeXML = xu.LoadXMLString(xmlOutput);

	var totResults = xu.GetNodeCount(objMergeXML, "AirlineList/*");
	spnTotalResults = document.getElementById("spnTotalResults");
  spnTotalResults.innerHTML = "Displaying<b>"
  + totResults.toString()
  + " / " 
  + totResults.toString()
  + "</b> Flight Options for <b>"
  + document.getElementById("ctl00_contentMain_numFLAdults").value
  + " Adult";

  if (document.getElementById("ctl00_contentMain_numFLChildren").value != '0') 
  {
    spnTotalResults.innerHTML += '<b>,' + document.getElementById("ctl00_contentMain_numFLChildren").value + ' Child';
  }
  if (document.getElementById("ctl00_contentMain_numFLInfants").value != '0') 
  {
    spnTotalResults.innerHTML += '<b>,' + document.getElementById("ctl00_contentMain_numFLInfants").value + ' Infant';
  }

}

function fnFlLink(opt) 
{
  if (opt == "Nxt") 
  {
    startAirlineIndex = endAirlineIndex;
    endAirlineIndex += 4;
  }
  if (opt == "Pre") 
  {
    endAirlineIndex = startAirlineIndex;
    startAirlineIndex -= 4;
  }

  tblLength = document.getElementById("tlbFlightOption").rows.length
  for (intCtr = 0; intCtr <= tblLength - 1; intCtr++) 
  {
    document.getElementById('tlbFlightOption').deleteRow(0)
  }
  CreateFlightOptions();
}

//new sort function

function sortAllResults(AddTags, sortId) 
{
ToggleLayer(true);
     var firstResult = true;
    if (typeof(globalSortId) != "undefined")
	firstResult = false;
    globalSortId = sortId;
    
   if (sortId == 'PR') 
  {
    document.getElementById("rbPrice").checked = true;
    document.getElementById("rbDeptTime").checked = false;
    document.getElementById("rbArrTime").checked = false;
    if ((document.getElementById("rbRetTime") != 'undefined') && (document.getElementById("rbRetTime")!= null))
    {
      document.getElementById("rbRetTime").checked = false;
    }
  }
  if (sortId == 'DT') 
  {
    document.getElementById("rbPrice").checked = false;
    document.getElementById("rbDeptTime").checked = true;
    document.getElementById("rbArrTime").checked = false;
    if ((document.getElementById("rbRetTime") != 'undefined') && (document.getElementById("rbRetTime")!= null))
    {
      document.getElementById("rbRetTime").checked = false;
    }
  }
  if (sortId == 'AT') 
  {
    document.getElementById("rbPrice").checked = false;
    document.getElementById("rbDeptTime").checked = false;
    document.getElementById("rbArrTime").checked = true;
    if ((document.getElementById("rbRetTime") != 'undefined') && (document.getElementById("rbRetTime")!= null))
    {
      document.getElementById("rbRetTime").checked = false;
    }
  }
  if (sortId == 'RT') 
  {
    document.getElementById("rbPrice").checked = false;
    document.getElementById("rbDeptTime").checked = false;
    document.getElementById("rbArrTime").checked = false;
    document.getElementById("rbRetTime").checked = true;
  }
  	
	xu.AddParameterArray("SortId", sortId, "AddTags", AddTags);
	strResult = xu.XSLTransform(objMergeXML, "../XSLT/SortFlight.xslt", "xml");
  objMergeXML = xu.LoadXMLString(strResult);
  
  

  if (AddTags == true) 
  {
		// ALAS, THIS CODE WILL NEVER BE EXECUTED!
		// The (un)concerned developer wrote it only because... Who knows!
		var jType, vAdt, vChd, vInf;
		
    if (getElement("hndJourneyType", false).value == 'R' && (strSessionId.substr(0, 2) == 'OD'))
      jType = strSessionId.substr(0, 2);
    else 
      jType = "";

    strSalesChannel = getElement("hdnChannelType", false).value
    if (strSalesChannel.indexOf("Online") > 0) 
    {
      strSalesChannel = "Online"
    }

    vAdt = getElement("numFLAdults", false).value;
    vChd = getElement("numFLChildren", false).value;
    vInf = getElement("numFLInfants", false).value;

		xu.AddParameter("JourneyType", jType);
		xu.AddParameter("SalesChannel", strSalesChannel);
		xu.AddParameter("VAdult", vAdt);
		xu.AddParameter("VChild", vChd);
		xu.AddParameter("VInfant", vInf);
		xu.AddParameter("TopLink2", "View Fare Details");
    strResult = xu.XSLTransform(objMergeXML, "../XSLT/FlightResults.xslt", "html");
  }
  else
  {
    showClassDiv = getElement("hndshowClassDiv", false).value
	// Calls into FilterSlider.js
    //strResult = FilterResults();
   
  }
//	var dom = new DOM();
//	var tblResults = dom.$("tblResults");
//  tblLength = tblResults.rows.length
//  for (intCtr = 0; intCtr <= tblLength - 1; intCtr++) 
//  {
//		tblResults.deleteRow(0);
//  }

//  var dom = new DOM();
//  newrow = dom.InsertTableRow(tblResults);
//  newCell = dom.InsertTableCell(newrow);
//  newCell.innerHTML = strResult
  
  var numAirlines = xu.GetNodeCount(objMergeXML, "AirlineList/*").toString();
  
  
  // Added for initially selecting all the Flight options : VB : 03/04/2009
  Flightsortresults('','','',firstResult);
  
    
    if (globalSortId == "PR" && showClassDiv=="true")
    {
        showTotalResult(totAirlines);
    }
    else
    {
      var numAirlines;
      if(getElement("hdnminTime",false).value == "0000")
				numAirlines = xu.GetNodeCount(objMergeXML,"AirlineList/*").toString();
			else
				numAirlines = document.getElementById('hndTotalAirline').value;
				    
      spnTotalResults.innerHTML = 'Displaying <b>' + document.getElementById('hndTotalAirline').value + ' / ' + numAirlines + '</b> Flight Options for <b>' + document.getElementById("ctl00_contentMain_numFLAdults").value + ' Adult';
      if (document.getElementById("ctl00_contentMain_numFLChildren").value != '0') 
      {
        spnTotalResults.innerHTML += '<b>,' + document.getElementById("ctl00_contentMain_numFLChildren").value + ' Child';
      }
      if (document.getElementById("ctl00_contentMain_numFLInfants").value != '0') 
      {
        spnTotalResults.innerHTML += '<b>,' + document.getElementById("ctl00_contentMain_numFLInfants").value + ' Infant';
      }
     
      }

  }  
      

function fnContinue(strJourneyType, strIndex, minTime, minDate) 
{

  if (strJourneyType == "OD") 
  {
    document.aspnetForm.action = 'FlightResult.aspx?JourneyType=ID&Index=' + strIndex + '&minTime=' + minTime + '&minDate=' + minDate
    document.aspnetForm.submit()
  }
  else 
  {
    document.aspnetForm.action = 'Review.aspx?Index=' + strIndex
    document.aspnetForm.submit()
  }
}

/************************************* Flight Result Specific Scripts Ends ****************************************/

/************************************* Flight Search Specific Scripts Starts ****************************************/
var strDepCity
var strArrCity

function fnSearch(channelName, wsPrifix, Src) 
{

	  var numAdult
	  var numChild
	  var numInfant
	  var total
  if (wsPrifix == "") 
  {
    if (document.getElementById("ctl00_contentMain_ctl00_hdnFlightMode").value == "D") 
    {
      numAdult = parseFloat(document.getElementById("ctl00_contentMain_ctl00_numFLDAdults").value);
      numChild = parseFloat(document.getElementById("ctl00_contentMain_ctl00_numFLDChildren").value);
      numInfant = parseFloat(document.getElementById("ctl00_contentMain_ctl00_numFLDInfants").value);
      if (numInfant > numAdult) 
      {
        alert("Infants must be less than or equal to Adults.");//Infants must be less than or equal to Adults.
        return false;
      }
      total = numAdult + numChild + numInfant;
    }
    else 
    {
      numAdult = parseFloat(document.getElementById("ctl00_contentMain_ctl00_numFLAdults").value);
      numChild = parseFloat(document.getElementById("ctl00_contentMain_ctl00_numFLChildren").value);
      numInfant = parseFloat(document.getElementById("ctl00_contentMain_ctl00_numFLInfants").value);
      if (numInfant > numAdult) 
      {
        alert("Infants must be less than or equal to Adults.");//Infants must be less than or equal to Adults.
        return false;
      }
      total = numAdult + numChild + numInfant;
    }
    var journeyType = (document.getElementById("ctl00_contentMain_ctl00_hdnFlightMode")).value;
	var flexiCheck, departDate, returnDate;
	if (journeyType == "D")
	{
		if(document.getElementById("ctl00_contentMain_ctl00_optFLDJourneyReturn").checked)
		{
			flexiCheck = document.getElementById("ctl00_contentMain_ctl00_FlexidateDomchk"); 
			departDate = document.getElementById("ctl00_contentMain_ctl00_txtFLDDepDate").value;
			returnDate = document.getElementById("ctl00_contentMain_ctl00_txtFLDRetDate").value;
		}	
	}
	else if (journeyType == "I")
	{
		if (document.getElementById("ctl00_contentMain_ctl00_optFLJourneyReturn").checked)
		{
			flexiCheck = document.getElementById("ctl00_contentMain_ctl00_FlexidateIntchk");
			departDate = document.getElementById("ctl00_contentMain_ctl00_txtFLDepDate").value;
			returnDate = document.getElementById("ctl00_contentMain_ctl00_txtFLRetDate").value;
		}
	}
	
    if(ObjectExists(flexiCheck) && flexiCheck.checked)
	{
		if (!ValidateFlexiDates(departDate, returnDate))
			return false;
	}

 }
             
    else 
   {
    if (wsPrifix == "MI") 
    {
      if (document.getElementById("ctl00_contentMain_ModifyIntFlightSearch1_hdnFlightMode").value == "D") 
      {
        numAdult = parseFloat(document.getElementById("ctl00_contentMain_ModifyIntFlightSearch1_numFLDAdults").value);
        numChild = parseFloat(document.getElementById("ctl00_contentMain_ModifyIntFlightSearch1_numFLDChildren").value);
        numInfant = parseFloat(document.getElementById("ctl00_contentMain_ModifyIntFlightSearch1_numFLDInfants").value);
        if (numInfant > numAdult) 
        {
          alert("Infants must be less than or equal to Adults."); //Infants must be less than or equal to Adults.
          return false;
        }
        total = numAdult + numChild + numInfant;
      }
      else 
      {
        numAdult = parseFloat(document.getElementById("ctl00_contentMain_ModifyIntFlightSearch1_numFLAdults").value);
        numChild = parseFloat(document.getElementById("ctl00_contentMain_ModifyIntFlightSearch1_numFLChildren").value);
        numInfant = parseFloat(document.getElementById("ctl00_contentMain_ModifyIntFlightSearch1_numFLInfants").value);
        if (numInfant > numAdult) 
        {
          alert("Infants must be less than or equal to Adults."); //Infants must be less than or equal to Adults.
          return false;
        }
        total = numAdult + numChild + numInfant;
          }
	}

     else 
    {
      if (document.getElementById("ctl00_contentMain_ModifyFlightSearch1_hdnFlightMode").value == "D") 
      {
        numAdult = parseFloat(document.getElementById("ctl00_contentMain_ModifyFlightSearch1_numFLDAdults").value);
        numChild = parseFloat(document.getElementById("ctl00_contentMain_ModifyFlightSearch1_numFLDChildren").value);
        numInfant = parseFloat(document.getElementById("ctl00_contentMain_ModifyFlightSearch1_numFLDInfants").value);
        if (numInfant > numAdult) 
        {
          alert("Infants must be less than or equal to Adults."); //Infants must be less than or equal to Adults.
          return false;
        }
        total = numAdult + numChild + numInfant;
      }
      else 
      {
        numAdult = parseFloat(document.getElementById("ctl00_contentMain_ModifyFlightSearch1_numFLAdults").value);
        numChild = parseFloat(document.getElementById("ctl00_contentMain_ModifyFlightSearch1_numFLChildren").value);
        numInfant = parseFloat(document.getElementById("ctl00_contentMain_ModifyFlightSearch1_numFLInfants").value);
        if (numInfant > numAdult) 
            {
               alert("Infants must be less than or equal to Adults."); //Infants must be less than or equal to Adults.
                return false;
             }
           total = numAdult + numChild + numInfant;
       }
    }
      var flexiCheck, departDate, returnDate,journeyType;
	if(ObjectExists(document.getElementById("ctl00_contentMain_ModifyFlightSearch1_hdnFlightMode")))
	{
		journeyType = (document.getElementById("ctl00_contentMain_ModifyFlightSearch1_hdnFlightMode")).value;
	}
	 else
	 {
		 journeyType = (document.getElementById("ctl00_contentMain_ModifyIntFlightSearch1_hdnFlightMode")).value;
	 }
		if (journeyType == "D")
		{
			if(document.getElementById("ctl00_contentMain_ModifyFlightSearch1_optFLDJourneyReturn").checked)
			{
				flexiCheck = document.getElementById("ctl00_contentMain_ModifyFlightSearch1_FlexidateDomchk"); 
				departDate = document.getElementById("ctl00_contentMain_ModifyFlightSearch1_txtFLDDepDate").value;
				returnDate = document.getElementById("ctl00_contentMain_ModifyFlightSearch1_txtFLDRetDate").value;
			}	
		}
		else if (journeyType == "I")
		{
			if (document.getElementById("ctl00_contentMain_ModifyIntFlightSearch1_optFLJourneyReturn").checked)
			{
				flexiCheck = document.getElementById("ctl00_contentMain_ModifyIntFlightSearch1_FlexidateIntchk");
				departDate = document.getElementById("ctl00_contentMain_ModifyIntFlightSearch1_txtFLDepDate").value;
				returnDate = document.getElementById("ctl00_contentMain_ModifyIntFlightSearch1_txtFLRetDate").value;
			}
		}
			
			if(ObjectExists(flexiCheck) && flexiCheck.checked)
			{
				if (!ValidateFlexiDates(departDate, returnDate))
					return false;

			}
   }
  

  if (total > 9) 
  {
    alert("Total number of Passengers cannot exceed 9.");//Total number of Passengers cannot exceed 9.
    return false;
  }
  try 
  {
    var target = "";
    switch (channelName) 
    {
    case "online-dc":
    case "online-sa":
      target = "_parent";
      break;
    case "bo-dc":
    case "bo-sa":
      target = "frm2";
      break;
    case "subagent":
      target = "login";
      break;
    }
 
    if (target == "login") 
    {
         document.aspnetForm.target = "main";
    }
    else
    {
         document.aspnetForm.target = target;
    }
    return true;
  }
  catch(ex) 
  {
    throw (ex);
  }
  //	var target = "";
  //	switch (channelName)
  //	
  //{
  //		case "online-dc":
  //		case "online-sa":
  //			target = "_parent";
  
  
  
  
  //			break;
  //		case "bo-dc":
  //		case "bo-sa":
  //		showFareSource=true
  //			target = "frm2";
  //			break;
  //		case "subagent":
  //		showFareSource=false
  //			target = "login";
  //			break;
  //	}

  //  document.aspnetForm.target = target;
  //    //document.aspnetForm.submit()
  //    return true;
}

function ValidateFlexiDates(departDate, arrivalDate)
{
	var du = new DateUtils();
	var date1= du.convertStringToDate(departDate, "-");
	var date2= du.convertStringToDate(arrivalDate, "-");
	var diff = date2 - date1;
	var days = diff / (1000*60*60*24);
	if(days < 6)
	{
		alert("The minimum difference between the dates should be 6 days.\r\If you want to search less than 6 days please uncheck the 'My dates are flexible'");
		return false;
	}
	else
		return true;
}
function addCommas(nStr)
{
    //Get Display format for hidden filed.
    var decSeparator = document.getElementById("ctl00_hdnDecSeparator").value;
    var numFormat = "";
    if(decSeparator == ",")
        numFormat = ".";
    else
        numFormat = ",";
    
    nStr += '';
    var x = nStr.split('.');
    var x1 = x[0];
    var x2 = x.length > 1 ? decSeparator + x[1] : '';
    var rgx = /(\d+)(\d{3})/;
    while (rgx.test(x1))
    {
        x1 = x1.replace(rgx, '$1' + numFormat + '$2');
    }
    return x1 + x2;
}

function replaceCommas(inputString)
{
	//Get Display format for hidden field.
	var decSeparator = document.getElementById("ctl00_hdnDecSeparator").value;

	if(decSeparator == ",")
	{
		inputString = inputString.replace(".", "");
		inputString = inputString.replace(",", ".");
	}
	else
	{
		inputString = inputString.replace(",", "");
	}

	return inputString;
}


function showHideNett(inputPos)
{
    if(document.getElementById('spn'+inputPos) != null)
    {
        if(document.getElementById('a'+inputPos).innerText=="+")
        {
            document.getElementById('a'+inputPos).innerText = "-";
            document.getElementById('spn'+inputPos).style.visibility = "visible";
        }
        else
        {
            document.getElementById('a'+inputPos).innerText = "+";
            document.getElementById('spn'+inputPos).style.visibility = "hidden";
        }
    }
}

function showDiv(AirCode)
{

    if (document.getElementById("hdn"+AirCode).value == "+")
    {
         var divTables = dom.$Name(AirCode);
         for (var _i=1; _i < divTables.length; _i++)
         {
            divTables[_i].style.display="block";
         }
         document.getElementById("hdn"+AirCode).value = "-";
        dom.SetElementInnerText(("spn"+AirCode),"- all fares for this flight");
        
        var totalFilghtDisplay = document.getElementById("hndTotalAirline").value;
        totalFilghtDisplay = parseInt(totalFilghtDisplay) + parseInt(document.getElementById("hdnAirLine" + AirCode).value)
        showTotalResult(totalFilghtDisplay);
    }
    else
    {
        var divTables = dom.$Name(AirCode);
         for (var _i=1; _i < divTables.length; _i++)
         {
            divTables[_i].style.display="none";
         }
         document.getElementById("hdn"+AirCode).value = "+";
         dom.SetElementInnerText(("spn"+AirCode),"+ show all fares for this flight");
        
        var totalFilghtDisplay = document.getElementById("hndTotalAirline").value;
        totalFilghtDisplay = parseInt(totalFilghtDisplay) - parseInt(document.getElementById("hdnAirLine" + AirCode).value)
        showTotalResult(totalFilghtDisplay);
    }
}
function showTotalResult(totalFilghtDisplay)
{
      document.getElementById("hndTotalAirline").value = totalFilghtDisplay;
      var numAirlines;
      if(getElement("hdnminTime",false).value == "0000")
				numAirlines = xu.GetNodeCount(objMergeXML, "AirlineList/*").toString();
			else
				numAirlines = totalFilghtDisplay;
      spnTotalResults.innerHTML = 'Displaying <b>' + totalFilghtDisplay + ' / ' + numAirlines + '</b> Flight Options for <b>' + document.getElementById("ctl00_contentMain_numFLAdults").value + ' Adult';
     
      if (document.getElementById("ctl00_contentMain_numFLChildren").value != '0') 
      {
        spnTotalResults.innerHTML += '<b>,' + document.getElementById("ctl00_contentMain_numFLChildren").value + ' Child';
      }
      if (document.getElementById("ctl00_contentMain_numFLInfants").value != '0') 
      {
        spnTotalResults.innerHTML += '<b>,' + document.getElementById("ctl00_contentMain_numFLInfants").value + ' Infant';
      }
}
/******************************** Flight Search Specific Scripts Ends ***************************/
