<!--//
//*****************************************************************************//
// Copyright 2002 by Grzegorz Zieba Axel - gzaxel@poczta.onet.pl
//
// Shin General Library JS
//
// Biblioteka JavaScript udostepniajaca kilka funkcji dzialajacych podobnie 
// niezaleznie od uzywanej przegladarki internetowej.
//*****
// Testowano na IE5.5, NN7, Mozilla1.0, Opera6.03 i NN4.
// Stu procentowe przystosowanie uzyskano w IE5+, NN6+, Mozilla1+(/5.0+),
// w Opera6.03 nie dziala funkcja writeHTML oraz alpha, NN4 jest w
// ogole nie przystosowany do obslugi tej biblioteki.
//
// Wersja 0.5
// Aktualizacje:
//	12-02-2006 - nowa funkcja GetElementPosition
//	18-10-2002 - usuniety blad rozpoznawania przegladarek IE5.5, NN7
//	15-08-2002 - nowe funkcje (dodano divElement), zmienne, poprawione 
//		     alpha (wersja 0.3)
//	14-08-2002 - powstanie biblioteki (wersje: 0.1 oraz 0.2)
//*****************************************************************************//


//*****************************************************************************//
// Incjacja zmiennych.
// Based on Xmenu from WebFX & Alladyn
//*****************************************************************************//
var doc=document;
var ua = navigator.userAgent;

var opera = /opera [56789]|opera\/[56789]/i.test(ua);	//Opera true or false
var ie = !opera && /MSIE/.test(ua);			//Internet Explorer true or false
var ie50 = ie && /MSIE 5\.[012345]/.test(ua);		//Internet Explorer 5.x true or false
var ie6 = ie && /MSIE [6789]/.test(ua);			//Internet Explorer >= 6.0 true or false
var moz = !opera && /gecko/i.test(ua);			//Mozilla true or false
var nn6 = !opera && /netscape.*[67]\./i.test(ua);	//Nescape Navigator >= 6.0 true or false
var nn4 = doc.layers;					//Nescape Navigator <= 4.x true or false
var up5 = doc.getElementById?doc.getElementsByTagName('div'):0; //Standard 5+ true or false


//*****************************************************************************//
// Najwazniejsza funkcja wewnetrzna. Umozliwiajaca korzystanie z warstw
// w podobny sposob na roznych przegladarkach.
//*****************************************************************************//
function divElement(w){
	return doc.getElementById(w);
}


//*****************************************************************************//
// Funkcja podaje pozycje x,y danego elementu offset (left, top)
//*****************************************************************************//
function getElementPosition(elemID){
	var offsetLeft=0;
 	var offsetTop=0;
	var offsetTrail=divElement(elemID);
 	while(offsetTrail){
  		offsetLeft+=offsetTrail.offsetLeft;
 		offsetTop+=offsetTrail.offsetTop;
  		offsetTrail=offsetTrail.offsetParent;
 	}
 	if(navigator.userAgent.indexOf('Mac')!=-1&&typeof doc.body.leftMargin!='undefined'){
  		offsetLeft+=doc.body.leftMargin;
  		offsetTop+=doc.body.topMargin;
 	}
 	return{left:offsetLeft,top:offsetTop};
}


//*****************************************************************************//
// Funkcja ukrywajaca dana warstwe. Wywolanie: ukryj(nazwa_warstwy)
//*****************************************************************************//
function ukryj(w){
	divElement(w).style.visibility = "hidden"; 
}


//*****************************************************************************//
// Funkcja pokazujaca dana warstwe. Wywolanie: pokaz(nazwa_warstwy)
//*****************************************************************************//
function pokaz(w){
	divElement(w).style.visibility = "visible"; 
}


//*****************************************************************************//
// Funkcja ustawiajaca filtr alpha dla danej warstwy.
// Wywolanie: alpha(nazwa_warstwy, opacity)
//*****************************************************************************//
function alpha(w,p){
	var dE = divElement(w);
 	if(ie||opera)dE.style.filter = "alpha(opacity="+p+")"; 
	else if(up5&&!opera){
		ukryj(w);
		dE.style.MozOpacity=p+"%";
		pokaz(w);
	}else if(p<50)ukryj(w);	//dla przegladarek nie obslugujacych alpha
		else pokaz(w);
}


//*****************************************************************************//
// Funkcja ustawiajaca pozycje left, top dla danej warstwy.
// Wywolanie: pozycja(nazwa_warstwy, left, top)
//*****************************************************************************//
function pozycja(w,l,t){ //warstwa musi miec ustawiona pozycje absolute lub relative
	with(divElement(w).style){
		left=l+'px';	top=t+'px';
	}
}


//*****************************************************************************//
// Funkcja wpisujaca rozne dane do danej warstwy.
// Wywolanie: writeHTML(nazwa_warstwy, tekst)
//*****************************************************************************//
function writeHTML(w,t){
	divElement(w).innerHTML=t;
}


//-->