/*ADDEVENT
Overschrijven van standaard functie addEvent 
*/
function addEvent( obj, type, fn ) {
  if ( obj.attachEvent ) {
    obj['e'+type+fn] = fn;
    obj[type+fn] = function(){obj['e'+type+fn]( window.event );}
    obj.attachEvent( 'on'+type, obj[type+fn] );
  } else
    obj.addEventListener( type, fn, false );
}

/*REMOVEEVENT
Overschrijven van standaard functie removeEvent 
*/
function removeEvent( obj, type, fn ) {
  if ( obj.detachEvent ) {
    obj.detachEvent( 'on'+type, obj[type+fn] );
    obj[type+fn] = null;
  } else
    obj.removeEventListener( type, fn, false );
}

/*Begin UitlegBox*/
/*CREATEUITLEGBOX
Aanmaken van een div genaamd UitlegBox
*/
function createUitlegBox(){
	var uBox = document.createElement('div');
	uBox.setAttribute('id', 'UitlegBox');
	if (navigator.appName == "Microsoft Internet Explorer"){uBox.className = "UitlegBox";}else{uBox.setAttribute("class", "UitlegBox");} 
	uBox.innerHTML = "";
	document.body.appendChild(uBox);
}
addEvent(window, "load", createUitlegBox);

/*OPENUITLEGBOX
Openen van de uitlegbox met de meegegeven tekst.
*/
function openUitlegBox(vars,e){
	var UitlegBox = document.getElementById('UitlegBox');
	if(window.event){
		UitlegBox.style.posTop = window.event.clientY-window.event.offsetY+document.body.scrollTop-20;
		UitlegBox.style.posLeft = window.event.clientX-window.event.offsetX+document.body.scrollLeft+14;}
	else{
		UitlegBox.style.posTop = e.clientY-e.offsetY+document.body.scrollTop-20;
		UitlegBox.style.posLeft = e.clientX-e.offsetX+document.body.scrollLeft+14;}
	UitlegBox.innerHTML=vars;
	UitlegBox.style.visibility='visible';
}

/*CLOSEUITLEGBOX
Sluiten van de uitlegbox.
*/
function closeUitlegBox(){
	document.getElementById('UitlegBox').style.visibility='hidden';
}
/*Eind Uitlegbox*/

function ismaxlength(obj){
	var mlength=obj.getAttribute? parseInt(obj.getAttribute("maxlength")) : ""
	if (obj.getAttribute && obj.value.length>mlength)
	obj.value=obj.value.substring(0,mlength)
}

function urlPopWin(url){
	parent.gPopFrame.contentWindow.location.reload(true);
}


function isDefined(variable){
  return variable != null;
}

function gotoPage(url){
	if(isDefined(url) && url!=''){
		window.location.href = url;
	}
}

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 controleertijd(obj) {
  if (obj.value.length>0) {
     obj.value = obj.value.replace(".", ":");
     if (isNaN(obj.value.substr(0,2)) || obj.value.length < 2 ) obj.value = '0' + obj.value;
                                if(obj.value.length == 2) obj.value+= ":00";                      

     var filter = /^([0-1][0-9]|[2][0-3]):([0-5][0-9])$/;
     if (!filter.test(obj.value)) {
       alert('Ongeldige tijd! \nGebruik het formaat hh:mm, bijvoorbeeld \'09:00\' of \'13:30\'');
       obj.focus();
       return false;
     }
  }
  return true;
}

function checkNummer(item,AllowBlank,PositiveOnly,IntegerOnly) {
	if (isNaN(item.value.replace(/,/g,"."))) {alert("Vul een getal in."); item.focus(); return false}
	if ((AllowBlank==false) && (item.value=="")) {alert("Er moet een getal ingevuld worden."); item.focus(); return false}
	if ((PositiveOnly) && (item.value<0)) {alert("Het getal mag niet negatief zijn."); item.focus(); return false}
	if ((IntegerOnly) && (item.value.indexOf(".")>-1)) {alert("Het getal mag geen decimalen bevatten."); item.focus(); return false}
	return true;
}

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);
}

function numberOnly(sText){
	var ValidChars = "0123456789";
	var IsNumber=true;
	var Char;
	
	for (i = 0; i < sText.length && IsNumber == true; i++) { 
		Char = sText.charAt(i); 
		if (ValidChars.indexOf(Char) == -1){
			IsNumber = false;
		}
	}
	return IsNumber;
}

function Tekstaanpassing(mijnobj) {
  while (mijnobj.value.indexOf("'")>-1) 
  {
	  mijnobj.value=mijnobj.value.replace("'","´");
  }	
  while (mijnobj.value.indexOf('"')>-1) 
  {
	  mijnobj.value=mijnobj.value.replace('"','´');
  }	
}

function geldaanpassing(nr)
{
	var v, l, t
	nr = tweedecimalen(nr);
	v = nr.split(".");
	l = v[0].length;
	t="";

	while (l>3)
	{
		t = "." + v[0].substring(l-3,l) + t;
		l= l-3;
	}
	if (nr.length==v[0].length)
	{
		return v[0].substring(0,l) + t                
	}
	else
	{
		if (v[1].length<2)
		{
			return v[0].substring(0,l) + t + "," + v[1] + "0"
		}
		else
		{
			return v[0].substring(0,l) + t + "," + v[1];
		}
	}	
}

function naarPunt(s)
{
	return s.replace(',','.');
}

function naarKomma(s)
{
	return s.replace('.',',');
}

function tweedecimalen(amount)
{	
	var i = parseFloat(amount);
	if(isNaN(i) || i==Infinity || i == -Infinity) { i = 0.00; }
	var minus = '';
	if(i < 0) { minus = '-'; }
	i = Math.abs(i);
	i = parseInt((i + .005) * 100);
	i = i / 100;
	s = new String(i);
	if(s.indexOf('.') < 0) { s += '.00'; }
	if(s.indexOf('.') == (s.length - 2)) { s += '0'; }
	s = minus + s;
	return s;
}

function PostcodeCheck(mijnobj) {
	if (mijnobj.value.length==6) { 
		if (mijnobj.value.substr(4,1)>="A" && mijnobj.value.substr(5,1)>="A") mijnobj.value=mijnobj.value.substr(0,4)+" "+mijnobj.value.substr(4,2).toUpperCase();
	} else {
		mijnobj.value=mijnobj.value.toUpperCase();
	}
}

function SofinrCheck(obj){
	if(obj.value.length > 0){
		var ret = true;
		var sum = 0;
		
		for(var i=0; i < 8; i++){
			sum += (9-i) * parseInt(obj.value.charAt(i));
		}
		sum -= parseInt(obj.value.charAt(8)); 
		if(!((sum % 11) == 0)){
			if(!(obj.value.indexOf("-") == 6)){
				ret = false;
			}else{
				if(!(obj.value.length == 13)){
					ret = false;
				}
			}
		}
		if(!ret){
			alert("Het ingevoerde BSN nummer is niet correct.");
			obj.focus();
			return ret;
		}
	}
} 

function RekeningCheck(mijnobj) {
	var tot=0
		for (i=0;i<mijnobj.value.length;i+=1) if (mijnobj.value.charCodeAt(i)<48 ||  mijnobj.value.charCodeAt(i)>57) tot=1;
		if (tot!=0) {
			alert("Rekeningnummer mag alleen uit cijfers bestaan!");
			mijnobj.focus();
			return false;
		}
		tot = 0


	if (mijnobj.value.length==9) for (i=0;i<9;i+=1) tot+=mijnobj.value.substr(i,1)*(9-i);
	if (tot%11!=0) {
		alert("Ongeldig bankrekeningnummer!");
		mijnobj.focus();
		return false;
	} else {
		return true;
   	}
}

function Puntje(mijnobj) {
	var tmp = '';
	mijnobj.value = mijnobj.value.replace(/\./g, "");
	mijnobj.value = mijnobj.value.replace(/\,/g, "");
	mijnobj.value = mijnobj.value.replace(/ /g, "");
	for (var i = 0; i < mijnobj.value.length; i++){
		tmp += mijnobj.value.substr(i,1) + '.';
	}
	mijnobj.value = tmp;
	//if (mijnobj.values.substr(mijnobj.value.length-1,1)!='.' && mijnobj.value.length>0 && mijnobj.value.length<12) mijnobj.value=mijnobj.value+".";
}
function NaarHoofdletters(mijnobj) {
	mijnobj.value=mijnobj.value.toUpperCase();
}
function NaarKleineletters(mijnobj) {
	mijnobj.value=mijnobj.value.toLowerCase();
}

function eersteLetterHoofdletter(obj){
	var str = obj.value.toLowerCase(),
	newStr = '';

	for ( var i = 0, l = str.length; i < l; i++ ){
		newStr += ( i == 0 || str.charAt( i - 1 ) == ' ' )?
		str.charAt( i ).toUpperCase():
		str.charAt( i );
	}
	obj.value = newStr
}

function MaakNumeriek(mijnobj) {
   if (mijnobj.value.length>0) mijnobj.value=parseInt(mijnobj.value);
   if (isNaN(mijnobj.value)) mijnobj.value="";
}

function Getalaanpassing(mijnobj) {
  while (mijnobj.value.indexOf(",")>-1) 
  {
	  mijnobj.value=mijnobj.value.replace(",",".");
  }	
  if (mijnobj.value.length==2 && mijnobj.value!=10) mijnobj.value=mijnobj.value.substr(0,1)+"."+mijnobj.value.substr(1,1);
  if (mijnobj.value.length==1) mijnobj.value=mijnobj.value+".0"
}

function controleerbedrag(obj)
{
	if( obj.value.length==0 ) return;
	obj.value = obj.value.replace(/,/g, ".");
	var prijs = parseFloat(obj.value);
	if(isNaN(prijs) || (obj.value.indexOf('.') != obj.value.lastIndexOf('.')) )
		alert('Geen geldige prijs');
	else
		obj.value = tweedecimalen(prijs);
}

function ControleerFloat(mijnobj) {
	mijnobj.value = mijnobj.value.replace(/,/g, ".");
	if( isNaN( mijnobj.value ) ) {
		return false;
	}	
	return true;
}

function controleerdatum(objName,jaarlengte) {
var datefield = objName;
if (chkdate(objName.value,jaarlengte) == false) {
datefield.select();
alert("Ongeldige datum!");
datefield.focus();
return false;
}
else {
return true;
}
}
function chkdate(strDatum,jaarlengte) {
 var strNieuweOpmaak;
 var strDatum;
 var strDatumArray;
 var strDag;
 var strMaand;
 var strJaar;
 var intDag;
 var intMaand;
 var intJaar;
 var booGevonden = false;
 var strScheidingstekens = new Array("-"," ","/",".");
 var intElementNr;
 var err = 0;
 var strMaandArray = new Array(12);
 strMaandArray[0] = "Jan";
 strMaandArray[1] = "Feb";
 strMaandArray[2] = "Mrt";
 strMaandArray[3] = "Apr";
 strMaandArray[4] = "Mei";
 strMaandArray[5] = "Jun";
 strMaandArray[6] = "Jul";
 strMaandArray[7] = "Aug";
 strMaandArray[8] = "Sep";
 strMaandArray[9] = "Okt";
 strMaandArray[10] = "Nov";
 strMaandArray[11] = "Dec";
 if (strDatum.length < 1) {
  return true;
 }
 for (intElementNr = 0; intElementNr < strScheidingstekens.length; intElementNr++) {
  if (strDatum.indexOf(strScheidingstekens[intElementNr]) != -1) {
   strDatumArray = strDatum.split(strScheidingstekens[intElementNr]);
   if (strDatumArray.length != 3) {
    err = 1;
    return false;
   }
   else {
    strDag = strDatumArray[0];
    strMaand = strDatumArray[1];
    strJaar = strDatumArray[2];
   }
   booGevonden = true;
  }
 }
 if (booGevonden == false) {
  if (strDatum.length>5) {
   strDag = strDatum.substr(0, 2);
   strMaand = strDatum.substr(2, 2);
   strJaar = strDatum.substr(4);
  }
 }

 intDag = parseInt(strDag, 10);
 if (isNaN(intDag)) {
  err = 2;
  return false;
 }
 intMaand = parseInt(strMaand, 10);
 if (isNaN(intMaand)) {
  for (i = 0;i<12;i++) {
   if (strMaand.toUpperCase() == strMaandArray[i].toUpperCase()) {
    intMaand = i+1;
    strMaand = strMaandArray[i];
    i = 12;
   }
  }
  if (isNaN(intMaand)) {
   err = 3;
   return false;
  }
 }
 intJaar = parseInt(strJaar, 10);
 if (isNaN(intJaar)) {
  err = 4;
  return false;
 }
 if (intMaand>12 || intMaand<1) {
  err = 5;
  return false;
 }
 if ((intMaand == 1 || intMaand == 3 || intMaand == 5 || intMaand == 7 || intMaand == 8 || intMaand == 10 || intMaand == 12) && (intDag > 31 || intDag < 1)) {
  err = 6;
  return false;
 }
 if ((intMaand == 4 || intMaand == 6 || intMaand == 9 || intMaand == 11) && (intDag > 30 || intDag < 1)) {
  err = 7;
  return false;
 }
 if (intMaand == 2) {
  if (intDag < 1) {
   err = 8;
   return false;
  }
  if (Schrikkeljaar(intJaar) == true) {
   if (intDag > 29) {
    err = 9;
    return false;
   }
  }
  else {
   if (intDag > 28) {
    err = 10;
    return false;
   }
  }
 }
 if (strJaar.length == 4 && jaarlengte==2) {
  strJaar = strJaar.substr(2,2);
 }
 if (strJaar.length == 2 && jaarlengte==4) {
  if (parseInt(strJaar, 10)<25) {
   strJaar = "20" + strJaar;
  }
  else {
   strJaar = "19" + strJaar;
  }
 }
 if (intDag<10) strNieuweOpmaak="0"; else strNieuweOpmaak="";
 strNieuweOpmaak=strNieuweOpmaak+intDag;
 if (intMaand<10) strNieuweOpmaak=strNieuweOpmaak+"-0"; else strNieuweOpmaak=strNieuweOpmaak+"-";
 strNieuweOpmaak =strNieuweOpmaak + intMaand + "-"
 if (strJaar.length==1) {if (jaarlengte==4) {strNieuweOpmaak=strNieuweOpmaak+"200";} else {strNieuweOpmaak=strNieuweOpmaak+"0";}}
 strDatum = strNieuweOpmaak + strJaar;
 return strDatum;
}

function Schrikkeljaar(intJaar) {
if (intJaar % 100 == 0) {
	if (intJaar % 400 == 0) { return true; }
}
else {
	if ((intJaar % 4) == 0) { return true; }
}
return false;
}

