function checkCompany() {
	if (document.submitOrder.businessyes.checked) {
		MM_findObj('compLabel').style.visibility = 'visible';
		MM_findObj('compInput').style.visibility = 'visible';
		document.submitOrder.businessname.focus();
	} else {
		MM_findObj('compLabel').style.visibility = 'hidden';
		MM_findObj('compInput').style.visibility = 'hidden';
		MM_findObj('compInput').value = '';
	}
}

function checkCompanyRequest() {
	if (document.requestGuide.businessyes.checked) {
		MM_findObj('companyRow').style.display = 'block';
		document.requestGuide.businessname.focus();
	} else {
		MM_findObj('companyRow').style.display = 'none';
		MM_findObj('compInput').value = '';
	}
}

function containsNumber(val) {
	for (i=0; i<val.length; i++) {
		if (!isNaN(val.substring(i, i+1)) && val.substring(i, i+1) != ' ') {
			return true;
			break;
		}
	}
	return false;
}

function checkPostalCode2(val) {
	if(val.length != 2) {
		return false;
	}
	for (i=0; i<val.length; i++) {
		character = val.substring(i, i+1).toUpperCase();
		// 65, 90
		if (character.charCodeAt(0) < 65 || character.charCodeAt(0) > 90) {
			return false;
		}
	}
	return true;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_validateForm() { //v4.20
  var i,p,q,nm,test,show,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) {
		test=args[i+2]; val=MM_findObj(args[i]); show=args[i+1];
    if (val) { 
			nm=val.name; 
			if ((val=val.value)!="") {
				if (show == "") show = nm;
				if (test.indexOf('isEmail')!=-1) { 
					p=val.indexOf('@');
					if (p<1 || p==(val.length-1)) errors+='- \''+val+'\' is no valid email address\n';
				} else if (test!='R') { 
					num = parseFloat(val);
					if (isNaN(val)) errors+='- '+show+' A number is required.\n';
					if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
					min=test.substring(8,p); max=test.substring(p+1);
					if (min==10000000000&&max==99999999999) {
						if (num<1000000000||num>9999999999) errors+='- '+show+' is no valid phone number.\n';
					} else {
						if (num<min || max<num) errors+='- '+show+' should be between '+min+' and '+max+'.\n';
					}
				} 
			} 
		} else if (test.charAt(0) == 'R') errors += '- '+show+' is required.\n'; }
  } 
	return errors;
}

function validateForm() {
	var errors = '';
	
	errors = errors + MM_validateForm('name','Name','R');
	errors = errors + MM_validateForm('surname','Surname','R');
	errors = errors + MM_validateForm('address','Address','R');
	
	val=MM_findObj('address').value;
	var containsNum = containsNumber(val);
	if (!containsNum) errors += '- The address is incomplete.\n';	
	
	errors = errors + MM_validateForm('postalcode2','Post code','R');
	errors = errors + MM_validateForm('city','Town','R');
	errors = errors + MM_validateForm('phone','Telephone','RisNum');
	errors = errors + MM_validateForm('email','Email address','RisEmail');
	
	val=MM_findObj('payment').value;
	if (val == -1) errors += '- Select a payment method.\n';	
	
	if (errors != '') 
		alert('The following error(s) occured:\n\n' + errors);
	else {
		var firstorder = (MM_findObj('consID').value == ''?true:false);
		if (firstorder) {
			var emailorig = MM_findObj('email').value.toLowerCase();
			var emailconf = prompt('Confirm your email address','Please confirm your email address.');
			if (emailconf == null) emailconf = '';
			else                   emailconf = emailconf.toLowerCase();
			
			if (emailorig != emailconf)
				alert('Your email address is not correct.\nCheck your email address and try again.');
			else
				document.forms.submitOrder.submit();
		}
		else
			document.forms.submitOrder.submit();
	}
}

function validateRequestForm() {
	var errors = '';
	errors = errors + MM_validateForm('name','Name','R');
	errors = errors + MM_validateForm('surname','Surname','R');
	errors = errors + MM_validateForm('address','Address','R');
	
	val=MM_findObj('address').value;
	var containsNum = containsNumber(val);
	if (!containsNum) errors += '- The address is incomplete.\n';	
	
	errors = errors + MM_validateForm('postalcode','Post code (part 1)','RinRange1000:9999');
	
	val=MM_findObj('postalcode2').value;
	var isValidPC2 = checkPostalCode2(val);
	if (!isValidPC2)  errors += '- Post code (part 2) is not a valid post code.\n';	
	
	errors = errors + MM_validateForm('city','Town','R');
	errors = errors + MM_validateForm('phone','Telephone number','RinRange10000000000:99999999999');
	errors = errors + MM_validateForm('email','Email address','RisEmail');
	errors = errors + MM_validateForm('dob','Date of birth','R');
	
	if (MM_findObj('edition').selectedIndex == 0) errors += '- U heeft geen HapGids editie geselecteerd.\n';
	if (MM_findObj('hoegevonden').selectedIndex == 0) errors += '- U heeft niet aangegeven hoe u ons gevonden heeft.\n';
	
	if (errors != '') {
		alert('The following error(s) occured:\n\n' + errors);
	} else {
		requestGuide.submit();
	}
}

function preSelectEdition(val) {
	val = val.toLowerCase();
	field = MM_findObj('edition');
	for (i=0; i<field.options.length; i++) {
		if (field.selectedIndex == 0 && val == field.options[i].value.toLowerCase())
			field.selectedIndex = i;
	}
}

function validateContactForm() {
	var errors = '';
	errors = errors + MM_validateForm('name','Name','R');
	errors = errors + MM_validateForm('email','Email address','RisEmail');
	if (errors != '') {
		alert('The following error(s) occured:\n\n' + errors);
	} else {
		contactForm.submit();
	}
}

function validateFriendsForm() {
	var errors = '';
	errors = errors + MM_validateForm('name','Je naam','R');
	errors = errors + MM_validateForm('mail','Email','RisEmail');
	errors = errors + MM_validateForm('friend1name','Naam vriend(in) 1','R');
	errors = errors + MM_validateForm('friend1mail','Email vriend(in) 1','RisEmail');
	errors = errors + MM_validateForm('friend2mail','Email vriend(in) 2','NisEmail');
	if (errors != '') {
		alert('The following error(s) occured:\n\n' + errors);
		return false;
	} else {
		return true;
	}
}

function validateOneFriendForm() {
	var errors = '';
	errors = errors + MM_validateForm('name','Je naam','R');
	errors = errors + MM_validateForm('mail','Je email','RisEmail');
  	errors = errors + MM_validateForm('friend1name','Naam vriend(in)','R');
  	errors = errors + MM_validateForm('friend1mail','Email vriend(in)','RisEmail');
	if (errors != '') {
		alert('The following error(s) occured:\n\n' + errors);
	} else {
		document.tellonefriend.submit();
	}
}

function validateTenPercentForm() {
	var errors = '';
	errors = errors + MM_validateForm('name','Voornaam','R');
	errors = errors + MM_validateForm('surname','Achternaam','R');
	errors = errors + MM_validateForm('address','Adres','R');
	
	val=MM_findObj('address').value;
	var containsNum = containsNumber(val);
	if (!containsNum) errors += '- Het adres bevat geen huisnummer.\n';	
	
	errors = errors + MM_validateForm('postalcode','Postcode (deel 1)','RinRange1000:9999');
	
	val=MM_findObj('postalcode2').value;
	var isValidPC2 = checkPostalCode2(val);
	if (!isValidPC2)  errors += '- Postcode (deel 2) is geen geldige postcode.\n';	
	
	errors = errors + MM_validateForm('city','Plaats','R');
	errors = errors + MM_validateForm('phone','Telefoonnummer','RinRange10000000000:99999999999');
	errors = errors + MM_validateForm('email','E-mail','RisEmail');
	errors = errors + MM_validateForm('dob','Geboortedatum','R');
	errors = errors + MM_validateForm('accountno','Rekeningnummer','RisNum');
	
	if (MM_findObj('privsit').selectedIndex == 0) errors += '- Gezinssituatie is verplicht.\n';

	if (errors != '') {
		alert('The following error(s) occured:\n\n' + errors);
	} else {
		document.tenpercentaction.submit();
	}
}

function validateReviewComment(field) {
	val = field.value
	if (val.length > 2000) {
		alert("Het opmerkingenveld bevat teveel tekst.\nWanneer je toch doorgaat zal deze tekst worden beperkt tot 2000 tekens.");
	}
}

function validateHGWUserForm() {
	var errors = '';
	
	val=MM_findObj('emailuser').value + MM_findObj('emaildomain').value;
	MM_findObj('email').value = val;

	errors = errors + MM_validateForm('voornaam','Name','R');
	errors = errors + MM_validateForm('achternaam','Surname','R');
	errors = errors + MM_validateForm('telefoon','Telephone number','RinRange10000000000:99999999999');
	errors = errors + MM_validateForm('mobiel','Mobile','NinRange10000000000:99999999999');
	errors = errors + MM_validateForm('afdeling','Department','R');	
	errors = errors + MM_validateForm('adres','Address','R');
	
	val=MM_findObj('adres').value;
	var containsNum = containsNumber(val);
	if (!containsNum) errors += '- The address is incomplete.\n';	
	
	errors = errors + MM_validateForm('postcode1','Post code (part 1)','R');
	errors = errors + MM_validateForm('postcode2','Post code (part 2)','R');
	
	errors = errors + MM_validateForm('plaats','Town','R');
	errors = errors + MM_validateForm('email','Email address','RisEmail');
	errors = errors + MM_validateForm('wachtwoord','Password','R');

	if (errors != '') {
		alert('The following error(s) occured:\n\n' + errors);
		return false;
	} else {
		return true;
	}
}

function validateHGWLoginForm() {
	var errors = '';
	errors = errors + MM_validateForm('email','Username','RisEmail');
	errors = errors + MM_validateForm('password','Password','R');
	if (MM_findObj('postalcode').value != '') { errors = errors + MM_validateForm('postalcode','Post code (part 1)','R'); }
	if (MM_findObj('postalcode').value != '') { errors = errors + MM_validateForm('postalcode2','Post code (part 2)','R'); }
	if (errors != '') {
		alert('The following error(s) occured:\n\n' + errors);
		return false;
	} else {
		return true;
	}
}

function validateHGWForgetPassword() {
	var errors = '';
	errors = errors + MM_validateForm('email','Email address','RisEmail');
	if (errors != '') {
		alert('The following error(s) occured:\n\n' + errors);
		return false;
	} else {
		return true;
	}
}

function validateHGWContactForm() {
	var errors = '';
	errors = errors + MM_validateForm('naam','Name','R');
	errors = errors + MM_validateForm('bedrijf','Company','R');
	errors = errors + MM_validateForm('telefoon','Telephone number','RinRange10000000000:99999999999');
	errors = errors + MM_validateForm('email','Email address','RisEmail');
	if (errors != '') {
		alert('The following error(s) occured:\n\n' + errors);
		return false;
	} else {
		return true;
	}
}

function validateHGWAanmeldForm() {
	var errors = '';
	errors = errors + MM_validateForm('naam','Name','R');
	errors = errors + MM_validateForm('bedrijf','Company','R');
	errors = errors + MM_validateForm('functie','Job title','R');
	errors = errors + MM_validateForm('email','Email address','RisEmail');
	errors = errors + MM_validateForm('telalg','Telephone number','RinRange10000000000:99999999999');
	errors = errors + MM_validateForm('adres','Address','R');
	
	val=MM_findObj('adres').value;
	var containsNum = containsNumber(val);
	if (!containsNum) errors += '- The address is incomplete.\n';	
	
	errors = errors + MM_validateForm('postcode1','Post code (part 1)','R');
	errors = errors + MM_validateForm('postcode2','Post code (part 2)','R');
	
	errors = errors + MM_validateForm('plaats','Town','R');
	errors = errors + MM_validateForm('werknemers','Employees','R');
	if (errors != '') {
		alert('The following error(s) occured:\n\n' + errors);
		return false;
	} else {
		return true;
	}
}