///****************************************************************
///	CHECK EMAIL
///****************************************************************

function CheckEmail( emailStr ) {
    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 (theLan) {
			case 'ct':
				alert("\nL'adreça electrònica sembla ser incorrecte.");
				break;
			case 'de':
				alert("\nIhre E-Mail Adresse ist nicht komplett, bitte erneut eingeben.");
				break;
			case 'es':
				alert("\nLa dirección de email parece incorrecta.");
				break;
			case 'fr':
				alert("\nVotre adresse e-mail semble incorrecte.");
				break;
			case 'it':
				alert("\nL'indirizzo e-mail risulta errato.");
				break;
			case 'jp':
				alert("\nEmail address seems incorrect (check @ and .'s).");
				break;
			case 'nl':
				alert("\nE-mail adres blijkt onjuist.");
				break;
			default:
				alert("\nEmail address seems incorrect (check @ and .'s)");
				break;
		}
		return false
	}
	
	var user=matchArray[1]
	var domain=matchArray[2]
	
	if (user.match(userPat)==null) {
		switch (theLan) {
			case 'ct':
				alert("\nEl vostre nom d'usuari no sembla correcte.");
				break;
			case 'de':
				alert("\nDer Benutzername ist ungültig.");
				break;
			case 'es':
				alert("\nSu nombre de usuario no parece correcto.");
				break;
			case 'fr':
				alert("\nVotre nom d'utilisateur n'est pas valable.");
				break;
			case 'it':
				alert("\nIl nome utente non risulta valido.");
				break;
			case 'jp':
				alert("\nThe username doesn't seem to be valid.");
				break;
			case 'nl':
				alert("\nDe gebruikersnaam lijkt niet geldig te zijn.");
				break;
			default:
				alert("\nThe username doesn't seem to be valid.");
				break;
		}
	    return false
	}
	
	var IPArray=domain.match(ipDomainPat)
	if (IPArray!=null) {
		for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) {
				switch (theLan) {
					case 'ct':
						alert("\nL'adreça IP de destinació és incorrecte!");
						break;
					case 'de':
						alert("\nDie Destination-IP-Adresse ist ungültig.");
						break;
					case 'es':
						alert("\n¡La dirección IP de destino es incorrecta!");
						break;
					case 'fr':
						alert("\nL'adresse IP de destination n'est pas valable!");
						break;
					case 'it':
						alert("\nL'indirizzo dell'IP di destinazione non è valido!");
						break;
					case 'jp':
						alert("\nDestination IP address is invalid!");
						break;
					case 'nl':
						alert("\nIP-adres bestemmeling is ongeldig!");
						break;
					default:
						alert("\nDestination IP address is invalid!");
						break;
				}
			return false
	     }
	    }
	    return true
	}
	
	var domainArray=domain.match(domainPat)
	if (domainArray==null) {
		switch (theLan) {
			case 'ct':
				alert("\nEl nom del domini no sembla correcte.");
				break;
			case 'de':
				alert("\nDer Domainname ist ungültig.");
				break;
			case 'es':
				alert("\nEl nombre del dominio no parece correcto.");
				break;
			case 'fr':
				alert("\nLe nom de domaine n'est pas valable!");
				break;
			case 'it':
				alert("\nIl nome dominio non risulta valido.");
				break;
			case 'jp':
				alert("\nThe domain name doesn't seem to be valid.");
				break;
			case 'nl':
				alert("\nDe domeinnaam lijkt niet geldig te zijn.");
				break;
			default:
				alert("\nThe domain name doesn't seem to be valid.");
				break;
		}
	    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) {
		switch (theLan) {
			case 'ct':
				alert("\nL'adreça ha d'acabar en tres lletres o en les inicials del país (2 lletres).");
				break;
			case 'de':
				alert("\nDie Adresse für den Domainnamen muss mit vier Buchstaben oder für das jeweilige Land mit zwei Buchstaben enden.");
				break;
			case 'es':
				alert("\nLa dirección debe terminar en tres letras o por el contrario en las iniciales del país (2 letras).");
				break;
			case 'fr':
				alert("\nL'adresse doit se terminer par un domaine comportant trois lettres, ou un code pays à deux lettres.");
				break;
			case 'it':
				alert("\nL'indirizzo deve terminare con un dominio a tre lettere o due lettere indicanti un paese.");
				break;
			case 'jp':
				alert("\nThe address must end in a three-letter domain, or two letter country.");
				break;
			case 'nl':
				alert("\nHet adres moet eindigen op een domein van drie letters, of een land met twee letters.");
				break;
			default:
				alert("\nThe address must end in a three-letter domain, or two letter country.");
				break;
		}
	    return false
	}
	
	if( len<2 ) {
		switch (theLan) {
			case 'ct':
				alert("\nEn aquesta adreça li falta el domini!");
				break;
			case 'de':
				alert("\nDer Hostname fehlt!");
				break;
			case 'es':
				alert("\n¡A esta dirección le falta el dominio!");
				break;
			case 'fr':
				alert("\nCette adresse ne comporte pas de nom Internet!");
				break;
			case 'it':
				alert("\nQuest'indirizzo è sprovvisto di host name!");
				break;
			case 'jp':
				alert("\nThis address is missing a hostname!");
				break;
			case 'nl':
				alert("\nIn dit adres ontbreekt een host-naam!");
				break;
			default:
				alert("\nThis address is missing a hostname!");
				break;
		}
	    return false
	}
	return true;
 }
 