jQuery(function($){

	$("#menuTablasBasicas").addClass("active");
	
	var inspeccionCargada = sessionStorage.getItem("inspeccionCargada");
	
	if(typeof DIRECCION_PRECARGADA !== "undefined" && DIRECCION_PRECARGADA !== null && DIRECCION_PRECARGADA !== "") {
		$("#idDireccion").val(DIRECCION_PRECARGADA);
	}
	
	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);
	}
	
	$("#inspectores").rup_datatable({		
		primaryKey: "idInspector",
		loadOnStartUp: true,
		pagingType: "full_numbers",
		dom: 'rt<"bottom"lip>',
		pageLength : 10,
		lengthMenu: [10, 25, 50],
		filter:{
  	  		id:"inspectores_filter_form",
  	  		filterToolbar:"inspectores_filter_toolbar",
  	  		collapsableLayerId:"inspectores_filter_fieldset"
     	},
    	colReorder: {
			fixedColumnsLeft: 1
    	},
    	columnDefs: [
    		   {
    		      targets: [0,1,7,8],
    		      orderable: false
    		   },  
    		   {
     		      targets: [0,1,7,8],
     		      visible: false
     		   },
    	],
    	initComplete:function() {
			
			  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("inspectores_length"); 
			  longitudTabla.appendChild(spanM); 
			  longitudTabla.appendChild(spanR);
			  
			$("#botoneraTablaInspectores").css("display", "none");
			$("#inspectores_wrapper").css("display", "none");
  	}
	});
	
	var tabla = $('#inspectores').DataTable();
	
	$('#inspectores tbody').on( 'click', 'tr', function () {
		tabla.$('tr.selected').removeClass('selected');
        $(this).addClass('selected');
    });	
	
	$('#inspectores tbody').on('dblclick', 'tr', function () {
		$("#btnEditInspector").trigger("click");
	});
	
	//cofiguración de campos fecha
	$(".campoFecha").each(function(){
		$("#"+this.id).rup_date();
	});	
	
	//Botón búsqueda
	$("#btnBuscar").click(function(){		
		$("#dni_filter_table").val();
		$("#nombre_filter_table").val();
		$("#numero_filter_table").val();
		$("#usuarioXlnets_filter_table").val();
		$("#idProvincia").val();
		$("#inspectores_filter_filterButton").click();
		$("#botoneraTablaInspectores").css("display", "block");
		$("#inspectores_wrapper").css("display", "block");
	});
	
	//Botón limpiar búsqueda
	$("#btnLimpiar").click(function(){
		$("#dni_filter_table").val("");
		$("#nombre_filter_table").val("");
		$("#usuarioXlnets_filter_table").val("");
		$("#numero_filter_table").val("");
		$("#idProvincia").rup_combo("reload");
		$("#idProvincia").rup_combo("clear");
	});

	
	$("#idDireccion").rup_combo({
		source : "/ab79WebAppWar/direcciones",
		sourceParam : {
			label : (("eu"==$.rup_utils.get("language")) ? "descripcionEuskera": "descripcionCastellano"),
			value : "idDireccion"
		},
		width: 310,
		multiselect:true
	});
	
	//Combo TH
	$("#idProvincia").rup_combo({
		blank: "",
		source: "/ab79WebAppWar/nora/provinciasVascas",
		sourceParam: {
			label: "dsO",
			value: "id"
		},
		width: 330
	});
	
	//Combo TH Modal
	$("#idProvinciaModal").rup_combo({
		blank: "",
		source: "/ab79WebAppWar/nora/provinciasVascas",
		sourceParam: {
			label: "dsO",
			value: "id"
		},
		width: 330
	});
	
	//feedback edit
	$("#inspectores_edit_feedback").rup_feedback({
		gotoTop : true,
		block : false,
		closeLink : true 
	});
	
	$("#inspectores_detail_div").rup_dialog({
		autoOpen: false,
		width: 700,
		modal: true,
		position: { my: "center center" },
		type: $.rup.dialog.DIV,
		open: function() {
			$("#inspectores_edit_feedback").rup_feedback("close");
		}
	});
	
	$('#btnAddInspector').on( 'click', function () {		
		
		$("#idDireccion").rup_combo("clear");
		$("#idProvinciaModal").rup_combo("clear");
		$("#inspectores_detail_form")[0].reset();
		
		$("#inspectores_detail_form").rup_form({
			feedback: $("#inspectores_detail_feedback"),
			url: CTX_PATH + "inspectores",
			type: "POST",
			contentType: "application/json",
			dataType:"json",
			validate:{ 
				liveCheckingErrors : false,
				showFieldErrorAsDefault : true,
				showErrorsInFeedback : false,
				showFieldErrorsInFeedback : true,
				rules:{
					"idDireccion" :{required: true},
					"numeroInspector": {required: true, maxlength: 10},
					"dni": {required: true},
					"nombreInspector": {required: true, maxlength: 200},
					"usuarioXlnets": {maxlength: 20}
				}
			},
		    success: function(){
			   $("#inspectores_detail_feedback").rup_feedback({ gotoTop : true, block : false, closeLink : true });
			   $("#inspectores_detail_feedback").rup_feedback("set", $.rup.i18n.app.inspector.guardarInspectorOk, "ok");
			   tabla.ajax.reload();
			   $("#inspectores_detail_div").rup_dialog("close");
		    },
		    error: function(){
			   $("#inspectores_detail_feedback").rup_feedback({ gotoTop : true, block : false, closeLink : true });
			   $("#inspectores_detail_feedback").rup_feedback("set", $.rup.i18n.app.inspector.guardarInspectorError, "error");
			   $("#inspectores_detail_div").rup_dialog("close");
		    }
		});
		
		$("#inspectores_detail_form").rup_validate("resetForm");
		if(typeof DIRECCION_PRECARGADA !== "undefined" && DIRECCION_PRECARGADA !== null && DIRECCION_PRECARGADA !== "") {
			$("#idDireccion").rup_combo("setRupValue", [DIRECCION_PRECARGADA]);
			$("#idDireccion").rup_combo("disable");
		} else {
			$("#idDireccion").rup_combo("clear");
			$("#idDireccion").rup_combo("enable");
		}
		$("#inspectores_detail_div").rup_dialog("setOption", "title", $.rup.i18n.app.inspector.nuevo);
		$("#inspectores_detail_div").rup_dialog("open");
	});
	
	$('#inspectores_detail_button_save').on( 'click', function () {
		$("idDireccion_detail_table").val($("#idDireccion").rup_combo("getRupValue"));
		
		var dniRepetidoCount = 0;
		var usuarioXlnetsRepetidoCount = 0;
		
		$.ajax({
			type : "GET",
			url : CTX_PATH + "inspectores",
			dataType : "json",
			async:false,
			success : function(data) {
				for (var i = 0; i < data.length; i++) {
					if (data[i].idInspector != $("#idInspector_detail_table").val()) {
						if(data[i].dni != null && data[i].dni.toUpperCase() == $("#dni_detail_table").val().toUpperCase()){
							dniRepetidoCount += 1;
							break;
						} else if (data[i].usuarioXlnets != null && data[i].usuarioXlnets.toUpperCase() == $("#usuarioXlnets_detail_table").val().toUpperCase()){
							usuarioXlnetsRepetidoCount += 1;
							break;
						}
					}
				}
			},
			error: function(){
				desbloquearInterfaz();
				$("#inspectores_edit_feedback").rup_feedback({ gotoTop : true, block : false, closeLink : true });
				$("#inspectores_edit_feedback").rup_feedback("set", $.rup.i18n.app.feedback.error.errorGenerico, "error");
			}
		});
		
		var dniCorrecto = validateDNI($("#dni_detail_table").val());
		
		if(dniCorrecto && dniRepetidoCount == 0 && usuarioXlnetsRepetidoCount == 0) {
			$("#inspectores_detail_form").submit();
		} else if(!dniCorrecto) {
			$("#inspectores_edit_feedback").rup_feedback("set", $.rup.i18n.app.feedback.error.dniNoValido, "alert");
		} else if(dniRepetidoCount > 0){
			$("#inspectores_edit_feedback").rup_feedback({ gotoTop : true, block : false, closeLink : true });
			$("#inspectores_edit_feedback").rup_feedback("set", $.rup.i18n.app.inspector.dniRepetido, "alert");
		} else if(usuarioXlnetsRepetidoCount > 0) {
			$("#inspectores_edit_feedback").rup_feedback({ gotoTop : true, block : false, closeLink : true });
			$("#inspectores_edit_feedback").rup_feedback("set", $.rup.i18n.app.inspector.usuarioXlnetsRepetido, "alert");
		}
		
	});	
	
	$('#inspectores_detail_button_cancel').on( 'click', function () {
		$("#inspectores_detail_div").rup_dialog("close");
	});	
	
	$('#btnDeleteInspector').on( 'click', function () {		
		if(tabla.rows(['.selected']).data().toArray().length > '0'){	
			$.rup_messages("msgConfirm", {
				title: $.rup.i18n.app.tabla.botones.eliminar,
				message: $.rup.i18n.app.inspector.borrarInspector,
				OKFunction:	function() {
					bloquearInterfaz();
					var datosRow = tabla.rows(['.selected']).data().toArray(); 			
					$.ajax({
						type : "DELETE",
						url : CTX_PATH + "inspectores/" + datosRow[0].idInspector,
						dataType : "json",
						async : false,
						success : function() {
							desbloquearInterfaz();
							tabla.ajax.reload();
							$("#inspectores_detail_feedback").rup_feedback({ gotoTop : true, block : false, closeLink : true });
							$("#inspectores_detail_feedback").rup_feedback("set", $.rup.i18n.app.inspector.borradoOK, "ok");
						},
						error: function(){
							desbloquearInterfaz();
							$("#actuaciones_feedback").rup_feedback({ gotoTop : true, block : false, closeLink : true });
							$("#actuaciones_feedback").rup_feedback("set", $.rup.i18n.app.inspector.borradoError, "error");
						}
					});			
				}
			});		
		}else{
			$("#inspectores_detail_feedback").rup_feedback({ gotoTop : false, block : false, closeLink : true });
			$("#inspectores_detail_feedback").rup_feedback("set",$.rup.i18n.app.feedback.error.lineaNoSeleccionada, "error");
		}
	});
	
	$('#btnEditInspector').on( 'click', function () {	
		
		$("#idDireccion").rup_combo("clear");
		$("#idProvinciaModal").rup_combo("clear");
		$("#inspectores_detail_form")[0].reset();
		
		$("#inspectores_detail_form").rup_form({
			feedback: $("#inspectores_detail_feedback"),
			url: CTX_PATH + "inspectores",
			type: "PUT",
			contentType: "application/json",
			dataType:"json",
			validate:{ 
				liveCheckingErrors : false,
				showFieldErrorAsDefault : true,
				showErrorsInFeedback : false,
				showFieldErrorsInFeedback : true,
				rules:{
					"idDireccion" :{required: true},
					"numeroInspector": {required: true},
					"dni": {required: true}
				}
			},
		    success: function(){
			   $("#inspectores_detail_feedback").rup_feedback({ gotoTop : true, block : false, closeLink : true });
			   $("#inspectores_detail_feedback").rup_feedback("set", $.rup.i18n.app.inspector.modificarInspectorOk, "ok");
			   tabla.ajax.reload();
			   $("#inspectores_detail_div").rup_dialog("close");
		    },
		    error: function(){
			   $("#inspectores_detail_feedback").rup_feedback({ gotoTop : true, block : false, closeLink : true });
			   $("#inspectores_detail_feedback").rup_feedback("set", $.rup.i18n.app.inspector.modificarInspectorError, "error");
			   $("#inspectores_detail_div").rup_dialog("close");
		    }
		});
		
		$("#inspectores_detail_form").rup_validate("resetForm");
		
		if(tabla.rows(['.selected']).data().toArray().length > '0'){	
			var datosRow = tabla.rows(['.selected']).data().toArray(); 	
			$.ajax({
				type : "GET",
				url : CTX_PATH + "inspectores/" + datosRow[0].idInspector,
				dataType : "json",
				async : false,
				success : function(data) {
					$("#numeroInspector_detail_table").val(data.numeroInspector);
					$("#dni_detail_table").val(data.dni);
					$("#idInspector_detail_table").val(data.idInspector);
					$("#idDireccion_detail_table").val(data.idDireccion);
					$("#idDireccion").rup_combo("setRupValue",data.idDirecciones);
					if(typeof DIRECCION_PRECARGADA !== "undefined" && DIRECCION_PRECARGADA !== null && DIRECCION_PRECARGADA !== "") {
						$("#idDireccion").rup_combo("disable");
					} else {
						$("#idDireccion").rup_combo("enable");
					}
					$("#nombreInspector_detail_table").val(data.nombreInspector);
					$("#usuarioXlnets_detail_table").val(data.usuarioXlnets);
					$("#fechaRegistro_detail_table").val(data.fechaRegistro);
					$("#usuarioRegistro_detail_table").val(data.usuarioRegistro);
					if(typeof data.provincia.id !== "undefined" && data.provincia.id !== "" && data.provincia.id !== null){
						$("#idProvinciaModal").rup_combo("setRupValue", data.provincia.id);
					}					
					$("#inspectores_detail_div").rup_dialog("setOption", "title", $.rup.i18n.app.inspector.editar);
					$("#inspectores_detail_div").rup_dialog("open");
				}
			});	
		}else{
			$("#inspectores_detail_feedback").rup_feedback({ gotoTop : false, block : false, closeLink : true });
			$("#inspectores_detail_feedback").rup_feedback("set",$.rup.i18n.app.feedback.error.lineaNoSeleccionada, "error");
		}
	});
	
	//Exportar a Excel
	$("#btnExportarExcel").click(function(){
		var orderColumnIndex = tabla.order()[0][0];
		var sord = tabla.order()[0][1];
		var sidx = tabla.settings().init().columns[orderColumnIndex].sidx;
		var form=document.getElementById("inspectores_filter_form");
		form.method = "POST";
		form.action = "/ab79WebAppWar/inspectores/exportarExcel/"+sidx+"/"+sord;
		form.submit();
	});
	
});


