// For a more flexible event registration routine, see
// http://simon.incutio.com/archive/2004/05/26/addLoadEvent
attachFormHandlers();


function attachFormHandlers()
{
  // Ensure we're working with a 'relatively' standards 
  // compliant browser
  if (document.getElementsByTagName)
  {
    var objForm = document.getElementsByTagName('form');

    for (var iCounter=0; iCounter<objForm.length; iCounter++)
      objForm[iCounter].onsubmit = function(){
		  var s = checkForm(this);
		  return s;
		  }
  }
}

function checkForm(objForm)
{

  var arClass, bValid;
  var objField = objForm.getElementsByTagName('*');

  for (var iFieldCounter=0; iFieldCounter<objField.length; iFieldCounter++)
  {
    // Allow for multiple values being assigned to the class attribute
    arClass = objField[iFieldCounter].className.split(' ');
    for (var iClassCounter=0; iClassCounter<arClass.length; iClassCounter++)
    {
      switch (arClass[iClassCounter])
      {
		  case 'isEmpty':
           bValid = objField[iFieldCounter].value != "";
           break;
        case 'string':
           bValid = isString(objField[iFieldCounter].value.replace(/^\s*|\s*$/g, ''));
           break;
        case 'number' :
           bValid = isNumber(objField[iFieldCounter].value);
           break;
        case 'email' :
           bValid = isEmail(objField[iFieldCounter].value);
             break;
			 
		 case 'postcode' :
           bValid = isPostcode(objField[iFieldCounter].value);
             break;
			 
		case 'isTelefoonnummer' :
           bValid = isTelefoonnummer(objField[iFieldCounter].value);
             break;
			
		case 'isDate' :
           bValid = isDate(objField[iFieldCounter].value);
             break;
      
	  default:
           bValid = true;
      }

      if (bValid == false)
      {
        // If this field is invalid, leave the testing early,
        // and alert the visitor to this error
        alert('U dient een geldige waarde in te vullen bij ' + objField[iFieldCounter].name);
        objField[iFieldCounter].select();
        objField[iFieldCounter].focus();
        return false;
      }
    }
  }
  return true;
}

function isString(strValue)
{
 return (typeof strValue == 'string' && strValue != '' && isNaN(strValue));
}

function isNumber(strValue)
{
  return (!isNaN(strValue) && strValue != '');
}

function isEmail(strValue)
{
  var objRE = /^[\w-\.\']{1,}\@([\da-zA-Z-]{1,}\.){1,}[\da-zA-Z-]{2,}$/;

  return (strValue != '' && objRE.test(strValue));
}

function isPostcode(strValue)
{
  var objRE = /^\W*[1-9]{1}[0-9]{3}\W*[a-zA-Z]{2}\W*$/;

  return (strValue != '' && objRE.test(strValue));
}

function isTelefoonnummer(strValue)
{
  var objRE = /^0[1-9][0-9]{8}/;

  return (strValue != '' && objRE.test(strValue));
}

function isNotEmpty(strValue)
{
  return (strValue != '');
}

function isDate(strValue)
{
var objRE = /^(?=\d)(?:(?!(?:(?:0?[5-9]|1[0-4])(?:\.|-|\/)10(?:\.|-|\/)(?:1582))|(?:(?:0?[3-9]|1[0-3])(?:\.|-|\/)0?9(?:\.|-|\/)(?:1752)))(31(?!(?:\.|-|\/)(?:0?[2469]|11))|30(?!(?:\.|-|\/)0?2)|(?:29(?:(?!(?:\.|-|\/)0?2(?:\.|-|\/))|(?=\D0?2\D(?:(?!000[04]|(?:(?:1[^0-6]|[2468][^048]|[3579][^26])00))(?:(?:(?:\d\d)(?:[02468][048]|[13579][26])(?!\x20BC))|(?:00(?:42|3[0369]|2[147]|1[258]|09)\x20BC))))))|2[0-8]|1\d|0?[1-9])([-.\/])(1[012]|(?:0?[1-9]))\2((?=(?:00(?:4[0-5]|[0-3]?\d)\x20BC)|(?:\d{4}(?:$|(?=\x20\d)\x20)))\d{4}(?:\x20BC)?))?$/;
 
 
 return (strValue != '' && objRE.test(strValue));
}

function isBedrag(strValue)
{
  var objRE = /^[\+\-]?(?:\d*[\.,]\d+|\d+[\.,]\d*|\d+)(?:[eE][\+\-]?\d+)?$/;

  return (strValue != '' && objRE.test(strValue));
}



//---------------------------------
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;
}

//---------------------------------
//-----------------

// ---------------- SPLITTING LAST NAME ----------------------------------------------------------------
// ----- for splitting lastnames
function splitName(o){
	voegsels = new Array( "'t ","aan 't ","aan het ","al ","bij 't ","bij het ","d'","da","de ","de la ","del","den ","der ","des ","di ","du ","d'","el ","het ","in 't ","in 't ","in den ","in het ","in ","l'","las ","le ","mac","mc","op 't ","op de ","op den ","op ten ","te ","ten ","ter ","uijt de ","uijt den ","uit de ","uit den ","v ","v. ","v.d. ","van 't ","van de ","van den ","van der ","van het ","van ","vd ","von der ","von ","zur ");
	var name= new Array();
	
	for (i in voegsels){
		v = voegsels[i];
		var Lcase_o = o.toLowerCase();
	
		if (Lcase_o.indexOf(v) == 0){
			toevoeg = o.substring(Lcase_o.indexOf(v),v.length);
			naam = o.substring(Lcase_o.indexOf(v)+v.length,(o.length));
			name[1] = toevoeg;
			name[0] = naam;
			return name;
		}else{
			name[0] = o;
		}
	}
	return name;
}
//--------------------------------------------------------------------------------

function breakName(o){
	
	var ftussenvoegsel = $("Tussenvoegsels");
	var fachternaam = $("Achternaam");
	
	var Srow = $('tv1');
	var Sdiv = $('tv2');
	
	var names = splitName(o);
	var naam = names[0];
	
	fachternaam.value = naam;
		if (names.length>1){	
			ftussenvoegsel.value = names[1];
	/*		Srow.style.display = "block";
			Sdiv.style.display = "block";*/
		}else{
	/*		Srow.style.display = "none";
			Sdiv.style.display = "none";*/
		}
		
	}

// --------------------------------------------------------------------------------
// --------------------------------------------------------------------------------	

