
	//Bloquear pantalla
	function bloquearInterfaz(){
		//Estilos por defecto
		$.blockUI({
			css: { backgroundColor: 'transparent',borderColor:'transparent'} ,
			message: '<img src="' + STATICS + '/ab79/images/cargando.gif"  id="cargando"/>' 
		});
	
		
	}
	//Desbloquear pantalla
	function desbloquearInterfaz(){
		try{
			$.unblockUI();
		}catch(e){
			$('.blockUI').remove();
		}
	}
	

	//Left Pad
	function pad (str, max) {
		if(str === undefined){
			str = 0
		}else{
		    str = str.toString();
		} 
		    return str.length < max ? pad("0" + str, max) : str;
		
	}
	
  /*ESTA FUNCION ESTA PQ EN LA AB61 , CUANDO HACEMOS UN CRUD DE UN TERCERO TENEMOS QUE VOLVER A NUESTRA APLICACION,ASI REFERESCAMOS NUETRA PAGINA Y SE ACTUALIZAN LOS DATOS*/
	function accederMenu(nombreControlador){
		location.reload();
	} 
	
	window.onscroll = function() {fixedHeader()};

	var navbar = document.getElementById("fixedNav");
	var sticky = navbar.offsetTop;
	var body = $("body");

	function fixedHeader() {
		if (window.pageYOffset >= sticky) {
			navbar.classList.add("sticky");
			if(navbar.classList.contains("navInspecciones")){
				body.find(".content")[0].classList.add("scroll-fix-tabs");
			} else{
				body.find(".content")[0].classList.add("scroll-fix");
			}
		} else {
			navbar.classList.remove("sticky");
			if(navbar.classList.contains("navInspecciones")){
				body.find(".content")[0].classList.remove("scroll-fix-tabs");
			} else{
				body.find(".content")[0].classList.remove("scroll-fix");
			}
		}
	}
	
	//Funciones para validar si el número de documento(dni, pasaporte, cif...) es correcto
	function validateDNI(dni) {
		var lockup = 'TRWAGMYFPDXBNJZSQVHLCKE';
		var valueDni = dni.substr(0, dni.length - 1);
		var letra = dni.substr(dni.length - 1, 1).toUpperCase();

		if (lockup.charAt(valueDni % 23) == letra){
			return true;
		}
		return false;
	}

	function validatePASAPORTE(pasaporte) {
		if (!/^[a-z]{3}[0-9]{6}[a-z]?$/i.test(pasaporte)){
			return true;
		}
		return false;
	}

	function validateCIF(cif) {
		cif = cif.toUpperCase();
		if (!cif || cif.length !== 9) {
			return false;
		}
		var letters = [ 'J', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I' ];
		var digits = cif.substr(1, cif.length - 2);
		var letter = cif.substr(0, 1);
		var control = cif.substr(cif.length - 1);
		var sum = 0;
		var i;
		var digit;

		if (!letter.match(/[A-Z]/)) {
			return false;
		}
		for (i = 0; i < digits.length; ++i) {
			digit = parseInt(digits[i]);

			if (isNaN(digit)) {
				return false;
			}

			if (i % 2 === 0) {
				digit *= 2;
				if (digit > 9) {
					digit = parseInt(digit / 10) + (digit % 10);
				}
				sum += digit;
			} else {
				sum += digit;
			}
		}
		sum %= 10;
		if (sum !== 0) {
			digit = 10 - sum;
		} else {
			digit = sum;
		}

		if (letter.match(/[ABEH]/)) {
			return String(digit) === control;
		}
		if (letter.match(/[NPQRSW]/)) {
			return letters[digit] === control;
		}

		return String(digit) === control || letters[digit] === control;
	}

	function validateNIE(nie) {
		"use strict";
		nie = nie.toUpperCase();
		 // Basic format test
		 if ( !nie.match('((^[A-Z]{1}[0-9]{7}[A-Z0-9]{1}$|^[T]{1}[A-Z0-9]{8}$)|^[0-9]{8}[A-Z]{1}$)') ) {
		  return false;
		 }
		 // Test NIE
		 //T
		 if ( /^[T]{1}/.test( nie ) ) {
		  return ( nie[ 8 ] === /^[T]{1}[A-Z0-9]{8}$/.test( nie ) );
		 }
		 //XYZ
		 if ( /^[XYZ]{1}/.test(nie)) {
		  return (
			nie[8] === "TRWAGMYFPDXBNJZSQVHLCKE".charAt(
			  nie.replace( 'X', '0' )
		     .replace( 'Y', '1' )
		     .replace( 'Z', '2' )
		     .substring( 0, 8 ) % 23
		   )
		  );
		 }
	}

	function validarDocumento(value,tipoDocumento) {
		if (null != value && value != "") {
			value = value.toUpperCase();
			// compruebo que tipo de documento es
			switch (tipoDocumento) {
			case "1":
				return validateDNI(value);
			case "2":
				return validateCIF(value);
			case "3":
				return validateNIE(value);
			case "4":
				return validatePASAPORTE(value);
			default:
				return false; // si no ha elegido el tipo
			}
		}
		return false;
	}

	

	function comprobarPropuesta(idInspeccion){
		var idPropuesta = -1;
		$.ajax({
			async:false,
			url: CTX_PATH + "propuestaSancion/comprobarInspeccion/"+idInspeccion,
			success : function(response){
				idPropuesta = response;
			}
		});
		return idPropuesta
	}

	function comprobarPropuestaSancionRemoto(idInspeccion){
		var idPropuestaSancionRemoto = -1;
		$.ajax({
			async:false,
			url: CTX_PATH + "propuestaSancion/comprobarPropuestaSancionRemoto/"+idInspeccion,
			success : function(response){
				idPropuestaSancionRemoto = response;
			}
		});
		return idPropuestaSancionRemoto
	}
	
	function obtenerDireccion(idExpediente){
		var idDireccion = -1;
		$.ajax({
			async:false,
			url: CTX_PATH + "propuestaSancion/obtenerDireccion/"+idExpediente,
			success : function(response){
				idDireccion = response;
			}
		});
		return idDireccion;
	}

	function comprobarDocumentos(idInspeccion){
		var valido = false;
		$.ajax({
			async:false,
			url: CTX_PATH + "propuestaSancionDocumentos/comprobarDocumentos/"+idInspeccion,
			success : function(response){
				valido = response;
			}
		});
		return valido;
	}

	function comprobarEstadoPropuesta(idInspeccion){
		var estadoPropuesta = -1;
		$.ajax({
			async:false,
			url: CTX_PATH + "propuestaSancion/comprobarEstadoPropuesta/"+idInspeccion,
			success : function(response){
				estadoPropuesta = response;
			}
		});
		return estadoPropuesta;
	}

	function comprobarInfracciones(idPropuesta){
		var countInfracciones = 0;
		$.ajax({
			async:false,
			url: CTX_PATH + "propuestaSancionInfracciones/comprobarInfracciones/"+idPropuesta,
			success : function(response){
				countInfracciones = response;
			}
		});
		return countInfracciones;
	}
	
	function strToDate(date){
	   var parts = date.split("/");
	   return new Date(parts[2], parts[1] - 1, parts[0]);
	}
	
	function comprobarBotonesPropuesta(idPropuesta){
		
		//No existe
		if ( idPropuesta == "-1" )
		{
			
			var documentosValidos;
			
			if($("#inspeccionSinExpediente").val() === "true"){
				documentosValidos = "true";
			} else{
				documentosValidos = comprobarDocumentos(idInspeccion);
			}
			
			if (documentosValidos == "true" && sessionStorage.getItem("tieneParteInculpada") === "true") {		
				$("#btnGenerarPropuestaSancion").removeClass("disabled");
			}
			else {
				$("#btnGenerarPropuestaSancion").addClass("disabled");
			}
			
			$("#btnEliminarPropuestaSancion").addClass(" disabled ");
			$("#btnModificarPropuestaSancion").addClass(" disabled ");
			
		//Existe
		}else
		{	
			$("#btnGenerarPropuestaSancion").addClass("disabled");
			var idEstadoPropuesta = comprobarEstadoPropuesta(idInspeccion);
			$("#btnModificarPropuestaSancion").removeClass("disabled");
			
			if (idEstadoPropuesta !== "4" && idEstadoPropuesta !== "5") {
				if(ROLE_RESPONSABLE){
					$("#btnEliminarPropuestaSancion").removeClass("disabled");
				} else if (ROLE_TECNICO) {
					$("#btnEliminarPropuestaSancion").addClass("disabled");
				}
				
			} else {
				$("#btnEliminarPropuestaSancion").addClass(" disabled ");
			}
			
		};
	}
	
	function bloquearInspeccion() {
		
		$(".btnSubirPlatea").each(function() {
			$("#"+this.id).prop("disabled", true);
		});
		configuracionAcordeones();
		
		$(".bloquearPorExpedienteCerrado").each(function() {
			var id = $(this).attr("id");
            
			/**
			 * Comprobaremos si el elemento es un rup_combo para ponerlo disable
			 * 
			 * Si no es un rup_combo comprobaremos que si es el boton (la varita magica)
			 * 
			 * Si no es ni combo ni boton de la varita es un input, por lo que lo pondremos a readonly
			 */
        	if($("#"+id).hasClass("rup_combo")){	
        		$("#"+id).rup_combo("disable");
        	}else if($("#"+id).hasClass("btn")){	
        		$("#"+id).addClass("disabled");
        	}else{
        		$("#"+id).prop("readOnly", "readOnly");
        	} 	
		});
		
	}
	
	function desbloquearInspeccion() {
		
		$(".btnSubirPlatea").each(function() {
			$("#"+this.id).prop("disabled", false);
		});
		configuracionAcordeones();
	}
	
	function configuracionAcordeones(){
		//Cuando el origen no es campaña ni inspección de oficio, ni denuncia no formal bloqueamos la ubicación de la actividad
		if($("#idOrigenInspeccion").val() != ORIGEN_CAMPAINA && $("#idOrigenInspeccion").val() != ORIGEN_INSPECCION_OFICIO
				 && $("#idOrigenInspeccion").val() != ORIGEN_BUZON_FRAUDE){
				
				$("#establecimiento").prop("disabled", true);
				$("#identificadorEstablecimientoUno").prop("disabled", true);
				$("#identificadorEstablecimientoDos").prop("disabled", true);
				$("#identificadorEstablecimientoTres").prop("disabled", true);
				$("#codigoProvinciaUbicacion").prop("disabled", true);
				$("#codigoMunicipioUbicacion").prop("disabled", true);
				$("#direccionUbicacion").prop("disabled", true);
				$("#numeroUbicacion").prop("disabled", true);
				$("#escaleraUbicacion").prop("disabled", true);
				$("#pisoUbicacion").prop("disabled", true);
				$("#letraUbicacion").prop("disabled", true);
				$("#codigoPostalUbicacion").prop("disabled", true);
				if($("#complementoDireccionUbicacion")){				
					$("#complementoDireccionUbicacion").prop("disabled", true);
				}
				$("#idProvinciaUbicacion").rup_combo("disable");
				$("#idMunicipioUbicacion").rup_combo("disable");
				$("#idLocalidadUbicacion").rup_combo("disable");
				
		}
		
		//Cuando el origen es ayudas bloqueamos el domicilio del solicitante
		if ($("#idOrigenInspeccion").val() == ORIGEN_AYUDAS) {
			$("#codigoProvinciaSolicitante").prop("disabled", true);
			$("#codigoMunicipioSolicitante").prop("disabled", true);
			$("#direccionSolicitante").prop("disabled", true);
			$("#numeroSolicitante").prop("disabled", true);
			$("#escaleraSolicitante").prop("disabled", true);
			$("#pisoSolicitante").prop("disabled", true);
			$("#letraSolicitante").prop("disabled", true);
			$("#codigoPostalSolicitante").prop("disabled", true);
			if ($("#domicilioSolicitante").length) {
				$("#idProvinciaSolicitante").rup_combo("disable");
				$("#idMunicipioSolicitante").rup_combo("disable");
				$("#idLocalidadSolicitante").rup_combo("disable");
			}
		}
		
		//Bloqueamos la dirección postal obtenida desde Tramitagune de la participación
		$(".divDireccionPostal").each(function() {
			var idDivDireccionPostal = $(this).attr("id");
			var identificador = idDivDireccionPostal.split("_")[1];
			
			if($("#otroPais_"+identificador).is(':checked')){
				$("#idPaisDireccionPostal_"+identificador).rup_combo("disable");
			} else {
				$("#idProvinciaDireccionPostal_"+identificador).rup_combo("disable");
				$("#idMunicipioDireccionPostal_"+identificador).rup_combo("disable");
				$("#idLocalidadDireccionPostal_"+identificador).rup_combo("disable");
			}
		});
		
		//Bloqueamos todo menos el botón volver a la búsqueda cuando la inspección es cancelada
		if($.inArray(parseInt($("#resultadoInspeccionFicha").val()), idsResultadoCancelada) !== -1) {
			$(".btn:not(#btnVolverABusqueda):not(#btnGuardar)").each(function() {
				$("#"+this.id).prop("disabled", true);
			});
		}
		
		if($.inArray(parseInt($("#resultadoCombo").val()), idsResultadoCancelada) !== -1
				|| $.inArray(parseInt($("#resultadoInspeccionFicha").val()), idsResultadoCancelada) !== -1) {
			$("#estadoSelect").rup_combo("disable");
			$("#protocoloCombo").rup_combo("disable");
			if($("#campainaComboDiv").is(":visible")){
				$("#campainaCombo").rup_combo("disable");
			}
			
			$("#objetoInspeccion").prop("disabled", true);
			$("#observacionesResultado").prop("disabled", true);
			$("#agrupacionesCombo").rup_combo("disable");
			$("#inspectoresCombo").rup_combo("disable");
		}
		
	}
	