﻿/**
* @author Sławomir Kokłowski {@link http://www.kurshtml.boo.pl}
* @copyright NIE usuwaj tego komentarza! (Do NOT remove this comment!)
*/

function Menu(id, style, otworz, wysun, czasRozwin, czasZwin, czasOtworz, czasZamknij, nieInicjalizuj) {
    if (typeof czasRozwin == 'undefined' || czasRozwin < 0) czasRozwin = 20;
    if (typeof czasZwin == 'undefined' || czasZwin < 0) czasZwin = 20;
    if (typeof czasOtworz == 'undefined' || czasOtworz < 0) czasOtworz = 250;
    if (typeof czasZamknij == 'undefined' || czasZamknij < 0) czasZamknij = 500;

    var url = unescape(window.location.href.replace(/#.*/, ''));
    var base = window.location.protocol + '//' + window.location.host + window.location.pathname.replace(/[^\/\\]+$/, '');

    if (style) {
        if (style.indexOf(':') < 0) {
            document.getElementById(id).className += ' ' + style;
        }
        else {
            style = style.replace(/(^\s+|(\s|;)+$)/g, '').split(/\s*;\s*/);
            for (var i = 0; i < style.length; i++) {
                style[i] = style[i].split(/\s*:\s*/);
                for (var j = 0, c, property = ''; j < style[i][0].length; j++) {
                    c = style[i][0].charAt(j);
                    property += c == '-' ? style[i][0].charAt(++j).toUpperCase() : c.toLowerCase();
                }
                eval('document.getElementById("' + id + '").style.' + property + ' = "' + style[i][1].replace(/"/g, '\\"') + '"');
            }
        }
    }

    for (var i = 0; i < document.getElementById(id).getElementsByTagName('dt').length; i++) {
        var dd = new Array();
        var el = document.getElementById(id).getElementsByTagName('dt')[i].nextSibling;
        var nodeName;
        while (el && (nodeName = el.nodeName.toLowerCase()) != 'dt') {
            if (nodeName == 'dd') {
                el._dt = document.getElementById(id).getElementsByTagName('dt')[i];
                if (otworz) {
                    el.onmouseover = function() {

                        clearTimeout(this._dt._timoutID);
                        this._dt._displayed = false;
                        this._dt.onclick();
                    }
                    el.onmouseout = function() {
                        clearTimeout(this._dt._timoutID);
                        var dt = this._dt;
                        this._dt._timoutID = setTimeout(function() { dt._displayed = true; dt.onclick(); }, czasZamknij);
                    };
                }
                dd[dd.length] = el;
            }
            el = el.nextSibling;
        }
        document.getElementById(id).getElementsByTagName('dt')[i]._dd = dd;
        document.getElementById(id).getElementsByTagName('dt')[i]._timoutID = null;
        document.getElementById(id).getElementsByTagName('dt')[i]._displayed = false;
        document.getElementById(id).getElementsByTagName('dt')[i].onclick = function() {
            clearTimeout(this._timoutID);
            if (!this._displayed) {
                var el = this.parentNode.getElementsByTagName('dt')[0];
                while (el) {
                    if (el.nodeName.toLowerCase() == 'dt' && el != this) {
                        el._displayed = false;
                        if (el.id == 'pierwszy') el.style.background = "url(Grafiki/menu1.gif)";
                        else if (el.id == 'drugi') el.style.background = "url(Grafiki/menu2.gif) no-repeat bottom";
                        else if (el.id == 'trzeci') el.style.background = "url(Grafiki/menu3.gif) no-repeat bottom";
                        else if (el.id == 'czwarty') el.style.background = "url(Grafiki/menu4.gif) no-repeat bottom";
                        else if (el.id == 'piaty') el.style.background = "url(Grafiki/menu5.gif) no-repeat bottom";
                        else if (el.id == 'szosty') el.style.background = "url(Grafiki/menu6.gif) no-repeat bottom";
                        else if (el.id == 'siodmy') el.style.background = "url(Grafiki/menu7.gif) no-repeat bottom";
                        else if (el.id == 'osmy') el.style.background = "url(Grafiki/menu8.gif) no-repeat bottom";
                        if (czasZwin) display(el, 0);
                        else display(el);
                    }
                    if (this.id == 'pierwszy') this.style.background = "url(Grafiki/menu1-klik.gif)";
                    else if (this.id == 'drugi') this.style.background = "url(Grafiki/menu2-klik.gif) no-repeat bottom";
                    else if (this.id == 'szosty') this.style.background = "url(Grafiki/menu6-klik.gif) no-repeat bottom";

                    el = el.nextSibling;
                }
            }
            if (this._displayed && this.id == 'pierwszy') this.style.background = "url(Grafiki/menu1-klik2.gif)";
            else if (this._displayed && this.id == 'drugi') this.style.background = "url(Grafiki/menu2-klik.gif) no-repeat bottom";
            else if (this._displayed && this.id == 'trzeci') this.style.background = "url(Grafiki/menu3-klik.gif) no-repeat bottom";
            else if (this._displayed && this.id == 'czwarty') this.style.background = "url(Grafiki/menu4-klik.gif) no-repeat bottom";
            else if (this._displayed && this.id == 'piaty') this.style.background = "url(Grafiki/menu5-klik.gif) no-repeat bottom";
            else if (this._displayed && this.id == 'szosty') this.style.background = "url(Grafiki/menu6-klik.gif) no-repeat bottom";
            else if (this._displayed && this.id == 'siodmy') this.style.background = "url(Grafiki/menu7-klik.gif) no-repeat bottom";
            else if (this._displayed && this.id == 'osmy') this.style.background = "url(Grafiki/menu8-klik.gif) no-repeat bottom";
            this._displayed = !this._displayed;
            if (this._displayed && czasRozwin || !this._displayed && czasZwin) {
                display(this, 0);
            }
            else {
                display(this);
            }
        };
        if (otworz) {

            document.getElementById(id).getElementsByTagName('dt')[i].onmouseover = function() {
                clearTimeout(this._timoutID);
                var dt = this;
                this._timoutID = setTimeout(function() { dt._displayed = false; dt.onclick(); }, czasOtworz);
            };
            document.getElementById(id).getElementsByTagName('dt')[i].onmouseout = function() {
                clearTimeout(this._timoutID);
                var dt = this;
                this._timoutID = setTimeout(function() { dt._displayed = true; dt.onclick(); }, czasZamknij);
            };
        }
    }

    start(document.getElementById(id).getElementsByTagName('dt')[0]);

    function start(dt) {
        var hide = true;
        var el = dt;
        while (el) {
            var nodeName = el.nodeName.toLowerCase();
            if (nodeName == 'dt') {
                dt = el;
                hide = true;
            }
            if (nodeName == 'dt' || nodeName == 'dd') {
                if (!nieInicjalizuj && el.getElementsByTagName('a').length) {
                    var active = el.getElementsByTagName('a')[0].href && unescape(el.getElementsByTagName('a')[0].href.replace(/#.*/, '')) == url;
                    if (!active) {
                        var rel = el.getElementsByTagName('a')[0].getAttribute('rel');
                        if (rel) {
                            var matches = (' ' + rel + ' ').match(/\s+Collection\(([^)]+)\)\s+/i);
                            if (matches) {
                                matches = matches[1].split(',');
                                for (var k = 0, pos = -1; k < matches.length; k++) {
                                    if (matches[k].charAt(0) == '[' && (pos = matches[k].lastIndexOf(']')) > 0) {
                                        if (new RegExp(unescape(matches[k].substring(1, pos)), matches[k].substring(pos + 1)).test(url)) {
                                            active = true;
                                            break;
                                        }
                                    }
                                    else {
                                        if (/^[\/\\]/.test(matches[k])) matches[k] = window.location.protocol + '//' + window.location.host + matches[k];
                                        else if (!/^[a-z0-9]+:/i.test(matches[k])) matches[k] = base + matches[k];
                                        if (unescape(matches[k].replace(/[\/\\]\.([\/\\])/g, '$1').replace(/[^\/\\]+[\/\\]\.\.[\/\\]/g, '').replace(/#.*/, '')) == url) {
                                            active = true;
                                            break;
                                        }
                                    }
                                }
                            }
                        }
                    }
                    if (active) {
                        el.style.fontWeight = "bold";
                        el.className = (el.className ? el.className + ' ' : '') + 'active';
                        dt._displayed = true;
                        if (dt.id == 'pierwszy') dt.style.background = "url(Grafiki/menu1-klik2.gif)";
                        else if (dt.id == 'drugi') dt.style.background = "url(Grafiki/menu2-klik2.gif) no-repeat bottom";
                        else if (dt.id == 'trzeci') dt.style.background = "url(Grafiki/menu3-klik.gif) no-repeat bottom";
                        else if (dt.id == 'czwarty') dt.style.background = "url(Grafiki/menu4-klik.gif) no-repeat bottom";
                        else if (dt.id == 'piaty') dt.style.background = "url(Grafiki/menu5-klik.gif) no-repeat bottom";
                        else if (dt.id == 'szosty') dt.style.background = "url(Grafiki/menu6-klik.gif) no-repeat bottom";
                        else if (dt.id == 'siodmy') dt.style.background = "url(Grafiki/menu7-klik.gif) no-repeat bottom";
                        else if (dt.id == 'osmy') dt.style.background = "url(Grafiki/menu8-klik.gif) no-repeat bottom";
                        display(dt);
                        hide = false;
                        var el_parentNode = el.parentNode;
                        while (el_parentNode != document.getElementById(id)) {
                            if (el_parentNode.nodeName.toLowerCase() == 'dd') {
                                var el_sibling = el_parentNode.previousSibling;
                                while (el_sibling) {
                                    if (el_sibling.nodeName.toLowerCase() == 'dt') {
                                        el_sibling._displayed = true;
                                        display(el_sibling)
                                        break;
                                    }
                                    el_sibling = el_sibling.previousSibling;
                                }
                            }
                            el_parentNode = el_parentNode.parentNode;
                        }
                    }
                }
            }
            if (nodeName == 'dd') {
                if (hide) el.style.display = 'none';
                start(el.getElementsByTagName('dt')[0]);
            }
            el = el.nextSibling;
        }
    }

    function display(dt, i) {
        if (typeof i == 'undefined') {
            for (var i = 0; i < dt._dd.length; i++) {
                dt._dd[i].style.display = dt._displayed ? 'block' : 'none';
                if (!dt._displayed) {
                    for (var j = 0; j < dt._dd[i].getElementsByTagName('dt').length; j++) {
                        dt._dd[i].getElementsByTagName('dt')[j]._displayed = false;
                        display(dt._dd[i].getElementsByTagName('dt')[j]);
                    }
                }
            }
        }
        else if (i < dt._dd.length) {
            var dir = wysun ? !dt._displayed : dt._displayed;
            var n = dir ? i : dt._dd.length - 1 - i;
            dt._dd[n].style.display = dt._displayed ? 'block' : 'none';
            if (!dt._displayed) {
                for (var j = 0; j < dt._dd[n].getElementsByTagName('dt').length; j++) {
                    dt._dd[n].getElementsByTagName('dt')[j]._displayed = false;
                    display(dt._dd[n].getElementsByTagName('dt')[j]);
                }
            }
            dt._timoutID = setTimeout(function() { display(dt, i + 1); }, dt._displayed ? czasRozwin : czasZwin);
        }
    }
}

function IsNumber(e) {
    if (!((e.keyCode >= 48 && e.keyCode <= 57) || (e.keyCode == 46))) {
        e.returnValue = false;
    }
}