function getEventCode(event) {
	if (event.which) 
		return event.which; // netscape
	return event.keyCode;
}
/* general javascript */
function isSpace(val)
{
if( (val == ' ') || (val == '\t') || (val == '\n') || (val == '\r') )
return true;
else
return false;
}

function LTrim(val)
{
var c, i, j = -1;
for(var i=0;i < val.length;++i)
{
c = val.charAt(i);
if(!isSpace(c))
{
j = i;
break;
}
}
if(j != -1)
return val.substring(j, val.length);
else
return '';
}

function RTrim(val)
{
var c, i, j = -1;
for(var i=val.length-1;i>=0;--i)
{
c = val.charAt(i);
if(!isSpace(c))
{
j = i;
break;
}
}
if(j != -1)
return val.substring(0, j + 1);
else
return '';
}

function Trim(val)
{
return LTrim(RTrim(val));
}


/* greeting javascript */
var bwr = navigator.appName;
var ver = parseInt(navigator.appVersion, 10);
var doc, styl, NS4, NS6, IE4, IE5;
var NS4 = (bwr == "Netscape" && ver == 4) ? 1 : 0;
var NS6 = (bwr == "Netscape" && ((ver == 5) || (ver==6))) ? 1 : 0;
var IE   = (navigator.appVersion.indexOf("MSIE") != -1);
var IE4 = (navigator.appVersion.indexOf("MSIE 4") != -1) ? 1 : 0;
var IE5 = (navigator.appVersion.indexOf("MSIE 5") != -1) ? 1 : 0;
var IE5up = (navigator.appVersion.indexOf("MSIE 5.5") != -1) ? 1 : 0;
var isMac = (navigator.appVersion.indexOf("Mac") != -1) ? 1 : 0;

var prevDate, prevTime;

function getCurrentDate() {
	if (!document.layers && !document.all && !NS6) return;
	var digital = new Date();
	if (isMac && IE) { digital.setTime(digital.getTime() - digital.getTimezoneOffset()*1000*60);}
	return digital;
}

function insertDate() {
	document.write('<div id="datelayer"></div>');
	setTimeout("updateDate()",1000);
}

function updateDate() {
	var cdate = getCurrentDate();
	var hours = cdate.getHours();
	var minutes = cdate.getMinutes();
	var seconds = cdate.getSeconds();
	var day = cdate.getDate();
	var month = cdate.getMonth() + 1;
	var year = cdate.getYear();
	if (year < 1000) { year = 1900 + year; }
	if (day < 10) { day = "0" + day; }
	if (month < 10) { month = "0" + month; }
	var dispDate = "<nobr>"+day+"-"+month+"-"+year+"</nobr>";

	if (dispDate!=prevDate) {
		prevDate = dispDate;

		if (document.layers) {
		if (IE && !isMac) {
		document.layers.datelayer.document.write(dispDate);
		document.layers.datelayer.document.close();
		}
		else
		{
		document.layers.datelayer.document.write(dispDate);
		document.layers.datelayer.document.close();
		}
		}
		else
		if (document.all)
		{
		if (IE && !isMac) {
		datelayer.innerHTML = dispDate;
		}
		else
		{
		datelayer.innerHTML = dispDate;
		}
		}
		else if (NS6)
		{
		document.getElementById("datelayer").innerHTML = dispDate;
		}
	}
	setTimeout("updateDate()", 1000);
}

function insertTime() {
	document.write('<div id="timelayer"></div>');
	setTimeout("updateTime()",1000);
}

function updateTime() {
	var cdate = getCurrentDate();
	var hours = cdate.getHours();
	var minutes = cdate.getMinutes();
	var seconds = cdate.getSeconds();
	var day = cdate.getDate();
	var month = cdate.getMonth() + 1;
	var year = cdate.getYear();
	if (minutes <= 9) minutes = "0" + minutes;
	var dispTime = "<nobr>"+hours+":"+minutes+"</nobr>";

	if (dispTime != prevTime) {
		prevTime = dispTime;

		if (document.layers) {
		if (IE && !isMac) {
		document.layers.timelayer.document.write(dispTime);
		document.layers.timelayer.document.close();
		}
		else
		{
		document.layers.timelayer.document.write(dispTime);
		document.layers.timelayer.document.close();
		}
		}
		else
		if (document.all)
		{
		if (IE && !isMac) {
		timelayer.innerHTML = dispTime;
		}
		else
		{
		timelayer.innerHTML = dispTime;
		}
		}
		else if (NS6)
		{
		document.getElementById("timelayer").innerHTML = dispTime;
		}
	}
	setTimeout("updateTime()", 1000);
}

function greeting_text(greeting,visitorname,text,tooltip) {	
  if(tooltip==null)
  	 tooltip="";
  if (visitorname==null)
     visitorname="";
  else {
    visitorname=Trim(visitorname);
  }
	
	if(text != null)
    return greeting + " <span class='begroetingnaam'>" + visitorname + "</span>" + ", <span class='begroetingzin'>" + text + "</span>";
  else
    return greeting + " <span class='name'><strong>" + visitorname + "</strong></span>";
}

function greeting(langcode, websiteid, visitorname, visitorsexcode, pb) {
	var digital = getCurrentDate();
	var hours = digital.getHours();
	var minutes = digital.getMinutes();
	var seconds = digital.getSeconds();
	
	var dispMessage;
	if (minutes <= 9) minutes = "0" + minutes;
	if (hours < 12) {
		if (websiteid == 'CBC') dispMessage = greeting_text("Bonjour",visitorname,"vous &#234;tes connect&#233;(e) &#224; CBC Banque &amp; Assurance", "Cliquez ici pour modifier votre titre");
		else if (langcode == 'N') dispMessage = greeting_text("Goedemorgen",visitorname, "u bent aangemeld bij KBC Bank &amp; Verzekering", "Klik hier om uw aanspreking te wijzigen");
		else if (langcode == 'F') dispMessage = greeting_text("Bonjour",visitorname,"vous &#234;tes connect&#233;(e) &#224; KBC Banque &amp; Assurance", "Cliquez ici pour modifier votre titre");
		else if (langcode == 'E') dispMessage = greeting_text("Good morning",visitorname,"you are logged on to the KBC Website", "Click here to change your form of address");
		else if (langcode == 'D') dispMessage = greeting_text("Guten Morgen",visitorname,"Sie sind bei der KBC Bank &amp; Versicherung angemeldet", "Hier klicken, um Ihre Anrede zu &#228;ndern");
	}
	else if (hours < 17) {
		if (websiteid == 'CBC') dispMessage = greeting_text("Bonjour",visitorname,"vous &#234;tes connect&#233;(e) &#224; CBC Banque &amp; Assurance", "Cliquez ici pour modifier votre titre");
		else if (langcode == 'N') dispMessage = greeting_text("Goedemiddag",visitorname,"u bent aangemeld bij KBC Bank &amp; Verzekering", "Klik hier om uw aanspreking te wijzigen");
		else if (langcode == 'F') dispMessage = greeting_text("Bonjour",visitorname,"vous &#234;tes connect&#233;(e) &#224; KBC Banque &amp; Assurance", "Cliquez ici pour modifier votre titre");
		else if (langcode == 'E') dispMessage = greeting_text("Good afternoon",visitorname,"you are logged on to the KBC Website", "Click here to change your form of address");
		else if (langcode == 'D') dispMessage = greeting_text("Guten Tag",visitorname,"Sie sind bei der KBC Bank &amp; Versicherung angemeldet", "Hier klicken, um Ihre Anrede zu &#228;ndern");
	}
	else {
		if (websiteid == 'CBC') dispMessage = greeting_text("Bonsoir",visitorname,"vous &#234;tes connect&#233;(e) &#224; CBC Banque &amp; Assurance", "Cliquez ici pour modifier votre titre");
		else if (langcode == 'N') dispMessage = greeting_text("Goedenavond",visitorname,"u bent aangemeld bij KBC Bank &amp; Verzekering", "Klik hier om uw aanspreking te wijzigen");
		else if (langcode == 'F') dispMessage = greeting_text("Bonsoir",visitorname, "vous &#234;tes connect&#233;(e) &#224; KBC Banque &amp; Assurance", "Cliquez ici pour modifier votre titre");
		else if (langcode == 'E') dispMessage = greeting_text("Good evening",visitorname,"you are logged on to the KBC Website", "Click here to change your form of address");
		else if (langcode == 'D') dispMessage = greeting_text("Guten Abend",visitorname,"Sie sind bei der KBC Bank &amp; Versicherung angemeldet", "Hier klicken, um Ihre Anrede zu &#228;ndern");
	}
	
	if(visitorsexcode == 'M' && langcode == 'F') {
		//if(visitorname.indexOf('monsieur') == -1) dispMessage = dispMessage.replace(visitorname,'monsieur ' + visitorname);
		dispMessage = dispMessage.replace('connect&#233;(e)','connect&#233;');
	}
	
	if(visitorsexcode == 'V' && langcode == 'F') {
		//if(visitorname.indexOf('madame') == -1) dispMessage = dispMessage.replace(visitorname,'madame ' + visitorname);
		dispMessage = dispMessage.replace('connect&#233;(e)','connect&#233;e');
	}
	
	if(pb == 'PB') {
		dispMessage = dispMessage.replace('Banque &amp; Assurance','Private Banking');
		dispMessage = dispMessage.replace('Bank &amp; Versicherung','Private Banking');
		dispMessage = dispMessage.replace('Bank &amp; Verzekering','Private Banking');
		dispMessage = dispMessage.replace('to the KBC Website','to the KBC Private Banking Website');
	}
	
	if(pb == 'kbclo') {
	  if (hours < 12) {
		  if (websiteid == 'CBC') dispMessage = greeting_text("Bonjour",visitorname);
		  else if (langcode == 'N') dispMessage = greeting_text("Goedemorgen",visitorname);
		  else if (langcode == 'F') dispMessage = greeting_text("Bonjour",visitorname);
		  else if (langcode == 'E') dispMessage = greeting_text("Good morning",visitorname);
		  else if (langcode == 'D') dispMessage = greeting_text("Guten Morgen",visitorname);
	  }
	  else if (hours < 17) {
		  if (websiteid == 'CBC') dispMessage = greeting_text("Bonjour",visitorname);
		  else if (langcode == 'N') dispMessage = greeting_text("Goedemiddag",visitorname);
		  else if (langcode == 'F') dispMessage = greeting_text("Bonjour",visitorname);
		  else if (langcode == 'E') dispMessage = greeting_text("Good afternoon",visitorname);
		  else if (langcode == 'D') dispMessage = greeting_text("Guten Tag",visitorname);
	  }
	  else {
		  if (websiteid == 'CBC') dispMessage = greeting_text("Bonsoir",visitorname);
		  else if (langcode == 'N') dispMessage = greeting_text("Goedenavond",visitorname);
		  else if (langcode == 'F') dispMessage = greeting_text("Bonsoir",visitorname);
		  else if (langcode == 'E') dispMessage = greeting_text("Good evening",visitorname);
		  else if (langcode == 'D') dispMessage = greeting_text("Guten Abend",visitorname);
	  }
	}
	
	if(pb == 'jongeren') {
		if (langcode == 'N') dispMessage = "Dag " + visitorname + ",<br />Je bent aangemeld.";
		else if (langcode == 'F') dispMessage = "Bonjour " + visitorname + ",<br />Vous &#234;tes connect&#233;(e).";
		else if (langcode == 'E') dispMessage = "";
		else if (langcode == 'D') dispMessage = "";
	}
	
	document.write(dispMessage)
}


/* onloadfunctionality js */
var onLoadFunctionArray=new Array();
function addOnLoadFunction(fct) {
  if(navigator.appName == "Microsoft Internet Explorer")
        onLoadFunctionArray=onLoadFunctionArray.concat(fct);
  else
        onLoadFunctionArray[onLoadFunctionArray.length]=fct;
}

/* function doOnLoad() moved to xsl */


function NgGoTo_framelink_form(path, langId, websiteId, secure, optVars, formName, formMethod, popupName, validate_before_submit) {
	var params = getNavigationUrlVars(path,langId,websiteId,null);
	params+= getNavigationSessionVars();

	var formObj = document[formName];

	var oldMethod=formObj.method;
	var oldAction = formObj.action;

	formObj.action = NgBaseUrl(secure) + params; 		


	if ( (formMethod!=null) && ((formMethod.toLowerCase()=='get') || (formMethod.toLowerCase()=='post')) )
		formObj.method=formMethod;

	 if ((popupName!=null) && (popupName.length>0)) {
		 formObj.action = "javascript:window.open(\""+ formObj.action + "\" , \"" + popupName + "\"); this.action=window.url;"}
	
	if (!validate_before_submit || formObj.onsubmit()) {
		formObj.submit();
	}
	formObj.method=oldMethod;
	formObj.action=oldAction;
}

function NgGoTo_sitelink_form(href,formName,popupName,validate_before_submit) {
	var formObj = document[formName];
	
	var oldAction = formObj.action;
	
	formObj.action = href;

	if ((popupName!=null) && (popupName.length>0))
		formObj.target=popupName;

	if (!validate_before_submit || formObj.onsubmit()) 
		formObj.submit();
		
	formObj.action = oldAction;
}


/* macromedia js */
function MM_reloadPage(init) {  //reloads the window if Nav4 resized
	if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
		document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
	else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);

function MM_swapImgRestore() { //v3.0
	var i,x,a=document.MM_sr; for(i=0;a && i<a.length && (x=a[i]) && x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
	var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
	var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
	if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
function MM_findObj(n, d) { //v4.01
	var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0 && parent.frames.length) {
	d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
	if(!(x=d[n]) && d.all) x=d.all[n]; for (i=0;!x && i<d.forms.length;i++) x=d.forms[i][n];
	for(i=0;!x && d.layers && i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
	if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_swapImage() { //v3.0
	var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
	if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
  				
  				
/*****************
  Form validation
******************/
// no double validations
function ng_registerforvalidation(validationFunction,validationArray) {
	var found = false;
	var i = 0;
	while ((!(found)) && (i<validationArray.length)) {
		if (validationArray[i]==validationFunction)
			found = true;
		i++;
	}
	if (!(found)) {
		validationArray[validationArray.length] = validationFunction;
	}
}

var validation_error_messages = new Array();

// no double duplicate error messages
function add_validation_error_message(msg) {
	var found = false;
	var i = 0;
	while ((!(found)) && (i<validation_error_messages.length)) {
		if (validation_error_messages[i]==msg)
			found = true;
		i++;
	}
	if (!(found)) {
		validation_error_messages[validation_error_messages.length] = msg;
	}
}

function ng_validate_form(validationArray) {
	isValid = true;
	
	for(var i=0; i<validationArray.length; i++) {
		isValid&=validationArray[i]();
	}
	
	if (validation_error_messages.length>0) {
		errmsg = get_validation_error_title(validation_error_messages.length);
		for (var i=0; i<validation_error_messages.length; i++)
			errmsg+='\n'+validation_error_messages[i];
		alert(errmsg);
	}

	validation_error_messages = new Array(); // clear error messages
	
	return (isValid);
} 

/*
  variables & methods used by auto generated validation functions
  */
var okcode = 0;
var errcode_invalid = 1;
var errcode_mandatory = 2;
var errcode_maxlen = 3;
var errcode_maxval = 4;
var errcode_minlen = 5;
var errcode_minval = 6;
var errcode_minvalcheckyear = 7;
var errcode_maxvalcheckyear = 8;

<!-- validation of date coming from Cxv1111.js in KBC Online -->
function is_validformat_date(aDate) {
  var wvDate;
  if (typeof(aDate)=="object") {
      wvDate=aDate.value;
  }
  else 
      wvDate=aDate;

  var A = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
  var wvTlr, tstDg, tstMd, tstJr;
  var wvSeparator;
  var wvKarak = /[-\s\.\/]/g;
  
  if (wvDate=='') return '';
  
  // minimum 2 scheidingstekens  
  wvSeparator = wvDate.match(wvKarak);
  if ((wvSeparator==null && wvDate.length!=8) || (wvSeparator!=null && wvSeparator.length!=2)) 
  		return false;

  wvDate = deformat_date(wvDate);

  if (isNaN(wvDate)) {
  	  return false;
  }
	
  if (wvDate.length == 8) {
      tstDg = parseInt(wvDate.substring(0,2),10);
      tstMd = parseInt(wvDate.substring(2,4),10);
      tstJr = parseInt(wvDate.substring(4,8),10);
  }
  else {
      return false;
  }

  if (tstMd < 1 || tstMd > 12)
      return false;
  if (tstJr % 400 == 0)
      A[1] ++;
  else
    if (tstJr % 100 != 0 && tstJr % 4 == 0)
        A[1] ++;
	if (tstDg < 1 || tstDg > A[tstMd - 1])
	    return false;

  return true;
}

<!-- validation of date coming from Cxv1110.js in KBC Online -->
function format_date(aDate) {
  var isVeldIk = false;
  var wvDate;
  var wvKarak = /[-\s\.\/]/g;
  var wvOrigDate;
  
  if (typeof(aDate)=='object') {
      isVeldIk=true;
      wvDate=aDate.value;
  }
  else wvDate=aDate;
  
  if (wvDate=='') return '';	
  wvOrigDate = wvDate;

  if (wvDate.match(wvKarak)!=null)						
    wvDate = deformat_date(wvDate);
  	  
  if (wvDate.length == 8 ) 
    wvDate = wvDate.substring(0,2)+'-'+wvDate.substring(2,4)+'-'+wvDate.substring(4,8);
  else
    wvDate = wvOrigDate;  	
  
  if (isVeldIk)
      aDate.value = wvDate;
  else
      return wvDate
}

<!-- deformatting of date coming from Cxv1112.js in KBC Online -->
function deformat_date(aDate) {
  var isVeldIk = false;
  var wvDate;
  var wvKarak = /[-\s\.\/]/g;
  var wvDay;
  var wvMonth;
  var wvYear;
  
  if (typeof(aDate) == 'object') {
    isVeldIk = true;
    wvDate = aDate.value;
  }
  else
    wvDate = aDate;

  if (wvDate == '') return '';
  // minimum 2 scheidingstekens & nullen toevoegen.
  wvSeparator = wvDate.match(wvKarak);
  if (wvSeparator!=null && wvSeparator.length==2) {
  	if (wvDate.split(wvKarak).length == 3) {  			
  		wvDay = wvDate.split(wvKarak)[0];
  		wvMonth = wvDate.split(wvKarak)[1];
  		wvYear = wvDate.split(wvKarak)[2];
  		if (wvDay.length<=2 && wvMonth.length<=2 && wvYear.length==4) {	
  			if (wvDay.length==1)
  				wvDay = '0' + wvDay;
  			if (wvMonth.length==1)
  				wvMonth = '0' + wvMonth;		
			wvDate = wvDay+wvMonth+wvYear;
  		}
  	}
  }
  wvDate = wvDate.replace(wvKarak, '');
  if (isVeldIk)
    aDate.value = wvDate;
  else
    return wvDate;
}

<!-- validation of ibanbban account number -->
function is_validformat_accountibanbban(aRek) {
	  var firstChar, secondChar;
	  var iban = true;

    firstChar = aRek.substring(0,1);
    if((firstChar < "a" || firstChar > "z") && (firstChar < "A" || firstChar > "Z")) {
  	  iban = false;
    }
    
  	secondChar = aRek.substring(1,2);
  	if((secondChar < "a" || secondChar > "z") && (secondChar < "A" || secondChar > "Z")) {
  		iban = false;
  	}

  	if (iban) {
  		if (is_validformat_accountiban(aRek)) {
  			return true;
  		}
  	  else {
  		  return false;
  		}
  	}
  	else {
  	  if (is_validformat_accountnb(aRek)) {
  			return true;
  		}
  	  else {
  		  return false;
  		}
  	}
}

<!-- validation of bbaniban account number -->
function is_validformat_accountbbaniban(aRek) {
	  var firstChar, secondChar;
	  var iban = true;

    firstChar = aRek.substring(0,1);
    if((firstChar < "a" || firstChar > "z") && (firstChar < "A" || firstChar > "Z")) {
  	  iban = false;
    }
    
  	secondChar = aRek.substring(1,2);
  	if((secondChar < "a" || secondChar > "z") && (secondChar < "A" || secondChar > "Z")) {
  		iban = false;
  	}

  	if (iban) {
  		if (is_validformat_accountiban(aRek)) {
  			return true;
  		}
  	  else {
  		  return false;
  		}
  	}
  	else {
  	  if (is_validformat_accountnb(aRek)) {
  			return true;
  		}
  	  else {
  		  return false;
  		}
  	}
}

<!-- validation of account number from Cxv0702.js in KBC Online -->
function is_validformat_accountnb(aRek) {
    var wvTlr, wvRek, number2;
    
    aRek = format_accountnb(aRek);
    if((aRek.length != 14) || (aRek.substring(3,4) != '-') || (aRek.substring(11,12) != '-')) {
      return false;
    }
    wvRek = aRek.substring(0,3) + aRek.substring(4,11) + aRek.substring(12,14);
    if(wvRek == "000000000000") {
      return false;
    }
    for(wvTlr=0;wvTlr < wvRek.length;wvTlr++) {
       oneChar = wvRek.substring(wvTlr,wvTlr+1);
       if(oneChar < "0" || oneChar > "9") {
          return false;
       }
    }
    number2 = parseFloat(aRek.substring(12,14));
    if (number2==0) return false;
    if(number2 == 97) { number2=0; }
    if((parseFloat(aRek.substring(0,3) + aRek.substring(4,11)) % 97) != number2) { 
    	return false; 
    }    
    return true;
} 

<!-- validation of iban account number -->
function is_validformat_accountiban(aRek) {
    var wvTlr, wvRek, number2, firstChar, secondChar;
    var newFirstChar, newSecondChar;
    
    aRek = format_accountiban(aRek);

    if((aRek.length != 19) || (aRek.substring(4,5) != ' ') || (aRek.substring(9,10) != ' ') || (aRek.substring(14,15) != ' ')) {
      return false;
    }
    
    firstChar = aRek.substring(0,1);
    if((firstChar < "a" || firstChar > "z") && (firstChar < "A" || firstChar > "Z")) {
  	  return false;
    }
    
  	secondChar = aRek.substring(1,2);
  	if((secondChar < "a" || secondChar > "z") && (secondChar < "A" || secondChar > "Z")) {
  		return false;
  	}
	  
    <!-- Move the first four characters of the IBAN to the right of the number -->
    wvRek = aRek.substring(5,9) + aRek.substring(10,14) + aRek.substring(15,19) + aRek.substring(0,4);
    
    <!-- Convert the letters into numerics in accordance with the conversion table -->    
    newFirstChar=convert_iban_char(firstChar);
    newSecondChar=convert_iban_char(secondChar);

    wvRek = wvRek.substring(0,12) + newFirstChar + newSecondChar + wvRek.substring(14,17);

    <!-- Javascript cannot handle large figures like these. This means that we need to do the modulus 97 in 2 steps -->
    <!-- Take the first 9 positions -->
    var wvRekSubstring;
    var valueModSubString;
    var wvModSubString;
    wvRekSubstring = wvRek.substring(0,9);
    valueModSubString = parseFloat(wvRekSubstring) % 97;
    wvModSubString = valueModSubString.toString();
    <!-- Take the next 9 positions -->
    wvRekSubstring = wvModSubString + wvRek.substring(9,18);

    if((parseFloat(wvRekSubstring) % 97) != 1) { 
    	return false; 
    }
  	
    return true;
}

function convert_iban_char(aChar) {
	var newC=aChar;
	switch(aChar){
	  case 'a' :
    case 'A' : newC="10"; break;
    case 'b' :
    case 'B' : newC="11"; break;
    case 'c' :
    case 'C' : newC="12"; break;
    case 'd' :
    case 'D' : newC="13"; break;
    case 'e' :
    case 'E' : newC="14"; break;
    case 'f' :
    case 'F' : newC="15"; break;
    case 'g' :
    case 'G' : newC="16"; break;
    case 'h' :
    case 'H' : newC="17"; break;
    case 'i' :
    case 'I' : newC="18"; break;
    case 'j' :
    case 'J' : newC="19"; break;
    case 'k' :
    case 'K' : newC="20"; break;
    case 'l' :
    case 'L' : newC="21"; break;
    case 'm' :
    case 'M' : newC="22"; break;
    case 'n' :
    case 'N' : newC="23"; break;
    case 'o' :
    case 'O' : newC="24"; break;
    case 'p' :
    case 'P' : newC="25"; break;
    case 'q' :
    case 'Q' : newC="26"; break;
    case 'r' :
    case 'R' : newC="27"; break;
    case 's' :
    case 'S' : newC="28"; break;
    case 't' :
    case 'T' : newC="29"; break;
    case 'u' :
    case 'U' : newC="30"; break;
    case 'v' :
    case 'V' : newC="31"; break;
    case 'w' :
    case 'W' : newC="32"; break;
    case 'x' :
    case 'X' : newC="33"; break;
    case 'y' :
    case 'Y' : newC="34"; break;
    case 'z' :
    case 'Z' : newC="35"; break;
    default : newC=aChar;
  }
  return newC;
}

function format_accountibanbban(aRek) {
	  var firstChar, secondChar;
	  var iban = true;

    firstChar = aRek.substring(0,1);
    if((firstChar < "a" || firstChar > "z") && (firstChar < "A" || firstChar > "Z")) {
  	  iban = false;
    }
    
  	secondChar = aRek.substring(1,2);
  	if((secondChar < "a" || secondChar > "z") && (secondChar < "A" || secondChar > "Z")) {
  		iban = false;
  	}

  	if (iban) {
  		aRek = format_accountiban(aRek);
			<!-- IBAN nummer wordt bij het verlaten van het veld omgezet naar BBAN -->
 			aRek = aRek.substring(5,8) + "-" + aRek.substring(8,9) + aRek.substring(10,14) + aRek.substring(15,17) + "-" + aRek.substring(17,19);
  	}
  	else {
      aRek = format_accountnb(aRek);
  	}
	  return aRek;
}

function format_accountbbaniban(aRek) {
	  var firstChar, secondChar;
	  var iban = true;

    firstChar = aRek.substring(0,1);
    if((firstChar < "a" || firstChar > "z") && (firstChar < "A" || firstChar > "Z")) {
  	  iban = false;
    }
    
  	secondChar = aRek.substring(1,2);
  	if((secondChar < "a" || secondChar > "z") && (secondChar < "A" || secondChar > "Z")) {
  		iban = false;
  	}

  	if (iban) {
  		aRek = format_accountiban(aRek);
			<!-- IBAN nummer wordt bij het verlaten van het veld omgezet naar BBAN -->
			<!-- in tegenstelling met format_accountibanbban wordt deze omzetting hier weggelaten -->
 			<!-- aRek = aRek.substring(5,8) + "-" + aRek.substring(8,9) + aRek.substring(10,14) + aRek.substring(15,17) + "-" + aRek.substring(17,19); -->
  	}
  	else {
      aRek = format_accountnb(aRek);
  	}
	  return aRek;
}

function is_validformat_clientnr(aClientNr) {
    var wvTlr, wvRek, number2, oneChar, newClientNr;
    
    aClientNr = format_clientnr(aClientNr);
    if((aClientNr.length != 10) || (aClientNr.substring(7,8) != '-')) {
      return false;
    }
    wvRek = aClientNr.substring(0,7) + aClientNr.substring(8,10);
    if(wvRek == "000000000") {
      return false;
    }
    
    for(wvTlr=0;wvTlr < wvRek.length;wvTlr++) {
      oneChar = wvRek.substring(wvTlr,wvTlr+1);

      if((oneChar < "0") || (oneChar > "9")) {
      	if((oneChar >= "a" && oneChar <= "z") || (oneChar >= "A" && oneChar <= "Z")) {
					var newC=oneChar;
					switch(oneChar){
						case 'a' :
            case 'A' :
            case 'j' :
            case 'J' :
            case 's' :
            case 'S' : newC=1;break;
            case 'b' :
            case 'B' :
            case 'k' :
            case 'K' :
            case 't' :
            case 'T' : newC=2; break;
            case 'c' :
            case 'C' :
            case 'l' :
            case 'L' :
            case 'u' :
            case 'U' : newC=3; break;
            case 'd' :
            case 'D' :
            case 'm' :
            case 'M' :
            case 'v' :
            case 'V' : newC=4; break;
            case 'e' :
            case 'E' :
            case 'n' :
            case 'N' :
            case 'w' :
            case 'W' : newC=5; break;
            case 'f' :
            case 'F' :
            case 'o' :
            case 'O' :
            case 'x' :
            case 'X' : newC=6; break;
            case 'g' :
            case 'G' :
            case 'p' :
            case 'P' :
            case 'y' :
            case 'Y' : newC=7; break;
            case 'h' :
            case 'H' :
            case 'q' :
            case 'Q' :
            case 'z' :
            case 'Z' : newC=8; break;
            case 'i' :
            case 'I' :
            case 'r' :
            case 'R' : newC=9; break;
            default : newC=oneChar;
          }
      	}
				else {
    			return false;
    		}      	
      }
    	else {
    		newC = oneChar;
    	}
      if (wvTlr>0) {
				newClientNr = newClientNr.substring(0,wvTlr) + newC + newClientNr.substring(wvTlr+1);
			} 
			else {
				newClientNr = newC;
			}
    } 

    number2 = parseFloat(newClientNr.substring(7,9));   
    if (number2==0) return false;
    if(number2 == 97) { number2=0; }    
    
    if((parseFloat(newClientNr.substring(0,7)) % 97) != number2) { 
    	return false; 
    }    
    return true;
}

<!-- formatting of account number from Cxv0701.js in KBC Online -->
function format_accountnb(aRek) {
  var isVeldIk = true;
  var wvRekWrd;
  if (typeof(aRek) != "object") {
    isVeldIk = false;
    wvRekWrd = aRek;
  }
  else wvRekWrd = aRek.value;

  if (wvRekWrd == "")
    if (isVeldIk) return "";

  var i = 0; var wvKar;
  for(i = 0; i < wvRekWrd.length; i++) {
    wvKar = wvRekWrd.substr(i, 1);
    if(wvKar == " " || wvKar == "-")
    {
       wvRekWrd = wvRekWrd.substr(0, i) + wvRekWrd.substr(i+1);
       i--;
    }
  }
  if (wvRekWrd.length != 12)
    if (isVeldIk) return "";
  
  if (!isNaN(wvRekWrd)) {  
  	var wvTmp = ""; 
  	for(i=0; i < wvRekWrd.length; i++) {                             
    	if(i==3) wvTmp += "-";
    	if(i==10) wvTmp += "-";
    	wvTmp = wvTmp + wvRekWrd.substr(i, 1);                                 
  	}
  	wvRekWrd = wvTmp;
  }
  
  if (isVeldIk)
    aRek.value = wvRekWrd;
  else
    return wvRekWrd;
}

<!-- formatting of iban account number -->
function format_accountiban(aRek) {
  var isVeldIk = true;
  var wvRekWrd;
  if (typeof(aRek) != "object") {
    isVeldIk = false;
    wvRekWrd = aRek;
  }
  else wvRekWrd = aRek.value;

  if (wvRekWrd == "")
    if (isVeldIk) return "";

  var i = 0; var wvKar;
  for(i = 0; i < wvRekWrd.length; i++) {
    wvKar = wvRekWrd.substr(i, 1);
    if(wvKar == " " || wvKar == "-")
    {
       wvRekWrd = wvRekWrd.substr(0, i) + wvRekWrd.substr(i+1);
       i--;
    }
  }
  
  if (wvRekWrd.length != 16)
    if (isVeldIk) return "";

  oneChar = wvRekWrd.substring(0,1);
  if(oneChar >= "a" && oneChar <= "z") {
  	wvRekWrd = oneChar.toUpperCase() + wvRekWrd.substr(1,15);
  }

  oneChar = wvRekWrd.substring(1,2);
  if(oneChar >= "a" && oneChar <= "z") {
  	wvRekWrd = wvRekWrd.substr(0,1) + oneChar.toUpperCase() + wvRekWrd.substr(2,14);
  }
  
 	var wvTmp = ""; 
 	for(i=0; i < wvRekWrd.length; i++) {                             
   	if(i==4) wvTmp += " ";
   	if(i==8) wvTmp += " ";
   	if(i==12) wvTmp += " ";
   	wvTmp = wvTmp + wvRekWrd.substr(i, 1);                                 
 	}
 	wvRekWrd = wvTmp;
 	
  if (isVeldIk)
    aRek.value = wvRekWrd;
  else
    return wvRekWrd;
}

function format_clientnr(aClientNr) {
  var isVeldIk = true;
  var wvClientNrWrd;
  if (typeof(aClientNr) != "object") {
    isVeldIk = false;
    wvClientNrWrd = aClientNr;
  }
  else wvClientNrWrd = aClientNr.value;

  if (wvClientNrWrd == "")
    if (isVeldIk) return "";

  var i = 0; var wvKar;
  for(i = 0; i < wvClientNrWrd.length; i++) {
    wvKar = wvClientNrWrd.substr(i, 1);
    if(wvKar == " " || wvKar == "-")
    {
       wvClientNrWrd = wvClientNrWrd.substr(0, i) + wvClientNrWrd.substr(i+1);
       i--;
    }
  }
  if (wvClientNrWrd.length != 9)
    if (isVeldIk) return "";
  
 	var wvTmp = ""; 
 	for(i=0; i < wvClientNrWrd.length; i++) {                             
   	if(i==7) wvTmp += "-";
   	wvTmp = wvTmp + wvClientNrWrd.substr(i, 1);                                 
 	}
 	wvClientNrWrd = wvTmp;
  
  if (isVeldIk)
    aClientNr.value = wvClientNrWrd;
  else
    return wvClientNrWrd;
}

<!-- validation of ca number from Cxv0702.js in KBC Online -->
function is_validformat_canb(aCanb) {
    var wvTlr, wvDummy, number2;
    
    if(aCanb.length != 7) {
      return false;
    }
    
    aCanb = format_canb(aCanb);
    
    oneChar = aCanb.substring(0,1);
    if((oneChar != 'C') && (oneChar != 'c')) {
    		return false;
    }    

    oneChar = aCanb.substring(1,2);
    if((oneChar != 'A') && (oneChar != 'a')) {
    		return false;
    }    
    
    for(wvTlr=2;wvTlr < 7;wvTlr++) {
       oneChar = aCanb.substring(wvTlr,wvTlr+1);
       if((oneChar >= "a" && oneChar <= "z") || (oneChar >= "A" && oneChar <= "Z") || (oneChar >= "0" && oneChar <= "9")) {
       		wvDummy = 0;
       }
       else {
          return false;
       }
    }    
    
    return true;
}  

<!-- validation of boncode -->
function is_validformat_boncode(aBoncode) {
    var wvTlr, wvDummy, number2;
 
    aBoncode = format_boncode(aBoncode);
    
    oneChar = aBoncode.substring(0,1);
    if((oneChar < "a" || oneChar > "z") && (oneChar < "A" || oneChar > "Z")) {
    		return false;
    }    

    oneChar = aBoncode.substring(1,2);
    if((oneChar < "a" || oneChar > "z") && (oneChar < "A" || oneChar > "Z")) {
    		return false;
    }    
    
    for(wvTlr=2;wvTlr < 10;wvTlr++) {
       oneChar = aBoncode.substring(wvTlr,wvTlr+1);
       if(oneChar >= "0" && oneChar <= "9") {
       		wvDummy = 0;
       }
       else {
          return false;
       }
    }    
    
    return true;
}

<!-- validation of accountca number from Cxv0702.js in KBC Online -->
function is_validformat_accountcanb(aRekCanb) {
    var wvTlr, wvDummy, number2, aString;
    
    aString = aRekCanb.substring(0,2);
    if((aString == 'CA') || (aString == 'ca') || (aString == 'Ca') || (aString == 'cA'))
    {
    	if(is_validformat_canb(aRekCanb))
    	{
    		return true;
    	}
    	else 
    	{
      	return false;
      }
    }
		else 
		{
			if(is_validformat_accountnb(aRekCanb))
			{
				return true;
			}
			else 
			{
				return false;
			}
		}

}

function format_accountcanb(value) {
		var aString;

		aString = value;
    aString = aString.substring(0,2);
    if((aString == 'CA') || (aString == 'ca') || (aString == 'Ca') || (aString == 'cA'))
    {
	  	return value;
		}
		else
		{
			aString = value;
			aString = format_accountnb(aString);
			return aString;
		}
}

function format_canb(value) {
  return value;
}

function format_boncode(value) {
  return value;
}

function is_validformat_phonenb(value) {
  return true; // temp
}

function format_phonenb(value) {
  return value;
}

<!-- formatting of account number from Cxv0701.js in KBC Online -->
function is_validformat_email(aEmail) {
  
  if (aEmail == "") return '';
  
  	var checkExt=1; <!-- Controle extensie e-mailadres //-->
	var domExtPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/; <!-- lijst met gekende e-mailadres extenties waarmee een e-mail adres mag eindigen //-->
	var emailPat=/^(.+)@(.+)$/; <!-- kontrole of e-mail adres voldoet aan "user@domain" patroon. (bewaar elk afzonderlijk) //-->
	var illegalChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]"; <!-- Lijst met "verboden" karakters. Deze karakters zijn ( ) < > @ , ; : \ " . [ ] //-->
	var validChars="\[^\\s" + illegalChars + "\]"; <!-- karakters toegelaten in "user" of "domain". (lees hier: "niet de illegale karakters"  //-->
	var validWord=validChars + '+'; <!-- meerdere opeenvolgende valide karakters //-->
	var quotedUser="(\"[^\"]*\")"; <!-- Als de "user" tussen dubbele quotes staat is alles toegelaten. vb "okp support"@kbc.be //-->
	var domainPat=new RegExp("^" + validWord + "(\\." + validWord +")*$"); <!-- structuur domein gedeelte e-mail adres (niet IP) //-->
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;  <!-- IP adressen kunnen ook als domein gebruikt worden. vb kbc@[123.124.233.4] //->
	var userPart="(" + validWord + "|" + quotedUser + ")"; <!-- geldig deel in user (bv "hello" en "world" in "hello.world@java.com") (kan ook quoted zijn) //-->
	var userPat=new RegExp("^" + userPart + "(\\." + userPart + ")*$"); <!-- structuur van het user gedeelte //-->
	
	var matchArray=aEmail.match(emailPat);
	if (matchArray==null) {
		return false;
	}
	var user=matchArray[1];
	var domain=matchArray[2];

	<!-- controle dat user geen foutieve ASCII karakters bevat (toegelaten ASCII -> 0-127). //-->
	for (i=0; i<user.length; i++) {
		if (user.charCodeAt(i)>127) {
			return false;
  	}
	}
	<!-- controle dat domein geen foutieve ASCII karakters bevat (toegelaten ASCII -> 0-127). //-->
	for (i=0; i<domain.length; i++) {
		if (domain.charCodeAt(i)>127) {
			return false;

	  }
	}
	<!-- Is user gedeelte correct //-->
	if (user.match(userPat)==null) {
		return false;
	}
	<!-- Als het domein een IP adres is gaan we dat hier controleren. //-->
	
	var IPArray=domain.match(ipDomainPat);
	if (IPArray!=null) {
	<!-- het is een IP adres //-->
		for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) {
				return false;
   		}
		}
		return '';
	}
	var validWordPat=new RegExp("^" + validWord + "$");
	var domArr=domain.split(".");
	var len=domArr.length;
	for (i=0;i<len;i++) {
		if (domArr[i].search(validWordPat)==-1) {
			return false;
   	}
	}
	<!-- controleer het domein gedeelte //-->
	if (checkExt && domArr[domArr.length-1].length!=2 && domArr[domArr.length-1].search(domExtPat)==-1) {
		return false;
	}

	<!-- Domein moet een hostname bevatten //-->
	if (len<2) {
		return false;
	}

  return true;
}

function format_email(value) {
  return value;
}

function is_validformat_integer(value) {
  return (! (isNaN(value)) );
}

function format_integer(value) {
  return value;
}  

function is_validformat_checkyear(value) {
  return (! (isNaN(value)) );
}

function format_checkyear(value) {
  return value;
}

function format_string(value) {
	return value;
}

function is_validformat_vatnb(aBTW) {
  aWrd = format_vatnb(aBTW);
  if (aWrd == "") 
    return true;
  else
  {
    if (aWrd.substr(0,2).replace(/^[A-Z]{2}/, "") != "")
      return false;
    else if (aWrd.substr(0,2).replace(/^BE/, "") == "")	//	als België
    {
      if (aWrd.length != 12)
        return false;	//	BTWnummer te groot of te klein
        <!-- testen op inhoud: XX9999999999, XX:landcode, 9999999999: waarde (numeriek) + checkdigit //->
      if (aWrd.replace(/^[A-Z]{2}[0-9]{10}/, '') != '')
        return false; //	BTWnummer foutief
      else 
      {
        contrGt = aWrd.substr(10);
        btwWrd = aWrd.substr(2,8);
        if ((97-(btwWrd%97))!=contrGt)
          return false;
      }
    }
    else 
    {
      if (aWrd.length > 15)
        return false;	//	BTWnummer te groot
        <!-- testen op inhoud: XX9999999999999, XX:landcode, 999999999999: waarde (alfanumeriek)  //->
      if (aWrd.replace(/^[A-Z]{2}[A-Z0-9]+/, '') != '')
        return false; //	BTWnummer foutief
    }
  }		
  return true;
}

function format_vatnb(aBTW)
{
  aWrd = aBTW.toUpperCase();
  if (aWrd.length == 9 && aWrd.replace(/^[0-9]{9}/, '') == '')
    aWrd = 'BE0' + aWrd;
  else if (aWrd.length == 10 && aWrd.replace(/^[0-9]{10}/, '') == '')
    aWrd = 'BE' + aWrd;
  else if (aWrd.length == 11 && aWrd.replace(/^[A-Z]{2}[0-9]{9}/, '') == '')
    aWrd = aWrd.substr(0,2) + '0' + aWrd.substr(2,9);
  return aWrd;
}

function show_error_indications(ids, bool) {
  if (document.getElementById) { // netscape is a no-no
    var visi = bool?"inline":"none";
    for (i=0; i<ids.length; i++) 
      document.getElementById(ids[i]).style.display = visi;
  }
}

function do_standard_validate_value(typename,value,ids,description,mandatory,maxlen,maxval,minlen,minval) {
  var return_code = "";
  if (typename=="string") {  return_code = return_validationcode_string(value,mandatory,maxlen,maxval,minlen,minval);  }
  else if (typename=="stringlist") { return_code = return_validationcode_stringlist(value,mandatory);  }
  else if (typename=="boolean") {  return_code = return_validationcode_boolean(value,mandatory);  }
  else if (typename=="checkboolean") {  return_code = return_validationcode_checkboolean(value,mandatory);  }
  else if (typename=="accountnb") {  return_code = return_validationcode_accountnb(value,mandatory);  }
  else if (typename=="accountiban") {  return_code = return_validationcode_accountiban(value,mandatory);  }
  else if (typename=="accountibanbban") {  return_code = return_validationcode_accountibanbban(value,mandatory);  }
  else if (typename=="accountbbaniban") {  return_code = return_validationcode_accountbbaniban(value,mandatory);  }
  else if (typename=="canb") {  return_code = return_validationcode_canb(value,mandatory);  }  	
  else if (typename=="boncode") {  return_code = return_validationcode_boncode(value,mandatory,maxlen,minlen);  }  	
  else if (typename=="accountcanb") {  return_code = return_validationcode_accountcanb(value,mandatory);  }  	
  else if (typename=="clientnr") {  return_code = return_validationcode_clientnr(value,mandatory);  }
  else if (typename=="vatnb") {  return_code = return_validationcode_vatnb(value,mandatory);  }
  else if (typename=="phonenb") {  return_code = return_validationcode_phonenb(value,mandatory);  }
  else if (typename=="date") {  return_code = return_validationcode_date(value,mandatory,maxval,minval);  }
  else if (typename=="integer") {  return_code = return_validationcode_integer(value,mandatory,maxval,minval,minlen,maxlen);  }
  else if (typename=="email") {  return_code = return_validationcode_email(value,mandatory);  }
  else if (typename=="checkyear") {  return_code = return_validationcode_checkyear(value,mandatory,maxval,minval,minlen,maxlen);  }
  else { alert("Internal error: cannot find return_validationcode_"+typename);  }

  if (return_code==okcode) {
    show_error_indications(ids, false);
    return true;
  }
   
  show_error_indications(ids, true); 
  
  var spec = "";
  if (return_code==errcode_minval) spec = minval;
  else if (return_code==errcode_maxval) spec = maxval;
  else if (return_code==errcode_minlen) spec = minlen;
  else if (return_code==errcode_maxlen) spec = maxlen;
  else if (return_code==errcode_minvalcheckyear) {
	  var mincdate = getCurrentDate();
	  var minyear = mincdate.getYear();
	  if (minyear < 1000) { minyear = 1900 + minyear; }  	
  	spec = minyear - minval;
  }
  else if (return_code==errcode_maxvalcheckyear) {
	  var maxcdate = getCurrentDate();
	  var maxyear = maxcdate.getYear();
	  if (maxyear < 1000) { maxyear = 1900 + maxyear; }  	
  	spec = maxyear - maxval;
  }
  
  add_validation_error_message(get_validation_error_message(return_code, description, spec));
  return false;
}

function return_validationcode_string(value,mandatory,maxlen,maxval,minlen,minval) {
  if ((value==null) || (value.length==0)) {
    if (mandatory)
      return errcode_mandatory;
    return okcode;
  }  
  if (maxlen!=null) {
    if ((value == null) || (value.length > maxlen)) { return errcode_maxlen; }
  }
  if (maxval!=null) {
    if ((value == null) || (value > maxval)) { return errcode_maxval; }
  }
  if (minlen!=null) {
    if ((value == null) || (value.length < minlen)) { return errcode_minlen; }
  }
  if (minval!=null) {
    if ((value == null) || (value < minval)) { return errcode_minval; }
  }
  return okcode;
}
function return_validationcode_boolean(value,mandatory) {
  if ((value==null) || (value.length==0)) {
    if (mandatory)
      return errcode_mandatory;
    return okcode;
  }  	
  return okcode;
}
function return_validationcode_checkboolean(value,mandatory) {
  if ((value==null) || (value.length==0)) {
  	return errcode_mandatory;
  }
  else {
    if ((mandatory) && (!value)) {
      return errcode_mandatory;
    }
  	else {
      return okcode;
    }
  }  	
}
function return_validationcode_accountnb(value,mandatory) {
  if ((value==null) || (value.length==0)) {
    if (mandatory)
      return errcode_mandatory;
    return okcode;
  }  	
  if (! (is_validformat_accountnb(value)) )
    return errcode_invalid;
  return okcode;
}
function return_validationcode_accountiban(value,mandatory) {
  if ((value==null) || (value.length==0)) {
    if (mandatory)
      return errcode_mandatory;
    return okcode;
  }  	
  if (! (is_validformat_accountiban(value)) )
    return errcode_invalid;
  return okcode;
}
function return_validationcode_accountibanbban(value,mandatory) {
  if ((value==null) || (value.length==0)) {
    if (mandatory) {
      return errcode_mandatory;
    }
    return okcode;
  }  	
  if (! (is_validformat_accountibanbban(value)) ) {
    return errcode_invalid;
  }
  
  return okcode;
}
function return_validationcode_accountbbaniban(value,mandatory) {
  if ((value==null) || (value.length==0)) {
    if (mandatory) {
      return errcode_mandatory;
    }
    return okcode;
  }  	
  if (! (is_validformat_accountbbaniban(value)) ) {
    return errcode_invalid;
  }
  
  return okcode;
}
function return_validationcode_clientnr(value,mandatory) {
  if ((value==null) || (value.length==0)) {
    if (mandatory)
      return errcode_mandatory;
    return okcode;
  }  	
  if (! (is_validformat_clientnr(value)) )
    return errcode_invalid;
  return okcode;
}
function return_validationcode_canb(value,mandatory) {
  if ((value==null) || (value.length==0)) {
    if (mandatory)
      return errcode_mandatory;
    return okcode;
  }  	
  if (! (is_validformat_canb(value)) )
    return errcode_invalid;
  return okcode;
}
function return_validationcode_boncode(value,mandatory,maxlen,minlen) {
  if ((value==null) || (value.length==0)) {
    if (mandatory)
      return errcode_mandatory;
    return okcode;
  }  	

  if (maxlen!=null) {
   	if ((value == null) || (value.length > maxlen)) { return errcode_invalid; }
  }
    
  if (minlen!=null) {
   	if ((value == null) || (value.length < minlen)) { return errcode_invalid; }
  }    

  if (! (is_validformat_boncode(value)) )
    return errcode_invalid;
  return okcode;
}
function return_validationcode_accountcanb(value,mandatory) {
  if ((value==null) || (value.length==0)) {
    if (mandatory)
      return errcode_mandatory;
    return okcode;
  }  	
  if (! (is_validformat_accountcanb(value)) )
    return errcode_invalid;
  return okcode;
}
function return_validationcode_vatnb(value,mandatory) {
  if ((value==null) || (value.length==0)) {
    if (mandatory)
      return errcode_mandatory;
    return okcode;
  }  	
  if (! (is_validformat_vatnb(value)) )
    return errcode_invalid;
  return okcode;
}
function return_validationcode_phonenb(value,mandatory) {
  if ((value==null) || (value.length==0)) {
    if (mandatory)
      return errcode_mandatory;
    return okcode;
  }  
  if (! (is_validformat_phonenb(value)) )
    return errcode_invalid;
  return okcode;
}
function return_validationcode_date(value,mandatory,maxval,minval) {
  if ((value==null) || (value.length==0)) {
    if (mandatory)
      return errcode_mandatory;
    return okcode;
  }  
  if (! (is_validformat_date(value)) )
    return errcode_invalid;	
  if (maxval!=null) {
    if ((value == null) || (value > maxval)) { return errcode_maxval; }
  }
  if (minval!=null) {
    if ((value == null) || (value < minval)) { return errcode_minval; }
  }
  return okcode;
}
function return_validationcode_integer(value,mandatory,maxval,minval,minlen,maxlen) {
  if ((value==null) || (value.length==0)) {
    if (mandatory)
      return errcode_mandatory;
    return okcode;
  }  
  if (! (is_validformat_integer(value)) )
    return errcode_invalid;
  var value_as_int = parseInt(value);
  if (maxval!=null) {
    var maxval_as_int = parseInt(maxval);
    if ((value == null) || (value > maxval_as_int)) { return errcode_maxval; }
  }
  if (minval!=null) {
    var minval_as_int = parseInt(minval);
    if ((value == null) || (value < minval_as_int)) { return errcode_minval; }
  }
  if (minlen!=null) {
    if ((value == null) || (value.length < minlen)) { return errcode_minlen; }
  }
 
  if (maxlen!=null) {
    if ((value == null) || (value.length > maxlen)) { return errcode_maxlen; }
  }  
  return okcode;
}
function return_validationcode_checkyear(value,mandatory,maxval,minval,minlen,maxlen) {
	var cdate = getCurrentDate();
	var year = cdate.getYear();
	if (year < 1000) { year = 1900 + year; }
	
  if ((value==null) || (value.length==0)) {
    if (mandatory)
      return errcode_mandatory;
    return okcode;
  }  
  if (! (is_validformat_integer(value)) )
    return errcode_invalid;
  var value_as_int = parseInt(value);
  if (maxval!=null) {
    var maxval_as_int = parseInt(maxval);
    if ((value == null) || (value < (year - maxval_as_int))) { return errcode_maxvalcheckyear; }
  }
  if (minval!=null) {
    var minval_as_int = parseInt(minval);
    if ((value == null) || (value > (year - minval_as_int))) { return errcode_minvalcheckyear; }
  }
  if (minlen!=null) {
    if ((value == null) || (value.length < minlen)) { return errcode_minlen; }
  }
 
  if (maxlen!=null) {
    if ((value == null) || (value.length > maxlen)) { return errcode_maxlen; }
  }  
  return okcode;
}
function return_validationcode_email(value,mandatory) {
  if ((value==null) || (value.length==0)) {
    if (mandatory)
      return errcode_mandatory;
    return okcode;
  }  
  if (! (is_validformat_email(value)) )
    return errcode_invalid;	
  return okcode;
}
// stringlist is list of strings
function return_validationcode_stringlist(value,mandatory) {
  if ((value==null) || (value.length==0)) {
    if (mandatory)
      return errcode_mandatory;
    return okcode;
  }  
  return okcode;
}
// helper function; returns Array of values of checked/selected radio/checkbox/option input objects in lst
function get_active_values(lst) {
  if ((lst==null) || (lst.length==0))
    return null;

  var ar = new Array();    
  for (var i=0; i<lst.length; i++) {
    if ((lst[i].checked || lst[i].selected) && (lst[i].value.length>0))
      ar[ar.length] = lst[i].value;
  }
  return ar;
}

// js voor popup van printvriendelijke knop

function getWindowHeight() {
  var myHeight = 600;
  if( typeof( window.innerHeight ) == 'number' ) {
    //Non-IE
    myHeight = window.innerHeight;
  } else if( document.documentElement &&
      (document.documentElement.clientHeight ) ) {
    //IE 6+ in 'standards compliant mode'
    myHeight = document.documentElement.clientHeight;
  } else if( document.body &&(document.body.clientHeight ) ) {
    //IE 4 compatible
    myHeight = document.body.clientHeight;
  }
}