/*
	================================================================================
	= Naam             : Common Validation 2.0                                     =
	= Programmeur      : Rob Timmers                                               =
	= Laatst gewijzigd : 23 september 2006                                         =
	= Omschrijving     : Algemene functies om data te valideren                    =
	= Afhankelijkheden : string_functions.js                                       =
	================================================================================
	
	================================================================================
	= Overzicht functies                                                           =
	================================================================================
	
	ValidateVoorletters(strIDVoorletters, blnMustEnter, blnUpdateText, blnShowAlerts, blnBackToText)
	------------------------------------------------------------------------------------------------
	Omschijving: Controleert of een opgegeven veld geldige voorletters bevat en maakt deze op.
	
	Invoer     : - strIDVoorletters: De id van het veld
                 - blnMustEnter    : Bepaalt of het veld verplicht is
	             - blnUpdateText   : Bepaalt of de voorletters opgemaakt worden
                 - blnShowAlerts   : Bepaalt of de gebruiker een waarschuwing krijgt indien het veld leeg is of de voorletters ongeldig zijn
                 - blnBackToText   : Bepaalt of de focus op het veld word gezet indien deze leeg is of de voorletters ongeldig zijn
	
	Geeft terug: - true : Voorletters zijn geldig (en niet leeg)
				 - false: Voorletters zijn ongeldig of het veld is leeg
	================================================================================
	
	
	ValidateVoornaam(strIDVoornaam, blnMustEnter, blnUpdateText, blnShowAlerts, blnBackToText)
	------------------------------------------------------------------------------------------
	Omschijving: Controleert of een opgegeven veld een geldige voornaam bevat en maakt deze op.
	
	Invoer     : - strIDVoornaam: De id van het veld
                 - blnMustEnter : Bepaalt of het veld verplicht is
	             - blnUpdateText: Bepaalt of de voornaam opgemaakt wordt
                 - blnShowAlerts: Bepaalt of de gebruiker een waarschuwing krijgt indien het veld leeg is of de voornaam ongeldig is
                 - blnBackToText: Bepaalt of de focus op het veld word gezet indien deze leeg is of de voornaam ongeldig is
	
	Geeft terug: - true : Voornaam is geldig (en niet leeg)
				 - false: Voornaam is ongeldig of het veld is leeg
	================================================================================
	
	
	ValidateAchternaam(strIDAchternaam, blnMustEnter, blnUpdateText, blnShowAlerts, blnBackToText)
	----------------------------------------------------------------------------------------------
	Omschijving: Controleert of een opgegeven veld een geldige voornaam bevat en maakt deze op.
	
	Invoer     : - strIDAchternaam: De id van het veld
                 - blnMustEnter   : Bepaalt of het veld verplicht is
	             - blnUpdateText  : Bepaalt of de achternaam opgemaakt wordt
                 - blnShowAlerts  : Bepaalt of de gebruiker een waarschuwing krijgt indien het veld leeg is of de achternaam ongeldig is
                 - blnBackToText  : Bepaalt of de focus op het veld word gezet indien deze leeg is of de achternaam ongeldig is
	
	Geeft terug: - true : Achternaam is geldig (en niet leeg)
				 - false: Achternaam is ongeldig of het veld is leeg
	================================================================================
	
	
	ValidateRekeningnummer(strIDRekeningnummer, blnMustEnter, blnUpdateText, blnShowAlerts, blnBackToText)
	------------------------------------------------------------------------------------------------------
	Omschijving: Controleert of een opgegeven veld een geldige voornaam bevat en maakt deze op.
	
	Invoer     : - strIDRekeningnummer: De id van het veld
                 - blnMustEnter       : Bepaalt of het veld verplicht is
	             - blnUpdateText      : Bepaalt of het rekeningnummer opgemaakt wordt
                 - blnShowAlerts      : Bepaalt of de gebruiker een waarschuwing krijgt indien het veld leeg is of het rekeningnummer ongeldig is
                 - blnBackToText      : Bepaalt of de focus op het veld word gezet indien deze leeg is of het rekeningnummer ongeldig is
	
	Geeft terug: - true : Rekeningnummer is geldig (en niet leeg)
				 - false: Rekeningnummer is ongeldig of het veld is leeg
	================================================================================
	
	
	ValidateNumberAsInt(strIDNumber, blnMustEnter, blnUpdateText, blnShowAlerts, strFieldname, blnBackToText)
	---------------------------------------------------------------------------------------------------------
	Omschijving: Controleert of een opgegeven veld een geldige voornaam bevat en maakt deze op.
	
	Invoer     : - strIDNumber  : De id van het veld
                 - blnMustEnter : Bepaalt of het veld verplicht is
	             - blnUpdateText: Bepaalt of het rekeningnummer opgemaakt wordt
                 - blnShowAlerts: Bepaalt of de gebruiker een waarschuwing krijgt indien het veld leeg is of het rekeningnummer ongeldig is
                 - strFieldname : Naam van het veld voor verwerking in waarschuwingen
                 - blnBackToText: Bepaalt of de focus op het veld word gezet indien deze leeg is of het rekeningnummer ongeldig is
	
	Geeft terug: - true : Nummer is geldig (en niet leeg)
				 - false: Nummer is ongeldig of het veld is leeg
	================================================================================
	
	
	ValidateEmail(strIDEmail, blnMustEnter, blnUpdateText, blnShowAlerts, blnBackToText)
	------------------------------------------------------------------------------------
	Omschijving: Controleert of een opgegeven veld een geldige voornaam bevat en maakt deze op.
	
	Invoer     : - strIDEmail   : De id van het veld
                 - blnMustEnter : Bepaalt of het veld verplicht is
	             - blnUpdateText: Bepaalt of het e-mail adres opgemaakt wordt
                 - blnShowAlerts: Bepaalt of de gebruiker een waarschuwing krijgt indien het veld leeg is of het e-mail adres ongeldig is
                 - blnBackToText: Bepaalt of de focus op het veld word gezet indien deze leeg is of het e-mail adres ongeldig is
	
	Geeft terug: - true : E-mail is geldig (en niet leeg)
				 - false: E-mail is ongeldig of het veld is leeg
	================================================================================
	
*/
	
//	================================================================================
//	= De functies                                                                  =
//	================================================================================

function ValidateVoorletters(strIDVoorletters, blnMustEnter, blnUpdateText, blnShowAlerts, blnBackToText)
{
	var l_objVoorletters = document.getElementById(strIDVoorletters);
	var l_strVoorletters = new String();
	var l_strNewVoorletters = new String();
	var l_strAllowedInitials = "ABCDEFGHIJKLMNOPQRSTUVWXYZÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÑÒÓÔÕÖØÙÚÛÜÌÍÎÏÝŸ";
	var l_strAllowedChars = l_strAllowedInitials + ". -"
	var l_strSpecialInitials = new Array("Chr", "Jac", "Th", "Ph", "IJ", "Ch");
	var l_lngPosition = new Number();
	var l_blnFoundSpecialInitial = false;
				
	l_strVoorletters = l_objVoorletters.value.toString();
	l_lngPosition = 0;

	// Controleren of de parameters verwijzen naar bestaande id's van objecten.
	if (eval(l_objVoorletters) == null) {alert("Bad Object Reference: " + strIDVoorletters + "\n\nFunction: ValidateVoorletters"); return (false);}

	if (l_strVoorletters.length == 0)
	{
		if (blnMustEnter)
		{ 
			if (blnShowAlerts) alert("Voorletters is verplicht.");
			if (blnBackToText) l_objVoorletters.focus();
			return (false);
		}
		else
			return (true);
	}
	
	while (l_lngPosition < l_strVoorletters.length)
	{
		if (l_strAllowedInitials.indexOf(l_strVoorletters.substr(l_lngPosition, 1).toUpperCase()) != -1)
		{
			l_blnFoundSpecialInitial = false;
			for (var i = 0; i < l_strSpecialInitials.length; i++)
			{
				if (l_strVoorletters.substr(l_lngPosition, l_strSpecialInitials[i].length).toUpperCase() == l_strSpecialInitials[i].toString().toUpperCase())
				{
					if (confirm("De lettercombinatie " + l_strSpecialInitials[i].toString().toUpperCase() + " is gevonden in de voorletters.\nStaat dit voor de voorletter " + l_strSpecialInitials[i].toString() + "?"))
					{
						l_blnFoundSpecialInitial = true;
						l_strNewVoorletters = l_strNewVoorletters + l_strSpecialInitials[i].toString() + ".";
						l_lngPosition = l_lngPosition + l_strSpecialInitials[i].length;
					}
					break;
				}
			}
			if (!l_blnFoundSpecialInitial)
			{
				l_strNewVoorletters = l_strNewVoorletters + l_strVoorletters.charAt(l_lngPosition).toUpperCase() + ".";
				l_lngPosition = l_lngPosition + 1;
			}
		}
		else
		{
			if (l_strAllowedChars.indexOf(l_strVoorletters.substr(l_lngPosition, 1).toUpperCase()) == -1)
			{
				if (blnShowAlerts) alert("Het karakter " + l_strVoorletters.substr(l_lngPosition, 1) + " op positie " + (l_lngPosition + 1) + " in de voorletters is niet toegestaan.");
				if (blnBackToText) l_objVoorletters.focus();
				return (false);
			}
				else l_lngPosition = l_lngPosition + 1;
		}
	}
	if (blnUpdateText) l_objVoorletters.value = l_strNewVoorletters;
	return (true);
}

function ValidateVoornaam(strIDVoornaam, blnMustEnter, blnUpdateText, blnShowAlerts, blnBackToText)
{
	var l_objVoornaam = document.getElementById(strIDVoornaam)
	var l_strVoornaam = new String();
	var l_strNewVoornaam = new String();
	var l_strAllowedInitials = "ABCDEFGHIJKLMNOPQRSTUVWXYZÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÑÒÓÔÕÖØÙÚÛÜÌÍÎÏÝŸ";
	var l_strAllowedCharacters = l_strAllowedInitials + " -'."
	var l_lngPosition = new Number();
	var l_blnLastCharWasChar = false;
			
	// Controleren of de parameters verwijzen naar bestaande id's van objecten.
	if (eval(l_objVoornaam) == null) {alert("Bad Object Reference: " + strIDVoornaam + "\n\nFunction: ValidateVoornaam"); return (false);}
	
	l_strVoornaam = Trim(l_objVoornaam.value.toString());
	
	if (l_strVoornaam.length == 0)
	{
		if (blnUpdateText) l_objVoornaam.value = "";
		if (blnMustEnter)
		{
			if (blnShowAlerts) alert("Voornaam is verplicht.");
			if (blnBackToText) l_objVoornaam.focus();
			return (false);
		}
		else
			return (true);
	}
	
	l_lngPosition = 0;

	while(l_lngPosition < l_strVoornaam.length)
	{
		if (l_strAllowedCharacters.indexOf(l_strVoornaam.substr(l_lngPosition, 1).toUpperCase()) == -1)
		{
			if (blnShowAlerts) alert("Het karakter " + l_strVoornaam.substr(l_lngPosition, 1) + " op positie " + (l_lngPosition + 1) + " in de voornaam is niet toegestaan.");
			if (blnBackToText) l_objVoornaam.focus();
			return (false);
		}
				
		if (l_strAllowedInitials.indexOf(l_strVoornaam.substr(l_lngPosition, 1).toUpperCase()) != -1)
		{
			if (!l_blnLastCharWasChar)
				l_strNewVoornaam = l_strNewVoornaam + l_strVoornaam.charAt(l_lngPosition).toUpperCase();
			else
				l_strNewVoornaam = l_strNewVoornaam + l_strVoornaam.charAt(l_lngPosition).toLowerCase();
			l_blnLastCharWasChar = true;
		}
		else
		{
			l_strNewVoornaam = l_strNewVoornaam + l_strVoornaam.charAt(l_lngPosition);
			l_blnLastCharWasChar = false;
		}
		l_lngPosition = l_lngPosition + 1;
	}
	if (blnUpdateText) l_objVoornaam.value = l_strNewVoornaam; 
	return (true);
}

function ValidateAchternaam(strIDAchternaam, blnMustEnter, blnUpdateText, blnShowAlerts, blnBackToText)
{
	var l_objAchternaam = document.getElementById(strIDAchternaam)
	var l_strAchternaam = new String();
	var l_strNewAchternaam = new String();
	var l_strTussenvoegsels = new Array("de van der", "onder de", "uijt den", "voor den", "voor het", "aan den", "aan der", "aan het", "auf dem", "auf den", "auf der", "aus dem", "los van", "over de", "uit den", "uit het", "uit ten", "uyt den", "van den", "van der", "van het", "van ter", "van van", "von dem", "von den", "von der", "voor de", "voor 't", "aan de", "aan 't", "bij de", "bij 't", "da van", "de los", "in den", "in der", "in het", "op den", "op der", "op het", "op ten", "te van", "uit de", "van de", "van 't", "de de", "de l'", "de la", "de le", "in de", "in 't", "la de", "onder", "op de", "op 't", "te de", "over", "thoe", "v.d.", "v.h.", "voor", "aan", "auf", "ben", "dal", "del", "den", "der", "des", "dos", "het", "los", "ten", "ter", "toe", "uit", "van", "ver", "vom", "von", "zur", "a'", "af", "al", "d'", "da", "de", "di", "do", "du", "el", "in", "l'", "la", "le", "lo", "o'", "op", "'s", "'t", "t'", "te", "a")
	var l_strAllowedInitials = "ABCDEFGHIJKLMNOPQRSTUVWXYZÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÑÒÓÔÕÖØÙÚÛÜÌÍÎÏÝŸ";
	var l_strAllowedCharacters = l_strAllowedInitials + " -'"
	var l_lngPosition = new Number();
	var l_blnLastCharWasChar = false;
	var l_blnFoundTussenvoegsel = false;

	// Controleren of de parameters verwijzen naar bestaande id's van objecten.
	if (eval(l_objAchternaam) == null) {alert("Bad Object Reference: " + strIDAchternaam + "\n\nFunction: ValidateAchternaam"); return (false);}
	
	l_strAchternaam = Trim(l_objAchternaam.value.toString());
	
	if (l_strAchternaam.length == 0)
	{
		if (blnUpdateText) l_objAchternaam.value = "";
		if (blnMustEnter)
		{
			if (blnShowAlerts) alert("Achternaam is verplicht.");
			if (blnBackToText) l_objAchternaam.focus();
			return (false);
		}
		else
			return (true);
	}
	
	// Controleren of de achternaam begint met een tussenvoegsel.		
	for (var i = 0; i < l_strTussenvoegsels.length; i++)
	{
		if(l_strAchternaam.substr(0, l_strTussenvoegsels[i].length + 1).toLowerCase() == l_strTussenvoegsels[i].toString() + " ")
		{
			if (blnShowAlerts) alert("Achternaam mag niet beginnen met een tussenvoegsel.");
			if (blnBackToText) l_objAchternaam.focus();
			return (false);
		}  
	}
	
	l_lngPosition = 0;

	while(l_lngPosition < l_strAchternaam.length)
	{
		if (l_strAllowedCharacters.indexOf(l_strAchternaam.substr(l_lngPosition, 1).toUpperCase()) == -1)
		{
			if (blnShowAlerts) alert("Het karakter " + l_strAchternaam.substr(l_lngPosition, 1) + " op positie " + (l_lngPosition + 1) + " in de achternaam is niet toegestaan.");
			if (blnBackToText) l_objAchternaam.focus();
			return (false);
		}
				
		l_blnFoundTussenvoegsel = false;
		for (var i = 0; i < l_strTussenvoegsels.length; i++)
		{
			if(l_strAchternaam.substr(l_lngPosition, l_strTussenvoegsels[i].length + 1).toLowerCase() == l_strTussenvoegsels[i].toString() + " ")
			{
				l_blnFoundTussenvoegsel = true;
				l_blnLastCharWasChar = false;
				l_strNewAchternaam = l_strNewAchternaam + l_strTussenvoegsels[i].toString() + " ";
				l_lngPosition = l_lngPosition + l_strTussenvoegsels[i].length + 1;
				break;
			}
		}
				
		if (!l_blnFoundTussenvoegsel)
		{
			if (l_strAllowedInitials.indexOf(l_strAchternaam.substr(l_lngPosition, 1).toUpperCase()) != -1)
			{
				if (!l_blnLastCharWasChar)
					l_strNewAchternaam = l_strNewAchternaam + l_strAchternaam.charAt(l_lngPosition).toUpperCase();
				else
					l_strNewAchternaam = l_strNewAchternaam + l_strAchternaam.charAt(l_lngPosition).toLowerCase();
				l_blnLastCharWasChar = true;
			}
			else
			{
				l_strNewAchternaam = l_strNewAchternaam + l_strAchternaam.charAt(l_lngPosition);
				l_blnLastCharWasChar = false;
			}
			l_lngPosition = l_lngPosition + 1;
		}
	}
	if (blnUpdateText) l_objAchternaam.value = l_strNewAchternaam;
	return (true);
}

function ValidateRekeningnummer(strIDRekeningnummer, blnMustEnter, blnUpdateText, blnShowAlerts, blnBackToText)
{
	var l_objRekeningnummer = document.getElementById(strIDRekeningnummer);
	var l_strRekeningnummer = new String();
	var l_lngResult = 0;

	// Controleren of de parameters verwijzen naar bestaande id's van objecten.
	if (eval(l_objRekeningnummer) == null) {alert("Bad Object Reference: " + strIDRekeningnummer + "\n\nFunction: ValidateRekeningnummer"); return (false);}
	
	if (TextIsEmpty(strIDRekeningnummer, true, blnUpdateText))
	{
		if (blnMustEnter)
		{
			if (blnShowAlerts) alert("Rekeningnummer is verplicht.");
			if (blnBackToText) l_objRekeningnummer.focus();
			return (false);
		}
		else
			return (true);
	}
	
	l_strRekeningnummer = LTrimZero(Trim(l_objRekeningnummer.value));
	
	if (isNaN(l_objRekeningnummer.value))
	{
		if (blnShowAlerts) alert("Een rekeningnummer mag alleen maar uit cijfers bestaan.");
		if (blnBackToText) l_objRekeningnummer.focus();
		return (false);
	}
	
	if (blnUpdateText) l_objRekeningnummer.value = l_objRekeningnummer;
	
	if (l_strRekeningnummer.length < 1 || l_strRekeningnummer.length == 8 || l_strRekeningnummer.length > 9)
	{
		if (blnShowAlerts) alert("Een rekeningnummer mag niet uit " + l_strRekeningnummer.length + " cijfers bestaan.");
		if (blnBackToText) l_objRekeningnummer.focus();
		return (false);
	}
	
	if (l_strRekeningnummer.length != 9) return (true);
	
	for (var i = 1; i < 10; i++)
	{
		l_lngResult = l_lngResult + (i * parseInt(l_strRekeningnummer.charAt(9 - i), 10));
	}
	if (l_lngResult % 11 == 0)
		return (true);
	else
	{
		if (blnShowAlerts) alert("Het ingevoerde rekeningnummer is ongeldig.");
		if (blnBackToText) l_objRekeningnummer.focus();
		return (false);
	}
}

function ValidateTelefoonnummer(strIDTelefoonnummer, blnMustEnter, blnUpdateText, blnShowAlerts, blnBackToField)
{
	var l_objTelefoonnummer = document.getElementById(strIDTelefoonnummer);
	var l_strTelefoonnummer = new String();
	var l_strNewTelefoonnummer = new String();
	var l_strNetnummers2 = new Array("10", "13", "15", "20", "23", "24", "26", "30", "33", "35", "36", "38", "40", "43", "45", "46", "50", "53", "55", "58", "70", "71", "72", "73", "74", "75", "76", "77", "78", "79")
	var l_strNetnummers3 = new Array("111", "113", "114", "115", "117", "118", "161", "162", "164", "165", "166", "167", "168", "172", "174", "180", "181", "182", "183", "184", "186", "187", "222", "223", "224", "226", "227", "228", "229", "251", "252", "255", "294", "297", "299", "313", "314", "315", "316", "317", "318", "320", "321", "341", "342", "343", "344", "345", "346", "347", "347", "348", "411", "412", "413", "416", "418", "475", "478", "481", "485", "486", "487", "488", "492", "493", "495", "497", "499", "511", "512", "513", "514", "515", "516", "517", "518", "519", "521", "522", "523", "524", "525", "527", "528", "529", "541", "543", "544", "545", "546", "547", "548", "561", "562", "566", "570", "571", "572", "573", "575", "577", "578", "591", "592", "593", "594", "595", "596", "597", "598", "599", "676")

	// Controleren of de parameters verwijzen naar bestaande id's van objecten
	if (eval(l_objTelefoonnummer) == null) {alert("Bad Object Reference: " + strIDTelefoonnummer + "\n\nFunction: ValidateTelefoonnummer"); return (false);}
				
	l_strTelefoonnummer = Trim(l_objTelefoonnummer.value.toString());

	if (l_strTelefoonnummer.length == 0)
	{
		if (blnMustEnter)
		{
			if (blnShowAlerts) alert("Telefoonnummer is verplicht.");
			if (blnBackToField) l_objTelefoonnummer.focus();
			return (false);			
		}
		else
			return (true);
	}
	
	for (var i = 0; i < l_strTelefoonnummer.length; i++)
	{
		if (l_strTelefoonnummer.charCodeAt(i) > 47 && l_strTelefoonnummer.charCodeAt(i) < 58)
		{
			l_strNewTelefoonnummer = l_strNewTelefoonnummer + l_strTelefoonnummer.charAt(i) 
		}
	}
					
	if ((l_strNewTelefoonnummer.substr(0, 2) == "00") || (l_strNewTelefoonnummer.substr(0, 1) != "0"))
	{
		if (blnShowAlerts) alert("Het ingevoerde telefoonnummer is ongeldig.")
		if (blnBackToField) l_objTelefoonnummer.focus();
		return (false);
	}
					
	if (parseInt(LTrimZero(l_strNewTelefoonnummer.substr(0, 2))) > 0 && parseInt(LTrimZero(l_strNewTelefoonnummer.substr(0, 2))) < 8)
	{
		if (l_strNewTelefoonnummer.length != 10)
		{
			if (blnShowAlerts) alert("Het ingevoerde telefoonnummer is ongeldig.")
			if (blnBackToField) l_objTelefoonnummer.focus();
			return (false);
		}
						
		for (var i = 0; i < l_strNetnummers2.length; i++)
		{
			if (l_strNewTelefoonnummer.substr(1, 2) == l_strNetnummers2[i])
			{
				l_strNewTelefoonnummer = l_strNewTelefoonnummer.substr(0, 3) + "-" + l_strNewTelefoonnummer.substr(3, 7)
				if (blnUpdateText) l_objTelefoonnummer.value = l_strNewTelefoonnummer;
				return (true);
			}
		}
						
		for (var i = 0; i < l_strNetnummers3.length; i++)
		{
			if (l_strNewTelefoonnummer.substr(1, 3) == l_strNetnummers3[i])
			{
				l_strNewTelefoonnummer = l_strNewTelefoonnummer.substr(0, 4) + "-" + l_strNewTelefoonnummer.substr(4, 6)
				if (blnUpdateText) l_objTelefoonnummer.value = l_strNewTelefoonnummer;
				return (true);
			} 
		}
						
		if (l_strNewTelefoonnummer.substr(0, 2) == "06")
		{
			l_strNewTelefoonnummer = l_strNewTelefoonnummer.substr(0, 2) + "-" + l_strNewTelefoonnummer.substr(2, 8)
			if (blnUpdateText) l_objTelefoonnummer.value = l_strNewTelefoonnummer;
			return (true);
		}
	}

	if (parseInt(LTrimZero(l_strNewTelefoonnummer.substr(0, 2))) == 8 && parseInt(LTrimZero(l_strNewTelefoonnummer.substr(0, 2))) == 9)
	{
		if (l_strNewTelefoonnummer.length > 7 && l_strNewTelefoonnummer.length < 11)
		{
			l_strNewTelefoonnummer = l_strNewTelefoonnummer.substr(0, 4) + "-" + l_strNewTelefoonnummer.substr(4, 6)
			if (blnUpdateText) l_objTelefoonnummer.value = l_strNewTelefoonnummer;
			return (true);
		}
	}
					
	if (blnShowAlerts) alert("Het ingevoerde telefoonnummer kon niet herkend worden als nederlands telefoonnummer.");
	if (blnUpdateText) l_objTelefoonnummer.value = l_strNewTelefoonnummer;
	if (blnBackToField) l_objTelefoonnummer.focus();
	return (false);
}

function ValidateNumberAsInt(strIDNumber, blnMustEnter, blnUpdateText, blnShowAlerts, strFieldname, blnBackToText)
{
	var l_objNumber = document.getElementById(strIDNumber)
	var l_strNumber = new String();
	var l_lngNumber = new Number();
		
	// Controleren of de parameters verwijzen naar bestaande id's van objecten.
	if (eval(l_objNumber) == null) {alert("Bad Object Reference: " + strIDNumber + "\n\nFunction: ValidateNumber"); return (false);}
	
	l_strNumber = Trim(l_objNumber.value.toString())
		
	if (l_strNumber.length == 0)
	{
		if (blnMustEnter)
		{
			if (blnShowAlerts) alert (strFieldname + " is verplicht.");
			if (blnUpdateText) l_objNumber.value = l_strNumber;
			if (blnBackToText) l_objNumber.focus();
			return (false);
		}
		else
			return (true);
	}
	
	if (isNaN(parseInt(l_strNumber, 10)))
	{
		if (blnShowAlerts) alert(strFieldname + " mag alleen maar uit cijfers bestaan.");
		if (blnUpdateText) l_objNumber.value = "";
		if (blnBackToText) l_objNumber.focus();
		return (false);
	}
	if (blnUpdateText)
	{
		l_lngNumber = parseInt(l_strNumber, 10)
		l_objNumber.value = l_lngNumber;
	}
	return (true);
}

function ValidateEmail(strIDEmail, blnMustEnter, blnUpdateText, blnShowAlerts, blnBackToText)
{
	var l_objEmail = document.getElementById(strIDEmail);
	var l_strEmail = new String();
	var l_lngPosition = new Number();
	
	// Controleren of de parameters verwijzen naar bestaande id's van objecten.
	if (eval(l_objEmail) == null) {alert("Bad Object Reference: " + strIDEmail + "\n\nFunction: ValidateEmail"); return (false);}
	
	l_strEmail = Trim(l_objEmail.value.toString().toLowerCase());
	
	if (blnUpdateText) l_objEmail.value = l_strEmail;
	
	if (l_strEmail.length == 0)
	{
		if (blnMustEnter)
		{
			if (blnShowAlerts) alert("E-mail adres is verplicht.");
			if (blnBackToText) l_objEmail.focus();
			return (false);			
		}
		else
			return (true);
	}
	
	l_lngPosition = InStr(1, l_strEmail, "@", true);
	if (l_lngPosition < 1)
	{
		if (blnShowAlerts) alert("Het e-mail adres is ongeldig.");
		if (blnBackToText) l_objEmail.focus();
		return (false);			
	}
	
	l_lngPosition = InStr(l_lngPosition + 2, l_strEmail, ".", true);
	if (l_lngPosition == -1 || l_lngPosition == (l_strEmail.length - 1))
	{
		if (blnShowAlerts) alert("Het e-mail adres is ongeldig.");
		if (blnBackToText) l_objEmail.focus();
		return (false);			
	}
	return (true);
}

