/* [en] script written by Jakub Łukomski. please feel free to use and/or modify
 * it as long as you keep this header. thanks
 *
 * [pl] skrypt napisany przez Jakuba Łukomskiego można go używać i/lub
 * modyfikować pod warunkiem zachowania tego nagłówka. dzięki
 */
var IE6=Prototype.Browser.IE && parseInt(navigator.userAgent.substring(navigator.userAgent.indexOf("MSIE")+5))==6;
var IE7=Prototype.Browser.IE && !Prototype.Browser.IE6;

// opoznienie wysuwania menu
var delay=1;

var ns=navigator.appName=="Netscape";
var show_iterator,show_h,show_name;

/* funkcja służąca do ewentualnego przenoszenia, a
 * następnie wyświetlania (w przypadku ie rozpoczęcia
 * odsłaniania) menu
 */
function menu_pokaz(name1,caller,orient,nadmenu) {
	menu=document.getElementById(name1);
	if (nadmenu) {
		nadmenu=document.getElementById(nadmenu);
		nadmenu.style.visibility="visible";
	}

	// jeśli "caller", to dokonać pozycjonowania
	if(caller) {
	
		// obliczanie lewej i górnej krawędzi menu
		// najpierw względem obiektu wywołującego
		var top,left;
		switch(orient) {
			case "right":
				top=-1;
				left=caller.offsetWidth;
				break;
			case "bottom":
			default:
				top=caller.offsetHeight-1;
				left=0;
				break;
		}

		// a następnie uwzględnienie wszystkich obiektów
		// nadrzędnych
		while(caller) {
			if(caller.offsetTop) top += caller.offsetTop;
			if(caller.offsetLeft) left += caller.offsetLeft;
			caller=caller.offsetParent;
		}
	
		// zmiana współrzędnych jeśli lewa krawędź może znaleść
		// się poza ekranem
		if(left < document.body.scrollLeft)
			left=document.body.scrollLeft;
		else if(!ns && left + menu.offsetWidth > document.body.clientWidth)
			left = document.body.clientWidth - menu.offsetWidth;
		else if(ns && left + menu.offsetWidth > document.body.offsetWidth)
			left = document.body.offsetWidth - menu.offsetWidth;
	
		// przesuwanie menu
		menu.style.left=left+"px";
		menu.style.top=top+"px";
	
		// rozpoczęcie rozwijania
		if (show_name != name1) {
			show_name=name1;
			menu.style.clip="rect(0px "+menu.offsetWidth+"px 0px 0px)";
			show_h=0;
			clearInterval(show_iterator);
			show_iterator=setInterval('menu_odkryj("'+name1+'",10)',delay);
		}
	}
	// no i to na co czekaliśmy czyli samo pokazanie menu
	
	menu.style.visibility='visible';
	
}

function menu_utrzymaj(name1,nadmenu) {
	menu=document.getElementById(name1);
	if (nadmenu) {
		nadmenu=document.getElementById(nadmenu);
		nadmenu.style.visibility="visible";
	}
	menu.style.visibility='visible';
	if (!show_name)
		show_name=name1;
}

/* funkcja narazie tylko na potrzeby internet explorera,
 * dokonująca procesu stopniowego odkrywania menu (a właściwie
 * jednego kroku tego procesu
 */
function menu_odkryj(name1,step) {
	menu=document.getElementById(name1);
	
	// zasada jest prosta, po prostu zwiększamy obszar widoczności
	menu.style.clip="rect(0px "+menu.offsetWidth+"px "+show_h+"px 0px)";
	
	// a kiedy zwiększymy go maksymalnie - zatrzymujemy proces
	if (show_h>menu.offsetHeight)
		clearInterval(show_iterator);
	show_h+=step;
}

/* i ostatnia, najprostsza funkcja, ukrywająca menu
 */
function menu_ukryj(name1,nadmenu) {
	if (nadmenu) {
		nadmenu=document.getElementById(nadmenu);
		nadmenu.style.visibility="hidden";
	}
	menu=document.getElementById(name1);
	if(!nadmenu)
		show_name="";
	
	menu.style.visibility='hidden';
}
