var przyciski = new Array();
var KatalogIMG         = katalogGrafika+'menu/';
var KolorTlaAktywny    = '#FF4A4A';
var KolorAktywny       = '#FFFFFF';
var KolorTlaNieAktywny = '';
var KolorNieAktywny    = '#000000';

if (navigator.userAgent.toLowerCase().indexOf('msie')<0)
{
  var BorderNieAktywny   = '1px solid transparent';
  var BorderAktywny      = '1px solid #B70000';
} else
{
  var BorderNieAktywny   = '';								
  var BorderAktywny      = '';   
}
var Rozwiniete=null;
var OstatnioWMenu=null;
var OstatnioElement=null;
var timerID=0;							

var GloablID=0;
function NowyID() { return (++GloablID); }

function PozycjaX(o)
{
  var lewa = 0;
  if (o.offsetParent)
  {
    while (o.offsetParent)
    {
      lewa += o.offsetLeft
      o = o.offsetParent;
    }
  } else if (o.x) lewa += o.x;
  return lewa;
}

function PozycjaY(o)
{
  var gora = 0;
  if (o.offsetParent)
  {
    while (o.offsetParent)
    {
      gora += o.offsetTop
      o = o.offsetParent;
    }
  } else if (o.y) gora += o.y;
  return gora;
}

function TElementPodswietl()
{
	this.Rodzic.OdznaczWszystko();  
	 
   var n=document.getElementById('MenuElement_'+this.Id);
	
	if (this.Typ!=0) {
		n.firstChild.src=KatalogIMG+przyciski[this.Typ]+'_over.gif';
	}
	else {
   	n.style.backgroundColor=KolorTlaAktywny;
   	n.style.color=KolorAktywny;
   	n.style.border=BorderAktywny;
	}
}

function TElementOdswietl()
{
   var n=document.getElementById('MenuElement_'+this.Id);
 
   if (this.Typ!=0) {
		n.firstChild.src=KatalogIMG+przyciski[this.Typ]+'.gif';
	}
	else {
		n.style.backgroundColor=KolorTlaNieAktywny;
   	n.style.color=KolorNieAktywny;
   	n.style.border=BorderNieAktywny;
	}
}

function TElementAktywne()
{  
   var em=this.Rodzic;
   
   var n=document.getElementById('MenuElement_'+this.Id);	
    
   clearTimeout(timerID);

   if (Rozwiniete && em.Id!=Rozwiniete.Id) 
	{	   
   	Rozwiniete.ZamknijMenu();
   	
      Rozwiniete=em;
      if (!em.Stan)
		{
		   Menu.ZamknijWszystkieMenu();		
		   Menu.OdznaczWszystko();
      }
	}

   this.Podswietl();
 
   if (OstatnioWMenu && OstatnioWMenu.Id!=em.Id && em.Stan) 
	{
	   var m=Menu.ZnajdzElement(OstatnioElement);
	   if (m) m.Podswietl();
   }
   OstatnioElement=this.Id;
   OstatnioWMenu=em;

   if (this.Menu!=null)
   {
     Rozwiniete=this.Menu;
   
     var m=document.getElementById('Menu_'+this.Menu.Id);
     
     var x=PozycjaX(n);
     var y=PozycjaY(n);

     if (em.Typ==1)
     {
        x+=n.offsetWidth-15;
        y+=2;
	  } else
     {
        x+=12;
		  y+=n.offsetHeight;
	  }

     m.style.left=x+'px';
     m.style.top=y+'px';
     m.style.display="block";
   }     
}


function TElementNieAktywne()
{
   this.Odswietl(); 
   
   timerID  = setTimeout("Menu.ZamknijWszystkieMenu()", 500);         
}

function TElementPokaz(Typ,Klasa)
{
  if (this.Menu!=null && Typ==1)
  {
  		S='<a style="border: '+BorderNieAktywny+';"'+
  		' id="MenuElement_'+this.Id+'" href="'+this.Adres+'"'+
  		' class="'+Klasa+'Element"'+
  		' onmouseover="Menu.Aktywny('+this.Id+');" onmouseout="Menu.NieAktywny('+this.Id+');">'+
  		'<span style="position: relative; left: 0px;"><img src="'+KatalogIMG+'strzalka.gif" align="right" /></span>'+
		'<span style="position: relative; left: 3px;">'+this.Tytul+'</span></a>';
  }
  else if (this.Menu==null && Typ==1)
  {
  		S='<a style="border: '+BorderNieAktywny+';"'+
  		' id="MenuElement_'+this.Id+'" href="'+this.Adres+'"'+
  		' class="'+Klasa+'Element"'+
  		' onmouseover="Menu.Aktywny('+this.Id+');" onmouseout="Menu.NieAktywny('+this.Id+');">'+
		'<span style="position: relative; left: 3px;">'+this.Tytul+'</span></a>';
  }
  else
  {
		S='<a style="border: 0;"'+
  		' id="MenuElement_'+this.Id+'" href="'+this.Adres+'"'+
  		' class="'+Klasa+'Element"'+
  		' onmouseover="Menu.Aktywny('+this.Id+','+Typ+');" onmouseout="Menu.NieAktywny('+this.Id+','+Typ+');">'+
		'<img src="'+KatalogIMG+przyciski[this.Typ]+'.gif" /></a>';
  }
		  
  if (Typ==0) S=S+'&nbsp;&nbsp;';

  document.write(S);    
}

function TElement(tytul,adres,menu,typ)
{
  this.Id=NowyID();
  this.Tytul=tytul;
  this.Typ=typ;
  this.Adres=adres;
  this.Menu=menu;
  this.Rodzic=null;
  
  this.Aktywne=TElementAktywne;
  this.NieAktywne=TElementNieAktywne;
  this.Podswietl=TElementPodswietl;
  this.Odswietl=TElementOdswietl;
  this.Pokaz=TElementPokaz;
}

function TPodMenuZamknijMenu()
{
   var n=document.getElementById('Menu_'+this.Id);

   n.style.display="none";
   
   this.OdznaczWszystko();
	   
   Rozwiniete=null;
}

function TPodMenuDodajElement(e)
{
  e.Rodzic=this;
  this.Elementy.push(e);
}

function TPodMenuPokaz(x,y,z,disp)
{  
   document.write('<span id="Menu_'+this.Id+'" class="'+this.Klasa+'" style="top: '+y+'px; left: '+x+'px; z-index: '+z+';display: '+disp+'">');  
   for (var i=0;i<this.Elementy.length;i++)
   {
      var e=this.Elementy[i];   
      e.Pokaz(this.Typ,this.Klasa);      
	}
   document.write('</span>');
}

function TPodMenuZnajdzElement(id)
{
  for (var i=0;i<this.Elementy.length;i++)
     if (this.Elementy[i].Id==id) return this.Elementy[i];
  return null;
}

function TPodMenuOdznaczWszystko()
{
  for (var i=0;i<this.Elementy.length;i++)
     this.Elementy[i].Odswietl();
}

function TPodMenu(typ,klasa,stan)
{
   this.Id=NowyID();
   this.Typ=typ;
   this.Stan=stan;
   this.Klasa=klasa;
   this.Elementy=new Array();	
   
   this.DodajElement=TPodMenuDodajElement;
   this.ZnajdzElement=TPodMenuZnajdzElement;
   this.OdznaczWszystko=TPodMenuOdznaczWszystko;
   this.ZamknijMenu=TPodMenuZamknijMenu;
   this.Pokaz=TPodMenuPokaz;
}

function TMenuOdznaczWszystko()
{
  for (var i=0;i<Menu.Lista.length;i++)
     Menu.Lista[i].OdznaczWszystko();
}

function TMenuRejestruj(e)
{   
  this.Lista.push(e);
}

function TMenuZnajdzElement(id)
{
  for (var i=0;i<this.Lista.length;i++)
  {
     var el=this.Lista[i].ZnajdzElement(id);
     if (el!=null) return el;  
  }   
  return null; 
}

function TMenuNieAktywny(id)
{
   this.ZnajdzElement(id).NieAktywne();								    
}


function TMenuAktywny(id,typ)
{
   this.ZnajdzElement(id).Aktywne();								    
}

function TMenuZamknijWszystkieMenu()
{
  for (var i=0;i<this.Lista.length;i++)
  {
     if (this.Lista[i].Stan) 
	    this.Lista[i].ZamknijMenu();      
  }  
  this.OdznaczWszystko();
}

function TMenu()
{
   this.Lista=new Array();
   
   this.Rejestruj=TMenuRejestruj;
   
	this.ZnajdzElement=TMenuZnajdzElement;
	this.OdznaczWszystko=TMenuOdznaczWszystko;

	this.ZamknijWszystkieMenu=TMenuZamknijWszystkieMenu;
	
	this.Aktywny=TMenuAktywny;
	this.NieAktywny=TMenuNieAktywny;
}

Menu = new TMenu();