var Pagetab_overzichtindex = -1;
var Pagetab_bewerkindex    = -1;
var Pagetab_afdrukkenindex = -1;
var Pagetab_kolommenindex  = -1;

var pagetab = new Pagetabarray('pagetab','Pagetab_','Pagetab_');

//---------------------------------------------------------------------- Pagetab

function Pagetab(title,contentvooraf,contentmaak,contentververs,contentachteraf,kalenderdatumklik) {
  this.title=title;
  this.contentvooraf=contentvooraf;
  this.contentmaak=contentmaak;
  this.contentververs=contentververs;
  this.contentachteraf=contentachteraf;
  this.kalenderdatumklik=kalenderdatumklik;
  this.visible=true;
  this.enabled=true;
  this.special=false;
  this.tag=0; //for user defined data, is not used in Pagetab-functions

  this.tabwidth=0;

  this.basic=false;

  this.stylesheet=null;
  this.rules=null;
}
Pagetab.prototype.specialstring=function() {
  if (this.special) return 'Special'; else return '';
}

//----------------------------------------------------------------- Pagetabarray

function Pagetabarray(name,idprefix,classprefix) {
  this.name=name; //must be identical to the name of the instance
  this.idprefix=idprefix; //must be unique when multiple pagetabarrays are in use on the same html-page
  this.classprefix=classprefix; //determines appearance through the class of the html-element
  this.array = new Array(); //array of Pagetab
  this.index=-1; //index of current front tab
}
Pagetabarray.prototype.length=function() {
  return this.array.length;
}
Pagetabarray.prototype.indexof=function(title) {
  var idx=-1;
  for (var i=0; i<this.array.length; i++)
  if (this.array[i].title==title) idx=i;
  return idx;
}
Pagetabarray.prototype.maak=function() {
  var t='';

  t+='<div class="'+this.classprefix+'tabdiv" id="'+this.idprefix+'tabdiv"></div>'+
     '<div class="'+this.classprefix+'contentdiv" id="'+this.idprefix+'contentdiv"></div>';
  return t;
}
Pagetabarray.prototype.updatestylesheet=function() {
  //activate appropriate stylesheet
  if (getid(this.classprefix+'stylesheet_basic')) getid(this.classprefix+'stylesheet_basic').disabled=(!(this.basic));
  if (getid(this.classprefix+'stylesheet')) getid(this.classprefix+'stylesheet').disabled=(this.basic);

  if (this.stylesheet==null) {
    if (this.basic) var id=getid(this.classprefix+'stylesheet_basic');
               else var id=getid(this.classprefix+'stylesheet');
    var href=id.href;
    for (var i=0; i<document.styleSheets.length; i++)
    if (document.styleSheets[i].href==href) { this.stylesheet=document.styleSheets[i]; break; }
  }
  if (this.rules==null) {
    this.rules=this.stylesheet.cssRules?this.stylesheet.cssRules:this.stylesheet.rules;
  }
}
Pagetabarray.prototype.tabclick=function(idx) {
  var oidx=this.index;
  if (oidx!=idx) this.contentachteraf();
  this.index=idx;
  if (oidx!=idx) this.contentvooraf();
  this.ververs();
}
Pagetabarray.prototype.mouseover=function(idx) {
  this.updatestylesheet();
  var oidx=this.index;
//getid('txt').innerHTML+='<br>over '+idx;

  var ar=s='';
  if (this.rules)
  for (var i=0; i<this.rules.length; i++) {
    s=this.rules[i];
    //left
    if (s.selectorText.indexOf('tabItem'+this.array[idx].specialstring()+'_left:hover')!=-1) {
      ar=s.style.cssText.split(';');
//getid('txt').innerHTML+='<br>left '+idx+' '+ar.length;
      for (var ii=0; ii<ar.length; ii++) {
//getid('txt').innerHTML+='<br>left '+idx+' '+ii+' ['+ar[ii]+']';
        if ((ar[ii].trim().indexOf('background-image:')==0)||
            (ar[ii].trim().indexOf('BACKGROUND-IMAGE:')==0)) //check uppercase too for IE
//{
//getid('txt').innerHTML+='<br>left id='+this.idprefix+'tabItem'+idx+'_left';
//getid('txt').innerHTML+='<br>left '+idx+' id='+getid(this.idprefix+'tabItem'+idx+'_left').id;
//getid('txt').innerHTML+='<br>left '+idx+' bi='+getid(this.idprefix+'tabItem'+idx+'_left').style.backgroundImage;
//getid('txt').innerHTML+='<br>left '+idx+' '+ii+' ['+ar[ii].substring(ar[ii].indexOf(':')+1)+']';
        getid(this.idprefix+'tabItem'+idx+'_left').style.backgroundImage=ar[ii].substring(ar[ii].indexOf(':')+1);
//getid('txt').innerHTML+='<br>left '+idx+' nw='+getid(this.idprefix+'tabItem'+idx+'_left').style.backgroundImage;
//}
        if ((ar[ii].trim().indexOf('color:')==0)||
            (ar[ii].trim().indexOf('COLOR:')==0)) //check uppercase too for IE
        getid(this.idprefix+'tabItem'+idx+'_left').style.color=ar[ii].substring(ar[ii].indexOf(':')+1);
      }
    }
    //main
    if (s.selectorText.indexOf('tabItem'+this.array[idx].specialstring()+'_main:hover')!=-1) {
      ar=s.style.cssText.split(';');
      for (var ii=0; ii<ar.length; ii++) {
        if ((ar[ii].trim().indexOf('background-image:')==0)||
            (ar[ii].trim().indexOf('BACKGROUND-IMAGE:')==0)) //check uppercase too for IE
        getid(this.idprefix+'tabItem'+idx+'_main').style.backgroundImage=ar[ii].substring(ar[ii].indexOf(':')+1);
        if ((ar[ii].trim().indexOf('color:')==0)||
            (ar[ii].trim().indexOf('COLOR:')==0)) //check uppercase too for IE
        getid(this.idprefix+'tabItem'+idx+'_main').style.color=ar[ii].substring(ar[ii].indexOf(':')+1);
      }
    }
    //right
    if (s.selectorText.indexOf('tabItem'+this.array[idx].specialstring()+'_right:hover')!=-1) {
      ar=s.style.cssText.split(';');
      for (var ii=0; ii<ar.length; ii++) {
        if ((ar[ii].trim().indexOf('background-image:')==0)||
            (ar[ii].trim().indexOf('BACKGROUND-IMAGE:')==0)) //check uppercase too for IE
        getid(this.idprefix+'tabItem'+idx+'_right').style.backgroundImage=ar[ii].substring(ar[ii].indexOf(':')+1);
        if ((ar[ii].trim().indexOf('color:')==0)||
            (ar[ii].trim().indexOf('COLOR:')==0)) //check uppercase too for IE
        getid(this.idprefix+'tabItem'+idx+'_right').style.color=ar[ii].substring(ar[ii].indexOf(':')+1);
      }
    }
  }
}
Pagetabarray.prototype.mouseout=function(idx) {
  this.updatestylesheet();
  var oidx=this.index;

  var ar=s='';
  if (this.rules)
  for (var i=0; i<this.rules.length; i++) {
    s=this.rules[i];
    //left
    if (s.selectorText.indexOf('tabItem'+this.array[idx].specialstring()+'_left')!=-1)
    if (s.selectorText.indexOf('tabItem'+this.array[idx].specialstring()+'_left:hover')==-1) {
      ar=s.style.cssText.split(';');
      for (var ii=0; ii<ar.length; ii++) {
        if ((ar[ii].trim().indexOf('background-image:')==0)||
            (ar[ii].trim().indexOf('BACKGROUND-IMAGE:')==0)) //check uppercase too for IE
        getid(this.idprefix+'tabItem'+idx+'_left').style.backgroundImage=ar[ii].substring(ar[ii].indexOf(':')+1);
        if ((ar[ii].trim().indexOf('color:')==0)||
            (ar[ii].trim().indexOf('COLOR:')==0)) //check uppercase too for IE
        getid(this.idprefix+'tabItem'+idx+'_left').style.color=ar[ii].substring(ar[ii].indexOf(':')+1);
      }
    }
    //main
    if (s.selectorText.indexOf('tabItem'+this.array[idx].specialstring()+'_main')!=-1)
    if (s.selectorText.indexOf('tabItem'+this.array[idx].specialstring()+'_main:hover')==-1) {
      ar=s.style.cssText.split(';');
      for (var ii=0; ii<ar.length; ii++) {
        if ((ar[ii].trim().indexOf('background-image:')==0)||
            (ar[ii].trim().indexOf('BACKGROUND-IMAGE:')==0)) //check uppercase too for IE
        getid(this.idprefix+'tabItem'+idx+'_main').style.backgroundImage=ar[ii].substring(ar[ii].indexOf(':')+1);
        if ((ar[ii].trim().indexOf('color:')==0)||
            (ar[ii].trim().indexOf('COLOR:')==0)) //check uppercase too for IE
        getid(this.idprefix+'tabItem'+idx+'_main').style.color=ar[ii].substring(ar[ii].indexOf(':')+1);
      }
    }
    //right
    if (s.selectorText.indexOf('tabItem'+this.array[idx].specialstring()+'_right')!=-1)
    if (s.selectorText.indexOf('tabItem'+this.array[idx].specialstring()+'_right:hover')==-1) {
      ar=s.style.cssText.split(';');
      for (var ii=0; ii<ar.length; ii++) {
        if ((ar[ii].trim().indexOf('background-image:')==0)||
            (ar[ii].trim().indexOf('BACKGROUND-IMAGE:')==0)) //check uppercase too for IE
        getid(this.idprefix+'tabItem'+idx+'_right').style.backgroundImage=ar[ii].substring(ar[ii].indexOf(':')+1);
        if ((ar[ii].trim().indexOf('color:')==0)||
            (ar[ii].trim().indexOf('COLOR:')==0)) //check uppercase too for IE
        getid(this.idprefix+'tabItem'+idx+'_right').style.color=ar[ii].substring(ar[ii].indexOf(':')+1);
      }
    }
  }
}
Pagetabarray.prototype.tabververs=function() {
  var t=tw='';

  t ='<ul class="'+this.classprefix+'ul">';
  if (this.basic) {
    for (var i=0; i<this.array.length; i++)
    if (this.array[i].visible) {
      if (this.array[i].tabwidth==0) tw=''; else tw=' style="width:'+this.array[i].tabwidth+'px;"';
      if (!this.array[i].enabled)
        t+='<li class="tabGrey'+this.array[i].specialstring()+'"'+tw+'>'+this.array[i].title+'</li>';
      else
        if (i==this.index)
        t+='<li class="tabFront'+this.array[i].specialstring()+'"'+tw+'>'+this.array[i].title+'</li>';
        else
        t+='<li class="tabItem'+this.array[i].specialstring()+'"'+tw+' onclick="'+this.name+'.tabclick('+i+')">'+this.array[i].title+'</li>';
    }
  } else {
    for (var i=0; i<this.array.length; i++)
    if (this.array[i].visible) {
      if (this.array[i].tabwidth==0) tw=''; else tw=' style="width:'+this.array[i].tabwidth+'px;"';
      if (!this.array[i].enabled)
        t+='<li class="tabGrey'+this.array[i].specialstring()+'_left"></li>'+
           '<li class="tabGrey'+this.array[i].specialstring()+'_main"'+tw+'>'+this.array[i].title+'</li>'+
           '<li class="tabGrey'+this.array[i].specialstring()+'_right"></li>';
      else
        if (i==this.index)
        t+='<li class="tabFront'+this.array[i].specialstring()+'_left"></li>'+
           '<li class="tabFront'+this.array[i].specialstring()+'_main"'+tw+'>'+this.array[i].title+'</li>'+
           '<li class="tabFront'+this.array[i].specialstring()+'_right"></li>';
        else
        t+='<li class="tabItem'+this.array[i].specialstring()+'_left" id="'+this.idprefix+'tabItem'+i+'_left" onclick="'+this.name+'.tabclick('+i+')" onmouseover="'+this.name+'.mouseover('+i+')" onmouseout="'+this.name+'.mouseout('+i+')"></li>'+
           '<li class="tabItem'+this.array[i].specialstring()+'_main" id="'+this.idprefix+'tabItem'+i+'_main"'+tw+' onclick="'+this.name+'.tabclick('+i+')" onmouseover="'+this.name+'.mouseover('+i+')" onmouseout="'+this.name+'.mouseout('+i+')">'+this.array[i].title+'</li>'+
           '<li class="tabItem'+this.array[i].specialstring()+'_right" id="'+this.idprefix+'tabItem'+i+'_right" onclick="'+this.name+'.tabclick('+i+')" onmouseover="'+this.name+'.mouseover('+i+')" onmouseout="'+this.name+'.mouseout('+i+')"></li>';
      }
  }
  t+='</ul>';
  if (getid(this.idprefix+'tabdiv'))
  getid(this.idprefix+'tabdiv').innerHTML=t;
}
Pagetabarray.prototype.contentvooraf=function() {
  var t=this.array[this.index].contentvooraf;
  if (t!='') t=eval(t+'()');
}
Pagetabarray.prototype.contentmaak=function() {
  var t=this.array[this.index].contentmaak;
  if (t!='') t=eval(t+'()');
  if (getid(this.idprefix+'contentdiv'))
  getid(this.idprefix+'contentdiv').innerHTML=t;

  this.contentververs();
}
Pagetabarray.prototype.contentververs=function() {
  var t=this.array[this.index].contentververs;
  if (t!='') eval(t+'()');
}
Pagetabarray.prototype.contentachteraf=function() {
  var t=this.array[this.index].contentachteraf;
  if (t!='') t=eval(t+'()');
}
Pagetabarray.prototype.kalenderdatumklik=function(dat) {
  var t=this.array[this.index].kalenderdatumklik;
  if (t!='') t=eval(t+'('+dat+')');
}
Pagetabarray.prototype.ververs=function() {
  this.tabververs();
  this.contentmaak();
}
Pagetabarray.prototype.add=function(title,contentvooraf,contentmaak,contentververs,contentachteraf,kalenderdatumklik) {
  var idx=this.array.length;
  this.array[idx]=new Pagetab(title,contentvooraf,contentmaak,contentververs,contentachteraf,kalenderdatumklik);
  return idx;
}
Pagetabarray.prototype.addtab=function(pagetabobject) {
  var idx=this.array.length;
  this.array[idx]=pagetabobject;
  return idx;
}
Pagetabarray.prototype.gettitle=function(index) {
  if ((index>=0)&&(index<this.array.length)) return this.array[index].title;
                                        else return '';
}
Pagetabarray.prototype.settitle=function(index,title) {
  if ((index>=0)&&(index<this.array.length))
  this.array[index].title=title;
}
Pagetabarray.prototype.getvisible=function(index) {
  if ((index>=0)&&(index<this.array.length)) return this.array[index].visible;
                                        else return false;
}
Pagetabarray.prototype.setvisible=function(index,visible) {
  if ((index>=0)&&(index<this.array.length))
  this.array[index].visible=visible;
}
Pagetabarray.prototype.getenabled=function(index) {
  if ((index>=0)&&(index<this.array.length)) return this.array[index].enabled;
                                        else return false;
}
Pagetabarray.prototype.setenabled=function(index,enabled) {
  if ((index>=0)&&(index<this.array.length))
  this.array[index].enabled=enabled;
}
Pagetabarray.prototype.settabwidth=function(index,tabwidth) {
  if ((index>=0)&&(index<this.array.length))
  this.array[index].tabwidth=tabwidth;
}
Pagetabarray.prototype.gettag=function(index) {
  if ((index>=0)&&(index<this.array.length)) return this.array[index].tag;
                                        else return 0;
}
Pagetabarray.prototype.settag=function(index,tag) {
  if ((index>=0)&&(index<this.array.length))
  this.array[index].tag=tag;
}

