/*Genetic Calculator Intro
(c) 2002-2003 Martin Rasek*/

addEvent(window, "load", makeTrees);
addEvent(window, "load", init);

var flags = ["eng","cz","spa","ger","fre","dutch"];
var currentLang;
var isUp=0;

function init(){
	var k,l,i,el;
		
	if (!document.createElement) return;
	
	currentLang = parseInt(readC("lang"));
	//document.write(val);
	if (!isNaN(currentLang)){setLang(currentLang);}
	else {setLang(0);}
	setFlag(currentLang,0);
	for (k=0;k<flags.length;k++){
		el=document.getElementById("f"+flags[k]);
		if (el!=null){
			el.onclick = changeLang;
			el.onmouseover = changeFlagsOver;
			el.onmouseout = changeFlagsOut;
		}
	}
	el=document.getElementsByTagName("span");
	for(k=0;k<el.length;k++){el[k].style.display="none";}
// added for seminar
	el=document.getElementById("close");
	if (el!=null){el.onclick = closeSem;}
}

function closeSem(){
	el=document.getElementById("inz");
	if (el!=null){el.style.display="none";}
}

// konec added for seminar

function setFlag(val,stat){
	for (k=0;k<flags.length;k++){		
		el=document.getElementById("f"+flags[k]);
		if (el!=null){
			if((stat==1)&&(k==val)){el.src="pic/"+flags[k]+".gif";}
			if((stat==0)&&(k!=currentLang)){el.src="pic/"+flags[k]+"_sel.gif";}
		}
    }
}

function setLang(val){
	currentLang=val;
	if (val!=1) {closeSem();}     // seminar
	for (k=0;k<flags.length;k++){		
		el=document.getElementById(flags[k]);
		if (el!=null){
			if(k!=val){el.style.display="none";}
			else{el.style.display="block";}
		}
		el=document.getElementById("l"+flags[k]);
		if (el!=null){
			if(k!=val){el.style.display="none";}
			else{el.style.display="inline";}
		}
		el=document.getElementById("h"+flags[k]);
		if (el!=null){
			if(k!=val){el.style.display="none";}
			else{el.style.display="inline";}
		}
	}
	writeC("lang",val,30);
}

function changeFlagsOver(){
	var lg = this.getAttribute("id").substr(1);
	for (k=0;k<flags.length;k++){if(flags[k]==lg){setFlag(k,1);break;}}
}

function changeFlagsOut(){
	var lg = this.getAttribute("id").substr(1);
	for (k=0;k<flags.length;k++){if(flags[k]==lg){setFlag(k,0);break;}}
}

function changeLang(){
	var lg = this.getAttribute("id").substr(1);
	for (k=0;k<flags.length;k++){if(flags[k]==lg){setLang(k);break;}}
}




/*** Tree ******************************/


function makeTrees() {

    if (!document.createElement) return;
	if (document.styleSheets && (document.styleSheets.length==0)) return;

	currentLang = parseInt(readC("lang"));

    var uls = document.getElementsByTagName("ul");
    for (var uli=0;uli<uls.length;uli++) {
        ul = uls[uli];
        if (ul.nodeName == "UL" && ul.className == "sp") {
            processULEL(ul);
        }
    }
	var els = document.getElementsByTagName("a");
    for (var i=0;i<els.length;i++) {
        el = els[i];
        if (el.nodeName == "A" && ((el.className == "up")||(el.className == "down"))) {
            shift(el);
        }
    }
}

function processULEL(ul) {
    if (!ul.childNodes || ul.childNodes.length == 0) return;
    // Iterate LIs
    for (var itemi=0;itemi<ul.childNodes.length;itemi++) {
        var item = ul.childNodes[itemi];
        if (item.nodeName == "LI") {
            // Iterate things in this LI
            var a;
            var subul;
            for (var sitemi=0;sitemi<item.childNodes.length;sitemi++) {
                var sitem = item.childNodes[sitemi];
                switch (sitem.nodeName) {
                    case "A": a = sitem; break;
					case "DIV": a = sitem; break;
					case "VAR": a = sitem; break;
                    case "UL": subul = sitem; 
                               processULEL(subul);
                               break;
                }
            }
            if (subul) {
				a.parentNode.style.listStyleImage = "url(pic/p.gif)";
                associateEL(a,subul);
            }/* else if(a){
                a.parentNode.style.listStyleImage = "url(pic/bullet.gif)";
			}*/
			subul=0;
			a=0;
        }
    }
}

function associateEL(a,ul) {
	var y;
    a.onclick = function (e) {
        var display = ul.style.display;
        this.parentNode.style.listStyleImage = (display == "block") ? "url(pic/p.gif)" : "url(pic/m.gif)";
        ul.style.display = (display == "block") ? "none" : "block";
        return true;
    }
    a.onmouseover = function() {
        var display = ul.style.display;
        window.status = (display == "block") ? "Collapse" : "Expand";
	return true;
    }
    a.onmouseout = function() {
        window.status = "";
	return true;
    }
}

var sc=0;
var pos=2;
var step=30;

function shift(a){
	var dir=-1;
    	var ulsp= new Array();
	if(a.className == "up") {dir=1;}
	var sp = document.getElementsByTagName("ul");
	var j=0;
	for (var i=0;i<sp.length;i++) {
	    var el = sp[i];
        if (el.nodeName == "UL" && el.className == "sp"){
			ulsp[j++]=el;
        }
    }
	a.onclick = function () {
		if (pos + dir*step<=2){pos = pos + dir*step;}
        	for (var i=0;i<ulsp.length;i++){
            		ulsp[i].style.top = pos+"px";
        	}
		return true;
	}
	a.onmouseover = function () {
		a.childNodes[0].src = "pic/"+a.className+"_over.gif";
		return true;
	}
	a.onmouseout = function () {
		a.childNodes[0].src = "pic/"+a.className+".gif";
		return true;
	}
}


/*** Utility ******************************/

function addEvent(obj, eT, fn){
  if (obj.addEventListener){
    obj.addEventListener(eT, fn, true);
    return true;
  } else if (obj.attachEvent){
	var r = obj.attachEvent("on"+eT, fn);
    return r;
  } else {
	return false;
  }
}


function writeC(name,val,days){
	exp=new Date();
	exp.setTime(exp.getTime()+(86400000*days))
	document.cookie=name+"="+escape(val)+"; expires="+exp.toGMTString()+"; path=/";
}

function readC(name){
	name=name+"=";
	len=name.length;
	cook=document.cookie
	clen=cook.length;
	from=0;
	while(from<clen){
	  upto=from+len;
	  if (cook.substring(from,upto)==name){
		endstr=cook.indexOf(";",upto);
		if (endstr==-1) endstr=cook.length;
		res=unescape(cook.substring(upto,endstr));
		return (res);
  	  }
	  from=cook.indexOf(" ",from)+1;
	  if (from==0) break;
	}
	return (null);
}