$(document).ready(function() {
  $('#vehicles p a').click(function(){
    addVehicleForm()
    return false;
  })
    $('#vehicle_form').delegate('.year','click change', function(){if(this.value != ""){getMake(this.value, "getMake", this);}});
    $('#vehicle_form').delegate('.make','click change', function(){if(this.value != ""){getModel(this.value, "getModel", this);}});
    $('#vehicle_form').delegate('.model','click change', function(){if(this.value != ""){getSubModel(this.value, "getSubModel", this);}});
	$('.make').attr('disabled', true);
	$('.model').attr('disabled', true);
    $('.sub_model').attr('disabled', true).hide();
	$('.chgvehicle').click(function(){ 
		$('#avail_vehicles').hide();
		$('#vehicle_search').show();
		return false;
	});
	$('#my_vehicle').click(function(){ 
		chgSearchBy();
	});
	$('#brandgo').hide();
	$('#brand').change(function() {
		chgSearchBy();
	});
});

function chgSearchBy() {
	$.ajax({url:base+'modules/ajax.php?chgVehicle' , dataType:"json", type: "POST", data:{veh_id: $('#my_vehicle').val(), brand: $('#brand').val(), product_category_id: $('#product_category_id').val()}, success:function(response) {
		// need to re-pull product data for this page to see if parts are available for new vehicle
		$('#module_products').html(response.data);
	}});
	return false;
}

function addVehicleForm(){
  var iteration = parseInt($('.vehicle:last').attr('id')) + 1;
  $('#vehicles p a').before('<div id="'+iteration+'" class="vehicle"></div>');
  $('#'+iteration).append(addField(iteration, 'make_id', "Make", 'medium', ""));
  $('#'+iteration).append(addField(iteration, 'model_id', "Model", ""));
  $('#'+iteration).append(addField(iteration, 'sub_model_id', "Sub Model", ""));
  $('#'+iteration).append(addField(iteration, 'year', "Year", 'short', ""));
  $('#'+iteration).append(addField(iteration, 'default', "Make Default", "checkbox"));
  $('#'+iteration+ ' #vehicle-'+iteration+'-make_id').html($('#0 #vehicle-0-make_id').html());
  $('#'+iteration+ ' #vehicle-'+iteration+'-model_id').parent().attr('disabled', true);
  $('#'+iteration+ ' #vehicle-'+iteration+'-sub_model_id').parent().attr('disabled', true);
  $('#'+iteration+ ' #vehicle-'+iteration+'-year').attr('disabled', '');
}

function addField(iteration, type, label, class_type){
   var label = '<label for="vehicle-'+iteration+'-'+type+'">'+label+'</label>';
   if(type == "default"){
     var field = '<input type="hidden" name="vehicle['+iteration+']['+type+']" value="0"/><input type="checkbox" id="vehicle-'+iteration+'-'+type+'" name="vehicle['+iteration+']'+type+'" value="1" />';
   }
   else{
     var field = '<select class="'+type.replace('_id', '')+'" name="vehicle['+iteration+']['+type+']" id="vehicle-'+iteration+'-'+type+'" size="1"><option value=""></option></select>';
   }
   var container = '<div class="vehicle_input '+class_type+'">';
   var container_end = '</div>';
   return container + label + field + container_end;
}

function getMake(id, func, el){
  var data = {
    year : id
  }
  var save_make = $('#'+el.id.replace('year', 'make_id')).attr('value');
  var valid_make = 0;
  
  $.ajax({
          url: base + 'modules/ajax.php?'+func, 
          dataType:"json", 
          type: "POST", data:data, 
          success:function(response) {
            $('#'+el.id.replace('year', 'make_id')).empty();
            $('#'+el.id.replace('year', 'make_id')).append('<option value="">Select Make</option>');
            $.each(response.data, function(i, item){
            	$('#'+el.id.replace('year', 'make_id')).append('<option value="'+item.id+'"'+(item.id == save_make ? ' selected="selected"': '')+'>'+item.name+'</option>');
				if(item.id == save_make) valid_make = 1;
            })
			if(!valid_make) {
				$('#'+el.id.replace('year', 'model_id')).empty().append('<option value="">Select Model</option>').attr('disabled', true);
				$('#'+el.id.replace('year', 'sub_model_id')).empty().attr('disabled', true).hide();
			} else {
				getModel(save_make,'getModel',$(el).parent().next().children()[0]);
			}
            $('#'+el.id.replace('year', 'make_id')).removeAttr('disabled');
          }
  })
}
function getModel(id, func, el){
  var data = {
    make_id : id,
	year : $('#'+el.id.replace('make_id', 'year')).attr('value')
  }
  var save_model = $('#'+el.id.replace('make', 'model')).attr('value');
  var valid_model = 0;
  $.ajax({
          url: base + 'modules/ajax.php?'+func, 
          dataType:"json", 
          type: "POST", data:data, 
          success:function(response) {
            $('#'+el.id.replace('make', 'model')).empty();
            $('#'+el.id.replace('make', 'sub_model')).empty().attr('disabled', true).hide();
            $('#'+el.id.replace('make', 'model')).append('<option value="">Select Model</option>');
            $.each(response.data, function(i, item){
            	$('#'+el.id.replace('make', 'model')).append('<option value="'+item.id+'"'+(item.id == save_model ? ' selected="selected"': '')+'>'+item.name+'</option>');
            	if(item.id == save_model) valid_model = 1;
			})
            $('#'+el.id.replace('make', 'model')).removeAttr('disabled');
			if(valid_model) {
				getSubModel(save_model,'getSubModel',$(el).parent().next().children()[0]);
			}
          }
  })
}

function getSubModel(id, func, el){
  var data = {
    model_id : id,
	  year : $('#'+el.id.replace('model_id', 'year')).attr('value')
  }
  $.ajax({
          url: base + 'modules/ajax.php?'+func, 
          dataType:"json", 
          type: "POST", data:data, 
          success:function(response) {
            if(response.data.length != 0){
              $('#'+el.id.replace('model', 'sub_model')).empty();
              $('#'+el.id.replace('model', 'sub_model')).append('<option value="">Select Sub-Model</option>').show();
              $.each(response.data, function(i, item){
                $('#'+el.id.replace('model', 'sub_model')).append('<option value="'+item.id+'">'+item.name+'</option>');
              })
              if($('#'+el.id.replace('model', 'sub_model')+" option").length == 1){
                $('#'+el.id.replace('model', 'sub_model')).removeAttr('disabled');
                $('#'+el.id.replace('model', 'sub_model')+" option:last").attr('selected', 'selected');
              } else{
                $('#'+el.id.replace('model', 'sub_model')).removeAttr('disabled');
              }
            }
            else{
              $('#'+el.id.replace('model', 'sub_model')).hide();

            }           
          }
  })
}

function deleteVehicle(id, f){
    $.ajax({
            url: base + 'modules/ajax.php?deleteVehicle' , 
            dataType:"json", 
            type: "POST", data:{id:id}, 
            success:function(response) {
              if(response.status == 1){
                $('#my_vehicles dt span a#'+id).parents("dt").next().remove();
                $('#my_vehicles dt span a#'+id).parents("dt").next().remove();
                $('#my_vehicles dt span a#'+id).parents("dt").remove();
                if(typeof f == "function"){
                  f();
                } 
                return false;
              }            
            }
    })
}
function makeDefault(id, f){
    $.ajax({
            url: base + 'modules/ajax.php?makeDefault', 
            dataType:"json", 
            type: "POST", data:{id:id}, 
            success:function(response) {
              if(response.status == 1){
                $('#my_vehicles ul').empty();
                $.each(response.data, function(i, item){
                  var li = item.year+' '+item.make+' '+item.model+' ';
                  if(item.platform != "None"){
                    li = li + item.platform+' ';
                  }
                  if(item.sub_model != "None"){
                    li = li + item.sub_model+' ';
                  }
                  if(item.is_default == 1){
                    li = li + '(default) ';
                  }
                  else{
                    li = li + '<span class="make_default"><a id="'+i+'" href="#make_default">make default</a></span> ';
                  }
                  li = li + '<span class="delete"><a id="'+i+'" href="#delete">[X]</a>';
                  $('#my_vehicles ul').append('<li>'+li+'</li>');
                })
                if(typeof f == "function"){
                  f();
                } 
                return false;
              }            
            }
    })
}
