var offsetfromedge=0      //offset from window edge when content is "docked". Change if desired.
var dockarray=new Array() //array to cache dockit instances
var dkclear=new Array()   //array to cache corresponding clearinterval pointers

function dockit(el, duration){
this.source=document.all? document.all[el] : document.getElementById(el);
this.source.height=this.source.offsetHeight;
this.docheight=truebody().clientHeight;
this.duration=duration;
this.pagetop=0;
this.elementoffset=this.getOffsetY();
dockarray[dockarray.length]=this;
var pointer=eval(dockarray.length-1);
var dynexpress='dkclear['+pointer+']=setInterval("dockornot(dockarray['+pointer+'])",100);';
dynexpress=(this.duration>0)? dynexpress+'setTimeout("clearInterval(dkclear['+pointer+']); dockarray['+pointer+'].source.style.top=0", duration*1000)' : dynexpress;
eval(dynexpress);
}

dockit.prototype.getOffsetY=function(){
var totaloffset=parseInt(this.source.offsetTop);
var parentEl=this.source.offsetParent;
while (parentEl!=null){
totaloffset+=parentEl.offsetTop;
parentEl=parentEl.offsetParent;
}
return totaloffset;
}

function dockornot(obj){
obj.pagetop=truebody().scrollTop;
var iTop = 0;
if (obj.pagetop>obj.elementoffset) //detect upper offset
   iTop = obj.pagetop-obj.elementoffset+offsetfromedge+125;
else if (obj.pagetop+obj.docheight<obj.elementoffset+parseInt(obj.source.height)) //lower offset
   iTop = obj.pagetop+obj.docheight-obj.source.height-obj.elementoffset-offsetfromedge;
if(iTop < 0) iTop = 0;
obj.source.style.top = iTop.toString() + "px";
}

function truebody(){
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

/* legordulo menu ********************************************************/

    bInMenu = false;
    bFirst  = true;
    sLast   = "";

    function menu (obj) {
        bInMenu = true;
        sOld    = sLast;
        sLast   = obj.id;
        if(bFirst)
	        bFirst = false;
//	    else
//	        clear(sOld);

	    browser = navigator.appName;
        
        if (browser == "Microsoft Internet Explorer") {
            subleft = 
                document.getElementById("site").offsetLeft +
                document.getElementById(obj.id).offsetLeft - 10;
        }
        else
            subleft = document.getElementById(obj.id).offsetLeft - 10;

        if (browser == "Microsoft Internet Explorer") {
            subtop = document.body.offsetTop +
            document.getElementById("container").offsetTop +
            document.getElementById("menu").offsetTop;
        }
        else
            subtop = 0;

        subtop +=
            document.getElementById("menu").offsetTop +
            document.getElementById(obj.id).offsetHeight;

        //submenux = document.getElementById("sub_" + obj.id);
        aSubMenuId = obj.id.split("_");
        sSubMenuId = aSubMenuId[aSubMenuId.length - 1];
        submenux = document.getElementById("sub_Menu1_" + sSubMenuId);
        submenux.style.left  = subleft + "px";
        submenux.style.top   = subtop  + 10 + "px";
        submenux.style.visibility = "visible";
    }

    function clear (sMenu) {
        if(sMenu.search(/^sub_/) != -1) {
            aMenu = sMenu.split("_");
            sMenu  = aMenu[1];
        }
        
        if (bInMenu && sLast == sMenu)
          return;

        document.getElementById("sub_Menu1_" + sMenu).style.visibility = "hidden";
    }

    function timeout(obj) {
        sMenu = obj.id;
        
        if(sMenu.search(/^sub_/) != -1) {
            aMenu = sMenu.split("sub_");
            sMenu = aMenu[1];
        }
        bInMenu = false;
        aSubMenuId = obj.id.split("_");
        sMenu= "sub_"+aSubMenuId[aSubMenuId.length - 1];
        window.setTimeout("clear('" + sMenu + "');",1000);
    }

    function submenu() {
        bInMenu = true;
    }
