/**************************************************************************
'Pagina				:	utils.js
'Doel				:	Controles en Validaties
'Navigatie (uit)	:	nvt
'Js-bestanden		:	nvt
'Dll’s				:	nvt
'Parameters			:	nvt
'**************************************************************************/

function fCheckPostcode(strPostcode) 
	
{
	var strValue = '';
	var strPostcodePat = /^[0-9]{4}[A-Z|a-z]{2}$/;

	// Kopieer inhoud naar lokale string variabele
	strValue = strPostcode;

	// Haal de spatie weg
	strValue = strValue.replace(' ', '');

	// Controleer of de waarde gevuld is
	if (strValue.length == 0) {
		return true;
	}
				
	// Creeer een match array
	var arrMatchArray = strValue.match(strPostcodePat);
			
	// Als de array leeg is, dan is de waarde niet goed
	if (arrMatchArray == null) {
		return false;
	}
			
	return true;
}

function CheckNumeric(strNumericValue) 
{
	var strValue = '';
	
	strValue = strNumericValue;
	
	if (strValue.length != 0) {
		// Initialiseer de pattern
		strPat = new RegExp("^[0-9]{" + strValue.length + "}$"); 
	
		// Creeer een match array
		var arrMatchArray = strValue.match(strPat);
				
		// Als de array leeg is, dan is de waarde niet goed
		if (arrMatchArray == null) {
			return false;
		}
	}		
	return true;
}

function ChangeToUppercase(objControl, a_event) 
{
	// Negeer de tab, shift-tab, pijltjestoetsen: links, rechts, boven en naar beneden, Backspace, Delete, Home en End
	if ((a_event.keyCode != 9) && (a_event.keyCode != 16) && (a_event.keyCode != 37) && (a_event.keyCode != 39) && (a_event.keyCode != 38) && (a_event.keyCode != 40) && (a_event.keyCode != 8) && (a_event.keyCode != 46) && (a_event.keyCode != 36) && (a_event.keyCode != 35)) 
	{
		var strText = '';
		
		strText = objControl.value;
		
		strText = strText.toUpperCase();
		
		objControl.value = strText;
		return;
	}
}

function CheckForWrongCharacters(objTextArea) {
	var strValue = '';
	var strVerkeerdeKarakter = '';
	var intPos = 0;
	
	// Maak array met verkeerde karakters
	arrVerkeerdeKarakters = new Array('\&','\<','\>','\"','\'','\#','\€');
	
	// Vul lokale string variabele
	// strValue = objTextArea.value;
	strValue = objTextArea;
	// Loop door het invoer veld en zoek naar verkeerde karakters
	for (intTeller=0;intTeller<arrVerkeerdeKarakters.length;intTeller++) {
		strVerkeerdeKarakter = arrVerkeerdeKarakters[intTeller];
		
		intPos = strValue.indexOf(strVerkeerdeKarakter);

		if (intPos != -1) {
			alert('Ongeldige teken: ' + strVerkeerdeKarakter);
			
			// Vervang totdat er geen verkeerde karakters meer zijn
			do 
			{
				strValue = strValue.replace(strVerkeerdeKarakter, '');
				
				intPos = strValue.indexOf(strVerkeerdeKarakter);
			}
			while (intPos != -1);
		}
	}

	objTextArea.value = strValue;
}

function CheckEmailAddress(a_strEmail) {

	var objRegExp = /^([\w-\.]{1,}\@([\da-zA-Z-]{1,}\.){1,}[\da-zA-Z-]{2,3};*){1,2}$/;
	return objRegExp.test(a_strEmail);

}

function Trim(strString){
	return RTrim(LTrim(strString));
}

function LTrim(strString){
	return strString.replace(/^\s+/, "");
}

function RTrim(strString){
	return strString.replace(/\s+$/, "");
}

function TabField(objControl, intMaxLength, objNextControl, a_event) {
	// Negeer de tab, shift-tab, pijltjestoetsen: links, rechts, boven en naar beneden, Backspace, Delete, Home en End
	if ((a_event.keyCode != 9) && (a_event.keyCode != 16) && (a_event.keyCode != 37) && (a_event.keyCode != 39) && (a_event.keyCode != 38) && (a_event.keyCode != 40) && (a_event.keyCode != 8) && (a_event.keyCode != 46) && (a_event.keyCode != 36) && (a_event.keyCode != 35))
	  {
		// Als het aantal karakters is bereikt, dan door tabben
		if (objControl.value.length >= intMaxLength) {
			if (objNextControl.disabled == false)
			{
				try
				{
					// Zet de focus en selecteer de complete inhoud
					if (objNextControl.focus) 
					{
						objNextControl.focus();
					}
					if (objNextControl.select)
					{
						objNextControl.select();
					}
				}catch(e){}
			}
		}
	}
}
function TabFieldNextInput(objControl, intMaxLength, a_event) {
	// Negeer de tab, shift-tab, pijltjestoetsen: links, rechts, boven en naar beneden, Backspace, Delete, Home en End
	if ((a_event.keyCode != 9) && (a_event.keyCode != 16) && (a_event.keyCode != 37) && (a_event.keyCode != 39) && (a_event.keyCode != 38) && (a_event.keyCode != 40) && (a_event.keyCode != 8) && (a_event.keyCode != 46) && (a_event.keyCode != 36) && (a_event.keyCode != 35))
	  {
		// Als het aantal karakters is bereikt, dan door tabben
		if (objControl.value.length >= intMaxLength) {
			// Zoek de eersvolgende input
			var inputs = document.getElementsByTagName("INPUT");
			for(var i=0; i<inputs.length; i++) 
			{
				if (inputs[i] == objControl && inputs[i+1].style.display != "none") objNextControl = inputs[i+1];
			}
			
			try
			{
				if (objNextControl.focus) 
				{
					objNextControl.focus();
				}
				if (objNextControl.select)
				{
					objNextControl.select();
				}
			}catch(e){}
		}
	}
}
function CheckTextAreaMaxLength(objTextArea, intMaxLength) {
	var strValue = '';
	
	strValue = objTextArea.value;

	if (strValue.length > intMaxLength) {
		objTextArea.value = strValue.substr(0, intMaxLength);
	}
}

function CapitalizeText2(a_strText) 
{
	var strValue = a_strText.toLowerCase();
	var strNewValue = '';
	var intPos = 0;

	// Eerst wordt de tekst gesplits op '.'
	arrArray = strValue.split(".");

	// Begin elk woord met een hoofdletter
	for (intCounter=0;intCounter<arrArray.length; intCounter++)
	{
		if (intCounter != 0) 
		{
			strNewValue += ".";
		}

		// Controleer of een zin begint met een spatie. 
		// Als een zin begint met een spatie, neem de volgende karakter.
		intPos = 1;
		if (arrArray[intCounter].substring(0,1) == " ")
		{
			intPos = 2;
		}

		strNewValue += arrArray[intCounter].substring(0,intPos).toUpperCase() + arrArray[intCounter].substring(intPos,arrArray[intCounter].length);
	}

	return strNewValue;
}


function isGeldigRekeningNummer(waarde) 
{
	// if waarde=0 dan geen geldig reknr
	if (parseFloat(waarde)>0)
	{		
		// if groter dan 9999999 dan bankrekeningnummer
		if (waarde.length > 8 && waarde.length <=10) {
			var teller, cijfer;
			teller = 0;
			for (var i = 1; i <= waarde.length; i++)  {
		      	cijfer = waarde.charAt(i-1);
				teller = parseInt(parseInt(teller) + parseInt(cijfer*(waarde.length+1-i)));
			}
			//alert(teller/11);
			if ((teller/11) == parseInt(teller/11))
				return true;
			else
				return false;
		}
		else if (waarde.length > 0  && waarde.length <= 8)
			return true;
	}
	return false;
}

function fTerug()
{
	document.forms[0].strTerug.value = "Ja";
	document.forms[0].submit();
}

function getCharCode(e)
{
	if ( typeof( e.which ) == 'number' ) 
	{
	    //NS 4, NS 6+, Mozilla 0.9+, Opera
	    e = e.which;
	} 
	else if( typeof( e.keyCode ) == 'number'  ) 
	{
	    //IE, NS 6+, Mozilla 0.9+
	    e = e.keyCode;
	} 
	else if( typeof( e.charCode ) == 'number'  ) 
	{
	    //also NS 6+, Mozilla 0.9+
	    e = e.charCode;
	}
	return e;
}

function IsAlpha( e )
{
	var charCode= getCharCode(e)
	//65 -  90 is A-Z
	//97 - 122 is a-z
	if (((charCode >= 65) && (charCode <= 90)) ||
		((charCode >= 97) && (charCode <= 122)) || IsSpecialChar(e))
	{
		return true;
	}
	return false;
}

function IsNumeric( e )
{
	var charCode= getCharCode(e)
	//0-9
	if (((charCode >= 48) && (charCode <= 57)) ||
		IsSpecialChar(e)) 
	{
		return true;
	}
	return false;
}
function IsFloat( e )
{
	var charCode= getCharCode(e)
	//0-9
	if (((charCode >= 48) && (charCode <= 57)) || (charCode == 46) ||
		IsSpecialChar(e)) 
	{
		return true;
	}
	return false;
}
function IsNumericNegative( e )
{
	var charCode= getCharCode(e)
	//0-9
	if (((charCode >= 48) && (charCode <= 57)) ||
		IsSpecialChar(e) || (charCode == 45))
	{
		return true;
	}
	return false;
}

function IsAlphaExtraTekens( e )
{
	var charCode = getCharCode(e)
	//alert(charCode);
	// 32=spatie ; 46=. ; 45=- ; 39 = ' ; 64=@ ; 95=_ ; 8=backspace ; 0=del,tab
	if ( (charCode == 32) || (charCode == 46) || 
		 (charCode == 45) || (charCode == 39) ||
		 (charCode == 64) || (charCode == 95) || IsSpecialChar(e))
	{
		return true;
	}
	return false;
}

function IsAlphaExtraTekensEmail( e )
{
	var charCode = getCharCode(e)
	//alert(charCode);
	//  46=. ; 45=- ; 64=@ ; 95=_ ; 8=backspace ; 0=del,tab
	if ( (charCode == 46) || (charCode == 45) ||  
	     (charCode == 64) || (charCode == 95) || IsSpecialChar(e))
	{
		return true;
	}
	return false;
}

function IsSpecialChar(e)
{
	var charCode = getCharCode(e)
	// 8=backspace ; 0=del,tab
	if ( (charCode ==  8) || (charCode ==  0) || 
		 (charCode ==  9) || (charCode ==  127))
	{
		return true;
	}
	return false;
}

function IsAlphaNumeric( e )
{
	var charCode = getCharCode(e);
	if (IsAlpha(charCode) ||
		IsNumeric(charCode) ||
		IsSpecialChar(charCode))
	{
		return true;
	}
	return false;
}

function IsAlphaExtra( e )
{
	var charCode = getCharCode(e);
	if ( IsAlpha(charCode) || IsAlphaExtraTekens( charCode) || IsSpecialChar(charCode))
	{
		return true;
	}
	return false;
}

function IsAlphaExtraEmail( e )
{
	var charCode = getCharCode(e);
	if ( IsAlpha(charCode) || IsAlphaExtraTekensEmail( charCode) || IsSpecialChar(charCode))
	{
		return true;
	}
	return false;
}

function IsAlphaNumericExtra(e)
{
	var charCode = getCharCode(e);
	if (IsAlphaExtra(charCode) ||
		IsNumeric(charCode) ||
		IsSpecialChar(charCode))
	{
		return true;
	}
	return false;
}

function IsAlphaNumericExtraEmail(e)
{
	var charCode = getCharCode(e);
	if (IsAlphaExtraEmail(charCode) ||
		IsNumeric(charCode) ||
		IsSpecialChar(charCode))
	{
		return true;
	}
	return false;
}
function  validateAlfaNumeric( strValue ) {
	var objRegExp = /^[a-zA-Z@_ '.-]{0,}$/;
	return objRegExp.test(strValue);
}

function  validateAlfaNumericExtra( strValue ) {
	var objRegExp = /^[a-zA-Z0-9@_ '.-]{0,}$/;
	return objRegExp.test(strValue);
}

function  validateAlfaNumericExtraEmail( strValue ) {
	var objRegExp = /^[a-zA-Z0-9@_.-]{0,}$/;
	return objRegExp.test(strValue);
}

function  validateNumeric( strValue ) {
  var objRegExp  =  /(^-?\d\d*\.\d*$)|(^-?\d\d*$)|(^-?\.\d\d*$)/;
  return objRegExp.test(strValue);
}

function validateEmailAdres(strValue) {
  var objRegExp  =  /^(.+)@(.+)$/;
  return objRegExp.test(strValue);
}

function validatePostcodeAlfa(strValue) {
	var objRegExp = /[A-Z]{2}/;
	return objRegExp.test(strValue);
}

function validatePostcodeNumeric(strValue) {
	var objRegExp = /[0-9]{4}/;
	return objRegExp.test(strValue);
}

function fShowErrorDisplay()
{
	if (document.getElementById("strErrorDisplay").value != "")
	{
		document.getElementById("tr_ErrorDisplay").style.display = "";
	}
	
}

function fIsStreepInKenteken(strValue) 
{
	var objRegExp = /-/;
	return objRegExp.test(strValue);
}

function ConvertDecimal(strNumber, strFrom, strTo) {
	var intPos = 0;
	var strTemp = new String(strNumber);

	intPos = strTemp.indexOf(strFrom);

	if (intPos > 0) {
		strNumber = strTemp.replace(strFrom, strTo);
	}

	return strNumber;
}

function fPreloadJavaScripts()
{
	for (i=0;i<fPreloadJavaScripts.arguments.length;i++)
	{
		var objScript = document.createElement('script');
		objScript.src = "js/" + fPreloadJavaScripts.arguments[i];
		objScript.type = "text/javascript";
		
		/* var objHead = document.getElementsByTagName('head')[0];
		objHead.appendChild(objScript);
		alert(fPreloadJavaScripts.arguments.length); */
	}
}

function fCancelBubble(e)
{
	if (!e) 
	{
    		var e = window.event;
	}
	e.cancelBubble = true;
	if (e.stopPropagation) 
	{
    		e.stopPropagation();
	}
}


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 );
	}
}

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 );
	}
}

function fGetAttributeNodeValue(a_objControl, a_strNodeName) 
{
	var objAttributeNode = a_objControl.getAttributeNode(a_strNodeName); 
	return objAttributeNode.value;
}

function fSetAttributeNodeValue(a_objControl, a_strNodeName, a_strValue) 
{
	var objAttributeNode = a_objControl.getAttributeNode(a_strNodeName); 
	objAttributeNode.value = a_strValue;
}

function fDimScreen()
{
	document.getElementById("divDimmer").style.display = "";
}

function fSetHourGlass() {
    if (document.all)
        for (var i=0;i < document.all.length; i++)
             document.all(i).style.cursor = 'wait';
}

function fUndoHourGlass() {
    if (document.all)
        for (var i=0;i < document.all.length; i++)
             document.all(i).style.cursor = '';
}

function fReplaceSpatie()
{
	strKenteken = document.getElementById("txtKenteken").value;
	strKenteken = strKenteken.replace(' ', '-');
	document.getElementById("txtKenteken").value = strKenteken;
}

function CheckAge(intDay, intMonth, intYear)
{
	intDay = parseFloat(intDay);
	intMonth = parseFloat(intMonth);
	intYear = parseFloat(intYear);

	//datum van vandaag
	var dteTemp = new Date();

	//datum van vandaag zonder de tijd
	var dteToday = new Date(eval(dteTemp.getFullYear()), eval(dteTemp.getMonth()), eval(dteTemp.getDate()));
	
	// Tel bij het aantal jaren er 1 bij 
	var dteBirthdayPlus = new Date(eval(intYear), intMonth - 1, intDay); 
	
	// Bereken het verschil
	var intDiff = 0;

	intDiff = eval(dteToday - dteBirthdayPlus);

	// Controleer de datums
	if (intDiff < 0)
	{
		return false;
	}
	
	return true;
}

function disableTD(obj, disable){
	if (window.navigator.appName.toLowerCase().indexOf("microsoft") > -1) { // IE;
		obj.disabled = disable;
		obj.className = "premieLink";
	}
	else{
		if ((obj.style.color!="gray") && (disable)) {
			if(obj.attributes['onclick']!=null)
			{
				obj.setAttribute('onclick_bak', obj.attributes['onclick'].nodeValue);
				obj.removeAttribute('onclick');
			}
			obj.style.color="gray";
		}

		if ((obj.style.color=="gray") && (!disable)) {
			if(obj.attributes['onclick_bak']!=null)
			{
				obj.setAttribute('onclick', obj.attributes['onclick_bak'].nodeValue);
			}
			obj.style.color="white";
		}
	}
}

function fSuffixLettersWithDots() 
{
	var strValue = document.getElementById('txtVoorletters').value;
	var charIndex;
	var newValue='';

	if (strValue != '')
	{
	    strValue = strValue.replace('.', '');
	    for(i=0;i<strValue.length;i++)
	    {
	        charIndex=strValue.substr(i,1);

	        newValue=newValue+charIndex+'.';  	
        }
    }
     document.getElementById('txtVoorletters').value='';
        document.getElementById('txtVoorletters').value = newValue;

}
