
	var ns4 = (document.layers)? true : false;
	var ie4 = (document.all)? true : false;
	var moz = (document.getElementById && !document.all)? true : false;
	

	/*** Helper functions ***/
	function preventDefault(ev) {
		if (ie4) ev.returnValue = false;
		else if (moz) ev.preventDefault();
	}
	
	function objectById(id) {
		if (ns4) return document.layers[id]
		else if (ie4) return document.all.item(id)
		else if (moz) return document.getElementById(id);
	}
	
	function getObjectValue(obj) {
		if ((obj.length > 1) && !obj.type) {
			var sValue = '';
			for (i = 0; i < obj.length; i++) {
				if ((obj[i].type == 'radio') && obj[i].checked) {
					if (sValue != '') sValue = sValue + ',';
					sValue = sValue + obj[i].value;
				}
			}
			return sValue;
		} else {
			return obj.value;
		}
	}
	/*** End of Helper functions ***/

	/*** OnKeyPress Validation functions ***/
	function allowCharsAndDot() {
		if (ie4 && navigator.userAgent.indexOf('Mac') < 1 ) { 
			if (!/[a-zA-Z]|\.| /.test(String.fromCharCode(window.event.keyCode))) {
				preventDefault(window.event); 
			}
		}	
	}
	
	function allowDigits() {
		if (ie4 && navigator.userAgent.indexOf('Mac') < 1 ) { 
			if (!/[0-9]| /.test(String.fromCharCode(window.event.keyCode))) {
				preventDefault(window.event); 
			}
		}	
	}
	
	function allowCapitals() {
		if (ie4 && navigator.userAgent.indexOf('Mac') < 1 ) { 
			if (!/[A-Z]| /.test(String.fromCharCode(window.event.keyCode))) {
				preventDefault(window.event); 
			}
		}	
	}
	
	function allowAllChars() {
		if (ie4 && navigator.userAgent.indexOf('Mac') < 1 ) { 
			if (!/[a-zA-Z]| /.test(String.fromCharCode(window.event.keyCode))) {
				preventDefault(window.event); 
			}
		}	
	}
	
	function allowCharsAndNums() {
		if (ie4 && navigator.userAgent.indexOf('Mac') < 1 ) { 
			if (!/[0-9a-zA-Z]| /.test(String.fromCharCode(window.event.keyCode))) {
				preventDefault(window.event); 
			}
		}	
	}
	
	function allowAllCharsAndHyphin() {
		if (ie4 && navigator.userAgent.indexOf('Mac') < 1 ) { 
			if (!/[a-zA-Z]|\-/.test(String.fromCharCode(window.event.keyCode))) {
				preventDefault(window.event); 
			}
		}	
	}

	function allowAllCharsHyphinAndSpace() {
		if (ie4 && navigator.userAgent.indexOf('Mac') < 1 ) { 
			if (!/[a-zA-Z]|\-| /.test(String.fromCharCode(window.event.keyCode))) {
				preventDefault(window.event); 
			}
		}	
	}
	/*** End OnKeyPress Validation Functions ***/

	/*** OnSubmit Validation Function ***/
	function validateInitials() {
		var bOk = false;
		var obj = objectById('visregConfirmationDetails_tBoxInitials')
		var sValue = getObjectValue(obj);
		
		if (sValue != "" && /^([a-zA-Z]*\.*| +)*$/.test(sValue) && sValue != ''){
			bOk = true;
		}
		displayMessage('visregConfirmationDetails_lblConfirmatonDetailsInitials', bOk);
		return bOk;
	}
	
	function validateLastName() {
		var bOk = false;
		var obj = objectById('visregConfirmationDetails_tBoxLastName')
		var sValue = getObjectValue(obj);
		
		if (sValue != "" && /^[a-zA-Z]*| +$/.test(sValue)) {
			bOk = true;
		}
		displayMessage('visregConfirmationDetails_lblConfirmatonDetailsLastname', bOk);
		return bOk;
	}
	
	function validateFirstName() {
		var bOk = false;
		var obj = objectById('visregConfirmationDetails_tBoxFirstName')
		var sValue = getObjectValue(obj);
		
/*		if (sValue == "")
			return true;   */
			
		if (sValue != "" && /^[a-zA-Z]*| +$/.test(sValue)) {
			bOk = true;
		}
		
		displayMessage('visregConfirmationDetails_lblConfirmatonDetailsFirstName', bOk);
		return bOk;
	}
	/*
	// NOT NEEDED
	function validatePrefix() {
		var bOk = false;
		var obj = objectById('visregConfirmationDetails_tBoxPrefix')
		var sValue = getObjectValue(obj);
		
		if (sValue=="")
			return true;
			
		if (sValue != "" && /^[a-zA-Z]+| +$/.test(sValue)){
			bOk = true;
		}
		displayMessage('visregConfirmationDetails_lblConfirmatonDetailsPrefix', bOk);
		return bOk;
	}
	*/
	function validatePostCode1() {
		var bOk = false;
		var obj = objectById('visregConfirmationDetails_tBoxPostcode')
		if(obj != null){
			var sValue = getObjectValue(obj);
			
			if ((/^([0-9]+| +)$/.test(sValue)) && sValue != '') {
				bOk = true;
			}
		}else{
			bOk = true;
		}
		displayMessage('visregConfirmationDetails_lblConfirmatonDetailsPostcode', bOk);
		return bOk;
	}
	
	function validatePostCode2() {
		var bOk = false;
		var obj = objectById('visregConfirmationDetails_tBoxPostcode2')
		if(obj != null){
			var sValue = getObjectValue(obj);
			
			if ((/^([a-zA-Z]+| +)$/.test(sValue)) || sValue == ''){
				bOk = true;
			}
		}else{
			bOk = true;
		}
		displayMessage('visregConfirmationDetails_lblConfirmatonDetailsPostcode', bOk);
		return bOk;
	}
	
	function validatePostCodeOther() {
		var bOk = false;
		var obj = objectById('visregConfirmationDetails_tBoxPostcodeOther')
		if(obj != null){
			var sValue = getObjectValue(obj);
			
			if (sValue != '') {
				bOk = true;
			}
		}else{
			bOk = true;
		}
		displayMessage('visregConfirmationDetails_lblConfirmatonDetailsPostcode', bOk);
		return bOk;
	}
	
	function validateHouseNumber() {
		var bOk = false;
		var obj = objectById('visregConfirmationDetails_tBoxHouseNumber')
		var sValue = getObjectValue(obj);
		
		if (/^([0-9a-zA-Z]+| +)$/.test(sValue) && sValue != '') {
			bOk = true;
		}
		displayMessage('visregConfirmationDetails_lblConfirmatonDetailsHouseNumber', bOk);
		return bOk;
	}
	
	function validatePhone() {
		var bOk = false;
		var obj = objectById('visregConfirmationDetails_tBoxMobileNumber')
		var sValue = getObjectValue(obj);
		
		if ((/^([0-9]+| +)$/.test(sValue)) || sValue == ''){
			bOk = true;
		}
		displayMessage('visregConfirmationDetails_lblMobileNumbDescription', bOk);
		return bOk;
	}
	function validateStreet(){
		var bOk = false;
		var obj = objectById('visregConfirmationDetails_tBoxStreet')
		if(obj != null){
			var sValue = getObjectValue(obj);
			
			var ddlCountry = objectById('visregConfirmationDetails_ddlCountry');
			var countryID = getObjectValue(ddlCountry);
			if (sValue != '' || countryID == 154){//If selected country is Nederland
				bOk = true;
			}
		}else{
			bOk = true;
		}
		displayMessage('visregConfirmationDetails_lblConfirmatonDetailsStreet', bOk);
		return bOk;
	}
	function validateCity(){
		var bOk = false;
		var obj = objectById('visregConfirmationDetails_tBoxCity')
		if(obj != null){
			var sValue = getObjectValue(obj);
			
			var ddlCountry = objectById('visregConfirmationDetails_ddlCountry');
			var countryID = getObjectValue(ddlCountry);
			if (sValue != '' || countryID == 154){//If selected country is Nederland
				bOk = true;
			}
		}else{
			bOk = true;
		}
		displayMessage('visregConfirmationDetails_lblConfirmatonDetailsCity', bOk);
		return bOk;
	}
	
	function validateCompanyName()
	{
		var bOk = false;
		var obj = objectById('visregConfirmationDetails_tbCompanyName')
		var sValue = getObjectValue(obj);
		
		if (sValue != "") {
			bOk = true;
		}
		
		obj = objectById('visregConfirmationDetails_errorMessage1');
		var sErrMsg1 = getObjectValue(obj);
		obj = objectById('visregConfirmationDetails_requiredFieldMessage');
		var sErrMsg2 = getObjectValue(obj);
		if (!bOk) {
			var objLabel = objectById('visregConfirmationDetails_lblCompanyName')
			var sLabelText = objLabel.innerHTML;

			var sErrMsg = sErrMsg1 + " " + sLabelText + " " + sErrMsg2;
			alert(sErrMsg);
		}
			
		return bOk;
	}
	
	function validateDepartment()
	{
		var bOk = false;
		var obj = objectById('visregConfirmationDetails_tBoxDepartment')
		var sValue = getObjectValue(obj);
		if (sValue != "") {
			bOk = true;
		}
		displayMessage('visregConfirmationDetails_lblDepartment', bOk);
		return bOk;
	}
	
	function validateTelephone()
	{
		var bOk = false;
		var obj = objectById('visregConfirmationDetails_tBoxPhoneNumber');
		var sValue = getObjectValue(obj);
		obj = objectById('visregConfirmationDetails_errorMessage1');
		var sErrMsg1 = getObjectValue(obj);
		obj = objectById('visregConfirmationDetails_errorMessage3');
		var sErrMsg3 = getObjectValue(obj);

		if (sValue != "") {
			bOk = true;
			if ((/^([0-9\+-]+)$/.test(sValue))) {
				bOk = true;
			} else {
				bOk = false;
				var objLabel = objectById('visregConfirmationDetails_lblPhoneNumber')
				var sLabelText = objLabel.innerHTML;
				sErrMsg3 = sErrMsg3.replaceAll('#','\n');

				var sErrMsg = sErrMsg1 + " " + sLabelText + " " + sErrMsg3;
				alert(sErrMsg);
			}
		} else {
			obj = objectById('visregConfirmationDetails_errorMessage4');
			var sErrMsg4 = getObjectValue(obj);
			sErrMsg4 = sErrMsg4.replaceAll('#','\n');
			if (!bOk) {
				alert(sErrMsg4);
			}
		}

		return bOk;
	}
	/*** End OnSubmit Validation Function ***/
	
	/*** Form validation function ***/
	function validateConfirmationDetails(orgMand, depMand, telMand, hNumMand) {
		var bOk = true;
		var bOk = validateInitials();
		var bOk = bOk && validateFirstName();
		/*var bOk = bOk && validatePrefix();*/	// Not needed
		var bOk = bOk && validateLastName();
		
		if(orgMand != 'False') {
			var bOk = bOk && validateCompanyName();
		}
		
		if(depMand != 'False') {
			var bOk = bOk && validateDepartment();
		}
		
		if(telMand != 'False') {
			var bOk = bOk && validateTelephone();
		}
		
		if(hNumMand != 'False') {
			var bOk = bOk && validateHouseNumber();
		}
		
		var bOk = bOk && validatePostCode1();
		var bOk = bOk && validatePostCode2();
		var bOk = bOk && validatePostCodeOther();
		var bOk = bOk && validatePhone();
		var bOk = bOk && validateStreet();
		var bOk = bOk && validateCity();
		return bOk;
	}
	
	// Function which is replacing '#' to '\n'
	// because of the new line problem in alert message.
	String.prototype.replaceAll = function(pcFrom, pcTo) {
		var i = this.indexOf(pcFrom);
		var c = this;
		
		while (i > -1) {
			c = c.replace(pcFrom, pcTo);
			i = c.indexOf(pcFrom);
		}
		return c;
	}
	
	function displayMessage(controlID, bOk) {
		var obj = objectById(controlID);
		var sValue = obj.innerHTML;
		obj = objectById('visregConfirmationDetails_errorMessage1');
		var sErrMsg1 = getObjectValue(obj);
		obj = objectById('visregConfirmationDetails_errorMessage2');
		var sErrMsg2 = getObjectValue(obj);
		sErrMsg2 = sErrMsg2.replaceAll('#','\n');
		if (!bOk) {
			var sErrMsg = sErrMsg1 + " " + sValue + " " + sErrMsg2;
			alert(sErrMsg);
		}
	}
	/*** End Form validation function ***/