var efektniZvetsovac=[];

/**
* Zobrazí/skryje element určený pro Efektní zvětšovač
* Pro zjednodušení použití pro "vyskakovací submenu" doporučuji efektniZvetseniPripojZalozky()
* id - textový identifikátor zvětšovače
* smer - true/false odpovídá zobrazit/skrýt. Undefined = určit automaticky.
*/
function efektniZvetseni(id,smer) {
	var divData=efektniZvetsovac[id];
	var nedbatNaHover=false;
	if (!divData) return;
	if (smer==undefined) {
		nedbatNaHover=true;
		if (divData.stav>0) smer=false; else smer=true;
	}

	if (smer && divData.locking) divData.hover=true;
	if (!smer && divData.locking) divData.hover=false;
	if (divData.stav==0 && smer==false) return;
	if (divData.stav!=0 && smer==true) return;

	if (divData.grupa && smer) {
		var key;
		for (key in efektniZvetsovac) {
			if (efektniZvetsovac[key].grupa==divData.grupa && efektniZvetsovac[key].stav>0) {
				efektniZvetseni(key);
			}
		}
	}
	var anim=divData.anim;
	var obal=document.getElementById(id+"_obalujiciDiv");
	if (smer) {
		anim.stop();
		obal.style.display="block";
		anim.pokracujOd(divData.stav);
		anim.start("efektniZvetseniKrok('"+id+"',§)");
	} else {
		if (divData.locking && !nedbatNaHover) {
			if (divData.lockTimeout) window.clearTimeout(divData.lockTimeout);
			divData.lockTimeout=window.setTimeout("efektniZvetseniDelay('"+id+"')",400);
		} else {
		    anim.stop();
		    anim.pokracujOd(14-divData.stav);
		    anim.start("efektniZvetseniKrokZpet('"+id+"',§,"+(divData.chovaniObalu)+")");
		}
	}
	return false;
}

/**
* Nastaví Zvětšovači s daným ID, že po zobrazení se má skrývat element s idSpoustece.
* Předpokládá se, že v idSpoustece je odkaz zapínající animaci.
* Spouštěčů může být více, pro každý z nich zavolej tuto funkci jednou.
*/
function efektniZvetseniMizejiciSpoustec(id,idSpoustece) {
	var data=efektniZvetsovac[id];
	if (!data) return;
	if (!data.mizejiciSpoustec) {
		data.mizejiciSpoustec=[];
	}
	data.mizejiciSpoustec[data.mizejiciSpoustec.length]=idSpoustece;
}
function efektniZvetseniDelay(id) {
	var divData=efektniZvetsovac[id];
	if (!divData) return;
	var anim=divData.anim;
	if (divData.lockTimeout) window.clearTimeout(divData.lockTimeout);
	if (!divData.hover) {
		    anim.stop();
		    anim.pokracujOd(14-divData.stav);
		    anim.start("efektniZvetseniKrokZpet('"+id+"',§,"+(divData.chovaniObalu)+")");
	}
}
function efektniZvetseniKrok(id,i) {
	var divData=efektniZvetsovac[id];
	divData.stav=i;
	w=divData.w;
	h=divData.h;
	alpha=divData.alpha;
	smerX=divData.smerX;
	smerY=divData.smerY;
	var alphaEase=[7,14,21,28,35,42,49,56,63,70,77,84,90,95,100];
	var sizeEase=[20,40,55,65,73,78,83,86,89,92,94,96,98,99,100];
	var el=document.getElementById(id);
	el.style.display="block";
	if (alpha) pageman.alpha(el,alphaEase[i]);
	if (smerX) el.style.left=(-1)*smerX*(w-(sizeEase[i]/100*w))+"px";
	if (smerY) el.style.top=(-1)*smerY*(h-(sizeEase[i]/100*h))+"px";
	
	if (divData.chovaniObalu==2) {
		var obal=document.getElementById(id+"_obalujiciDiv");
		if (smerX) pageman.setSirka(obal,(sizeEase[i]/100*pageman.vnejsiSirka(el)));
		if (smerY) pageman.setVyska(obal,(sizeEase[i]/100*pageman.vnejsiVyska(el)));
		if (smerX) el.style.left=(-1)*smerX*(w-(sizeEase[i]/100*w))+"px";
		if (smerY) el.style.top=(-1)*smerY*(h-(sizeEase[i]/100*h))+"px";		
	}
	
	if (divData.mizejiciSpoustec) {
		var j,el;
		for (j=0;j<divData.mizejiciSpoustec.length;j++) {
			el=document.getElementById(divData.mizejiciSpoustec[j]);
			if (!el) continue;
			if (i>=14) pageman.alpha(el,0);
				else pageman.alpha(el,alphaEase[14-i]);;
		}
	}
}
function efektniZvetseniKrokZpet(id,i,obal) {
	if (i==14) {
		var el=document.getElementById(id);
		el.style.display="none";
		if (obal!=1) {
			var obal=document.getElementById(id+"_obalujiciDiv");
			obal.style.display="none";
		}
		return;
	}
	efektniZvetseniKrok(id,13-i);
}

//TODO: Použít pageman addEventHandler
/**
* Označí dané elementy pro Efektní zvětšovač. 
* !!!Tuto funkci je bezpečné volat až potom, co je uzavřen element obklopující zvětšovač!!! Jinak bude IE hlásit chybu.
* id - html id cílového prvky pro zobrazován/skrývání. Jediný povinný parametr.
* grupa - textové označení skupiny Zvětšovačů. Ze všech zvětčovačů ve stejné grupě může být zobrazen jen jeden, dojde-li k zobrazení druhého, první se skryje. False = nepoužívat tuto funkci. Default = false.
* locking - true pro aktivaci podpůrné funkce způsobující zpoždění při skrývání a sledování, zda je myš nad zobrazeným elementem (vhodné pro onmouseover zobrazení/skrytí). Default = false.
* alpha - true/false, pokud se má při zobrazování používat Alpha přechod (průhlednost). Default = true;
* smerX - jedna z hodnot 1, 0, -1 označující, jakým směrem po horizontální ose X má animace probíhat. -1 je doleva, 1 doprava. Default = 0
* smerY - jedna z hodnot 1, 0, -1 označující, jakým směrem po vertikální ose Y má animace probíhat. -1 je nahoru, 1 dolů. Default = 1
* start - výchozí stav, zda zobrazen (true), nebo skrytý (false). Default = false;
* rychlost - interval v ms mezi jednotlivými kroky animace. Nižší = rychlejší. Default = 25.
* chovaniObalu - 0 (default) = neviditelný, dokud nedojde k zvětšení. 1 = videitelný permanentně. 2 = zvětšuje se stejně, jako obsah
*/
function pripravEfektniZvetseni(id,grupa,locking,alpha,smerX,smerY,start,rychlost,chovaniObalu) {
	if (!grupa) grupa=false;
	if (!start) start=0; else start=14;
	if (rychlost==undefined) rychlost=25;
	if (locking==undefined) locking=false;
	if (alpha==undefined) alpha=true;
	if (smerX==undefined) smerX=0;
	if (smerY==undefined) smerY=1;
	if (chovaniObalu==undefined) chovaniObalu=0;
	var cil=document.getElementById(id);
	var w=pageman.vnitrniSirka(cil);
	var h=pageman.vnitrniVyska(cil);

	var anim=new Animator(15,rychlost);
	efektniZvetsovac[id]={cil:cil,grupa:grupa,w:w,h:h,alpha:alpha,smerX:smerX,smerY:smerY,stav:start,rychlost:rychlost,anim:anim,hover:false,locking:locking,lockTimeout:false,mizejiciSpoustec:[],chovaniObalu:chovaniObalu};
	var obal=pageman.obalit(cil,id+"_obalujiciDiv");
	obal.style.overflow="hidden";
	if (cil.style.position!="absolute") obal.style.position="relative";
	else {
		obal.style.position="absolute";
		obal.style.left=cil.style.left;
		obal.style.top=cil.style.top;
	}
	obal.style.zIndex=cil.style.zIndex;
	w=pageman.vnejsiSirka(cil)+"px";
	w2=pageman.vnitrniSirka(cil)+"px";
	obal.style.width=w;
	//cil.style.width=w2;
	obal.style.height=pageman.vnejsiVyska(cil)+"px";
	cil.style.position="absolute";
	if (!start) {
		cil.style.display="none";
		if (chovaniObalu!=1) obal.style.display="none";
	}
	
	if (locking) {
		cil.onmouseover=function() {
			efektniZvetsovac[id].hover=true;
		}
		cil.onmouseout=function() {
			efektniZvetsovac[id].hover=false;
			efektniZvetseni(id,false);
		}
	}
	
}

/**
* Přiřadí odkazy k jednotlivým zvětšovačům (např. položky v menu k jejím submenu zvětšovačům.)
* Přiřadí odpovídající funkce k událostem onmouseover/onmouseout/onclick.
* prefix - předpona pro odvození ID odkazu od ID zvětšovače. Např. prefix "menu_" znamená, že zvětšovač s ID "polozka1" bude ovládán odkazem s ID "menu_polozka1"
* poleId - pole s ID jednotlivých zvětšovačů. Doporučuji zápis pomocí ["polozka1","polozka2","polozka3"] atd.
*/
function efektniZvetseniPripojZalozky(prefix,poleId) {
	var i,id,zalozka;
	for (i=0;i<poleId.length;i++) {
		id=poleId[i];
		zalozka=document.getElementById(prefix+id);
		if (!zalozka) continue;
		zalozka.onmouseover=function() {id=this.id.substr(prefix.length); efektniZvetseni(id,true);}
		zalozka.onmouseout=function() {id=this.id.substr(prefix.length); efektniZvetseni(id,false);}
		if (!zalozka.onclick && (!zalozka.getAttribute("href") || zalozka.getAttribute("href")=="#")) {
			zalozka.onclick=function() {id=this.id.substr(prefix.length); efektniZvetseni(id); return false;}
		}
	}
}

/**
* Automaticky nastaví zvětšovací efekt pro nedefinovaný počet podobných zvětšovačů. Funkce určená pro vyskakovací submenu.
* prefixOdkaz - předpona pro určení ID nadřazeného odkazu. ID = prefixOdkaz+prefixId+i (i je číslo)
* prefixId - předpona pro určení ID nadřazeného odkazu i vyskakovacího objektu. ID = prefixId+i
* startI - od jakého čísla se má číslovat, standardně od 1
* alpha, smerX, smerY, rychlost, chovaniObalu - parametry animace, viz pripravEfektniZvetseni
*
* Příklad:
* ID hlavních odkazů je zal_menu1, zal_menu2, zal_menu3, zal_menu4
* ID vyskakovacísh submenu je menu1, menu2, menu3, menu4
* potom zavolej funkci efektniZvetseniAutomatickeNastaveni("zal_","menu");
*/

function efektniZvetseniAutomatickeNastaveni(prefixOdkaz,prefixId,startI,alpha,smerX,smerY,rychlost,chovaniObalu) {
	if (startI==undefined) startI=1;
	var i,el,el2;
	var pole=[];
	for (i=startI;i<200;i++) {
		el=document.getElementById(prefixOdkaz+prefixId+i); //Meníčko
		el2=document.getElementById(prefixId+i); //Vyskakovací
		if (!el) break;
		if (!el2) continue;
		pole[pole.length]=prefixId+i;
		pripravEfektniZvetseni(prefixId+i,prefixId,true,alpha,smerX,smerY,false,rychlost,chovaniObalu);
	}
	efektniZvetseniPripojZalozky(prefixOdkaz,pole);
}


var zalozkovePole=[];
/**
* Inicializace Přepínače. Doporučuji tuto funkci zavolat až poté, co je container i jeho nadřazený element uzavřen.
* idContainer - ID elementu tvořící obal jednotlivých stránek Přepínače. Slouží potom také jako identifikátor tohoto přepínače.
* idCasti - array s ID elementů tvořících jednotlivé stránky
* prvniViditelna - nepovinné, označuje ID stránky, která má být vidět po inicializaci Přepínače
* efekt - jedna z hodnot: "slide" (default), "alpha", "slip", "slip2"
*/
function pripravPrepinac(idContainer,idCasti,prvniViditelna,efekt,nemenitVelikost,rezimLeporeloZIndex) {
	if (!efekt) efekt="slide";
	if (nemenitVelikost==undefined) nemenitVelikost=false;
	if (rezimLeporeloZIndex==undefined) rezimLeporeloZIndex=1;
	if (efekt=="leporelo") {
		rezimLeporelo=true;
		nemenitVelikost=true;
	} else {
		rezimLeporelo=false;
	}
	var i,el,maxVyska,vyska;
	var vysky=[];
	var sirky=[];
	var data={vysky:vysky,sirky:sirky,casti:idCasti,viditelna:null,animResizer:null,animSwitcher:null,praceSeZalozkami:false,efekt:efekt,autoPrepinac:0,nemenitVelikost:nemenitVelikost,rezimLeporelo:rezimLeporelo,leporeloPole:[],rescanTimeout:false};
	var cont=document.getElementById(idContainer);
	data.sirkaContaineru=pageman.borderSirka(cont,false);

	maxVyska=0;
	leporeloKrok=0;
	leporeloPrvniSirka=0;
	for (i=0;i<idCasti.length;i++) {
		vyska=pageman.borderVyska(document.getElementById(idCasti[i]));
	    vysky[idCasti[i]]=vyska;
	    if (maxVyska<vysky[idCasti[i]]) maxVyska=vysky[idCasti[i]];
	    if (!prvniViditelna) prvniViditelna=idCasti[i];
	    el=document.getElementById(idCasti[i]);
	    el.style.position="absolute";
	    el.style.left="0px";
	    el.style.top="0px";
	    if (!rezimLeporelo) pageman.setVnejsiSirka(el,data.sirkaContaineru);
	    else {
	    	if (i==0) {
	    		leporeloKrok=(data.sirkaContaineru-pageman.borderSirka(el))/(idCasti.length-1);
	    		leporeloPrvniSirka=pageman.borderSirka(el);
	    	} else {
	    		el.style.left=Math.round(leporeloKrok*i+(leporeloPrvniSirka-pageman.borderSirka(el)))+"px";
	    	}
	    	el.style.zIndex=rezimLeporeloZIndex+idCasti.length-i;
	    }
	    sirky[idCasti[i]]=pageman.borderSirka(document.getElementById(idCasti[i]));	    
	}
	
	data.viditelna=prvniViditelna;
	var zalozka=document.getElementById(prvniViditelna);
	cont.style.overflow="hidden";
	cont.style.position="relative";
	data.animResizer=new Animator(19,30);
	data.animSwitcher=new Animator(19,30);
	data.sirky=sirky;

	if (nemenitVelikost) {
		var vyskaContaineruSamotneho=pageman.vnitrniVyska(cont);
		if (vyskaContaineruSamotneho>maxVyska && cont.style.height!="auto" && cont.style.height) maxVyska=vyskaContaineruSamotneho;
		if (cont.style.height=="auto" || !cont.style.height) pageman.setVyska(cont,maxVyska);
		for (i=0;i<idCasti.length;i++) {
			pageman.setVnejsiVyska(document.getElementById(idCasti[i]),maxVyska);
		}
	}
	else pageman.setVyska(cont,pageman.vnejsiVyska(zalozka));

	zalozkovePole[idContainer]=data;
	prepinacView(idContainer,rezimLeporelo);
}


/**
* Přepne přepínač na novou stránku, vzdálenou o krok od té současné
* idContainer - identifikátor přepínače
* idCasti - posun; 1 pro jednu stránku doprava, -1 pro jednu stránku doleva, atd.
* rotovat - pokud je true, tak se přepne i po poslední nebo před první stránkou
*/
function prepinacPosun(idContainer,krok,rotovat) {
	var data=zalozkovePole[idContainer];
	var vzdyDoprava=undefined;
	var i,ind=0;
	for (i=0;i<data.casti.length;i++) {
		if (data.casti[i]==data.viditelna) ind=i;
	}
	ind+=krok;
	if (ind<0) {
		if (rotovat) {
			ind=data.casti.length-1;
			vzdyDoprava=-1;
		}
		else ind=0;
	}
	if (ind>=data.casti.length) {
		if (rotovat) {
			ind=0;
			vzdyDoprava=true;
		}
		else ind=data.casti.length-1;
	}
	prepnutiPrepinace(idContainer,data.casti[ind],vzdyDoprava);
	return false;
}

function prepinacView(idContainer,rezimLeporelo) {
	var el,i;
	var rezimLeporelo = zalozkovePole[idContainer].rezimLeporelo;
	var zopakuj=false;
	if (zalozkovePole[idContainer].rescanTimeout) {
		window.clearTimeout(zalozkovePole[idContainer].rescanTimeout);
		zalozkovePole[idContainer].rescanTimeout=false;
	}
	
	for (i=0;i<zalozkovePole[idContainer].casti.length;i++) {
		el=document.getElementById(zalozkovePole[idContainer].casti[i]);
		
		var vyska,idc;
		vyska=pageman.borderVyska(el);	
		idc=zalozkovePole[idContainer].casti[i];
		
		if (vyska>zalozkovePole[idContainer].vysky[idc] && vyska > 10) {
			//Konečně načteno
			zalozkovePole[idContainer].vysky[idc]=vyska;
			if (idc!=zalozkovePole[idContainer].viditelna) {
				el.style.display="none";
			} else if (!zalozkovePole[idContainer].nemenitVelikost) {
				if (pageman.vnitrniVyska(document.getElementById(idContainer))<vyska) {
					pageman.setVyska(document.getElementById(idContainer),vyska);
				}
			}
		}
		if (vyska<11 && zalozkovePole[idContainer].vysky[idc]<11) { //Asi ještě nenačtené
			el.style.display="block";
			zopakuj=true;
			continue;
		}
	
		
		if (rezimLeporelo) {
			el.style.display="block";
		} else {
			if (zalozkovePole[idContainer].casti[i]==zalozkovePole[idContainer].viditelna) el.style.display="block"; else el.style.display="none";
		}
	}	
		
	if (zopakuj && !zalozkovePole[idContainer].rescanTimeout) {
		zalozkovePole[idContainer].rescanTimeout=window.setTimeout("prepinacView('"+idContainer+"',"+(rezimLeporelo?"true":"false")+")",1500);
	}
	
}

/**
* Přepne přepínač na novou stránku
* idContainer - identifikátor přepínače
* idCasti - ID elementu s stránkou, na kterou se má přepnout
* vzdyDoprava - true = vždy animovat doprava nezávisle na straně. False/udnefined = rozhodnout automaticky. -1 = vždy doleva.
*/
function prepnutiPrepinace(idContainer,idCasti,vzdyDoprava) {
	var data=zalozkovePole[idContainer];
	prepinacView(idContainer);
	if (!data) return;
	if (idCasti==data.viditelna) return;
	var finalHeight=data.vysky[idCasti];
	var startHeight=pageman.vnitrniVyska(document.getElementById(idContainer));

	if (data.praceSeZalozkami) {
		if (data.zalozky[data.viditelna]) data.zalozky[data.viditelna].className=data.puvodniClass[data.viditelna];
		if (data.zalozky[idCasti]) data.zalozky[idCasti].className=data.puvodniClass[idCasti]+" "+data.onClass;
	}
	if (data.autoPrepinac) {window.clearTimeout(data.autoPrepinac);}

	if (!data.nemenitVelikost) {
		if (!tools.browser("ie7")) {
			data.animResizer.start("prepnutiZalozkyResizeStep('"+idContainer+"',§,"+startHeight+","+finalHeight+",'"+idCasti+"')");
		} else {
			pageman.setVyska(document.getElementById(idContainer),finalHeight);
		}
	}

	if (data.efekt=="slide") {
		var indexStare,indexNove;
		for (i=0;i<data.casti.length;i++) {
			if (data.casti[i]==idCasti) indexNove=i;
			if (data.casti[i]==data.viditelna) indexStare=i;
		}
		if (indexNove==undefined) return;
		var smer=1;
		if (indexNove>indexStare || vzdyDoprava) smer=-1;
		if (vzdyDoprava===-1) smer=1;

		data.animSwitcher.start("prepnutiZalozkySwitchStep('"+idContainer+"','§','"+data.viditelna+"','"+idCasti+"',"+smer+","+data.sirkaContaineru+")","prepinacView('"+idContainer+"')");
	}

	if (data.efekt=="alpha") {
		data.animSwitcher.start("prepnutiZalozkyAlphaStep('"+idContainer+"','§','"+data.viditelna+"','"+idCasti+"')","prepinacView('"+idContainer+"')");
	}

	if (data.efekt=="slip" || data.efekt=="slip2") {
		data.animSwitcher.start("prepnutiZalozkySlipStep('"+idContainer+"','§','"+data.viditelna+"','"+idCasti+"',"+data.vysky[data.viditelna]+","+data.vysky[idCasti]+",'"+data.efekt+"')","prepinacView('"+idContainer+"')");
	}
	
	if (data.efekt=="leporelo") {
		var index;
		for (i=0;i<data.casti.length;i++) {
			if (data.casti[i]==idCasti) index=i;
		}
		//prepinacRescanRozmeru(idContainer);
		krokovani=(data.sirkaContaineru-data.sirky[idCasti])/(data.casti.length-1);
		var i,pravyOkrajViditelneho;
		var ciloveX=[];
		var soucasneX=[];

		for (i=0;i<data.casti.length;i++) {
			soucasneX[i]=tools.ciselnaCast(document.getElementById(data.casti[i]).style.left);
			if (i<index) {
				ciloveX[i]=Math.round(krokovani*(i+1)-data.sirky[data.casti[i]]);
			}
			if (i==index) {
				ciloveX[i]=Math.round(krokovani*i);
				pravyOkrajViditelneho=ciloveX[i]+data.sirky[data.casti[i]];
			}
			if (i>index) {
				ciloveX[i]=Math.round(pravyOkrajViditelneho+(i-index)*krokovani-data.sirky[data.casti[i]]);
			}
		}
		
		data.leporeloPole=[soucasneX,ciloveX];
		data.animSwitcher.start("prepnutiZalozkyLeporeloStep('"+idContainer+"','§')");		
	}

	data.viditelna=idCasti;

}


function prepnutiZalozkyLeporeloStep(idContainer,krok) {
	var ease=[0,2,6,13,28,48,70,96,127,162,197,228,254,276,296,311,318,322,324];
	var data=zalozkovePole[idContainer];
	var startovaci,cilova,nova;
	for (i=0;i<data.casti.length;i++) {
		startovaci=data.leporeloPole[0][i];
		cilova=data.leporeloPole[1][i];
		nova=Math.round((startovaci*1)+(cilova-startovaci)*ease[krok]/324);
		if (tools.ciselnaCast(document.getElementById(data.casti[i]).style.left)!=nova) document.getElementById(data.casti[i]).style.left=nova+"px";
	}
	
}

function prepnutiZalozkyResizeStep(idContainer,krok,startHeight,finalHeight,idCasti) {
	var ease=[0,2,6,13,28,48,70,96,127,162,197,228,254,276,296,311,318,322,324];
	var el=document.getElementById(idContainer);
	vyska=startHeight+(finalHeight-startHeight)*ease[krok]/324;
	pageman.setVyska(el,vyska);
}

function prepnutiZalozkyAlphaStep(idContainer,krok,stara,nova) {
	var ease=[0,0,0,10,20,30,40,50,60,70,80,90,100,100,100,100,100,100,100];
	var el,el2;
	el=document.getElementById(stara);
	el2=document.getElementById(nova);
	pageman.alpha(el,ease[18-krok]);
	pageman.alpha(el2,ease[krok]);
	if (ease[krok]>0 && el2.style.display!="block") el2.style.display="block";	
}
function prepnutiZalozkySlipStep(idContainer,krok,stara,nova,staraVyska,novaVyska,typSlipu) {
	var ease1,ease2;
	if (typSlipu=="slip2") {
		ease1=[0,1,3,6,10,15,21,28,35,43,51,60,70,80,90,100,100,100,100];
		ease2=[0,0,0,0,0,0,5,10,20,30,40,50,60,70,80,88,94,98,100];
	}
	if (typSlipu=="slip") {
		ease1=[0,3,8,15,25,36,47,59,72,86,100,100,100,100,100,100,100,100,100];
		ease2=[0,0,0,0,0,0,0,0,0,0,0,20,40,58,74,88,94,98,100];
	}
	el=document.getElementById(stara);
	el2=document.getElementById(nova);
	el.style.top=(-1*ease1[krok]*staraVyska/100)+"px";
	el2.style.top=(-1*novaVyska+ease2[krok]*novaVyska/100)+"px";
	if (ease2[krok]>0 && el2.style.display!="block") el2.style.display="block";	

}

function prepnutiZalozkySwitchStep(idContainer,krok,stara,nova,smer,sirkaContaineru) {
	var ease=[0,2,6,13,28,48,70,96,127,162,197,228,254,276,296,311,318,322,324];
	var el,el2,poz;
	el=document.getElementById(stara);
	el2=document.getElementById(nova);
	if (smer==1) {
		poz=Math.round((sirkaContaineru*ease[krok]/324));
		el.style.left=poz+"px";
		el2.style.left=(poz-sirkaContaineru)+"px";
	} else {
		poz=Math.round(-1*(sirkaContaineru*ease[krok]/324));
		el.style.left=poz+"px";
		el2.style.left=(poz+sirkaContaineru)+"px";
	}
	if (el2.style.display!="block") el2.style.display="block";	
}

/**
* Pro zjednodušení je možné použít tuto funkci, která nastaví potřebné vazby mezi přepínačem a odkazy na konkrétní stránky
* idCOntainer - identifikátor přepínače
* prefixZalozek - předpona určená pro odvození ID odkazu od ID stránky. Např. prefix "zal_" znamená, že odkaz s ID "zal_stranka1" přepne na stránku s ID "stranka1"
* pridavnaTrida - jaká třída se má přidat k aktuálně aktivní záložce (odpovídající právě viditelné stránce). Například "on". Default = ""
* pripojitEvent - pokud je true, k odkazům se automaticky přidají javascriptové události. Defalt = false
*/
function prepinacPripojZalozky(idContainer,prefixZalozek,pridavnaTrida,pripojitEvent) {
	if (pripojitEvent==undefined) pripojitEvent=false;
	if (!pridavnaTrida) pridavnaTrida="";
	var data=zalozkovePole[idContainer];
	if (!data) return;
	var el,totoId,zalozky,puvodniClass,totoIdCasti;

	zalozky=[];
	puvodniClass=[];

	for (i=0;i<data.casti.length;i++) {
		totoId=prefixZalozek+data.casti[i];
		el=document.getElementById(totoId);
		if (!el) continue;
		zalozky[data.casti[i]]=el;
		puvodniClass[data.casti[i]]=el.className;
		totoIdCasti=data.casti[i];
		if (pripojitEvent) {
			el.onclick=function() {
				idc=this.id.substr(prefixZalozek.length);
				prepnutiPrepinace(idContainer,idc);
				return false;
			}
		}
	}

	data.praceSeZalozkami=true;
	data.zalozky=zalozky;
	data.puvodniClass=puvodniClass;
	data.onClass=pridavnaTrida;

	if (data.zalozky[data.viditelna]) data.zalozky[data.viditelna].className=data.puvodniClass[data.viditelna]+" "+pridavnaTrida;
}

/**
* Pro zjednodušení je možné použít tuto funkci, která nastaví potřebné vazby mezi přepínačem a dvěma odkazy na posun vpřed a vzad
* idContainer - identifikátor přepínače
* idSipkaVpred - id odkazu na následující stránku
* idSipkaZpet - id odkazu na předchozí stránku
* tridaNeviditelna - defaultně "inv". Jaká třída se má přidat k šipce, která vede na nedostupnou stránku (nultou nebo za poslední stránku)?
* povolitRotaci - defaultně false. Pokud je true, je povolena rotace (tj. nultá = poslední a vice versa). Šipky potom nikdy nebudou neviditelné.
*/
function prepinacPripojSipky(idContainer,idSipkaVpred,idSipkaZpet,tridaNeviditelna,povolitRotaci) {
	if (!tridaNeviditelna) tridaNeviditelna="inv";
	if (!povolitRotaci) povolitRotaci=false;
	if (!document.getElementById(idSipkaVpred)) return;
	if (!document.getElementById(idSipkaZpet)) return;	
	var data=zalozkovePole[idContainer];
	if (!data) return;
	
	data.idSipkaVpred=idSipkaVpred;
	data.idSipkaZpet=idSipkaZpet;
	data.sipkaTridaNeviditelna=tridaNeviditelna;	
	data.povolitRotaci=povolitRotaci;
	
	document.getElementById(idSipkaVpred).onclick=function() {
		prepinacPosun(idContainer,1,povolitRotaci);
		prepinacViditelnostSipek(idContainer);
	}
	document.getElementById(idSipkaZpet).onclick=function() {
		prepinacPosun(idContainer,-1,povolitRotaci);
		prepinacViditelnostSipek(idContainer);
	}
	prepinacViditelnostSipek(idContainer);
}

function prepinacViditelnostSipek(idContainer) {
	var data=zalozkovePole[idContainer];
	var visVpred,visVzad;
	if (data.povolitRotaci) {
		visVpred=true;
		visVzad=true;		
	} else {
		visVpred=true;
		visVzad=true;
		var stranka=data.casti.indexOf(data.viditelna);
		if (stranka==0) visVzad=false;
		if (stranka==data.casti.length-1) visVpred=false;
	}
	
	var el=document.getElementById(data.idSipkaVpred);
	if (visVpred && el.className.indexOf(data.sipkaTridaNeviditelna)!=-1) {
		el.className=str_replace(data.sipkaTridaNeviditelna,"",el.className);
	}
	if (!visVpred && el.className.indexOf(data.sipkaTridaNeviditelna)==-1) {
		el.className=el.className+" "+data.sipkaTridaNeviditelna;
	}
	
	el=document.getElementById(data.idSipkaZpet);
	if (visVzad && el.className.indexOf(data.sipkaTridaNeviditelna)!=-1) {
		el.className=str_replace(data.sipkaTridaNeviditelna,"",el.className);
	}
	if (!visVzad && el.className.indexOf(data.sipkaTridaNeviditelna)==-1) {
		el.className=el.className+" "+data.sipkaTridaNeviditelna;
	}
	
}

/**
* Zapne automatické cyklování jednotlivými stránkami Přepínače.
* Automatické cyklování s evypne, pokud jakýkoliv ovládací prvek přepne na jinou stránku.
* idContainer - identifikátor přepínače
* cas - prodleva v milisekundách mezi dvěma přepnutími. Minimálně 600.
* zacit - nech undefined, tento parametr vypusť.
*/
function zapniAutoprepinac(idContainer,cas,zacit) {
	if (cas<600) cas=600;
	var data=zalozkovePole[idContainer];
	if (!data) return;

	if (zacit) {
		var index=0;
		var i;
		for (i=0;i<data.casti.length;i++) {
			if (data.casti[i]==data.viditelna) {
				index=i;
			}
		}
		index++;
		if (index==data.casti.length) index=0;
		prepnutiPrepinace(idContainer,data.casti[index],true);
	}
	data.autoPrepinac=window.setTimeout("zapniAutoprepinac('"+idContainer+"',"+cas+",true)",cas);
}



function jednoducheObjeveni(ciloveId) {
	var el=document.getElementById(ciloveId);
	if (!el) return;
	var anim;
	if (el.style.display=="none") {
		anim=new Animator(11,30);
		anim.start("jednoducheObjeveniKrok('"+ciloveId+"',§,true)");
	} else {
		anim=new Animator(11,30);
		anim.start("jednoducheObjeveniKrok('"+ciloveId+"',§,false)");
	}
	
	
	return false;	
}

function jednoducheObjeveniKrok(id,krok,smer) {
	var ease=[0,10,20,30,40,50,60,70,80,90,100];
	var el=document.getElementById(id);
	if (smer) pageman.alpha(el,ease[krok]);
		else pageman.alpha(el,ease[10-krok]);
	if (!smer && krok==10) {
		el.style.display="none";
	}
	if (smer && krok) {
		el.style.display="block";
	}
}
