var timeOut;
var loadTimeout;


function create_model_html(model_info)
{
  var this_model_array = [];  
  var hidden_model_data = '';
  var current_auto_info = '';
  var all_models_array = model_info.split("*");
  var model_html = "<span><select class='model' onChange='update_model_index()' name='VehicleModel' id='VehicleModelID'>\n<option value=''>Select Vehicle Model</option>";
  for(var n = 0 ; n < all_models_array.length ; n++)
  {
    current_car_info = all_models_array[n];
    this_model_array = current_car_info.split(":");
    this_model_number = this_model_array[0];
    this_model_name = this_model_array[1];
    this_model_special = this_model_array[2];
    model_html = model_html + "<option value='" + this_model_number + "'>" + this_model_name + "</option>" ;
    hidden_model_data = hidden_model_data + "<input type='hidden' name='requires_special_" + this_model_number + "' id='requires_special_" + this_model_number + "' value='" + this_model_special + "'>";
  }
  model_html = model_html + '</select></span>' + hidden_model_data;
  return(model_html);
}


function sendRequest()
{
  try
  {
	  var car_make_index = document.getElementById('car_make_id').selectedIndex;
	  var car_make_id = document.getElementById('car_make_id').options[car_make_index].value;
    var models_html = create_model_html(models_array[car_make_id]);
    document.getElementById("models_div").innerHTML = models_html;
	  var car_model_index = Get_Cookie( car_make_index + '_car_model_index' );
	  if (car_model_index != null && car_model_index != 'undefined' && car_model_index != 'null') 
	  {
	    //alert(car_make_index);
	    if (document.getElementById('VehicleModelID').selectedIndex != car_model_index) document.getElementById('VehicleModelID').selectedIndex = car_model_index;
	  }
	  update_hidden_model();
    // alert('car_make_index: ' + car_make_index + '  car_make_id: ' + car_make_id);
  }  
	catch(e)
  {
     alert('sendRequest : ' + e.message);
  }
}

function sendRequestOld(form_name)
{
  
  if (document.getElementById('car_make_id'))
  {
    xy_position = findPos(document.getElementById('car_make_id'));
    document.getElementById('download_div').style.top = eval(xy_position[1] - 40) + 'px';
    document.getElementById('download_div').style.left = eval(xy_position[0] + 100) + 'px';
  }
	    if (document.getElementById('models_div'))
	    {
	      car_make_index = document.getElementById('car_make_id').selectedIndex;
	      // alert(Get_Cookie( 'car_make_index' ));
	      var car_model_select = Get_Cookie(car_make_index + '_car_model_select');
	      //alert(car_make_index + '-car_model_select');
        //alert(car_model_select);
	      if(car_model_select != null && car_model_select != 'undefined' && car_model_select != 'null')
	      {
	        var car_make_index = document.getElementById('car_make_id').selectedIndex;
	        var divModels = document.getElementById("models_div");
          divModels.innerHTML = create_model_html(car_model_select);
	        var car_model_index = Get_Cookie( car_make_index + '_car_model_index' );
	        if (car_model_index != null && car_model_index != 'undefined' && car_model_index != 'null') 
	        {
	          //alert(car_make_index);
	          if (document.getElementById('VehicleModelID').selectedIndex != car_model_index) document.getElementById('VehicleModelID').selectedIndex = car_model_index;
	        }
	        else
	        {
	          document.getElementById('VehicleModelID').selectedIndex = 0;
	        }
          sendRequestNoUpdate();

          // alert(car_model_select);
	      }
	      else
	      {

          if (document.getElementById("models_div"))
          {
            document.getElementById("models_div").innerHTML = '<select class="selector1" disabled style="color:#666666;margin:0px 0px 0px 0px;width:192px;" name="VehicleModel"><option value="" style="color:#666666;">Select Vehicle Model</option></select>';
          }
          
  	      timeOut = setTimeout("show_div('download_div')",1000);
  	      // alert('first timeout');

          if (typeof form_name == 'undefined' ) form_name = 'short-quote';
          var oForm = document.getElementById(form_name);
          var sBody = getRequestBody(oForm);
          // alert(sBody);

          var oXmlHttp = zXmlHttp.createRequest();
          oXmlHttp.open("post", '/car-models-short.php', true);
          oXmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

          oXmlHttp.onreadystatechange = function ()
          {
            if (oXmlHttp.readyState == 4)
            {
              if (oXmlHttp.status == 200) 
              {
                saveResult(oXmlHttp.responseText);
              }
              else
              {
                saveResult('<select class="selector1" disabled style="color:#666666;margin:0px 0px 0px 0px;width:192px;" name="VehicleModel"><option value="" style="color:#666666;">Select Vehicle Model</option></select>');
              }
            }
          }
          oXmlHttp.send(sBody);
	      }
	    }
	    else
	    {
	        timeOut = setTimeout("show_div('download_div')",1000);
  	      // alert('second timeout');

          if (document.getElementById("models_div"))
          {
            document.getElementById("models_div").innerHTML = '<select class="selector1" disabled style="color:#666666;margin:0px 0px 0px 0px;width:192px;" name="VehicleModel"><option value="" style="color:#666666;">Select Vehicle Model</option></select>';
          }
  
          if (typeof form_name == 'undefined' ) form_name = 'short-quote';
          var oForm = document.getElementById(form_name);
          var sBody = getRequestBody(oForm);
          // alert(sBody);

          var oXmlHttp = zXmlHttp.createRequest();
          oXmlHttp.open("post", 'car-models.php', true);
          oXmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

          oXmlHttp.onreadystatechange = function ()
          {
            if (oXmlHttp.readyState == 4)
            {
              if (oXmlHttp.status == 200) 
              {
                saveResult(oXmlHttp.responseText);
              }
              else
              {
                saveResult('<select class="selector1" disabled style="color:#666666;margin:0px 0px 0px 0px;width:192px;" name="VehicleModel"><option value="" style="color:#666666;">Select Vehicle Model</option></select>');
              }
            }
          }
          oXmlHttp.send(sBody);
	      
	    }
        return(false);
}

function sendRequestNoUpdate(form_name)
{
  if (typeof form_name == 'undefined' ) form_name = 'short-quote';
  var oForm = document.getElementById(form_name);
  var sBody = getRequestBody(oForm);

  var oXmlHttp = zXmlHttp.createRequest();
  oXmlHttp.open("post", 'car-models-short.php', true);
  oXmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

  oXmlHttp.onreadystatechange = function ()
  {
    if (oXmlHttp.readyState == 4)
    {
      if (oXmlHttp.status == 200) 
      {
         saveResultNoUpdate(oXmlHttp.responseText);
      }
    }
  }
  oXmlHttp.send(sBody);
  return(false);
}

function getRequestBody(oForm)
{
  var aParams = new Array();

  for (var i=0 ; i < oForm.elements.length; i++)
  {
    var sParam = encodeURIComponent(oForm.elements[i].name);
    sParam += "=";
    sParam += encodeURIComponent(oForm.elements[i].value);
    aParams.push(sParam);
  }
  return aParams.join("&");
}

function saveResultNoUpdate(sMessage) 
{
	if (document.getElementById('car_make_id'))
	{
	  // alert(sMessage);
	  var car_make_index = document.getElementById('car_make_id').selectedIndex;
    Set_Cookie(car_make_index + '_car_model_select', sMessage, '', '/', '', '');
	}
}


function saveResult(sMessage) 
{
  clearTimeout(timeOut);
  hide_div('download_div');
  var divModels = document.getElementById("models_div");
  var this_model_html = create_model_html(sMessage);
  // alert(this_model_html);
  divModels.innerHTML = this_model_html;
	if (document.getElementById('car_make_id') && document.getElementById('VehicleModelID'))
	{
	  var car_make_index = document.getElementById('car_make_id').selectedIndex;
	  // alert(car_make_index + '_car_model_index' );
	  var car_model_index = Get_Cookie( car_make_index + '_car_model_index' );
	  if (car_model_index != null && car_model_index != 'undefined' && car_model_index != 'null') 
	  {
	    //alert(car_make_index);
	    if (document.getElementById('VehicleModelID').selectedIndex != car_model_index) 
	    {
	      document.getElementById('VehicleModelID').selectedIndex = car_model_index;
        Set_Cookie(car_make_index + '_car_model_select', sMessage, '', '/', '', '');
	    }
	  }
	  else
	  {
	    document.getElementById('VehicleModelID').selectedIndex = 0;
      Set_Cookie(car_make_index + '_car_model_index', 0, '', '/', '', '');
      Set_Cookie(car_make_index + '_car_model_select', sMessage, '', '/', '', '');
	  }
	}
  
}


function show_div(div_id)
{
  if (document.getElementById(div_id)) document.getElementById(div_id).style.display = 'inline';
}


function hide_div(div_id)
{
  if (document.getElementById(div_id)) document.getElementById(div_id).style.display = 'none';
}


function check_content()
{
  // Get natural heights
  var cHeight = xHeight("content");
  var minHeight = 400;

  // Find the maximum height
  var maxHeight = Math.max(cHeight, minHeight);
  // alert(lHeight);

  // Assign maximum height to all columns
  xHeight("content", maxHeight);

}


function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}

function getMouseXY(e) {
  if (document.all) { // grab the x-y pos.s if browser is IE
    tempX = event.clientX + document.body.scrollLeft
    tempY = event.clientY + document.body.scrollTop
  } else {  // grab the x-y pos.s if browser is NS
    tempX = e.pageX
    tempY = e.pageY
  }
  // catch possible negative values in NS4
  return [tempX,tempY];

}

function verifyRequired() {
  if (document.icpsignup["fields_email"].value == "") {
    alert("The Email field is required.");
    return false;
  }
  if (document.icpsignup["fields_fname"].value == "") {
    alert("The First Name field is required.");
    return false;
  }
  if (document.icpsignup["fields_lname"].value == "") {
    alert("The Last Name field is required.");
    return false;
  }
return true;
}