/*
Email address seems incorrect (check @ and .'s)  
E-mail adres is niet correct (controleer \'@\' en \'.n\').

The username doesn't seem to be valid.    
Username is niet geldig.

Destination IP address is invalid.   
Bestemmings IP adres is niet geldig.

The domain name doesn't seem to be valid.   
Domeinnaam niet geldig.

The address must end in a three-letter domain, or two letter country.    
Het adres moet eindigen met een drie-letterige domein of een twee-letterige landcode.

The address is missing a hostname.
De hostname ontbreekt in het adres.
*/

function emailCheckNL(thisControl)
{
	var emailStr = thisControl.value;
	
	if (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)
		{
			alert("E-mail adres is niet correct (controleer '@' en '.n').");
			thisControl.select();
	  	thisControl.focus();
			return false;
		}
		var user=matchArray[1];
		var domain=matchArray[2];
	
		if (user.match(userPat)==null)
		{
			alert("Username is niet geldig.");
			thisControl.select();
	  	thisControl.focus();
			return false;
		}
	
		var IPArray=domain.match(ipDomainPat);
		if (IPArray!=null)
		{
			for (var i=1;i<=4;i++)
			{
				if (IPArray[i]>255)
				{
					alert("Bestemmings IP adres is niet geldig.");
					thisControl.select();
		 	 		thisControl.focus();
					return false;
				}
			}
			return true;
		}
	
		var domainArray=domain.match(domainPat);
		if (domainArray==null)
		{
			alert("Domeinnaam niet geldig.");
			thisControl.select();
	  	thisControl.focus();
			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("Het adres moet eindigen met een drie-letterige domein of een twee-letterige landcode.");
			thisControl.select();
	  	thisControl.focus();
			return false;
		}
	
		if (len<2)
		{
			alert("De hostname ontbreekt in het adres.");
			thisControl.select();
	  	thisControl.focus();
			return false;
		}
		return true;
	} else {
		return false;
	}
}

function validateNewClient()
{
	// text fields
	var fieldsArray = ['firstname','surname','company','address','town','postcode','tel','fax','email','kvk','btw','progress'];
	for ( var i = 0; i < fieldsArray.length; i++ )
	{
		if (document.getElementById(fieldsArray[i]).value == '')
		{
			alert('Een of meerdere verplichte velden zijn niet ingevuld.\n\nGaarne verzoeken wij u de informatie te completeren.');
			document.getElementById(fieldsArray[i]).focus();
			return false;
		}
	}
	
	// radio fields
	if (!(document.getElementById('used1').checked || document.getElementById('used2').checked))
	{
		alert('Een of meerdere verplichte velden zijn niet ingevuld.\n\nGaarne verzoeken wij u de informatie te completeren.');
		document.getElementById('used1').focus();
		return false;
	}
	
	// check t&c checkbox
	if (!document.getElementById('conditions').checked)
	{
		alert('Een of meerdere verplichte velden zijn niet ingevuld.\n\nGaarne verzoeken wij u de informatie te completeren.');
		document.getElementById('conditions').focus();
		return false;
	}
	
	if (!emailCheckNL(document.getElementById('email')))
	{ return false; }
	
	return true;
}

function checkComments()
{
	if (document.getElementById('name').value == '' ||
			document.getElementById('email').value == '' ||
			document.getElementById('comments').value == '')
	{
			alert('Een of meerdere verplichte velden zijn niet ingevuld.\n\nGaarne verzoeken wij u de informatie te completeren.');
			return false;
	}
	
	if (!emailCheckNL(document.getElementById('email')))
	{  return false;}
	
	return true;
}
