//prevent interactiemodel from being framed
if (top!=self) {
     top.location=self.location;
}

function SetTimeStamp()
{
	var now=new Date();
	fo.timeStamp.value=now.getTime();
}
function CallSrvlt(srvlt)
{
	if (fo.timeStamp) SetTimeStamp();
	fo.action=srvlt;
	fo.submit();
}
function ShwErr(ErrTxt,ErrObj)
{
	alert(ErrTxt);
	ErrObj.focus();
	if (ErrObj.select) {ErrObj.select();}
	return false;
}
function IsTxt(txt)
{
	result=((txt!="")&&!HasSpaces(txt));
	j=0;
	while (!result&&(j<txt.length))
		result=(txt.charAt(j++)!=" ");
	return result;
}
function HasSpaces(txt)
{
	return (txt.indexOf(" ")>=0);
}
function JumpNextLine(src,dest)
{
   	if ((src.value.length>=30)&&(dest.value.length==0)) dest.focus();
}
function BlurIfNotDateSelected(obj2blur)
{
	if (fo.rbtn_execution[0].checked)
		obj2blur.blur();
}
function RemoveTomorrowsDate()
{
	fo.executionDay.value="dd";
	fo.executionMonth.value="mm";
	fo.executionYear.value="jjjj";
}
function SetTomorrowsDate()
{
	fo.executionDay.value=tomorrowday;
	fo.executionMonth.value=tomorrowmonth;
	fo.executionYear.value=tomorrowyear;
}
function FixDirect()
{
	fo.directDay.value="";
	fo.directMonth.value="";
	fo.directYear.value="";
	if (fo.rbtn_execution[0].checked)
	{
		fo.directDay.value=todayday;
		fo.directMonth.value=todaymonth;
		fo.directYear.value=todayyear;
	}
}
function CheckLeapYear(yr)
{
	if ( (yr%400==0)||((yr%4==0)&&(yr%100!=0)) )
		return 29;
	else
		return 28;
}
function NumOfDaysInMonth(mnth,yr)
{
	mlengths=[31,28,31,30,31,30,31,31,30,31,30,31];
	if (mnth==2)
		return CheckLeapYear(yr);
	else
		return mlengths[mnth-1];
}
function NoSpaces(obj,vartxt)
{
	if (HasSpaces(obj.value))
	{
		ShwErr("Bij "+vartxt+" mogen geen spaties ingevuld worden.",obj);
		return false;
	}
	return true;
}
function ReqFieldEmpty(obj,vartxt,useOwnMessage)
{
	if (!IsTxt(obj.value))
	{
		if (useOwnMessage==true) 
		{
			ShwErr(vartxt,obj);
		}
		else
		{
			ShwErr("Het invoeren van "+vartxt+" is verplicht.",obj);
		}
		return true;
	}
	return false;
}

function trimNumInput(obj,vartxt,useOwnMessage){
	var val = "" + obj.value.toString() ; // alternative using regular expressions;
	val = val.replace(/^[\s]+/g,''); // leading whitespace -> null
	val = val.replace(/[\s]+$/g,''); // trailing whitespace -> null
	obj.value = val;
	
	return IsDigitsOnly(obj,vartxt,useOwnMessage);
}


function IsDigitsOnly(obj,vartxt,useOwnMessage)
{
	if (isNaN(obj.value)||(obj.value<0)||(obj.value.indexOf(".")>=0))
	{	
		if (useOwnMessage==true) 
		{
			ShwErr(vartxt,obj);
			return false;
		}
		else
		{
			ShwErr("Bij "+vartxt+" mogen alleen maar cijfers ingevuld worden.",obj);
			return false;
		}
	}
	return true;
}
function IsCharsOnly(obj,vartxt)
{
	rexexp=eval("/[a-z]{"+obj.value.length+"}/gi");
	if (obj.value.match(rexexp)==null)
	{
		ShwErr("Bij "+vartxt+" mogen alleen maar letters ingevuld worden.",obj);
		return false;
	}
	return true;
}
function TooFewDigits(obj,min,vartxt)
{
	if (obj.value.length<min)
	{
		ShwErr("U heeft te weinig cijfers bij "+vartxt+" ingevuld.",obj);
		return true;
	}
	return false;
}
function TooFewChars(obj,min,vartxt)
{
	if (obj.value.length<min)
	{
		ShwErr("U heeft te weinig letters bij "+vartxt+" ingevuld.",obj);
		return true;
	}
	return false;
}
function isValidAmount(obj_euros,obj_centen,soortbedr)
{
	var euros=obj_euros.value;
	for (i=0;i<euros.length;i++)
	{
		if (euros.charAt(i)!=0)
		{
			euros=euros.substring(i);
			i=euros.length;
		}
	}
	var eurosSplit=euros.split(".");
	var centen=obj_centen.value;
	var centenSplit=centen.split(".");
	if ( ((euros=="")||(euros==0)) && ((centen=="")||(centen==0)) )
	{
		ShwErr("Het "+soortbedr+" bedrag moet tenminste EUR 0,01 zijn.",obj_euros);
		return false;
	}
	if ( ((euros!="")&&isNaN(euros)) || (euros<0) || (eurosSplit.length!=1) )
	{
		ShwErr("Bedrag onjuist ingevuld. Alleen cijfers zijn toegestaan.",obj_euros);
		return false;
	}
	else if ( (!IsTxt(euros)||(euros=="0"))&&(centen!=0) )
	{
		euros="0";
		obj_euros.value=euros;
	}
	else
	{
		euros=parseInt(euros,10);
		obj_euros.value=euros;
	}
	if ( ((centen!="")&&isNaN(centen)) || ((centen.length==2)&&(centen<0)) || (centenSplit.length!=1) || (HasSpaces(centen)))
	{
		ShwErr("Bedrag onjuist ingevuld. Alleen cijfers zijn toegestaan.",obj_centen);
		return false;
	}
	else if ((centen.length==1) && (centen!=0))
	{
		centen="0"+centen;
		obj_centen.value=centen;
	}
	else if ( ((centen=="") || (centen=="0")) && (euros!=0) )
	{
		centen="00";
		obj_centen.value=centen;
	}
	return true;
}
function isValidAccount(AccNr_obj,tegenpart)
{
	var WrongAccNrMsg="Een rekeningnummer kan alleen uit cijfers bestaan.\nPostbank rekeningnummers kunnen beginnen met een 'P' voorafgaand aan het rekeningnummer.";
	var AccNr=AccNr_obj.value.replace(/\./g,"");
	if (!IsTxt(AccNr))
	{
		ShwErr("Het invoeren van het rekeningnummer van de "+tegenpart+" is verplicht.",AccNr_obj);
		return false;
	}
	else if (isNaN(AccNr))
	{
		if ((AccNr.charAt(0)=="p") || (AccNr.charAt(0)=="P"))
		{
			if (isNaN(AccNr.substr(1))|| !IsTxt(AccNr.substr(1)))
			{
				ShwErr(WrongAccNrMsg,AccNr_obj);
				return false;
			}
			else if ((AccNr.substr(1)<0) || (AccNr.length==1))
			{
				ShwErr(WrongAccNrMsg,AccNr_obj);
				return false;
			}
		}
		else
		{
			ShwErr(WrongAccNrMsg,AccNr_obj);
			return false;
		}
	}
	else if (((AccNr.length==8) || (AccNr.length>10)) || (AccNr<0) )
	{
		ShwErr("Een rekeningnummer kan alleen uit 9 of 10 cijfers bestaan.\nPostbank rekeningnummers kunnen beginnen met een 'P' voorafgaand aan het rekeningnummer.",AccNr_obj);
		return false;
	}
	return true;
}
function isValidTransDate(obj_year,obj_month,obj_day,soortdat,optional,notpasseddate)
{
	
	if (optional) {
		if (obj_day.value=="" && obj_month.value=="" && obj_year.value=="") return true;		
	}
	
	if (!IsTxt(obj_day.value)||!IsTxt(obj_month.value)||!IsTxt(obj_year.value))
	{
		if (!optional)
		{
			ShwErr("Het invoeren van de "+soortdat+" is verplicht.",!IsTxt(obj_day.value)?obj_day:!IsTxt(obj_month.value)?obj_month:obj_year);
			return optional;
		}
	}
	if ( isNaN(obj_day.value)||HasSpaces(obj_day.value) || isNaN(obj_month.value)||HasSpaces(obj_month.value) || isNaN(obj_year.value)||HasSpaces(obj_year.value) )
	{
		ShwErr("De "+soortdat+" mag alleen uit cijfers bestaan.",(isNaN(obj_day.value)||HasSpaces(obj_day.value))?obj_day:(isNaN(obj_month.value)||HasSpaces(obj_month.value))?obj_month:obj_year);
		return false;
	}
	var maxdays=NumOfDaysInMonth(obj_month.value,obj_year.value);
	var day=parseInt(obj_day.value,10);
	var month=parseInt(obj_month.value,10);
	if ((day<1)||(day>maxdays)||(month<1)||(month>12))
	{
		ShwErr("De "+soortdat+" is niet correct.",((day<1)||(day>maxdays))?obj_day:obj_month);
		return false;
	}
	if (TooFewDigits(obj_year,4,"jaar")) return false;
	if (notpasseddate)
	{
		var today=new Date(todayyear,todaymonth-1,todayday);
		var exdate=new Date(obj_year.value,obj_month.value-1,obj_day.value);
		if (exdate.getTime()<today.getTime())
		{
			ShwErr("De "+soortdat+" mag niet in het verleden liggen.",obj_day);
			return false;
		}
	}
	return true;
}
function SetCursorAtEnd(fld)
{
	if (document.all)
	{
		var tmp=fld.value;
		fld.value="";
		fld.select();
		fld.value=tmp;
		fld.focus();
	}
}

function IsSavingsAccount(GV)
{
	if((GV=="081")||(GV=="082")||(GV=="088")||(GV=="075")||(GV=="076")||(GV=="161")
	||(GV=="163")||(GV=="057")||(GV=="086")||(GV=="162")||(GV=="178")||(GV=="884")||(GV=="869")
	) return true;
	else return false;	
}

function IsLocalAccountNumber()
{
	var AccNr=fo.accountStrCounterPart.value.replace(/\./g,"");
	localAccountNumber= false;
	for (i=0;i<fo.accountNumber.options.length;i++)
	{
		if (AccNr==fo.accountNumber.options[i].value)
		localAccountNumber=true;
	}
	if (!localAccountNumber) return false;
	else return true;
}

function ValidPaymentMarking(paymentMarking)
{
	if (paymentMarking.value.length<=6||paymentMarking.value.length==8||paymentMarking.value.length==15) return false;
	if (!Elevenproof(paymentMarking)) return false;
	return true;
}

function Elevenproof(paymentMarking)
{
	var paymentMarkingShort = new String;
	if (paymentMarking.value.length==7) return true;
	else 
	{
		controlNumber = paymentMarking.value.charAt(0);
		paymentMarkingShort.value = paymentMarking.value.substring(1,paymentMarking.value.length);
		if (paymentMarkingShort.value.length!=15) 
		{
			lengthNumber = paymentMarkingShort.value.charAt(0);
			if (lengthNumber != (paymentMarkingShort.value.length-1)&&lengthNumber != (paymentMarkingShort.value.length-11)) return false;
		}
		var numberArray = new Array(10,5,8,4,2,1,6,3,7,9,10,5,8,4,2);
		var checkSum =0;
		
		for (i=0;i<paymentMarkingShort.value.length;i++)
		{
			checkSum = checkSum + (paymentMarkingShort.value.charAt(i)*numberArray[i+15-paymentMarkingShort.value.length]);
		}
		checkSum = checkSum%11;
		checkSum = 11 - checkSum;
		if (checkSum==11) checkSum = 0;
		if (checkSum==10) checkSum = 1;
		if (checkSum != controlNumber) return false;
	}
	return true;
}
function parseQueryString()
{
	var query = window.location.search.substring(1);
  	return parseQuery(query);
}
function parseUnescapedQueryString()
{
	var query = unescape(window.location.search.substring(1));
  	return parseQuery(query);
}
function parseQuery(query)
{
	var parms = query.split('&');
	var retParm = new Array();
	for (var i=0; i<parms.length; i++)
	{ 
		var pos = parms[i].indexOf('=');
		if (pos > 0)
		{
	      		var keyName = parms[i].substring(0,pos);
	      		var val = parms[i].substring(pos+1);
		      	retParm[keyName] = val;
		  	//alert(keyName + " = " + retParm[keyName]);
	      	}
  	}
  	return retParm;
}
function getObj(strID)
{
	var objReturnValue = null;

    	if (document.layers) //NN4+
    	{
       		objReturnValue = document.layers[strID];
    	}
    	else
    	{
    		if (document.getElementById) //gecko(NN6) + IE 5+
    		{
    	    		objReturnValue = document.getElementById(strID);
    		}
    		else
    		{
    			if (document.all) // IE 4
    			{
        			objReturnValue = document.all[strID];
        		}
        	}
    	}
    	return objReturnValue;
}
function getOuterFieldNames(arrParms,objForm)
{
	var retParm = new Array();
	var i = 0;
	for (strElement in qsParm)
	{
		if (!isInternalFieldName(strElement,objForm.elements))
		{
		      	retParm[i++] = strElement;
	      	}
  	}
  	return retParm;
}
function isInternalFieldName(strFieldName,el)
{
	blnRetVal = false;
	for (var i=0;i<el.length;i++)
	{
		if ((el[i].type!='hidden') && (el[i].name==strFieldName))
		{
			//alert(el[i].type);
			//alert(strFieldName);
			blnRetVal = true;
			break;
		}
	}
	return blnRetVal;
}
function addHiddenFieldName(strFieldName,strFieldValue,objForm)
{
	var objField = document.createElement('input'); 
	objField.type  = 'hidden'; 
	objField.name  = strFieldName; 
	objField.value = strFieldValue; 
	objForm.appendChild(objField); 

}
function addAndFillHiddenFieldNames(qsParm,objForm)
{
	var arrHiddenFieldNames = getOuterFieldNames(qsParm,objForm);
	for (str in arrHiddenFieldNames)
	{
		addHiddenFieldName(arrHiddenFieldNames[str],qsParm[arrHiddenFieldNames[str]],document.forms[0])
	}
}
function getInputObjectIndexOf(strSearchArg,obj,blnAlert)
{
	if (blnAlert == undefined) blnAlert = false;
	var retVal = 0;
	if (blnAlert) alert("zoekt naar " + strSearchArg);
	for (var a=0; a<obj.length; a++)
	{
		if (blnAlert) alert("vergelijkt met " + obj[a].value);
		if (obj[a].value==strSearchArg)
		{
			if (blnAlert) alert("gevonden op positie " + a);
			retVal = a;
		}
 	}
 	return retVal;
}
function giveAge(strBirthDay)
{
	var datTime = new Date();
	
	var intDayNow = datTime.getDate();
	if (intDayNow<10)
	{
		intDayNow ="0" + intDayNow;
	}
	
	var intMonthNow = datTime.getMonth()+1;
	if (intMonthNow<10)
	{
		intMonthNow = "0" + intMonthNow;
	}
	
	var intYearNow = datTime.getYear();
	if (intYearNow < 2000)
	{
		intYearNow = intYearNow + 1900;
	}
	
	var intDay   = parseFloat(strBirthDay.substring(0,2));
	var intMonth = parseFloat(strBirthDay.substring(3,5));
	var intYear  = parseFloat(strBirthDay.substring(6,10));

	var intAge = parseFloat(intYearNow) - intYear;
	if ( intMonth > intYearNow || (intMonth == intMonthNow && intDay > intDayNow) )
		intAge--;
	return intAge;
}

function hideComponent(strComponentID) {
	var obj = getObj(strComponentID);
	if (obj) {
		obj.style.display = "none";
	}
}

function isHiddenComponent(strComponentID) {
	var obj = getObj(strComponentID);
	var blnResult = false;
	if (obj) {
		if (obj.style.display=="none") {
			blnResult = true;
		}
	}
	return blnResult;
}

function updateComponent(strComponentID,strHTML) {
	var obj = getObj(strComponentID);
	if (obj) {
		obj.innerHTML = strHTML;
	}
}

/*
     remove illegal characters     
 */
var splChar = [ '<' , '>', ':' , '^','{','}','(',')'];
var charFound = false;
var tempQueryString = unescape(location.search.replace(/\+/g,  " "));
for ( var i=0 ;  i<splChar.length; i++)  {
	var regex = new RegExp("\\"+splChar[i],"gi");		
	if (tempQueryString.search(regex)!=-1)
	{
		charFound = true;
		tempQueryString = tempQueryString.replace(regex,"");
	}
}

if(charFound)	{
	location.search = tempQueryString;
}
