String.prototype.trim= function() {//Agrega la función trim al objeto String		
	return this.replace(/(^\s*)|(\s*$)/g,""); //elimina espacios a izquierda y derecha
}
		
function isEmailAddress(valor){
	var s = valor;
	// original
	// var filter=/^[A-Za-z][A-Za-z0-9_]*@[A-Za-z0-9_-]+\.[A-Za-z0-9_.]+[A-za-z]$/;
	// fin original
	var filter=/^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,3})$/
	
	if (filter.test(s)) return true;
	else return false;
}

function validarNIF(valor){
	dni = valor.substring(0,valor.length-1);
	let = valor.charAt(valor.length-1);
	if (!isNaN(let)){
		return false;
	}
	else{
		cadena = "TRWAGMYFPDXBNJZSQVHLCKET";
		posicion = dni % 23;
		letra = cadena.substring(posicion,posicion+1);
		if (letra != let.toUpperCase()) return false;
		else return true;
	}
}

function validarCIF(valor){ 
	var pares = 0; 
	var impares = 0; 
	var suma; 
	var ultima; 
	var unumero; 
	var uletra = new Array("J", "A", "B", "C", "D", "E", "F", "G", "H", "I"); 
	var xxx; 
         
	valor = valor.toUpperCase(); 
         
	var regular = new RegExp(/^[ABCDEFGHKLMNPQS]\d\d\d\d\d\d\d[0-9,A-J]$/g); 
	if (!regular.exec(valor)) return false; 
              
	ultima = valor.substr(8,1); 

	for (var cont = 1 ; cont < 7 ; cont ++){ 
		xxx = (2 * parseInt(valor.substr(cont++,1))).toString() + "0"; 
		impares += parseInt(xxx.substr(0,1)) + parseInt(xxx.substr(1,1)); 
		pares += parseInt(valor.substr(cont,1)); 
	} 
	xxx = (2 * parseInt(valor.substr(cont,1))).toString() + "0"; 
	impares += parseInt(xxx.substr(0,1)) + parseInt(xxx.substr(1,1)); 
          
	suma = (pares + impares).toString(); 
	unumero = parseInt(suma.substr(suma.length - 1, 1)); 
	unumero = (10 - unumero).toString(); 
	if(unumero == 10) unumero = 0; 
          
	if ((ultima == unumero) || (ultima == uletra[unumero])) return true; 
	else return false; 
} 