	function testEmail(field) 
	{ 		
		var err = false;
		var value = field.value;
		if (value != "")
		{
			var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
			var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$");
			err = r1.test(value) || !r2.test(value);
		}

		return(err);
	} 
	
	function checkEmail(fieldName, errorEmpty, errorIllegal)
	{
		var isValidEmail = checkTextEmpty(fieldName, errorEmpty);
		if (isValidEmail)
		{
			msg = "";
			var warning = document.getElementById(fieldName + "_warning");
			var field = document.getElementById(fieldName);
			var err = testEmail(field);
			if (err)
			{
				msg = errorIllegal;
				field.className = "error";
				warning.className = "error";
			}
			else
			{
				field.className = "";
				warning.className = "clearerror";
			}
			warning.innerHTML = msg;
			isValidEmail = msg == "";
		}
		return isValidEmail;
	}

	function checkTinyMCEEmpty(fieldId, errorString)
	{
		tinyMCE.triggerSave(true, true);
		var msg = "";
		var field = document.getElementById(fieldId);
		var warning = document.getElementById(fieldId + '_warning');
		var div = document.getElementById(fieldId + '_div');
		uppCase = field.value.toUpperCase();
		if (uppCase == "" || 
			uppCase == "<P>&NBSP;</P>" ||
			uppCase == "<BR>" ||
			uppCase == "<P><BR></P>")
		{
			field.className = "error";
			warning.className = "error";
			div.className = "error";
			msg = errorString;
		}	
		else
		{
			div.className = "clearerror";
			field.className = "";
			warning.className = "clearerror";
		}
		warning.innerHTML = msg;
		return msg == "";
	}

	
	function checkTextEmpty(fieldId, errorString)
	{
		var msg = "";
		var field = document.getElementById(fieldId);
		var warning = document.getElementById(fieldId + '_warning'); 
		if (field.value == "")
		{
			field.className = "error";
			warning.className = "error";
			msg = errorString;
		}	
		else
		{
			field.className = "";
			warning.className = "clearerror";
		}
		warning.innerHTML = msg;
		return msg == "";
	}
	
	function clearWarning(fieldId)
	{
		var field = document.getElementById(fieldId);
		var warning = document.getElementById(fieldId + '_warning'); 
		field.className = "";
		warning.className = "clearerror";
		warning.innerHTML = "";
	}

	//msgEmpty1: als wachtwoord leeg is
	//msgEmpty2: als wachtwoord herhaling leeg is
	//msgDifferent: als wachtwoord ongelijk aan herhaling wachtwoord is.
	function checkWachtwoord(fieldId1, fieldId2, msgEmpty1, msgEmpty2, msgDifferent)
	{
		var msg1 = "";
		var msg2 = "";
		var field1 = document.getElementById(fieldId1);
		var field2 = document.getElementById(fieldId2);
		var warning1 = document.getElementById(fieldId1 + '_warning');
		var warning2 = document.getElementById(fieldId2 + '_warning');
		if (field1.value == "")
		{
			field1.className = "error";
			warning1.className = "error";
			msg1 = msgEmpty1;
		}	
		else
		{
			field1.className = "";
			warning1.className = "clearerror";
		}
		warning1.innerHTML = msg1;

		if (field2.value == "")
		{
			field2.className = "error";
			warning2.className = "error";
			msg2 = msgEmpty2;
		}	
		else
		{
			field2.className = "";
			warning2.className = "clearerror";
		}
		warning2.innerHTML = msg2;
	
		if(msg1 == "" && msg2 == "")
		{
			if(field1.value != field2.value)
			{
				msg1 = msgDifferent;
				msg2 = msgDifferent;
				field1.className = "error";
				warning1.className = "error";
				field2.className = "error";
				warning2.className = "error";
			}
			else
			{
				field1.className = "";
				warning1.className = "clearerror";
				field2.className = "";
				warning2.className = "clearerror";
			}
			warning1.innerHTML = msg1;
			warning2.innerHTML = msg2;
		}
		return msg1 == "" && msg2 == "";
	}
	
	function isChecked(field)
	{
		return field.checked;
	}
	
	function checkCheckboxEmpty(fieldId, errorString)
	{
		var msg = "";
		var field = document.getElementById(fieldId);
		var div = document.getElementById(fieldId + "_div");
		var warning = document.getElementById(fieldId + "_warning");
		if (!field.checked)
		{
			div.className = "error";
			warning.className = "error";
			msg = errorString;	
		}	
		else
		{
			div.className = "";
			warning.className = "clearerror";
		}
		warning.innerHTML = msg;
		return msg == "";
	}

	function checkCheckboxListEmpty(fieldId)
	{
		var field = document.getElementById(fieldId);
		if (!field.checked)
		{
			return false;
		}		
	}
	
	function getRadioNumberChecked(field)
	{
		checked = -1;
		for (j = 0; j < field.length; j++)
		{
			checked = field[j].checked ? j : checked
		}
		return checked;
	}
	
	function checkRadioEmpty(field, element, errorString)
	{
		var msg = "";
		var div = document.getElementById(element + "_div");
		var warning = document.getElementById(element + "_warning");
		var checked = false;
		for (j = 0; j < field.length; j++)
		{
			checked = checked || field[j].checked;
		}
		
		if (checked == false)
		{
			div.className = "error";
			warning.className = "error";
			msg = errorString;	
		}
		else
		{
			div.className = "";			
//			warning.className = "clearerror";
			msg = "";
		}
		warning.innerHTML = msg;
		return msg == "";
	}
	
	function checkFieldsDifferent(fieldId1, fieldId2, errorString)
	{
		var	msg = "";
		var field1 = document.getElementById(fieldId1);
		var field2 = document.getElementById(fieldId2);
		if (field1.value == field2.value)
		{
			msg = errorString;
			document.getElementById(fieldId1 + "_div").className = "error";
			document.getElementById(fieldId2 + "_div").className = "error";
			document.getElementById(fieldId1 + "_warning").className = "error";			
			document.getElementById(fieldId2 + "_warning").className = "error";			
		}
		else
		{
			document.getElementById(fieldId1 + "_div").className = "clearerror";
			document.getElementById(fieldId2 + "_div").className = "clearerror";
			document.getElementById(fieldId1 + "_warning").className = "clearerror";			
			document.getElementById(fieldId2 + "_warning").className = "clearerror";			
		
		}
	
		document.getElementById(fieldId1 + "_warning").innerHTML = msg;
		document.getElementById(fieldId2 + "_warning").innerHTML = msg;
		return msg == "";
	}

	function checkSelectEmpty(fieldId, errorString)
	{
		var msg = "";
		var field = document.getElementById(fieldId);
		var warning = document.getElementById(fieldId + "_warning");
		var div = document.getElementById(fieldId + "_div");
		
		if (field.value == "")
		{
			msg = errorString
			div.className = "error";
			warning.className = "error";
		}
		else 
		{
			div.className = "clearerror";
			warning.className = "clearerror";
		}
		warning.innerHTML = msg;
		return msg == "";
	}

	function checkSelectMoreOptionEmpty(fieldId, moreOptionFieldValue, moreOptionFieldId, errorString, errorStringMoreOption)
	{
		var msg = "";
		
		if (checkSelectEmpty(fieldId, errorString))
		{
			var field = document.getElementById(fieldId);
			var moreOptionField = document.getElementById(moreOptionFieldId);
			var warning = document.getElementById(fieldId + "_warning");
			var div = document.getElementById(fieldId + "_div");

			if (field.value == moreOptionFieldValue && moreOptionField.value == "")
			{
				msg = errorStringMoreOption;
				div.className = "error";
				warning.className = "clearerror";
			}
			else
			{
				div.className = "clearerror";
				warning.className = "clearerror";
			}
			
			warning.innerHTML = msg;
		}

		return msg == "";
	}
	
	function checkDependantFields(fieldId1, fieldId2, errorString1, errorString2) 
	{
		var msg1 = "";
		var msg2 = "";

		var field1 = document.getElementById(fieldId1);
		var warning1 = document.getElementById(fieldId1 + "_warning");
		var field2 = document.getElementById(fieldId2);
		var warning2 = document.getElementById(fieldId2 + "_warning");
		
		if (field1.value != "" && field2.value == "")
		{
			field1.className = "clearerror";
			warning1.className = "clearerror";
			field2.className = "error";
			warning2.className = "error";				
			msg1 = "";
			msg2 = errorString2;
		}
		else
		{
			field2.className = "clearerror";
			warning2.className = "clearerror";				
		}

		if (field1.value == "" && field2.value != "")
		{
			field1.className = "error";
			warning1.className = "error";
			field2.className = "clearerror";
			warning2.className = "clearerror";				
			msg1 = errorString1;
			msg2 = "";
		}
		else 
		{
			field1.className = "clearerror";
			warning1.className = "clearerror";
		}
		
		warning1.innerHTML = msg1;
		warning2.innerHTML = msg2;
		return msg1 == "";
		return msg2 == "";
	}

	function setCheckedValue(radioObj, newValue) {
		if(!radioObj)
			return;
		var radioLength = radioObj.length;
		if(radioLength == undefined) {
			radioObj.checked = (radioObj.value == newValue.toString());
			return;
		}
		for(var i = 0; i < radioLength; i++) {
			radioObj[i].checked = false;
			if(radioObj[i].value == newValue.toString()) {
				radioObj[i].checked = true;
			}
		}
	}
	
	function checkBothNotEmpty(fieldId1, fieldId2, errorString) 
	{
		var msg = "";

		var field1 = document.getElementById(fieldId1);
		var warning1 = document.getElementById(fieldId1 + "_warning");
		var field2 = document.getElementById(fieldId2);
		var warning2 = document.getElementById(fieldId2 + "_warning");
		
		if (field1.value == "" && field2.value == "")
		{
			field1.className = "error";
			warning1.className = "error";
			field2.className = "error";
			warning2.className = "error";				
			msg = errorString;
		}
		else
		{
			field1.className = "clearerror";
			warning1.className = "clearerror";
			field2.className = "clearerror";
			warning2.className = "clearerror";				
		}

		warning1.innerHTML = msg;
		warning2.innerHTML = msg;
		return msg == "";

	}	
	
	function isValidDate(fieldId, errorString)
	{
		var msg = "";

		var dayField = document.getElementById(fieldId + "_date");
		var monthField = document.getElementById(fieldId + "_month");
		var yearField = document.getElementById(fieldId + "_year");
		var warning = document.getElementById(fieldId + "_warning");
		
		var day = dayField.value;
		var month = monthField.value - 1;
		var year = yearField.value;
		
    	var dteDate;
    	var dteDate = new Date(year, month, day);
		if (!((day == dteDate.getDate()) && (month == dteDate.getMonth()) && (year == dteDate.getFullYear())))
		{
			dayField.className = "error small";
			monthField.className = "error small";
			yearField.className = "error small";
			msg = errorString;
		}
		else
		{	
			dayField.className = "small";
			monthField.className = "small";
			yearField.className = "small";
		}
		warning.innerHTML = msg;
		return msg == "";
	}	