/* [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;



function menu_pokaz_div(name) {
	var menu=document.getElementById('lev_1');
	var li=menu.getElementsByTagName('li');
		for(var i=0; i<li.length; i++){
			id=li[i].getAttribute('id');
			id=id+'_sub';
			
			var submenu=document.getElementById(id);
			if(submenu) submenu.style.visibility="hidden";
		}
		div=document.getElementById(name);
		div.style.visibility="visible";
	console.log(div)
}
/* 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);

		li=menu.getElementsByTagName('li');
		for(var i=0; i<li.length; i++){
			a=li[i].getElementsByTagName('a');
			href=a[0].getAttribute('href');
			if(href.indexOf('?sort=none')==-1) a[0].setAttribute('href',href+'?sort=none');
		}

	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
		top += caller.offsetTop + 2;
		left += caller.offsetLeft + 2;
// 		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
		top -= 6;
		menu.style.left=left+"px";
		menu.style.top=top+"px";
		menu.style.paddingTop="6px";
	
		// 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
	
	if(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';
}

