$(function() {
  $("#qsSearchFORM #qsMake").change(function() {
    $("#frmAutoQS input[name='hqsMake']").val($(this).val());                                                                                               
    var sMake = $(this).val();
    fnRetrieveModels('',sMake,'');
  });
  
  $("#qsSearchFORM #qsModel").change(function() {
    $("#frmAutoQS input[name='hqsModel']").val($(this).val());
  });

  var fnRetrieveMakes = function(division,make){
    $.ajax({
      type: 'GET',
      url: '/components/search_helpers.cfc?method=fnRetrieveMakes&Division=' + division,
      dataType: "json",
      success: function(data){
        var results = data.facet_counts.facet_fields.Make_exact;
        optionList = '<option value="">Select a make</option>';
        for (i = 0; i < results.length; i++) {
          if (i%2 == 0){optionList += '<option value="'+ results[i] +'">'+ results[i] +' ('+ results[i+1] +')</option>';}
        }
        $("#frmAutoQS select#qsMake").html(optionList);
        $("#frmAutoQS select#qsMake").val(make);
      }
    });   
  }

  var fnRetrieveModels = function(division,make,model){
    $.ajax({
      type: 'GET',
      url: '/components/search_helpers.cfc?method=fnRetrieveModels&Division=' + division + '&Make=' + make,
      dataType: "json",
      success: function(data){
        var results = data.facet_counts.facet_fields.Model_exact;
        optionList = '<option value="">Select a model</option>';
        for (i = 0; i < results.length; i++) {
          if (i%2 == 0){optionList += '<option value="'+ results[i] +'">'+ results[i] +' ('+ results[i+1] +')</option>';}
        }
        $("#qsSearchFORM select#qsModel").html(optionList);
        $("#qsSearchFORM select#qsModel").val(model);
      }
    });   
  }

  var initQSForm = function() {
    var sMake = $("#qsSearchFORM input[name='hqsMake']").val();
    var sModel = $("#qsSearchFORM input[name='hqsModel']").val();
    var iDivisionID = $("#qsSearchFORM input[name='hqsDivision']").val();
    if (iDivisionID != undefined){
      fnRetrieveMakes(iDivisionID,sMake);
      if (sMake != ''){
        fnRetrieveModels(iDivisionID,sMake,sModel);
      }  
    }
  };

  initQSForm();
});

