/** * @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 = 25;	if (typeof czasZwin == 'undefined' || czasZwin < 0) czasZwin = 25;	if (typeof czasOtworz == 'undefined' || czasOtworz < 0) czasOtworz = 250;	if (typeof czasZamknij == 'undefined' || czasZamknij < 0) czasZamknij = 500;		var url = unescape(window.location.href);	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) == 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; k < matches.length; k++)								{									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, '')) == 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);		}	}}
