var lookupURL = "/p2p/ymmm/YMMM.do";
var xmlHttp;
var yearSelected,makeSelected,modelSelected,submodelSelected;
function isValidSelection(selection) {
  if (selection == null || selection == "null" || selection == "" || selection=='') {
         
    return false;
    
  }
  return true;
}


function displayErrorPopup(year,make,model,submodel) {
   //GRGA:356 Fix validate year , make , model , submodel seperatedly.
   if ((!isValidSelection(year)) || (!isValidSelection(make)) || (!isValidSelection(model)) || (!isValidSelection(submodel)) ) {
    alert("Please select a Year, Make, Model and Sub Model");
    return false;
  }
  return true;
}

function initializeMake(makeSelect) {
  document.getElementById("makeTitle").innerHTML="Make:";
  if (makeSelect == null || makeSelect == "null"   ) {
    document.getElementById("makeDrop").innerHTML="<select style='width: 252px' disabled><option>Then Select Make</option></select>";
  } else {
    document.getElementById("makeDrop").innerHTML=makeSelect;
  }
}

function initializeModel(modelSelect) {
  document.getElementById("modelTitle").innerHTML="Model:";
  if (modelSelect == null || modelSelect == "null") {
    document.getElementById("modelDrop").innerHTML="<select style='width: 252px' disabled><option>Then Select Model</option></select>";
  } else {
    document.getElementById("modelDrop").innerHTML=modelSelect;
  }
}

function initializeSubModel(submodelSelect) {
  document.getElementById("submodelTitle").innerHTML="Sub Model:";
  if (submodelSelect == null || submodelSelect == "null") {
    document.getElementById("submodelDrop").innerHTML="<select style='width: 252px' disabled><option>Then Select Sub Model</option></select>";
  } else {
    document.getElementById("submodelDrop").innerHTML=submodelSelect;
  }
}

function SelectYear(year) {
  document.getElementById("makeDrop").innerHTML="<select style='width: 252px' disabled><option>Then Select Make</option></select>";
  document.getElementById("modelDrop").innerHTML="<select style='width: 252px' disabled><option>Then Select Model</option></select>";
  document.getElementById("submodelDrop").innerHTML="<select style='width: 252px' disabled><option>Then Select Sub Model</option></select>";
  selectedYear = year;
  //GRGA:356 Fix Setted selected make,model,submodel as null.
  selectedMake = null;
  selectedModel = null;
  selectedSubmodel = null;
  doRemoteQuery("?method=getMakes&year="+year,"makeDrop");
}

function SelectMake(make) {
  document.getElementById("modelDrop").innerHTML="<select style='width: 252px' disabled><option>Then Select Model</option></select>";
  document.getElementById("submodelDrop").innerHTML="<select style='width: 252px' disabled><option>Then Select Sub Model</option></select>";
  selectedMake = make;
  //GRGA:356 Fix Setted selected model,submodel as null.
  selectedModel = null;
  selectedSubmodel = null;
  doRemoteQuery("?method=getModels&make="+make,"modelDrop");
}

function SelectModel(model) {
  document.getElementById("submodelDrop").innerHTML="<select style='width: 252px' disabled><option>Then Select Sub Model</option></select>";
  selectedModel = model;
  //GRGA:356 Fix Setted submodel as null.
  selectedSubmodel = null;
  doRemoteQuery("?method=getSubModels&model="+model,"submodelDrop");
}

function SelectSubModel(submodel) {
  selectedSubmodel = submodel;
  doSubModelQuery("?method=setSubModel&submodel="+submodel);
}

/**
This sets up the XMLHTTP object we're using for the dynamic lookups.
*/
function getXMLHTTP(){
  var A = null;
  
  try{
    A = new ActiveXObject("Msxml2.XMLHTTP");
  }catch(e){
    try{
      A = new ActiveXObject("Microsoft.XMLHTTP");
    } catch(oc){
      A = null;
    }
  }
  
  if(!A && typeof XMLHttpRequest != "undefined") {
    A = new XMLHttpRequest();
  }
  
  return A;
}


/**
This actually sends the lookup request (as a URL with a query string) to a
server in the background. When a response comes back from the server, the
function attached to the onReadyStateChange event is fired off.
*/
function doRemoteQuery (queryString, elementId)
{
  var currentDate = new Date();
  var currentTime = currentDate.getTime();
  queryString += "&timestamp="+currentTime;

  searching = true;
  if(xmlHttp && xmlHttp.readyState != 0) {
    xmlHttp.abort()
  }  
  xmlHttp=getXMLHTTP();
  if(xmlHttp){
           
    // What do we do when the response comes back?
    xmlHttp.onreadystatechange = function() {
      if (xmlHttp.readyState == 4 && xmlHttp.status==200 && xmlHttp.responseText && searching) {
      document.getElementById(elementId).innerHTML=xmlHttp.responseText;
      searching = false;
      }
    }
    xmlHttp.open("GET", lookupURL + queryString, true);
    xmlHttp.send(null);
  }
}

function doSubModelQuery (queryString)
{
  searching = true;
  if(xmlHttp && xmlHttp.readyState != 0) {
    xmlHttp.abort()
  }  
  xmlHttp=getXMLHTTP();
  if(xmlHttp){
    xmlHttp.open("GET", lookupURL + queryString, true);
    xmlHttp.send(null);
  }
}
