
jQuery(function($) {
	
	initRupI18nPromise.then(function () {
		initFilter();
		initTable();
		
		$("#usuarios_filter_cleanButton").click( initFilter);
	});
	
	const initFilter = () => {
		$("#codProvincia_usuarios_filter_table").rup_combo({	
			source: $.rup.CTX_PATH + 'nora/provincias',
			sourceParam: {label: "descProvincia", value:"codProvincia"},
			loadFromSelect:false,
			width: 'auto',
	        ordered: true,
			blank: '',
			customClasses: ['select-material'],
			rowStriping: true
		});
		
		$("#codMunicipio_usuarios_filter_table").rup_combo({
			parent: ["codProvincia_usuarios_filter_table"],			
			source: $.rup.CTX_PATH + 'nora/municipioEnlazadoProvincia',
			sourceParam: {label: "descripcion", value:"codMunicipio"},
			rowStriping: true,
			width: 'auto',
			ordered: true,
			blank: '',
			customClasses: ['select-material']
		});
		
		$("#codProvincia_usuariosAyuntamiento_filter_table").rup_combo({	
			source: $.rup.CTX_PATH + 'nora/provincias',
			sourceParam: {label: "descProvincia", value:"codProvincia"},
			loadFromSelect:false,
			width: 'auto',
	        ordered: true,
			blank: '',
			customClasses: ['select-material'],
			rowStriping: true
		});
		
		$("#codProvincia_usuariosAyuntamiento_detail_table").rup_combo({	
			source: $.rup.CTX_PATH + 'nora/provincias',
			sourceParam: {label: "descProvincia", value:"codProvincia"},
			loadFromSelect:false,
			width: 'auto',
	        ordered: true,
			blank: '',
			customClasses: ['select-material'],
			rowStriping: true,
			onLoadSuccess: function(){
				$("#idAyuntamiento31_usuariosAyuntamiento_detail_table").rup_combo("refresh");
				$("#idMancomunidad49_usuariosAyuntamiento_detail_table").rup_combo("refresh");
			}
		});
		
		$("#codProvincia_usuariosAyuntamiento_edit_table").rup_combo({	
			source: $.rup.CTX_PATH + 'nora/provincias',
			sourceParam: {label: "descProvincia", value:"codProvincia"},
			loadFromSelect:false,
			width: 'auto',
			disabled:"true",
	        ordered: true,
			blank: '',
			customClasses: ['select-material'],
			rowStriping: true,
			onLoadSuccess: function(){
				$("#idAyuntamiento31_usuariosAyuntamiento_edit_table").rup_combo("refresh");
				$("#idMancomunidad49_usuariosAyuntamiento_edit_table").rup_combo("refresh");
			}
		});
		
		$("#buscarUsuarioBtn").on("click", function(){
			//Cerrar feedback
			$("#usuarios_detail_feedback").rup_feedback("close");
			//Vaciar campos
			$("#nombre80_usuarios_detail_table").val("");
			$("#apellidos80_usuarios_detail_table").val("");
			$("#usuXlnets80_usuarios_detail_table").val("");
			$("#tlfno80_usuarios_detail_table").val("");
			$("#email80_usuarios_detail_table").val("");
			
			$("#nombre80_usuarios_detail_table").prop("readonly", true);
			$("#apellidos80_usuarios_detail_table").prop("readonly", true);
			$("#usuXlnets80_usuarios_detail_table").prop("readonly", true);
			$("#tlfno80_usuarios_detail_table").prop("readonly", true);
			$("#email80_usuarios_detail_table").prop("readonly", true);
			$("#baja_usuarios_detail_table").prop("disabled", true);
			$("#baja_usuarios_detail_table_div").hide();
			
			if ($("#identificador80_usuarios_detail_table").val() != ""){
				$.rup_ajax({
					url: $.rup.CTX_PATH + "usuarios/buscarUsuario/" + $("#identificador80_usuarios_detail_table").val(),
					type: "GET",
					dataType: 'json',
					contentType: "application/json",
					beforeSend: function() {
						Ad74aUtils.bloquearInterfaz();
		            },
		            complete: function() {
		            	Ad74aUtils.desBloquearInterfaz();
		            },
					success: function (response) {
						if(response != null){
							$("#nombre80_usuarios_detail_table").val(response.nombre80);
							$("#apellidos80_usuarios_detail_table").val(response.apellidos80);
							$("#usuXlnets80_usuarios_detail_table").val(response.usuXlnets80);
							$("#tlfno80_usuarios_detail_table").val(response.tlfno80);
							$("#email80_usuarios_detail_table").val(response.email80);
							
							$("#tlfno80_usuarios_detail_table").prop("readonly", false);
							$("#email80_usuarios_detail_table").prop("readonly", false);
							$("#baja_usuarios_detail_table").prop("disabled", true);
							$("#baja_usuarios_detail_table_div").hide();
						}else{
							Ad74aUtils.desBloquearInterfaz();
			            	$("#usuarios_detail_feedback").rup_feedback('set', $.rup.i18n.app.feedback.usuarioNoEncontrado, "error"); 
						}
					},
					error:function(data){					
						Ad74aUtils.desBloquearInterfaz();
		            	$("#usuarios_detail_feedback").rup_feedback('set', data.responseText.replaceAll("\"", ""), "error");
					}
				});
			}else{
				$("#usuarios_detail_feedback").rup_feedback('set', $.rup.i18n.app.feedback.usuarioNoBuscar, "error"); 
			}
		});
		
		$("#idAyuntamiento31_usuariosAyuntamiento_detail_table").rup_combo({	
			parent: ["codProvincia_usuariosAyuntamiento_detail_table"],
			source: $.rup.CTX_PATH + 'combo/ayuntamientosprovincia',
			sourceParam: {label: "desc", value:"idAyuntamiento31"},
			loadFromSelect:false,
			width: 'auto',
	        ordered: true,
			blank: '',
			customClasses: ['select-material'],
			rowStriping: true,
			onLoadSuccess: function(){
				if ($("#codProvincia_usuariosAyuntamiento_detail_table").rup_combo("getRupValue") != null){
					$("#idAyuntamiento31_usuariosAyuntamiento_detail_table").rup_combo("enable");
				}
			}
		});
		
		$("#idAyuntamiento31_usuariosAyuntamiento_edit_table").rup_combo({	
			parent: ["codProvincia_usuariosAyuntamiento_edit_table"],
			source: $.rup.CTX_PATH + 'combo/ayuntamientosprovincia',
			sourceParam: {label: "desc", value:"idAyuntamiento31"},
			loadFromSelect:false,
			width: 'auto',
	        ordered: true,
	        disabled:"true",
			blank: '',
			customClasses: ['select-material'],
			rowStriping: true,
			onLoadSuccess: function(){
				if ($("#codProvincia_usuariosAyuntamiento_edit_table").rup_combo("getRupValue") != null){
				}
			}
		});
		
		$("#idMancomunidad49_usuariosAyuntamiento_detail_table").rup_combo({	
			parent: ["codProvincia_usuariosAyuntamiento_detail_table"],
			source: $.rup.CTX_PATH + 'combo/mancomunidades',
			sourceParam: {label: "desc", value:"idMancomunidad49"},
			loadFromSelect:false,
			width: 'auto',
	        ordered: true,
			blank: '',
			customClasses: ['select-material'],
			rowStriping: true,
			onLoadSuccess: function(){
				if ($("#codProvincia_usuariosAyuntamiento_detail_table").rup_combo("getRupValue") != null){
					$("#idMancomunidad49_usuariosAyuntamiento_detail_table").rup_combo("enable");
				}
			}
		});
		
		$("#idMancomunidad49_usuariosAyuntamiento_edit_table").rup_combo({	
			parent: ["codProvincia_usuariosAyuntamiento_detail_table"],
			source: $.rup.CTX_PATH + 'combo/mancomunidades',
			sourceParam: {label: "desc", value:"idMancomunidad49"},
			loadFromSelect:false,
			disabled:"true",
			width: 'auto',
	        ordered: true,
			blank: '',
			customClasses: ['select-material'],
			rowStriping: true,
			onLoadSuccess: function(){
				if ($("#codProvincia_usuariosAyuntamiento_edit_table").rup_combo("getRupValue") != null){
				}
			}
		});
		 
		$('input[type=radio][name=tipoUsuario]').change(function() {
		    if (this.value == TIPO_USUARIO_AYUNTAMIENTO) {
		    	$("#mancomunidades_detail_table_div").hide();
		    	$("#ayuntamientos_detail_table_div").show();
		    }
		    else if (this.value == TIPO_USUARIO_MANCOMUNIDAD) {
		    	$("#mancomunidades_detail_table_div").show();
		    	$("#ayuntamientos_detail_table_div").hide();
		    }
		});
		
		Ad74aUtils.number('#tlfno80_usuarios_detail_table',{
			"type": "integer",
			"enteros":20,
			"decimals": 0,
		});
		
		var propertiesUsuarios={
				feedback:$("#usuarios_detail_feedback"),
				liveCheckingErrors: false,
				showFieldErrorAsDefault: true,
				showErrorsInFeedback: true,
				showFieldErrorsInFeedback: true,
			  rules:{
			      "identificador80":{required:true},
			      "nombre80":{required:true},
			      "apellidos80":{required:true},
			      "usuXlnets80":{required:true}
			 }
		};
		$("#usuarios_detail_form").rup_validate(propertiesUsuarios);
		
		let usuarios_dialog = $("#usuarios_detail_div");
		let usuarios_dialog_feedback = $("#usuarios_detail_feedback");
		
		try {
			usuarios_dialog.rup_dialog("destroy");
		} catch (error) {}
		
		usuarios_dialog = $("#usuarios_detail_div");
		usuarios_dialog_feedback = $("#usuarios_detail_feedback");
		
		usuarios_dialog_feedback.rup_feedback (
			{
			  type: "ok",
			  block: false,
			}
		);	
		
		usuarios_dialog.rup_dialog( {
			type: $.rup.dialog.DIV,
			autoOpen: false,
			modal: true,
			closeOnEscape: true,
			resizable: true,
			//width:600,
			//height:600,
			dialogClass: 'custom_mid_dialog',
			title: $.rup.i18n.app.botonera.add,
			buttons : [ 
                {
                    text:$.rup.i18n.app.botonera.aceptar,
                    id:"usuarios_aceptar_btn",
                    class: 'btn-material btn-material-primary-high-emphasis',
                    click:  () => {
                    	if ($("#usuarios_detail_form").valid()){
                    		const usuario = $("#usuarios").rup_table("getSelectedRows");

                    		let data =  $('#usuarios_detail_form').rup_form("formToJson");
                    		delete data["_baja"];
                    		
                    		let url = $('#usuarios_detail_form').attr("action") + "/";
                    		url += data["idUsuario80"] != null && data["idUsuario80"] != "" ? "edit" : "add";
                    		let type = data["idUsuario80"] != null && data["idUsuario80"] != "" ? "PUT" : "POST";
                    		
                        	$.rup_ajax({
        			            url: url,
                        	    type: type,
        			            contentType: "application/json",
        			            data: JSON.stringify(data),             	
        			            success: function (data){    			            	
        			            	$("#usuarios").rup_table("reload");
        			            	usuarios_dialog.rup_dialog("close");
        			            	Ad74aUtils.desBloquearInterfaz();
        			            	$("#rup_feedback_usuarios").rup_feedback('set', $.rup.i18n.app.feedback.operacionOK, "ok"); 
        			            },
        			            beforeSend: function(){
        			            	Ad74aUtils.cerrarFeedbacks();
        			            	Ad74aUtils.bloquearInterfaz();
        						},
        			            error:function(data){
        			            	Ad74aUtils.desBloquearInterfaz();
        			            	usuarios_dialog_feedback.rup_feedback('set', data.responseText, "error");
        			            }
        			        });
                    	}
 					}
                 },
				{
					text : $.rup.i18n.app.botonera.cancelar,
					click : () => {
						usuarios_dialog.rup_dialog("close");
					},
					btnType : $.rup.dialog.LINK
				}
			],
			open: function(){
				const usuario = $("#usuarios").rup_table("getSelectedRows");  
			},
			close: function(){
				$("#usuarios_detail_form").rup_form("clearForm");
				$("#usuarios_detail_form").rup_validate("resetElements");
				usuarios_dialog_feedback.rup_feedback("close");
				$("#usuarios_detail_form").find('.error').not('input, textarea, select').remove();
				$("#usuarios_detail_form").find('.rup-validate-field-error').removeClass('rup-validate-field-error');
				$("#usuarios_detail_form").find('input').removeClass('error');
			}		    
		});
		
		var propertiesUsuariosAyuntamiento={
				feedback:$("#usuariosAyuntamiento_detail_feedback"),
				liveCheckingErrors: false,
				showFieldErrorAsDefault: true,
				showErrorsInFeedback: true,
				showFieldErrorsInFeedback: true,
			  rules:{
			      "usuarios.idUsuario80":{required:true},
			      "tipoUsuario":{required:true},
			      "ayuntamientos.provincia.codProvincia":{required:true},
			      "ayuntamientos.idAyuntamiento31":{required: function(){
			    	  return $('input[name="tipoUsuario"]:checked').val() == TIPO_USUARIO_AYUNTAMIENTO
			      }},
			      "ayuntamientos.mancomunidades.idMancomunidad49":{required: function(){
			    	  return $('input[name="tipoUsuario"]:checked').val() == TIPO_USUARIO_MANCOMUNIDAD
			      }}
			 }
		};
		$("#usuariosAyuntamiento_detail_form").rup_validate(propertiesUsuariosAyuntamiento);
		
		let usuariosAyuntamiento_dialog = $("#usuariosAyuntamiento_detail_div");
		let usuariosAyuntamiento_dialogEditar = $("#usuariosAyuntamiento_detail_edit_div");
		let usuariosAyuntamiento_dialog_feedback = $("#usuariosAyuntamiento_detail_feedback");
		let usuariosAyuntamiento_dialog_detail_feedback = $("#usuariosAyuntamiento_detail_edit_feedback");
		
		try {
			usuariosAyuntamiento_dialog.rup_dialog("destroy");
		} catch (error) {}
		
		usuariosAyuntamiento_dialog = $("#usuariosAyuntamiento_detail_div");
		usuariosAyuntamiento_dialog_feedback = $("#usuariosAyuntamiento_detail_feedback");
		usuariosAyuntamiento_dialogEditar = $("#usuariosAyuntamiento_detail_edit_div");
		usuariosAyuntamiento_dialog_detail_feedback = $("#usuariosAyuntamiento_detail_edit_feedback");
		
		usuariosAyuntamiento_dialog_feedback.rup_feedback (
			{
			  type: "ok",
			  block: false,
			}
		);	
		
		usuariosAyuntamiento_dialog_detail_feedback.rup_feedback (
				{
				  type: "ok",
				  block: false,
				}
			);	
		
		usuariosAyuntamiento_dialog.rup_dialog( {
			type: $.rup.dialog.DIV,
			autoOpen: false,
			modal: true,
			closeOnEscape: true,
			resizable: true,
			//width:600,
			height:400,
			dialogClass: 'custom_mid_dialog',
			title: $.rup.i18n.app.botonera.add,
			buttons : [ 
                {
                    text:$.rup.i18n.app.botonera.aceptar,
                    id:"usuariosAyuntamiento_aceptar_btn",
                    class: 'btn-material btn-material-primary-high-emphasis',
                    click:  () => {
                    	if ($("#usuariosAyuntamiento_detail_form").valid()){
	                    	const usuariosAyuntamiento = $("#usuariosAyuntamiento").rup_table("getSelectedRows");
	                    	let data =  $('#usuariosAyuntamiento_detail_form').rup_form("formToJson");
	
	                		let url = $('#usuariosAyuntamiento_detail_form').attr("action") + "/";
	                		url += data["idUsuarioAyto81"] != null && data["idUsuarioAyto81"] != "" ? "edit" : "add";
	                		let type = data["idUsuarioAyto81"] != null && data["idUsuarioAyto81"] != "" ? "PUT" : "POST";
	                		
	                    	$.rup_ajax({
	    			            url: url,
	                    	    type: type,
	    			            contentType: "application/json",
	    			            data: JSON.stringify(data),             	
	    			            success: function (data){    			            	
	    			            	$("#usuariosAyuntamiento").rup_table("reload");
	    			            	usuariosAyuntamiento_dialog.rup_dialog("close");
	    			            	Ad74aUtils.desBloquearInterfaz();
	    			            	$("#rup_feedback_usuariosAyuntamiento").rup_feedback('set', $.rup.i18n.app.feedback.operacionOK, "ok"); 
	    			            },
	    			            beforeSend: function(){
	    			            	Ad74aUtils.cerrarFeedbacks();
	    			            	Ad74aUtils.bloquearInterfaz();
	    						},
	    			            error:function(data){
	    			            	Ad74aUtils.desBloquearInterfaz();
	    			            	usuariosAyuntamiento_dialog_feedback.rup_feedback('set', data.responseText, "error");
	    			            }
	    			        });
                    	}
 					}
                 },
				{
					text : $.rup.i18n.app.botonera.cancelar,
					click : () => {
						usuariosAyuntamiento_dialog.rup_dialog("close");
					},
					btnType : $.rup.dialog.LINK
				}
			],
			open: function(){
				const usuariosAyuntamiento = $("#usuariosAyuntamiento").rup_table("getSelectedRows");  
				const usuarios = $("#usuarios").rup_table("getSelectedRows");  
				$("#idUsuario80_usuariosAyuntamiento_detail_table").val(usuarios["idUsuario80"]);
				if (!$("input[type=radio][name=tipoUsuario]").is(':checked')){
					$("#usuarioAyuntamiento_usuariosAyuntamiento_detail_table").prop("checked", true);	
				}
			},
			close: function(){
				$("#usuariosAyuntamiento_detail_form").rup_form("clearForm");
				$("#usuariosAyuntamiento_detail_form").rup_validate("resetElements");
				usuariosAyuntamiento_dialog_feedback.rup_feedback("close");
			}		    
		});
		
		
		$("#usuariosAyuntamiento_detail_edit_div").rup_dialog( {
			type: $.rup.dialog.DIV,
			autoOpen: false,
			modal: true,
			closeOnEscape: true,
			resizable: true,
			//width:600,
			//height:400,
			dialogClass: 'custom_mid_dialog',
			title: $.rup.i18n.app.botonera.edit,
			buttons : [ 
                {
                    text:$.rup.i18n.app.botonera.aceptar,
                    id:"usuariosAyuntamiento_aceptar_btn",
                    class: 'btn-material btn-material-primary-high-emphasis',
                    click:  () => {
                    	 let selectedValues = $('#idUnidadBase92_usuariosAyuntamiento_edit_table').val();
                    	 let valores = [];
                         $('#idUnidadBase92_usuariosAyuntamiento_edit_table option').each(function() {
                             valores.push($(this).val());
                         });
                         
                         var datos = {
                        		 selectedValues: selectedValues,
                        		 valores: valores
                             };
                    	 $.rup_ajax({
                             type: 'POST',
                             url: $.rup.CTX_PATH +"unidadesbase/usuarioUB/"+$('#idUsuario80_usuariosAyuntamiento_detail_table').val(),
                             data: JSON.stringify(datos),
                             contentType: 'application/json',
                             beforeSend: function() {
				            	  Ad74aUtils.bloquearInterfaz();
				              },
				              complete: function() {
				            	  Ad74aUtils.desBloquearInterfaz();
				              },
				              success: function (data){
				              	  $('#usuariosAyuntamiento_detail_edit_feedback').rup_feedback("option", "delay", null);
				              	  $('#usuariosAyuntamiento_detail_edit_feedback').rup_feedback("set", $.rup.i18n.app.unidadesBase.unidadesBaseActualizadas, "ok");
				              	  $('#usuariosAyuntamiento').rup_table("reload");
				              },
                             
                         });
                    }
                 },
				{
					text : $.rup.i18n.app.botonera.cancelar,
					click : () => {
						$("#usuariosAyuntamiento_detail_edit_div").rup_dialog("close");
					},
					btnType : $.rup.dialog.LINK
				}
			],
			open: function(){
				const usuariosAyuntamiento = $("#usuariosAyuntamiento").rup_table("getSelectedRows");  
				const usuarios = $("#usuarios").rup_table("getSelectedRows");  
				$("#idUsuario80_usuariosAyuntamiento_detail_table").val(usuarios["idUsuario80"]);
				if (!$("input[type=radio][name=tipoUsuario]").is(':checked')){
					$("#usuarioAyuntamiento_usuariosAyuntamiento_detail_table").prop("checked", true);	
				}
			},
			close: function(){
				$("#usuariosAyuntamiento_detail_form").rup_form("clearForm");
				$("#usuariosAyuntamiento_detail_form").rup_validate("resetElements");
				usuariosAyuntamiento_dialog_feedback.rup_feedback("close");
				
				
			}		    
		});
	}
	
	const initTable = () => {
		
		let usuarios_dialog = $("#usuarios_detail_div");
		let usuarios_dialog_feedback = $("#usuarios_detail_feedback");
		let usuariosAyuntamiento_dialog = $("#usuariosAyuntamiento_detail_div");
		let usuariosAyuntamiento_dialog_feedback = $("#usuariosAyuntamiento_detail_feedback");
		
		const getColumnsModelUsuarios = function(){
			const getColumnModelUsuarios = function (name, index, editable, hidden, orderable) {
				return {
					name: name,
					index: index,
					editable: editable,
					hidden: hidden,
					orderable: orderable
				}
			};
			let columnsModelUsuarios = [];
			columnsModelUsuarios.push(getColumnModelUsuarios("idUsuario80", "idUsuario80", false, true, false));
			columnsModelUsuarios.push(getColumnModelUsuarios("identificador80", "identificador80", true, false));
			columnsModelUsuarios.push(getColumnModelUsuarios("nombre80", "nombre80", true, false));
			columnsModelUsuarios.push(getColumnModelUsuarios("apellidos80", "apellidos80", true, false));
			columnsModelUsuarios.push(getColumnModelUsuarios("usuXlnets80", "usuXlnets", true, false));
			columnsModelUsuarios.push(getColumnModelUsuarios("fAlta80", "fAlta80", false, true));
			columnsModelUsuarios.push(getColumnModelUsuarios("usuAlta80", "usuAlta80", false, true));
			columnsModelUsuarios.push(getColumnModelUsuarios("fModif80", "fModif80", false, true));
			columnsModelUsuarios.push(getColumnModelUsuarios("usuModif80", "usuModif80", false, true));
			columnsModelUsuarios.push(getColumnModelUsuarios("email80", "email80", true, false));
			columnsModelUsuarios.push(getColumnModelUsuarios("tlfno80", "tlfno80", true, false));
			columnsModelUsuarios.push(getColumnModelUsuarios("puesto80", "puesto80", false, true));
			columnsModelUsuarios.push(getColumnModelUsuarios("fBaja80", "fBaja80", true, false));

			return columnsModelUsuarios;
		};

		const getColumnsDefsUsuarios = function () {
			return [ 
			];
		};
		
		const getCustomButtonsUsuarios = function () {
			let customButonsUsuarios = [];	
			
			const FN_editarUsuario = {};
			const FN_darBajaUsuario = {};
			const FN_deshacerBajaUsuario = {};
			FN_editarUsuario.test  = function(){
				const selectedRows  = $("#usuarios").rup_table("getSelectedRows");	
				// 1 seleccionado
				if ( selectedRows == undefined || selectedRows.length == undefined) {
					return true;
				}
				return false;
			};
			FN_darBajaUsuario.test  = function(){
				const selectedRows  = $("#usuarios").rup_table("getSelectedRows");	
				// 1 seleccionado
				if ( selectedRows == undefined || (selectedRows.length == undefined && (selectedRows.fBaja80 == undefined || selectedRows.fBaja80 == null))) {
					return true;
				}
				return false;
			};
			FN_deshacerBajaUsuario.test  = function(){
				const selectedRows  = $("#usuarios").rup_table("getSelectedRows");	
				// 1 seleccionado
				if ( selectedRows == undefined || (selectedRows.length == undefined && (selectedRows.fBaja80 != undefined || selectedRows.fBaja80 != null))) {
					return true;
				}
				return false;
			};
			const anadirButton = {
					text: function () {
						return $.rup.i18n.app.botonera.add;
					},
					id: 'anadirUsuario', // Campo obligatorio si se quiere usar desde el contextMenu
					className: 'btn-material-primary-high-emphasis table_toolbar_btnView',
					icon: "mdi-plus",
					displayRegex: /^\d+$/,			
					insideContextMenu: true, 
					//type: 'view',
					action: function (e, dt) {
						usuarios_dialog.rup_dialog("open");
						const divTitleDialog = $("div[aria-describedby='usuarios_detail_div'] .ui-dialog-title");
						divTitleDialog.html('<i>'+$.rup.i18n.base.rup_table.toolbar.add+'</i>');
						$("#idUsuario80_usuarios_detail_table").val("");
						usuarios_dialog_feedback.rup_feedback("close");
						
						$("#identificador80_usuarios_detail_table").prop("readonly", false);
						$("#nombre80_usuarios_detail_table").prop("readonly", true);
						$("#apellidos80_usuarios_detail_table").prop("readonly", true);
						$("#usuXlnets80_usuarios_detail_table").prop("readonly", true);
						$("#tlfno80_usuarios_detail_table").prop("readonly", true);
						$("#email80_usuarios_detail_table").prop("readonly", true);
						$("#baja_usuarios_detail_table").prop("disabled", true);
						$("#baja_usuarios_detail_table_div").hide();
						$("#buscarUsuarioBtn").show();
					}				
			};	
			customButonsUsuarios.push(anadirButton);
			
			const editButton = {
					text: function () {
						return $.rup.i18n.app.botonera.edit;
					},
					id: 'editarUsuario', // Campo obligatorio si se quiere usar desde el contextMenu
					className: 'btn-material-primary-high-emphasis table_toolbar_btnView',
					icon: "mdi-playlist-edit",
					displayRegex: FN_editarUsuario,			
					insideContextMenu: true, 
					//type: 'view',
					action: function (e, dt) {
						$.rup_ajax({
				              url: $.rup.CTX_PATH +"usuarios/"+ $('#usuarios').rup_table('getSelectedRows')['idUsuario80'],
				              type: "GET",            
				              dataType: 'json',
				              contentType: 'application/json',
				              beforeSend: function() {
				            	  Ad74aUtils.bloquearInterfaz();
				              },
				              complete: function() {
				            	  Ad74aUtils.desBloquearInterfaz();
				              },
				              success: function (data){
				              	 usuarios_dialog.rup_dialog("open");
				              	 const divTitleDialog = $("div[aria-describedby='usuarios_detail_div'] .ui-dialog-title");
								 divTitleDialog.html('<i>'+$.rup.i18n.base.rup_table.toolbar.edit+'</i>');
				              	 $.rup_utils.populateForm($.rup_utils.jsontoarray(data), "#usuarios_detail_form");
				              	 
				              	 $("#identificador80_usuarios_detail_table").prop("readonly", true);
								 $("#tlfno80_usuarios_detail_table").prop("readonly", false);
								 $("#email80_usuarios_detail_table").prop("readonly", false);
								 $("#baja_usuarios_detail_table").prop("disabled", true);
								 $("#baja_usuarios_detail_table_div").hide();
								 $("#buscarUsuarioBtn").hide();
				              },
				              error: function(error){ 
				                  alert("error")
				              }
				        });
					}		
			};
			customButonsUsuarios.push(editButton);
			
			const darBajaButton = {
					text: function () {
						return $.rup.i18n.app.botonera.darBaja;
					},
					id: 'darBajaUsuario', // Campo obligatorio si se quiere usar desde el contextMenu
					className: 'btn-material-primary-high-emphasis table_toolbar_btnView',
					icon: "mdi-trash-can-outline",
					displayRegex: FN_darBajaUsuario,			
					insideContextMenu: true, 
					//type: 'view',
					action: function (e, dt) {
						Ad74aUtils.openConfirmDialog(
							'dialogConfirm', 
							$.rup.i18n.app.dialog.title.darBajaUsuario, 
							$.rup.i18n.app.dialog.label.darBajaUsuario,  
							[
					        	{
					                text: $.rup.i18n.app.botonera.cancelar,
					                click: function () { 
					                    $('#dialogConfirm').rup_dialog('close'); 
					                },
					                btnType: $.rup.dialog.LINK
					            },
						        {
						            text: $.rup.i18n.app.botonera.aceptar,
						            id: "btnDarBajaUsuario",
						            class: 'btn-material btn-material-primary-high-emphasis',
						            click: function () { 
						            	$.rup_ajax({
								              url: $.rup.CTX_PATH +"usuarios/baja/"+ $('#usuarios').rup_table('getSelectedRows')['idUsuario80'],
								              type: "PUT",            
								              dataType: 'json',
								              contentType: 'application/json',
								              beforeSend: function() {
								            	  Ad74aUtils.bloquearInterfaz();
								              },
								              complete: function() {
								            	  Ad74aUtils.desBloquearInterfaz();
								            	  $('#dialogConfirm').rup_dialog('close');
								              },
								              success: function (data){
								              	  $('#rup_feedback_usuarios').rup_feedback("option", "delay", null);
								              	  $('#rup_feedback_usuarios').rup_feedback("set", $.rup.i18n.app.feedback.darBajaOk, "ok");
								              	  $('#usuarios').rup_table("reload");
								              },
								              error: function(error){ 
								                  alert("error")
								              }
								        });
						            }
						        }
					        ]
						);
					}		
			};
			customButonsUsuarios.push(darBajaButton);

			const deshacerBajaButton = {
					text: function () {
						return $.rup.i18n.app.botonera.deshacerBaja;
					},
					id: 'deshacerBajaUsuario', // Campo obligatorio si se quiere usar desde el contextMenu
					className: 'btn-material-primary-high-emphasis table_toolbar_btnView',
					icon: "mdi-undo",
					displayRegex: FN_deshacerBajaUsuario,			
					insideContextMenu: true, 
					//type: 'view',
					action: function (e, dt) {
						Ad74aUtils.openConfirmDialog(
							'dialogConfirm', 
							$.rup.i18n.app.dialog.title.deshacerBajaUsuario, 
							$.rup.i18n.app.dialog.label.deshacerBajaUsuario,  
							[
					        	{
					                text: $.rup.i18n.app.botonera.cancelar,
					                click: function () { 
					                    $('#dialogConfirm').rup_dialog('close'); 
					                },
					                btnType: $.rup.dialog.LINK
					            },
						        {
						            text: $.rup.i18n.app.botonera.aceptar,
						            id: "btnDeshacerBajaUsuario",
						            class: 'btn-material btn-material-primary-high-emphasis',
						            click: function () { 
						            	
						            	const usuario = $("#usuarios").rup_table("getSelectedRows");
						            	
						            	$.rup_ajax({
								              url: $.rup.CTX_PATH +"usuarios/deshacerbaja",
								              type: "PUT",            
								              dataType: 'json',
								              contentType: 'application/json',
								              data: JSON.stringify(usuario),  
								              beforeSend: function() {
								            	  Ad74aUtils.bloquearInterfaz();
								              },
								              complete: function() {
								            	  Ad74aUtils.desBloquearInterfaz();
								            	  $('#dialogConfirm').rup_dialog('close');
								              },
								              success: function (data){
								              	  $('#rup_feedback_usuarios').rup_feedback("option", "delay", null);
								              	  $('#rup_feedback_usuarios').rup_feedback("set", $.rup.i18n.app.feedback.deshacerBajaOk, "ok");
								              	  $('#usuarios').rup_table("reload");
								              },
								              error: function(error){ 
								                  alert(error.responseText)
								              }
								        });
						            }
						        }
					        ]
						);
					}		
			};
			customButonsUsuarios.push(deshacerBajaButton);

			return customButonsUsuarios;
		};

		$("#usuarios").rup_table({
			colReorder: {
				fixedColumnsLeft: 1
			},
			colModel: getColumnsModelUsuarios(),
			columnDefs: getColumnsDefsUsuarios(),
			primaryKey: "idUsuario80",
	     	filter:{
	  	  		id:"usuarios_filter_form",
	  	  		filterToolbar:"usuarios_filter_toolbar",
	  	  		collapsableLayerId:"usuarios_filter_fieldset",
	  	  		showHidden: true
	     	},
	     	createTooltipBody: false,// No muestra el tooltip automático de las columnas de la tabla
	   		select: {
	       		activate: true,
	       		deleteDoubleClick:true
	   		},
			buttons: {
				activate: true,
				blackListButtons: ['addButton', 'editButton', 'cloneButton', 'deleteButton', 'copyButton', 'pdfButton', 'odsButton', 'csvButton'],
				myButtons: getCustomButtonsUsuarios()
			},
			columnOrderArrows: {
			    showOnlyActive: false,
			    display: 'inline'
			},
			order: [[1, "asc"]]
		});
		
		const getColumnsModelUsuariosAyuntamiento = function(){
			const getColumnModelUsuariosAyuntamiento = function (name, index, editable, hidden, orderable) {
				return {
					name: name,
					index: index,
					editable: editable,
					hidden: hidden,
					orderable: orderable
				}
			};
			let columnsModelUsuariosAyuntamiento = [];
			columnsModelUsuariosAyuntamiento.push(getColumnModelUsuariosAyuntamiento("idUsuarioAyto81", "idUsuarioAyto81", false, true));
			columnsModelUsuariosAyuntamiento.push(getColumnModelUsuariosAyuntamiento("usuarios.idUsuario80", "usuarios.idUsuario80", false, true, false));
			columnsModelUsuariosAyuntamiento.push(getColumnModelUsuariosAyuntamiento("ayuntamientos.descAyuntamiento", "ayuntamientos.descAyuntamiento", true, false));
			columnsModelUsuariosAyuntamiento.push(getColumnModelUsuariosAyuntamiento("ayuntamientos.mancomunidades.desc", "ayuntamientos.mancomunidades.desc", true, false));
			columnsModelUsuariosAyuntamiento.push(getColumnModelUsuariosAyuntamiento("ayuntamientos.desc", "ayuntamientos.desc", true, false));
			columnsModelUsuariosAyuntamiento.push(getColumnModelUsuariosAyuntamiento("ayuntamientos.provincia.descProvincia", "ayuntamientos.provincia.descProvincia", true, false));
			columnsModelUsuariosAyuntamiento.push(getColumnModelUsuariosAyuntamiento("ayuntamientos.municipio.descripcion", "ayuntamientos.municipio.descripcion", true, false));
			columnsModelUsuariosAyuntamiento.push(getColumnModelUsuariosAyuntamiento("fAlta81", "fAlta81", false, true));
			columnsModelUsuariosAyuntamiento.push(getColumnModelUsuariosAyuntamiento("usuAlta81", "usuAlta81", false, true));
			columnsModelUsuariosAyuntamiento.push(getColumnModelUsuariosAyuntamiento("ayuntamientos.listaUnidadesBase", "ayuntamientos.listaUnidadesBase", true, false));
			return columnsModelUsuariosAyuntamiento;
		};

		const getColumnsDefsUsuariosAyuntamiento = function () {
			return [ 
						
				
				
				
				{
					"targets": 9,
					"render": function ( data, type, row, meta ) {	
						
						if( row.ayuntamientos.unidadesBase !=null ){
							 var list = document.createElement('ul');
							  for (var i = 0; i < row.ayuntamientos.unidadesBase.length; i++) {
							        // Create the list item:
							        var item = document.createElement('li');

							        // Set its contents:
							        item.appendChild(document.createTextNode(row.ayuntamientos.unidadesBase[i].desc));

							        // Add it to the list:
							        list.appendChild(item);
							    }

							    // Finally, return the constructed list:
							    return list.outerHTML;
					}
						return '';
				}
				}
			];
		};
		
		const getCustomButtonsUsuariosAyuntamiento = function () {
			let customButonsUsuariosAyuntamiento = [];	
			
			const FN_altaUsuarioAyuntamiento = {};
			FN_altaUsuarioAyuntamiento.test  = function(){
				const selectedRows  = $("#usuarios").rup_table("getSelectedRows");	
				// 1 seleccionado
				if ( selectedRows == undefined || selectedRows.length == undefined) {
					return true;
				}
				return false;
			};
			
			const FN_borrarUsuarioAyuntamiento = {};
			FN_borrarUsuarioAyuntamiento.test  = function(){
				const selectedRows  = $("#usuariosAyuntamiento").rup_table("getSelectedRows");	
				// 1 seleccionado
				if ( selectedRows == undefined || selectedRows.length == undefined) {
					return true;
				}
				return false;
			};
			const FN_editarUsuarioAyuntamiento = {};
			FN_editarUsuarioAyuntamiento.test  = function(){
				const selectedRows  = $("#usuariosAyuntamiento").rup_table("getSelectedRows");	
				// 1 seleccionado
				if ( selectedRows == undefined || selectedRows.length == undefined) {
					return true;
				}
				return false;
			};
			const anadirButton = {
					text: function () {
						return $.rup.i18n.app.botonera.add;
					},
					id: 'anadirUsuarioAyuntamiento', // Campo obligatorio si se quiere usar desde el contextMenu
					className: 'btn-material-primary-high-emphasis table_toolbar_btnView',
					icon: "mdi-plus",
					displayRegex: FN_altaUsuarioAyuntamiento,					
					insideContextMenu: true, 
					//type: 'view',
					action: function (e, dt) {
						usuariosAyuntamiento_dialog.rup_dialog("open");
						const divTitleDialog = $("div[aria-describedby='usuariosAyuntamiento_detail_div'] .ui-dialog-title");
						divTitleDialog.html('<i>'+$.rup.i18n.base.rup_table.toolbar.add+'</i>');
						$("#idUsuarioAyto81_usuariosAyuntamiento_detail_table").val("");
						if ($("#usuarioAyuntamiento_usuariosAyuntamiento_detail_table").is(":checked")){
							$("#mancomunidades_detail_table_div").hide();
							$("#ayuntamientos_detail_table_div").show();
						}else{
							$("#mancomunidades_detail_table_div").show();
							$("#ayuntamientos_detail_table_div").hide();
						}
						
						var usuariosAyuntamientos = $("#usuariosAyuntamiento").DataTable().rows().data();
						if (usuariosAyuntamientos.length > 0){
							var provincia = usuariosAyuntamientos[0].ayuntamientos.provincia.codProvincia;
							$("#codProvincia_usuariosAyuntamiento_detail_table").rup_combo("select",provincia);
							$("#codProvincia_usuariosAyuntamiento_detail_table").rup_combo('change');
							$("#codProvincia_usuariosAyuntamiento_detail_table").rup_combo("disable");
						}else{
							$("#codProvincia_usuariosAyuntamiento_detail_table").rup_combo("enable");
						}
						
						usuariosAyuntamiento_dialog_feedback.rup_feedback("close");
					}				
			};	
			customButonsUsuariosAyuntamiento.push(anadirButton);
			
			const editarButton = {
					text: function () {
						return $.rup.i18n.app.botonera.edit;
					},
					id: 'editarUsuarioAyuntamiento', // Campo obligatorio si se quiere usar desde el contextMenu
					className: 'btn-material-primary-high-emphasis table_toolbar_btnView',
					icon: "mdi-playlist-edit",
					displayRegex: FN_borrarUsuarioAyuntamiento,
					insideContextMenu: true, 
					//type: 'view',
					action: function (e, dt) {
						$("#usuariosAyuntamiento_detail_edit_div").rup_dialog("open");
						const divTitleDialog = $("div[aria-describedby='usuariosAyuntamiento_detail_div'] .ui-dialog-title");
						divTitleDialog.html('<i>'+$.rup.i18n.base.rup_table.toolbar.edit+'</i>');
						$('#tipo_edit_table').hide();
						
						var usuariosAyuntamientos = $("#usuariosAyuntamiento").DataTable().rows().data();
						if (usuariosAyuntamientos.length > 0){
							var provincia = usuariosAyuntamientos[0].ayuntamientos.provincia.codProvincia;
							$("#codProvincia_usuariosAyuntamiento_detail_table").rup_combo("select",provincia);
							$("#codProvincia_usuariosAyuntamiento_detail_table").rup_combo('change');
							$("#codProvincia_usuariosAyuntamiento_detail_table").rup_combo("disable");
							
							var ayuntamiento = $('#usuariosAyuntamiento').rup_table("getSelectedRows")['ayuntamientos']['idAyuntamiento31']
							if(ayuntamiento!=null){
								$('#idAyuntamiento31_usuariosAyuntamiento_edit_table').rup_combo("select",ayuntamiento);
								$("#idAyuntamiento31_usuariosAyuntamiento_edit_table").rup_combo("disable");
								$('#mancomunidades_edit_table_div').hide();
								
								$('#usuarioAyuntamiento_usuariosAyuntamiento_edit_table').prop("disabled",true);
								$('#usuarioMancomunidad_usuariosAyuntamiento_edit_table').prop("disabled",true);
							}
							else{
								$('#idMancomunidad49_usuariosAyuntamiento_edit_table').rup_combo("select",ayuntamiento);
								$("#idAyuntamiento31_usuariosAyuntamiento_edit_table").rup_combo("disable");
								$('#mancomunidades_edit_table_div').hide();
								
								$('#usuarioAyuntamiento_usuariosAyuntamiento_edit_table').prop("disabled",true);
								$('#usuarioMancomunidad_usuariosAyuntamiento_edit_table').prop("disabled",true);
							}
						}else{
							$("#codProvincia_usuariosAyuntamiento_detail_table").rup_combo("enable");
						}
						
						//llamada ajax para recoger los datos de la tabla
						$.rup_ajax({
				              url: $.rup.CTX_PATH +"usuariosayuntamiento/obtenerDatosUsuarioAyuntamiento/"+$('#usuariosAyuntamiento').rup_table("getSelectedRows")['idUsuarioAyto81'],
				              type: "post",
				              dataType: 'json',
				              contentType: 'application/json',
								beforeSend: function() {
									Ad74aUtils.bloquearInterfaz();
				                },
				                complete: function() {
				                	Ad74aUtils.desBloquearInterfaz();
				                },
				              success: function (data){
				            	  $.rup_utils.populateForm($.rup_utils.jsontoarray(data), "#usuariosAyuntamiento_edit_form");
								if(data.ayuntamientos!=null){
					            	  if(data.ayuntamientos.unidadesBase!=null){
									 $('#idUnidadBase92_usuariosAyuntamiento_edit_table').val(data.ayuntamientos.unidadesBase.idUnidadBase92);
									$('#idUnidadBase92_usuariosAyuntamiento_edit_table').rup_combo({
										rowStriping: true,
										ordered: true,
										multiselect: true,
											multiselectOptions: {
										        checkAllText: 'Seleccionar todos',
										        uncheckAllText: 'Deseleccionar todos',
										        noneSelectedText: 'Seleccionar...',
										        
										    },
										customClasses: ['select-material'],
										source: $.rup.CTX_PATH + 'unidadesbase/obtenerUB/'+data.ayuntamientos.municipio.codMunicipio+'/'+data.ayuntamientos.municipio.codProvincia,
										sourceParam: {value: "idUnidadBase92", label:"desc"},
										loadFromSelect:false,
										onLoadSuccess:()=>{
											let UnidadesBaseUsuario = $('#usuariosAyuntamiento').rup_table("getSelectedRows")['ayuntamientos']['unidadesBase'];
											let arrayUB = [];
											for(let i =0; i<UnidadesBaseUsuario.length; i++){
												arrayUB.push(UnidadesBaseUsuario[i].idUnidadBase92);
											}
											$('#idUnidadBase92_usuariosAyuntamiento_edit_table').rup_combo("select",arrayUB);
		                                    $("#idUnidadBase92_usuariosAyuntamiento_edit_table").multiselect("refresh");
										}
									});
									
								}
									if(data.ayuntamientos.mancomunidades.idMancomunidad49!=null){
										$("#mancomunidades_edit_table_div").show();
					              }else{
					            	  $("#mancomunidades_edit_table_div").hide();
					              }
									}
				              },
				              error: function(error){
								alert("error")
				              }
				        });
						//rellenar los datos y ocultar los que no hagan falta (mancomunidad/ayuntamiento)
						//llamar al controller de usuariosAyuntamiento 
						if ($("#usuarioAyuntamiento_usuariosAyuntamiento_detail_table").is(":checked")){
							$("#mancomunidades_detail_table_div").hide();
							$("#ayuntamientos_detail_table_div").show();
						}else{
							$("#mancomunidades_detail_table_div").show();
							$("#ayuntamientos_detail_table_div").hide();
						}
						
						var usuariosAyuntamientos = $("#usuariosAyuntamiento").DataTable().rows().data();
						if (usuariosAyuntamientos.length > 0){
							var provincia = usuariosAyuntamientos[0].ayuntamientos.provincia.codProvincia;
							$("#codProvincia_usuariosAyuntamiento_detail_table").rup_combo("select",provincia);
							$("#codProvincia_usuariosAyuntamiento_detail_table").rup_combo('change');
							$("#codProvincia_usuariosAyuntamiento_detail_table").rup_combo("disable");
						}else{
							$("#codProvincia_usuariosAyuntamiento_detail_table").rup_combo("enable");
						}
						
						$("#usuariosAyuntamiento_detail_edit_feedback").rup_feedback("close");
					}		
			};
			customButonsUsuariosAyuntamiento.push(editarButton);

			
			const eliminarButton = {
					text: function () {
						return $.rup.i18n.app.botonera.eliminar;
					},
					id: 'eliminarUsuarioAyuntamiento', // Campo obligatorio si se quiere usar desde el contextMenu
					className: 'btn-material-primary-high-emphasis table_toolbar_btnView',
					icon: "mdi-delete",
					displayRegex: FN_borrarUsuarioAyuntamiento,
					insideContextMenu: true, 
					//type: 'view',
					action: function (e, dt) {
						Ad74aUtils.openConfirmDialog(
								'dialogConfirm', 
								$.rup.i18n.app.dialog.title.borrarAyuntamiento, 
								$.rup.i18n.app.dialog.label.borrarAyuntamiento,  
								[
						        	{
						                text: $.rup.i18n.app.botonera.cancelar,
						                click: function () { 
						                    $('#dialogConfirm').rup_dialog('close'); 
						                },
						                btnType: $.rup.dialog.LINK
						            },
							        {
							            text: $.rup.i18n.app.botonera.aceptar,
							            id: "btnEliminarUsuarioAyuntamiento",
							            class: 'btn-material btn-material-primary-high-emphasis',
							            click: function () { 
							            	$.rup_ajax({
									              url: $.rup.CTX_PATH +"usuariosayuntamiento/"+ $('#usuariosAyuntamiento').rup_table('getSelectedRows')['idUsuarioAyto81'],
									              type: "DELETE",            
									              dataType: 'json',
									              contentType: 'application/json',
									              beforeSend: function() {
									            	  Ad74aUtils.bloquearInterfaz();
									              },
									              complete: function() {
									            	  Ad74aUtils.desBloquearInterfaz();
									            	  $('#dialogConfirm').rup_dialog('close');
									              },
									              success: function (data){
									              	  $('#rup_feedback_usuariosAyuntamiento').rup_feedback("option", "delay", null);
									              	  $('#rup_feedback_usuariosAyuntamiento').rup_feedback("set", $.rup.i18n.app.feedback.eliminadoOk, "ok");
									              	  $('#usuariosAyuntamiento').rup_table("reload");
									              },
									              error: function(error){ 
									                  alert("error")
									              }
									        });
							            }
							        }
						        ]
							);
					}		
			};
			customButonsUsuariosAyuntamiento.push(eliminarButton);
			
			return customButonsUsuariosAyuntamiento;
		};
		
		$("#usuariosAyuntamiento").rup_table({
			loadOnStartUp: false,
			colReorder: {
				fixedColumnsLeft: 0
			},
			colModel: getColumnsModelUsuariosAyuntamiento(),
			columnDefs: getColumnsDefsUsuariosAyuntamiento(),
			primaryKey: "idUsuarioAyto81",
	     	filter:{
	  	  		id:"usuariosAyuntamiento_filter_form",
	  	  		filterToolbar:"usuariosAyuntamiento_filter_toolbar",
	  	  		collapsableLayerId:"usuariosAyuntamiento_filter_fieldset",
	  	  		showHidden: true
	     	},
	     	createTooltipBody: false,// No muestra el tooltip automático de las columnas de la tabla
	   		select: {
	       		activate: true,
	       		deleteDoubleClick:true
	   		},
			buttons: {
				activate: true,
				blackListButtons: ['addButton', 'editButton', 'cloneButton', 'deleteButton', 'copyButton','pdfButton', 'odsButton', 'csvButton'],
				myButtons: getCustomButtonsUsuariosAyuntamiento()
			},
			columnOrderArrows: {
			    showOnlyActive: false,
			    display: 'inline'
			},
			order: [[0, "asc"]],
			masterDetail: {
	            master: '#usuarios',
	            masterPrimaryKey: 'usuarios.idUsuario80'
	    	},
	    	seeker : {}
		});
	}
	
});
