jQuery(function($){
	

	
	$("#planesEstrategicos").rup_table({	
		url: $.rup.CTX_PATH + "planesestrategicos/" + entidad,
		colNames: [
			"codplane",
			"codplanificacion",
			"codentidad",
			$.rup.i18n.app.campos_tabla_planes_estrategicos["nombreEntidad"],
			$.rup.i18n.app.campos_tabla_planes_estrategicos["fechas"],
			$.rup.i18n.app.campos_tabla_planes_estrategicos["nombre"],
			"txostenaCod",
			"codVersion",
			"numTieneVersion"
		],
		colModel: [
			{ 	name: "codplane",
				index: "CODPLANE",
				align: "left",
				width: 150,
				hidden: true,
				sortable: true
			},
			{ 	name: "planificacion.codplanificacion",
				index: "CODPLANIFICACION",
				align: "left",
				width: 150,
				hidden: true,
				sortable: true
			},
			{ 	name: "entidad.codentidad",
				index: "CODENTIDAD",
				align: "left",
				width: 150,
				hidden: true,
				sortable: true
			},
			{ 	name: "entidad.desentidad",
				index: "DESENTIDAD",
				align: "left",
				width: 290,
				hidden: false,
				sortable: true
			},
			{ 	name: "anyos",
				index: "anyoinicio",
				align: "left",
				width: 80,
				hidden: false,
				sortable: true
			},
			{ 	name: "nombreEsEu",
				index: "NOMBRE"+IDIOMA,
				align: "left",
				width: 360,
				hidden: false,
				sortable: true
			},
			{ 	name: "solitudTxostena",
				index: "SOLICITUDTXOSTENA",
				align: "left",
				width: 150,
				hidden: true,
				sortable: true
			},
			{ 	name: "codVersion",
				index: "CODVERSION",
				align: "left",
				width: 150,
				hidden: true,
				sortable: true
			},
			{ 	name: "tieneVersion",
				index: "TIENEVERSION",
				align: "center",
				width: 0,
				hidden: true
			}
        ],

        model:"PlanesEstrategicos",
        usePlugins:[		
        	"formEdit"      	
			
         	],
		primaryKey: "codplane",
		sortname: "CODPLANE",
		sortorder: "ASC",
		loadOnStartUp: true,
		onSelectRow:function(id){
    		cargarTecnicos();    	    		
    	},
    	loadComplete:function(){
    		cargarTecnicos();
    	}
	});
	
	

	$('#tco_tipoIdentif_detail_table').rup_combo({
		source: $.rup.CTX_PATH + "combo/tipoidentifTecnico",
		sourceParam: {label:"desc", value:"codigo"},
		blank: "",
		width : 170,
		rowStriping: true,
		autocomplete :true
		});
	
	//radio botones para el sexo en la pantalla de detalle
	 var htmlFilaSexo = '';
	 htmlFilaSexo +='<input type="radio" name="sexo" id="tco_sexo_detail_tableM" value='+SEXO_MUJER_ID+'><label for="tco_sexo_detail_tableM"  class="sinNegrita">'+$.rup.i18n.app.campos_sexo[SEXO_MUJER_DESC]+'</label>';
	 htmlFilaSexo +='&nbsp;&nbsp;&nbsp;&nbsp;<input type="radio" name="sexo" id="tco_sexo_detail_tableH" value='+SEXO_HOMBRE_ID+'><label for="tco_sexo_detail_tableH"  class="sinNegrita">'+$.rup.i18n.app.campos_sexo[SEXO_HOMBRE_DESC]+'</label>';
	 htmlFilaSexo += '<br>';
	 	$('#tco_radiosSexo').append(htmlFilaSexo);
	 
	 	$('#tco_codth_detail_table').rup_combo({
			source: $.rup.CTX_PATH + "provincia/getAllProvincia",
			sourceParam: {label:"descOf", value:"idProvincia"},
			blank: "",
			width : 160,
			rowStriping: true,
			autocomplete :true,
			ordered:false
		});
		
		$("#tco_codmun_detail_table").rup_combo({
			parent: [ "tco_codth_detail_table" ],
			source: $.rup.CTX_PATH + "municipio/getAllMunicipio",
			sourceParam: {label:"descOf", value:"idMunicipio"},
			blank: "",
			width : 180,
			rowStriping: true,
			autocomplete :true
		});
		
		$("#tco_codloc_detail_table").rup_combo({
			parent: [ "tco_codth_detail_table","tco_codmun_detail_table" ],
			source: $.rup.CTX_PATH + "localidad/getAllLocalidad",
			sourceParam: {label:"descOf", value:"idLocalidad"},
			blank: "",
			rowStriping: true,
			autocomplete :true
		});
	 
		$('.esNumero').on('input', function () { 
		    this.value = this.value.replace(/[^0-9]/g,'');
		});
		
		
		//Evento para el botón Limpiar de la ventana de detalle
		 $('#tecnicos_detail_button_reset').on('click',tco_limpiarDatosPagina);
		
		//Función que limpia los campos del detalle del tecnicoEntidad en el caso de estar dando de alta una nueva.
		function tco_limpiarDatosPagina(){
			$('#tco_docidentificacion_detail_table').val(VACIO);
			$('#tco_nombre_detail_table').val(VACIO);
			$('#tco_ape1_detail_table').val(VACIO);
			$('#tco_ape2_detail_table').val(VACIO);
			$('#tco_telefono1_detail_table').val(VACIO);
			$('#tco_telefono2_detail_table').val(VACIO);
			$('#tco_email_detail_table').val(VACIO);	
			$('#tco_tipoIdentif_detail_table').rup_combo("setRupValue", "");
			$('#tco_codth_detail_table').rup_combo("setRupValue", "");
			$('#tco_codmun_detail_table').rup_combo("setRupValue", "");
			$('#tco_codloc_detail_table').rup_combo("setRupValue", "");
			$('#tco_codpostal_detail_table').val(VACIO);
			$('#tco_calle_detail_table').val(VACIO);
			$('#tco_numcalle_detail_table').val(VACIO);
			$('input:radio[name=sexo]:checked').prop('checked', false);
		}
		
	 //No necesitamos el div entidades solo vamos a ADD
	 $("#bloque_entidades").hide();
	
	
	$("#tecnicos").rup_table({	
		url: $.rup.CTX_PATH + "entidades/tecnicosEntidad/0",
		colNames: [
			"codtecnico",
			$.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: "codtecnico",
				index: "CODTECNICO",
				align: "left",
				width: 150,
				hidden: true,
				sortable: true
			},
			{ 	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: 250,
				hidden: false,
				sortable: true
			}
        ],

        model:"tecnicosEntidad",
        usePlugins:[
			"toolbar",
			"formEdit"
         	],
        width:731,
		primaryKey: "codtecnico",
		sortname: "CODTECNICO",
		sortorder: "ASC",
		loadOnStartUp: false,
		core:{
	    	showOperations:{
	    		"edit": false,
	    		"clone": false,
	    		"delete": false
	    	},
	    	operations:{
		    	"activarDesactivar":{
		    		name: $.rup.i18n.app.ab39a_botonera.desactivarTecnico,
		    		enabled: function(){	
		    			return true;
		    		},
		    		callback: function(key, options){		
		    			
		    			activarDesactivar();
		    			
		    		}
		    	}
		    }
    	},
        formEdit:{
        	detailForm: "#tecnicos_detail_div",
			addEditOptions: {
				width: 1400,
				resizable: true,
    			reloadAfterSubmit:true
    		}
    	}
	});
	
	
	 $("#tecnicos_detail_form").rup_validate({
		 
		 rules:{
				"tipoIdentif.codigo":{
					required: true
					},
				"docidentificacion":{
					required: true
					},
				"nombre":{
					required: true
					},
				"ape1":{
					required: true
					},
				"telefono1":{
					required: true
					},
				"email":{
					required: true
					},
				"sexo":{
					required: true
					},
				"codth":{
					required: true
					}
				}	 
		 
	 });
	
	 //Controlar el add para que no inserte en el controller que tiene la tabla si no en el mantenimiento de tecnicos
	 $("#tecnicos").on("jqGridAddEditBeforeSubmit", function(event, postData, $form, oper){
		 
		 var es = oper;
		 
		 if(!ab39aUtils.form.validate($("#tecnicos_detail_form"), $("#tecnicos_detail_feedback"))){
				// No es valido, no continuar
				return false;
			}
		 
		 	
		 
		 $.rup_ajax({
				url : $.rup.CTX_PATH + "tecnicosentidad/guardarTecnicoEntidades/" + entidad,
				contentType : "application/json",
				cache : false,
				data: JSON.stringify(postData),
				dataType : "json",
				type : "POST",
				success : function(response) {
					
					$('#tecnicos_detail_div').rup_dialog("close");
					$("#tecnicos").rup_table("reloadGrid",false);
					ab39aUtils.feedback.pintarFeedbackOk($.rup.i18n.app.feedback["elementoOk"], $("#PlanesEnt_feedback"));								
						
				},
				error : function(response) {
					ab39aUtils.feedback.pintarFeedbackError(response.responseText, $("#tecnicos_detail_feedback"));
				}
			});
		return false;
	 });
	 
	
	// FIX ADD carga erronea jsp al realizar otra llamada y volver a add
	if ($("[aria-describedby='tecnicos_detail_div']").length > 0){              
        $("[aria-describedby='tecnicos_detail_div']").remove();
	}
	
	
	$("#tecnicosAsoc").rup_table({	
		url: $.rup.CTX_PATH + "entidades/tecnicosEntidad/0",
		colNames: [
			"codtecnico",			
			$.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: "codtecnico",
				index: "CODTECNICO",
				align: "left",
				width: 150,
				hidden: true,
				sortable: true
			},
			{ 	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: 250,
				hidden: false,
				sortable: true
			}
        ],

        model:"tecnicosEntidad",
        usePlugins:[
			"toolbar",
			"formEdit"
         	],
        width:731,
		primaryKey: "codtecnico",
		sortname: "CODTECNICO",
		sortorder: "ASC",
		loadOnStartUp: false
	});
	
	
	function cargarTecnicos(){		
		var selectedRow = ab39aUtils.tabla.getSelectedRow($("#planesEstrategicos"));
		var codplane = selectedRow.codplane;
		
		//Cargar tabla tecnicos
		$("#tecnicos").rup_table("setGridParam", {            
			url:$.rup.CTX_PATH + "entidades/tecnicosEntidad/" + codplane + "/" + entidad + "/0/filter"
		});
		$("#tecnicos").rup_table("reloadGrid", true);		
		cargarTecnicosAsociados();
	}
	
	
	
	function cargarTecnicosAsociados(){		
		var selectedRow = ab39aUtils.tabla.getSelectedRow($("#planesEstrategicos"));
		var codplane = selectedRow.codplane;
		//Cargar tabla tecnicos asociados
		$("#tecnicosAsoc").rup_table("setGridParam", {            
			url:$.rup.CTX_PATH + "entidades/tecnicosEntidad/" + codplane + "/" + entidad + "/1/filter"
		});
		$("#tecnicosAsoc").rup_table("reloadGrid", true);	
	}
	
	
	$("#asociarTecnico").on("click",function(event){
		event.preventDefault();	
		asociarTecnico();
	});
	
	$("#desasociarTecnico").on("click",function(event){
		event.preventDefault();	
		desasociarTecnico();
	});
	
	$("#PlanesEnt_feedback").rup_feedback(
			{block:false});
	
	$("#tecnicosAsoc_pager_left").css("width","10px");
	$("#tecnicos_pager_left").css("width","10px");
	$("#planesEstrategicos_pager_left").css("width","10px");
	
	
	function asociarTecnico(){
		$("#PlanesEnt_feedback").hide();
		var selectedRowPlanes = ab39aUtils.tabla.getSelectedRow($("#planesEstrategicos"));
		var codplane = selectedRowPlanes.codplane;
		if(selectedRowPlanes.codplane==undefined){
			ab39aUtils.feedback.pintarFeedbackError($.rup.i18n.app.errores["errorplanEs"],$("#PlanesEnt_feedback"));
		}else{
			var selectedRowTecnicos = ab39aUtils.tabla.getSelectedRow($("#tecnicos"));
			var tecnico = selectedRowTecnicos.codtecnico;
			if(selectedRowTecnicos.codtecnico==undefined){
				ab39aUtils.feedback.pintarFeedbackError($.rup.i18n.app.errores["errorDebeSelcTecnico"],$("#PlanesEnt_feedback"));		
			}else{			
				$.rup_messages("msgConfirm", {
			        message: $.rup.i18nParse($.rup.i18n.app,"campos_tabla_tecnicos_entidad.asociarTecnicoConfirm"),
			        title: "",
			        OKFunction: function () {
			        	var data = {"codplane":codplane,"tecnico":tecnico};			
									
						$.rup_ajax({
							url : $.rup.CTX_PATH + "entidades/asociarTecnico",
							contentType : "application/json",
							cache : false,
							data: JSON.stringify(data),									
							dataType : "json",
							type : "POST",
							beforeSend: waitDialogEspere($.rup.i18n.app.campos_elementos["espereGeneral"]),
						    complete: closeWaitDialogEspere,
						    success : function(response) {	
								cargarTecnicos();
							},
							error : function(error) {
								ab39aUtils.feedback.pintarFeedbackError($.rup.i18n.app.errores["errorGral"],$("#PlanesEnt_feedback"));
							}
						});
			        }
			    }); 
			}
		}
	}
	
	function desasociarTecnico(){	
		$("#PlanesEnt_feedback").hide();
		var selectedRowPlanes = ab39aUtils.tabla.getSelectedRow($("#planesEstrategicos"));
		var codplane = selectedRowPlanes.codplane;			
		if(selectedRowPlanes.codplane==undefined){
			ab39aUtils.feedback.pintarFeedbackError($.rup.i18n.app.errores["errorplanEs"],$("#PlanesEnt_feedback"));
		}else{
			var selectedRowTecnicosAsoc = ab39aUtils.tabla.getSelectedRow($("#tecnicosAsoc"));
			var tecnicoAsoc = selectedRowTecnicosAsoc.codtecnico;
			if(selectedRowTecnicosAsoc.codtecnico==undefined){
				ab39aUtils.feedback.pintarFeedbackError($.rup.i18n.app.errores["errorDebeSelcTecnico"],$("#PlanesEnt_feedback"));		
			}else if(($("#tecnicosAsoc tr").length-1)==1){
				ab39aUtils.feedback.pintarFeedbackError($.rup.i18n.app.errores["errorTecnicoPlanesMinUno"],$("#PlanesEnt_feedback"));			
			}else{
				$.rup_messages("msgConfirm", {
			        message: $.rup.i18nParse($.rup.i18n.app,"campos_tabla_tecnicos_entidad.desasociarTecnicoConfirm"),
			        title: "",
			        OKFunction: function () {
			        	var data = {"codplane":codplane,"tecnico":tecnicoAsoc};	
			        	
			        	$.rup_ajax({
							url : $.rup.CTX_PATH + "entidades/desasociarTecnico",
							contentType : "application/json",
							cache : false,
							data: JSON.stringify(data),									
							dataType : "json",
							type : "POST",
							beforeSend: waitDialogEspere($.rup.i18n.app.campos_elementos["espereGeneral"]),
						    complete: closeWaitDialogEspere,
						    success : function(response) {	
								cargarTecnicos();
							},
							error : function(error) {
								ab39aUtils.feedback.pintarFeedbackError($.rup.i18n.app.errores["errorGral"],$("#PlanesEnt_feedback"));
							}
						});
			        	
			        }
			    }); 
			}
		}
	}
	
	function waitDialogEspere(mensaje){
		
		var mensajeMostrar = "Cargando datos. Por favor, espere...";
		if (mensaje != ""){
			mensajeMostrar = mensaje;
		}
		
		$.blockUI({ message: "<div class='ab39a_modalWait'><img src='" + $.rup.APP_STATICS + "/images/busy.gif' /> "+mensajeMostrar+" </div>" });
		$(".blockUI.blockOverlay").css("z-index",9000);
		$(".blockUI.blockOverlay").css("opacity",0.5);
		$(".blockUI.blockMsg.blockPage").css("z-index",9001);
		$(".blockUI.blockMsg.blockPage").css("opacity",1);	
	}

	function closeWaitDialogEspere(){
		$.unblockUI();
	}
	
	// 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 mensaje;
		var titulo;
		var selectedRow = ab39aUtils.tabla.getSelectedRow($("#tecnicos"));
		if(selectedRow.baja==0){
			mensaje = $.rup.i18n.app.campos_tabla_tecnicos_entidad.desactivarTecnico;
			titulo = $.rup.i18n.app.campos_tabla_tecnicos_entidad.desactivarTecnicoTitulo;
		}else{
			mensaje = $.rup.i18n.app.campos_tabla_tecnicos_entidad.activarTecnico;
			titulo = $.rup.i18n.app.campos_tabla_tecnicos_entidad.activarTecnicoTitulo;
		}
		if(selectedRow.codtecnico!==undefined){
			$.rup_messages("msgConfirm", {
				message: mensaje,
				title: titulo,
				OKFunction : function () {
				
					
					$.rup_ajax({
						url : $.rup.CTX_PATH + "tecnicosentidad/borrarEntidad/" +selectedRow.codtecnico + "/" + entidad, 
						contentType : "application/json",
						cache : false,
						dataType : "json",
						type : "DELETE",
						success : function(response) {							
							$("#tecnicos").rup_table("reloadGrid", true);							
							ab39aUtils.feedback.pintarFeedbackOk($.rup.i18n.app.feedBack_ok["cambioBajaOk"], $("#PlanesEnt_feedback"));
						},
						error : function(error) {
							ab39aUtils.feedback.pintarFeedbackError($.rup.i18n.app.errores["errorBaja"]);
						}
					});
				}
			});
		}
	}
	

	
	
	
});