﻿// JScript File
var xmlHttp = new Array("","","","","","");
var itemNames = new Array("airline","destination","flightNumber","flightDate","member");
var itemHtml = new Array("airline","destination","flightNumber","flightDate","member");
var itemLikeVals = new Array("","","","","");
var itemVals = new Array("","","","","");
var itemUpdate = new Array(0,0,0,0,0);

init();

function init()
{
    getXmlObjects();
    for (var i=0;i<=4;i++)
    {
        update(i,"");
    }
    itemUpdate[5]=0;
}

function getXmlObjects()
{
    for (var i=0;i<=5;i++)
    {
        xmlHttp[i] = GetXmlHttpObject();
    }
}

function GetXmlHttpObject()
{
  var xmlHttp=null;
  try
    {
    // Firefox, Opera 8.0+, Safari
    xmlHttp=new XMLHttpRequest();
    }
  catch (e)
    {
    // Internet Explorer
    try
      {
      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP.3.0");
      }
    catch (e)
      {
      xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
    }
    if (xmlHttp==null)
    {
        alert ("Sorry, your browser does not appear to support AJAX.");
        return;
    } 
  return xmlHttp;
}

function update(what, str)
{    
    itemLikeVals[what] = str;
    
    var url="search.item.aspx";
    url=url + "?item=" + itemNames[what];
    url=url + "&like=" + str;
    
    for (var i=0;i<=4;i++)
    {
        url=url + "&v" + i + "=" + itemVals[i];
    }
    
    var d = new Date();
    url=url + "&nocache=" + d.getTime();
    
    //Only run the update if the previous item has finished
    if (itemUpdate[what] == 0)
    {
        xmlHttp[what].onreadystatechange = stateChanged;
        xmlHttp[what].open("GET",url,true);
        xmlHttp[what].send(null); 
        itemUpdate[what] = 1;
    }
}

function stateChanged()
{ 
    for (var i=0;i<=4;i++)
    {
        if (xmlHttp[i].readyState==4 && itemUpdate[i]==1)
        { 
            itemHtml[i]=xmlHttp[i].responseText;
            updateDisplay(i);
            
            //Re-get a new object for IE 7
            xmlHttp[i]=GetXmlHttpObject();
            itemUpdate[i] = 0;
        }
    }
}

function updateDisplay(what)
{
    document.getElementById(itemNames[what] + "Selector").innerHTML = itemHtml[what];
}

function setValue(what, str)
{
    itemVals[what] = str;
    
    //Update all the controls that are after this control
    for (var i=what+1;i<=4;i++)
    {
        itemVals[i] = "";
        itemHtml[i] = "Refuelling...";
        updateDisplay(i);
        
        update(i,itemLikeVals[i]);
    }
    
    updateResult();
}

function updateResult()
{     
    var url="search.results.aspx";
    url=url + "?x=x";
    
    for (var i=0;i<=4;i++)
    {
        url=url + "&v" + i + "=" + itemVals[i];
    }
    
    var d = new Date();
    url=url + "&nocache=" + d.getTime();
    
    //Only run the update if the previous item has finished
    if (itemUpdate[5] == 0)
    {
        xmlHttp[5].onreadystatechange=resultChanged;
        xmlHttp[5].open("GET",url,true);
        xmlHttp[5].send(null);
        itemUpdate[5] = 1;
    }
}

function resultChanged()
{ 
    if (xmlHttp[5].readyState==4)
    { 
        document.getElementById("pictureHolder").innerHTML = xmlHttp[5].responseText;
        //Re-get a new object for IE 7
        xmlHttp[5]=GetXmlHttpObject();
        itemUpdate[5] = 0;
    }
}