// JavaScript Document

buttonpress=false;
function emailCheck (emailStr) {
/* Verificar si el email tiene el formato user@dominio. */
var emailPat=/^(.+)@(.+)$/

/* Verificar la existencia de caracteres. ( ) < > @ , ; : \ " . [ ] */
var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"

/* Verifica los caracteres que son válidos en una dirección de email */
var validChars="\[^\\s" + specialChars + "\]"

var quotedUser="(\"[^\"]*\")"

/* Verifica si la dirección de email está representada con una dirección IP Válida */


var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/

/* Verificar caracteres inválidos */

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) {
//alert("Invalid email address (check @ and .'s)")
return false
}
var user=matchArray[1]
var domain=matchArray[2]

// Si el user "user" es valido 
if (user.match(userPat)==null) {
// Si no
//alert("Invalid Username.")
return false
}

/* Si la dirección IP es válida */
var IPArray=domain.match(ipDomainPat)
if (IPArray!=null) {
for (var i=1;i<=4;i++) {
if (IPArray[i]>255) {
//alert("Invalid IP")
return false
}
}
return true
}

var domainArray=domain.match(domainPat)
if (domainArray==null) {
//alert("Invalid domain or not available.")
return false
}

var atomPat=new RegExp(atom,"g")
var domArr=domain.match(atomPat)
var len=domArr.length
if (domArr[domArr.length-1].length<2 || 
domArr[domArr.length-1].length>3) {

//alert("The email address must contain 3 characters in .com domains or 2 in others.")
return false
}

if (len<2) {
var errStr="Invalid email"
//alert(errStr)
return false
}

// La dirección de email ingresada es Válida
return true;
}
// End -->

function isEmailAddress(theElement)
{
var s = theElement.value;
var filter=/^[A-Za-z][A-Za-z0-9_]*@[A-Za-z0-9_]+\.[A-Za-z0-9_.]+[A-za-z]$/;
if (s.length == 0 ) return true;
if (filter.test(s))
return true;
else
alert("Ingrese una dirección de correo válida");
theElement.focus();
return false;
}

function CheckData(elemento,numero,tipo,quiet) {
	errors=false;

	if (tipo=='Text') {
		if (document.getElementsByName(elemento)[numero].value.length<2) {
			document.getElementsByName(elemento)[numero].focus();
			document.getElementsByName(elemento)[numero].className='error';
			if (quiet!='quiet') alert("A required field has not been filled out correctly");
			errors=true;
		}
	}
	else if (tipo=='Email') {
		if (!emailCheck(document.getElementsByName(elemento)[numero].value)) {
			document.getElementsByName(elemento)[numero].focus();
			document.getElementsByName(elemento)[numero].className='error';					
			if (quiet!='quiet') alert("Invalid Email");
			errors=true;
		}
	}	
	return errors;
}

function CheckData(elemento,numero,tipo,quiet) {
	errors=false;

	if (tipo=='Text') {
		if (document.getElementsByName(elemento)[numero].value.length<2) {
			document.getElementsByName(elemento)[numero].focus();
			document.getElementsByName(elemento)[numero].className='error';
			if (quiet!='quiet') alert("A required field has not been filled out correctly");
			errors=true;
		}
	}
	else if (tipo=='Email') {
		if (!emailCheck(document.getElementsByName(elemento)[numero].value)) {
			document.getElementsByName(elemento)[numero].focus();
			document.getElementsByName(elemento)[numero].className='error';					
			if (quiet!='quiet') alert("Invalid Email");
			errors=true;
		}
	}	
	return errors;
}

function CompruebaYEnvia(idioma) {
	errors=false;
	if (!errors){
		if (CheckData('nombre',0,'Text','quiet')){
			errors=true;
			alert(mensajeError(idioma,0));
		}
	}
	if (!errors){
		if (CheckData('email',0,'Email','quiet')){
			errors=true;
			alert(mensajeError(idioma,1));
		}
	}
	if (!errors){
		if (document.getElementsByName('email')[0].value != document.getElementsByName('email2')[0].value){
			alert(mensajeError(idioma,2));
			errors=true;
		}
	}
	if (!errors){
		if ((document.getElementsByName('motivo')[0].value < '0') || (document.getElementsByName('motivo')[0].value > '3')){
			errors=true;
			alert(mensajeError(idioma,3));
		}
	}
	if (errors) {		
		buttonpress=false;
		return 0;
	}

	else {
		buttonpress=true;
		document.contacto.submit();
	}
}


var mensajesErrorEs= Array("Debe escribir su nombre","Debe escribir su email","La confirmación del email es incorrecta","Debe escoger un motivo");
var mensajesErrorPt= Array("Você escreve seu e-mail","A confirmação por e-mail está incorreto","Você deve escolher um motivo");

function mensajeError(idioma,numero){
  switch (idioma){
	  case ('es'): return mensajesErrorEs[numero];
	  case ('pt'): return mensajesErrorPt[numero];
  }
}