// JavaScript Document
function MM_validateForm() { //v4.0 con complementos de G. Arin para respuestas en lenguaje del browser ó elegido por el usuario 08/02/2010
 	var idioma = getCookie("idiom"); /*alert(idioma);*/
	if (idioma == null || idioma == "undefined") {
		var lang;
		if (typeof navigator.userLanguage != "undefined") {
			lang = navigator.userLanguage.toUpperCase();
		} else if (typeof navigator.language != "undefined") {
			lang = navigator.language.toUpperCase();
		}
		idioma = lang.substr(0,2);
	}
 var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
    if (val) { nm=val.name; if ((val=val.value)!="") {
      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
        if (p<1 || p==(val.length-1))
		{
			switch(idioma) {
				case "ES": /*alert("es");*/
				errors+='- '+nm+' debe ser una direcci\363n de e-mail v\341lida.\n';
				break;
				case "FR": /*alert("fr");*/
				errors+='- '+nm+' ne comparaît pas ou est incorrect.\n';
				break;
				case "EN": /*alert("en");*/
				errors+='- '+nm+' must be a valid email address.\n';
				break;
				case "PT": /*alert("pt");*/
				errors+='- '+nm+' deve ser um endere\347o de email v\341lido.\n';
				break;
				default:
				errors+='- '+nm+' must be a valid email address.\n';
				break;
			}
		}
      } else if (test!='R') {
        if (isNaN(val)) {
				switch(idioma) {
				case "ES":
				errors+='- '+nm+' debe contener un n\372mero.\n';
				break;
				case "FR":
				errors+='- '+nm+' doit contenir une valeur num\310rique.\n';
				break;
				case "EN":
				errors+='- '+nm+' must contain a number.\n';
				break;
				case "PT":
				errors+='- '+nm+' deve conter um n\372mero.\n';
				break;
				default:
				errors+='- '+nm+' must contain a number.\n';
				break;
				}
		}
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=test.substring(8,p); max=test.substring(p+1);
          if (val<min || max<val) errors+='- '+nm+' debe contener n\372meros entre '+min+' y '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') {
				switch(idioma) {
				case "ES":
				errors += '- '+nm+' es requerido.\n';
				break;
				case "FR":
				errors += '- '+nm+' nécessaire.\n';
				break;
				case "EN":
				errors += '- '+nm+' is required.\n';
				break;
				case "PT":
				errors += '- '+nm+' \351 requisito.\n';
				break;
				default:
				errors += '- '+nm+' is required.\n';
				break;
				}
				}
				}
  } if (errors) {
	  switch(idioma) {
				case "ES":
				alert('Los siguientes error(es) ocurrieron:\n'+errors);
				break;
				case "FR":
				alert('Les erreurs suivantes se sont produites:\n'+errors);
				break;
				case "EN":
				alert('The following error(s) ocurred:\n'+errors);
				break;
				case "PT":
				alert('Os seguintes erros ocorreram:\n'+errors);
				break;
				default:
				alert('The following error(s) ocurred:\n'+errors);
				break;
			}
	}
	if (document.getElementById('contact-form-gracias')) {
	document.MM_returnValue = (errors == ''); document.forms[0].action=('emailgracias.php');
	}
	if (document.getElementById('contact-form-merci')) {
	document.MM_returnValue = (errors == ''); document.forms[0].action=('emailmerci.php');
	}
	if (document.getElementById('contact-form-thanks')) {
	document.MM_returnValue = (errors == ''); document.forms[0].action=('emailtks.php');
	}
	if (document.getElementById('contact-form-obrigado')) {
	document.MM_returnValue = (errors == ''); document.forms[0].action=('emailobrigado.php');
	}
	document.MM_returnValue = (errors == ''); document.forms[0].action=('email.php');
}

function emailCheck (emailStr) {
// ver el idioma del explorador
var lang;
		if (typeof navigator.userLanguage != "undefined") {
			lang = navigator.userLanguage.toUpperCase();
		} else if (typeof navigator.language != "undefined") {
			lang = navigator.language.toUpperCase();
		}
		idioma = lang.substr(0,2);
var checkTLD=1;
var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
var emailPat=/^(.+)@(.+)$/;
var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
var validChars="\[^\\s" + specialChars + "\]";
var quotedUser="(\"[^\"]*\")";
var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
var atom=validChars + '+';
var word="(" + atom + "|" + quotedUser + ")";
var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
var matchArray=emailStr.match(emailPat);
if (matchArray==null) {
switch (idioma) {
		case "ES":
		alert("Su dirección de correo no aparece o es incorrecta (compruebe @ y .'s)");
		break;
		case "FR":
		alert("Votre adresse email ne comparaît pas ou est incorrect (vérifiez @ et. 'S)");
		break;
		case "EN":
		alert("Your email address seems to be incorrect (verify @ and .'s)");
		break;
		case "PT":
		alert("Seu endereço de correio não consta ou é incorreto( comprove @ y .'s)");
		break;
		deafult:
		alert("Your email address seems to be incorrect (verify @ and .'s)");
		break;
}
return false;
}
var user=matchArray[1];
var domain=matchArray[2];
for (i=0; i<user.length; i++) {
if (user.charCodeAt(i)>127) {
switch (idioma) {
		case "ES":
		alert("Su dirección de correo contiene caracteres no válidos.");
		break;
		case "FR":
		alert("Votre adresse e-mail contient des caractères invalides.");
		break;
		case "EN":
		alert("Your email address contains invalid characters.");
		break;
		case "PT":
		alert("Seu endereço de correio contém caracteres não válidos.");
		break;
		default:
		alert("Your email address contains invalid characters.");
		break;
}
return false;
}
}
for (i=0; i<domain.length; i++) {
if (domain.charCodeAt(i)>127) {
switch (idioma) {
		case "ES":
		alert("El dominio de la dirección introducida contiene caracteres no válidos.");
		break;
		case "FR":
		alert("Le domaine de l'adresse que vous avez saisi contient des caractères non valides.");
		break;
		case "EN":
		alert("The domain of the introduced address contains invalid characters.");
		break;
		case "PT":
		alert("O domínio do endereço introduzido contém caracteres não válidos.");
		break;
		default:
		alert("The domain of the introduced address contains invalid characters.");
		break;
}
return false;
}
}
if (user.match(userPat)==null) {
switch (idioma) {
		case "ES":
		alert("La dirección de correo parece incorrecta, por favor compruebelo.");
		break;
		case "FR":
		alert("L'adresse email semble incorrecte, vérifiez s'il vous plaît.");
		break;
		case "EN":
		alert("The email address seems to be incorrect. Please verify.");
		break;
		case "PT":
		alert("O endereço de correio parece incorreto, por favor comprová-lo.");
		break;
		default:
		alert("The email address seems to be incorrect. Please verify.");
		break;
}
return false;
}
var IPArray=domain.match(ipDomainPat);
if (IPArray!=null) {
for (var i=1;i<=4;i++) {
if (IPArray[i]>255) {
switch (idioma) {
		case "ES":
		alert("La dirección IPInternet Protocol de destino no es correcta!");
		break;
		case "FR":
		alert("Le protocole IPInternet adresse de destination n'est pas correct!");
		break;
		case "EN":
		alert("The IPInternet Protocol destination address is not correct!");
		break;
		case "PT":
		alert("O endereço IPInternet Protocol de destino não é correto!");
		break;
		default:
		alert("The IPInternet Protocol destination address is not correct!");
		break;
}
return false;
}
}
return true;
}
var atomPat=new RegExp("^" + atom + "$");
var domArr=domain.split(".");
var len=domArr.length;
for (i=0;i<len;i++) {
if (domArr[i].search(atomPat)==-1) {
switch (idioma) {
		case "ES":
		alert("La dirección de correo parece incorrecta, por favor compruebelo, incluyendo el uso incorrecto de signos de puntuación, comas , o puntos [.] al final de la dirección.");
		break;
		case "FR":
		alert("Le courriel semble être incorrect, vérifiez s'il vous plaît, y compris l'utilisation abusive de signes de ponctuation, les virgules, ou des périodes de [.] À la fin de l'adresse.");
		break;
		case "EN":
		alert("The email appears to be incorrect, please check it, including the misuse of punctuation marks, commas, or periods [.] At the end of the address.");
		break;
		case "PT":
		alert("Seu endereço de correio não parece incorreto, por favor comprove, incluindo o uso incorreto de signos de puntuação, virgulas , ou pontos [.] ao final do endereço.");
		break;
		default:
		alert("The email appears to be incorrect, please check it, including the misuse of punctuation marks, commas, or periods [.] At the end of the address.");
		break;
}
return false;
}
}
if (checkTLD && domArr[domArr.length-1].length!=2 &&
domArr[domArr.length-1].search(knownDomsPat)==-1) {
switch (idioma) {
		case "ES":
		alert("Su dirección de correo debe terminar en un dominio o dos letras "+" país.");
		break;
		case "FR":
		alert("Votre adresse de courriel doit se terminer dans un domaine ou à deux lettres "+" pays.");
		break;
		case "EN":
		alert("Your email address must end in a domain or two letter "+" country.");
		break;
		case "PT":
		alert("Seu endereço de correio deve terminar em um domínio ou duas letras "+" país.");
		break;
		default:
		alert("Your email address must end in a domain or two letter "+" country.");
		break;
}
return false;
}
if (len<2) {
switch (idioma) {
		case "ES":
		alert("Falta el nombre del host en su dirección de correo - compruebelo. O debe haber añadido un espacio en blanco al final de la dirección - corrija el error e intentelo de nuevo.");
		break;
		case "FR":
		alert("Aucun nom de serveur dans votre e-mail - à cocher. Ou aurait dû ajouter un espace vierge à la fin de l'adresse - corriger l'erreur et essayez à nouveau.");
		break;
		case "EN":
		alert("Missing hostname in your email - check. Or should have added a blank space at the end of the address - correct the error and try again.");
		break;
		case "PT":
		alert("Falta o nome do host em seu endereço de correio - comprove-o. Ou deve ter adicionado um espaço vazío ao final do endereço - corrija o erro e tente de novo.");
		break;
		default:
		alert("Missing hostname in your email - check. Or should have added a blank space at the end of the address - correct the error and try again.");
		break;
}
return false;
}
return true;
   }