function Presentation(id){
  var self=this;
  this.timers=new Array();
  this.menuFall=50;

  this.debug=false;

  this.tbClass=/\ *targetblank\ */;

  this.id=isUndefined(id)?0:id;
  this.page=null;
  
  this.onloadMethods=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[this.onloadMethods.length]="self.manageLinks";
 
  
  window.presentation=this;
  window.onload=this.onload;
  


}




Presentation.prototype.onload=function(){
  var self=this.presentation;
  if(self.debug)self.onloadMethods[self.onloadMethods.length]="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[self.targetBlanks.length]=lnks[i].href;
    }
  }
}






Presentation.prototype.removeOnloadMethod=function(methodIndex){
  return this.onloadMethods.splice(methodIndex-1,1);
}





Presentation.prototype.addOnloadMethod=function(method){
  this.onloadMethods[this.onloadMethods.length]=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=yes");
  if(typeof(win)!="object"){alert("Cannot initialize window.");return false;}

  var html="";
  
  
  html+="<b>id:</b> "+self.id+"<br>";
  html+="<b>lang:</b> "+self.lang+"<br>";
  html+="<b>timers:</b> Array("+self.timers.length+")<br>";
  html+="<b>menuFall:</b> "+self.menuFall+"<br><br>";
  html+="<b>page:</b><br>";
  html+="&nbsp;&nbsp;<b>id:</b> "+self.page.id+"<br>";
  html+="&nbsp;&nbsp;<b>template:</b> "+self.page.template+"<br>";
  html+="&nbsp;&nbsp;<b>name:</b> "+self.page.name+"<br>";
  html+="&nbsp;&nbsp;<b>parent:</b> "+self.page.parent+"<br>";
  html+="&nbsp;&nbsp;<b>parentName:</b> "+self.page.parentName+"<br>";
  html+="<br>&nbsp;&nbsp;<b>vars:</b><br>";
  for(var an in self.page.vars){
    if(typeof(self.page.vars[an])=="string")html+="&nbsp;&nbsp;&nbsp;&nbsp;<b>"+an+":</b> "+self.page.vars[an]+"<br>";
  }
  html+="<br>&nbsp;&nbsp;<b>parentVars:</b><br>";
  for(var an in self.page.parentVars){
    if(typeof(self.page.parentVars[an])=="string")html+="&nbsp;&nbsp;&nbsp;&nbsp;<b>"+an+":</b> "+self.page.parentVars[an]+"<br>";
  }
  
  
  
  
  
  var omLength=self.onloadMethods.length;
  html+="<br><br><br><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]+"<br>";
  }

  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();
  
  
}



function Page(id,template,vars,name,parent,parent_name,parent_vars){
  this.id=id;
  this.template=template;
  this.vars=vars;
  this.name=name;
  this.parent=parent;
  this.parentName=parent_name;
  this.parentVars=parent_vars;
}



function picWin(url,wi,he,title,winParams,closeTitle){

  wwi=wi;
  whe=he;
  if(wi>780)
  {
	  wwi=785;
	  wwi+=16;
	  winpars = ",scrollbars=yes"
  }
  if(he>500)
  {
	  whe=650;
	  wwi+=16;
	  winParams = ",scrollbars=yes"
  }

  var wL = (screen.width-wwi) / 2;
  var wT = (screen.height-whe) / 2;

  var win=window.open("","","width="+wwi+",height="+whe+",left="+wL+",top="+wT+(isUndefined(winParams)?"":(","+winParams)));
  if(typeof(win)!="object")return true;

  var cls=""
  var titl="";
  if(!isUndefined(closeTitle)){
    cls=closeTitle;
  }else{
    cls="Kliknutím zavřete okno";
  }
  if(!isUndefined(title))titl=title;

  var html='<html><head><title>'+titl+'</title><meta http-equiv="content-type" content="text/html; charset=iso-8859-2"></head><body style="margin:0"><img src="'+url+'" style="cursor:pointer;cursor:hand;display:block;" width="'+wi+'" height="'+he+'" onclick="window.close()" alt="" title="'+cls+'"></body></html>';

  win.document.open();
  win.document.write(html);
  win.document.close();
  win.focus();

  return false;
}




