function geldigRekNr(RekNr)
{
  var melding = "";
  if (RekNr!="")
  {
    switch (chNRek(RekNr))
    {
      case 56  : melding = "Het bankrekeningnummer of Postbankrekeningnummer is ongeldig"; break;
      case 197 : melding = "Een Postbankrekeningnummer dient te beginnen met een P";       break;
      case 198 : melding = "Het bankrekeningnummer is ongeldig";                           break;
    };
  }
  return melding;
}


// Elfproef- en rekeningformatfuncties

function chNRek(cNRek)
{
  cNRek = wegVNul(expRek(cNRek));
  if (isNum(cNRek.substring(0,1)))
  {
    if (!isNum(cNRek.substring(1,cNRek.length)))                     { return 56;  };
    if ((cNRek.length==0) || (cNRek.length==8) || (cNRek.length>10)) { return 56;  };
    if ((cNRek.length>0) && (cNRek.length<8))                        { return 197; };
    if (!isElfP(cNRek))                                              { return 198; };
  }
  else
  {
    if (cNRek.charAt(0)!="P")                    { return 56; };
    if (!isNum(cNRek.substring(1,cNRek.length))) { return 56; };
    if (cNRek.length<2 || cNRek.length>8)        { return 56; };
  }
  return 0;
}


function isElfP(cRek)
{
  var nSom = 0;
  cRek = wegVNul(cRek);
  for (var nTel=cRek.length;nTel>0;nTel--) { nSom+=eParseInt(cRek.charAt(nTel-1))*(cRek.length-nTel+1); };
  if (nSom%11==0) return true;
  return false;
}


function wegVNul(cTk)
{
  while (cTk.charAt(0)=="0") { cTk = cTk.substring(1,cTk.length); };
  return cTk;
}


function eParseInt(cTk)
{
  cTk = wegVNul(cTk);
  if (cTk.length==0) { cTk="0"; };
  if (!isNum(cTk))   { cTk="0"; };
  return parseInt(cTk);
}


function isNum(cTk)
{
 var cNums = "0123456789";
 for (var i=0;i < cTk.length;i++) if (eIndexOf(cNums,cTk.substring(i,i+1)) == -1) return false;
 return true;
}


function eIndexOf(cVeld,cKarakter)
{
  if (cVeld.length==0) { return -1; };
  return cVeld.indexOf(cKarakter);
}


function expRek(cRekNum)
{
  var nPos;
  var cHulpTekst = '';
  cRekNum = rTrim(cRekNum);

  while (((nPos=eIndexOf(cRekNum,'.'))>-1) || ((nPos=eIndexOf(cRekNum,' '))>-1))
  {
    cHulpTekst += cRekNum.substring(0,nPos);
    cRekNum = cRekNum.substring(nPos + 1);
  }

  cHulpTekst += cRekNum;
  if (cHulpTekst.charAt(0).toUpperCase()!="P")
  {
    while (cHulpTekst.length<10) { cHulpTekst = "0"+cHulpTekst; };
  }
  else
  {
    cHulpTekst = "P"+wegVNul(cHulpTekst.substring(1,cHulpTekst.length));
  };
  return cHulpTekst;
}


function tRek(cRek)
{
  if (isLeeg(cRek)) { return cRek; };
  if (cRek.charAt(0) == "P")
  {
    while (cRek.length<10) { cRek="P0"+cRek.substring(1,cRek.length); };
    return(cRek);
  }
  if (cRek.length>10)         { return cRek; };
  if (wegVNul(cRek).length<9) { return wegVNul(cRek); };
  if (cRek.charAt(0)=="0")    { return cRek.substring(1,5)+"."+cRek.substring(5,7)+"."+cRek.substring(7,10); };
  return cRek.substring(0,4)+"."+cRek.substring(4,7) + "."+cRek.substring(7,10);
}


function isLeeg(cTk)
{
  for (var i=0;i<cTk.length;i++)
  {
    if (cTk.substring(i,i+1)!=" ") { return false; };
  }
  return true;
}


function rTrim(cTk)
{
  while (cTk.charAt(cTk.length-1)==" ") { cTk = cTk.substring(0,cTk.length-1); };
  return cTk;
}

