/*
	
	17-01-2004 CLM Add German message texts
	
*/

function emailCheck (emailStr, lang)
	{
		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 ( lang == null )
			lang = 'dut';

		if (matchArray==null)
		{
			if (lang == 'dut') 
				alert("Ongeldig email-adres (check @ en punten)");
			else if (lang == 'ger')
				alert("Ungültige E-Mail-Adresse (bitte @ und Punkt überprüfen)");
			return false;
		}
				
		var user=matchArray[1];
		var domain=matchArray[2];
			
		for (i=0; i<user.length; i++)
		{
			if (user.charCodeAt(i)>127)
			{
				if (lang == 'dut') 
					alert("De username bevat ongeldige karakters.");
				else if (lang == 'ger')
					alert("Der Benutzername erhält ungültige Zeichen.");
				return false;
			}
		}
		for (i=0; i<domain.length; i++)
		{
			if (domain.charCodeAt(i)>127)
			{
				if (lang == 'dut') 
					alert("De domeinnaam bevat ongeldige karakters.");
				else if (lang == 'ger')
					alert("Der Domainname erhält ungültige Zeichen.");
				return false;
			}
		}
		
		if (user.match(userPat)==null)
		{
			if (lang == 'dut') 
				alert("U hebt een ongeldige username ingevoerd.");
			else if (lang == 'ger')
				alert("Sie haben einen ungültigen Benutzernamen eingetragen.");
			return false;
		}
			
		var IPArray=domain.match(ipDomainPat);
		if (IPArray!=null)
		{
			for (var i=1;i<=4;i++)
			{
				if (IPArray[i]>255)
				{
					if (lang == 'dut') 
						alert("Dit is een ongeldig IP-adres");
					else if (lang == 'ger')
						alert("Dieses ist eine ungültige IP-Adresse.");
					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)
			{
				if (lang == 'dut') 
					alert("Dit is een ongeldig domein.");
				else if (lang == 'ger')
					alert("Das ist ein ungültiger Domain.");
				return false;
			}
		}
			
		if (checkTLD && domArr[domArr.length-1].length!=2 && domArr[domArr.length-1].search(knownDomsPat)==-1)
		{
			if (lang == 'dut') 
				alert("Het adres moet eindigen op een bekend domein of 2-letter " + "landcode.");
			else if (lang == 'ger')
				alert("Diese Adresse muß mit einem bekannten Domain oder 2 Buchstaben " + "Ländercode übereinstimmen.");
			return false;
		}
		if (len<2)
		{
			if (lang == 'dut') 
				alert("De hostname mist in dit adres");
			else if (lang == 'ger')
				alert("Der Hostname fehlt in dieser Adresse.");
			return false;
		}
		return true;
	}
