function RegExpNumeric(strWaarde, strWelkVeld) {
	if (!isNummer(strWaarde)) {
		alert("Veld kan alleen cijfers bevatten");
		eval("document.Berekening." + strWelkVeld + ".focus()");
	}
}

function RegExpAllNumeric(strWaarde, iPosities, strWelkVeld) {
	if (strWaarde.length!=iPosities) {
		alert("Onvoldoende cijfers");
		eval("document.Berekening." + strWelkVeld + ".focus()");
	}
	if (!isNummer(strWaarde)) {
		alert("Veld mag alleen cijfers bevatten");
		eval("document.Berekening." + strWelkVeld + ".focus()");
	}
}

function isNummer(strWaarde) {
  var objRegExp  =  /(^-?\d\d*\.\d*$)|(^-?\d\d*$)|(^-?\.\d\d*$)/;
  return objRegExp.test(strWaarde);
}

function MagBedrag(strWaarde, strMededeling) {
  // Check of de invoer van een veld met bedragen alleen uit cijfers bestaat.
	if (strWaarde.length!=0) {
  	if ( (!isNummer(strWaarde)) || (strWaarde.indexOf(".")>-1) ) {
      alert(strMededeling);
      return false;
    } else {
   	  return true;
		}
	}
}

function stripString(strWaarde, strTheStrip) {
	// Strip alle voorloop????, hangt van strTheStrip af
  return strWaarde.replace(new RegExp("^" + strTheStrip + "*(.*?)"), "$1"); 
}

function MagSofi(strWaarde) {
  // Check of de invoer van een sofinummer alleen uit cijfers bestaat.
	if (strWaarde.length!=0) {
  	if ( (!isNummer(strWaarde)) || (strWaarde.indexOf(".")>-1) ) {
      alert("Sofinummer mag alleen cijfers bevatten");
      return false;
    } else {
   	  return true;
		}
	}
}

function CheckSofinummer(strWaarde) {
  // Check of het ingevoerde een echt sofinummer is.
	while (strWaarde.length!=9) { strWaarde="0" + strWaarde }
  var iTemp	= 0;
  var strControleGetal = strWaarde.substring(8,9);
  for (i=0;i<=7; i++) { iTemp = iTemp + ( parseInt(strWaarde.substring(i,i+1)) * (9-i) ) }
  strWaarde = iTemp % 11;
  if (strWaarde!=strControleGetal) {
  	alert("Sofinummer onjuist");
  	return false;
  } else {
  	return true;
  }
}

function String2Valuta(strWaarde, bDecimaal){
  // Plaatst de duizendtalpunten. bDecimaal = false = geen gebruik van decimalen, bDecimaal = true = wel gebruik van decimalen 
  if ( (bDecimaal == false) && (strWaarde.length>0) ) {
     var iLengte = strWaarde.length;
     var iAantalDec = parseInt(iLengte / 3.1);
     var iTeller = 3;
     for (var i = 1; i <= iAantalDec; i++) { 
      strWaarde = strWaarde.substring(0, iLengte - iTeller) + "." + strWaarde.substring(iLengte - iTeller);
      iTeller = iTeller + 3
     }
  }
  return strWaarde  ;
}

function verwijderKarakters(sVal,bCent) {
	if(bCent) {
		sNewVal = sVal.replace(/[^\d,]/g,"");	// laat getallen en komma staan
	} else {
		sNewVal = sVal.replace(/[^\d]/g,"");	// laat alleen getallen staan
	}
	return sNewVal
}

function checkBedrag(num, strVeldnaam, frmName, bCenten, bDuizendtallen, bValidatie, bMagNegatief) {
//handelt de invoer van bedrag-velden af.
//parameters
// num = de invoer welke onderzocht moet worden
// strVeldnaam =  de naam van het veldnaam van het veld welke na de verwerking de 
  var sign;
	var centen;
// var num = objVeld.value;
//  var strVeldnaam = objVeld.name;  
	var strSavNum=num;
	if ( bMagNegatief ) {
		if ( num.substring(0,1) == "-" && num.length== 1) { return(strSavNum)	}
	}
	num = num.toString().replace(/\$|\,/g,'.');
	if(isNaN(num) || num=="" || num == null){
		num = strSavNum;
		if (num != "" && num != null) {	
 			if (bCenten==false) {
					num = num.toString().substr(0, num.toString().length -1)
 		 		alert("De door u ingevoerde waarde '" + strSavNum + "' is geen juiste invoer voor een bedrag. Voer uitsluitend getallen in." + "\nstrVeldnaam: " + strVeldnaam);
 		 } else {	
 		 		alert("De door u ingevoerde waarde '" + strSavNum + "' is geen juiste invoer voor een bedrag. Voer uitsluitend getallen en een komma in." + "\nstrVeldnaam: " + strVeldnaam);
 		 }
			if (strVeldnaam != "" && strVeldnaam != null ){
				setTimeout(function(){eval("document." + frmName + "." + strVeldnaam + ".focus()");eval("document." + frmName + "." + strVeldnaam + ".select()");},10)			
			}

		}
		if (bValidatie) {algValidatie()};
		return(num); 
	}
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	centen = num%100;
	num = Math.floor(num/100).toString();
	if(centen<10){
  	if (centen==0){
  		centen="00";
  	} else {
  		centen = "0" + centen;
  	}
	}
	if (bDuizendtallen == true) {
  	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++){
  			num = num.substring(0,num.length-(4*i+3))+'.'+
  			num.substring(num.length-(4*i+3));
  	}	
	}
	if (bValidatie == true) {algValidatie()};
	if (bCenten==true){
		return (((sign)?'':'-') + num + ',' + centen);
	}else{
		return (((sign)?'':'-') + num);
	}
}

function checkBedragen(oThis, strVeldnaam, bCenten, bDuizendtallen, bValidatie, bMagNegatief) {
	// aangepaste functie checkBedrag t.b.v. probleem in IE met het niet tonen van de cursor invoervelden. 
	// Hierbij wordt de berekende waarde automatisch aan het aanroepende veld teruggegeven.
	var num = oThis.value;
	var sign;
	var centen;
	var strSavNum=num;
	var tmpReturn;
	var sMin = "";
	if ( bMagNegatief ) {
		if (num.substring(0,1) == "-") {
			if (num.length > 1) {
				sMin = "-"; num = num.substring(1);
			} else 	{
				oThis.value = strSavNum;		
				if (bValidatie == true) {
					if (document.getElementById("divTiContent") != null && document.getElementById("divTiContent").style.display == 'block') {
						algTiValidatie();
					} else {
						algValidatie();
					}
				}				
				return(strSavNum);
			}
		}
	} else if(num.length > 0) {
		if (num.substring(0,1) == "-") {
			alert("Negatieve bedragen zijn niet toegestaan");
			oThis.value = num.substring(1,num.length);
			if (bValidatie == true) {
				if (document.getElementById("divTiContent") != null && document.getElementById("divTiContent").style.display == 'block') {
					algTiValidatie();
				} else {
					algValidatie();
				}
			}				
			return(num.substring(1,num.length));
		}
	}
	num = num.toString().replace(/\$|\,/g,'.');
	if(isNaN(num) || num=="" || num == null){
		num = strSavNum;
		if (num != "" && num != null) {	
			num = verwijderKarakters(num,bCenten);
			if (bCenten==false) {
				alert("De door u ingevoerde waarde '" + strSavNum + "' is geen juiste invoer voor een bedrag. Voer uitsluitend getallen in.");
			} else {	
				alert("De door u ingevoerde waarde '" + strSavNum + "' is geen juiste invoer voor een bedrag. Voer uitsluitend getallen en een komma in.");
			}
			if (strVeldnaam != "" && strVeldnaam != null){
				SetFocus(strVeldnaam);
			}
		}
		oThis.value = sMin + num;
		if (bValidatie == true) {
			if (document.getElementById("divTiContent") != null && document.getElementById("divTiContent").style.display == 'block') {
				algTiValidatie();
			} else {
				algValidatie();
			}
		}						
		return(sMin + num);
	}
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	centen = num%100;
	num = Math.floor(num/100).toString();
	if(centen<10){
		if (centen==0){
			centen="00";
		} else {
			centen = "0" + centen;
		}
	}
	if (bDuizendtallen == true) {
		for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++){
			num = num.substring(0,num.length-(4*i+3))+'.'+
			num.substring(num.length-(4*i+3));
		}	
	}
	if (bCenten==true){
		tmpReturn = (((sign)?'':'-') + num + ',' + centen);
		
	} else {
		tmpReturn = (((sign)?'':'-') + num);
	}
	oThis.value = sMin + tmpReturn;
	if (bValidatie == true) {
		if (document.getElementById("divTiContent") != null && document.getElementById("divTiContent").style.display == 'block') {
			algTiValidatie();
		} else {
			algValidatie();
		}
	}
	return tmpReturn;
}

function toRekenBedrag(num) {
	var strSavNum=num;
  num = num.toString().replace(/\$|\./g,'');
	num = num.toString().replace(/\$|\,/g,'.');
	if(isNaN(num) || num=="" || num == null){
		num = strSavNum;
		return(num); 
	}
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	centen = num%100;
	num = Math.floor(num/100).toString();
	if(centen<10){
  	if (centen==0){
  		centen="00";
  	} else {
  		centen = "0" + centen;
  	}
	}
	return (((sign)?'':'-') + num + '.' + centen);
}

function checkDag(oDag) {
	iDag = oDag.value;
	if(iDag == "") {
		alert("U hebt nog geen 'dag' ingevuld.");
		setTimeout("document.getElementById('gebdat_dag').select()",10);
		return false;
	} else if(!isNummer(iDag)) {
		alert("Een dag mag alleen uit cijfers bestaan.");
		document.getElementById('gebdat_dag').value = verwijderKarakters(iDag,false);
		setTimeout("document.getElementById('gebdat_dag').select()",10);
		return false;
	} else if(iDag < 1 || iDag > 31) {
		if (iDag != 0) {
			alert("Een dag ligt tussen 1 en 31.");
			setTimeout("document.getElementById('gebdat_dag').select()",10);
		}
		return false;
	} else if(!iDag == "") {
		return true;
	}
}

function checkMaand(oMaand) {
	iMaand = oMaand.value;
	if(iMaand == "") {
		alert("U hebt nog geen 'maand' ingevuld.");
		setTimeout("document.getElementById('gebdat_maand').select()",10);
		return false;
	} else if(!isNummer(iMaand)) {
		alert("Een maand mag alleen uit cijfers bestaan.");
		document.getElementById('gebdat_maand').value = verwijderKarakters(iMaand,false);
		setTimeout("document.getElementById('gebdat_maand').select()",10);
		return false;
	} else if(iMaand < 1 || iMaand > 12) {
		if (iMaand != 0) {
			alert("Een maand ligt tussen 1 en 12.");
			setTimeout("document.getElementById('gebdat_maand').select()",10);
		}
		return false;
	} else {
		return true;
	}
}

function checkJaar(oJaar) {
	iJaar = oJaar.value;
	if(iJaar == "") {
		alert("U hebt nog geen 'jaar' ingevuld.");
		setTimeout("document.getElementById('gebdat_jaar').select()",10);
		return false;
	} else if(!isNummer(iJaar)) {
		alert("Een jaar mag alleen uit cijfers bestaan.");
		document.getElementById('gebdat_jaar').value = verwijderKarakters(iJaar,false);
		setTimeout("document.getElementById('gebdat_jaar').select()",10);
		return false;
	} else {
		var dHuidigJaar = new Date();
		var dGeboorteJaar = new Date();
		dHuidigJaar.getYear();
		dGeboorteJaar.setFullYear(iJaar,0,1);
		iJaarVerschil = parseInt(dHuidigJaar.getYear()-dGeboorteJaar.getYear());
		if(iJaarVerschil < 0) {
			alert("Jaar kan niet in de toekomst liggen.");
			setTimeout("document.getElementById('gebdat_jaar').select()",10);
			return false;
		} else {
			return true;
		}
	}
}

