

// RequestData(): primary function for performing the AJAX data request
function requestData(parentKey, modelNum, returnType, colKey, subKey)
{ 
  //alert(subKey + " " + modelNum + " " + returnType + " " + colKey);
    var url;
    xmlHttp = getXmlHttpObject();
    
    if (xmlHttp == null)
    {
      return;
    }

    // NOTE: set AJAX request values
    url = "/business/includes/local-includes/commercial-food-services/scripts/getXMLData.asp";
    url = url + "?mn=" + modelNum;
    url = url + "&type=" + returnType;
    url = url + "&sid=" + Math.random();
    url = url + "&pk=" + parentKey;
    url = url + "&ck=" + colKey;
    url = url + "&sk=" + subKey;

 
    switch(returnType)
    {
        case "comma-delim":
            xmlHttp.onreadystatechange = loadModels;
            break;
        default: 
            xmlHttp.onreadystatechange = loadMedia;
            break;
    }
   //  alert(url);
    xmlHttp.open("GET",url,true);
    xmlHttp.send(null); 
}

// LoadModels(): loads all available models into the "ModelSelect" drop down list
function loadModels() 
{ 
   var returnVal;
   var firstSplit, secondSplit;
   var styleObject1 = document.getElementById('ModelDisplay');
   var styleObject2 = document.getElementById('ResultDisplay');
   
    if (xmlHttp.readyState == 4)
    { 
        returnVal = xmlHttp.responseText;
        // alert(returnVal);
        // NOTE: Remove drop down options, except "Select Model" 
        if(returnVal != "")
        {
           firstSplit = returnVal.split("^");
           document.form1.ModelSelect.options.length = 1;

            for(i=0; i < firstSplit.length; i++)
            {     
              secondSplit = firstSplit[i].split("~"); // secondSplit[0]: KEY - secondSplit[1]: Title
              document.form1.ModelSelect.options[i+1] = new Option(secondSplit[1],secondSplit[0])
            }  
            styleObject1.style.visibility = 'visible';
            styleObject2.style.visibility = 'visible';  
        }
        else // nothing was returned in the result set
        {
            styleObject1.style.visibility = 'hidden';
            styleObject2.style.visibility = 'visible';
            styleObject2.innerHTML = "No information is available for this particular category";
        }
    }
}

// LoadMedia(): loads all of the result values into the "ResultDisplay" <div> area
function loadMedia() 
{ 
    if (xmlHttp.readyState == 4)
    { 
      return document.getElementById('ResultDisplay').innerHTML = xmlHttp.responseText;
    }
}

// GetSelectedValue(name): Helper function returning the selected value of the "CategorySelect" drop down
function getSelectedValue(name)
{
    var sel = document.getElementsByName(name)[0];
    var i = sel.options.selectedIndex;
    return i == -1? "": sel.options[i].value;
}

function getXmlHttpObject()
{
    var xmlHttp= null;
    
    try
      {
        // NOTE: Firefox, Opera 8.0+, Safari
        xmlHttp = new XMLHttpRequest();
      }
    catch (e)
      {
      // NOTE: Internet Explorer
      try
        {
            xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
        }
      catch (e)
        {
            xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
      }
    return xmlHttp;
}

