var g_ReEx_DutchDate	= /^\d{2}-\d{2}-\d{4}$/
var g_ReEx_dutchzipcode = /^([0-9]{4})([a-zA-Z]{2})$/
var g_ReEx_dutchTime	= /^\d{2}[:]\d{2}$/
var g_ReEx_email		= /^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$/

var strValidString	= '';
var blnValid		= true;

function IsDutchDate(strDate)
{
	if(checkExpression(strDate, g_ReEx_DutchDate))
	{
		var strDay		= strDate.substring(0,2);
		var strMonth	= strDate.substring(3,5);
		var strYear		= strDate.substring(6,10);
		
		return isDate(strDay, strMonth, strYear);	
	}

}

function IsDutchTime(strTime)
{
	return checkExpression(strTime, g_ReEx_dutchTime);
}

function CompareDutchDate(strDate, intDays, dtmDateToCompareTo)
{
	if(intDays == null)
	{
		intDays = 0;
	}
	if(dtmDateToCompareTo == null)
	{
		dtmDateToCompareTo	= new Date();
	}
	
	if(dtmDateToCompareTo.toString().length == 10)//String
	{
		dtmDateToCompareTo = CreateDateFromDutchString(dtmDateToCompareTo, null);
	}

	var dtmDateToCheck		= CreateDateFromDutchString(strDate, null);
	dtmDateToCompareTo		= addDays(dtmDateToCompareTo,intDays-1);
	
	return dtmDateToCheck > dtmDateToCompareTo;
}

function CreateDateFromDutchString(strDate, strTime)
{
	var strDay		= strDate.substring(0,2);
	var strMonth	= strDate.substring(3,5);
	var strYear		= strDate.substring(6,10);
	
	var dtmDate	= new Date(strYear, strMonth-1, strDay);
	
	if(strTime != null)
	{
		var strHours	= strTime.substring(0,2);
		var strMinutes	= strTime.substring(3,5);
		
		dtmDate.setHours(strHours, strMinutes);
	}
	
	return dtmDate;
}

function addDays(myDate,days)
{
    return new Date(myDate.getTime() + days*24*60*60*1000);
}


function IsDutchZipCode(strZipCode)
{
	checkExpression(strZipCode, g_ReEx_dutchzipcode)
}

function isDate(day,month,year) {
 	var today = new Date();
    year = ((!year) ? y2k(today.getYear()):year);
    month = ((!month) ? today.getMonth():month-1);
    if (!day) return false

    var test = new Date(year,month,day);	
	
    if ((year == y2k(test.getYear())) && (month == test.getMonth()) && (day == test.getDate()) ){
        return true;
    } else {
        return false;
	};		
};

function checkExpression(strValue, strRegExp)
{


	var myRegExp	= new String(strRegExp);
	var intPos		= myRegExp.indexOf('@');
	var blnEmail	= intPos > 0;

	if(blnEmail && trimspaces(strValue) == '')
	{
		//Floris: Expressie is een email, dus niet checken indien leeg (wordt in form object ander altijd aangezien als fout e-mail adres
		return true;
	}
	
	var blnReg = false;
	var filter  = strRegExp;
	if (filter.test(strValue)) {
		blnReg = true;
	};
	return blnReg;
}

function y2k(number) { return (number < 1000) ? number + 1900 : number; }