// JavaScript Document
(function($){
    $.fn.valida_select = function(settings){

        var $default = $.extend({}, $.fn.valida_select.defaults, settings);
		
		return this.each(function(settings){
			var info = $.extend({}, $default, $(this).data());
			var elem = $(this);
			
			if($(elem).val()!=null){
				if($(elem).val().trim()=='0x'){
					
					$(elem).addClass(info.classError).removeClass(info.classValid);
					$("#"+info.idcmp_afec).empty();
					$("#"+info.idcmp_afec).html("<option value='0x'>Seleccione...</option>")
					$("#"+info.idcmp_afec).removeClass(info.classValid).addClass(info.classError);
				}else{
					$(elem).addClass(info.classValid).removeClass(info.classError);
					cargar_select(info,$(this).val());
				}
			}else{
				$("#"+info.idcmp_afec).empty();
				$("#"+info.idcmp_afec).html("<option value='0x'>Seleccione...</option>")
				$(elem).addClass(info.classError).removeClass(info.classValid);
			}
			
		
		elem.change(function(){
			if($(this).val()!=info.dat_error){
				$(this).addClass(info.classValid).removeClass(info.classError);
				cargar_select(info,$(this).val());
			}else{
				$(this).removeClass(info.classValid).addClass(info.classError);
				$("#"+info.idcmp_afec).empty();
				$("#"+info.idcmp_afec).html("<option value='0x'>Seleccione...</option>")
				$("#"+info.idcmp_afec).removeClass(info.classValid).addClass(info.classError);
			}

			if(info.idcmp_bloc.length>0){
				for(i=0;i<info.idcmp_bloc.length;i++){
					$("#"+info.idcmp_bloc[i]).empty();// limpio el combo
					$("#"+info.idcmp_bloc[i]).removeClass(info.classValid);
					$("#"+info.idcmp_bloc[i]).addClass(info.classError);
					$("#"+info.idcmp_bloc[i]).html("<option value='0x'>Seleccione...</option>")
				}
			}
		})	
		
		function cargar_select(info,val){
				var data = $.extend({}, $default.data, settings.data);
				var cmpcnd=info.data.cmpcnd;
				
				data.cod_cnds=val
				
				if(info.idcmp_afec.trim()!='' && data.codigo.trim()!=''){
					$("#"+info.idcmp_afec).attr("disabled","disabled")
					$("#"+info.idcmp_afec).addClass(info.classErrorCarga).removeClass(info.classValid);
					$("#"+info.idcmp_afec).empty();
					$.ajax({
						type: "POST",
						url: info.url,
						data:data,
						async: true,
						success: function(rta){
							$("#"+info.idcmp_afec).html(rta)
							if($("#"+info.idcmp_afec+" option:selected").val() !=info.dat_error){
								$("#"+info.idcmp_afec).removeClass(info.classErrorCarga).removeClass(info.classError).addClass(info.classValid);
								$("#"+info.idcmp_afec).change()
							}else{
								$("#"+info.idcmp_afec).addClass(info.classError).removeClass(info.classErrorCarga);
							}
							$("#"+info.idcmp_afec).removeAttr("disabled")
						}
					})
				}			
		}
		
	
		});// fin this.each

}
	$.fn.valida_select.defaults = {
		idcmp_bloc:[],// ides de los combos que se deben bloquear
		dat_error:'0x',
		classErrorCarga:'campos_error_combo',
		classError:'campos_error',
		classValid:'campos',
		idcmp_afec:'', //ide del campo al cual se van a acrgar nuevos datos en el evento change
		url:'includes/cargar_selec_normal.php',
		data:{
			codigo:'' ,
			cod_cnds:'',
			selec:'',
			grilla:'',  // si se esta haciendo en un formulario  creadopor una grilla
			mos_cod:'',  // si desea mostar el codigo
			cmp_aux:''  // si se tienen campos auxiliares . En caso de tener mas datos ocultos en el combo
		}
	}

})(jQuery);		
