var timer, i, moveUp = false, justMovingDown = false, justMovingUp = false, queue = '';

var krok_nahoru = 5;//aby se menu schovávalo hodně rychle
var krok_dolu = 2;//čím větší krok, tím rychleji se menu hýbe
var showtimer = 10;//reguluje rychlost spouštění menu
var hidetimer = 10;//reguluje rychlost skrývání menu
var down_pos = 22;//spodní pozice na které se menu musí zarazit

seznam_idr = arr_hm_idr.split("_");//seznam id redakcí, které mají skryté menu
seznam_pocty = arr_hm_pocty.split("_");//počty položek v jednotlivých menu, potřebuju ke určení horní pozice pro zastavení
var top_pozice = [];//
var redakce = [];
for(var i in seznam_idr)top_pozice[seznam_idr[i]] = seznam_pocty[i] * vyska_polozky;//pro jednotlivá menu si spočtu horní pozici pro zastavení


function setTop(element,inOrDecrementation,newTop)
{
  //fce pro nastavení horní pozice
  //volá se opakovaně při posouvání menu
  if (dhtml)
  {
    if (!inOrDecrementation)
    {
      if (dom) document.getElementById(element).style.top = newTop;
      else if (ie4) document.all[element].style.top = newTop;
      //else if (ns4) eval('document.menuHolder.document.' + element + '.top = newTop');
    }
    else
    {
      if (dom) document.getElementById(element).style.top = parseInt(document.getElementById(element).style.top) + newTop;
      else if (ie4) document.all[element].style.top = parseInt(document.all[element].style.top) + newTop;
      //else if (ns4) eval('document.menuHolder.document.' + element + '.top = parseInt(document.menuHolder.document.' + element + '.top) + newTop');
    }
  }
}

function getTop(element)
{
  //fce pro zjištění aktuální horní pozice menu
  //alert(parseInt(document.getElementById(element).style.top));
  if (dhtml)
  {
    if (dom)
    {
      var o = document.getElementById(element);
      var top = o != null ? parseInt(o.style.top) : -100;
      return top;
    }
     
    if (ie4) return parseInt(document.all[element].style.top);
    //if (ns4) return parseInt (eval('document.menuHolder.document.' + element + '.top'));
  }
}

function menu_nahore()
{
  
  //fce sestaví testovací podmínku pro všechna menu
  //podmínku fce vrátí a tam se provede pomocí eval
  var prikaz = [];//jednotlivé části podmínky si budu cpát do pole 
  
  for(var i in top_pozice)//projeď pole se seznamem horních pozic jednotlivých menu
  {
    var radek = "((getTop('hiddenMenu" + i + "') <= -" + top_pozice[i] + ") || (id == " + i + "))";
    prikaz.unshift(radek); 
  }
  vysled = prikaz.join(" && ") + "&& (!justMovingDown);";//spoj části podmínky and a přidej podmínku na pohyb menu
  return  vysled;
}

function showMenu(id)
{
  //fce se volá pokud mám ukázat určité menu
  if (dhtml)
  {
    if(eval(menu_nahore()))//otestuje jestli jsou vsechna menu v horní pozici a některé se už nehýbe
    {
      moveUp = false;
      clearTimeout(timer);
      justMovingUp = false;
      queue = '';
      justMovingDown = true;//menu jede dolů
      showMenu2(id);//postupně posouvej až do spodní pozice
    }
    else queue = id;//zařaď menu do fronty na pohyb
  }
}

function showMenu2(id)
{
  //fce pro posun menu směrem dolů
  //volá cyklicky sama sebe dokud menu nedojede dolů
  var top = parseInt(getTop('hiddenMenu' + id));//urči top pozici menu
  if ((!moveUp) && top < down_pos) // testuje, zda není pohyb rušen uživatelem nebo není menu v dolní pozici
  {
    setTop('hiddenMenu' + id,true,krok_dolu);//posuň menu směrem dolů
    timer = setTimeout('showMenu2(' + id + ')',showtimer);//zavolej sama sebe za daný počet milisekund
  }else{
    moveUp = true;//příznak, že menu jede nahoru
    justMovingDown = false;
  }
  
}


function hideMenu(id)
{
  //fce pro schování menu
  if (dhtml)
  {
    if (!justMovingUp) // testuje, zda už se menu nepohybuje
    {
      moveUp = true;
      clearTimeout(timer);
      showMenu2(id);
      justMovingUp = true;
      //když se nepoužije timeout ale přímé volání funkce menu se cuká při přechodu myši mezi jednotlivými položkami menu
      timer = setTimeout('hideMenu2(' + id + ')',hidetimer);//volej opakovaně schovávací funkci
      
    }
    else if (queue == id) queue = '';
  }
}



function menu_nahore_2()
{
  var prikaz = [];
  for(var i in top_pozice)
  {
    var radek = "((getTop('hiddenMenu" + i + "') > -" + top_pozice[i] + ") && (id == " + i + "))";
    prikaz.unshift(radek); 
  
  }
  vysled = prikaz.join(" || ") + "&& (moveUp);";
 
  return  vysled;
 
}

function hideMenu2(id)
{
  //fce pro schování menu, posouvá menu dokud není schované
  if(eval(menu_nahore_2()))//pohybuje se a ještě není úplně nahoře ?
  {
    setTop('hiddenMenu' + id,true,-krok_nahoru);//posuň menu
    timer = setTimeout('hideMenu2(' + id + ')',hidetimer);//zavolej sama sebe pro další posun
  }
  else
  {
    moveUp = false;
    justMovingUp = false;
    if (queue != '') showMenu(queue);//když je nějaké menu ve frontě, začni s jeho zobrazením
  }
}

function dontHideMenu(id)
{
  //fce která brání schování menu
  //na mouseover ji volá každý div hiddenMenu1 2 atd. obsahující skryté menu
  if (dhtml)
  {
    if ((!justMovingDown) && (!justMovingUp)) clearTimeout(timer);
    if (moveUp) showMenu(id);
  }
}


//------------------pohyblivé menu Hennlich KONEC ---------------------
function velky(id,w,h) 
{ 
	//fci volá klik na obrázku ve fotogalerii
	//fce otevře nové okno(když už existuje vybere stávající)
	//o zobrazení obrázku se postará skript obrázek.php
	if(w==undefined)w=200;
	if(h==undefined)h=200;
  w = parseInt(w) + 10;//okno bude o něco větší, aby se obr. neořízl
	h = parseInt(h) + 50;//vyšší pro nadpis
  var param = 'left=0,top=0,width=' + w + ',height=' + h;//parametry pro otevření nového okna
  //var param = 'width=' + w + ',height=' + h;//parametry pro otevření nového okna
  //var src = "obrazek.php?id=" + id;//rozměry předám i na příkazové řádce, pro případný resize okna
  var src = "obrazek.php?id=" + id+ "&w=" + w+ "&h=" + h;//rozměry předám i na příkazové řádce, pro případný resize okna
  var nw = window.open(src,"detail",param);//otevři
	nw.focus();//přepni se do něj
}


function otevri(katalog,program) 
{ 
//asi se nepoužije
alert(katalog+ "_" +program);
}

function obchod(par,id) 
{ 
alert(par);
//fce otevírá nové okno s obchodem
//aby byla v menu obarvená položka na kterou jsme klikli, musím ji obarvit
// a položku která byla dřív obarvená, musíme přebarvit na zákl. barvu
var menu = document.getElementById("div_menu");//najdi menu
var odkazy = menu.getElementsByTagName("A");//najdi všechny odkazy v menu
for (var i=0; i<odkazy.length ;i++)
{
		var tr = odkazy[i].className;//třída odkazu
    if (tr == "pol_konc_sel")odkazy[i].className ="pol_konc";//přebarvi na zákl.
    if (tr == "pol_rod_sel")odkazy[i].className ="pol_rod";//přebarvi na zákl.
}
document.getElementById(id).className = "pol_konc_sel";	//odkaz na který jsem klik obarvím
w = window.open(par,"obchod","width=900,left=50,top=0,status=no,resizable=yes");
w.title = "D & K Střechy"
w.focus();
}

function start_menu() 
{ 
	return;
	//fce se volá při onload menu.php
	//fce otevírá dokument na plochu voláním main.php (vyjímka je když se menu.php volalo z main.php)
	//dál fce nalistuje v menu správnou větev
	//nakonec fce přebarví horní menu s redakcemi, 
	//alert("nalistuj " + fol_akt);
	if(main_par != "")window.open(main_par,"main");//spust skript pro načtení plochy
	
	if(fol_akt != 0)nalistuj(fol_akt); //nalistuje v menu správnou větev, když je definovaná
	//alert("x" + redakce + "x");
	//if(redakce != "")zmen_pozadi(redakce);//přebarví horní menu s redakcemi, při startu není redakce def. je = ""
}

function rozdel_vlast() 
{ 
	//fce rozpitvá vlastnosti redakcí (barva atd.) došlé ze serveru
	//a uloží je do proměnné hlavního okna
	//alert("došlo " + redakce_vl);
	
}

function sipka_s(o) 
{
	//return;
	//if(sipka_u.videt == false)return;

	while(o.nodeName != "TABLE") o = o.parentNode;
	//alert(o.id);
	var idd = o.id.split("_");
	o.style["backgroundColor"] = idd[1] == 0 ? "white" : "#D0D7DF";


	return;//na webu odbarvování cyklem nechodí. Proč??	
	o.out = "A";
	if (!cykl.id)
	{
	cykl.id = setInterval(cykl,200);
	alert("nastartován cyklus");
	}
	
	
}



function cykl() 
{ 
	var mnu = document.getElementById("div_menu");	
	var tabs = mnu.getElementsByTagName("table");
	for (var i=0; i<tabs.length ;i++)
	{
		alert(tabs[i].id);
		if(tabs[i].out = "A")tabs[i].style["backgroundColor"] = "white";	
	}
	//clearInterval(cykl.id);
}	
	
function sipka_schovej() 
{ 
	alert("aa");
	//sipka_s.sipka.style.display = 'none';

}
//alert("s"); 

function sipka_u(o) 
{ 
	//if(sipka_u.videt == true)return;
	while(o.nodeName != "TABLE") o = o.parentNode;
	o.style["backgroundColor"] = "#A0C8FF";
	o.out = false;
	var obr = o.getElementsByTagName("img");
	//alert(obr.length);
	if(obr[0].nodeName == "IMG")
	{
		sipka_u.videt = "A";
		obr[0].style.display = 'inline';
		//setTimeout("obr[0].style.display = 'block'",100);
	}
	
//alert(a.nodeName);
//alert("u");
}


function form_submit() 
{
	if(document.forms[0].hledej.value.length<=2) {
		alert("Hledaný výraz musí mít alespoň 3 znaky");
		return false;
		}
	else return true;
}

//KONEC -------------- Fce pro TOP.PHP ------------------

//-------------------- Fce pro MENU.PHP ------------------

function schovej_u1() 
{ 
	return;
	//fce schová všechny menu úrovně 1
	//použije se když jsem menu rozbalil nic z něj nevybral a klik na jinou položku v zákl. menu
	//alert("fce schovej_U1");
	schovej_u1.videt = false;
	top.document.getElementById("ifr_menu").style.width = 148;
	return;
	var mnu = document.getElementById("div_menu");
	var divs = mnu.getElementsByTagName("div");	
	for (var i=0; i<divs.length ;i++)
	{
		var idd = divs[i].id.split("_");
		if(idd[0] == 1)
		{
			alert("schovávám " + divs[i].id);
			divs[i].style.display = "none";

		}
	}
}

function seznam(id_seznamu) 
{
	//fce slouží k zobrazení menu 2. úrovně
	//aby mohlo být menu vidět, musím rozšířit iframe "ifr_menu"
	//aby sahal až nad iframe s hlavní plochou
	//dál jen najdu div ve kterém je menu schované a ukážu ho
	//alert("fce seznam");	
	var fr = top.document.getElementById("ifr_menu");//najdi iframe
	var tab = document.getElementById("_" + id_seznamu + "_");//najdi div s menu, který mám ukázat
	//var pic = document.getElementById("img_" + id_seznamu);
	//alert(pic.src);
	//alert(tab.style.display)
	//if (tab.style.display == "none")//když menu není vidět, musím ho ukázat a rozšířit iframe
	//{
		fr.style.width = menu_sirka_velka;//rozšiř iframe
		tab.style.display = "inline";//ukaž menu
	//}
	schovej_u1.videt = true;//poznamenej si, že je iframe rozšířený
}

function schovej_menu(hl,id)
{
  var divy = document.getElementsByTagName("DIV");
  for (var i=0; i<divy.length ;i++)
  {
    if(divy[i].id != "")
    {
      var d = divy[i].id.split("_");
      if(d[0]=="podmnu" && d[1]>= hl) divy[i].style.display = "none";
    }
    //alert(divy[i].id );
  }
}

function vybrano(o,hl,id)
{
	//fce se volá vždy když kliknu na položku menu
	//zajistí označení vybrané položky a pokud je v druhé úrovni tak i označení nadřízené
	
  schovej_menu(hl,id);
  document.getElementById("podmnu_" + hl + "_" + id).style.display = "block";
  return;
  var odkaz = o;
	while(o.nodeName != "TABLE") o = o.parentNode;//
	r_id = o.id.split("_");//rozděl id tabulky
	if (r_id[0] == "tbl" && r_id[1] == 0)//položka je na 1. úrovni menu
	{
		odkaz.style.color = menu0_sel_color;
	}else{
		odkaz.style.color = menu1_sel_color;
		while(o.nodeName != "DIV") o = o.parentNode;//
		//alert("schovám div " + o.id);
		o.style.display = "none";
	}
	top.document.getElementById("ifr_menu").style.width = menu_sirka_def;	
}

function zrus_barvu() 
{ 
	//fce zruší obarvení dříve vybraných složek
	//projdu všechny odkazy v menu a nastavím jim default barvu
	//pozor, základní úroveň má jinou barvu
	//úroveň odkazu poznám podle tabulky do které je vložen
	//id tabulek mají strukturu tbl_hloubka_iddokumentu
	var fr = document.getElementById("div_menu");//div ve kterém je celé menu
	var odk = fr.getElementsByTagName("a");//najdi všechny odkazy
	for (var i=0; i<odk.length ;i++)//cykl přes odkazy
	{
		var o = odk.item(i);//jeden odkaz
		while(o.nodeName != "TABLE") o = o.parentNode;//prohrabu se k tabulce ve které je vložen
		var r_id = o.id.split("_");//rozdělím id tabulky
		if (r_id[0] == "tbl")//je to tabulka menu
		{
			var barva = r_id[1] == 0 ? menu0_def_color : menu1_def_color;//zákl. úroveň má jinou barvu než ostatní
			odk.item(i).style.color = barva;//nastav ji
		}
	}


}




function show_f(folder) {
	
	var labs = document.getElementsByTagName("label");
	for(i=0;i<labs.length;i++) labs[i].style.color="white";
	document.getElementById(folder.id).style.color="#000000";
	show_f2(folder.id);
}

function show_f2(folder) {
	alert("volám main.php");
	window.open("main.php?f="+folder,"main");
	//window.open("main.php?f="+folder+"&redakce=<? echo $redakce; ?>","main");
}

function nalistuj(id) 
{ 
	//fci volá klik na dokument na ploše, vypisuje je tam main.php
	//kromě toho se volá vždy, když se dokončí natažení menu (onload v menu.php)
	//fce by měla v menu nalistovat větev s dokumentem jako když by ho user nalistoval ručně
	//jako parametr dostane id větve kterou má nalistovat
	//když id větve není def. nebo je 0 fce končí
	var dm = top.frames["menu"];//frame ve kterém je menu
		var lab = dm.document.getElementsByTagName("label");//ve framu najdi všechny labely
	//alert("labelů je " + lab.length);
	for (var i=0; i<lab.length ;i++)
	{
		//alert(lab[i].id + "__" + id);
		if(lab[i].id == id)//je to větev ve které je vybraný dokument
		{
			lab[i].style.color="#000000";//černý text
			var src = lab[i];//label si zapamatuju
		}else{
			lab[i].style.color="white";//všechny ostatní přebarvím na bílo
		}
	}
	if(src == undefined) return; //asi není zobrazeno správné menu
	//teď pojedu od labelu nahoru přes rodiče a ukážu všechny  DIVY
	while(src.id != "div_menu")//jeď až na vršek framu
	{
		 //alert(src.nodeName);
		 src = src.parentNode;//vem rodiče
		 if(src.nodeName == "DIV")
		 {
		 	src.style["display"] = "inline";//je to div, ukážu ho
			if(src.previousSibling)vymen_pic(src.previousSibling);//když je před divem tabulka, musím v ní změnit obrázek na minus
		}
	}
	//alert("konec nalistuj");
}

function vymen_pic(tab) 
{ 
	if(tab.nodeName != "TABLE") return; //pokud není tabulka
	//změní obrázek v předané tabulce na minus.gif
	var pics = tab.getElementsByTagName("img");
	if(pics.length == 0) return;//když nenašel obrázky
	if(pics[0].id.indexOf("img_") == 0)	pics[0].src = "img/minus.gif";	//když má obrázek id začínající img_ je to plus.gif, změním ho na minus


}


function vycisti(co) 
{ 
	//funkce najde objekt podle id a vyhodí z něj všechny child prvky
	//používá se pro vyčištění DIVu, např. vymazání menu, které jsem do divu vložil
	//jako parametr můžu zadat i přímo objekt, pak ho nehledám, ale rovnou čistím
	//prázdný objekt fce vrátí
	if(typeof(co) != "object")co=vrat_objekt(co);
	//alert("čístím " + co.nodeName + " id= " + co.id);
	while(co.hasChildNodes()) co.removeChild(co.firstChild);
	return co;
}

function rozdel(text,r1) 
{ 
	var pole = new Array();
	if (arguments[1] == undefined) //nezadáno podle čeho dělit,zkusím nejdřív čárky pak mezery
	{
		if (text.indexOf(",") != -1)
		{
			var dilky = text.split(","); //rozdělíme podle čárek
		}else if(text.indexOf(" ") != -1){
			var dilky = text.split(" "); //rozdělíme podle mezer
		}else{
			alert("Chyba ve fci rozdel, není podle čeho dělit!!");
		}
		
	}else{
		var dilky = text.split(r1); //rozdělíme podle r1	
	}

	
	if (arguments[2] == undefined) //text vrátím druhý dělící znak není
	{	//jen z pole dilky udělám asoc. pole
		for (i=0; i< dilky.length;i=i+2)pole[trim(dilky[i])] = trim(dilky[i+1]);
		return pole;
	}
	//vypis_pole(dilky);
	for ( var i in dilky) //všechny části opět rozřežeme podle r2
	{
		if (dilky[i].length > 0)
		{
			var dilecky = dilky[i].split(arguments[2]);//jdeme pitvat části podle arguments[2]
			//alert(dilecky.length );
			if (dilecky.length < 2) alert ("Chyba při dělení textu podle " + arguments[1] + " " + arguments[2] + " Text: " + text);
			pole[trim(dilecky[0])] = trim(dilecky[1]);//musíme ořezat mezery aby byly holé texty
		}
	}
	return(pole);
}

function trim(text) 
{ 
	var bez_mezer =  text.replace(/^\s*(.*[^\s$])\s*$/,"$1");
	//alert ("x" + bez_mezer + "x");	
	return bez_mezer ;
}
function vypis_pole(pole)
{ 
	//Funkce vypíše obsah asociativního pole,nebo vlastnosti objektu.
	//Vlastnosti vypisuje ve skupinách po 20. Bez přechodu na nový řádek se blbě hledá, a jinak se nevejde na obrazovku
	var nazvy="";
	var citac=0;
	for (var nazev in pole) 
	{
		citac++;
		nazvy +=nazev + "=" + pole[nazev] + "\n";
		if (citac==20)
		{
			alert (nazvy);
			var citac=0;
			var nazvy="";
		}
	
	}
			alert (nazvy);
}

function sav_sipka_s(o) 
{
	if(sipka_u.videt == false)return;
	while(o.nodeName != "TABLE") o = o.parentNode;
	o.style["backgroundColor"] = "white";
	var obr = o.getElementsByTagName("img");
	//alert(
	if(obr[0].nodeName == "IMG")
	{
		if(!cykl.co)cykl.co = [];
		cykl.co.push(obr[0]);
		if (!cykl.id)cykl.id = setInterval(cykl,2000);
		//alert(cykl.id);
		//sipka_u.videt = false;
		//obr[0].style.display = 'none';
		//setTimeout("sipka_schovej()",300);
	}
}
