var dtCh= "-";
var minYear=00;
var maxYear=99;

String.prototype.dateReverse = function(){
	splitext = this.split("-");
	revertext = splitext.reverse();
	reversed = revertext.join("-");
	return reversed;
}

function isInteger(s){
	var i;
	for (i = 0; i < s.length; i++){
		// Check that current character is number.
		var c = s.charAt(i);
		if (((c < "0") || (c > "9"))) return false;
	}
	// All characters are numbers.
	return true;
}

function stripCharsInBag(s, bag){
	var i;
	var returnString = "";
	// Search through string's characters one by one.
	// If character is not in bag, append to returnString.
	for (i = 0; i < s.length; i++){
		var c = s.charAt(i);
		if (bag.indexOf(c) == -1) returnString += c;
	}
	return returnString;
}

function daysInFebruary (year){
	// February has 29 days in any year evenly divisible by four,
	// EXCEPT for centurial years which are not also divisible by 400.
	return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}

function DaysArray(n) {
	for (var i = 1; i <= n; i++) {
		this[i] = 31
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
		else if (i==2) {this[i] = 29}
	} 
	return this
}

function getDays(date) 
{ 
	//elementen apart 
	tmp_date = date.split('-'); 
	if(tmp_date[2]>=20) {
		tmp_date[2] = parseInt(tmp_date[2]) + 1900;
	} else {
		tmp_date[2] = parseInt(tmp_date[2]) + 2000;
	}

	//nieuwe datum 
	var date = new Date(); 
	var year = date.getFullYear(); //jaar in twee cijfers 
	var month = date.getMonth() + 1; //maand 
	var day = date.getDate(); //dag 
	var yearsold = (year - tmp_date[2]); //jaren oud 

	//wanneer nog niet jarig geweest eentje van jaar aftrekken 
	if (tmp_date[1] > month || (tmp_date[1] == month && tmp_date[0] > day)) 
		yearsold--; 

	//als maand al geweest is 12 bij maand optellen 
	if (month < tmp_date[1]) 
		month = month + 12; 

	//maanden uitrekenen 
	var monthsold = (month - tmp_date[1]); 

	return (yearsold); 
}

// Controleer of een geldige datum is ingevoerd
function isDate(dtStr){
	var daysInMonth = DaysArray(12)
	var pos1=dtStr.indexOf(dtCh)
	var pos2=dtStr.indexOf(dtCh,pos1+1)
	var strDay=dtStr.substring(0,pos1)
	var strMonth=dtStr.substring(pos1+1,pos2)
	var strYear=dtStr.substring(pos2+1)
	var strYr=strYear

	if (dtStr=="") return true
	if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
	if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
	for (var i = 1; i <= 3; i++) {
		if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
	}
	month=parseInt(strMonth)
	day=parseInt(strDay)
	year=parseInt(strYr)
	if (pos1==-1 || pos2==-1){
		alert("De datum moet in de vorm dd-mm-jj zijn! Pas s.v.p. de datum aan.")
		return false
	}
	if (strMonth.length<1 || month<1 || month>12){
		alert("Voer een geldige maand in! Pas s.v.p. de datum aan.")
		return false
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
		alert("Voer een geldige dag in! Pas s.v.p. de datum aan.")
		return false
	}
	if (strYear.length != 2 || year<minYear || year>maxYear){
		alert("Voer een geldig jaar in van 00 t/m 99! Pas s.v.p. de datum aan.")
		return false
	}
//	if (getDays(dtStr)<3) {
//		alert("Deze persoon is te jong! Pas s.v.p. de datum aan.")
//		return false
//	}
	if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
		alert("Voer een geldige datum in!")
		return false
	}
	return true
}

// Voer de elfproef uit op bankrekeningnummer
function elf_proef(bankrekeningnummer) {
	// verwijder alle tekens die geen cijfers zijn
	bankrekeningnummer=bankrekeningnummer.replace(/\D/, "");
	aantal_tekens=bankrekeningnummer.length;
	var som=0;
	// loop door de 9 cijfers met de 11 proef formule
	for (i=1; i<10; i++) {
		getal=bankrekeningnummer.charAt(i-1);
		som+=getal*(10-i);
	} 
	// geef resultaat van check terug
	if (som % 11==0 && aantal_tekens==9) {
		return true
	} else {
		return false
	}
}

// Controleer of het veld een geldige postcode bevat
function valideerPostcode(strPC) {
	return typeof strPC=='string' ? strPC.match(/[1-9][0-9]{3} ?[a-zA-Z]{2}/)==strPC : false;
}

// Zorg ervoor dat alleen cijfers in invoervelden kunnen worden ingevoerd
function onlyDigits(evt) {
	var keycode;
 
	if (evt)
		;
	else if (window.event)
		evt = window.event;
	else if (event)
		evt = event;
	else
		return true;
 
	if (evt.charCode)
		keycode = evt.charCode;
	else if (evt.keyCode)
		keycode = evt.keyCode;
	else if (evt.which)
		keycode = evt.which;
	else
		keycode = 0;

	// geef alleen cijfers terug, del, bksp, links, rechts en tab zijn ook toegestaan
	return (keycode >= 48 && keycode <= 57 || keycode == 46 || keycode == 8 || keycode == 37 || keycode == 39 || keycode == 9);
}

// Ophogen en verlagen van nummervelden
function nr_add(cell, value, focusfield) {
	var x = 0;
	if (cell.value!="")
		x = parseInt(cell.value);
	x += value;
	if (x == 0)
		cell.value = "";
	else if (x > 0)
		cell.value = x;
	if (focusfield) {
		focusfield.select();
		focusfield.focus();
	}
}

// Ophogen en verlagen van datumvelden
function date_add(cell, value, focusfield, mindate, maxdate) {
	var dtStr = cell.value;
	if(dtStr.length!=8) {
		//construeer huidige datum en vul deze in
		var dtStr = "";
		var dtJr = "";
		var now=new Date();
		if(now.getDate()<10)
			dtStr = dtStr + "0";
		dtStr = dtStr + now.getDate() + "-";
		if(now.getMonth()<10)
			dtStr = dtStr + "0";
		dtStr = dtStr + (now.getMonth()+1) + "-";
		dtJr = now.getFullYear()-2000;
		if(dtJr<10)
			dtStr = dtStr + "0";
		dtStr = dtStr + dtJr;
		cell.value = dtStr;
		if (focusfield) {
			focusfield.select();
			focusfield.focus();
		}
		return true;
	}

	var daysInMonth = DaysArray(12);
	var pos1=dtStr.indexOf(dtCh);
	var pos2=dtStr.indexOf(dtCh,pos1+1);
	var strDay=dtStr.substring(0,pos1);
	var strMonth=dtStr.substring(pos1+1,pos2);
	var strYear=dtStr.substring(pos2+1);
	var newDate;
	strYr=strYear;

	if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1);
	if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1);
	for (var i = 1; i <= 3; i++) {
		if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1);
	}
	month=parseInt(strMonth);
	day=parseInt(strDay);
	year=parseInt(strYr);
	plusmin=parseInt(value);

	//geldige datum?
	if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
		alert("Voer een geldige datum in!")
		cell.select();
		cell.focus();
		return false
	}
	
	if (plusmin > 0) {
	//dag erbij
		day++;
		if(day>31 || month==2 && day>daysInFebruary(year) || day > daysInMonth[month]) {
			day=1;
			month++;
			if(month==13) {
				month=1;
				year++;
			}
		}
	} else {
	//dag eraf
		day--;
		if(day==0) {
			month--;
			if(month==0) {
				year--;
				day=31;
				month=12;
			} else {
				if(month==2)
					day=daysInFebruary(year);
				else 
					day=daysInMonth[month];
			}
		}
	}

	newDate="";
	if (day<10)
		newDate = newDate + "0";
	newDate = newDate + day + "-";
	if (month<10)
		newDate = newDate + "0";
	newDate = newDate + month + "-";
	if (year<10)
		newDate = newDate + "0";
	newDate = newDate + year;

	if (mindate && newDate.dateReverse() < mindate.dateReverse())
		cell.value = mindate;
	else if(maxdate && newDate.dateReverse() > maxdate.dateReverse())
		cell.value = maxdate;
	else
		cell.value = newDate;

	if (focusfield) {
		focusfield.select();
		focusfield.focus();
	}
}

function capitalizeMe(obj) {
		val = obj;
		newVal = '';
		val = val.split(' ');
		for(var c=0; c < val.length; c++) {
		if(val[c].substring(0,1).toUpperCase()=="I" && val[c].substring(1,2).toUpperCase()=="J"){
			newVal += val[c].substring(0,1).toUpperCase() + val[c].substring(1,2).toUpperCase() + val[c].substring(2,val[c].length).toLowerCase() + ' ';
		} else {
				newVal += val[c].substring(0,1).toUpperCase() + val[c].substring(1,val[c].length).toLowerCase() + ' ';
		}
		}
		return newVal;
}

function trim(value) {
	value = value.replace(/^\s+/,'');
	value = value.replace(/\s+$/,'');
	return value;
}

function verbeternaam(naam) {
	newname=trim(capitalizeMe(naam));
	oldname=naam.toLowerCase();
	if (oldname.substring(0,2)=='d\'' || oldname.substring(0,2)=='l\'') {
		newname=oldname.substring(0,2) + capitalizeMe(newname.substring(2, oldname.length));
	}
	if (oldname.substring(0,3)=='vd ') {
		newname='v.d. ' + newname.substring(3, oldname.length);
	}
	if (oldname.substring(0,5)=='v.d. ') {
		newname=naam.substring(0,5) + newname.substring(5, oldname.length);
	}
	if (oldname.substring(0,4)=='v d ' || oldname.substring(0,4)=='v/d ') {
		newname='v.d. ' + newname.substring(4, oldname.length);
	}
	if (oldname.substring(0,6)=='v. d. ') {
		newname='v.d. ' + newname.substring(6, oldname.length);
	}
	if (oldname.substring(0,3)=='de ' || oldname.substring(0,3)=='in ' || oldname.substring(0,3)=='le ' ||
		oldname.substring(0,3)=='di ' || oldname.substring(0,3)=='da ' || oldname.substring(0,3)=='el ' ||
		oldname.substring(0,3)=='du ' || oldname.substring(0,3)=='op ' || oldname.substring(0,3)=='la ') {
		newname=(naam.substring(0,3) + newname.substring(3, oldname.length));
	}
	if (oldname.substring(0,4)=='van ' || oldname.substring(0,4)=='der ' || oldname.substring(0,4)=='het ' ||
		oldname.substring(0,4)=='den ' || oldname.substring(0,4)=='ten ' || oldname.substring(0,4)=='ter ') {
		newname=(naam.substring(0,4) + newname.substring(4, oldname.length));
	}
	if (oldname.substring(0,7)=='op den ') {
		newname=(naam.substring(0,7) + newname.substring(7, oldname.length));
	}
	if (oldname.substring(0,8)=='van het ' || oldname.substring(0,8)=='van der ' || oldname.substring(0,8)=='van den ' ||
		oldname.substring(0,8)=='van ten ' || oldname.substring(0,8)=='van ter ') {
		newname=(naam.substring(0,8) + newname.substring(8, oldname.length));
	}
	return newname;
}

// zet tekst om tijdens typen
function uppercase()
{
	key = window.event.keyCode;
	if ((key > 0x60) && (key < 0x7B))
	window.event.keyCode = key-0x20;
}

function goLite(FRM,BTN)
{
	window.document.forms[FRM].elements[BTN].style.filter = "progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr='#ffA1B5D8',EndColorStr='#ffFFFFFF')";
	window.document.forms[FRM].elements[BTN].style.borderColor = "#A1B5D8";
}

function goDim(FRM,BTN)
{
	window.document.forms[FRM].elements[BTN].style.filter = "progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr='#ffFFFFFF',EndColorStr='#ffA1B5D8')";
	window.document.forms[FRM].elements[BTN].style.borderColor = "#F4FAFD";
}

// Lees het scrollwieltje van de muis uit
function hookEvent(element, eventName, callback)
{
	if(typeof(element) == "string")
		element = document.getElementById(element);
	if(element == null)
		return;
	if(element.addEventListener){
		if(eventName == 'mousewheel')
			element.addEventListener('DOMMouseScroll', callback, false);
		element.addEventListener(eventName, callback, false);
	}
	else if(element.attachEvent)
		element.attachEvent("on" + eventName, callback);
}

function unhookEvent(element, eventName, callback)
{
	if(typeof(element) == "string")
		element = document.getElementById(element);
	if(element == null)
		return;
	if(element.removeEventListener)
	{
		if(eventName == 'mousewheel')
		{
			element.removeEventListener('DOMMouseScroll', 
				callback, false);	
		}
		element.removeEventListener(eventName, callback, false);
	}
	else if(element.detachEvent)
		element.detachEvent("on" + eventName, callback);
}

function cancelEvent(e)
{
	e = e ? e : window.event;
	if(e.stopPropagation)
		e.stopPropagation();
	if(e.preventDefault)
		e.preventDefault();
	e.cancelBubble = true;
	e.cancel = true;
	e.returnValue = false;
	return false;
}

// get first element of xml tag "tagname" in file "xmldoc"
function xmltag(xmldoc, tagname) 
{
	var e = xmldoc.getElementsByTagName(tagname)[0].childNodes;
	return e.length ? e[0].nodeValue : "";
}

// get object by id "id" from source "s"
function getid(s, id)
{
	var obj = null;
	if (s.getElementById)
		obj = s.getElementById(id);
	else if (s.all)
		obj = s.all(id);
	else if (s.layers)
		obj = s.layers[id];
	return obj;
}

// set state for form "form", form must contain checkbox "del" en may contain buttons "ok" and "oknew"
function formstate(form)
{
	var del = form.del.checked;
	var x = getid(form, 'ok');
	if ( x != null )
		x.value = del ? "Verwijder" : "Opslaan";
	x = getid(form, 'oknew');
	if ( x != null )
		x.value = del ? "Verwijder en Nieuw" : "Opslaan en Nieuw";
	x = form.elements;
	for(i=0;i<x.length;++i)
		if ( x[i].type != "hidden" && x[i].type != "submit" && x[i].type != "button" && x[i].name != "del")
			x[i].disabled = del;
}

// set state for form "form" according to checkbox "idcheckbox". 
// Caption of button "idbutton" will change to "nonchecktext" or "checkedtext" respectively.
function formstate2(form, idcheckbox, idbutton, nonchecktext, checkedtext)
{
	var box = getid(form, idcheckbox);
	if ( box == null )
		return;
	var x = getid(form, idbutton);
	if ( x != null )
		x.value = box.checked ? checkedtext : nonchecktext;
	x = getid(form, idbutton + "new");
	if ( x != null )
		x.value = del ? checkedtext + " en Nieuw" : nonchecktext + " en Nieuw";
	x = form.elements;
	for(i=0;i<x.length;++i)
		if ( x[i].type != "hidden" && x[i].type != "submit" && x[i].type != "button" && x[i].name != idcheckbox)
			x[i].disabled = box.checked;
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

// Geeft element terug adhv Classname
function getElementsByClassName( strClassName, obj ) {
	var ar = arguments[2] || new Array();
	var re = new RegExp("\\b" + strClassName + "\\b", "g");
	
	if ( re.test(obj.className) ) {
		ar.push( obj );    
	}
	for ( var i = 0; i < obj.childNodes.length; i++ )
		getElementsByClassName( strClassName, obj.childNodes[i], ar );
	
	return ar;
}

// pauzeert Javascript
function pauseComp(millis) 
{
var date = new Date();
var curDate = null;

do { curDate = new Date(); } 
while(curDate-date < millis);
} 

// Bepaal absolute positie van element op pagina
function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		do {
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
		} while (obj = obj.offsetParent);
	}
	return [curleft,curtop];
}

// Foutmeldingen weergeven in een tooltip-box
function showAlert(obj,alerttext,xoffset,yoffset) {
	var alertwin=document.getElementById('errorbox');
	var alerttextid=document.getElementById('melding');
	var alertfield=document.getElementById(obj);
	var alertfieldname=alertfield.title;

	alertwin.style.display = "inline";
	alerttextid.innerHTML = "Fout in veld <strong>" + alertfieldname + "</strong>: " + alerttext;
	alertwin.style.top=(findPos(alertfield)[1]-98+yoffset) + "px";
	alertwin.style.left=(findPos(alertfield)[0]+xoffset) + "px";
	if (alertfield.style.display != "none") {
		alertfield.style.background = "#FFC5C5";
		alertfield.select();
		alertfield.focus();
	}
}

// reset alle voorheen foute formvelden naar standaard
function fieldsReset() {
	if (!document.getElementsByTagName) return false;
 	elementsForms = document.getElementsByTagName("form");
 	for (var intCounter = 0; intCounter < elementsForms.length; intCounter++)
	{
 		elementsInputs = elementsForms[intCounter].getElementsByTagName("input");
 		for (var elmCounter = 0; elmCounter < elementsInputs.length; elmCounter++)
 		{
			if (elementsInputs[elmCounter].style.background.toUpperCase() == "#FFC5C5")
			{
				elementsInputs[elmCounter].style.background = "#FFFFFF";
			}
		}
	}
}

// reset veld naar standaard
function fieldNormal(field) {
	field.style.fontStyle = "normal";
	field.style.color = "black";
	field.style.background = "";
//	field.select();
//	field.focus();
}

// veld is leeg, grijs en italic weergeven
function fieldEmpty(field) {
	field.style.fontStyle = "italic";
	field.style.color = "gray";
} 

// wachtwoord wisselend als tekst/wachtwoord weergeven
function showPwd(frm) {
	var e = frm.elements;
	for(var elem,i=0;elem = e[i];i++) {
		if(elem.type=="password") changeInputType(elem, "text");
		else if(elem.type=="text") changeInputType(elem, "password");
	}	
}

// Kopieer huidig element naar nieuw element met nieuwe instellingen
function changeInputType(oldObject, oType) {
  var newObject = document.createElement('input');
  newObject.type = oType;
  if(oldObject.size) newObject.size = oldObject.size;
  if(oldObject.value) newObject.value = oldObject.value;
  if(oldObject.name) newObject.name = oldObject.name;
  if(oldObject.id) newObject.id = oldObject.id;
  if(oldObject.className) newObject.className = oldObject.className;
  if(oldObject.alt) newObject.alt = oldObject.alt;
  if (oldObject.onkeyup) newObject.onkeyup = oldObject.onkeyup;
  if (oldObject.onfocus) newObject.onfocus = oldObject.onfocus;
  if (oldObject.onclick) newObject.onclick = oldObject.onclick;
  if (oldObject.onkeypress) newObject.onkeypress = oldObject.onkeypress;
  if (oldObject.onbeforekeypress) newObject.onbeforekeypress = oldObject.onbeforekeypress;
  if (oldObject.onblur) newObject.onblur = oldObject.onblur;
  oldObject.parentNode.replaceChild(newObject,oldObject);
  newObject.focus();
  return newObject;
}

// Open een nieuw windows met POST variabelen (voor verborgen houden van daadwerkelijke URL)
function openWindowWithPost(url,name,keys,values)
{
	var newWindow = window.open("", name); 
	if (!newWindow) return false;
	var html = "";
	html += "<html><head></head><body><form id='formid' method='post' action='" + url + "'>";
	if (keys && values && (keys.length == values.length))
		for (var i=0; i < keys.length; i++)
			html += "<input type='hidden' name='" + keys[i] + "' value='" + values[i] + "'/>";
	html += "</form><script type='text/javascript'>document.getElementById(\"formid\").submit()</script></body></html>";
	newWindow.document.write(html);
	return newWindow;
}

// Controleer URL
function isValidURL(url){ 
    var RegExp = /^(([\w]+:)?\/\/)?(([\d\w]|%[a-fA-f\d]{2,2})+(:([\d\w]|%[a-fA-f\d]{2,2})+)?@)?([\d\w][-\d\w]{0,253}[\d\w]\.)+[\w]{2,4}(:[\d]+)?(\/([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)*(\?(&?([-+_~.\d\w]|%[a-fA-f\d]{2,2})=?)*)?(#([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)?$/; 
    if(RegExp.test(url)){ 
        return true; 
    }else{ 
        return false; 
    } 
} 

// Controleer e-mail
function isValidEmail(email){ 
    var RegExp = /^((([a-z]|[0-9]|!|#|$|%|&|'|\*|\+|\-|\/|=|\?|\^|_|`|\{|\||\}|~)+(\.([a-z]|[0-9]|!|#|$|%|&|'|\*|\+|\-|\/|=|\?|\^|_|`|\{|\||\}|~)+)*)@((((([a-z]|[0-9])([a-z]|[0-9]|\-){0,61}([a-z]|[0-9])\.))*([a-z]|[0-9])([a-z]|[0-9]|\-){0,61}([a-z]|[0-9])\.)[\w]{2,4}|(((([0-9]){1,3}\.){3}([0-9]){1,3}))|(\[((([0-9]){1,3}\.){3}([0-9]){1,3})\])))$/ 
    if(RegExp.test(email)){ 
        return true; 
    }else{ 
        return false; 
    } 
}

// resize element (bijv. DHTMLXGRID) naar maximale lengte
function resize(id){  
	var frame = document.getElementById(id);  
	var htmlheight = document.body.parentNode.scrollHeight;  
	var windowheight = window.innerHeight;  
	var headerheight = 230;
	if ( htmlheight < windowheight ) { document.body.style.height = windowheight-headerheight + "px"; frame.style.height = windowheight-headerheight + "px"; }  
	else { document.body.style.height = htmlheight-headerheight + "px"; frame.style.height = htmlheight-headerheight + "px"; }  
} 
 

/* 
 * Cross-browser event handling, by Scott Andrew
 */
function addEvent(element, eventType, lamdaFunction, useCapture) {
    if (element.addEventListener) {
        element.addEventListener(eventType, lamdaFunction, useCapture);
        return true;
    } else if (element.attachEvent) {
        var r = element.attachEvent('on' + eventType, lamdaFunction);
        return r;
    } else {
        return false;
    }
}

/* 
 * Kills an event's propagation and default action
 */
function knackerEvent(eventObject) {
    if (eventObject && eventObject.stopPropagation) {
        eventObject.stopPropagation();
    }
    if (window.event && window.event.cancelBubble ) {
        window.event.cancelBubble = true;
    }
    
    if (eventObject && eventObject.preventDefault) {
        eventObject.preventDefault();
    }
    if (window.event) {
        window.event.returnValue = false;
    }
}

/*
 * Clear Default Text: functions for clearing and replacing default text in
 * <input> elements.
 *
 * by Ross Shannon, http://www.yourhtmlsource.com/
 */

addEvent(window, 'load', init, false);

function init() {
    var formInputs = document.getElementsByTagName('input');
    for (var i = 0; i < formInputs.length; i++) {
        var theInput = formInputs[i];
        
        if (theInput.type == 'text' && theInput.className.match(/\bcleardefault\b/)) {  
            /* Add event handlers */          
            addEvent(theInput, 'focus', clearDefaultText, false);
            addEvent(theInput, 'blur', replaceDefaultText, false);

			/* Make it gray */
			theInput.style.color = "gray";
            
            /* Save the current value */
            if (theInput.value != '') {
                theInput.defaultText = theInput.value;
            }
        }
    }
}

function clearDefaultText(e) {
    var target = window.event ? window.event.srcElement : e ? e.target : null;
    if (!target) return;
    
    if (target.value == target.defaultText) {
        target.value = '';
		target.style.color = "black";
    }
}

function replaceDefaultText(e) {
    var target = window.event ? window.event.srcElement : e ? e.target : null;
    if (!target) return;
    
    if (target.value == '' && target.defaultText) {
        target.value = target.defaultText;
		target.style.color = "gray";
    }
}

// voeg nullen toe
function addLeftZeros(field) {
	var diflen = field.maxLength - field.value.length;
	if(diflen!=0) {
		for(var i=0;i<diflen;i++)
			field.value = "0" + field.value;
	}
}
