var filaSeleccionadaProtocolos;

jQuery(function($){
	
	$("#menuTablasBasicas").addClass("active");
	
	var inspeccionCargada = sessionStorage.getItem("inspeccionCargada");
	
	if (inspeccionCargada !== null)
	{
		$("#menuFichaInspeccion").removeClass("disabled");
		/* Para completar la url del menú Ficha Inspección */
		 var link=$("#menuFichaInspeccion a").attr("href");
		 $("#menuFichaInspeccion a").attr("href",link+inspeccionCargada);
		 
		/* Para completar la url del menú Listados */
		 var link=$("#menuListados a").attr("href");
		 $("#menuListados a").attr("href",link+inspeccionCargada);
	}
	
	//Feedback
	$("#protocolos_feedback").rup_feedback({
		type: "ok",
		gotoTop : true,
		block:false,
		closeLink: true,
		delay: 8000,
		fadeSpeed: 500
	});
	
	//Feedback modal
	$("#protocolos_detail_feedback").rup_feedback({
		type: "ok",
		gotoTop : true,
		block: false,
		closeLink: true,
		delay: 8000,
		fadeSpeed: 500
	});
	
	//Formulario modal
	$("#protocolos_detail_div").rup_dialog({
		autoOpen: false,
		width: 750,
		modal: true,
		position: { my: "center center" },
		type: $.rup.dialog.DIV,
		close: function(){
			resetFormProtocolos();
		}
	});
	
	//Modal preguntas para tipo de informe técnico
	$("#preguntasProtocoloModal").rup_dialog({
		autoOpen: false,
		width: 1200,
		modal: true,
		position: { my: "center center" },
		type: $.rup.dialog.DIV,
		close: function(){
			filaSeleccionadaPreguntasRelProPre = "";
		}
	});
	
	//Feedback modal coipiar informe técnico
	$("#copiarInformeModalFeedback").rup_feedback({
		type: "ok",
		gotoTop: true,
		block: false,
		closeLink: true,
		delay: 8000,
		fadeSpedd: 500
	});
	
	//Modal copiar informe técnico
	$("#copiarInformeModal").rup_dialog({
		autoOpen: false,
		width: 700,
		modal: true,
		position: { my: "center center" },
		type: $.rup.dialog.DIV,
		close: function(){
			$("#descripcionCastellanoCopiaModal").val("");
			$("#descripcionEuskeraCopiaModal").val("");
		}
	});
	
	//Cargar combo direcciones filtro
	$("#direccionesCombo").rup_combo({
		blank: "",
		source: "/ab79WebAppWar/direcciones",
		sourceParam: {
			label: (("eu" === $.rup_utils.get("language"))? "descripcionEuskera" : "descripcionCastellano"),
			value: "idDireccion"
		},
		width: 300,
		select: function(){
			$("#idDireccion_filter_table").val($("#direccionesCombo").val());
		},
		onLoadSuccess: function(){
			if(RESPONSABLE_TURISMO){
				$("#idDireccion_filter_table").val(DIRECCION_TURISMO);
				$("#direccionesCombo").rup_combo("setRupValue", DIRECCION_TURISMO);
				$("#direccionesCombo").rup_combo("disable");
			} else if(RESPONSABLE_COMERCIO){
				$("#idDireccion_filter_table").val(DIRECCION_COMERCIO);
				$("#direccionesCombo").rup_combo("setRupValue", DIRECCION_COMERCIO);
				$("#direccionesCombo").rup_combo("disable");
			}
		}
	});
	
	//Cargar combo origenes filtro
	$("#origenCombo").rup_combo({
		blank: "",
		source: "/ab79WebAppWar/origenesinspeccion",
		sourceParam: {
			label: (("eu" === $.rup_utils.get("language"))? "descripcionEuskera" : "descripcionCastellano"),
			value: "idOrigenInspeccion"
		},
		orderedByValue: true,
		width: 200,
		select: function(){
			$("#idOrigen_filter_table").val($("#origenCombo").val());
		}
	});
	
	//Cargar combo estados filtro
	$("#estadoCombo").rup_combo({
		loadFromSelect: true,
		width: 200,
		select: function(){
			$("#validado_filter_table").val($("#estadoCombo").val());
		}
	});
	
	//Combo procedimientos
	$("#procedimientosCombo").rup_combo({
		parent: ["direccionesCombo"],
		blank: "",
		source: "/ab79WebAppWar/procedimientos",
		sourceParam: {
			label: "descripcionConCodProcedure",
			value: "idProcedimiento"
		},
		orderedByValue: true,
		width: 650,
		onLoadSuccess: function(){
				$("#procedimientosCombo").rup_combo("enable");
		},
		select: function(){
			$("#procedimientos_filter_table").val($("#procedimientosCombo").val());
		}
	});

	//Combo Tipo Establecimiento
	$("#tipoEstablecimientoCombo").rup_combo({
		parent: ["direccionesCombo"],
		blank: "",
		source: "/ab79WebAppWar/tiposestablecimiento",
		sourceParam: {
			label: "descripcionDecorator",
			value: "idTipoEstablecimiento"
		},
		orderedByValue: true,
		width: 300,
		onLoadSuccess: function(){
			$("#tipoEstablecimientoCombo").rup_combo("enable");
		},
		select: function(){
			$("#idTipoEstablecimiento_filter_table").val($("#tipoEstablecimientoCombo").val());
		}
	});
	
	//Combo direcciones mantenimiento
	$("#direccionesComboEdit").rup_combo({
		blank: "",
		source: "/ab79WebAppWar/direcciones",
		sourceParam: {
			label: (("eu" === $.rup_utils.get("language"))? "descripcionEuskera" : "descripcionCastellano"),
			value: "idDireccion"
		},
		width: 200,
		onLoadSuccess: function(){
			if(RESPONSABLE_TURISMO){
				$("#direccionesComboEdit").rup_combo("setRupValue", DIRECCION_TURISMO);
				$("#direccionesComboEdit").rup_combo("disable");
			} else if(RESPONSABLE_COMERCIO){
				$("#direccionesComboEdit").rup_combo("setRupValue", DIRECCION_COMERCIO);
				$("#direccionesComboEdit").rup_combo("disable");
			}
		}
	});
	
	//Combo procedimientos mantenimiento
	$("#procedimientosComboEdit").rup_combo({
		parent: ["direccionesComboEdit"],
		blank: "",
		source: "/ab79WebAppWar/procedimientos",
		sourceParam: {
			label: "descripcionConCodProcedure",
			value: "idProcedimiento"
		},
		//orderedByValue: true,
		width: 700,
		onLoadSuccess: function(){
			if(RESPONSABLE_TURISMO || RESPONSABLE_COMERCIO){
				$("#procedimientosComboEdit").rup_combo("enable");
			}
		}
	});
	
	//Combo origen mantenimiento
	$("#origenComboEdit").rup_combo({
		blank: "",
		source: "/ab79WebAppWar/origenesinspeccion",
		sourceParam: {
			label: (("eu" === $.rup_utils.get("language"))? "descripcionEuskera" : "descripcionCastellano"),
			value: "idOrigenInspeccion"
		},
		orderedByValue: true,
		width: 200
	});
	
	//Combo tipos de establecimiento
	$("#tipoEstablecimientoComboEdit").rup_combo({
		blank: "",
		source: "/ab79WebAppWar/tiposestablecimiento",
		sourceParam: {
			label: "descripcionDecorator",
			value: "idTipoEstablecimiento"
		},
		orderedByValue: true,
		width: 300
	});
	
	//Combo categorías de establecimiento
	$("#categoriasComboEdit").rup_combo({
		parent: ["tipoEstablecimientoComboEdit"],
		blank: "",
		source: "/ab79WebAppWar/categorias",
		sourceParam: {
			label: "descripcionDecorator",
			value: "idCategorias"
		},
		orderedByValue: true,
		width: 200
	});
	
	//Combo modalidades de establecimiento
	$("#modalidadesComboEdit").rup_combo({
		parent: ["tipoEstablecimientoComboEdit"],
		blank: "",
		source: "/ab79WebAppWar/modalidades",
		sourceParam: {
			label: "descripcionDecorator",
			value: "idModalidad"
		},
		orderedByValue: true,
		width: 400
	});
	
	bloquearInterfaz();
	
	//Tabla protocolos
	$("#protocolos").rup_datatable({
		primaryKey: "idProtocolo",
		loadOnStartUp: false,
		pagingType: "full_numbers",
		dom: 'rt<"bottom"lip>',
		pageLength : 5,
		lengthMenu: [5, 10, 25, 50],
		colReorder: false,
		filter:{
  	  		id:"protocolos_filter_form",
  	  		filterToolbar:"protocolos_filter_toolbar",
  	  		collapsableLayerId:"protocolos_filter_fieldset"
     	},
		columnDefs: [
		    {
		       targets: [1,9,10,12,13],
		       orderable: false
		    },
		    {
		       targets: [1,11,12],
		       visible: false
		    },
		    {
		    	targets: [0,2],
		    	width: "15%"
		    },
		    {
		    	targets: [3,4],
		    	width: "15%"
		    },
		    {
		    	targets: [5,6],
		    	width: "5%",
		    },
		    {
		    	targets: [7,8],
		    	width: "50%"
		    },
		    {
		    	targets: [9,10],
		    	width: "5%",
		    	className: "text-center"
		    },
		    {
		    	targets: [13],
		    	width: "5%",
		    	render: function(data){
		    		if(data === INFORME_ACTIVO){
		    			return $.rup.i18n.app.protocolos.estadoActivo;
		    		} else if(data === INFORME_INACTIVO){
		    			return $.rup.i18n.app.protocolos.estadoInactivo;
		    		}
		    	}
		    }
		   	
		],
		initComplete: function(){
			
			var tablaProtocolos = $("#protocolos").DataTable();
			
			//Mostrar / ocultar campos dependiendo del idioma
			if ("eu" === $.rup_utils.get("language")){
				tablaProtocolos.columns( [0,3,5,7] ).visible( false );
			} else if("es" === $.rup_utils.get("language")) {
				tablaProtocolos.columns( [2,4,6,8] ).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("protocolos_length"); 
			longitudTabla.appendChild(spanM); 
			longitudTabla.appendChild(spanR);
			
			$("#botoneraTablaProtocolos").css("display", "none");
			$("#protocolos_wrapper").css("display", "none");
			desbloquearInterfaz();
			
		}
	});
	
	var tablaProtocolos = $("#protocolos").DataTable();
	
	//Fila seleccionada
	$('#protocolos tbody').on( 'click', 'tr', function () {
		filaSeleccionadaProtocolos = tablaProtocolos.row(this).data();
		if ( $(this).hasClass('selected') ) {
	        $(this).removeClass('selected');
	    }
	    else {
	    	tablaProtocolos.$('tr.selected').removeClass('selected');
	        $(this).addClass('selected');
	    }
		
		$('#protocolos tbody').on('dblclick', 'tr', function () {
			if(filaSeleccionadaProtocolos.validado === 0){
				$("#btnEditarProtocolo").trigger("click");
			}
		});
		
		if(typeof filaSeleccionadaProtocolos.tipoEstablecimiento === "undefined" || filaSeleccionadaProtocolos.tipoEstablecimiento === null 
				|| filaSeleccionadaProtocolos.tipoEstablecimiento === ""){
			$("#btnPreguntasValidar").attr("hidden", "true");
		} else{
			$("#btnPreguntasValidar").removeAttr("hidden");
		}
		
		if(filaSeleccionadaProtocolos.numeroRespuestas > 0 || filaSeleccionadaProtocolos.numeroInspecciones > 0){
			$("#btnEliminarProtocolo").prop("disabled", true);
		} else{
			$("#btnEliminarProtocolo").prop("disabled", false);
		}
		
		if(filaSeleccionadaProtocolos.validado === 0){
			$("#btnValidarInforme").removeAttr("hidden");
			$("#btnInvalidarInforme").attr("hidden", "true");
			$("#btnPreguntasValidar").prop("disabled", false);
			$("#btnPreguntasProtocolo").prop("disabled", false);
			$("#btnEditarProtocolo").prop("disabled", false);
			
		} else if(filaSeleccionadaProtocolos.validado === 1){
			$("#btnValidarInforme").attr("hidden", "true");
			$("#btnInvalidarInforme").removeAttr("hidden");
			$("#btnPreguntasValidar").prop("disabled", true);
			$("#btnPreguntasProtocolo").prop("disabled", true);
			$("#btnEditarProtocolo").prop("disabled", true);
		}
		
	});
	
	//Botón búsqueda
	$("#btnBusqProtocolos").click(function(){
		$("#protocolos_filter_filterButton").click();
		$("#botoneraTablaProtocolos").css("display", "block");
		$("#protocolos_wrapper").css("display", "table");
	});
	
	//Botón limpiar búsqueda
	$("#btnLimpiarProtocolos").click(function(){
		$("#direccionesCombo").rup_combo("setRupValue", "");
		$("#origenCombo").rup_combo("setRupValue", "");
		$("#estadoCombo").rup_combo("setRupValue", "");
		$("#idOrigen_filter_table").val(null);
		$("#idDireccion_filter_table").val(null);
		$("#validado_filter_table").val(null);
	});
	
	//Nuevo protocolo
	$("#btnNuevoProtocolo").click(function(){
		
		//Formulario
		$("#protocolos_detail_form").rup_form({
			feedback: $("#protocolos_detail_feedback"),
			url: CTX_PATH  + "protocolos",
			type: "POST",
			contentType: "application/json",
			dataType: "json",
			validate: {
				liveCheckingErrors: false,
				showFieldErrorAsDefault: true,
				showErrorsInFeedback: false,
				showFieldErrorsInFeedback: true,
				rules: {
					"direccion.idDireccion"			: { required: true },
					"origen.idOrigenInspeccion"		: { required: true },
					"procedimiento.idProcedimiento"	: { required: true },
					"descripcionCastellano"			: { required: true, maxlength: 200 },
					"descripcionEuskera"			: { required: true, maxlength: 200 }
				}
			},
			success: function(){
				desbloquearInterfaz();
				$("#protocolos_detail_div").rup_dialog("close");
				tablaProtocolos.ajax.reload();
				$("#protocolos_feedback").rup_feedback({ gotoTop : true, block : false, closeLink : true });
				$("#protocolos_feedback").rup_feedback("set", $.rup.i18n.app.protocolos.guardarProtocoloOk, "ok");
				filaSeleccionadaProtocolos = "";
			},
			error: function(){
				desbloquearInterfaz();
				$("#protocolos_detail_feedback").rup_feedback({ gotoTop : true, block : false, closeLink : true});
				$("#protocolos_detail_feedback").rup_feedback("set", $.rup.i18n.app.protocolos.guardarProtocoloError, "error");
				filaSeleccionadaProtocolos = "";
			}
		});
		
		if(typeof filaSeleccionadaProtocolos !== "undefined" && filaSeleccionadaProtocolos !== "" && filaSeleccionadaProtocolos !== null){
			
			$.rup_messages("msgConfirm", {
				title: $.rup.i18n.app.protocolos.nuevo,
				message: $.rup.i18n.app.protocolos.nuevoProtocoloConfirm,
				OKFunction:	function() {
					tablaProtocolos
				    .rows( '.selected' )
				    .nodes()
				    .to$() 
				    .removeClass( 'selected' );
					$("#protocolos_detail_div").rup_dialog("setOption", "title", $.rup.i18n.app.protocolos.nuevo);
					$("#protocolos_detail_div").rup_dialog("open");
				},
				CANCELFunction: function(){
					tablaProtocolos
				    .rows( '.selected' )
				    .nodes()
				    .to$() 
				    .removeClass( 'selected' );
				}
			});
			
		}else{
			$("#protocolos_detail_div").rup_dialog("setOption", "title", $.rup.i18n.app.protocolos.nuevo);
			$("#protocolos_detail_div").rup_dialog("open");
		}
		if(RESPONSABLE_TURISMO || RESPONSABLE_COMERCIO){
			$("#direccionesComboEdit").rup_combo("reload");
		}
		resetFormProtocolos();
		filaSeleccionadaProtocolos = "";
		$("#protocolos_detail_feedback").rup_feedback("close");
		
	});
	
	//Editar protocolo
	$("#btnEditarProtocolo").click(function(){
		
		//Formulario
		$("#protocolos_detail_form").rup_form({
			feedback: $("#protocolos_detail_feedback"),
			url: CTX_PATH  + "protocolos",
			type: "PUT",
			contentType: "application/json",
			dataType: "json",
			validate: {
				liveCheckingErrors: false,
				showFieldErrorAsDefault: true,
				showErrorsInFeedback: false,
				showFieldErrorsInFeedback: true,
				rules: {
					"direccion.idDireccion"			: { required: true },
					"origen.idOrigenInspeccion"		: { required: true },
					"procedimiento.idProcedimiento" : { required: true },
					"descripcionCastellano"			: { required: true },
					"descripcionEuskera"			: { required: true }
				}
			},
			success: function(){
				desbloquearInterfaz();
				$("#protocolos_detail_div").rup_dialog("close");
				tablaProtocolos.ajax.reload();
				$("#protocolos_feedback").rup_feedback({ gotoTop : true, block : false, closeLink : true });
				$("#protocolos_feedback").rup_feedback("set", $.rup.i18n.app.protocolos.guardarProtocoloOk, "ok");
				filaSeleccionadaProtocolos = "";
			},
			error: function(){
				desbloquearInterfaz();
				$("#protocolos_detail_feedback").rup_feedback({ gotoTop : true, block : false, closeLink : true});
				$("#protocolos_detail_feedback").rup_feedback("set", $.rup.i18n.app.protocolos.guardarProtocoloError, "error");
				filaSeleccionadaProtocolos = "";
			}
		});
		
		if(typeof filaSeleccionadaProtocolos !== "undefined" && filaSeleccionadaProtocolos !== "" && filaSeleccionadaProtocolos !== null){			
			resetFormProtocolos();
			bloquearInterfaz();
			recuperarProtocolo();
			$("#protocolos_detail_feedback").rup_feedback("close");
			
		}else{
			$("#protocolos_feedback").rup_feedback({ gotoTop : true, block : false, closeLink : true });
			$("#protocolos_feedback").rup_feedback("set", $.rup.i18n.app.feedback.error.lineaNoSeleccionada, "alert");
		}
		
	});
	
	//Eliminar protocolo
	$("#btnEliminarProtocolo").click(function(){
		
		if(typeof filaSeleccionadaProtocolos !== "undefined" && filaSeleccionadaProtocolos !== "" && filaSeleccionadaProtocolos !== null){
			
			// Mensaje de confirmación
			$.rup_messages("msgConfirm", {
				title: $.rup.i18n.app.tabla.botones.eliminar,
				message: $.rup.i18n.app.protocolos.borrarProtocolo,
				OKFunction:	function() {
					bloquearInterfaz();
					$.ajax({
						url: CTX_PATH + "protocolos/" + filaSeleccionadaProtocolos.idProtocolo,
						type: "DELETE",
						success: function(){
							desbloquearInterfaz();
							tablaProtocolos.ajax.reload();
							$("#protocolos_feedback").rup_feedback({ gotoTop : true, block : false, closeLink : true });
							$("#protocolos_feedback").rup_feedback("set", $.rup.i18n.app.protocolos.borrarProtocoloOk, "ok");
							filaSeleccionadaProtocolos = "";
						},
						error: function(){
							desbloquearInterfaz();
							$("#protocolos_feedback").rup_feedback({ gotoTop : true, block : false, closeLink : true });
							$("#protocolos_feedback").rup_feedback("set", $.rup.i18n.app.protocolos.borrarProtocoloError, "error");
							filaSeleccionadaProtocolos = "";
						}
					});
				}
			});
			
		}else{
			$("#protocolos_feedback").rup_feedback({ gotoTop : true, block : false, closeLink : true});
			$("#protocolos_feedback").rup_feedback("set", $.rup.i18n.app.feedback.error.lineaNoSeleccionada, "alert");
		}
		
	});
	
	//Exportar a Excel
	$("#btnExportarExcelProtocolos").click(function(){
		
		var orderColumnIndex = tablaProtocolos.order()[0][0]; //Índice de la columna por la que se está ordenando el datatable (1,2,3...)
		var sord = tablaProtocolos.order()[0][1]; //Dirección en la que se está ordenando la columna (ASC / DESC)
		var sidx = tablaProtocolos.settings().init().columns[orderColumnIndex].sidx; //Nombre de la columna por la que se está ordenando el datatable (IDPROTOCOLO...)
		
		var form = document.getElementById("protocolos_filter_form");
		form.method = "POST";
		form.action = "/ab79WebAppWar/protocolos/exportarExcel/" + sidx + "/" + sord;
		
		form.submit();
		
	});
	
	//Vista previa informe técnico (preguntas totales)
	$("#btnVistaPreviaPreguntasTotales").click(function(){
		if(typeof filaSeleccionadaProtocolos !== "undefined" && filaSeleccionadaProtocolos !== "" && filaSeleccionadaProtocolos !== null){
			var datosTablaProtocolos = tablaProtocolos.row(['.selected']).data();
			
			if(datosTablaProtocolos.numeroPreguntas > 0){
				
				bloquearInterfaz();
				
				//Modal vista previa del informe técnico
				$("#vistaPreviaInformeTecnico").rup_dialog({
					autoOpen: false,
					url: CTX_PATH + "informeTecnico/vistaPrevia/" + datosTablaProtocolos.idProtocolo + "/" + TIPO_PREGUNTAS_TOTALES,
					width:1200,
					modal:true,
					position: { my: "top center" },
					type: $.rup.dialog.AJAX,
					ajaxOptions: {
						success: function (){
							
							//Mostrar / ocultar campos dependiendo del idioma
							if("eu" === $.rup_utils.get("language")){
								$(".preguntaCastellano").css("display", "none");
								$(".preguntaEuskera").css("display", "block");
								$(".checkEuskera").css("display", "block");
								$(".checkCastellano").css("display", "none");
								$("#tituloPreguntasValidar").text($("#tituloPreguntasValidar").text().replace("{0}", datosTablaProtocolos.descripcionEuskera));
								$("#tituloPreguntasProtocolo").text($("#tituloPreguntasProtocolo").text().replace("{0}", datosTablaProtocolos.descripcionEuskera));
							} else if("es" === $.rup_utils.get("language")){
								$(".preguntaEuskera").css("display", "none");
								$(".preguntaCastellano").css("display", "block");
								$(".checkCastellano").css("display", "block");
								$(".checkEuskera").css("display", "none");
								$("#tituloPreguntasValidar").text($("#tituloPreguntasValidar").text().replace("{0}", datosTablaProtocolos.descripcionCastellano));
								$("#tituloPreguntasProtocolo").text($("#tituloPreguntasProtocolo").text().replace("{0}", datosTablaProtocolos.descripcionCastellano));
							}
							
							//Combo correcto / Incorrecto vista previa
							$(".comboCorrectoIncorrecto").each(function(){
								$("#"+this.id).rup_combo({
									loadFromSelect:true,
									width:200
								});
							});
							
							$("#vistaPreviaInformeTecnico").rup_dialog("setOption", "title", $.rup.i18n.app.informeTecnico.vistaPrevia);
							$("#vistaPreviaInformeTecnico").rup_dialog("open");
							
							desbloquearInterfaz();
						},
						error: function(){
							desbloquearInterfaz();
							$("#protocolos_feedback").rup_feedback({ gotoTop : false, block : false, closeLink : true });
							$("#protocolos_feedback").rup_feedback("set", $.rup.i18n.app.preguntasProtocolo.vistaPreviaError, "error")
						}
					}
				});
				
			} else{
				$("#protocolos_feedback").rup_feedback({ gotoTop : true, block : false, closeLink : true });
				$("#protocolos_feedback").rup_feedback("set", $.rup.i18n.app.protocolos.sinPreguntas, "alert");
			}
			
		} else{
			$("#protocolos_feedback").rup_feedback({ gotoTop : true, block : false, closeLink : true });
			$("#protocolos_feedback").rup_feedback("set", $.rup.i18n.app.feedback.error.lineaNoSeleccionada, "alert");
		}
	});
	
	//Guardar
	$("#protocolos_detail_button_save").click(function(){
		bloquearInterfaz();
		$("#protocolos_detail_form").submit();
		desbloquearInterfaz();
	});
	
	//Cancelar modal
	$("#protocolos_detail_button_cancel").click(function(){
		$("#protocolos_detail_div").rup_dialog("close");
	});
	
	//Botón añadir preguntas protocolo
	$("#btnPreguntasProtocolo").click(function(){
		if(typeof filaSeleccionadaProtocolos !== "undefined" && filaSeleccionadaProtocolos !== "" && filaSeleccionadaProtocolos !== null){
			$("#idProtocolo_filter_table").val(filaSeleccionadaProtocolos.idProtocolo);
			$("#btnAsignarPadre").removeAttr("hidden");
			$("#preguntaValidar_filter_table").val(null);
			$("#preguntaValidarRelProPre_filter_table").val(null);
			$("#botoneraPreguntasProtocoloTabla").removeAttr("hidden");
			
			//Combo tipos de pregunta (filtro)
			$("#tiposPreguntaCombo").rup_combo({
				blank: "",
				source: "/ab79WebAppWar/tipospreguntas",
				sourceParam: {
					label: (("eu" === $.rup_utils.get("language"))? "descripcionEuskera" : "descripcionCastellano"),
					value: "idTipoPregunta"
				},
				orderedByValue: true,
				width: 300,
				select: function(){
					$("#idTipoPregunta_filter_table").val($("#tiposPreguntaCombo").val());
				}
			});
			
			var preguntasProtocoloModalTitulo = $.rup.i18n.app.protocolos.aniadirPreguntasProtocolo;
			
			if ("eu" === $.rup_utils.get("language")){
				preguntasProtocoloModalTitulo = preguntasProtocoloModalTitulo.replace("{0}", filaSeleccionadaProtocolos.descripcionEuskera);
			} else if("es" === $.rup_utils.get("language")) {
				preguntasProtocoloModalTitulo = preguntasProtocoloModalTitulo.replace("{0}", filaSeleccionadaProtocolos.descripcionCastellano);
			}
			
			$("#preguntasProtocoloModal").rup_dialog("setOption", "title", preguntasProtocoloModalTitulo);
			$("#preguntasProtocoloModal").rup_dialog("open");
			limpiarModalPreguntasProtocolo();
			$("#preguntasProtocolo_filter_filterButton").click();
			$("#preguntasRelProPre_filter_filterButton").click();
			
		}else{
			$("#protocolos_feedback").rup_feedback({ gotoTop : true, block : false, closeLink : true });
			$("#protocolos_feedback").rup_feedback("set", $.rup.i18n.app.feedback.error.lineaNoSeleccionada, "alert");
		}
	});
	
	//Botón preguntas de validación características por tipo actividad
	$("#btnPreguntasValidar").click(function(){
		if( typeof filaSeleccionadaProtocolos !== "undefined" && filaSeleccionadaProtocolos !== null && filaSeleccionadaProtocolos !== ""){
			$("#idProtocolo_filter_table").val(filaSeleccionadaProtocolos.idProtocolo);
			$("#preguntaValidar_filter_table").val(VALIDAR);
			$("#preguntaValidarRelProPre_filter_table").val(VALIDAR);
			$("#btnAsignarPadre").attr("hidden", "true");
			$("#botoneraPreguntasProtocoloTabla").attr("hidden", "true");
			
			//Combo tipos de pregunta (mantenimiento)
			$("#tiposPreguntaCombo").rup_combo({
				blank: "",
				source: "/ab79WebAppWar/tipospreguntas/tiposPreguntaValidar",
				sourceParam: {
					label: (("eu" === $.rup_utils.get("language"))? "descripcionEuskera" : "descripcionCastellano"),
					value: "idTipoPregunta"
				},
				orderedByValue: true,
				width: 300,
				select: function(){
					$("#idTipoPregunta_filter_table").val($("#tiposPreguntaCombo").val());
					if($("#tiposPreguntaComboEdit").val() == TIPO_PREGUNTA_CHECKBOX){
						$("#divOpciones").removeAttr("hidden");
					} else{
						$("#divOpciones").attr("hidden", "true");
					}
				}
			});
			
			var tituloPreguntasValidar = $.rup.i18n.app.preguntasProtocolo.tituloPreguntasValidar;
			
			if ("eu" === $.rup_utils.get("language")){
				tituloPreguntasValidar = tituloPreguntasValidar.replace("{0}", filaSeleccionadaProtocolos.descripcionEuskera);
			} else if("es" === $.rup_utils.get("language")) {
				tituloPreguntasValidar = tituloPreguntasValidar.replace("{0}", filaSeleccionadaProtocolos.descripcionCastellano);
			}
			
			$("#preguntasProtocoloModal").rup_dialog("setOption", "title", tituloPreguntasValidar);
			$("#preguntasProtocoloModal").rup_dialog("open");
			
			limpiarModalPreguntasProtocolo();
			$("#preguntasProtocolo_filter_filterButton").click();
			$("#preguntasRelProPre_filter_filterButton").click();
			
		} else{
			$("#protocolos_feedback").rup_feedback({ gotoTop : true, block : false, closeLink : true });
			$("#protocolos_feedback").rup_feedback("set", $.rup.i18n.app.feedback.error.lineaNoSeleccionada, "alert")
		}
	});
	
	//Botón validar informe técnico
	$("#btnValidarInforme").click(function(){
		if(typeof filaSeleccionadaProtocolos !== "undefined" && filaSeleccionadaProtocolos !== null && filaSeleccionadaProtocolos !== ""){
			
			$.ajax({
				type: "POST",
				url: CTX_PATH + "protocolos/validarInforme/" + filaSeleccionadaProtocolos.idProtocolo,
				success: function(){
					tablaProtocolos.ajax.reload();
					$("#protocolos_feedback").rup_feedback({ gotoTop : true, block : false, closeLink : true });
					$("#protocolos_feedback").rup_feedback("set", $.rup.i18n.app.protocolos.validarInformeOk, "ok")
					$("#btnValidarInforme").attr("hidden", "true");
					filaSeleccionadaProtocolos = "";
				},
				error: function(){
					$("#protocolos_feedback").rup_feedback({ gotoTop : true, block : false, closeLink : true }),
					$("#protocolos_feedback").rup_feedback("set", $.rup.i18n.app.protocolos.validarInformeError, "error");
					filaSeleccionadaProtocolos = "";
				}
			});			
			
		} else{
			$("#protocolos_feedback").rup_feedback({ gotoTop : true, block : false, closeLink : true });
			$("#protocolos_feedback").rup_feedback("set", $.rup.i18n.app.feedback.error.lineaNoSeleccionada, "alert")
		}
	});
	
	//Botón invalidar informe técnico
	$("#btnInvalidarInforme").click(function(){
		if(typeof filaSeleccionadaProtocolos !== "undefined" && filaSeleccionadaProtocolos !== null && filaSeleccionadaProtocolos !== ""){
			
			$.ajax({
				type: "POST",
				url: CTX_PATH + "protocolos/invalidarInforme/" + filaSeleccionadaProtocolos.idProtocolo,
				success: function(){
					tablaProtocolos.ajax.reload();
					$("#protocolos_feedback").rup_feedback({ gotoTop : true, block : false, closeLink : true });
					$("#protocolos_feedback").rup_feedback("set", $.rup.i18n.app.protocolos.invalidarInformeOk, "ok");
					$("#btnInvalidarInforme").attr("hidden", "true");
					$("#btnPreguntasValidar").prop("disabled", false);
					$("#btnPreguntasProtocolo").prop("disabled", false);
					$("#btnEditarProtocolo").prop("disabled", false);
					filaSeleccionadaProtocolos = "";
				},
				error: function(){
					$("#protocolos_feedback").rup_feedback({ gotoTop : true, block : false, closeLink : true });
					$("#protocolos_feedback").rup_feedback("set", $.i18n.app.protocolos.invalidarInformeError, "error");
					filaSeleccionadaProtocolos = "";
				}
			});
			
		} else{
			$("#protocolos_feedback").rup_feedback({ gotoTop : true, block : false, closeLink : true });
			$("#protocolos_feedback").rup_feedback("set", $.rup.i18n.app.feedback.error.lineaNoSeleccionada, "alert");
		}
	});
	
	//Botón copiar informe técnico
	$("#btnCopiarInforme").click(function(){
		if(typeof filaSeleccionadaProtocolos !== "undefined" && filaSeleccionadaProtocolos !== null && filaSeleccionadaProtocolos !== ""){
			$("#copiarInformeModal").rup_dialog("setOption", "title", $.rup.i18n.app.protocolos.copiarInforme);
			$("#copiarInformeModal").rup_dialog("open");			
		} else{
			$("#protocolos_feedback").rup_feedback({ gotoTop : true, block : false, closeLink : true });
			$("#protocolos_feedback").rup_feedback("set", $.rup.i18n.app.feedback.error.lineaNoSeleccionada, "alert");
		}
	});
	
	//Cancelar modal copiar informe técnico
	$("#copiarInformeModalCancelar").click(function(){
		$("#copiarInformeModal").rup_dialog("close");
	});
	
	//Guardar modal copiar informe técnico
	$("#copiarInformeModalGuardar").click(function(){
		bloquearInterfaz();
		var datosACopiar = tablaProtocolos.row(['.selected']).data();
		
		datosACopiar.descripcionCastellano = $("#descripcionCastellanoCopiaModal").val();
		datosACopiar.descripcionEuskera = $("#descripcionEuskeraCopiaModal").val();
		
		$("#copiarInformeModalForm").rup_form({
			feedback: $("#copiarInformeModalFeedback"),
			type: "POST",
			url: CTX_PATH + "protocolos/copiarInforme",
			contentType: "application/json",
			data: datosACopiar,
			validate: {
				liveCheckingErrors: false,
				showFieldErrorAsDefault: true,
				showErrorsInFeedback: false,
				showFieldErrorsInFeedback: true,
				rules: {
					"descripcionCastellano" : { required : true, maxlength : 200 },
					"descripcionEuskera"	: { required : true, maxlength : 200 }
				}
			},
			success: function(){
				desbloquearInterfaz();
				$("#copiarInformeModal").rup_dialog("close");
				tablaProtocolos.ajax.reload();
				$("#protocolos_feedback").rup_feedback({ gotoTop : true, block : false, closeLink : true });
				$("#protocolos_feedback").rup_feedback("set", $.rup.i18n.app.protocolos.copiarInformeOk, "ok");
			}, 
			error: function(){
				desbloquearInterfaz();
				$("#copiarInformeModalFeedback").rup_feedback({ gotoTop : true, block : false, closeLink : true });
				$("#copiarInformeModalFeedback").rup_feedback("set", $.rup.i18n.app.protocolos.copiarInformeError, "error")
			}
		});
		
		$("#copiarInformeModalForm").submit();
		desbloquearInterfaz();
	});
	
});

//Recuperamos el protocolo a editar
function recuperarProtocolo(){
	$.ajax({
		type: "GET",
		url: CTX_PATH + "protocolos/" + filaSeleccionadaProtocolos.idProtocolo,
		dataType: "json",
		success: function(data){
			$("#protocolos_detail_div").rup_dialog("setOption", "title", $.rup.i18n.app.protocolos.editar);
			$("#protocolos_detail_div").rup_dialog("open");
			desbloquearInterfaz();
			$("#idProtocolo_detail_table").val(data.idProtocolo);
			$("#direccionesComboEdit").rup_combo("setRupValue", data.direccion.idDireccion);
			$("#origenComboEdit").rup_combo("setRupValue", data.origen.idOrigenInspeccion);
			if(data.procedimiento !== null && data.procedimiento.idProcedimiento !== null){
				$("#procedimientosComboEdit").rup_combo("setRupValue", data.procedimiento.idProcedimiento);
			} else{
				$("#procedimientosComboEdit").rup_combo("setRupValue", "");
			}
			if(data.tipoEstablecimiento != null){
				$("#tipoEstablecimientoComboEdit").rup_combo("setRupValue", data.tipoEstablecimiento);
			} else{
				$("#tipoEstablecimientoComboEdit").rup_combo("setRupValue", "");
			}
			if(data.categoriaEstablecimiento != null){
				$("#categoriasComboEdit").rup_combo("setRupValue", data.categoriaEstablecimiento);
			} else{
				$("#categoriasComboEdit").rup_combo("setRupValue", "");
			}
			if(data.modalidadEstablecimiento != null){
				$("#modalidadesComboEdit").rup_combo("setRupValue", data.modalidadEstablecimiento);
			} else{
				$("#modalidadesComboEdit").rup_combo("setRupValue", "");
			}
			$("#descripcionCastellano_detail_table").val(data.descripcionCastellano);
			$("#descripcionEuskera_detail_table").val(data.descripcionEuskera);
		},
		error: function(){
			$("#protocolos_detail_div").rup_dialog("close");
			desbloquearInterfaz();
			$("#protocolos_feedback").rup_feedback({ gotoTop : true, block : false, closeLink : true });
			$("#protocolos_feedback").rup_feedback("set", $.rup.i18n.app.protocolos.recuperarProtocoloError, "error");
		}
	});
}

//Resetear el formulario
function resetFormProtocolos(){
	$(".combo").each(function(){
		$("#"+this.id).rup_combo("clear");
	});
	$("#protocolos_detail_form").rup_validate("resetForm");
	$("#protocolos_detail_form")[0].reset();
}

//Limpiar el filtro de la modal de preguntas y cerrar feedbacks
function limpiarModalPreguntasProtocolo(){
	$("#tiposPreguntaCombo").rup_combo("setRupValue", "");
	$("#descripcionCastellanoFilter").val("");
	$("#descripcionEuskeraFilter").val("");
	$("#preguntasRelProPre_feedback").rup_feedback("close");
	$("#preguntasProtocoloTabla_feedback").rup_feedback("close");
}
