function addMenuItem(par,child,animObr)
{
  this.items[this.items.length] = par;
  this.childs[this.childs.length] = child;
  this.anims[this.anims.length] = animObr;
}

function Menu(x,id,anim)
{
  this.items = new Array();
  this.childs = new Array();
  this.anims = new Array();
  this.x = (typeof(x)=="number") ? x : 10;
  this.id = id;
  this.IsAnim = (anim==1) ? 1 : 0;
  this.addMenuItem = addMenuItem;
}

function Strom_posun(node,id,kolik)
{
var i;

  for (i = id; i < (node.pocet); i++) node.layers[i].moveBy(node.layers[i].left,kolik);
  node.clip.bottom+=kolik;
  if (node.uroven != 0) 
  {
     node=node.parentLayer;
     node.clip.bottom+=kolik;
     Strom_posun(node.parentLayer,node.cislo+1,kolik);
  }
}


function Strom_sbal(node)
{
var i;
var top=0;
  for (i = 0; i < (node.pocet); i++)
  {
    if (node.layers[i].podmenu) Strom_sbal(node.layers[i].layers[0]);
    node.layers[i].moveTo(node.layers[i].left,top);
    node.layers[i].clip.bottom=node.layers[i].vyska;
    top+=node.layers[i].vyska;
  }
  node.clip.bottom=node.vyskamin;
}

function Strom_onClick(evnt)
{
var i,vys;
var retval=routeEvent(evnt);

  if (retval == "undefined") UkazMenu(this,this.uroven);
  return true;
}

function Vysvit(imgName,layer,anim)
{
  ref= ie ? document.images : eval(layer+'.document.images');
  if (ref)
     if(ref[imgName]) ref[imgName].src = eval(anim+'on.src');
}

function Zhasni(imgName,layer,anim)
{
  ref= ie ? document.images : eval(layer+'.document.images');
  if (ref)
     if(ref[imgName]) ref[imgName].src = eval(anim+'off.src');
}


function UkazMenu(node, uroven){
var i,vys,hid;
var podm = (ie) ? ((node == '') ? 0 : 1) : node.podmenu;
 if (aktur>=uroven)
  {
    i=aktur;
    while (i>=uroven && node!=pole[i] && pole[i]!='')
    {
       if (!ie)
       {
	   pole[i].layers[0].visibility ="hide";
           vys=pole[i].layers[0].vyskamin;
	   pole[i].clip.bottom-=vys;
	   Strom_posun(pole[i].parentLayer,pole[i].cislo+1,vys*-1);
       } else document.all.item(pole[i]).style.display = "none";
       pole[i]="";
       i-=1;
    }
  }
  if (podm)
  {
     hid = (ie) ? ((document.all.item(node).style.display == 'none') ? 1 : 0) : ((node.layers[0].visibility == 'hide') ? 1 : 0);

     if (hid)
     {
 	pole[uroven]=node;
	if (!ie)
	{
  	   node.layers[0].visibility ="show";
           vys=node.layers[0].vyskamin;
	} else document.all.item(node).style.display = "";
     }
     else
     {
 	pole[uroven]='';
	if (!ie)
	{
	   node.layers[0].visibility ="hide";
           vys=(node.layers[0].vyskamin)*-1;
	} else document.all.item(node).style.display = "none";
     }
     aktur=uroven;
     if (!ie)
     {
        Strom_posun(node.parentLayer,node.cislo+1,vys);
        node.clip.bottom += vys;
     }
  } else aktur=uroven-1;
}

function Strom(param)
{
  anOn = new Array();
  anOff = new Array();
  aktur=0;
  pole=new Array();
  imgScript='<SCRIPT LANGUAGE="JavaScript">\n<!--\n';
  ie = document.all ? 1:0;
  param.id = (param.id == '' || typeof(param.id=="undefined")) ? 'Menu' : param.id;
  document.open('text/html');
  Strom_podmenu(param,0,0,'document');
  imgScript+='//-->\n</SCRIPT>';
  document.writeln(imgScript);
  document.close();
  if (!ie) 
  {
     Strom_sbal(document.layers[param.id]);
     document.layers[param.id].visibility="show";
  } else document.all.item(param.id).style.display='';
}


function Strom_podmenu(param,ur,y,layer)
{
var i, text;
var vys_this=0;
var vys_child=0;
var top=0;
var newlayer='';
var items = eval(param.items);
var childs = eval(param.childs);
var anims = eval(param.anims);
var id = param.id;

  layer+='.'+id;
  pomtxt= (ur==0) ? ' ' : ' TOP='+y+' LEFT='+param.x;
  text = ie ? '<DIV ID='+id+' STYLE="display:none;  margin-left:'+param.x+'px">' : '<LAYER ID='+id+pomtxt+' VISIBILITY=HIDE>';
  document.writeln(text);
  if (ur>0) id += '_';
  for (i=0; i<items.length; i++)
  {

     par = (typeof(childs[i]) == "object") ?  "'"+id+i+"',"+(ur+1) : "'',"+(ur+1);
     text = ie ? '<DIV onClick="UkazMenu('+par+'); event.cancelBubble=true"' : '<LAYER TOP='+top;
     anObr = (typeof(param.anims[i]) == "string" && param.anims[i] != '') ? 1 : 0;
     if (param.IsAnim && anObr)
     {
        textI=param.items[i];
        textIUp=textI.toUpperCase();
        pos_i=textIUp.indexOf('IMG');
        pos_s=textIUp.indexOf('SRC');
        if (pos_i != -1)
        {
          textSRC=textI.substring(pos_i,textI.length)
          textIMG=textSRC.substring(textSRC.indexOf('"')+1,textSRC.indexOf('"',textSRC.indexOf('"')+1));
          name= 'IMG_'+id+i;
          items[i]=textI.substring(0,pos_s-1)+' NAME="'+name+'" '+textI.substring(pos_s,textI.length);
          j=0;
          pocAn=anOn.length;
          while ((anOn[j] != textIMG || anOff[j] != param.anims[i]) && j<pocAn) j+=1;
          animText='anim'+j;
          if (j == pocAn)
          {
             anOn[j]=textIMG;
             anOff[j]=param.anims[i];
             imgScript+=animText+'off = new Image();\n';
             imgScript+=animText+'off.src = "'+textIMG+'";\n';
             imgScript+=animText+'on = new Image();\n';
             imgScript+=animText+'on.src = "'+param.anims[i]+'";\n';
          }
  	    text+=' onMouseOver="Vysvit(&#39'+name+'&#39,';
          text+="'"+layer+".layers["+i+"]','"+animText+"'";
 	    text+=')" onMouseOut="Zhasni(&#39'+name+'&#39,';
          text+="'"+layer+".layers["+i+"]','"+animText+"')";
          text+= '"';
        }
     }
     text+='>';
     document.writeln(text);
     document.writeln(items[i]+'<BR>');
     if (!ie)
     {
	vys_this+=eval(layer+'.layers['+i+'].document.height');
	eval(layer+'.layers['+i+'].captureEvents(Event.CLICK)');
	eval(layer+'.layers['+i+'].onclick=Strom_onClick');
	eval(layer+'.layers['+i+'].podmenu=0');
	eval(layer+'.layers['+i+'].uroven='+(ur+1));
	eval(layer+'.layers['+i+'].podmID="'+id+i+'"');
	eval(layer+'.layers['+i+'].cislo='+i);
	eval(layer+'.layers['+i+'].vyska='+(eval(layer+'.layers['+i+'].document.height')));
     }
     if (typeof(childs[i]) == 'object')
     {
	childs[i].id = (childs[i].id == '' || typeof(childs[i].id) == 'undefined') ? id+i : childs[i].id;
	if (!ie)
	{
	   newlayer=layer+'.layers['+i+']';
	   nexty = eval(newlayer+'.document.height');
	   eval(newlayer+'.podmenu=1');
	   newlayer+='.layers';
	} else nexty=0;
	vys_child+=Strom_podmenu(childs[i],ur+1,nexty,newlayer);
     }
     top = vys_this + vys_child;
     text = ie ? '</DIV>' : '</LAYER>';
     document.writeln(text);
  }
  text = ie ? '</DIV>' : '</LAYER>'   
  document.writeln(text);
  if (!ie)
  {
     eval(layer+'.pocet='+i);
     eval(layer+'.vyskamax='+top);
     eval(layer+'.vyskamin='+vys_this);
     eval(layer+'.uroven='+ur);
  }
  return (top);	
}
