TDAValidation = function(){
	this.sMsg = new String();
	
	this.formatNumber=function(p_sInput){
		var sReturn = new String(p_sInput);
		sReturn = sReturn.replace(/\D/g, '');
		return sReturn;
	}
	
	this.formatBsn=function(p_sInput){
		var sReturn = new String(p_sInput);
		sReturn = sReturn.replace(/\D/g, '');
		sReturn = sReturn.replace(/([0-9]{4})[\.]?([0-9]{2})[\.]?([0-9]{3})/g, '$1.$2.$3');
		sReturn = sReturn.substr(0,11);
		return sReturn;
	}
	
	this.formatPercentage=function(p_sInput){
		var sReturn = new String(p_sInput);
		sReturn = sReturn.replace(/\D/g, '')*1;
		if (sReturn!=100) {
			sReturn = new String(sReturn).substr(0,2);
		}
		return sReturn;
	}
	
	this.formatBrilsterkte=function(p_sInput){
		var sReturn = new String(p_sInput);
		sReturn = sReturn.replace(/[^\d,-]/g, '').substr(0,5);
		return sReturn;
	}
	
	this.formatYear=function(p_sInput){
		var sReturn = new String(p_sInput);
		sReturn = sReturn.replace(/\D/g, '').substr(0,4);
		if ((sReturn.length==1) && (sReturn != '0')) {
			sReturn = '200'+sReturn;
		}
		if (sReturn.length==2) {
			if (sReturn<30) {
				sReturn = '20'+sReturn;
			} else {
				sReturn = '19'+sReturn;
			}
		}
		return sReturn;
	}
	
	this.formatPhone=function(p_sInput){
		var sReturn = new String(p_sInput);
		sReturn = sReturn.replace(/\D/g, '').substr(0,15);
		return sReturn;
	}
	
	this.formatLastname=function(p_sInput){
		var sReturn = new String();
		var sTmp = new String(p_sInput).replace(/\d/g, '');//.toLowerCase();
		sReturn = sTmp.substr(0,1).toUpperCase() + sTmp.substr(1);
		return sReturn;
	}
	
	this.formatInitials=function(p_sInput){
		var sReturn = new String();
		var sTmp = new String(p_sInput).replace(/[\W\d]/g, '').toUpperCase();
		for (var i=0; i<sTmp.length; i++) {
			sReturn += sTmp.substr(i,1) + '.';
		}
		return sReturn;
	}
	
	this.formatPostcode=function(p_sInput){
		var sReturn = new String();
		var sNumbers = new String(p_sInput).replace(/\D/g, '').substr(0,4);
		var sChars = new String(p_sInput).replace(/[\W\d]/g, '').substr(0,2).toUpperCase();
		sReturn = sNumbers + sChars;
		return sReturn;
	}
	
	this.formatKenteken=function(p_sInput){
		var sReturn = new String(p_sInput).toUpperCase().replace(/[^A-Z0-9]/g, '').substr(0,6);
		var sChars = new String(sReturn).replace(/[^A-Z]/g, '');
		var sChar = new String();
		var bNumeric = false;
		if (sChars.length==3) {
			var sKenteken = new String();
			for (var i=0; i<sReturn.length; i++) {
				sChar = sReturn.substr(i,1);
				if (i>0 && (bNumeric!=this.isNumeric(sChar))) {
					sKenteken += '-';					
				}
				sKenteken += sChar;
				bNumeric = this.isNumeric(sChar);
			}
			sReturn = sKenteken;
		} else {
			sReturn = sReturn.substr(0,2) + '-' + sReturn.substr(2,2) + '-' + sReturn.substr(4,2);
		}
		return sReturn;
	}
	
	this.formatDate=function(p_sInput){
		var sReturn = new String(p_sInput);
		sReturn = sReturn.replace(/\D/g, '').substr(0,8);
		
		var sSep = new String('-');
		var sDay = sReturn.substr(0,2);
		var sMonth = sReturn.substr(2,2);
		var sYear = sReturn.substr(4,4);
		if (sReturn.length==8) {
			sReturn = sDay + sSep + sMonth + sSep + sYear;
		} else {
			sReturn = p_sInput;
		}
		return sReturn;
	}
	
	this.formatBedrag=function(p_sInput){
		var sReturn = new String(p_sInput).replace(/[^\d\.]/g, '');
		var sFirstPart = new String('0');
		var sSep = new String('.');
		var sLastPart = new String('00');
		var aParts = sReturn.split('.');
		
		if (sReturn.length>0) {
			sFirstPart = sReturn;
			if (aParts.length>1) {
				sFirstPart = '';
				sLastPart = new String(Math.round(100*('0.'+aParts[aParts.length-1]))+sLastPart).substr(0, 2);
				for (var i=0; i<aParts.length-1; i++) {// all but lastPart (length-1!)
					sFirstPart += aParts[i];
				}
			}
			sReturn = (sFirstPart*1) + sSep + sLastPart;
		}
		
		return sReturn;
	}
	
	this.isAlpha=function(p_sInput){
		var bReturn = false;
		var oRegExp = new RegExp('[A-Za-z]{'+p_sInput.length+'}');
		if (oRegExp.test(p_sInput)) {
			bReturn = true;
		}
		return bReturn;
	}

	this.isNumeric=function(p_sInput){
		var bReturn = false;
		var oRegExp = new RegExp('[0-9]{'+p_sInput.length+'}');
		if (oRegExp.test(p_sInput)) {
			bReturn = true;
		}
		return bReturn;
	}
	
	this.isBSN=function(p_sInput){
		var bReturn = false;
		var oRegExp = /([0-9]{4})[\.]?([0-9]{2})[\.]?([0-9]{3})/;
		var bTest = oRegExp.test(p_sInput)
		if (p_sInput.length==0 || bTest) {
			bReturn = true;
		}
		return bReturn;
	}
	
	this.isValidDate=function(p_sInput){
		var bReturn = true;
		if (p_sInput.length) {
			var dCompare = new Date();
		}
		return bReturn;
	}
	
	this.isValidYear=function(p_sInput){
		var bReturn = true;
		if (p_sInput.length) {
			var dCompare = new Date();
			dCompare.setFullYear(dCompare.getFullYear()+100, dCompare.getMonth(), dCompare.getDay());
			if (p_sInput<1900 || p_sInput>dCompare.getFullYear()) {
				bReturn = false;
			}
		}
		return bReturn;
	}
	
	this.isValidPostcode=function(p_sInput){
		var bReturn = false;
		var oRegExp = new RegExp('[0-9]{4} ?[A-Za-z]{2}');
		if (oRegExp.test(p_sInput)) {
			bReturn = true;
		}
		return bReturn;
	}
	
	this.isValidKenteken=function(p_sInput){
		var bReturn = false;
		var oRegExp = new RegExp('([A-Z]{1,2}|[0-9]{1,2})-([A-Z]{2,3}|[0-9]{2,3})-([A-Z]{1,2}|[0-9]{1,2})');
		if (p_sInput.length==8 && oRegExp.test(p_sInput)) {
			bReturn = true;
		}
		return bReturn;
	}
}
