function esEmail(texto) {
	var textoStr = texto.toString() // transformo a string todo el campo
	var tiene = 0
	for(var i = 0;i < texto.length;i++){ // recorro letra por letra
	var oneChar = textoStr.charAt(i)
	if (oneChar == "@"){ // busco una arroba en cada letra
		tiene = 1
	}
	} if (tiene == 1){ // controlo si existe o no una arroba
		return true
	} else {
		return false
	}
}

function validarCIF(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 valida_dni(nif) {
	if (!nif) return false;
	var letras = 'TRWAGMYFPDXBNJZSQVHLCKE';
	if (nif.length != 9) return false;
	else {
		letra = nif.substr(8, 1); letra = letra.toUpperCase();
		dni = nif.substr(0, 8);
		dni = dni.toUpperCase(); dni = dni.replace('X','0');
		dni -= parseInt(dni/23) * 23;
		//alert (letras.charAt(dni) + " - " + letra);
		if (letras.charAt(dni) != letra) return false; 
		else return true;
	}
}

function valida_nie(nif) {
	nif = nif.substring(1,10);
	if (!nif) return false;
	var letras = 'TRWAGMYFPDXBNJZSQVHLCKE';
	if (nif.length != 9) return false;
	else {
		letra = nif.substr(8, 1); letra = letra.toUpperCase();
		dni = nif.substr(0, 8);
		dni = dni.toUpperCase(); dni = dni.replace('X','0');
		dni -= parseInt(dni/23) * 23;
		//alert (letras.charAt(dni) + " - " + letra);
		if (letras.charAt(dni) != letra) return false; 
		else return true;
	}
}

function valida_form_empresa (formulario) 
{
	if  ( formulario.password.value.length < 5 ) {
		alert ("La clave debe tener más de 4 caracteres");
		return (false);
	} else if  ( formulario.password.value == "" ) {
		alert ("Debe introducir una contraseña");
		return (false);		
	} else if  ( formulario.nombre.value == "" ) {
		alert ("Debe introducir el nombre de la empresa");
		return (false);				
	} else if  ( formulario.sector.value == "" ) {
		alert ("Debe introducir un sector");
		return (false);		
	} else if  ( formulario.IAE.value == "" ) {
		alert ("Debe introducir un área");
		return (false);				
	} else if  ( formulario.direccion.value == "" ) {
		alert ("Debe introducir la direccion");
		return (false);	
	} else if  ( formulario.cp.value == "" ) {
		alert ("Debe introducir el CP");
		return (false);			
	} else if  ( formulario.localidad.value == "" ) {
		alert ("Debe introducir la localidad");
		return (false);	
	} else if  ( formulario.provincia.value == "-1" ) {
		alert ("Debe introducir la provincia");
		return (false);	
	} else if  (  (valida_dni (formulario.cif.value)==false) && ( validarCIF(formulario.cif.value)==false) && (valida_nie (formulario.cif.value) == false ) ) {
		alert ("Debe introducir un CIF o un NIF correcto");
		return (false);	
	} else if ( esEmail ( formulario.email.value ) == false ) {
		alert ("Debe introducir un email válido");
		return (false);			
	} else if  ( formulario.telefono1.value == "" ) {
		alert ("Debe introducir el telefono");
		return (false);	
	} else if  ( formulario.persona_contacto_1.value == "" ) {
		alert ("Debe introducir una persona de contacto");
		return (false);	
	} else if  ( formulario.persona_contacto_1_email.value == "" ) {
		alert ("Debe introducir el email de la persona de contacto (puede ser el mismo que la empresa)");
		return (false);	
	} else if  ( formulario.persona_contacto_1_tfno.value == "" ) {
		alert ("Debe introducir el telefono de la persona de contacto (puede ser el mismo que la empresa)");
		return (false);					
	}	
}