

//Valida NIF = DNI + LETRA
function valNIF(formField)
{	
	var nif = formField.value.toUpperCase();
	var patNifs = /^[0-9]{8}[TRWAGMYFPDXBNJZSQVHLCKE]{1}$/;
	if (patNifs.test(nif)) {
		var letras = "TRWAGMYFPDXBNJZSQVHLCKE";
		var dni = nif.substring(0,8);
		var n = dni%23;
		var letraNif = nif.substring(8,9);
		var letraGen = letras.substring(n, n + 1);
		if (letraNif != letraGen) {
			return false;
		}
		
		return true;
	}
	
	return false;			
}

 function valCIF(texto){
        
        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;
        
        texto = texto.toUpperCase();
        
        
        var regular = new RegExp(/^[ABCDEFGHKLMNPQS]\d\d\d\d\d\d\d[0-9,A-J]$/g);
         if (!regular.exec(texto)) return false;
             
         ultima = texto.substr(8,1);

         for (var cont = 1 ; cont < 7 ; cont ++){
             xxx = (2 * parseInt(texto.substr(cont++,1))).toString() + "0";
             impares += parseInt(xxx.substr(0,1)) + parseInt(xxx.substr(1,1));
             pares += parseInt(texto.substr(cont,1));
         }
         xxx = (2 * parseInt(texto.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;

}
 
function validarRegistro(form) {
	trimForm(form);
	
	if (!isCamposRegistroUsuarioRellenados(form)) {
		alert(TXT_FILL_MANDATORY_ITEMS); // "Cal omplenar tots els camps obligatoris."
		return false;
	}
	
	
	if (!valEmail(form.email_rep)) {		
		alert(TXT_WRONG_EMAIL); // "Email no vàlid."
		form.email_rep.focus();
		return false;
	}
	
	if (!valCIF(form.nif_organisme.value) && !valNIF(form.nif_organisme)) {
		alert(TXT_WRONG_CIF); // "CIF de empresa no vàlid."
		form.nif_organisme.focus();
		return false;
	}
	
	if (!valNIF(form.nif_rep)) {
		alert(TXT_WRONG_NIF); // "NIF de persona representant no vàlid."
		form.nif_rep.focus();
		return false;
	}
	
	return true;
}

function isCamposRegistroUsuarioRellenados(form) {
             
	if (form.nom_organisme.value == "") {		
		form.nom_organisme.focus();
		return false;
	}
	if (form.nif_organisme.value == "") {	
		form.nif_organisme.focus();
		return false;
	}
	if (form.nom_rep.value == "") {	
		form.nom_rep.focus();
		return false;
	}
	if (form.nif_rep.value == "") {	
		form.nif_rep.focus();
		return false;
	}
	if (form.email_rep.value == "") {		
		form.email_rep.focus();
		return false;
	}
	if (form.telefon.value == "") {	
		form.telefon.focus();
		return false;
	}
	if (form.adreca.value == "") {	
		form.adreca.focus();
		return false;
	}
	if (form.poblacio.value == "") {	
		form.poblacio.focus();
		return false;
	}
	if (form.codi_postal.value == "") {		
		form.codi_postal.focus();
		return false;
	}
	return true;
}	
