String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g,""); }
String.prototype.ltrim = function() { return this.replace(/^\s+/,""); }
String.prototype.rtrim = function() { return this.replace(/\s+$/,""); }
String.prototype.capitalize = function() { return this.substring(0,1).toUpperCase() + this.substring(1); }

function Trim(str) { return str.trim(); }
function Capitalize(str) { return str.capitalize(); }

Date.prototype.getWeekNumber=function() {
  var d=new Date(this.getFullYear(),this.getMonth(),this.getDate(),0,0,0);
  var DoW=d.getDay();
  d.setDate(d.getDate()-(DoW+6)%7+3);
  var ms=d.valueOf();
  d.setMonth(0);
  d.setDate(4);
  return Math.round((ms-d.valueOf())/(7*86400*1000))+1;
}


var ARR_MONTHS = ["januari", "februari", "maart", "april", "mei", "juni", "juli", "augustus", "september", "oktober", "november", "december"];
var ARR_WEEKDAYS = ["zo", "ma", "di", "wo", "do", "vr", "za"];
var NUM_WEEKSTART = 1;

var NeeJaLijst          = '0=nee|1=ja';
var NeeJaHLijst         = '0=Nee|1=Ja';
var DagcodeLijst        = '0=zo|1=ma|2=di|3=wo|4=do|5=vr|6=za';
var DagnaamLijst        = '0=zondag|1=maandag|2=dinsdag|3=woensdag|4=donderdag|5=vrijdag|6=zaterdag';
var PermissionLijst     = '0=geen toegang|1=alleen kijken|2=toevoegen+wijzigen|3=toevoegen+wijzigen+verwijderen|4=administrator|5=developer';
var LanguageLijst       = '0=Nederlands|1=Duits|2=Engels|3=Frans';
var PageheaderkindLijst = '0=\'as is\'|10=metatags|20=javascript|30=style';
var PageitemkindLijst   = '0=Tekst|1=Url|2=Code (eval())|3=Codeurl (include)';
var LetterLijst         = '-=-|a=a|b=b|c=c|d=d|e=e|f=f|g=g|h=h|i=i|j=j|k=k|l=l|m=m|n=n|o=o|p=p|q=q|r=r|s=s|t=t|u=u|v=v|w=w|x=x|y=y|z=z';


function getid(name) {
  var el = null;
  //if (typeof name == "string")
  el=document.getElementById(name);
  if (el==null) el=parent.document.getElementById(name);
//  if (el==null) el=parent.parent.document.getElementById(name);
  return el;
}

function waitcursor(wt) {
  if (wt==1) wt=true;
  if (wt==0) wt=false;
  if (wt) document.body.style.cursor = 'wait';
     else document.body.style.cursor = 'default';
//getid('txt').innerHTML+='<br>wait='+wt;
}

function GetXmlHttpObject() {
  var objXMLHttp=null;
  if (window.XMLHttpRequest) {
    objXMLHttp=new XMLHttpRequest();
  } else
  if (window.ActiveXObject) {
    objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
  return objXMLHttp;
}

function cookiesareenabled() {
  var result = false;
  var exp = new Date();
  exp.setTime(exp.getTime() + 1800000);

  // first write a test cookie

  setCookieT("cookies", "cookies", exp, false, false, false);
  if (document.cookie.indexOf('cookies') == -1) {
    result=false; //cookies are not enabled
  }
  else {
    result=true; //cookies are enabled
  }

  // now delete the test cookie
  exp = new Date();
  exp.setTime(exp.getTime() - 1800000);
  setCookieT("cookies", "cookies", exp, false, false, false);
  
  function setCookieT(name, value, expires, path, domain, secure) {
    var curCookie = name + "=" + escape(value) +
    ((expires) ? "; expires=" + expires.toGMTString() : "") +
    ((path) ? "; path=" + path : "") +
    ((domain) ? "; domain=" + domain : "") +
    ((secure) ? "; secure" : "");
    document.cookie = curCookie;
  }
  return result;
}

//constructor voor templateblok-administratie
function Blok(letter) {
  this.letter=letter;
  this.begin=-1;
  this.entry=-1;
  this.footer=-1;
  this.end=-1;
  this.noeof=0;
  this.entryblok=new Array();   //array van template-regels tussen .begin en .entry
  this.footerblok=new Array();  //array van template-regels tussen .footer en .end
  this.datablokken=new Array(); //array van
                                //  array van template-regels tussen max(.begin,.entry) en min(.footer,.end)
                                //let op .footer<>-1
}

function arrayReplace(srcarray,begin,end,insarray) {
  var ar = new Array();
  return ar.concat(srcarray.slice(0,begin),'',insarray,'',srcarray.slice(end+1));
}

function enterkeyevent(e) {
  var key;
  var keychar;

  if (window.event) key = window.event.keyCode; else
  if (e) key = e.which; else
  return true;

  // control keys
  if ((key==9)||(key==13)) return true;
                      else return false;
}

function logout() {
  commonlogin(cookienaam,"o","","");
}

function goscherm(naam) {
/*
  if (naam=='index') {
    var w=window.open(naam+".html",naam);
    w.focus();
  } else
  if (currentsingletab) {
    if (currentonetab) { var w=window.open(naam+".html","index"); }
                  else { var w=window.open(naam+".html",naam); }
    w.focus;
  } else
/* */
    window.open(naam+".html");
}

function ganaar(url) {
  window.open('http://'+url);
}

function openfileupload() {
  if (Microsoft)
    window.open("fileupload.html",null,"width=600,height=224,menubar=no,location=no,status=no,toolbar=no,scrollbars=auto");
  else
    window.open("fileupload.html",null,"width=600,height=200,status=no");
}

function lastupdatedstring(createddate,lastuserid) {
  return 'Laatst gewijzigd: '+dateString(new Date(createddate),'wdmyhn')+' door '+gettablefield('users','userid','name',lastuserid);
}

function dateColor(date,color) {
  this.date=date;
  this.color=color;
  this.count=0;
}

function singlequote(txt) {
  txt=new String(txt);
  txt=txt.replace(/"/g,"'");
  return txt;
}

function decodeid(id) {
  id=new String(id);
  id=id.replace(/id/g,"");
  id=id.replace(/_/,".");
  return id;
}

function encodeid(id) {
  return 'id'+id+'id';
}

var zeroid = 'id0id';

function encode_amp(txt) {
  txt=String(txt);
  return txt.replace(/\&/g,'~~');
}

function encode_special(txt) {
  txt=String(txt);
//  txt=txt.replace(/"/g,'~d~');
//  txt=txt.replace(/'/g,'~q~');
  txt=txt.replace(/~a~/g,'~aa~');
  txt=txt.replace(/~p~/g,'~pp~');
  txt=txt.replace(/~s~/g,'~ss~');
  txt=txt.replace(/\&/g,'~a~');
  txt=txt.replace(/\+/g,'~p~');
  return txt.replace(/\|/g,'~s~');
}

function decode_special(txt) {
  txt=String(txt);
//  txt=txt.replace(/~d~/g,'"');
//  txt=txt.replace(/~q~/g,"'");
  txt=txt.replace(/~a~/g,'&');
  txt=txt.replace(/~p~/g,'+');
  txt=txt.replace(/~s~/g,'|');
  txt=txt.replace(/~aa~/g,'~a~');
  txt=txt.replace(/~pp~/g,'~p~');
  return txt.replace(/~ss~/g,'~s~');
}

//var Microsoft = (navigator.appName.indexOf('Microsoft') != -1);
var Microsoft = (/MSIE (\d+\.\d+);/.test(navigator.userAgent));
var Firefox   = (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent));
var Opera     = (/Opera[\/\s](\d+\.\d+)/.test(navigator.userAgent));
var Safari    = (/Safari[\/\s](\d+\.\d+)/.test(navigator.userAgent));

function browserwithtabs() {
  var ok=false;

  //Firefox
  if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)) { //test for Firefox/x.x or Firefox x.x (ignoring remaining digits);
    var ffversion=new Number(RegExp.$1); // capture x.x portion and store as a number
//    if (ffversion>=3)
//    document.write("You're using FF 3.x or above")
    ok=true;
  }

  //Internet Explorer 7
  if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) { //test for MSIE x.x;
    var ieversion=new Number(RegExp.$1); // capture x.x portion and store as a number
    ok=(ieversion>=7);
  }
  
  //Opera
  if (/Opera[\/\s](\d+\.\d+)/.test(navigator.userAgent)) { //test for Opera/x.x or Opera x.x (ignoring remaining decimal places);
    var oprversion=new Number(RegExp.$1); // capture x.x portion and store as a number
//    if (oprversion>=10)
//    document.write("You're using Opera 10.x or above")
    ok=true;
  }

  //Safari
  if (/Safari[\/\s](\d+\.\d+)/.test(navigator.userAgent)) { //test for Safari/x.x (ignoring remaining decimal places);
    var safversion=new Number(RegExp.$1); // capture x.x portion and store as a number
    ok=(safversion>=2);
  }

  return ok;
}

var framewidthmargin  =  24;
var frameheightmargin = 104;
var divwidthmargin    =  24;
var divheightmargin   = 160;
if (Microsoft) { divheightmargin+=8; }

var windowwidth  = 0;
var windowheight = 0;

function getwindowsize() {
  if( typeof( window.innerWidth ) == 'number' ) {
    //Non-IE
    windowwidth = window.innerWidth;
    windowheight = window.innerHeight;
  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
    //IE 6+ in 'standards compliant mode'
    windowwidth = document.documentElement.clientWidth;
    windowheight = document.documentElement.clientHeight;
  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
    //IE 4 compatible
    windowwidth = document.body.clientWidth;
    windowheight = document.body.clientHeight;
  }
}

function execJS(str) {
  var strExec = String(str);
  strExec=strExec.replace("ESKRIPT","");
  strExec=strExec.replace("SKRIPT","");
//getid("jstxt").innerHTML="m="+Microsoft+"  strExec="+str;
  try {
    var x = document.createElement("script");
    x.type = "text/javascript";

    /* In IE we must use .text! */
    if (!Microsoft) x.innerHTML = strExec;
               else x.text = strExec;

    document.getElementsByTagName("head")[0].appendChild(x);
  } catch(e) {
    alert(e);
  }
}

function odd(value) {
  return ((value%2)==1);
}

function trim(stringToTrim) { return stringToTrim.replace(/^\s+|\s+$/g,""); }

function ltrim(stringToTrim) { return stringToTrim.replace(/^\s+/,""); }

function rtrim(stringToTrim) { return stringToTrim.replace(/\s+$/,""); }

function stripblanks(stringToStrip) { return stringToStrip.replace(/\s+/g,""); }

function ifstring(truefalse,truestring,falsestring) {
  if (truefalse) return truestring;
            else return falsestring;
}

function cleanemailaddress(email) {
  var s = '';
  var i=email.indexOf('<');
  if (i<0) s=email; else
  while (i>=0) {
    email=email.substring(i+1);
    i=email.indexOf('>');
    if (i>=0) {
      if (s!='') s+=', ';
      s=email.substring(0,i);
      email=email.substring(i+1);
    }
    i=email.indexOf('<');
  }
  return s;
}

function clean1emailaddress(email) {
  email=cleanemailaddress(email);
  var s = '';
  var i=email.indexOf(',');
  if (i<0) s=email;
      else s=email.substring(0,i);
  var i=s.indexOf(';');
  if (i>=0) s=s.substring(0,i);
  return s;
}

function ids_length(ids) {
  var l = 0;
  var ar=ids.split(',');
  for (var i=0; i<ar.length; i++) if (ar[i]!='') l++;
  return l;
}

function removenondigits(txt) {
  var r='z';
  txt='z'+txt;
  d=new String('0123456789');
  var ar=txt.split('');
  for (var i=0; i<ar.length; i++)
  if (d.indexOf(ar[i])!=-1) r+=ar[i];
  return r.substring(1);
}

function roundmoney(value) {
  return Math.round(value/10)*10;
}

function checkmoney(val) {
  val=new String(val);
  val=val.replace(/--/,"00");
  val=val.replace(/,/,".");
  val=val.replace(/.-/,".0");
  return val;
}

function integerstring2(i) {
  r='';
  if (i<10) r+='0';
  return r+i;
}

function integerstring3(i) {
  r='';
  if (i<10) r+='00'; else
  if (i<100) r+='0';
  return r+i;
}

function integerstring4(i) {
  r='';
  if (i<10) r+='000'; else
  if (i<100) r+='00'; else
  if (i<1000) r+='0';
  return r+i;
}

function integerstring5(i) {
  r='z';
  if (i<10) r+='0000'; else
  if (i<100) r+='000'; else
  if (i<1000) r+='00'; else
  if (i<10000) r+='0';
  return r+i;
}

function integerstring5z(i) {
  r='z';
  if (i<10) r+='0000'; else
  if (i<100) r+='000'; else
  if (i<1000) r+='00'; else
  if (i<10000) r+='0';
  return r+i;
}

function integerstring6z(i) {
  r='z';
  if (i<10) r+='00000'; else
  if (i<100) r+='0000'; else
  if (i<1000) r+='000'; else
  if (i<10000) r+='00'; else
  if (i<100000) r+='0';
  return r+i;
}

function janee(not0) {
  return ifstring(not0,'ja','nee');
}

function charstring(chr,idx) {
  var s='';
  for (var i=0; i<idx; i++) s+=chr;
  return s;
}

function blanks(idx) {
  return charstring('&nbsp;',idx);
}

function indexOf(arr,str) {
  var idx = -1;
  var i = 0;
  while ((i<arr.length)&&(idx==-1)) {
    if (arr[i]==str) idx=i;
    i++;
  }
  return idx;
}

function parseaddition(str) {
  var value=str;
  var ar = new Array();
  var v=ix=p1=p2=-1;
  //split str into components
  p1 = str.indexOf('+');
  p2 = str.indexOf('-');
  if (p2!=-1) if (p1!=-1) p1=Math.min(p1,p2); else p1=p2;
  if (p1!=-1) {
//getid('txt8').innerHTML='str='+str;
    do {
      ix++; ar[ix]=str.substring(0,p1);
      ix++; ar[ix]=str.substring(p1,p1+1);
      str=str.substring(p1+1);
//getid('txt8').innerHTML+='<br>str='+str+' ix='+ix+' ar[ix-1]='+ar[ix-1]+' ar[ix]='+ar[ix];

      p1 = str.indexOf('+');
      p2 = str.indexOf('-');
      if (p2!=-1) if (p1!=-1) p1=Math.min(p1,p2); else p1=p2;
    } while (p1!=-1);
    ix++; ar[ix]=str; //add remainder to array
  }
  //parse the components
  if (ar.length>0) {
    if (ar[0]=='') value=0; else value=ar[0]-0;
//getid('txt8').innerHTML+='<br>0 value='+value;
    for (ix=1; ix<ar.length; ix+=2) {
      v=ar[ix+1]-0;
      if (ar[ix]=='+') value+=v; else
      if (ar[ix]=='-') value-=v;
//getid('txt8').innerHTML+='<br>'+ix+' value='+value;
    }
//getid('txt8').innerHTML+='<br>value='+value;
  }
  //return
  return value;
}

function under18(dat) {
  var d = new Date(dat);
  var d18 = new Date();
  d18.setUTCFullYear(d18.getUTCFullYear()-18);
  d18.setUTCHours(0,0,0,0);
  return (dat>d18.getTime());
}

function striptijd(dat) {
  var d = new Date(dat);
  d.setUTCHours(0,0,0,0);
  return d.getTime();
}

function dayofweek(dat) {
  var d = new Date(dat);
  return d.getUTCDay(); //0=sun, 6=sat
}

function dateString(dat,format,utc) { //format-elementen: z, u, w, ymd, dmy, dm, d, emy, m, y, hns, hn
  if (!format) format='';
  if (format=='') format='ymd';
  if (!utc) utc=false;
  var d = new Date(dat);
  var r = "";
  var i = 0;
  if (format.indexOf('u')!=-1) utc=true; // u: als aanwezig dan utc
  if ((format.indexOf('z')==-1)||(dat!=0)) // z: als dat!=0 (!=1-1-1970 00:00:00)
  if (!utc) {
    if (format.indexOf('w')!=-1) {
                             r+=veldlijstWaarde(DagcodeLijst,d.getDay());
    }
    
    if (format.indexOf('ymd')!=-1) {
                             if (r!='') r+=' ';
                             r+=d.getFullYear();
      i=(d.getMonth()+1);    if (i<10) r+="-0"+i+"-"; else r+="-"+i+"-";
      i=d.getDate();         if (i<10) r+="0"+i; else r+=i;
    } else
    if (format.indexOf('emy')!=-1) {
                             if (r!='') r+=' ';
      i=d.getDate();         r+=i;
      i=(d.getMonth()+1);    if (i<10) r+="-0"+i+"-"; else r+="-"+i+"-";
                             r+=d.getFullYear();
    } else
    if (format.indexOf('dmy')!=-1) {
                             if (r!='') r+=' ';
      i=d.getDate();         if (i<10) r+="0"+i; else r+=i;
      i=(d.getMonth()+1);    if (i<10) r+="-0"+i+"-"; else r+="-"+i+"-";
                             r+=d.getFullYear();
    } else
    if (format.indexOf('dm')!=-1) {
                             if (r!='') r+=' ';
      i=d.getDate();         if (i<10) r+="0"+i; else r+=i;
      i=(d.getMonth()+1);    if (i<10) r+="-0"+i; else r+="-"+i;
    } else
    if (format.indexOf('d')!=-1) {
                             if (r!='') r+=' ';
      i=d.getDate();         if (i<10) r+="0"+i; else r+=i;
    } else
    if (format.indexOf('m')!=-1) {
                             if (r!='') r+=' ';
      i=(d.getMonth()+1);    if (i<10) r+="0"+i; else r+=i;
    } else
    if (format.indexOf('y')!=-1) {
                             if (r!='') r+=' ';
                             r+=d.getFullYear();
    }
    
    if (format.indexOf('hns')!=-1) {
                             if (r!='') r+=' ';
      i=(d.getHours());      if (i<10) r+="0"+i; else r+=i;
      i=(d.getMinutes());    if (i<10) r+=":0"+i; else r+=":"+i;
      i=(d.getSeconds());    if (i<10) r+=":0"+i; else r+=":"+i;
    } else
    if (format.indexOf('hn')!=-1) {
                             if (r!='') r+=' ';
      i=(d.getHours());      if (i<10) r+="0"+i; else r+=i;
      i=(d.getMinutes());    if (i<10) r+=":0"+i; else r+=":"+i;
    }
  } else {
    if (format.indexOf('w')!=-1) {
                             r+=veldlijstWaarde(DagcodeLijst,d.getUTCDay());
    }
    
    if (format.indexOf('ymd')!=-1) {
                             if (r!='') r+=' ';
                             r+=d.getUTCFullYear();
      i=(d.getUTCMonth()+1); if (i<10) r+="-0"+i+"-"; else r+="-"+i+"-";
      i=d.getUTCDate();      if (i<10) r+="0"+i; else r+=i;
    } else
    if (format.indexOf('emy')!=-1) {
                             if (r!='') r+=' ';
      i=d.getUTCDate();      r+=i;
      i=(d.getUTCMonth()+1); if (i<10) r+="-0"+i+"-"; else r+="-"+i+"-";
                             r+=d.getUTCFullYear();
    } else
    if (format.indexOf('dmy')!=-1) {
                             if (r!='') r+=' ';
      i=d.getUTCDate();      if (i<10) r+="0"+i; else r+=i;
      i=(d.getUTCMonth()+1); if (i<10) r+="-0"+i+"-"; else r+="-"+i+"-";
                             r+=d.getUTCFullYear();
    } else
    if (format.indexOf('dm')!=-1) {
                             if (r!='') r+=' ';
      i=d.getUTCDate();      if (i<10) r+="0"+i; else r+=i;
      i=(d.getUTCMonth()+1); if (i<10) r+="-0"+i; else r+="-"+i;
    } else
    if (format.indexOf('d')!=-1) {
                             if (r!='') r+=' ';
      i=d.getUTCDate();      if (i<10) r+="0"+i; else r+=i;
    } else
    if (format.indexOf('m')!=-1) {
                             if (r!='') r+=' ';
      i=(d.getUTCMonth()+1); if (i<10) r+="0"+i; else r+=i;
    } else
    if (format.indexOf('y')!=-1) {
                             if (r!='') r+=' ';
                             r+=d.getUTCFullYear();
    }
    
    if (format.indexOf('hns')!=-1) {
                             if (r!='') r+=' ';
      i=(d.getUTCHours());   if (i<10) r+="0"+i; else r+=i;
      i=(d.getUTCMinutes()); if (i<10) r+=":0"+i; else r+=":"+i;
      i=(d.getUTCSeconds()); if (i<10) r+=":0"+i; else r+=":"+i;
    } else
    if (format.indexOf('hn')!=-1) {
                             if (r!='') r+=' ';
      i=(d.getUTCHours());   if (i<10) r+="0"+i; else r+=i;
      i=(d.getUTCMinutes()); if (i<10) r+=":0"+i; else r+=":"+i;
    }
  }
  return r;
}

function dateString_ymdhns(dat) { return dateString(dat,'ymdhns'); }

function dateString_dmy(dat) { return dateString(dat,'dmy'); }

function dateString_emy(dat) { return dateString(dat,'emy'); }

function dateString_emy_local(dat) { return dateString(dat,'emy',false); }

function dateString_dmyhns(dat) { return dateString(dat,'dmyhns'); }

function dateString_wdmyhns(dat) { return dateString(dat,'wdmyhns'); }

function dateString_wdmyhn(dat) { return dateString(dat,'wdmyhn'); }

function dateString_wdmyhn_local(dat) { return dateString(dat,'wdmyhn',false); }

function dateString_dmyhn(dat) { return dateString(dat,'dmyhn'); }

function dateString_emyhn(dat) { return dateString(dat,'emyhn'); }

function dateString_emyhn_local(dat) { return dateString(dat,'emyhn',false); }

function dateString_wdmy(dat) { return dateString(dat,'wdmy'); }

function dateString_w(dat) { return dateString(dat,'w'); }

function dateString_wd(dat) { return dateString(dat,'wd'); }

function timeString_hm(tim) {
  var sec = tim % 60;
  tim=Math.floor(tim/60);
  var min = tim % 60;
  var hrs = Math.floor(tim/60);
  var s = "";
  if (hrs<10) s=s+"0"+hrs+":"; else s=s+hrs+":";
  if (min<10) s=s+"0"+min; else s=s+min;
  return s;
}

function stringTime_hm(str) {
  var p = String(str).indexOf(":");
  var s1 = String(str).substring(0,p);
  var s2 = String(str).substring(p+1);
  return s1*secsperhour + s2*60;
}

function stringDate(str) { //formaat: dd-mm-yyyy
  var dd = 1;
  var mm = 0;
  var yy = 1970;
  //dag
  var i=String(str).indexOf('-');
  if (i>=0) {
    dd=String(str).substring(0,i);
    str=String(str).substring(i+1);
  }
  if ((dd<1)||(dd>31)) dd=1;
  //maand
  var i=String(str).indexOf('-');
  if (i>=0) {
    mm=String(str).substring(0,i)-1;
    str=String(str).substring(i+1);
  }
  if ((mm<0)||(mm>11)) mm=0;
  //jaar
  yy=str-0;
  if (yy<50) yy+=2000;
  if (yy<100) yy+=1900;
  //maak datum
  var d=new Date();
  d.setUTCHours(0,0,0,0);
  d.setUTCFullYear(yy,mm,dd);
  return d.getTime();
}

function bool2int(bool) {
  if (bool) return 1;
       else return 0;
}

function valutainteger(    value,decimals) {
  if (decimals==null) decimals=2;
  if (decimals<0) return (value/1000);
             else return (value/1000).toFixed(decimals);
}

function valutainteger1(    value) {
//  return (value/1000).toFixed(1);
  return valutainteger(value,1);
}

function valutainteger3(    value) {
//  return (value/1000).toFixed(3);
  return valutainteger(value,3);
}

function geointeger(    value) {
  return (value/1000000).toFixed(6);
}

function MaakUrenOptions(uur) {
  uur=Math.floor(uur);
  var s = "";
  for (u=0; u<24; u++) {
    if (u<10) s=s+'<option value="0'+u+'"';
         else s=s+'<option value="' +u+'"';
    if (u==uur) s=s+u+' selected';
    if (u<10) s=s+'>0'+u+'</option>';
         else s=s+'>' +u+'</option>';
  }
  return s;
}

function Maak15MinutenOptions(minuut) {
  var s = "";
  if ((minuut>52)||(minuut<= 7)) s=s+'<option value="00" selected>00</option>';
                            else s=s+'<option value="00">00</option>';
  if ((minuut> 7)&&(minuut<=22)) s=s+'<option value="15" selected>15</option>';
                            else s=s+'<option value="15">15</option>';
  if ((minuut>22)&&(minuut<=37)) s=s+'<option value="30" selected>30</option>';
                            else s=s+'<option value="30">30</option>';
  if ((minuut>37)&&(minuut<=52)) s=s+'<option value="45" selected>45</option>';
                            else s=s+'<option value="45">45</option>';
  return s;
}

function Maak5MinutenOptions(minuut) {
  var s = "";
  if ((minuut>57)||(minuut<= 2)) s=s+'<option value="00" selected>00</option>';
                            else s=s+'<option value="00">00</option>';
  if ((minuut> 2)&&(minuut<= 7)) s=s+'<option value="05" selected>05</option>';
                            else s=s+'<option value="05">05</option>';
  if ((minuut> 7)&&(minuut<=12)) s=s+'<option value="10" selected>10</option>';
                            else s=s+'<option value="10">10</option>';
  if ((minuut>12)&&(minuut<=17)) s=s+'<option value="15" selected>15</option>';
                            else s=s+'<option value="15">15</option>';
  if ((minuut>17)&&(minuut<=22)) s=s+'<option value="20" selected>20</option>';
                            else s=s+'<option value="20">20</option>';
  if ((minuut>22)&&(minuut<=27)) s=s+'<option value="25" selected>25</option>';
                            else s=s+'<option value="25">25</option>';
  if ((minuut>27)&&(minuut<=32)) s=s+'<option value="30" selected>30</option>';
                            else s=s+'<option value="30">30</option>';
  if ((minuut>32)&&(minuut<=37)) s=s+'<option value="35" selected>35</option>';
                            else s=s+'<option value="35">35</option>';
  if ((minuut>37)&&(minuut<=42)) s=s+'<option value="40" selected>40</option>';
                            else s=s+'<option value="40">40</option>';
  if ((minuut>42)&&(minuut<=47)) s=s+'<option value="45" selected>45</option>';
                            else s=s+'<option value="45">45</option>';
  if ((minuut>47)&&(minuut<=52)) s=s+'<option value="50" selected>50</option>';
                            else s=s+'<option value="50">50</option>';
  if ((minuut>52)&&(minuut<=57)) s=s+'<option value="55" selected>55</option>';
                            else s=s+'<option value="55">55</option>';
  return s;
}

function textedit(id,size,title,value,onchange,onkeypress,onfocus) {
  var s = '';
  if (id==null) id='';
  if (size==null) size='';
  if (title==null) title='';
  if (value==null) value='';
  if (onchange==null) onchange='';
  if (onkeypress==null) onkeypress='';
  if (onfocus==null) onfocus='';

  s+='<input type="text" id="'+id+'"';
  if (title!='') s+=' title="'+title+'"';
  if (size!='')  s+=' size="'+size+'"';
  if (value!='') s+=' value="'+value+'"';
  s+=ifstring(onchange!='',' onchange="'+onchange+'(event)"','')+
     ifstring(onkeypress!='',' onkeypress="'+onkeypress+'(event)"','')+
     ifstring(onfocus!='',' onfocus="'+onfocus+'()"','')+
     '>';

  return s;
}

function datumedit(dagspanid,inputid,imagetitle,onfocus,onkeypress,onclick,onchange,onzeroclick,zerotitle,ontodayclick,todaytitle) {
  var s = '';
  if (dagspanid==null) dagspanid='';
  if (inputid==null) inputid='';
  if (imagetitle==null) imagetitle='';
  if (onfocus==null) onfocus='';
  if (onkeypress==null) onkeypress='';
  if (onclick==null) onclick='';
  if (onchange==null) onchange='';
  if (onzeroclick==null) onzeroclick='';
  if (zerotitle==null) zerotitle='';
  if (ontodayclick==null) ontodayclick='';
  if (todaytitle==null) todaytitle='';

  if (dagspanid!='')
  s+='<span id="'+dagspanid+'"></span>&nbsp;';
  s+=textedit(inputid,10,'dd-mm-jjjj','',onchange,onkeypress,onfocus)+
//  s+='<input'+
//       ' size="10"'+
//       ' type="text"'+
//       ' id="'+inputid+'"'+
//       ' title="dd-mm-jjjj"'+
//       ifstring(onfocus!='',' onfocus="'+onfocus+'()"','')+
//       ifstring(onkeypress!='',' onkeypress="'+onkeypress+'(event)"','')+
//       ifstring(onchange!='',' onchange="'+onchange+'(event)"','')+
//     '>'+
     '<img'+
         ifstring(imagetitle!='',' title="'+imagetitle+'"','')+
         ' src="'+common_path+'img/Enter.gif"'+
         ' border="0"'+
         ' style="vertical-align: top"'+
         ifstring(onclick!='',' onclick="'+onclick+'()"','')+
     '>';
  if (onzeroclick!='')
  s+='<img'+
         ifstring(zerotitle!='',' title="'+zerotitle+'"','')+
         ' src="'+common_path+'img/Leeg.gif"'+
         ' border="0"'+
         ' style="vertical-align: top"'+
         ' onclick="'+onzeroclick+'()"'+
     '>';
  if (ontodayclick!='')
  s+='<img'+
         ifstring(todaytitle!='',' title="'+todaytitle+'"','')+
         ' src="'+common_path+'img/Is.gif"'+
         ' border="0"'+
         ' style="vertical-align: top"'+
         ' onclick="'+ontodayclick+'()"'+
     '>';

  return s;
}

/*
function datumedit(dagspanid,inputid,imagetitle,onfocus,onkeypress,onclick,onchange) {
  var s = '';
  if (dagspanid!='')
  s+='<span id="'+dagspanid+'"></span>&nbsp;';
  s+='<input'+
       ' size="10"'+
       ' type="text"'+
       ' id="'+inputid+'"'+
       ' title="dd-mm-jjjj"'+
       ifstring(onfocus!='',' onfocus="'+onfocus+'()"','')+
       ifstring(onkeypress!='',' onkeypress="'+onkeypress+'(event)"','')+
       ifstring(onchange!='',' onchange="'+onchange+'(event)"','')+
     '>'+
     '<img'+
         ifstring(imagetitle!='',' title="'+imagetitle+'"','')+
         ' src="./common/img/Enter.gif"'+
         ' border="0"'+
         ' style="vertical-align: top"'+
         ifstring(onclick!='',' onclick="'+onclick+'()"','')+
     '>';

  return s;
}
*/

/*
function veldlijstWaardeDefault(lijst,key,defaultwaarde) {
  var result=defaultwaarde;
  var s='';
  var ar=lijst.split("|");
  var ii = 0;
  for (var i=0; i<ar.length; i++) {
    s=ar[i];
    ii=s.indexOf('=');
    if (s.substring(0,ii)==key) result=s.substring(ii+1);
  }
  return result;
}
*/

function veldlijstWaardeDefault(lijst,key,defaultwaarde,keepgroup) {
  if (!keepgroup) keepgroup=false;
  var result=''+defaultwaarde;
  var s='';
  var ar=lijst.split("|");
  var ii = 0;
  for (var i=0; i<ar.length; i++) {
    s=ar[i];
    ii=s.indexOf('=');
    if (s.substring(0,ii)==key) result=s.substring(ii+1);
  }

  if (!keepgroup)
  if (result)
  if (result!='')
  if (result.indexOf('[')==0) {
    result=result.substring(1);
    ii=result.indexOf(']'); result=result.substring(ii+1);
  }

  return result;
}

function veldlijstWaarde(lijst,key) {
  return veldlijstWaardeDefault(lijst,key,key,false);
}

function assignValue(lijst,key) {
  return veldlijstWaardeDefault(lijst,key,'',true);
}

function veldlijstWaardelijst(lijst) {
  var result='';
  var s=s0=s1='';
  var ar=lijst.split("|");
  var ii = 0;
  for (var i=0; i<ar.length; i++) {
    s=ar[i];
    ii=s.indexOf('='); s0=s.substring(0,ii); s1=s.substring(ii+1);
    result+=s1+'<br>';
  }
  return result;
}

/*
function veldlijstSelectOnchange(lijst,id,waarde,onchange) {
  var result='<select id="'+id+'"';
  if (onchange!='') result+=' onchange="'+onchange+'"';
  result+='>';
  var s=s0=s1='';
  var ar=lijst.split("|");
  var ii = 0;
  for (var i=0; i<ar.length; i++) {
    s=ar[i];
    ii=s.indexOf('='); s0=s.substring(0,ii); s1=s.substring(ii+1);
    result+='<option value="'+s0+'"'+ifstring(waarde==s0,' selected','')+'>'+s1+'</option>';
  }
  result+='</select>';
  return result;
}
*/

function veldlijstSelectOnchange(lijst,id,waarde,onchange) {
  var result='<select id="'+id+'"';
  if (onchange!='') result+=' onchange="'+onchange+'"';
  result+='>';
  var s=s0=s1=s2=groupname='';
  var ar=lijst.split("|");
  var ii = 0;
  for (var i=0; i<ar.length; i++) {
    s=ar[i]; s2='';
    ii=s.indexOf('='); s0=s.substring(0,ii); s1=s.substring(ii+1);
    if (s1.indexOf('[')==0) {
      s1=s1.substring(1);
      ii=s1.indexOf(']'); s2=s1.substring(0,ii); s1=s1.substring(ii+1);
    }
    if (groupname!=s2) {
      if (groupname!='') result+='</optgroup>';
      groupname=s2;
      if (groupname!='') result+='<optgroup label="'+groupname+'">';
    }
    result+='<option value="'+s0+'"'+ifstring(waarde==s0,' selected','')+'>'+s1+'</option>';
  }
  if (groupname!='') result+='</optgroup>';
  result+='</select>';
  return result;
}

function veldlijstSelect(lijst,id,waarde) {
  return veldlijstSelectOnchange(lijst,id,waarde,'');
}

function veldlijstRadio(lijst,id,waarde,vertikaal) {
  if (vertikaal==null) vertikaal=false;
  var result='';
  var s=s0=s1='';
  var ar=lijst.split("|");
  var ii=0;
  for (var i=0; i<ar.length; i++) {
    s=ar[i];
    ii=s.indexOf('='); s0=s.substring(0,ii); s1=s.substring(ii+1);
    result+='<input type="radio" id="'+id+s0+'" name="'+id+'" onclick="'+id+'click('+s0+')"'+ifstring(waarde==s0,' checked','')+'><label for="'+id+s0+'">'+s1+'</label>'+ifstring(vertikaal,'<br>','&nbsp;&nbsp;');
  }
  return result;
}

function veldlijst_Count(lijst) {
  var ar = lijst.split('|');
  return ar.length;
}

function veldlijst_EersteKey(lijst) {
  var result='';
  var s='';
  var ar=lijst.split("|");
  var ii = 0;
  s=ar[0];
  ii=s.indexOf('=');
  result=s.substring(0,ii);
  return result;
}

function veldlijst_IndexName(lijst,index) {
  var value = "";
  var ar = lijst.split('|');
  var s = "";
  var p = -1;
  if ((index>=0)&&(index<ar.length)) {
    s=ar[index];
    p=s.indexOf('=');
    if (p!=-1) value=s.substring(0,p);
  }
  return value;
}

function veldlijst_IndexValue(lijst,index) {
  var value = "";
  var ar = lijst.split('|');
  var s = "";
  var p = -1;
  if ((index>=0)&&(index<ar.length)) {
    s=ar[index];
    p=s.indexOf('=');
    if (p!=-1) value=s.substring(p+1);
  }
  return value;
}

function captionCheck(caption,id,waarde,onclick,checkleft,includetd) {
  var result = '';
  if (!checkleft) {
    if (caption!='') result+='<label for="'+id+'">'+caption+'</label>';
    if (includetd)   result+='</td><td>'; else result+='&nbsp;';
  }
                     result+='<input type="checkbox" id="'+id+'" name="'+id+'"';
  if (onclick!='')   result+=' onclick="'+onclick+'"';
  if (waarde==1)     result+=' checked';
                     result+='>';
  if (checkleft) {
    if (includetd)   result+='</td><td>'; else result+='&nbsp;';
    if (caption!='') result+='<label for="'+id+'">'+caption+'</label>';
  }
  return result;
}

function gettablefield(tablename,idfieldname,datafieldname,id) {
  var s = '';
  if (id!='') {
    var xmlHttp_gettablefield=GetXmlHttpObject();
    if (xmlHttp_gettablefield==null) {
      alert ("Browser does not support HTTP Request");
      return s;
    }
    var url=common_path+"common_gettablefield.php";
    url+="?tbl="+tablename;
    url+="&idfld="+idfieldname;
    url+="&dtfld="+datafieldname;
    url+="&id="+id;
    url+="&owner="+common_owneridcode;
    url+="&sid="+Math.random();
//getid('txt').innerHTML+='<br>'+url;
    xmlHttp_gettablefield.open("GET",url,false);
    xmlHttp_gettablefield.send(null);
    if (xmlHttp_gettablefield.status==200) {
      s=xmlHttp_gettablefield.responseText;
//getid('txt').innerHTML+='<br>'+s;
    }
  }
  return s;
}

function gettablelistex(tablename,idfieldname,datafieldname,datafieldname2,orderby) {
//if (getid("txt")) getid("txt").innerHTML+="<br>gettablelistex";
  var s = '';
  var xmlHttp_gettablelist=GetXmlHttpObject();
  if (xmlHttp_gettablelist==null) {
    alert ("Browser does not support HTTP Request");
    return s;
  }
  var url=common_path+"common_gettablelist.php";
  url+="?tbl="+tablename;
  url+="&idfld="+idfieldname;
  url+="&dtfld="+datafieldname;
  url+="&dtfld2="+datafieldname2;
  url+="&orderby="+orderby;
  url+="&owner="+common_owneridcode;
  url+="&sid="+Math.random();
//if (getid("txt")) getid("txt").innerHTML+="<br>{"+url+"}";
  xmlHttp_gettablelist.open("GET",url,false);
  xmlHttp_gettablelist.send(null);
  if (xmlHttp_gettablelist.status==200) {
    s=xmlHttp_gettablelist.responseText;
//if (getid("txt")) getid("txt").innerHTML+='<br>'+s;
    s=decode_special(s);
  }
  return s;
}

function gettablelist(tablename,idfieldname,datafieldname) {
  return gettablelistex(tablename,idfieldname,datafieldname,'','');
}

function gettitlelijst() {
  return gettablelistex('title','titleid','title','','displayorder,title');
}

//function getcountrylijst() {
//  return gettablelistex('country','countryid','name','','displayorder,name');
//}

function getpagelijst() {
  return gettablelistex('page','pageid','name','','name');
}

function getpageitemlijst() {
  return gettablelistex('pageitem','pageitemid','name','','kind,name');
}

function getpageheaderlijst() {
  return gettablelistex('pageheader','pageheaderid','name','','kind,name');
}

function getpagemenulijst() {
  return gettablelistex('pagemenu','pagemenuid','name','','displayorder,name');
}

function getpageitemcontainerlijst() {
  return gettablelistex('pageitemcontainer','pageitemcontainerid','name','','kind,name');
}

function getscreengrouplijst() {
  return gettablelistex('screengroup','screengroupid','name','','displayorder,name');
}

function getvisiblegrouplijst() {
  return gettablelistex('visiblegroup','visiblegroupid','name','','displayorder,name');
}

function getvatlijst() {
  return gettablelistex('vat','vatid','name','','percentage desc,name');
}

function getprintformlijst() {
  return gettablelistex('printform','printformid','name','','name');
}

function getcountrylijst(visible) {
  if (visible==null) visible=1; //1=alleen zichtbaar
  var s = '';
  var xmlHttp_getcountrylijst=GetXmlHttpObject();
  if (xmlHttp_getcountrylijst==null) {
    alert ("Browser does not support HTTP Request");
    return s;
  }
  var url=common_path+"common_getcountrylijst.php";
  url+="?v="+visible;
  url+="&owner="+common_owneridcode;
  url+="&seed="+Math.random();
//getid("txt").innerHTML+="<br>{"+url+"}";
  xmlHttp_getcountrylijst.open("GET",url,false);
  xmlHttp_getcountrylijst.send(null);
  if (xmlHttp_getcountrylijst.status==200) {
    s=xmlHttp_getcountrylijst.responseText;
//getid("txt").innerHTML+="<br>"+s;
  }
  return s;
}

function getuserlijst() {
  var s = '';
  var xmlHttp_getuserlijst=GetXmlHttpObject();
  if (xmlHttp_getuserlijst==null) {
    alert ("Browser does not support HTTP Request");
    return s;
  }
  var url=common_path+"common_getuserlijst.php";
  url+="?owner="+common_owneridcode;
  url+="&sid="+Math.random();
//if (getid("txt")) getid("txt").innerHTML+="<br>{"+url+"}";
  xmlHttp_getuserlijst.open("GET",url,false);
  xmlHttp_getuserlijst.send(null);
  if (xmlHttp_getuserlijst.status==200) {
    s=xmlHttp_getuserlijst.responseText;
//if (getid("txt")) getid("txt").innerHTML+='<br>'+s;
    s=decode_special(s);
  }
  return s;
}

function getprinttemplatelijst(ext) {
//getid("txt").innerHTML+="<br>gettablelistex";
  var s = '';
  var xmlHttp_getprinttemplatelist=GetXmlHttpObject();
  if (xmlHttp_getprinttemplatelist==null) {
    alert ("Browser does not support HTTP Request");
    return s;
  }
  var url=common_path+"common_getprinttemplatelijst.php";
  url+="?ext="+ext;
  url+="&owner="+common_owneridcode;
  url+="&sid="+Math.random();
//getid("txt").innerHTML+="<br>{"+url+"}";
  xmlHttp_getprinttemplatelist.open("GET",url,false);
  xmlHttp_getprinttemplatelist.send(null);
  if (xmlHttp_getprinttemplatelist.status==200) {
    s=xmlHttp_getprinttemplatelist.responseText;
//getid("txt").innerHTML+='<br>'+s;
    s=decode_special(s);
  }
  return s;
}

function getusernamen(ids) {
  var s = '';
  if (ids!='') {
    var xmlHttp_getusernamen=GetXmlHttpObject();
    if (xmlHttp_getusernamen==null) {
      alert ("Browser does not support HTTP Request");
      return s;
    }
    var url=common_path+"common_getusernamen.php";
    url+="?ids="+ids;
    url+="&owner="+common_owneridcode;
    url+="&sid="+Math.random();
    xmlHttp_getusernamen.open("GET",url,false);
    xmlHttp_getusernamen.send(null);
    if (xmlHttp_getusernamen.status==200) s=xmlHttp_getusernamen.responseText;
  }
  return s;
}

function getbestandinhoud(filename,sourcedirectory) {
  if (sourcedirectory==null) sourcedirectory='';
  
  var xmlHttp_getbestandinhoud=GetXmlHttpObject();
  if (xmlHttp_getbestandinhoud==null) {
    alert ("Browser does not support HTTP Request");
    return;
  }
  var url=common_path+"common_bestandinhoud.php";
  url+="?sourcedirectory="+sourcedirectory;
  url+="&filename="+filename;
  url+="&owner="+common_owneridcode;
  url+="&sid="+Math.random();
//getid("txt").innerHTML+='<br>'+url;
  xmlHttp_getbestandinhoud.open("GET",url,false);
  xmlHttp_getbestandinhoud.send(null);
  if (xmlHttp_getbestandinhoud.status==200) s=xmlHttp_getbestandinhoud.responseText;
  return s;
}

function readdir(dir,ext) {
  var s = '';
  var xmlHttp_readdir=GetXmlHttpObject();
  if (xmlHttp_readdir==null) {
    alert ("Browser does not support HTTP Request");
    return;
  }
  var url=common_path+"common_readdir.php";
  url+="?dir="+'../'+dir;
  url+="&ext="+ext;
  url+="&sid="+Math.random();
//getid("txt").innerHTML="{"+url+"}";
  xmlHttp_readdir.open("GET",url,false);
  xmlHttp_readdir.send(null);
  if (xmlHttp_readdir.status==200) s=xmlHttp_readdir.responseText;
  return s;
}

function newid(table,tableid) {
  var s = '';
  var xmlHttp_newid=GetXmlHttpObject();
  if (xmlHttp_newid==null) {
    alert ("Browser does not support HTTP Request");
    return;
  }
  var url=common_path+"common_newid.php";
  url+="?uid="+currentuserid;
  url+="&table="+table;
  url+="&tableid="+tableid;
  url+="&owner="+common_owneridcode;
  url+="&sid="+Math.random();
//getid("txt").innerHTML="{"+url+"}";
  xmlHttp_newid.open("GET",url,false);
  xmlHttp_newid.send(null);
  if (xmlHttp_newid.status==200) s=xmlHttp_newid.responseText;
//getid("txt").innerHTML="<br>{"+url+"}"+s;
  return s;
}

function getpermission(uid) {
  var s = '';
  if (uid=='') return s;
  var xmlHttp_getpermission=GetXmlHttpObject();
  if (xmlHttp_getpermission==null) {
    alert ("Browser does not support HTTP Request");
    return s;
  }
  var url=common_path+"common_getpermission.php";
  url+="?uid="+uid;
  url+="&owner="+common_owneridcode;
  url+="&sid="+Math.random();
//getid("txt").innerHTML+="<br>{"+url+"}";
  xmlHttp_getpermission.open("GET",url,false);
  xmlHttp_getpermission.send(null);
  if (xmlHttp_getpermission.status==200) {
    s=xmlHttp_getpermission.responseText;
//getid("txt").innerHTML+="<br>"+s;
  }
  return s;
}

function executesql(sql) {
  var s = '';
  if (sql=='') return s;
  var xmlHttp_executesql=GetXmlHttpObject();
  if (xmlHttp_executesql==null) {
    alert ("Browser does not support HTTP Request");
    return s;
  }
  var url=common_path+"common_executesql.php";
  var data="sql="+encode_special(sql);
  data+="&owner="+common_owneridcode;
  data+="&sid="+Math.random();
//getid("txt").innerHTML+='<br>url='+url+'<br>data='+data;
  xmlHttp_executesql.open("POST",url,false);
  xmlHttp_executesql.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  xmlHttp_executesql.send(data);
  if (xmlHttp_executesql.status==200) {
    s=xmlHttp_executesql.responseText;
//getid("txt").innerHTML+='<br>'+s;
    var ar=s.split('|');
    s=ar[0];
//getid("txt").innerHTML+='<br>['+s+']';
  }
  return s;
}

var doallowenter = false;

function ignoreenter() {
  if ((!doallowenter)&&(window.event))
  if (window.event.keyCode==13) window.event.keyCode=0;
}

function allowenter() {
  doallowenter=true;
}

function disallowenter() {
  doallowenter=false;
}

var ElfproefLijst = '-2=|-1=ING/Postbank-rekening|0=<font color="#ff0000"><b>Fout in rekening-nummer</b></font>|1=rekening-nummer OK';

function elfproef(nr) {
  nr=String(nr);
  var result=0; //fout
  var a=nr.split('');
  if (a.length==0) result=-2; else //leeg
  if (a.length<=7) result=-1; //ING
  if (a.length==9) {
    nr='0'+String(nr);
    a=nr.split('');
  }
  if (a.length==10) {
    var t=0;
    for (var i=0; i<10; i++) t+=(a[i]-0)*(10-i);
    t%=11;
    if (t==0) result=1; //ok
  }
  return result;
}

function maaksendemailform() {
  var t='';
  t+='<form name="sendemailform" method="post">'+
     '<input type="hidden" name="sendemaildata">'+
     '</form>';
  return t;
}

