//variables
var maxWidth = 450;
var maxChars = 768;
var curChars = 0;

function formCheck ()
{
	var allValid = true;
	//temporary skip checks
		
	if ((document.frm.woonplaats.value=="")||(document.frm.afzender.value=="")||(document.frm.reactietekst.value=="")) 
	{
		allValid = false ;
		alert("Alle velden zijn verplicht!")
	}
	
	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=document.frm.emailadres.value.match(emailPat);
	if (matchArray==null)
	{
		allValid = false;
		alert("Uw E-mailadres lijkt incorrect");
		history.go(0);
		return false;
	}

	var user=matchArray[1];
	var domain=matchArray[2];

	for (i=0; i<user.length; i++)
	{
		if (user.charCodeAt(i)>127)
		{
			allValid = false;
			alert("Deze gebruikersnaam bevat ongeldige tekens");
			history.go(0);
			return false;
		}
	}

	for (i=0; i<domain.length; i++)
	{
		if (domain.charCodeAt(i)>127)
		{
			allValid = false;
			alert("Deze domeinnaam bevat ongeldige tekens");
			history.go(0);
			return false;
		}
	}

	if (user.match(userPat)==null)
	{
		allValid = false;
		alert("De gebruikersnaam is ongeldig");
		history.go(0);
		return false;
	}

	var IPArray=domain.match(ipDomainPat);

	if (IPArray!=null)
	{
		for (var i=1;i<=4;i++)
		{
			if (IPArray[i]>255)
			{
				allValid = false;
				alert("Het IP-adres is ongeldig");
				history.go(0);
				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)
		{
			allValid = false;
			alert("De domeinnaam is ongeldig");
			history.go(0);
			return false;
		}
	}

	if (checkTLD && domArr[domArr.length-1].length!=2 && domArr[domArr.length-1].search(knownDomsPat)==-1)
	{
		allValid = false;
		alert("Het e-mailadres moet eindigen op een geldige domein-extentie");
		history.go(0);
		return false;
	}

	if (len<2)
	{
		alert("Dit e-mailadres mist een hostnaam");
		history.go(0);
		allValid = false;
		return false;
	}


	else
	{	
		if (allValid == true)
			document.frm.submit();
			window.open('about:blank','popup','width=200,height=150');
			history.go(-1);
			return true;
			
	}
}

function validateEmail(addr, man, db) {
	var mandatory = "U moet een e-mailadres invullen.";
	var invalidChars = "Het ingevulde e-mailadres bevat verboden karakters.";
	var noAtSign = "Het ingevulde e-mailadres bevat geen apenstaartje (@).";
	var noAtSignAtStart = "Het ingevulde e-mailadres mag niet met een apenstaartje (@) beginnen.";
	var oneAtSign = "Het ingevulde e-mailadres mag slechts een apenstaartje (@) bevatten.";
	var noPeriod = "Het ingevulde e-mailadres moet een punt bevatten.";
	var noAtPeriod1 = "Het ingevulde e-mailadres mag geen punt direct na een apenstaartje hebben.";
	var noAtPeriod2 = "Het ingevulde e-mailadres mag geen apenstaartje direct na een punt hebben.";
	var no2Period = "Het ingevulde e-mail adres mag geen twee punten na elkaar bevatten..";
	var invalidDomain = "Het ingevulde e-mail adres bevat een fout domein-naam.";

	if (addr == '' && man) {
	   if (db) alert(mandatory);
	   return false;
	}
	var invalidChars = '\/\'\\ ";:?!()[]\{\}^|';
	for (i=0; i<invalidChars.length; i++) {
	   if (addr.indexOf(invalidChars.charAt(i),0) > -1) {
	      if (db) alert(invalidChars);
	      return false;
	   }
	}
	for (i=0; i<addr.length; i++) {
	   if (addr.charCodeAt(i)>127) {
	      if (db) alert(invalidChars);
	      return false;
	   }
	}
	
	var atPos = addr.indexOf('@',0);
	if (atPos == -1) {
	   if (db) alert(noAtSign);
	   return false;
	}
	if (atPos == 0) {
	   if (db) alert(noAtSignAtStart);
	   return false;
	}
	if (addr.indexOf('@', atPos + 1) > - 1) {
	   if (db) alert(oneAtSign);
	   return false;
	}
	if (addr.indexOf('.', atPos) == -1) {
	   if (db) alert(noPeriod);
	   return false;
	}
	if (addr.indexOf('@.',0) != -1) {
	   if (db) alert(noAtPeriod1);
	   return false;
	}
	if (addr.indexOf('.@',0) != -1){
	   if (db) alert(noAtPeriod2);
	   return false;
	}
	if (addr.indexOf('..',0) != -1) {
	   if (db) alert(no2Period);
	   return false;
	}
	var suffix = addr.substring(addr.lastIndexOf('.')+1);
	if (suffix.length != 2 && suffix != 'com' && suffix != 'net' && suffix != 'org' && suffix != 'edu' && suffix != 'int' && suffix != 'mil' && suffix != 'gov' & suffix != 'arpa' && suffix != 'biz' && suffix != 'aero' && suffix != 'name' && suffix != 'coop' && suffix != 'info' && suffix != 'pro' && suffix != 'museum') {
	   if (db) alert(invalidDomain);
	   return false;
	}
	return true;
}

function validateNameField(value) {
	if(isEmpty(value)) {
		alert("U heeft geen naam ingevuld.");
		return false;
	}
	return true;
}


/* ------------------------------------------------------------------------------------------------------------ */
function getRef (divID, oDoc) {
        if (!oDoc) {
                oDoc = document;
        }
        if (document.layers) {
                if (oDoc.layers[divID]) {
                        return oDoc.layers[divID];
                } else {
                        for (var x = 0, y; !y && x < oDoc.layers.length; x++) {
                                y = getRef (divID, oDoc.layers[x].document);
                        }
                        return y;
                }
        }
        if (document.getElementById) {
                return document.getElementById (divID);
        }
        if (document.all) {
                return document.all[divID];
        }
        return document[divID];
}


function doOnKeyUp(tekstObj, uimg) {
	curChars= tekstObj.value.length;
		
	if (curChars > maxChars) {
		tekstObj.value= tekstObj.value.substring (0, maxChars);
		curChars= maxChars;
	}

	var pct= maxChars / 100;
	var used= (curChars / pct);
	var usedsize= parseInt (used * (maxWidth / 100));
	if (usedsize > maxWidth) {
		usedsize= maxWidth;
	}
	uimg.width= usedsize;
}

function formCheck ()
{
	var allValid = true;
	//temporary skip checks
		
	var re = /^\s{1,}$/g; //match any white space including space, tab, form-feed, etc.
			
	//no reaction text
	if ((document.frm.reactietekst.value.length==0) || (document.frm.reactietekst.value==null) || (document.frm.reactietekst.value.search(re) > -1) || (document.frm.reactietekst.value=="")) {
		allValid = false ;
		history.go(0);
		alert("U heeft geen reactie ingevuld.");
		return false;
	}
	
	//no sender	
	if(document.frm.afzender.value=="") {
		allValid = false ;
		history.go(0);
		alert("U heeft geen naam ingevuld.");
		return false;
	}	
	
	//no adress
	if(document.frm.woonplaats.value=="") {
		allValid = false ;
		history.go(0);
		alert("U heeft geen woonplaats ingevuld.");		
		return false;
	}	
	else
	{	
		if (allValid == true)
			window.open('about:blank','popup','width=200,height=150');
			document.frm.submit();
			history.go(-1);
			return true;
	}
}

