function submitZoekopdracht(zoekopdracht) {
	var ritValideren = validate(zoekopdracht,'zoekopdracht');
	
	if (ritValideren == true) {
		javascript:document.zoekopdracht.submit();
	}
}

function submitVerkoopbemiddeling(verkoopbemiddeling) {
	var ritValideren = validate(verkoopbemiddeling,'verkoopbemiddeling');
	
	if (ritValideren == true) {
		javascript:document.verkoopbemiddeling.submit();
	}
}

function submitContact(contact) {
	var ritValideren = validate(contact,'contact');
	
	if (ritValideren == true) {
		javascript:document.contact.submit();
	}
}

function submitWerkplaats(werkplaats) {
	var ritValideren = validate(werkplaats,'werkplaats');
	
	if (ritValideren == true) {
		javascript:document.werkplaats.submit();
	}
}

function submitAutovdweek(autovdweek) {
	var ritValideren = validate(autovdweek,'autovdweek');
	
	if (ritValideren == true) {
		javascript:document.autovdweek.submit();
	}
}

// form validation function //
function validate(form, soort) {

	var voorletters = form.voorletters.value;
	var geslacht = form.geslacht.value;
	var naam = form.naam.value;
	
	if (soort == "verkoopbemiddeling") {
		var adres = form.adres.value;
		var huisnummer = form.huisnummer.value;
		var postcode = form.postcode.value;
		var plaats = form.plaats.value;
		
		var telefoon = form.telefoon.value;
		var auto = form.huidige_auto.value;
		var kmstand = form.kmstand.value;
		var kenteken1 = form.kenteken1.value;
		var kenteken2 = form.kenteken2.value;
		var kenteken3 = form.kenteken3.value;
		var bouwjaar = form.bouwjaar.value;
	}
	
	if (soort == "zoekopdracht") {
		var adres = form.adres.value;
		var huisnummer = form.huisnummer.value;
		var postcode = form.postcode.value;
		var plaats = form.plaats.value;
		
		var telefoon = form.telefoon.value;
		var merk = form.merk.value;
		var model = form.model.value;
	}
	
	if (soort == "autovdweek") {
		var adres = form.adres.value;
		var huisnummer = form.huisnummer.value;
		var postcode = form.postcode.value;
		var plaats = form.plaats.value;
		
		var telefoon = form.telefoon.value;
	}
	
	if (soort == "werkplaats") {
		var adres = form.adres.value;
		var huisnummer = form.huisnummer.value;
		var postcode = form.postcode.value;
		var plaats = form.plaats.value;
		
		var telefoon = form.telefoon.value;
		
		var datum = form.datum.value;
		var tijd = form.tijd.value;
		var merk = form.merk.value;
	}
	
	var email = form.email.value;
	var opmerking = form.opmerking.value;
	var security_code = form.security_code.value;
	var security_code_conf = form.security_code_conf.value;
	
	// Alleen nummers
	var numRegex = /^[0-9]/;
	
	// Nummers en letters
	
	var numletRegex = /[0-9a-zA-Z]/;
	
	// Namen
	var nameRegex = /^[a-zA-Z]+(([\'\,\.\- ][a-zA-Z ])?[a-zA-Z]*)*$/;
	
	// Alleen letters en punten
	var voorletterRegex = /^(([a-zA-Z]*)[.]*)*$/;
	
	// Postcode
	var postcodeRegex = /^[0-9]+(([a-zA-Z ])?[a-zA-Z]*)*$/;
	
	// Alleen e-mailadressen
	var emailRegex = /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/;
	var messageRegex = new RegExp(/<\/?\w+((\s+\w+(\s*=\s*(?:".*?"|'.*?'|[^'">\s]+))?)+\s*|\s*)\/?>/gim);


	if (soort == "werkplaats") { // Werkplaats
  
		if(datum == "") {
    		inlineMsg('datum','De datum voor de afspraak moet nog ingevuld worden.',2);
    		return false;
  		}
  		if(datum == "") {
    		inlineMsg('tijd','De tijd voor de afspraak moet nog ingevuld worden.',2);
    		return false;
  		}
  		if(merk == "") {
    		inlineMsg('merk','Het merk/type moet nog ingevuld worden.',2);
    		return false;
  		}

  	}
  	
	// Standaard velden voor elk formulier
	if(voorletters == "") {
    	inlineMsg('voorletters','Uw voorletters moeten nog ingevuld worden.',2);
    	return false;
  	}
  	if(!voorletters.match(voorletterRegex)) {
    	inlineMsg('voorletters','Uw voorletters zijn niet juist ingevuld.',2);
    	return false;
  	}
  	if(naam == "") {
    	inlineMsg('naam','Uw naam moet nog ingevuld worden.',2);
    	return false;
  	}
  	if(!naam.match(nameRegex)) {
    	inlineMsg('naam','Uw naam is niet juist ingevuld.',2);
    	return false;
  	}
  
  	
  	
	if ((soort == "verkoopbemiddeling") || (soort == "zoekopdracht") || (soort == "werkplaats") || (soort == "autovdweek")) { // Verkoopbemiddeling, zoekopdracht, werkplaats en auto van de week
  
		if(adres == "") {
    		inlineMsg('adres','Uw straatnaam moet nog ingevuld worden.',2);
    		return false;
  		}
  		if(!adres.match(nameRegex)) {
   	 		inlineMsg('adres','Uw straatnaam is niet juist ingevuld.',2);
    		return false;
		}
		if(huisnummer == "") {
			inlineMsg('huisnummer','Uw huisnummer moet nog ingevuld worden.',2);
    		return false;
  		}
  		if(!huisnummer.match(numRegex)) {
    		inlineMsg('huisnummer','Uw huisnummer is niet juist ingevuld.',2);
    		return false;
  		}
  		if(postcode == "") {
    		inlineMsg('postcode','Uw postcode moet nog ingevuld worden.',2);
    		return false;
  		}
  		if(!postcode.match(postcodeRegex)) {
			inlineMsg('postcode','Uw postcode is niet juist ingevuld.',2);
    		return false;
  		}
  		if(plaats == "") {
    		inlineMsg('plaats','Uw woonplaats moet nog ingevuld worden.',2);
    		return false;
  		}
  		if(!plaats.match(nameRegex)) {
    		inlineMsg('plaats','Uw woonplaats is niet juist ingevuld.',2);
    		return false;
  		}
  
  	} // Einde soort verkoopbemiddeling of zoekopdracht
  
  	
  	// Standaard velden voor elk formulier
  	if(email == "") {
    	inlineMsg('email','Uw e-mailadres moet nog ingevuld worden.',2);
    	return false;
  	}
  	if(!email.match(emailRegex)) {
    	inlineMsg('email','Uw e-mailadres is niet juist ingevuld.',2);
    	return false;
  	}
  	
  	if ((soort == "werkplaats") || (soort == "autovdweek")) { // Werkplaats
  
		if(telefoon == "") {
    		inlineMsg('telefoon','Uw telefoonnummer moet nog ingevuld worden.',2);
    		return false;
  		}
  		if(!telefoon.match(numRegex)) {
    		inlineMsg('telefoon','Uw telefoonnummer is niet juist ingevuld.',2);
    		return false;
  		}
  	}
  		
  	if (soort == "zoekopdracht") { // Zoekopdracht
  
		if(telefoon == "") {
    		inlineMsg('telefoon','Uw telefoonnummer moet nog ingevuld worden.',2);
    		return false;
  		}
  		if(!telefoon.match(numRegex)) {
    		inlineMsg('telefoon','Uw telefoonnummer is niet juist ingevuld.',2);
    		return false;
  		}
  		if(merk == "") {
    		inlineMsg('merk','Het merk moet nog ingevuld worden.',2);
    		return false;
  		}
  		if(model == "") {
    		inlineMsg('model','Het model moet nog ingevuld worden.',2);
    		return false;
  		}
  	}
  		
  		
  	if (soort == "verkoopbemiddeling") { // verkoopbemiddeling
  
  		if(telefoon == "") {
    		inlineMsg('telefoon','Uw telefoonnummer moet nog ingevuld worden.',2);
    		return false;
  		}
  		if(!telefoon.match(numRegex)) {
    		inlineMsg('telefoon','Uw telefoonnummer is niet juist ingevuld.',2);
    		return false;
  		}
  		if(auto == "") {
    		inlineMsg('huidige_auto','Uw auto moet nog ingevuld worden.',2);
    		return false;
  		}
  		if(kmstand == "") {
    		inlineMsg('kmstand','Uw kilometer-stand moet nog ingevuld worden.',2);
    		return false;
  		}
  		if(!kmstand.match(numRegex)) {
    		inlineMsg('kmstand','Uw kilometer-stand is niet juist ingevuld.',2);
    		return false;
  		}
  		if(kenteken1 == "") {
    		inlineMsg('kenteken1','Het eerste gedeelte van uw kenteken moet nog ingevuld worden.',2);
    		return false;
  		}
  		if(!kenteken1.match(numletRegex)) {
    		inlineMsg('kenteken1','Het eerste gedeelte van uw kenteken is niet juist ingevuld.',2);
    		return false;
  		}
  		if(kenteken2 == "") {
    		inlineMsg('kenteken2','Het tweede gedeelte van uw kenteken moet nog ingevuld worden.',2);
    		return false;
  		}
  		if(!kenteken2.match(numletRegex)) {
    		inlineMsg('kenteken2','Het tweede gedeelte van uw kenteken is niet juist ingevuld.',2);
    		return false;
  		}
  		if(kenteken3 == "") {
			inlineMsg('kenteken3','Het derde gedeelte van uw kenteken moet nog ingevuld worden.',2);
    		return false;
  		}
 		if(!kenteken3.match(numletRegex)) {
    		inlineMsg('kenteken3','Het derde gedeelte van uw kenteken is niet juist ingevuld.',2);
    		return false;
		}
  		if(bouwjaar == "") {
    		inlineMsg('bouwjaar_f','Het bouwjaar van uw auto moet nog ingevuld worden.',2);
    		return false;
  		}
  		if(!bouwjaar.match(numRegex)) {
			inlineMsg('bouwjaar_f','Het bouwjaar van uw auto is niet juist ingevuld.',2);
   			return false;
  		}
  
	} // Einde soort verkoopbemiddeling
  
  
	if (soort == "contact") {
  
		if(opmerking == "") {
			inlineMsg('opmerking','Vul hier uw opmerking in.',2);
			return false;
		}
	} // Einde soort contact
  
  	
  	// Standaard velden voor elk formulier
	if(security_code == "") {
    	inlineMsg('security_code','De veiligheidscode moet nog ingevuld worden.',2);
    	return false;
  	}
  	if(security_code != security_code_conf) {
    	inlineMsg('security_code','De veiligheidscode is niet juist ingevuld.',2);
    	return false;
  	}
  
	return true;
}

// START OF MESSAGE SCRIPT //

var MSGTIMER = 20;
var MSGSPEED = 5;
var MSGOFFSET = 3;
var MSGHIDE = 3;

// build out the divs, set attributes and call the fade function //
function inlineMsg(target,string,autohide) {
  var msg;
  var msgcontent;
  if(!document.getElementById('msg')) {
    msg = document.createElement('div');
    msg.id = 'msg';
    msgcontent = document.createElement('div');
    msgcontent.id = 'msgcontent';
    document.body.appendChild(msg);
    msg.appendChild(msgcontent);
    msg.style.filter = 'alpha(opacity=0)';
    msg.style.opacity = 0;
    msg.alpha = 0;
  } else {
    msg = document.getElementById('msg');
    msgcontent = document.getElementById('msgcontent');
  }
  msgcontent.innerHTML = string;
  msg.style.display = 'block';
  var msgheight = msg.offsetHeight;
  var targetdiv = document.getElementById(target);
  targetdiv.focus();
  var targetheight = targetdiv.offsetHeight;
  var targetwidth = targetdiv.offsetWidth;
  var topposition = topPosition(targetdiv) - ((msgheight - targetheight) / 2);
  var leftposition = leftPosition(targetdiv) + targetwidth + MSGOFFSET;
  msg.style.top = topposition + 'px';
  msg.style.left = leftposition + 'px';
  clearInterval(msg.timer);
  msg.timer = setInterval("fadeMsg(1)", MSGTIMER);
  if(!autohide) {
    autohide = MSGHIDE;  
  }
  window.setTimeout("hideMsg()", (autohide * 1000));
}

// hide the form alert //
function hideMsg(msg) {
  var msg = document.getElementById('msg');
  if(!msg.timer) {
    msg.timer = setInterval("fadeMsg(0)", MSGTIMER);
  }
}

// face the message box //
function fadeMsg(flag) {
  if(flag == null) {
    flag = 1;
  }
  var msg = document.getElementById('msg');
  var value;
  if(flag == 1) {
    value = msg.alpha + MSGSPEED;
  } else {
    value = msg.alpha - MSGSPEED;
  }
  msg.alpha = value;
  msg.style.opacity = (value / 100);
  msg.style.filter = 'alpha(opacity=' + value + ')';
  if(value >= 99) {
    clearInterval(msg.timer);
    msg.timer = null;
  } else if(value <= 1) {
    msg.style.display = "none";
    clearInterval(msg.timer);
  }
}

// calculate the position of the element in relation to the left of the browser //
function leftPosition(target) {
  var left = 0;
  if(target.offsetParent) {
    while(1) {
      left += target.offsetLeft;
      if(!target.offsetParent) {
        break;
      }
      target = target.offsetParent;
    }
  } else if(target.x) {
    left += target.x;
  }
  return left;
}

// calculate the position of the element in relation to the top of the browser window //
function topPosition(target) {
  var top = 0;
  if(target.offsetParent) {
    while(1) {
      top += target.offsetTop;
      if(!target.offsetParent) {
        break;
      }
      target = target.offsetParent;
    }
  } else if(target.y) {
    top += target.y;
  }
  return top;
}

// preload the arrow //
if(document.images) {
  arrow = new Image(7,80); 
  arrow.src = "images/msg_arrow.gif"; 
}