﻿function checkForm(form) {

	var v1 = form.naam.value;
	if (v1.length <= 0) {
		alert("\n U heeft geen naam ingevuld!");
		form.naam.focus();
		form.naam.select();
		return false;
	}

	if (emailCheck(form.email.value) == false) {
		form.email.focus();
		form.email.select();
		return false;
	}

	v1 = form.bericht.value;
	if (v1.length <= 0) {
		alert("\n U heeft geen bericht ingevuld!");
		form.bericht.focus();
		form.bericht.select();
		return false;
	}
}

function emailCheck(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("\n Het e-mailadres lijkt incorrect (controleer @ en punten) !");
		return false;
	}
	var user	= matchArray[1];
	var domain	= matchArray[2];

	// See if "user" is valid
	if (user.match(userPat)==null) {
		// user is not valid
		alert("\n De gebruikersnaam voor het @ van het e-mailadres lijkt incorrect!");
		return false;
	}
	var IPArray=domain.match(ipDomainPat);
	if (IPArray!=null) {
		// this is an IP address
		for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) {
				alert("\n Bestemmings IP-adres van het e-mailadres is ongeldig!");
				return false;
			}
		}
		return true;
	}

	// Domain is symbolic name
	var domainArray=domain.match(domainPat);
	if (domainArray==null) {
		alert("\n De domeinnaam van het e-mailadres lijkt incorrect!");
		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>4) {
	   alert("\n Het e-mailadres moet eindigen op een vier of drie letterig domein of een twee letterig land!");
	   return false;
	}

	// Make sure there's a host name preceding the domain.
	if (len<2) {
	   var errStr="\n Dit e-mailadres lijkt een hostnaam te missen!";
	   alert(errStr);
	   return false;
	}
}
