function trim(value) {
	value = value.replace(/^\s+/,'');
	value = value.replace(/\s+$/,'');
	return value;
}

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)
		return "Emailadres is niet goed, controleer @ en .";
	var user=matchArray[1]
	var domain=matchArray[2]

	if (user.match(userPat)==null)
		return "De gebruikersnaam is niet goed";
	var IPArray=domain.match(ipDomainPat)
	if (IPArray!=null) {
			for (var i=1;i<=4;i++) {
			if (IPArray[i] > 255)
				return "Doel-IP adres is niet goed";
		}
		return "";
	}
	var domainArray=domain.match(domainPat)
	if (domainArray==null)
		return "Het domein is niet valide";
	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>6)
		 return "";
	if (len < 2) {
		 return "Het adres heeft geen hostnaam";
	}
	return "";
}

function checkform()
{
	var l_bSucces = false;

	var count = 0;
	var msg = "";
	
	tbl = document.getElementById("contentform");
	var totalcount = tbl.tBodies[0].rows.length;


	for (i = 0; i < totalcount; i++) {		
		if (tbl.tBodies[0].rows[i].cells.length > 3) {		 
			
			for (j = 0; j < tbl.tBodies[0].rows[i].cells[2].childNodes.length; j++) {
				if (tbl.tBodies[0].rows[i].cells[2].childNodes[j].nodeName == 'INPUT' || tbl.tBodies[0].rows[i].cells[2].childNodes[j].nodeName == 'SELECT' || tbl.tBodies[0].rows[i].cells[2].childNodes[j].nodeName == 'TEXTAREA') {
					var inp = tbl.tBodies[0].rows[i].cells[2].childNodes[j];
					break;
				}
			}
			var val = inp.value;


			if(tbl.tBodies[0].rows[i].cells[3].firstChild && trim(inp.value).length == 0)
			{
				var name = "";
				if(tbl.tBodies[0].rows[i].cells[0].firstChild)
					name = tbl.tBodies[0].rows[i].cells[0].firstChild.nodeValue;

				msg += sprintf(_TEXT_OBLIGATED, name) + "\n";
				count++;
				if(count > totalcount)
				{
					alert(msg);
					return false;
				} 
			}
			if(val != "")
			{
				if(inp.className == "number")
				{
					if(parseInt(inp.value) != inp.value)
					{
						msg += "Het veld '" + tbl.tBodies[0].rows[i].cells[0].firstChild.nodeValue + "' is geen nummer\r\n";
						count++;
						if(count > totalcount)
						{
							alert(msg);
							return false;
						}
					}
				}
				if(inp.className == "phonenumber")
				{
					rePhoneNumber = new RegExp(/^[0-9 + -]*$/);
					if (!rePhoneNumber.test(inp.value)) 
					{
						msg += "Het veld '" + tbl.tBodies[0].rows[i].cells[0].firstChild.nodeValue + "' is geen telefoonnummer\r\n";
						count++;
						if(count > totalcount)
						{
							alert(msg);
							return false;
						}
					}
				}
				if(inp.className == "postcode")
				{
					rePostalCode = new RegExp(/^[0-9]{4}[A-z]{2}/);
					if (!rePostalCode.test(inp.value)) 
					{
						msg += "Het veld '" + tbl.tBodies[0].rows[i].cells[0].firstChild.nodeValue + "' is geen postcode\r\n";
						count++;
						if(count > totalcount)
						{
							alert(msg);
							return false;
						}
					}
				}
				if(inp.className == "email")
				{
					err = emailCheck(inp.value);
					if (err != "") 
					{
						msg += "Het veld '" + tbl.tBodies[0].rows[i].cells[0].firstChild.nodeValue + "' is geen emailadres: "+err+"\r\n";
						count++;
						if(count > totalcount)
						{
							alert(msg);
							return false;
						}
					}
				}	
			}
		}
	}
	if (msg.length > 0) {
		alert(msg);
		return false;
	} else {
		l_bSuccess = true;
	}
	
	return l_bSuccess;

}