function getElementsByClassName (gdzie,c){ 
	for(var i=0,a=[],d;d=gdzie.getElementsByTagName('*')[i++];){ 	
		if(RegExp("\\b"+c+"\\b",'gi').test(d.className)){ 
			a.push(d); 
		} 
	} 
	return a; 
}

function isValidURL(url){
     
    var RegExp = /^(([\w]+:)?\/\/)?(([\d\w]|%[a-fA-f\d]{2,2})+(:([\d\w]|%[a-fA-f\d]{2,2})+)?@)?([\d\w][-\d\w]{0,253}[\d\w]\.)+[\w]{2,4}(:[\d]+)?(\/([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)*(\?(&?([-+_~.\d\w]|%[a-fA-f\d]{2,2})=?)*)?(#([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)?$/;
    if(RegExp.test(url)){ 
        return true;
    }else{
        return false;
    }
}

function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}

function parsexlinknumber(xl){
	if (xl.alt)	{
		return parseInt(xl.alt)
	} else {
		return parseInt(xl.name)
	}
}

function set_obrazek_opacity (obrazek,int_opacity){
	if (browser.isIE) {
		obrazek.style.filter = 'alpha(opacity='+int_opacity+')';
	}else{
		obrazek.style.MozOpacity=int_opacity/100
		obrazek.style.opacity = int_opacity/100
		obrazek.style.KhtmlOpacity= int_opacity/100
	}
}

function dragStart(event, id) {
  var el;
  var x, y;
  
  if (animujemypowrot) {return} // jak animujemy to element jest nielapalny ;p
  
  // If an element id was given, find it. Otherwise use the element being
  // clicked on.

  if (id)
    dragObj.elNode = document.getElementById(id);
  else {
    if (browser.isIE)
      dragObj.elNode = window.event.srcElement;
    if (browser.isNS)
      dragObj.elNode = event.target;

    // If this is a text node, use its parent element.

    if (dragObj.elNode.nodeType == 3)
      dragObj.elNode = dragObj.elNode.parentNode;
  }

  // Get cursor position with respect to the page.

  if (browser.isIE) {
    x = window.event.clientX + document.documentElement.scrollLeft
      + document.body.scrollLeft;
    y = window.event.clientY + document.documentElement.scrollTop
      + document.body.scrollTop;
  }
  if (browser.isNS) {
    x = event.clientX + window.scrollX;
    y = event.clientY + window.scrollY;
  }

  // Save starting positions of cursor and element.

  dragObj.cursorStartX = x;
  dragObj.cursorStartY = y;
  dragObj.elStartLeft  = parseInt(dragObj.elNode.style.left, 10);
  dragObj.elStartTop   = parseInt(dragObj.elNode.style.top,  10);

  if (isNaN(dragObj.elStartLeft)) dragObj.elStartLeft = 0;
  if (isNaN(dragObj.elStartTop))  dragObj.elStartTop  = 0;

  // Update element's z-index.

  dragObj.elNode.style.zIndex = ++dragObj.zIndex;

  // Capture mousemove and mouseup events on the page.
 dragObj.TmpPrzetwazac=przetwazac;
 przetwazac=false;

  if (browser.isIE) {
    document.attachEvent("onmousemove", dragGo);
    document.attachEvent("onmouseup",   dragStop);
    window.event.cancelBubble = true;
    window.event.returnValue = false;
  }
  if (browser.isNS) {
    document.addEventListener("mousemove", dragGo,   true);
    document.addEventListener("mouseup",   dragStop, true);
    event.preventDefault();
  }
}

function dragGo(event) {

  var x, y;

  // Get cursor position with respect to the page.

  if (browser.isIE) {
    x = window.event.clientX + document.documentElement.scrollLeft
      + document.body.scrollLeft;
    y = window.event.clientY + document.documentElement.scrollTop
      + document.body.scrollTop;
  }
  if (browser.isNS) {
    x = event.clientX + window.scrollX;
    y = event.clientY + window.scrollY;
  }

  // Move drag element by the same amount the cursor has moved.

  xx=dragObj.elStartLeft + x - dragObj.cursorStartX
  yy=dragObj.elStartTop  + y - dragObj.cursorStartY
  dragObj.elNode.style.left = (xx) + "px";
  dragObj.elNode.style.top  = (yy) + "px";
  
  
  if (yy <= yoffset){
  w.scrollTop=0
  }else if (yy >= maxyposition){
  w.scrollTop=maxscroll
  }else{
  w.scrollTop=(yy-yoffset)/(maxyposition-yoffset)*maxscroll
  }
  

  if (browser.isIE) {
    window.event.cancelBubble = true;
    window.event.returnValue = false;
  }
  if (browser.isNS)
    event.preventDefault();
}

function dragStop(event) {

  // Stop capturing mousemove and mouseup events.

  if (browser.isIE) {
    document.detachEvent("onmousemove", dragGo);
    document.detachEvent("onmouseup",   dragStop);
  }
  if (browser.isNS) {
    document.removeEventListener("mousemove", dragGo,   true);
    document.removeEventListener("mouseup",   dragStop, true);
  }
  animujemypowrot=true;
  przetwazac=dragObj.TmpPrzetwazac;
  ustaw_pozycje()
  animacjapowrotna()
}

function Browser() {

 var ua, s, i;

 this.isIE = false;
 this.isNS = false;
 this.version = null;

 ua = navigator.userAgent;

 s = "MSIE";
 if ((i = ua.indexOf(s)) >= 0) {
 this.isIE = true;
 this.version = parseFloat(ua.substr(i + s.length));
 return;
 }

 s = "Netscape6/";
 if ((i = ua.indexOf(s)) >= 0) {
 this.isNS = true;
 this.version = parseFloat(ua.substr(i + s.length));
 return;
 }

 // Treat any other "Gecko" browser as NS 6.1.

 s = "Gecko";
 if ((i = ua.indexOf(s)) >= 0) {
 this.isNS = true;
 this.version = 6.1;
 return;
 }
}

// ------------ fade efekt

function zmien_aktualny_obrazek_w_kuli(){ //onmouseclick

//inicjujemy zmienne xlink
co=parsexlinknumber(this)
xhref=xlinks[co][1]

if (isValidURL(xhref)){
document.location=xhref
}else{
pobierzStrone(xhref)
}
lock_image = true

this.onmouseover();
return (false);
}

function ustaw_akualny_obrazek_w_kuli(){ //onmouseout

if (lock_image){
 return
 }
 if (fadding == F_IN){
 clearTimeout(fadding_effect)
 fadding=F_0
 } 
 if (obrazek_opacity >0) {
 zmien_obrazek=false
 fadding=F_OUT
 fadder()
 }
}


function ustaw_obrazek_w_kuli(){ //onmouseover
co=parsexlinknumber(this)
 if (fadding==F_IN && aktualny_obrazek_w_kuli != co){
 clearTimeout(fadding_effect)
 }
 aktualny_obrazek_w_kuli=co
 nastepny_obrazek.src=obrazki_w_kuli[co].src
 zmien_obrazek = true
 if (fadding != F_OUT){
 fadding=F_OUT
 fadder()
 }
}

function fadder(){
	if (fadding==F_IN){
		obrazek_opacity=obrazek_opacity+10
		set_obrazek_opacity (document.getElementById('obrazek_fader'),obrazek_opacity)
		if (obrazek_opacity < 100) {
			fadding_effect=setTimeout("fadder()",fade_interval)
		}else{
			if (lock_image){
				document.getElementById('obrazek_w_kuli').src=document.getElementById('obrazek_fader').src
				document.getElementById('fader').style.display='none'
				lock_image=false
			}
			fadding=F_0
		}
	}
	if (fadding==F_OUT){
		obrazek_opacity=obrazek_opacity-10
		set_obrazek_opacity (document.getElementById('obrazek_fader'),obrazek_opacity)
		if (obrazek_opacity > 0 ) {
			fadding_effect=setTimeout("fadder()",fade_interval/fade_out_factor)
		}else {
			document.getElementById('fader').style.display='none'
			fadding=F_0
			if (zmien_obrazek){
				var obr = document.getElementById('obrazek_fader')
				zmien_obrazek=false
				obrazek_opacity=10
				obr.src=nastepny_obrazek.src
				set_obrazek_opacity(obr,obrazek_opacity)
				document.getElementById('fader').style.display='block'
				fadding_effect=setTimeout("fadder()",fade_interval)
				fadding=F_IN
			}
		}
	}
}


function animacjapowrotna(){
dalej=false
xx=s.offsetLeft;
yy=s.offsetTop;
xk=xdocelowe-xx
yk=ydocelowe-yy

if (xk>=pxnaklatke){
s.style.left=xx+pxnaklatke+"px"
dalej=true
}else if (-xk>=pxnaklatke){
s.style.left=xx-pxnaklatke+"px"
dalej=true
}else if(! xk ){
s.style.left=xdocelowe+"px"
}

if (yk>=pxnaklatke){
s.style.top=yy+pxnaklatke+"px"
dalej=true
}else if (-yk>=pxnaklatke){
s.style.top=yy-pxnaklatke+"px"
dalej=true
}else if(! yk ){
s.style.top=ydocelowe+"px"
}



if (dalej) {
tanimacja=setTimeout("animacjapowrotna()",ainterwal)
}else{
animujemypowrot=false
ustaw_pozycje()
}
}

function scroll(kierunek){
if (! przetwazac) {return}
if (kierunek) {
w.scrollTop-=Scroll_by*speed_faktor
ustaw_pozycje()
autoscroll=setTimeout("scroll(1)",Scroll_interval)
}
else{
w.scrollTop+=Scroll_by*speed_faktor
ustaw_pozycje()
autoscroll=setTimeout("scroll(0)",Scroll_interval)
}
}

function mozilla_mysza(e){
if (! przetwazac) {return}
w.scrollTop+=e.detail*5
ustaw_pozycje();
}

function ie_mysza(e){
if (! przetwazac) {return}
w.scrollTop-=e.wheelDelta/8
ustaw_pozycje();
}

function ustaw_pozycje(){
if (! przetwazac) {return}
p=w.scrollTop*ilepozycji/(w.scrollHeight-w.clientHeight)
yy=yoffset+p*10

p1=parseInt(p)
xx=xoffset+pozycja[p1]+(pozycja[p1+1]-pozycja[p1])*(p%1)
if(animujemypowrot){
ydocelowe=yy
xdocelowe=xx
}else{
//alert(xx+" "+yy);
s.style.top=yy+"px"
s.style.left=xx+"px"
}
}

function inicjalizuj_skrolaka(){
//s=document.getElementById('skrolak').style
if (w.scrollHeight==w.clientHeight){
s.style.visibility='hidden'
przetwazac=false
}
else{
s.style.visibility='visible'
przetwazac=true
maxscroll=w.scrollHeight-w.clientHeight
ustaw_pozycje()
}

}

function main_init(){
if (! (document.getElementById('strona') && document.getElementById('skrolak').style &&
document.getElementById('kolumnab').style)){
//czekam az sie strona zaladuje i przetwozy, jak jeszcze nie jest to 500ms przerwy czyli pol sekundy
preloadTimer = setTimeout(main_init,500);
return;
}
//preloaduje obrazki do kuli 
for(var i=0; i<xlinks.length; i++){
obrazki_w_kuli[i] = new Image()
obrazki_w_kuli[i].src="/img/"+xlinks[i][0]
}

// inicjalizuje obiekt w i s
w=document.getElementById('tekst');
s=document.getElementById('skrolak')
//inicjuje bazowe polozenie lapki
var opozycja=findPos(document.getElementById('kolumnab'));
xoffset=opozycja[0];
yoffset=opozycja[1]+offset_pozycji;
maxyposition=yoffset+ilepozycji*10
//inicjuje kulko myszki mysze
if (browser.isIE) {
document.attachEvent("onmousewheel", ie_mysza);
}else{
window.addEventListener('DOMMouseScroll', mozilla_mysza, false);
}

//inicjalizuj_skrolaka();
var strona=default_page;
hr=document.location.href;
pocz=hr.search("/#");
if (pocz>0) {
hr=hr.slice(pocz+2)+"/";
kon=hr.search("[^a-zA-Z0-9_]");
hr=hr.slice(0,kon);
if (hr.length>3){
strona=hr;
}
}

pobierzStrone(strona)
//Inicjuje Xlinki
xl=getElementsByClassName(document,'xlink')
if (xl){
xlink_init(xl);
}

//Inicjuje Xliterki
xl=getElementsByClassName(document,'xlit')
if (xl){
xlit_init(xl);
}

// i sledzenie google wlaczam
_uacct = "UA-1403856-5";
urchinTracker();
}

function xlit_init(xl){
	//alert(xl);
	for(var i=0; i<xl.length; i++){
	//alert('1');
	var xll=xl[i]
	//alert(xll + '>' +xll.textContent +')
	xll.innerHTML=literuj(xll.innerHTML);
	//alert('ok');
	}
}
function xlink_init(xl){
for(var i=0; i<xl.length; i++){
	xll=xl[i]
	xll.onmouseover=ustaw_obrazek_w_kuli;
	xll.onmouseout=ustaw_akualny_obrazek_w_kuli;
	
	//alert(isValidURL(xlinks[parsexlinknumber(xll)][1]));
	xhref=xlinks[parsexlinknumber(xll)][1]
	//alert(xhref+'   '+isValidURL(xlinks[parsexlinknumber(xll)][1]));
	if (! isValidURL(xhref)){
		xll.onclick=zmien_aktualny_obrazek_w_kuli;
                xll.href="#"+xhref
		//alert(xhref+'<-->'+xll.href+'--'+isValidURL("http://dx.nadsdssghar.nsdset.com/#news"));
	} else{
		xll.href=xhref
	}
		
} 
}


// inicjalizacja zmiennych
var dragObj = new Object();
dragObj.zIndex = 0;
var w				//okienko
var s					//skrolak
var browser = new Browser();
var nastepny_obrazek = new Image() 	//zmienna przetrzymujaca nastepny obrazek
var obrazki_w_kuli = new Array()
var xdocelowe
var ydocelowe
var animujemypowrot = false

var zmien_obrazek = false	//czy po zniknieciu ma siepojawic nowy obrazek
var F_IN = 1 			//pojawianiw
var F_OUT = 2 			//znikanie
var F_0 = 0 			//nicnierobienie
var fadding = F_0 		//domyslnie - nicnierobienie
var lock_image = false		//czy po pojawiniu ma go na stale umiescic
var aktualny_obrazek_w_kuli = 0	//nazwa mowi sama za siebie
var maxscroll			//maksymalny scroll okna
var maxyposition
var speed_faktor=normal_speed
var autoscroll=null
var przetwazac=false		//Zmienna okreslajaca czy przetwazac scrolowanie
var xoffset				//pozycja spoczynkowa x skrolaka
var yoffset				//pozycja spoczynkowa y skrolaka

//nie dziala w ie ale narazie mam to w nosie ;p
//window.onload=main_init();
preloadTimer = setTimeout(main_init,100)
