﻿// JavaScript Document

function trim(cadena) {
	var resul = new String(cadena)
	resul = resul.replace(/\s*$/, "")
	resul = resul.replace(/^\s*/, "")
	return resul
}

function formatearDNIPassport(strCampo) {
    var digito = "";
    var temp = "";

    strCampo = String(strCampo).toUpperCase();

    // limpiamos el campo de signos y espacios en blanco
    temp = "";
    for (i = 0; i < strCampo.length; i++) {
        digito = strCampo.charAt(i);
        if ("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".indexOf(digito) != -1) {
            temp = temp + digito;
        }
    }

    strCampo = temp;
    return strCampo;
}

// funcion auxiliar. devuelve la letra correspondiente a un número DNI
function getLetraDNI(dni) {
	var lockup = "TRWAGMYFPDXBNJZSQVHLCKE";
	var temp = "";
	var digito = "";
	
	// nos aseguramos que el dni sean solo numeros (quitamos la letra)
	for (i = 0; i < dni.length; i++) {
		digito = dni.charAt(i);
		if ("0123456789".indexOf(digito) != -1) {
			temp = temp + digito;
		}
	}
	return lockup.charAt(temp % 23);
}

function getLetraNIE(nie) {
	nie = nie.replace(/^[X]/, '0');
	nie = nie.replace(/^[Y]/, '1');
	nie = nie.replace(/^[Z]/, '2');	
	
	return getLetraDNI(nie);
}

function isDNI(dni) {
	var letra = "";
	var letradni = "";
	
	dni = String(dni).toUpperCase();
	
	if (dni.length > 9) {
		return false;
	}
	
	// rellenamos el dni con "0" si es corto
	if (dni.length < 9) {
		for (i = 0; i < (9 - dni.length); i++) {
			dni = "0" + dni;
		}
	}
	
	if (/^[0-9]{8}[A-Z]{1}$/.test(dni)) {
		letra = getLetraDNI(dni);
		letradni = dni.charAt(8);
		if (letra == letradni) {
		   	return true;
		} else {
			return false;
		}
	} else {
		return false;
	}
}

function isNIE(nie) {
	var letra = "";
	var letradni = "";
	
	nie = nie.toUpperCase();
	
	// comprobacion de NIEs
	// que empiecen por T
	if (/^[T]{1}/.test(nie)) {
		if (/^[T]{1}[0-9]{7}[A-Z]{1}$/.test(nie)) {
		    letra = getLetraDNI(nie);
		    letradni = nie.charAt(8);
			if (letra == letradni) {
				return true;
			} else {
				return false;
			}
		} else {
			return false;
		}
	}
	
	// que empiecen por XYZ
	if (/^[XYZ]{1}/.test(nie)) {
		if (/^[XYZ]{1}[0-9]{7}[A-Z]{1}$/.test(nie)) {
		    letra = getLetraNIE(nie);
		    letradni = nie.charAt(8);
			if (letra == letradni) {
				return true;
			} else {
				return false;
			}
		} else {
			return false;
		}
	}
	
	return false;
}
