$(document).ready(function(){
	search_auto_js.inicia();
});

var search_auto_js = {
	default_select_apl 		: "---",						// A esta variable se le debe considerar como una constante, no se debe modificar
	reviza_valores_default	: false,						// Para realizar la carga automatica por una unica vez
	
	valor_marca_id			: this.default_select_apl,
	valor_modelo_id			: this.default_select_apl,
	valor_submodelo_id		: this.default_select_apl,
	valor_year_id			: this.default_select_apl,
	valor_tipo_articulo_id	: this.default_select_apl,
	
	inicia : function(){

		this.procesa_defaults();
		$('#s_marca').change(function(){
			search_auto_js.modelo_ajax(true);
		});
		$('#s_modelo').click(function(){
			search_auto_js.revisaSeleccion(1);
		});
		$('#s_modelo').change(function(){
			search_auto_js.submodelo_ajax(false);
		});
		$('#s_submodelo').click(function(){
			search_auto_js.revisaSeleccion(2);
		});
		$('#s_submodelo').change(function(){
			search_auto_js.year_ajax(false);
		});
		$('#s_year').click(function(){
			search_auto_js.revisaSeleccion(3);
		});
	},
	
	modelo_ajax : function(valida_default){
		this.actualizaVariables();
		if ( this.valor_marca_id == this.default_select_apl ){
			this.limpiaVariables(2);
			return true;
		}
		
		$.ajax({
			type: 'POST',
			url:  '/docs/correo/contacto.php',
			async: true,
			cache: false,
			dataType : "html",
			data: 
				'ajax=true' +
				'&carga_modelos=true' +
				'&s_marca=' + search_auto_js.valor_marca_id,
			success: function(html_modelo){
				$('#s_modelo').html(html_modelo);
				search_auto_js.limpiaVariables(3);

			},
			error: function(){}
		});
		return true;
	},
	
	submodelo_ajax : function(valida_default){
		var submodelo_default = this.default_select_apl;
		this.actualizaVariables();
		if ( this.valor_modelo_id == this.default_select_apl ){
			this.limpiaVariables(3);
			return true;
		}

		$.ajax({
			type: 'POST',
			url: '/docs/correo/contacto.php',
			async: true,
			cache: false,
			dataType : "html",
			data: 
				'ajax=true' +
				'&carga_submodelos=true' +
				'&s_marca=' + search_auto_js.valor_marca_id +
				'&s_modelo=' + search_auto_js.valor_modelo_id,
			success: function(html_submodelo){
				$('#s_submodelo').html(html_submodelo);
				search_auto_js.limpiaVariables(4);
				if ( valida_default )
					search_auto_js.year_ajax(true);
			},
			error: function(){}
		});
		return true;
	},
	
	year_ajax : function(valida_default){
		var year_default = this.default_select_apl;
		this.actualizaVariables();
		if ( this.valor_submodelo_id == this.default_select_apl ){
			this.limpiaVariables(4);
			return true;
		}
		
		$.ajax({
			type: 'POST',
			url: '/docs/correo/contacto.php',
			async: true,
			cache: false,
			dataType : "html",
			data: 
				'ajax=true' +
				'&carga_years=true' +
				'&s_marca=' + search_auto_js.valor_marca_id +
				'&s_modelo=' + search_auto_js.valor_modelo_id  +
				'&s_submodelo=' + search_auto_js.valor_submodelo_id,
			success: function(html_year){
				$('#s_year').html(html_year);
				search_auto_js.limpiaVariables(5);
				
			},
			error: function(){}
		});
		return true;
	},
	
	revisaSeleccion : function(nivel){
		
		this.actualizaVariables();
		if ( nivel >= 1 && this.valor_marca_id == this.default_select_apl ){
			alert ("No ha seleccionado ninguna marca");
			this.limpiaVariables(2);
			return false;
		}
		if ( nivel >= 2 && this.valor_modelo_id == this.default_select_apl ){
			alert ("No ha seleccionado ningun modelo");
			this.limpiaVariables(3);
			return false;
		}
		if ( nivel >= 3 && this.valor_submodelo_id == this.default_select_apl ){
			alert ("No ha seleccionado ningun sub-modelo");
			this.limpiaVariables(4);
			return false;
		}
		if ( nivel >= 4 && this.valor_year_id == this.default_select_apl ){
			alert ("No ha seleccionado ningun a\u00f1o");
			this.limpiaVariables(5);
			return false;
		}
		return true;
	},
	
	actualizaVariables : function(){
		this.valor_marca_id = $("#s_marca option:selected").val();
		this.valor_modelo_id = $("#s_modelo option:selected").val();
		this.valor_submodelo_id = $("#s_submodelo option:selected").val();
		this.valor_year_id = $("#s_year option:selected").val();
		this.valor_tipo_articulo_id = $("#s_tipo_articulo option:selected").val();
	},
	
	// 2:modelo a tipo, 3:submodelo a tipo, 4:aņo y tipo, 5:tipo
	limpiaVariables : function(nivel){
		var select_default = '<option value="">---</option>';
		if ( nivel <= 2 ){
			this.valor_modelo_id = this.default_select_apl;
			$('#s_modelo').html(select_default);
		}
		if ( nivel <= 3 ){
			this.valor_submodelo_id = this.default_select_apl;
			$('#s_submodelo').html(select_default);
		}
		if ( nivel <= 4 ){
			this.valor_year_id = this.default_select_apl;
			$('#s_year').html(select_default);
		}
		
	},
	
	procesa_defaults : function(){
		if ( this.reviza_valores_default )			// Solo se debe ejecutar una vez
			return true;
		
		this.reviza_valores_default = true;
		this.modelo_ajax(true);						// Se cargan los modelos para la marca seleccionada
		return true;
	}
}

