/** * @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 = 0; if (typeof czasZwin == 'undefined' || czasZwin < 0) czasZwin = 0; if (typeof czasOtworz == 'undefined' || czasOtworz < 0) czasOtworz = 0; if (typeof czasZamknij == 'undefined' || czasZamknij < 0) czasZamknij = 0; 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 (czasZwin) display(el, 0); else display(el); } el = el.nextSibling; } } 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, '').replace(/[^\/\\]+[\/\\]\.\.[\/\\]/g, '').replace(/#.*/, '')) == url) { active = true; break; } } } } } } if (active) { el.className = (el.className ? el.className + ' ' : '') + 'active'; dt._displayed = true; 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); } } } /* Expandable Listmenu Script Author : Daniel Nolan http://www.bleedingego.co.uk/webdev.php */ function initMenus() { if (!document.getElementsByTagName) return; var aMenus = document.getElementsByTagName("LI"); for (var i = 0; i < aMenus.length; i++) { var mclass = aMenus[i].className; if (mclass.indexOf("treenode") > -1) { var submenu = aMenus[i].childNodes; for (var j = 0; j < submenu.length; j++) { if (submenu[j].tagName == "A") { submenu[j].onclick = function() { var node = this.nextSibling; while (1) { if (node != null) { if (node.tagName == "UL") { var d = (node.style.display == "none") node.style.display = (d) ? "block" : "none"; this.className = (d) ? "treeopen" : "treeclosed"; return false; } node = node.nextSibling; } else { return false; } } return false; } submenu[j].className = (mclass.indexOf("open") > -1) ? "treeopen" : "treeclosed"; } if (submenu[j].tagName == "UL") submenu[j].style.display = (mclass.indexOf("open") > -1) ? "block" : "none"; } } } } window.onload = initMenus;