function getMakes(thisCurrent, thisToChange) {
   if(thisCurrent.value != 0) {
      toggleLoading(document.getElementById("loading_make"), "on");
      startChange(0);
      ajax_wrap.bind(
         {
          url: "get_makes.php?year=" + thisCurrent.value,
          load: function( type, data, evt )
          {
               //alert( data );
               
               for(i=thisToChange.options.length; i>=0; i--) {
                  thisToChange.remove(i);
               }
               
               thisToChange.options[thisToChange.options.length] = new Option("Please Select", 0, true);
               for(t=0; t<data.length; t++) {
                  thisToChange.options[thisToChange.options.length] = new Option(data[t], data[t]);
               }
               
               checkSeries();
               toggleLoading(document.getElementById("loading_make"), "off");
          },
          error: function( type, error ) { alert( error ); },
          mimetype: "text/json"
         }
        );
   }
   else {
      checkSeries();
   }
}

function getModels(thisCurrent, thisToChange, thisYear) {
   if(thisCurrent.value != 0) {
      toggleLoading(document.getElementById("loading_model"), "on");
      startChange(1);
      ajax_wrap.bind(
         {
          url: "get_models.php?make=" + thisCurrent.value + "&year=" + thisYear.value,
          load: function( type, data, evt )
          {
               //alert( data );
              
               for(i=thisToChange.options.length; i>=0; i--) {
                  thisToChange.remove(i);
               }
               
               thisToChange.options[thisToChange.options.length] = new Option("Please Select", 0, true);
               for(t=0; t<data.length; t++) {
                  thisToChange.options[thisToChange.options.length] = new Option(data[t], data[t]);
               }
               
               checkSeries();
               toggleLoading(document.getElementById("loading_model"), "off");
          },
          error: function( type, error ) { alert( error ); },
          mimetype: "text/json"
         }
        );   
   }
   else {
      checkSeries();
   }
}

function getTransmissions(thisCurrent, thisToChange, thisYear, thisMake) {
   if(thisCurrent.value != 0) {
      toggleLoading(document.getElementById("loading_transmission"), "on");
      startChange(2);
      ajax_wrap.bind(
         {
          url: "get_transmissions.php?model=" + thisCurrent.value + "&year=" + thisYear.value + "&make=" + thisMake.value,
          load: function( type, data, evt )
          {
               //alert( data );
              
               for(i=thisToChange.options.length; i>=0; i--) {
                  thisToChange.remove(i);
               }
               
               thisToChange.options[thisToChange.options.length] = new Option("Please Select", 0, true);
               for(t=0; t<data.length; t++) {
                  thisToChange.options[thisToChange.options.length] = new Option(data[t], data[t]);
               }
               
               checkSeries();
               toggleLoading(document.getElementById("loading_transmission"), "off");
          },
          error: function( type, error ) { alert( error ); },
          mimetype: "text/json"
         }
        );   
   }
   else {
      checkSeries();
   }
}

function toggleLoading(toChange, status) {
   if(status == "on") {
      toChange.style.visibility = "visible";
   }
   else if(status == "off") {
      toChange.style.visibility = "hidden";
   }
}

function startChange(index) {
   for(var t=index+1; t<(series.length-1); t++) { 
      document.getElementById(series[t]).disabled = "disabled";
   }
}