/* sa_ymme2.js: 
	contains common code for ymme feature
*/

var div = document.getElementById('YMME_div');

var engine_size_handleSuccess = function(o){
  if(o.responseText !== undefined){
    var engine_sizeEl = document.getElementById("engine_sizeSelector");
    var elToAdd;
    var engine_sizes = new Array();

    while (engine_sizeEl.length > 1) {
      engine_sizeEl.remove(0);
    }
    
    engine_sizes = o.responseText.split("\t");
    if (engine_sizes[0] == "NONE") {
      engine_sizeEl.options[0].text = "No match";
      return;
    } else {
      engine_sizeEl.options[0].text = "Choose";
    }

    var idx = 0;
    for (idx = 0; idx < (engine_sizes.length -1); idx++) {
      elToAdd  = document.createElement('option');
      elToAdd.text = engine_sizes[idx];
      elToAdd.value = engine_sizes[idx];
      tEl = engine_sizeEl.options[engine_sizeEl.length];
      try {
        engine_sizeEl.add(elToAdd, tEl);
      }
      catch(err) {
	engine_sizeEl.add(elToAdd);
      }
    }
  }
}

var ymm_handleSuccess = function(o){
  if(o.responseText !== undefined){
    var modelEl = document.getElementById("modelSelector");
    var elToAdd;
    var models = new Array();

    while (modelEl.length > 1) {
      modelEl.remove(0);
    }
    
    models = o.responseText.split("\t");
    if (models[0] == "NONE") {
      modelEl.options[0].text = "No match";
      return;
    } else {
      modelEl.options[0].text = "Choose Model";
    }

    var idx = 0;
    for (idx = 0; idx < (models.length -1); idx++) {
      elToAdd  = document.createElement('option');
      elToAdd.text = models[idx];
      elToAdd.value = models[idx];
      tEl = modelEl.options[modelEl.length];
            try {
	modelEl.add(elToAdd, tEl);
	 } 
	catch(err) {
		modelEl.add(elToAdd);
	 }
    }
  }
}

var handleFailure = function(o){
  if(o.responseText !== undefined){
    div.innerHTML = "<li>Transaction id: " + o.tId + "</li>";
    div.innerHTML += "<li>HTTP status: " + o.status + "</li>";
    div.innerHTML += "<li>Status code message: " + o.statusText + "</li>";
  }
}

var ymm_callback =
  {
    success: ymm_handleSuccess,
    failure: handleFailure
    //    argument: { foo:"foo", bar:"bar" }
  };

var engine_size_callback =
  {
    success: engine_size_handleSuccess,
    failure: handleFailure
    //    argument: { foo:"foo", bar:"bar" }
  };

function findengine_sizes() {
  var request;
  var yearEl = document.getElementById("yearSelector");
  var makeEl = document.getElementById("makeSelector");
  var modelEl = document.getElementById("modelSelector");
  var engine_sizeEl = document.getElementById("engine_sizeSelector");

  var sEngine_SizeURL;
  var year = 0;

  if (yearEl.options[yearEl.selectedIndex].value == "year") {
	return;
}
    year = parseInt(yearEl.options[yearEl.selectedIndex].value);
    year += 1900;
    if (year < 1911) {
      year += 100;
    }

  if (makeEl.options[makeEl.selectedIndex].value == "make") {
    return;
  }

  if (modelEl.options[modelEl.selectedIndex].value == "engine_size") {
    return;
  }

  var make = makeEl.options[makeEl.selectedIndex].value;
  var model = modelEl.options[modelEl.selectedIndex].value;

  sEngine_SizeURL = "sa_add.php?action=jsiengine_size&year=" + year + "&make=" + make +
    "&model=" + model;
  request = YAHOO.util.Connect.asyncRequest('GET', sEngine_SizeURL, engine_size_callback);
}

function findModels() {
  var request;
  var yearEl = document.getElementById("yearSelector");
  var makeEl = document.getElementById("makeSelector");
  var modelEl = document.getElementById("modelSelector");
  var engine_sizeEl = document.getElementById("engine_sizeSelector");

  var sModelURL; 
  var year = 0;

  engine_sizeEl.selectedIndex = 0;
  while (engine_sizeEl.length > 1) {
    engine_sizeEl.remove(0);
  }
  engine_sizeEl.options[0].text = "Engine";

  if (yearEl.options[yearEl.selectedIndex].value == "year") {
    year = 1492;
  } else {
    year = parseInt(yearEl.options[yearEl.selectedIndex].value);
    year += 1900;
    if (year < 1911) {
      year += 100;
    }
  }

  if (makeEl.options[makeEl.selectedIndex].value == "make") {
    return;
  }

  var make = makeEl.options[makeEl.selectedIndex].value;
  sModelURL = "sa_add.php?action=jsiymm&year=" + year + "&make=" + make;
  request = YAHOO.util.Connect.asyncRequest('GET', sModelURL, ymm_callback);
}

var pbymme_handleSuccess = function(o) {
// fill divEl.innerHTML
// set the div style visiblity to visible

	var divEl = document.getElementById("sa_YMME_display_div");
	var tH;
	var tO;

	divEl.style.visibility="hidden";
	divEl.innerHTML = "";

	  if(o.responseText == undefined){
	        alert("response text undefined");
		return;
	  }	
	
	if (o.responseText == "NONE") {
        	divEl.innerHTML = "Didn't find matches";
       		divEl.style.visibility="visible";
  		return;
	}
	tH = o.responseText;
	
        divEl.innerHTML = tH;

	//alert(o.responseText);

        divEl.style.visibility="visible";

        var myEl = document.getElementById("sa_ydd");
       
        // set the text of the element named "sa_ydd"
        myEl.innerHTML = "Results";

        // make results tab active
        tabThing.expandit("sa_ydd");
  return;
}

var pbymme_callback =
  {
    success: pbymme_handleSuccess,
    failure: handleFailure
    //    argument: { foo:"foo", bar:"bar" }
  };

function getPBYMME() {
	var request;
	var yearEl = document.getElementById("yearSelector");
  	var makeEl = document.getElementById("makeSelector");
  	var modelEl = document.getElementById("modelSelector");
  	var engine_sizeEl = document.getElementById("engine_sizeSelector");
	var categoryEl = document.getElementById("category_selector");	
	var sPURL = "sa_ymme2_top.php?action=pbymme&year=" + 
		yearEl.options[yearEl.selectedIndex].value + 
		"&make=" + makeEl.options[makeEl.selectedIndex].value +
		"&model=" + modelEl.options[modelEl.selectedIndex].value + 
	        "&engine_size=" + engine_sizeEl.options[engine_sizeEl.selectedIndex].value;

	if ((categoryEl) && categoryEl.value) {
		sPURL = sPURL + "&category=" + categoryEl.value;
	}
	request = YAHOO.util.Connect.asyncRequest('GET', sPURL, pbymme_callback);
} // end getPBYMME function

function resetForm() {
  // select 'year', 'make', 'model', 'engine_size''
  var yearEl = document.getElementById("yearSelector");
  var makeEl = document.getElementById("makeSelector");
  var modelEl = document.getElementById("modelSelector");
  var engine_sizeEl = document.getElementById("engine_sizeSelector");
  var resultsEl = document.getElementById("sa_ydd");
  var divEl = document.getElementById("sa_YMME_display_div");

  
  yearEl.selectedIndex = 0;
  makeEl.selectedIndex = 0;
  modelEl.selectedIndex = 0;
  engine_sizeEl.selectedIndex = 0;

  while (engine_sizeEl.length > 1) {
    engine_sizeEl.remove(0);
  }

  while (modelEl.length > 1) {
    modelEl.remove(0);
  }

  modelEl.options[0].text = "Model";
  engine_sizeEl.options[0].text = "Engine";

  divEl.innerHTML="";
  divEl.style.visibility="hidden";
/* resultsEl.innerHTML="";  */
  tabThing.expandit(0);
	
}


function submitForm() {
  /* ensure that YMME are all selected */
  var yearEl = document.getElementById("yearSelector");
  var makeEl = document.getElementById("makeSelector");
  var modelEl = document.getElementById("modelSelector");
  var engine_sizeEl = document.getElementById("engine_sizeSelector");

  if (yearEl.selectedIndex && makeEl.selectedIndex && modelEl.selectedIndex && engine_sizeEl.selectedIndex) 	{ 
	getPBYMME();
	return 0;
   		return 0
  	  } else {
    		alert ('Please choose the vehicle\'s year,  make,  model, and engine');
    		return -1;
  }
}

