var filaSeleccionadaEstablecimientos;

jQuery(function($){
	
	if($("#idCampainaHeader").val() != null && $("#idCampainaHeader").val() != ""){
		$("#menuBusquedaCampainas").addClass("active");
	} else if($("#idInspeccionHeader").val() != null && $("#idInspeccionHeader").val() != ""){
		$("#menuInspecciones").addClass("active");
	}	
	
	//Feedback tabla establecimientos
	$("#establecimientosRegistrados_feedback").rup_feedback({
		gotoTop: false,
		block: false,
		delay: 8000,
		fadeSpeed: 500
	});
	
	//Combo mostrar filtro
	$("#mostrarFiltro").rup_combo({
		loadFromSelect: true,
		orderedByValue: true,
		width: 335
	});
	
	//Combo tipo establecimiento filtro
	$("#tipoEstablecimientoComboFiltro").rup_combo({
		blank: "",
		source: "/ab79WebAppWar/tiposestablecimiento",
		sourceParam: {
			label: "descripcionDecorator",
			value: "idTipoEstablecimiento"
		},
		orderedByValue: true,
		width: 343
	});
	
	//Combo categorías de establecimiento filtro
	$("#categoriaComboFiltro").rup_combo({
		parent: ["tipoEstablecimientoComboFiltro"],
		blank: "",
		source: "/ab79WebAppWar/categorias",
		sourceParam: {
			label: "descripcionDecorator",
			value: "idCategorias"
		},
		orderedByValue: true,
		width: 343
	});
	
	//Combo modalidades de establecimiento filtro
	$("#modalidadComboFiltro").rup_combo({
		parent: ["tipoEstablecimientoComboFiltro"],
		blank: "",
		source: "/ab79WebAppWar/modalidades",
		sourceParam: {
			label: "descripcionDecorator",
			value: "idModalidad"
		},
		orderedByValue: true,
		width: 343
	});
	
	//Combo especialidades filtro
	$("#especialidadComboFiltro").rup_combo({
		parent: ["tipoEstablecimientoComboFiltro"],
		blank: "",
		source: "/ab79WebAppWar/especialidades",
		sourceParam: {
			label: "descripcionDecorator",
			value: "idEspecialidad"
		},
		orderedByValue: true,
		width: 343
	});
	
	//Combo grupos filtro
	$("#grupoComboFiltro").rup_combo({
		parent: ["tipoEstablecimientoComboFiltro"],
		blank: "",
		source: "/ab79WebAppWar/grupos",
		sourceParam: {
			label: "descripcionDecorator",
			value: "idGrupo"
		},
		orderedByValue: true,
		width: 343
	});
	
	//Combo provincias filtro
	$("#provinciaComboFiltro").rup_combo({
		blank: "",
		source: "/ab79WebAppWar/nora/provincias",
		sourceParam: {
			label: "dsO",
			value: "id"
		},
		select: function(){
			$("#idProvinciaFiltro").val($("#provinciaComboFiltro").val());
			if($("#provinciaComboFiltro").rup_combo("getRupValue") === ""){
				$("#idMunicipioFiltro").val("");
			}
		},
		width: 250
	});
	
	//Combo municipios filtro
	$("#municipioComboFiltro").rup_combo({
		parent: ["provinciaComboFiltro"],
		blank: "",
		source: "/ab79WebAppWar/nora/municipios",
		sourceParam: {
			label: "dsO",
			value: "id"
		},
		select: function(){
			$("#idMunicipioFiltro").val($("#municipioComboFiltro").val());
		},
		width: 250
	});
	
	//Combo localidades filtro
	$("#localidadComboFiltro").rup_combo({
		parent: ["provinciaComboFiltro", "municipioComboFiltro"],
		blank: "",
		source: "/ab79WebAppWar/nora/localidades",
		sourceParam: {
			label: "dsO",
			value: "id"
		},
		width: 290
	});
	
	//Placeholder de los campos fech según el idioma
	if("eu" === $.rup_utils.get("language")){
		$(".campoFecha").each(function(){
			$("#"+this.id).attr("placeholder", "yyyy/mm/dd");
		});
	} else{
		$(".campoFecha").each(function(){
			$("#"+this.id).attr("placeholder", "dd/mm/yyyy");
		});
	}
	
	//Cambiar el foco de los input del número de registro
	
	$("#registroUno").keyup(function(e) {
		var code = (e.keyCode ? e.keyCode : e.which);
		if(code !== 9 && code !== 16){
			$("#registroUno").val($("#registroUno").val().toUpperCase());
			if($("#registroUno").val().length == 1){
				$("#registroDos").focus();
			}
		}
	});
	
	$("#registroDos").keyup(function(e) {
		var code = (e.keyCode ? e.keyCode : e.which);
		if(code !== 9 && code !== 16){
			$("#registroDos").val($("#registroDos").val().toUpperCase());
			if($("#registroDos").val().length == 2){
				$("#registroTres").focus();
			}
		}
	});
	
	$("#registroTres").focusout(function() {
		if($("#registroTres").val() !== ""){
			$("#registroTres").val(pad($("#registroTres").val(), 5));
		}
	});
	
	//Realizar búsqueda al hacer click en la tecla 'enter'
	$("input").keypress(function (e) {
		if (e.which === 13) {
			$("#btnBuscarEstablecimientos").click();
		}
	});
	
	//TABLA ESTABLECIMIENTOS REGISTRADOS
	$("#establecimientosRegistrados").rup_datatable({
		primaryKey: "idEstablecimiento",
		loadOnStartUp: true,
		pagingType: "full_numbers",
		dom: 'rt<"bottom"lip>',
		pageLength : 5,
		lengthMenu: [5, 10, 25, 50],
		colReorder: false,
		autoWidth: true,
		filter:{
  	  		id:"establecimientosRegistrados_filter_form",
  	  		filterToolbar:"establecimientosRegistrados_filter_toolbar",
  	  		collapsableLayerId:"establecimientosRegistrados_filter_fieldset"
     	},
     	columnDefs: [
		    {
		       targets: [0],
		       visible: false,
		       orderable: false
		    },
		    {
		    	targets: [4],
		    	className: "text-center"
		    },
		    {
		    	targets: [7],
		        className: "text-center all width10",
		    	defaultContent: "<input type='checkbox' class='establecimientosCheck'/>"
		    }
		   	
		],
		initComplete: function(){
			
			var tablaEstablecimientos = $("#establecimientosRegistrados").DataTable();
			
			if($("#idCampainaHeader").val() != null && $("#idCampainaHeader").val() != ""){
				tablaEstablecimientos.columns( [7] ).visible( true );
			} else{
				tablaEstablecimientos.columns( [7] ).visible( false );
			}
			
			var spanM = document.createElement("span"); 
			var mostrando = document.createTextNode($.rup.i18n.app.paginador.mostrando); 
			spanM.appendChild(mostrando);
			spanM.className = "mostrando";
			var spanR = document.createElement("span"); 
			var registros = document.createTextNode($.rup.i18n.app.paginador.registros); 
			spanR.appendChild(registros);
			spanR.className = "registros";
			
			var longitudTabla = document.getElementById("establecimientosRegistrados_length"); 
			longitudTabla.appendChild(spanM); 
			longitudTabla.appendChild(spanR);
			
			$("#botoneraTablaEstablecimientos").css("display", "none");
			$("#establecimientosRegistrados_wrapper").css("display", "none");
			
			desbloquearInterfaz();
			
		}
	});
	
	var tablaEstablecimientos = $("#establecimientosRegistrados").DataTable();
	
	if($("#idCampainaHeader").val() != null && $("#idCampainaHeader").val() != ""){
	
		//Fila seleccionada
		$('#establecimientosRegistrados tbody').on( 'click', 'tr', function () {
			
			if ( $(this).hasClass('selected') ) {
		        $(this).removeClass('selected');
				$(this).find('input').prop('checked',false);
		    }
		    else {
		        $(this).addClass('selected');
				$(this).find('input').prop('checked',true);
		    }
	    });
		
		//Seleccinar todos los registros mediante el checkbox de la cabecera
		$("#establecimientosCheckTodos").click(function() {
			if( $('#establecimientosCheckTodos').prop('checked') ) {
				tablaEstablecimientos.$('tr').addClass('selected');
				$('.establecimientosCheck').prop('checked',true);
			}else{
				tablaEstablecimientos.$('tr.selected').removeClass('tr-highlight');
				tablaEstablecimientos.$('tr.selected').removeClass('selected');
				$('.establecimientosCheck').prop('checked',false);
			}
		});
		
		//Marcar / desmarcar los checkbox al clickar en la fila
		$(document).on('click', '.establecimientosCheck', function () {
			if($(this).prop('checked')){	
				$(this).parent().parent().addClass('selected');
				$(this).prop('checked',true);
			}else{
				$(this).parent().parent().removeClass('selected');
				$(this).prop('checked',false);
			}
		});
		
	} else{
		//Fila seleccionada
		$('#establecimientosRegistrados tbody').on( 'click', 'tr', function () {
			filaSeleccionadaEstablecimientos = tablaEstablecimientos.row(this).data();
			if ( $(this).hasClass('selected') ) {
		        $(this).removeClass('selected');
		    
			}else {
		    	tablaEstablecimientos.$('tr.selected').removeClass('selected');
		        $(this).addClass('selected');
		    }
		});
	}
	
	//Botón buscar establecimientos
	$("#btnBuscarEstablecimientos").click(function(){
		
		$("#identificadorEstablecimientoFiltro").val($("#registroUno").val() + $("#registroDos").val() + $("#registroTres").val());
		$("#idCampaina_filter_table").val($("#idCampainaFilter").val());
    	$("#identificadorEstablecimiento_filter_table").val($("#identificadorEstablecimientoFiltro").val());
    	$("#establecimiento_filter_table").val($("#establecimientoFiltro").val());
    	$("#mostrar_filter_table").val($("#mostrarFiltro").val());
    	$("#idTipoEstablecimiento_filter_table").val($("#tipoEstablecimientoComboFiltro").val());
    	$("#idCategorias_filter_table").val($("#categoriaComboFiltro").val());
    	$("#idModalidad_filter_table").val($("#modalidadComboFiltro").val());
    	$("#idEspecialidad_filter_table").val($("#especialidadComboFiltro").val());
    	$("#idGrupo_filter_table").val($("#grupoComboFiltro").val());
    	$("#fechaAperturaDesde_filter_table").val($("#fechaAperturaDesdeFiltro").val());
    	$("#fechaAperturaHasta_filter_table").val($("#fechaAperturaHastaFiltro").val());
    	$("#fechaUltinspeccionDesde_filter_table").val($("#fechaUltInspeccionDesdeFiltro").val());
    	$("#fechaUltinspeccionHasta_filter_table").val($("#fechaUltInspeccionHastaFiltro").val());
    	$("#fechaUltmodificacionDesde_filter_table").val($("#fechaUltModificacionDesdeFiltro").val());
    	$("#provinciaCombo_filter_table").val($("#provinciaComboFiltro").val());
    	$("#municipioCombo_filter_table").val($("#municipioComboFiltro").val());
    	$("#localidadCombo_filter_table").val($("#localidadComboFiltro").val());
    	$("#calle_filter_table").val($("#calleFiltro").val());
    	$("#numero_filter_table").val($("#numeroFiltro").val());
    	$("#escalera_filter_table").val($("#escaleraFiltro").val());
    	$("#piso_filter_table").val($("#pisoFiltro").val());
    	$("#letra_filter_table").val($("#letraFiltro").val());
    	$("#codPostal_filter_table").val($("#codPostalFiltro").val());
    	$("#numeroIdentificacion_filter_table").val($("#numeroIdentificacionFiltro").val());
    	$("#nombreRazonSocial_filter_table").val($("#nombreRazonSocialFiltro").val());
    	$("#correoElectronico_filter_table").val($("#correoElectronicoFiltro").val());
    	$("#telefono_filter_table").val($("#telefonoFiltro").val());
		$("#establecimientosRegistrados_filter_filterButton").click();
		
		$("html, body").animate({ scrollTop: $(document).height() }, 1000);
		$("#botoneraTablaEstablecimientos").css("display","block");
    	$("#establecimientosRegistrados_wrapper").css("display","block");
	});
	
	//Volvemos a la pantalla de campañas de inspeccion
	$("#btnVolverBusquedaCampainas").click(function(){
		sessionStorage.setItem("btnVolverCampainasInspeccionClick", true);
		$("#menuBusquedaCampainas a")[0].click()
	});
	
	
	//Botón limpiar filtro
	$("#btnLimpiarEstablecimientos").click(function(){
		$(".comboFiltro").each(function(){
			$("#"+this.id).rup_combo("clear");
		});
		$("#formBusqedaEstablecimientosRegistrados")[0].reset();
	});
	
	//Botón asociar establecimientos (campañas)
	if($("#idCampainaHeader").val() != null && $("#idCampainaHeader").val() != ""){
		$("#btnAsociarEstablecimientoCampainas").click(function(){
			var datosTabla = tablaEstablecimientos.rows([".selected"]).data().toArray();
			
			if(datosTabla.length === 0){
				$("#establecimientosRegistrados_feedback").rup_feedback("set", $.rup.i18n.app.feedback.error.lineaNoSeleccionada2, "alert");
			} else{
				$.ajax({
					type:"POST",
					url: CTX_PATH + "establecimientosregistrados/asociarEstablecimientos/" + $("#idCampainaHeader").val(),
					contentType: "application/json",
					data: JSON.stringify(datosTabla),
					success: function(){
						var asociarOk = $.rup.i18n.app.establecimientos.asociarOk;
						asociarOk = asociarOk.replace("{0}", $("#identificadorCampainaHeader").val());
						$("#establecimientosRegistrados_feedback").rup_feedback("set", asociarOk, "ok");
						tablaEstablecimientos.ajax.reload();
					},
					error: function(){
						$("#establecimientosRegistrados_feedback").rup_feedback("set", $.rup.i18n.app.establecimientos.asociarError, "error")
					}
				});
			}
			
		});
	} else {
		$("#btnAsociarEstablecimientoCampainas").click(function(){
			var datosTabla = tablaEstablecimientos.rows([".selected"]).data().toArray();
			
			if(datosTabla.length === 0){
				$("#establecimientosRegistrados_feedback").rup_feedback("set", $.rup.i18n.app.feedback.error.lineaNoSeleccionada, "alert");
			} else{
				$.ajax({
					type:"POST",
					url: CTX_PATH + "establecimientosregistrados/asociarEstablecimientoInspeccion/" + $("#idInspeccionHeader").val(),
					contentType: "application/json",
					dataType:"json",
					data: JSON.stringify(datosTabla[0]),
					success: function(data){
						window.location = CTX_PATH + data;
					},
					error: function(){
						$("#establecimientosRegistrados_feedback").rup_feedback("set", $.rup.i18n.app.establecimientos.asociarError, "error")
					}
				});
			}
			
		});
	}
	
	
	//Botón exportar a Excel
	$("#btnExportarExcelEstablecimientos").click(function(){
		
		var orderColumnIndex = tablaEstablecimientos.order()[0][0];
		var sord = tablaEstablecimientos.order()[0][1];
		var sidx = tablaEstablecimientos.settings().init().columns[orderColumnIndex].sidx;
		
		var form = document.getElementById("establecimientosRegistrados_filter_form");
		form.method = "POST";
		
		if($("#idCampainaHeader").val() !== null && $("#idCampainaHeader").val() !== ""){
			form.action = CTX_PATH + "establecimientosregistrados/exportarExcel/" + sidx + "/" + sord + "/" + $("#idCampainaHeader").val();
		} else{
			form.action = CTX_PATH + "establecimientosregistrados/exportarExcel/" + sidx + "/" + sord;
		}
		
		form.submit();
		
	});
		
});

//Buscar la provincia a partir del id introducido
function buscarComboProvincia(){
	$("#provinciaComboFiltro").rup_combo("setRupValue", pad($("#idProvinciaFiltro").val(), 2));
}

//Buscar el municipio a partir del id introducido
function buscarComboMunicipio(){
	$("#municipioComboFiltro").rup_combo("setRupValue", pad($("#idMunicipioFiltro").val(), 3));
}