jQuery(function($){
	
	
	var isTecnicoEntidad = (IS_TECNICO_ENTIDAD=="true");
	
	var mioperacion={};
	if (!isTecnicoEntidad){
		mioperacion={
		    	"activarDesactivar":{
		    		name: $.rup.i18n.app.ab39a_botonera.activarDesactivarEntidad,
		    		enabled: function(){
		    			return true;		    			
		    		},
		    		callback: function(key, options){		
		    			$.rup_messages("msgConfirm", {
	                        message: $.rup.i18n.app.msg_confirm["msgConfirmDesActivarEntidad"],
	                        title: $.rup.i18n.app.msg_confirm["tituloDesActivarEntidad"],
	                        OKFunction: function () {
	                        	activarDesactivar();
	                        }
		    			});
		    		}
		    	},
		    	"asociarDesasociar":{
		    		name: $.rup.i18n.app.ab39a_botonera.asociarDesasociarTecnico,
		    		enabled: function(){			    			
		    			var selectedRow = ab39aUtils.tabla.getSelectedRow($("#Entidad"));		    			
		    			return (selectedRow.numplanesEs > 0);
		    		},
		    		callback: function(key, options){	
		    			asociarDesasociar();	                   
	    			}
	    		}
	    }
    }

	$("#Entidad").rup_table({	
		url: $.rup.CTX_PATH + "entidades",
		colNames: [
			"id",
			"codTec",
			$.rup.i18n.app.campos_tabla_entidades["izena"],
			$.rup.i18n.app.campos_tabla_entidades["direccion"],
			$.rup.i18n.app.campos_tabla_entidades["email"],
			$.rup.i18n.app.campos_tabla_entidades["tfno"],
			"DatosCompletos",
			"baja",
			"numplanese"
		],
		colModel: [
			{ 	name: "codentidad",
				index: "CODENTIDAD",
				align: "left",
				width: 0,
				hidden: true,
				sortable: true
			},
			{ 	name: "tecnicosEntidad.codtecnico",
				index: "CODTECNICO",
				align: "left",
				width: 0,
				hidden: true,
				sortable: true
			},
			{ 	name: "desentidad",
				index: "DESENTIDAD",
				align: "left",
				width: 150,
				hidden: false,
				sortable: true
			},
			{ 	name: "direccioncompleta",
				index: "DIRECCION",
				align: "left",
				width: 150,
				hidden: false,
				sortable: true
			},
			{ 	name: "email",
				index: "EMAIL",
				align: "left",
				width: 150,
				hidden: false,
				sortable: true
			},
			{ 	name: "tfno",
				index: "TFNO",
				align: "left",
				width: 150,
				hidden: false,
				sortable: true,
				formatter: formatterTfno
			},
			{ 	name: "datosCompletos",
				index: "datosCompletos",
				align: "left",
				width: 150,
				hidden: true,
				sortable: false
			},
			{ 	name: "baja",
				index: "BAJA",
				align: "left",
				width: 10,
				hidden: true,
				sortable: true
			},
			{ 	name: "numplanesEs",	
				index:"numplanesEs",			
				align: "left",
				width: 10,
				hidden: true,
				sortable: true
			}			
			
        ],

        model:"Entidades",
        usePlugins:[
			"formEdit",
        	"feedback",
			"toolbar",
        	"contextMenu",
        	"responsive",
        	"filter"
         	],
		primaryKey: "codentidad",
		sortname: "CODENTIDAD",
		sortorder: "ASC",
		loadOnStartUp: true,
		feedback:{
			config:{
				block: false
			}
		},
		core:{
	    	showOperations:{
	    		"clone": false,
	    		"delete":false
	    	},
	    	operations:mioperacion
		},
        formEdit:{
        	detailForm: "#Entidad_detail_div",
			addEditOptions: {
    			reloadAfterSubmit:true,
    			width:1400
    		},
			deleteOptions:{
				reloadAfterSubmit:true
			},
         	validate:{ 
    			rules:{
    				"desentidad":{
						required: true
    					},
    				"cifnif":{
						required: true
    					},    				
    				"direccion":{
						required: true
    					},
    				"email":{
						required: false, email:true
    					},    				
    				"numTrabajadores":{
						required: false, digits:true
    					},
    				"numTrabHombre":{
						required: false, digits:true
    					},
    				"numTrabMujer":{
						required: false, digits:true
    					},
    				"tfno":{
						required: false, digits:true
    					},
    				"cp":{
						required: true, digits:true, maxlength:5, minlength:5
    					},
    				"tipoEntidad":{
						required: true
	    				}
				}
    		}
        }
	});
	
	$('#codth_filter_table').rup_combo({
		source: $.rup.CTX_PATH + "provincia/getAllProvinciaNavIp?idAutonomia="+COD_EUSKADI,
		sourceParam: {label:"descOf", value:"idProvincia"},
		blank: "",
		rowStriping: true,
		autocomplete :true
	});

	$('#codmun_filter_table').rup_combo({
		parent: [ "codth_filter_table" ],
		source : $.rup.CTX_PATH + "municipio/getAllMunicipio",
		sourceParam : {label: "descOf",value: "idMunicipio"},
		blank : ""
	});
	
	
	$('#codth_detail_table').rup_combo({
		source: $.rup.CTX_PATH + "provincia/getAllProvinciaNavIp?idAutonomia="+COD_EUSKADI,
		sourceParam: {label:"descOf", value:"idProvincia"},
		blank: "",
		rowStriping: true,
		autocomplete :true,
		change: function(){		
			$("#codmun_detail_table").rup_combo("setRupValue","");
			if($('#codth_detail_table').val()==99){
				$("#div_municipio").hide();
				$("#div_municipioExtr").show();
				$("#div_loc").hide();
				$("#div_locEx").show();				
			}else{				
				$("#div_municipio").show();
				$("#div_municipioExtr").hide();
				$("#div_loc").show();
				$("#div_locEx").hide();
				$("#muniExt_detail_table").val("");
				$("#locaExt_detail_table").val("");
			}
		} 
	});
	
		
	$("#codmun_detail_table").rup_combo({
		parent: [ "codth_detail_table" ],
		source: $.rup.CTX_PATH + "municipio/getAllMunicipio",
		sourceParam: {label:"descOf", value:"idMunicipio"},
		blank: "",
		rowStriping: true,
		autocomplete :true
	});
	
	$("#codloc_detail_table").rup_combo({
		parent: [ "codth_detail_table","codmun_detail_table" ],
		source: $.rup.CTX_PATH + "localidad/getAllLocalidad",
		sourceParam: {label:"descOf", value:"idLocalidad"},
		blank: "",
		rowStriping: true,
		autocomplete :true
	});
	
	$("#solicInfor_detail_table").rup_combo({
		source:  [
			{i18nCaption: $.rup.i18n.app.rup_combo["inforBilin"], value:"0"},
			{i18nCaption: $.rup.i18n.app.rup_combo["inforEus"], value:"1"}
			],		
		blank: "",
		rowStriping: true
	});
	
	$('.esNumero').on('input', function () { 
	    this.value = this.value.replace(/[^0-9]/g,'');
	});

	
	
	function cargarNombreTecnico(response){
		var nombreCompletoTec = VACIO;
		if(response.tecnicosEntidad.nombre!=null){
			nombreCompletoTec += response.tecnicosEntidad.nombre + SEPARADOR;
		}
		if(response.tecnicosEntidad.apell1!=null){
			nombreCompletoTec += response.tecnicosEntidad.apell1 + SEPARADOR;
		}
		if(response.tecnicosEntidad.apell2!=null){
			nombreCompletoTec += response.tecnicosEntidad.apell2;
		}
		return nombreCompletoTec;
	}
	
	 
	//Sirve para ocultar el bloque de los datos del técnico cuando se accede a la pantalla de detalle en modo alta
	//No se puede modificar el tipo de entidad
	 
	 $("#Entidad").on("jqGridAddEditAfterFillData", function(event, $form, oper){
			
			if(oper==="edit"){
				//$('#bloque_tecnico').show();
				//$('#titulo_bloque_tecnico').show();
				$("#radiosTipoEntidadDetalle input:radio").attr('disabled',true);
		    } else if(oper === 'add') {
		    //	$('#bloque_tecnico').hide();
		    	//$('#titulo_bloque_tecnico').hide();
		    	$("#radiosTipoEntidadDetalle input:radio").attr('disabled',false);	
		
		    }
	});
	 $("#Entidad_filter_cleanLink").on("click", function(){
		 $("input[name=baja][value=" + ALTA_LOGICA + "]").prop('checked', true);
		});
	 
		// Formatter tfno
		function formatterTfno(cellval) {
			var resultado = VACIO;
			if(cellval != undefined ) {
				if(NUM_CERO == cellval) {
					resultado = VACIO;
				} else {
					resultado = cellval;
				}
			}
			return resultado;
		}
		
		//Función para activar/desactivar el registro
		function activarDesactivar(){
			var selectedRow = ab39aUtils.tabla.getSelectedRow($("#Entidad"));
				var codentidad = selectedRow.codentidad;
				 $.rup_ajax({
						url : $.rup.CTX_PATH + "entidades/remove", 
						data: JSON.stringify(selectedRow),
						contentType : "application/json",
						cache : false,
						dataType : "json",
						type : "POST",
						success : function(response) {
							$("#Entidad").rup_table("reloadGrid", true);
							ab39aUtils.feedback.pintarFeedbackOk($.rup.i18n.app.feedBack_ok["cambioBajaOk"]);
						},
						error : function(error) {
							ab39aUtils.feedback.pintarFeedbackError($.rup.i18n.app.errores["errorBaja"]);
						}
					});
		}
		
		function asociarDesasociar(){
			ab39aUtils.util.bloquearInterfaz();
			var selectedRow = ab39aUtils.tabla.getSelectedRow($("#Entidad"));
			var codentidad = selectedRow.codentidad;
			
			$('#divAsociarTecnico_Dialog').rup_dialog({
				title :$.rup.i18n.app.campos_tabla_entidades['tituloAsociar'],
				type: $.rup.dialog.AJAX, 
				url: ab39aUtils.util.setUrlNoCachePortalWar($.rup.CTX_PATH + "entidades/asociarTecnico/" + codentidad),
				autoOpen : true,
				closeOnEscape : true,
				modal : true,
				resizable : false,				
				minWidth : 830,
				minHeight : 870,
				classes: {"ui-dialog":"big-dialog"},
				
				ajaxOptions: {
					success: function (data, textStatus, XMLHttpRequest){
					},
					error: function (error){
					}
				},
				open: function(){					
					$("#tecnicos_toolbar").css("width","100%");	
				},
				load: function(){									
					ab39aUtils.util.desbloquearInterfaz();
				},
				close: function(event, ui) {					
					//Parche para saber si se ha abierto en algun momento la capa. Si no es así, entonces no tengo que destruirla
					//if($('#divAsociarTecnico_Dialog')[0].innerHTML!=="&nbsp;"){
						//$('#divAsociarTecnico_Dialog').rup_dialog("destroy");
						//$("#Entidad").rup_table("reloadGrid", true);
					//}
				}
			});	
			
		}
		
	
		
		$("#Entidad").on("jqGridAddEditAfterFillData", function(event, $form, oper){
            if(oper==="edit"){
                $("#bloque_tecnico").css("display","");
                   $("#tecnicosEntidad").rup_table("setGridParam", {
                          //url:$.rup.CTX_PATH + "entidades/tecnicosEntidad/"+ab39aUtils.tabla.getSelectedRow($("#Entidad")).codentidad+"/filter"});
                	   url:$.rup.CTX_PATH + "entidades/tecnicosEntidad/"+$("#codentidad_detail_table").val()+"/filter"});
                	   
                   $("#tecnicosEntidad").rup_table("reloadGrid",false);
         }else{
            $("#bloque_tecnico").css("display","none");
         }
     });
	
	 
	$("#Entidad").on("jqGridAddEditAfterSubmit", function(event, $form, objeto){
		//alert("jqGridAddEditAfterSubmit 1");
		 if(objeto.oper==="edit"){
			 if($form.responseJSON.datosCompletos){
				 //location.reload();
				 $(location).attr('href',CONTEXT_PATH+"/");
			 }
			 
		}
	});
	 

		$("#tecnicosEntidad").rup_table({	
			url: $.rup.CTX_PATH + "entidades/tecnicosEntidad/0",
			colNames: [
				$.rup.i18n.app.campos_tabla_tecnicos_entidad["nombre"],
				$.rup.i18n.app.campos_tabla_tecnicos_entidad["email"],
				$.rup.i18n.app.campos_tabla_tecnicos_entidad["tfno1"],
				$.rup.i18n.app.campos_tabla_tecnicos_entidad["tfno2"],
				$.rup.i18n.app.campos_tabla_tecnicos_entidad["direccion"]
			],
			colModel: [
				{ 	name: "nombre",
					index: "NOMBRE",
					align: "left",
					width: 150,
					hidden: false,
					sortable: true
				},
				{ 	name: "email",
					index: "EMAIL",
					align: "left",
					width: 150,
					hidden: false,
					sortable: true
				},
				{ 	name: "telefono1",
					index: "TELEFONO1",
					align: "left",
					width: 80,
					hidden: false,
					sortable: true
				},
				{ 	name: "telefono2",
					index: "TELEFONO2",
					align: "left",
					width: 80,
					hidden: false,
					sortable: true
				},
				{ 	name: "direccioncompletaDescripcion",
					index: "CALLE",
					align: "left",
					width: 260,
					hidden: false,
					sortable: true
				}
	        ],

	        model:"tecnicosEntidad",
	        usePlugins:[
				"toolbar"
	         	],
			primaryKey: "codtecnico",
			sortname: "CODTECNICO",
			sortorder: "ASC",
			loadOnStartUp: false//,
			,  formEdit:{
                detailForm: "#tecnicosEntidad_detail_div"
            }
			
		});
		
		$("#tecnicosEntidad_pager_left").width(20);

		if (isTecnicoEntidad){
			$("[id='Entidad_toolbar##btnAdd']").hide();
			$("#radiosEstado").hide();
		}else{
			$("#radiosEstado").show();
		}
});