function Presentation(){
  var self=this;

  this.debug=false;

  this.tbClass=/\ *targetblank\ */;
  this.menuClass=/\ *menu\ */;
  
  this.onloadMethods=new Array();
  this.forms=new Array();
  this.targetBlanks=new Array();
  
  var langIndex=new Array();
  langIndex["cs"]=0;
  langIndex["en"]=1;
  
  this.body=document.getElementsByTagName("body")[0];
  this.html=document.getElementsByTagName("html")[0];
  
  if(this.html.lang){
    if(langIndex[this.html.lang]>=0)this.lang=langIndex[this.html.lang]; else{
      if(this.debug)alert("presentation.js\n\nWarning: unknown language, using default.");
      this.lang=0;
    }
  }else{
    if(this.debug)alert("presentation.js\n\nWarning: lang attribute missing, using default.");
    this.lang=0;
  }


  
 

  this.onloadMethods.push("self.manageLinks");
  this.onloadMethods.push("self.manageMenus");  
  
  window.presentation=this;
  window.onload=this.onload;
  


}




Presentation.prototype.onload=function(){
  var self=this.presentation;
  if(self.debug)self.onloadMethods.push("self.dbg");  
  for(var i=0;i<this.presentation.onloadMethods.length;i++)eval(this.presentation.onloadMethods[i])();
}




Presentation.prototype.manageLinks=function(){
  var self=this instanceof Presentation?this:this.presentation;
  var lnks=document.getElementsByTagName("a");
  for(var i=0;i<lnks.length;i++){
    if(self.tbClass.test(lnks[i].className)){
      // message
      lnks[i].title=["Odkaz "+lnks[i].href+" bude otevřen v novém okně","Link "+lnks[i].href+" will be open in new window"][self.lang];
      lnks[i].onclick=function(){return typeof(window.open(this.href))!="object";};
      self.targetBlanks.push(lnks[i].href);
    }
  }
}




Presentation.prototype.manageMenus=function(){
  var self=this instanceof Presentation?this:this.presentation;
  var uls=document.getElementsByTagName("ul");
  for(var i=0;i<uls.length;i++){
    if(self.menuClass.test(uls[i].className)){
      var lis=uls[i].getElementsByTagName("li");
      for(var j=0;j<lis.length;j++){
        if(lis.lastChild.nodeType==1 && lis.lastChild.tagName.toLowerCase()=="ul"){
          
        }
      }
    }
  }

}






Presentation.prototype.removeOnloadMethod=function(methodIndex){
  return this.onloadMethods.splice(methodIndex-1,1);
}





Presentation.prototype.addOnloadMethod=function(method){
  this.onloadMethods.push(method);
  return this.onloadMethods.length;
}





Presentation.prototype.dbg=function(){
  var self=this instanceof Presentation?this:this.presentation;
  
  var win=window.open("","prdebug","width=500,height=600,resizable=yes,scrollbars=auto");
  if(typeof(win)!="object"){alert("Cannot initialize window.");return false;}

  var omLength=self.onloadMethods.length;
  var html="<b>onloadMethods</b><br><br>";
  html+="<i>"+omLength+" method"+(omLength!=1?"s":"")+(omLength>0?":":"")+"</i><br>";
  
  for(var i=0;i<omLength;i++){
    html+=(i<10?" ":"")+(i+1)+"   "+self.onloadMethods[i]+"<br>";
  }
  
  
  var tbLength=self.targetBlanks.length;
  html+="<br><br><b>Links "+self.tbClass+"</b><br><br>";
  html+="<i>"+tbLength+" link"+(tbLength!=1?"s":"")+(tbLength>0?":":"")+"</i><br>";
  for(var i=0;i<tbLength;i++){
    html+=self.targetBlanks[i]+"\n";
  }

  win.document.open();
  win.document.write('<html><head><title>Presentation</title><style type="text/css">body{font-family:monospace;font-size:10pt;}</style></head><body>'+html+'</body></html>');
  win.document.close();
  win.focus();
  
  
}




