var StartoFunkcioj = new Array();
UziStartoFunkciojn();
AldoniStartoFunkcion('preparu()');

function preparu() {
    InstaliSuperBiblon('pagho');
    InstaliLangetojn();
    InstaliMenuon();
}

/* Mastrumado de pluraj startofunkcioj */
function PlenumiStartoFunkciojn() {
    for (var x = 0; x < StartoFunkcioj.length; x++) {
        eval(StartoFunkcioj[x]);
    }
}

function UziStartoFunkciojn() {
    window.onload = PlenumiStartoFunkciojn;
}

function AldoniStartoFunkcion(f) {
    StartoFunkcioj[StartoFunkcioj.length] = f;
}

function InstaliMenuon() {
    var lioj = $('menulisto').getElementsByTagName('li');
    for (var x = 0; x < lioj.length; x++) {
        lio = lioj[x];
        var sublioj = lio.getElementsByTagName('ul');
        if (sublioj.length > 0) {
            lio.className += " x";
        }
        if (document.all && document.getElementById) {
            lio.onmouseover=function() {
                this.className += " musumo";
            }
            lio.onmouseout=function() {
                this.className=this.className.replace(" musumo", "");
            }
        }
    }
}

function IndikuTempozonon(id) {
    var dato = new Date();
    var tempozono = (dato.getTimezoneOffset())/60*(-1);
    var opcioj = $(id).getElementsByTagName('option');
    for (var x = 0; x < opcioj.length; x++) {
        if (opcioj[x].value == tempozono) {
            opcioj[x].selected = true;
            return true;
        }
    }
}

function InstaliLangetojn() {
    var i = 0;
    if (!$('langetoj')) return false;
    var langetoj = $('langetoj').getElementsByTagName('li');
    for (var x = 0; x < langetoj.length; x++) {
        langetoj[x].num = i++;
        langetoj[x].onmouseover = function() {
            langeto(this.num);
        }
    }
    //meti kuketon pri elekto
}

function langeto(num) {
    var langetoj = $('langetoj').getElementsByTagName('li');
    for (var x = 0; x < langetoj.length; x++) {
        langetoj[x].className = '';
        $('novajhoj'+x).hide();
    }
    langetoj[num].className = 'liaktiva';
    $('novajhoj'+num).show();
}

function InstaliSuperBiblon(kie) {
    var superbibloj = $(kie).getElementsByTagName('*');
    for (var x = 0; x < superbibloj.length; x++) {
        if (superbibloj[x].title && superbibloj[x].title != '') {
            superbibloj[x].enhavo = superbibloj[x].title;
            superbibloj[x].title = '';
            superbibloj[x].onmouseover = SuperEk;
            superbibloj[x].onmouseout = SuperFor;
        }
    }
}

function SuperEk(e) {
    var obj = this;
    var enhavo = this.enhavo;
    if (!e && window.event) e = window.event;
    var pozx = 0;
    var pozy = 0;
    if (e.pageX || e.pageY) {
        pozx = e.pageX;
        pozy = e.pageY;
    } else if (e.clientX || e.clientY) {
        pozx = e.clientX + document.documentElement.scrollLeft;
        pozy = e.clientY + document.documentElement.scrollTop;
    }
    var fenestrolargho;
    var fenestroalto;
    if (window.innerWidth) {
        fenestrolargho = window.innerWidth;
        fenestroalto = window.innerHeight;
    } else if (document.documentElement && document.documentElement.clientWidth) {
        fenestrolargho = document.documentElement.clientWidth;
        fenestroalto = document.documentElement.clientHeight;
    }
    var distancox = e.clientX;
    var distancoy = e.clientY;
    var enhavodiv;
    if (!obj.superbibl) {
        obj.superbibl = document.createElement('div');
        obj.superbibl.className = 'superbibl';
        enhavodiv = document.createElement('div');
        enhavodiv.className = 'superbiblenhavo';
        enhavodiv.innerHTML = enhavo;
        if (obj.titolo) {
            obj.superbibl_titolo = document.createElement('h2');
            obj.superbibl_titolo.innerHTML = obj.titolo;
            obj.superbibl.appendChild(obj.superbibl_titolo);
        }
        obj.superbibl.appendChild(enhavodiv);
        document.body.appendChild(obj.superbibl);
    }
    if (obj.superbibl) {
        obj.superbibl.style.display='block';
        if (Prototype.Browser.IE && navigator.appVersion.include('MSIE 6')) {
            obj.superbibl.style.width = '20em';
        } else obj.superbibl.style.maxWidth = '20em';
        if ((fenestroalto - distancoy) > distancoy) {
            /* Sube */
            obj.superbibl.style.top = (pozy+8) + 'px';
        } else {
            /* Supre */
            var superbiblalto;
            if (obj.superbibl.offsetHeight) superbiblalto = obj.superbibl.offsetHeight;
            else superbiblalto = parseInt(window.getComputedStyle(obj.superbibl,null).height);
            var loko = pozy-superbiblalto-10;
            if (loko < 0) loko = 0;
            obj.superbibl.style.top = loko + 'px';
        }
        if ((fenestrolargho - distancox) > distancox) {
            /* Dekstre */
            var shovo;
            if (window.pageXOffset) shovo = window.pageXOffset;
            else shovo = document.documentElement.scrollLeft;
            obj.superbibl.style.visibility = 'hidden';
            var superbibllargho;
            if (obj.superbibl.offsetWidth) superbibllargho = obj.superbibl.offsetWidth;
            else superbibllargho = parseInt(window.getComputedStyle(obj.superbibl,null).width);
            var loko = pozx;
            obj.superbibl.style.left = loko + 'px';
            if (Prototype.Browser.IE && navigator.appVersion.include('MSIE 6')) {
                AldoniKashoKadron(obj);
            }
            obj.superbibl.style.visibility = 'visible';
        } else {
            /* Maldekstre */
            var shovo;
            if (window.pageXOffset) shovo = window.pageXOffset;
            else shovo = document.documentElement.scrollLeft;
            obj.superbibl.style.visibility = 'hidden';
            var superbibllargho;
            if (obj.superbibl.offsetWidth) superbibllargho = obj.superbibl.offsetWidth;
            else superbibllargho = parseInt(window.getComputedStyle(obj.superbibl,null).width);
            var loko = pozx-superbibllargho;
            if (loko-shovo < 0) loko = shovo;
            obj.superbibl.style.left = loko + 'px';
            //if (document.all)
            if (Prototype.Browser.IE && navigator.appVersion.include('MSIE 6')) {
                AldoniKashoKadron(obj);
            }
            obj.superbibl.style.visibility = 'visible';
        }
    }
    return false;
}

function AldoniKashoKadron(obj) {
    // Aldoni suban "iframe"-on por Esplorilo
    if (!obj.kashokadro) {
        var kashokadro = document.createElement('iframe');
        kashokadro.className = 'kashokadro';
        kashokadro.scrolling = 'no';
        kashokadro.frameborder = 0;
        obj.kashokadro = kashokadro;
        document.body.appendChild(kashokadro);
    }
    if (obj.kashokadro) {
        var width = obj.superbibl.scrollWidth;
        var height = obj.superbibl.clientHeight;
        var left = obj.superbibl.offsetLeft;
        var top = obj.superbibl.offsetTop;
        obj.kashokadro.style.width = (width) + 'px';
        obj.kashokadro.style.height = (height+2) + 'px';
        obj.kashokadro.style.left = (left) + 'px';
        obj.kashokadro.style.top = (top) + 'px';
        obj.kashokadro.style.display = 'block';
        obj.kashokadro.style.zIndex = 99999;
    }
}

function SuperFor() {
    var obj = this;
    if (obj.superbibl && obj.superbibl.style.display == 'block') {
        if (obj.kashokadro) obj.kashokadro.style.display='none';
        obj.superbibl.style.display='none';
    }
    return false;
}
