Файл: billing/_rootmenu/menu.js
Строк: 1870
<?php
Zapatec.MenuTree = function(el, config, noInit) {
if (typeof config == "undefined")
config = {};
this._el = el;
this._config = config;
if (!noInit) this.initTree();
}
Zapatec.MenuTree.windowLoaded = false;
Zapatec.Utils.addEvent(window, 'load', function(){Zapatec.MenuTree.windowLoaded = true});
Zapatec.MenuTree.prototype.initTree = function() {
var el = this._el;
var config = this._config;
function param_default(name, value) {
if (typeof config[name] == "undefined") config[name] = value;
};
param_default('d_profile', false);
param_default('hiliteSelectedNode', true);
param_default('compact', false);
param_default('dynamic', false);
param_default('initLevel', false);
if (config.dynamic)
config.initLevel = 0;
this.config = config;
if (this.config.d_profile) {
var T1 = new Date().getTime();
profile = {
items : 0,
trees : 0,
icons : 0
};
}
if (typeof el == "string")
el = document.getElementById(el);
this.list = el;
this.items = {};
this.trees = {};
this.selectedItem = null;
this.id=null;
if (el)
this.id = el.id || Zapatec.Utils.generateID("tree");
else
alert("Can not find Menu id="" + this._el + """)
var top = this.top_parent = Zapatec.Utils.createElement("div");
top.style.display = 'none'; // Initially menu is hidden and will be shown on triggerEvent
top.__zp_menu = Zapatec.Utils.createElement("div", top);
top.__zp_menu.className = 'zpMenu';
top.className = "zpMenuContainer zpMenu-top";
if (this.config.vertical)
Zapatec.Utils.addClass(top, "zpMenu-vertical-mode");
else
Zapatec.Utils.addClass(top, "zpMenu-horizontal-mode");
this.createTree(el, top, 0);
if (el) {
if (this.config.theme != '') {
var theme = Zapatec.Utils.createElement("div");
theme.className = 'zpMenu-' + this.config.theme;
theme.appendChild(top);
el.parentNode.insertBefore(theme, el);
} else {
el.parentNode.insertBefore(top, el);
}
el.parentNode.removeChild(el);
}
Zapatec.MenuTree.all[this.id] = this;
if (this.selectedItem)
this.sync(this.selectedItem.__zp_item);
if (this.config.d_profile) {
alert("Generated in " + (new Date().getTime() - T1) + " millisecondsn" +
profile.items + " total tree itemsn" +
profile.trees + " total (sub)treesn" +
profile.icons + " total icons");
}
this.path = Zapatec.Utils.getCookie(this.config.pathCookie);
if (this.path) {
Zapatec.Utils.writeCookie(this.config.pathCookie, '');
}
if (!this.config.triggerEvent) {
if (Zapatec.MenuTree.windowLoaded) {
this.showMenu();
} else {
var self = this;
Zapatec.Utils.addEvent(window, 'load', function(){self.showMenu()});
}
}
};
Zapatec.MenuTree.all = {};
Zapatec.MenuTree.prototype.is_hr_tag= function(item) {
return (item.tagName.toLowerCase() == 'hr');
};
Zapatec.MenuTree.prototype.is_hr_class= function(item) {
return (/zpMenu-item-hr/i.test(item.className));
};
Zapatec.MenuTree.prototype.createTree = function(list, parent, level) {
if (this.config.d_profile)
++profile.trees;
var id;
var intItem=1, bFirst=true;
if (list) id=list.id;
if (!id) id=Zapatec.Utils.generateID("tree.sub");
var
self = this;
function _makeIt() {
self.creating_now = true;
var
last_li = null,
next_li,
i = (list ? list.firstChild : null),
items = parent.__zp_items = [];
self.trees[id] = parent;
parent.__zp_level = level;
parent.__zp_treeid = id;
parent.__zp_keymap = {};
var strOddEven;
while (i) {
if (last_li)
last_li.className += " zpMenu-lines-c";
if (i.nodeType != 1)
i = i.nextSibling;
else {
next_li = Zapatec.Utils.getNextSibling(i, 'li');
if (i.tagName.toLowerCase() == 'li') {
last_li = self.createItem(i, parent, next_li, level, intItem);
if (last_li) {
if (!self.is_hr_class(last_li))
{
strOddEven="zpMenu-item-" + (intItem % 2==1 ? "odd" : "even");
Zapatec.Utils.addClass(last_li, strOddEven)
intItem++
}
if (bFirst)
{
bFirst=false;
Zapatec.Utils.addClass(last_li, "zpMenu-item-first");
}
items[items.length] = last_li.__zp_item;
}
}
i = next_li;
}
}
if (last_li) Zapatec.Utils.addClass(last_li, "zpMenu-item-last");
i = parent.firstChild;
if (i && !level) {
i.className = i.className.replace(/ zpMenu-lines-./g, "");
i.className += (i === last_li) ? " zpMenu-lines-s" : " zpMenu-lines-t";
}
if (last_li && (level || last_li != i)) {
last_li.className = last_li.className.replace(/ zpMenu-lines-./g, "");
last_li.className += " zpMenu-lines-b";
}
self.creating_now = false;
};
if (this.config.dynamic && level > 0)
this.trees[id] = _makeIt;
else
_makeIt();
return id;
};
Zapatec.MenuTree.tabIndex = 1000;
Zapatec.MenuTree.prototype.createItem = function(li, parent, next_li, level, intItem) {
if (this.config.d_profile)
++profile.items;
if (!li.firstChild)
return;
var
id = li.id || Zapatec.Utils.generateID("tree.item"),
item = this.items[id] = Zapatec.Utils.createElement("div", parent.__zp_menu),
t = Zapatec.Utils.createElement("table", item),
tb = Zapatec.Utils.createElement("tbody", t),
tr = Zapatec.Utils.createElement("tr", tb),
td = Zapatec.Utils.createElement("td", tr),
has_icon = false;
if (!level) {
td.style.whiteSpace = 'nowrap';
}
t.className = "zpMenu-table";
t.cellSpacing = 0;
t.cellPadding = 0;
td.className = "zpMenu-label"
var title = li.getAttribute('title');
if (title) {
td.setAttribute('title', title);
}
item.className = "zpMenu-item" + (li.className ? ' ' + li.className : '');
Zapatec.Utils.addClass(item, "zpMenu-level-" + (level+1));
item.__zp_item = id;
item.__zp_tree = this.id;
item.__zp_parent = parent.__zp_treeid;
item.onmouseover = Zapatec.Menu.onItemMouseOver;
item.onmouseout = Zapatec.Menu.onItemMouseOut;
item.onclick = Zapatec.Menu.onItemClick;
Zapatec.Utils.addClass(item, "zpMenu-item-" + (intItem % 2==1 ? "odd" : "even"));
var fc, subtree = false, accessKey = null;
var getAccessKey = function(node) {
var key = null;
if (node.nodeType == 1) {
if (key = node.getAttribute('accesskey')) {
node.removeAttribute('accesskey', false);
if (/^[a-z0-9]$/i.test(key)) {
return key;
} else {
key = null;
}
}
var childNodes = node.childNodes;
for (var i = 0; i < childNodes.length; i++) {
if (key = getAccessKey(childNodes[i])) {
break;
}
}
} else if (node.nodeType == 3) {
var label = node.data.replace(/(^s+|s+$)/g, '');
if (/_([a-z0-9])/i.test(label)) {
label = label.replace(/_([a-z0-9])/i, '<span style="text-decoration:underline">$1</span>');
key = RegExp.$1;
var span = Zapatec.Utils.createElement("span");
span.innerHTML = label;
var parent = node.parentNode;
parent.insertBefore(span, node);
parent.removeChild(node);
}
}
return key;
};
while (fc = li.firstChild) {
if (fc.nodeType == 1 && /^[ou]l$/i.test(fc.tagName)) {
// Subtree
if (!subtree) {
this.item_addIcon(item, null);
var np = Zapatec.Utils.createElement("div", parent);
np.style.position = 'absolute';
if (!this.config.triggerEvent) {
np.style.left = '-9999px';
np.style.top = '-9999px';
}
if (this.config.dropShadow) {
var ds = np.__zp_dropshadow = Zapatec.Utils.createElement('div');
parent.insertBefore(ds, np);
ds.style.position = 'absolute';
if (!this.config.triggerEvent) {
ds.style.left = '-9999px';
ds.style.top = '-9999px';
}
ds.style.backgroundColor = '#000';
if (window.opera) {
ds.style.backgroundColor = '#666';
} else {
ds.style.filter = 'alpha(opacity=' + this._config.dropShadow + ')';
}
ds.style.opacity = this.config.dropShadow / 100;
}
np.__zp_item = id;
np.__zp_menu = Zapatec.Utils.createElement("div", np);
np.__zp_menu.className = 'zpMenu' + (fc.className ? ' ' + fc.className : '');
np.className = 'zpMenuContainer';
np.__zp_menu.onmouseover = Zapatec.Menu.onItemMouseOver;
np.__zp_menu.onmouseout = Zapatec.Menu.onItemMouseOut;
if (next_li) {
np.__zp_menu.className += " zpMenu-lined";
}
item.__zp_subtree = this.createTree(fc, np, level+1);
if ((this.config.initLevel != false && this.config.initLevel <= level) ||
(this.config.compact && !/(^|s)expanded(s|$)/i.test(li.className))
|| /(^|s)collapsed(s|$)/i.test(li.className)) {
item.className += " zpMenu-item-collapsed";
this.toggleItem(id);
} else {
item.className += " zpMenu-item-expanded";
}
if (/(^|s)selected(s|$)/i.test(li.className)) {
this.selectedItem = item;
}
subtree = true;
}
li.removeChild(fc);
} else {
li.removeChild(fc);
if (fc.nodeType == 3) {
var label = fc.data.replace(/(^s+|s+$)/g, '');
if (label) {
if (!accessKey) {
label = label.replace(/_([a-z0-9])/i, '<span style="text-decoration:underline">$1</span>');
accessKey = RegExp.$1;
}
var span = Zapatec.Utils.createElement("span", td);
span.innerHTML = label;
if (title) span.setAttribute('title', title);
}
} else if (fc.tagName) {
if (fc.tagName.toLowerCase() == 'img') {
this.item_addIcon(item, fc);
has_icon = true;
} else {
if (this._menuMode && (fc.tagName.toLowerCase() == 'hr')) {
Zapatec.Utils.addClass(item, "zpMenu-item-hr");
} else if (fc.tagName.toLowerCase() == 'input' && fc.getAttribute('type') == 'checkbox') {
fc.onmousedown = function(ev){
if (this.checked) {
this.checked = false;
} else {
this.checked = true;
}
return Zapatec.Utils.stopEvent(ev);
};
} else if (fc.tagName.toLowerCase() == 'input' && fc.getAttribute('type') == 'radio') {
fc.onmousedown = function(ev){
this.checked = true;
return Zapatec.Utils.stopEvent(ev);
};
} else if (fc.tagName.toLowerCase() == 'a') {
if (!accessKey) {
accessKey = getAccessKey(fc);
}
fc.tabIndex = ++Zapatec.MenuTree.tabIndex;
fc.onfocus = Zapatec.Menu.onItemMouseOver;
fc.onblur = Zapatec.Menu.onItemMouseOut;
}
td.appendChild(fc);
if (title && !fc.getAttribute('title')) fc.setAttribute('title', title);
}
}
}
}
if (accessKey) {
accessKey = accessKey.toUpperCase().charCodeAt(0);
parent.__zp_keymap[accessKey] = item;
}
if (!has_icon && !/zpMenu-item-hr/i.test(item.className))
if (this.config.defaultIcons)
this.item_addDefaultIcon(item, this.config.defaultIcons);
else
this.item_addDefaultIcon(item, "zpMenu-noicon");
return item;
};
Zapatec.MenuTree.prototype.item_addDefaultIcon = function(item, className) {
if (!className)
return;
var last_td = item.firstChild.firstChild.firstChild.lastChild, td;
var td = Zapatec.Utils.createElement("td");
td.className = "tgb icon " + className;
last_td.parentNode.insertBefore(td, last_td);
};
Zapatec.MenuTree.prototype.item_addIcon = function(item, img) {
if (this.config.d_profile)
++profile.icons;
var last_td = item.firstChild.firstChild.firstChild, td;
last_td = img ? last_td.lastChild : last_td.firstChild;
if (!img || !item.__zp_icon) {
td = Zapatec.Utils.createElement("td");
td.className = "tgb " + (img ? "icon" : "minus");
last_td.parentNode.insertBefore(td, last_td);
} else {
td = item.__zp_icon;
img.style.display = "none";
}
if (!img) {
td.innerHTML = " ";
item.className += " zpMenu-item-more";
item.__zp_state = true;
item.__zp_expand = td;
} else {
td.appendChild(img);
item.__zp_icon = td;
}
};
Zapatec.MenuTree.prototype.itemClicked = function(item_id) {
this.selectedItem = this.toggleItem(item_id);
if (this.config.hiliteSelectedNode && this.selectedItem) {
Zapatec.Menu.selectItem(this.selectedItem);
}
this.onItemSelect(item_id);
};
Zapatec.MenuTree.prototype.toggleItem = function(item_id, state) {
if (item_id) {
if (this.config.hiliteSelectedNode && this.selectedItem) {
Zapatec.Menu.unselectItem(this.selectedItem);
}
var item = this.items[item_id];
if (typeof state == "undefined")
state = !item.__zp_state;
if (state != item.__zp_state) {
var subtree = this._getTree(item.__zp_subtree, this.creating_now);
if (subtree) {
if (state) {
for (var i = 0; i < subtree.__zp_items.length; i++) {
var subItemID = subtree.__zp_items[i];
Zapatec.Menu.unselectItem(this.items[subItemID]);
if (subtree.__zp_activeitem == subItemID) subtree.__zp_activeitem = '';
}
} else {
for (var i = 0; i < subtree.__zp_items.length; i++) {
var subItemID = subtree.__zp_items[i];
this.toggleItem(subItemID, state);
Zapatec.Menu.unselectItem(this.items[subItemID]);
if (subtree.__zp_activeitem == subItemID) subtree.__zp_activeitem = '';
}
}
this.treeSetDisplay(subtree, state);
Zapatec.Utils.removeClass(item, "zpMenu-item-expanded");
Zapatec.Utils.removeClass(item, "zpMenu-item-collapsed");
Zapatec.Utils.addClass(item, state ? "zpMenu-item-expanded" : "zpMenu-item-collapsed");
}
var img = item.__zp_expand;
if (img)
img.className = "tgb " + (state ? "minus" : "plus");
item.__zp_state = state;
img = item.__zp_icon;
if (img) {
img.firstChild.style.display = "none";
img.appendChild(img.firstChild);
img.firstChild.style.display = "block";
}
if (this.config.compact && state) {
var hideItems = this._getTree(item.__zp_parent).__zp_items;
for (var i = hideItems.length; --i >= 0;) {
if (hideItems[i] != item_id && hideItems[i].__zp_state) {
this.toggleItem(hideItems[i], false);
}
}
}
}
return item;
}
return null;
};
Zapatec.MenuTree.prototype.collapseAll = function() {
for (var i in this.trees)
this.toggleItem(this._getTree(i).__zp_item, false);
};
Zapatec.MenuTree.prototype.expandAll = function() {
for (var i in this.trees)
this.toggleItem(this._getTree(i).__zp_item, true);
};
Zapatec.MenuTree.prototype.toggleAll = function() {
for (var i in this.trees)
this.toggleItem(this._getTree(i).__zp_item);
};
Zapatec.MenuTree.prototype.sync = function(item_id) {
var item = this.items[item_id];
if (item) {
this.collapseAll();
this.selectedItem = item;
var path = [];
while (item.__zp_parent) {
path[path.length] = item;
var parentItem = this._getTree(item.__zp_parent);
if (parentItem.__zp_item) {
item = this.items[parentItem.__zp_item];
} else {
break;
}
}
for (var ii = path.length; --ii >= 0;) {
var item = path[ii];
var item_id = item.__zp_item;
this.itemShow(item_id);
var menu = this._getTree(item.__zp_parent);
menu.__zp_activeitem = item_id;
Zapatec.Menu.selectItem(item);
}
}
};
Zapatec.MenuTree.prototype.highlightPath = function(item_id) {
var item = this.items[item_id];
if (item) {
var a = [];
while (item.__zp_parent) {
a[a.length] = item;
var pt = this._getTree(item.__zp_parent);
if (pt.__zp_item)
item = this.items[pt.__zp_item];
else
break;
}
for (var i = a.length; --i >= 0;) {
Zapatec.Utils.addClass(a[i], 'zpMenuPath');
}
}
};
Zapatec.MenuTree.prototype.destroy = function() {
var p = this.top_parent;
p.parentNode.removeChild(p);
};
Zapatec.MenuTree.prototype._getTree = function(tree_id, dont_call) {
var tree = this.trees[tree_id];
if (typeof tree == "function") {
if (dont_call)
tree = null;
else {
tree();
tree = this.trees[tree_id];
}
}
return tree;
};
Zapatec.MenuTree.prototype.onItemSelect = function() {};
Zapatec.MenuTree.onItemToggle = function() {
var item = this;
var body = document.body;
while (item && item != body && !/zpMenu-item/.test(item.className))
item = item.parentNode;
Zapatec.MenuTree.all[item.__zp_tree].itemClicked(item.__zp_item);
};
Zapatec.Menu = function(el, config_user) {
if (arguments.length > 0) {
this.init(el, config_user);
}
};
Zapatec.Menu.prototype = new Zapatec.MenuTree('', null, true);
Zapatec.Menu.prototype.init = function(el, config_user) {
this._el = el;
this._config={};
this.setOption(this._config, 'showDelay', 0);
this.setOption(this._config, 'hideDelay', 500);
this.setOption(this._config, 'onClick', false);
this.setOption(this._config, 'vertical', false);
this.setOption(this._config, 'scrollWithWindow', false);
this.setOption(this._config, 'dropShadow', 0);
this.setOption(this._config, 'drag', false);
this.setOption(this._config, 'slide', false);
this.setOption(this._config, 'glide', false);
this.setOption(this._config, 'fade', false);
this.setOption(this._config, 'wipe', false);
this.setOption(this._config, 'unfurl', false);
this.setOption(this._config, 'animSpeed', 10);
this.setOption(this._config, 'compact', true);
this.setOption(this._config, 'initLevel', 0);
this.setOption(this._config, 'defaultIcons', null);
this.setOption(this._config, 'zIndex', 0);
this.setOption(this._config, 'theme', '');
this.setOption(this._config, 'rememberPath', false);
this.setOption(this._config, 'pathCookie', '__zp_item');
this.setOption(this._config, 'triggerEvent', null);
this.setOption(this._config, 'triggerKey', null);
this.setOption(this._config, 'triggerObject', null);
this.setOption(this._config, 'top', null);
this.setOption(this._config, 'right', null);
this.setOption(this._config, 'bottom', null);
this.setOption(this._config, 'left', null);
if (typeof config_user != "undefined") {
for (var i in config_user) {
if (typeof this._config[i] == "undefined") {
alert("Error:Menu " + this._el + " has invalid parameter --" + i + ":" + config_user[i]);
} else {
this.setOption(this._config, i, config_user[i]);
}
}
}
if (this._config.theme != '') {
var link = document.createElement('link');
link.setAttribute('rel', 'stylesheet');
link.setAttribute('type', 'text/css');
link.setAttribute('href', '../themes/' + this._config.theme + '_2menus.css');
document.getElementsByTagName('head')[0].appendChild(link);
}
this.animations = [];
this._menuMode = true;
this.initTree();
this.openMenus = [];
this.clickDone = false;
if (this.config.triggerEvent) {
var triggerEvent = this.config.triggerEvent;
var triggerKey = this.config.triggerKey;
var triggerObject = window.document;
if (this.config.triggerObject) {
if (typeof this.config.triggerObject == 'string') {
var triggerObjectElement = window.document.getElementById(this.config.triggerObject);
if (triggerObjectElement) {
triggerObject = triggerObjectElement;
}
} else {
triggerObject = this.config.triggerObject;
}
}
var self = this;
if (triggerEvent == 'mousedown' || triggerEvent == 'mouseup' || triggerEvent == 'click') {
Zapatec.Utils.addEvent(triggerObject, 'mouseup',
function(ev) {
ev || (ev = window.event);
var posX = ev.pageX || ev.clientX + window.document.body.scrollLeft || 0;
var posY = ev.pageY || ev.clientY + window.document.body.scrollTop || 0;
var button;
if (ev.button) {
button = ev.button;
} else {
button = ev.which;
}
if (window.opera) {
if (button == 1 && self.top_parent.style.display == 'none') {
setTimeout(function() {self.popupMenu(posX, posY)}, 100);
return Zapatec.Utils.stopEvent(ev);
}
} else {
if (triggerKey == 'both' || (triggerKey == 'left' && button == 1)
|| ((!triggerKey || triggerKey == 'right') && button > 1)) {
setTimeout(function() {self.popupMenu(posX, posY)}, 100);
return Zapatec.Utils.stopEvent(ev);
}
}
}
);
window.document.oncontextmenu = new Function("return false");
} else if (triggerEvent == 'keydown' || triggerEvent == 'keyup' || triggerEvent == 'keypress') {
Zapatec.Utils.addEvent(triggerObject, 'keydown',
function(ev) {
ev || (ev = window.event);
if (ev.keyCode == triggerKey) {
self.popupMenu();
return Zapatec.Utils.stopEvent(ev);
}
}
);
}
Zapatec.Utils.addEvent(window.document, 'mouseup',
function(ev) {
setTimeout(function() {self.hideMenu()}, 50);
return Zapatec.Utils.stopEvent(ev);
}
);
Zapatec.Utils.addEvent(this.top_parent, 'mouseup',
function(ev) {
return Zapatec.Utils.stopEvent(ev);
}
);
Zapatec.Utils.addEvent(window.document, 'keypress',
function(ev) {
ev || (ev = window.event);
if (ev.keyCode == 27) {
for (var i = 0; i < Zapatec.Menu.selectedItemsStack.length; i++) {
if (Zapatec.MenuTree.all[Zapatec.Menu.selectedItemsStack[i].__zp_tree] == self) {
return;
}
}
self.hideMenu();
}
}
);
} else {
if (this.config.scrollWithWindow) {
Zapatec.ScrollWithWindow.register(this.trees[this._el]);
}
if (this.config.drag) {
var self = this;
self.dragging = false;
Zapatec.Utils.addEvent(window.document, "mousedown",
function(ev) { return Zapatec.Menu.dragStart(ev, self) });
Zapatec.Utils.addEvent(window.document, "mousemove",
function(ev) { return Zapatec.Menu.dragMove(ev, self) });
Zapatec.Utils.addEvent(window.document, "mouseup",
function(ev) { return Zapatec.Menu.dragEnd(ev, self) });
}
}
if (this._config.fade)
this.addAnimation('fade');
if (this._config.slide)
this.addAnimation('slide');
else if (this._config.glide)
this.addAnimation('glide');
else if (this._config.wipe)
this.addAnimation('wipe');
else if (this._config.unfurl)
this.addAnimation('unfurl');
};
Zapatec.Menu.MOUSEOUT = 0;
Zapatec.Menu.MOUSEOVER = 1;
Zapatec.Menu.CLICK = 2;
Zapatec.Menu.prototype.setOption = function(config, name, val) {
config[name] = val;
};
Zapatec.Menu.animations = {};
Zapatec.Menu.animations.fade = function(ref, counter) {
var f = ref.filters, done = (counter==100);
if (f) {
if (!done && ref.style.filter.indexOf("alpha") == -1) {
ref.style.filter += ' alpha(opacity=' + counter + ')';
}
else if (f.length && f.alpha) with (f.alpha) {
if (done) enabled = false;
else { opacity = counter; enabled=true }
}
}
else {
ref.style.opacity = ref.style.MozOpacity = counter/100.1;
}
};
Zapatec.Menu.animations.slide = function(ref, counter) {
var cP = Math.pow(Math.sin(Math.PI*counter/200),0.75);
var noClip = ((window.opera || navigator.userAgent.indexOf('KHTML') > -1) ?
'' : 'rect(auto, auto, auto, auto)');
if (typeof ref.__zp_origmargintop == 'undefined') {
ref.__zp_origmargintop = ref.style.marginTop;
}
ref.style.marginTop = (counter==100) ?
ref.__zp_origmargintop : '-' + (ref.offsetHeight*(1-cP)) + 'px';
ref.style.clip = (counter==100) ? noClip :
'rect(' + (ref.offsetHeight*(1-cP)) + ', ' + ref.offsetWidth +
'px, ' + ref.offsetHeight + 'px, 0)';
};
Zapatec.Menu.animations.glide = function(ref, counter) {
var cP = Math.pow(Math.sin(Math.PI*counter/200),0.75);
var noClip = ((window.opera || navigator.userAgent.indexOf('KHTML') > -1) ?
'' : 'rect(auto, auto, auto, auto)');
ref.style.clip = (counter==100) ? noClip :
'rect(0, ' + ref.offsetWidth + 'px, ' + (ref.offsetHeight*cP) + 'px, 0)';
};
Zapatec.Menu.animations.wipe = function(ref, counter) {
var noClip = ((window.opera || navigator.userAgent.indexOf('KHTML') > -1) ?
'' : 'rect(auto, auto, auto, auto)');
ref.style.clip = (counter==100) ? noClip :
'rect(0, ' + (ref.offsetWidth*(counter/100)) + 'px, ' +
(ref.offsetHeight*(counter/100)) + 'px, 0)';
};
Zapatec.Menu.animations.unfurl = function(ref, counter) {
var noClip = ((window.opera || navigator.userAgent.indexOf('KHTML') > -1) ?
'' : 'rect(auto, auto, auto, auto)');
if (counter <= 50) {
ref.style.clip = 'rect(0, ' + (ref.offsetWidth*(counter/50)) +
'px, 10px, 0)';
}
else if (counter < 100) {
ref.style.clip = 'rect(0, ' + ref.offsetWidth + 'px, ' +
(ref.offsetHeight*((counter-50)/50)) + 'px, 0)';
}
else {
ref.style.clip = noClip;
}
};
Zapatec.Menu.prototype.addAnimation = function(animation) {
this.animations[this.animations.length] = Zapatec.Menu.animations[animation];
};
Zapatec.Menu.prototype.treeSetDisplay = function(menu, show) {
if (!menu.__zp_initialised) {
menu.style.visibility = 'hidden';
if (menu.__zp_dropshadow) {
menu.__zp_dropshadow.style.visibility = 'hidden';
}
menu.__zp_initialised = true;
return;
}
var treeId = menu.__zp_tree || menu.__zp_menu.firstChild.__zp_tree;
var tree;
if (treeId) {
tree = Zapatec.MenuTree.all[treeId];
}
if (!tree) {
return;
}
if (tree.animations.length == 0) {
if (show) {
menu.style.visibility = 'inherit';
if (menu.__zp_dropshadow) {
menu.__zp_dropshadow.style.visibility = 'inherit';
}
} else {
menu.style.visibility = 'hidden';
if (menu.__zp_dropshadow) {
menu.__zp_dropshadow.style.visibility = 'hidden';
}
}
return;
}
menu.__zp_anim_timer |= 0;
clearTimeout(menu.__zp_anim_timer);
menu.__zp_anim_counter |= 0;
if (show && !menu.__zp_anim_counter) {
menu.style.visibility = 'inherit';
if (menu.__zp_dropshadow) {
menu.__zp_dropshadow.style.visibility = 'inherit';
}
}
for (var ii = 0; ii < tree.animations.length; ii++) {
tree.animations[ii](menu, menu.__zp_anim_counter);
if (menu.__zp_dropshadow
&& tree.animations[ii] != Zapatec.Menu.animations.fade) {
tree.animations[ii](menu.__zp_dropshadow, menu.__zp_anim_counter);
}
}
if (!(show && menu.__zp_anim_counter == 100)) {
menu.__zp_anim_counter += tree.config.animSpeed * (show ? 1 : -1);
if (menu.__zp_anim_counter > 100) {
menu.__zp_anim_counter = 100;
menu.__zp_anim_timer = setTimeout(function() {
tree.treeSetDisplay(menu, show);
}, 50);
} else if (menu.__zp_anim_counter <= 0) {
menu.__zp_anim_counter = 0;
menu.style.visibility = 'hidden';
if (menu.__zp_dropshadow) {
menu.__zp_dropshadow.style.visibility = 'hidden';
}
} else {
menu.__zp_anim_timer = setTimeout(function() {
tree.treeSetDisplay(menu, show);
}, 50);
}
}
};
Zapatec.Menu.onItemMouseOver = function() {
var item = this, tree = null;
while (item && item != document.body) {
var t_id = item.__zp_tree || item.firstChild.__zp_tree;
if (t_id) tree = Zapatec.MenuTree.all[t_id];
var itemClassName = item.className;
if (/zpMenu-item/.test(itemClassName) && !/zpMenu-item-hr/.test(itemClassName)) {
tree.itemMouseHandler(item.__zp_item, Zapatec.Menu.MOUSEOVER);
}
item = tree && item.__zp_treeid ?
tree.items[item.__zp_item] : item.parentNode;
}
return true;
};
Zapatec.Menu.onItemMouseOut = function() {
var item = this, tree = null;
while (item && item != document.body) {
var t_id = item.__zp_tree || item.firstChild.__zp_tree;
if (t_id) tree = Zapatec.MenuTree.all[t_id];
var itemClassName = item.className;
if (
/zpMenu-item/.test(itemClassName) && !/zpMenu-item-hr/.test(itemClassName) &&
!(/zpMenu-level-1/.test(itemClassName) && !/zpMenu-item-selected/.test(itemClassName))
) {
tree.itemMouseHandler(item.__zp_item, Zapatec.Menu.MOUSEOUT);
}
item = tree && item.__zp_treeid ?
tree.items[item.__zp_item] : item.parentNode;
}
return false;
};
Zapatec.Menu.onItemClick = function(ev) {
var item = this;
if (!/zpMenuDisabled/.test(item.className)) {
while (item && item != document.body) {
if (item.nodeName && item.nodeName.toLowerCase() == 'a') {
return true;
}
if (/zpMenu-item/.test(item.className)) {
var self = Zapatec.MenuTree.all[item.__zp_tree];
if (self.config.onClick && item.__zp_subtree &&
(/zpMenu-top/.test(self.trees[item.__zp_parent].className))) {
self.itemMouseHandler(item.__zp_item, Zapatec.Menu.CLICK);
return Zapatec.Utils.stopEvent(ev);
}
var itemLink = item.getElementsByTagName('a');
var itemInput = item.getElementsByTagName('input');
var itemSelect = item.getElementsByTagName('select');
if (itemLink && itemLink.item(0)
&& itemLink.item(0).getAttribute('href')
&& itemLink.item(0).getAttribute('href') != '#'
&& itemLink.item(0).getAttribute('href') != window.document.location.href + '#'
&& itemLink.item(0).getAttribute('href') != 'javascript:void(0)') {
var href = itemLink.item(0).getAttribute('href');
var target = itemLink.item(0).getAttribute('target');
if (self.config.rememberPath || self.config.pathCookie != '__zp_item') {
Zapatec.Utils.writeCookie(self.config.pathCookie, item.__zp_item);
}
try {
if (target) {
window.open(href, target);
} else {
window.location.href = href;
}
} catch(e) {};
if (self.config.triggerEvent) {
self.hideMenu();
}
} else if (itemInput && itemInput.item(0)) {
var inp = itemInput.item(0);
var type = inp.getAttribute('type');
if (type == 'checkbox') {
if (inp.checked) {
inp.checked = false;
} else {
inp.checked = true;
}
} else if (type == 'radio') {
inp.checked = true;
}
} else if (itemSelect && itemSelect.item(0)) {
return true;
} else if (item.__zp_subtree) {
self.itemMouseHandler(item.__zp_item, Zapatec.Menu.CLICK);
} else if (self.config.triggerEvent) {
self.hideMenu();
}
return Zapatec.Utils.stopEvent(ev);
}
item = item.parentNode;
}
}
return false;
};
Zapatec.Menu.prototype.itemMouseHandler = function(item_id, type) {
var item = this.items[item_id];
if (!item) return;
var menu = this._getTree(item.__zp_parent);
if (menu && menu.__zp_activeitem != item_id) {
if (menu.__zp_activeitem) {
var lastItem = this.items[menu.__zp_activeitem];
clearTimeout(lastItem.__zp_dimtimer);
clearTimeout(lastItem.__zp_mousetimer);
Zapatec.Menu.unselectItem(lastItem);
if (lastItem.__zp_state) this.toggleItem(lastItem.__zp_item, false);
}
menu.__zp_activeitem = item_id;
Zapatec.Menu.selectItem(item);
}
clearTimeout(item.__zp_dimtimer);
if (type == Zapatec.Menu.MOUSEOUT) {
item.__zp_dimtimer = setTimeout(function() {
Zapatec.Menu.unselectItem(item);
if (menu.__zp_activeitem == item_id) menu.__zp_activeitem = '';
}, this.config.hideDelay);
}
clearTimeout(item.__zp_mousetimer);
if (this.config.onClick && !this.clickDone) {
if (/zpMenu-top/.test(this.trees[item.__zp_parent].className) &&
(type == Zapatec.Menu.MOUSEOVER)) return;
if (type == Zapatec.Menu.CLICK) this.clickDone = true;
}
if (!item.__zp_state && type)
{
item.__zp_mousetimer = setTimeout('Zapatec.MenuTree.all["' +
item.__zp_tree + '"].itemShow("' + item.__zp_item + '")',
(this.config.showDelay || 1));
}
else if (item.__zp_state && !type)
{
item.__zp_mousetimer = setTimeout('Zapatec.MenuTree.all["' +
item.__zp_tree + '"].itemHide("' + item.__zp_item + '")',
(this.config.hideDelay || 1));
}
};
Zapatec.Menu.prototype.itemShow = function(item_id) {
var item = this.items[item_id];
var subMenu = this._getTree(item.__zp_subtree);
var parMenu = this._getTree(item.__zp_parent);
if (subMenu && !/zpMenuDisabled/.test(item.className)) {
if (!subMenu.offsetHeight) {
subMenu.style.visibility = 'visible';
}
var subMenuBorderLeft, subMenuBorderTop;
if (typeof subMenu.clientLeft != 'undefined') {
subMenuBorderLeft = subMenu.clientLeft;
subMenuBorderTop = subMenu.clientTop;
} else {
subMenuBorderLeft = (subMenu.offsetWidth - subMenu.clientWidth) / 2;
subMenuBorderTop = (subMenu.offsetHeight - subMenu.clientHeight) / 2;
}
var fc = subMenu.firstChild;
var subMenuMarginLeft = fc.offsetLeft;
var subMenuMarginTop = fc.offsetTop;
var scrollX = window.pageXOffset || document.body.scrollLeft ||
document.documentElement.scrollLeft || 0;
var scrollY = window.pageYOffset || document.body.scrollTop ||
document.documentElement.scrollTop || 0;
var winW = document.body.clientWidth ||
document.documentElement.clientWidth || window.innerWidth || 0;
var winH = document.body.clientHeight ||
document.documentElement.clientHeight || window.innerHeight || 0;
if (!subMenu.style.width || !subMenu.style.height) {
var maxHeight = winH - 7;
if (subMenu.offsetHeight > maxHeight) {
fc.__zp_first = fc.firstChild;
fc.__zp_last = fc.lastChild;
var up = Zapatec.Utils.createElement("div");
up.__zp_tree = fc.firstChild.__zp_tree;
up.className = 'zpMenuScrollUpInactive';
up.__zp_mouseover = false;
up.__zp_timer = null;
var moveUp = function() {
var container = up.parentNode;
var containerHeight = container.offsetHeight;
var containerMarginTop = container.offsetTop;
var subMenu = container.parentNode;
var subMenuHeight = subMenu.clientHeight;
var upArrow = container.firstChild;
var downArrow = container.lastChild;
var downArrowHeight = downArrow.offsetHeight;
if (container.__zp_first.previousSibling != upArrow) {
while (containerHeight - downArrowHeight + 10
<= subMenuHeight - containerMarginTop * 2
&& container.__zp_first.previousSibling != upArrow) {
container.__zp_first = container.__zp_first.previousSibling;
container.__zp_first.style.display = 'block';
containerHeight = container.offsetHeight;
}
while (containerHeight - downArrowHeight + 10
> subMenuHeight - containerMarginTop * 2) {
container.__zp_last.style.display = 'none';
containerHeight = container.offsetHeight;
container.__zp_last = container.__zp_last.previousSibling;
}
downArrow.style.height =
(subMenuHeight - (containerHeight - downArrowHeight)
- containerMarginTop * 2) + 'px';
downArrow.className = 'zpMenuScrollDownActive';
if (container.__zp_first.previousSibling == upArrow) {
upArrow.className = 'zpMenuScrollUpInactive';
}
if (up.__zp_timer) clearTimeout(up.__zp_timer);
if (up.__zp_mouseover) {
up.__zp_timer = setTimeout(moveUp, 50);
}
}
return true;
};
up.onmouseover = function() {
up.__zp_mouseover = true;
return moveUp();
}
up.onmouseout = function() {
up.__zp_mouseover = false;
if (up.__zp_timer) {
clearTimeout(up.__zp_timer);
up.__zp_timer = null;
}
};
fc.insertBefore(up, fc.firstChild);
var down = Zapatec.Utils.createElement("div");
down.__zp_tree = fc.firstChild.__zp_tree;
down.className = 'zpMenuScrollDownActive';
down.__zp_mouseover = false;
down.__zp_timer = null;
var moveDown = function() {
var container = down.parentNode;
var containerHeight = container.offsetHeight;
var containerMarginTop = container.offsetTop;
var subMenu = container.parentNode;
var subMenuHeight = subMenu.clientHeight;
var upArrow = container.firstChild;
var downArrow = container.lastChild;
var downArrowHeight = downArrow.offsetHeight;
if (container.__zp_last.nextSibling != downArrow) {
while (containerHeight - downArrowHeight + 10
<= subMenuHeight - containerMarginTop * 2
&& container.__zp_last.nextSibling != downArrow) {
container.__zp_last = container.__zp_last.nextSibling;
container.__zp_last.style.display = 'block';
containerHeight = container.offsetHeight;
}
while (containerHeight - downArrowHeight + 10
> subMenuHeight - containerMarginTop * 2) {
container.__zp_first.style.display = 'none';
containerHeight = container.offsetHeight;
container.__zp_first = container.__zp_first.nextSibling;
}
downArrow.style.height =
(subMenuHeight - (containerHeight - downArrowHeight)
- containerMarginTop * 2) + 'px';
upArrow.className = 'zpMenuScrollUpActive';
if (container.__zp_last.nextSibling == downArrow) {
downArrow.className = 'zpMenuScrollDownInactive';
}
if (down.__zp_timer) clearTimeout(down.__zp_timer);
if (down.__zp_mouseover) {
down.__zp_timer = setTimeout(moveDown, 50);
}
}
return true;
};
down.onmouseover = function() {
down.__zp_mouseover = true;
return moveDown();
}
down.onmouseout = function() {
down.__zp_mouseover = false;
if (down.__zp_timer) {
clearTimeout(down.__zp_timer);
down.__zp_timer = null;
}
};
fc.appendChild(down);
var lc = fc.__zp_last;
while (subMenu.offsetHeight > maxHeight) {
lc.style.display = 'none';
lc = lc.previousSibling;
fc.__zp_last = lc;
}
}
var width = shadowWidth = fc.offsetWidth;
if (typeof subMenu.clientLeft != 'undefined') {
width += subMenuBorderLeft * 2 + subMenuMarginLeft * 2;
shadowWidth = width;
} else if (subMenu.__zp_dropshadow) {
shadowWidth += subMenuBorderLeft * 2 + subMenuMarginLeft * 2;
}
var height = shadowHeight = fc.offsetHeight;
if (typeof subMenu.clientTop != 'undefined') {
height += subMenuBorderTop * 2 + subMenuMarginTop * 2;
shadowHeight = height;
} else if (subMenu.__zp_dropshadow) {
shadowHeight += subMenuBorderTop * 2 + subMenuMarginTop * 2;
}
subMenu.style.width = width + 'px';
subMenu.style.height = height + 'px';
if (subMenu.__zp_dropshadow) {
subMenu.__zp_dropshadow.style.width = shadowWidth + 'px';
subMenu.__zp_dropshadow.style.height = shadowHeight + 'px';
}
fc.style.position = 'absolute';
fc.style.left = fc.offsetLeft + 'px';
fc.style.top = fc.offsetTop + 'px';
fc.style.visibility = 'inherit';
}
var newLeft = 0, newTop = 0;
var menuPos = Zapatec.Utils.getAbsolutePos(parMenu);
if ((/zpMenu-top/.test(this.trees[item.__zp_parent].className)) && (!(this.config.vertical))) {
newLeft = item.offsetLeft;
newTop = item.offsetHeight;
if (menuPos.x + newLeft + subMenu.offsetWidth + subMenuMarginLeft + 7 > scrollX + winW) {
newLeft += item.offsetWidth - subMenu.offsetWidth - subMenuMarginLeft;
if (subMenu.__zp_dropshadow) newLeft -= 6;
} else {
newLeft -= subMenuBorderLeft;
}
if (menuPos.y + newTop + subMenu.offsetHeight + subMenuMarginTop + 7 > scrollY + winH) {
newTop = -subMenu.offsetHeight;
if (subMenu.__zp_dropshadow) newTop -= 5;
}
} else {
newLeft = item.offsetWidth;
newTop = item.offsetTop;
if (menuPos.x + newLeft + subMenu.offsetWidth + subMenuMarginLeft + 7 > scrollX + winW) {
newLeft = -subMenu.offsetWidth;
if (subMenu.__zp_dropshadow) newLeft -= 5;
}
if (menuPos.y + newTop + subMenu.offsetHeight + subMenuMarginTop + 7 > scrollY + winH) {
newTop -= subMenu.offsetHeight - item.offsetHeight;
if (subMenu.__zp_dropshadow) newTop -= 5;
} else {
newTop -= subMenuBorderTop;
}
}
if (menuPos.x + newLeft < 0) {
newLeft = 0 - menuPos.x;
}
if (menuPos.y + newTop < 0) {
newTop = 0 - menuPos.y;
}
subMenu.style.left = newLeft + 'px';
subMenu.style.top = newTop + 'px';
if (subMenu.__zp_dropshadow) {
subMenu.__zp_dropshadow.style.left = (newLeft + 5) + 'px';
subMenu.__zp_dropshadow.style.top = (newTop + 5) + 'px';
}
if (Zapatec.is_ie && !Zapatec.is_ie5) {
if (!subMenu.__zp_wch) {
subMenu.__zp_wch = Zapatec.Utils.createWCH(subMenu);
}
subMenu.__zp_wch.style.zIndex = -1;
if (this._config.dropShadow) {
Zapatec.Utils.setupWCH(subMenu.__zp_wch, -subMenuBorderLeft, -subMenuBorderTop, subMenu.offsetWidth + 6, subMenu.offsetHeight + 5);
} else {
Zapatec.Utils.setupWCH(subMenu.__zp_wch, -subMenuBorderLeft, -subMenuBorderTop, subMenu.offsetWidth, subMenu.offsetHeight);
}
}
this.toggleItem(item_id, true);
}
};
Zapatec.Menu.prototype.itemHide = function(item_id) {
var item = this.items[item_id];
var subMenu = this._getTree(item.__zp_subtree);
var parMenu = this._getTree(item.__zp_parent);
if (subMenu) {
this.toggleItem(item_id, false);
parMenu.__zp_activeitem = '';
subMenu.__zp_activeitem = '';
for (var i in this.items) {
if (this.items[i].__zp_state) return;
}
this.clickDone = false;
}
};
Zapatec.Menu.dragStart = function (ev, menu) {
ev || (ev = window.event);
if (menu.dragging) {
return true;
}
var rootMenu = menu.trees[menu._el];
if (!(/(absolute|fixed)/).test(rootMenu.style.position)) {
rootMenu.style.position = 'absolute';
var pos = Zapatec.Utils.getAbsolutePos(rootMenu);
rootMenu.style.left = pos.x + 'px';
rootMenu.style.top = pos.y + 'px';
}
var testElm = ev.srcElement || ev.target;
while (1) {
if (testElm == rootMenu) break;
else testElm = testElm.parentNode;
if (!testElm) return true;
}
menu.dragging = true;
var posX = ev.pageX || ev.clientX + window.document.body.scrollLeft || 0;
var posY = ev.pageY || ev.clientY + window.document.body.scrollTop || 0;
var L = parseInt(rootMenu.style.left) || 0;
var T = parseInt(rootMenu.style.top) || 0;
menu.xOffs = (posX - L);
menu.yOffs = (posY - T);
if (menu.config.scrollWithWindow) {
Zapatec.ScrollWithWindow.unregister(menu.trees[menu._el]);
}
};
Zapatec.Menu.dragMove = function (ev, menu) {
ev || (ev = window.event);
var rootMenu = menu.trees[menu._el];
if (!(menu && menu.dragging)) {
return false;
}
var posX = ev.pageX || ev.clientX + window.document.body.scrollLeft || 0;
var posY = ev.pageY || ev.clientY + window.document.body.scrollTop || 0;
var st = rootMenu.style, L = posX - menu.xOffs, T = posY - menu.yOffs;
st.left = L + "px";
st.top = T + "px";
return Zapatec.Utils.stopEvent(ev);
};
Zapatec.Menu.dragEnd = function (ev, menu) {
if (!menu) {
return false;
}
if (menu.dragging) {
menu.dragging = false;
var rootMenu = menu.trees[menu._el];
var st = rootMenu.style, L = parseInt(st.left), T = parseInt(st.top);
var scrollX = window.pageXOffset || document.body.scrollLeft ||
document.documentElement.scrollLeft || 0;
var scrollY = window.pageYOffset || document.body.scrollTop ||
document.documentElement.scrollTop || 0;
var winW = document.body.clientWidth ||
document.documentElement.clientWidth || window.innerWidth || 0;
var winH = document.body.clientHeight ||
document.documentElement.clientHeight || window.innerHeight || 0;
if (L < 0) {
st.left = '0px';
} else if (L + rootMenu.offsetWidth > scrollX + winW) {
st.left = scrollX + winW - rootMenu.offsetWidth + 'px';
}
if (T < 0) {
st.top = '0px';
} else if (T + rootMenu.offsetHeight > scrollY + winH) {
st.top = scrollY + winH - rootMenu.offsetHeight + 'px';
}
if (menu.config.scrollWithWindow) {
Zapatec.ScrollWithWindow.register(rootMenu);
}
}
};
Zapatec.Menu.prototype.itemDisable = function(item_id) {
var item = this.items[item_id];
if (item) {
Zapatec.Utils.addClass(item, "zpMenuDisabled");
}
};
Zapatec.Menu.prototype.itemEnable = function(item_id) {
var item = this.items[item_id];
if (item) {
Zapatec.Utils.removeClass(item, "zpMenuDisabled");
}
};
Zapatec.Menu.prototype.popupMenu = function() {
for (var menuId in Zapatec.MenuTree.all) {
var menu = Zapatec.MenuTree.all[menuId];
if (menu.config.triggerEvent) {
menu.hideMenu();
}
}
if (arguments.length > 1) {
this.showMenu(arguments[0], arguments[1]);
} else {
this.showMenu();
}
};
Zapatec.Menu.prototype.showMenu = function() {
var top = this.top_parent;
var menu = top.__zp_menu;
if (arguments.length > 1) {
top.style.position = 'absolute';
top.style.left = arguments[0] + 'px';
top.style.top = arguments[1] + 'px';
}
top.style.display = 'block';
if (!menu.style.width) {
if (menu.childNodes) {
var menuWidth = 0;
var itemMargin = 0;
for (var i = 0; i < menu.childNodes.length; i++) {
var item = menu.childNodes[i];
if (i == 0) {
itemMargin = item.offsetLeft;
}
if (this.config.vertical) {
if (item.offsetWidth > menuWidth) {
menuWidth = item.offsetWidth + itemMargin;
}
} else {
menuWidth += item.offsetWidth + itemMargin;
}
}
if (typeof menu.clientLeft != 'undefined') {
menuWidth += menu.clientLeft * 2;
} else {
menuWidth += menu.offsetWidth - menu.clientWidth;
}
if (menu.clientWidth > menuWidth) {
menu.style.width = menu.clientWidth + 'px';
} else {
menu.style.width = menuWidth + 'px';
}
}
}
if (arguments.length <= 1) {
if (this.config.top || this.config.right || this.config.bottom || this.config.left) {
top.style.position = 'absolute';
if (this.config.top) {
top.style.top = parseInt(this.config.top) + 'px';
} else if (this.config.bottom) {
var winH = document.body.clientHeight || document.documentElement.clientHeight || window.innerHeight || 0;
top.style.top = (winH - parseInt(this.config.bottom) - menu.offsetHeight - (top.offsetHeight - top.clientHeight)) + 'px';
}
if (this.config.left) {
top.style.left = parseInt(this.config.left) + 'px';
} else if (this.config.right) {
var winW = document.body.clientWidth || document.documentElement.clientWidth || window.innerWidth || 0;
top.style.left = (winW - parseInt(this.config.right) - menu.offsetWidth - (top.offsetWidth - top.clientWidth)) + 'px';
}
} else if (window.opera && (this.config.drag || this.config.scrollWithWindow)) {
top.style.position = 'absolute';
var pos = Zapatec.Utils.getAbsolutePos(top);
top.style.left = pos.x + 'px';
top.style.top = pos.y + 'px';
}
}
top.style.zIndex = this.config.zIndex;
if ((this.config.rememberPath || this.config.pathCookie != '__zp_item') && this.path) {
this.highlightPath(this.path);
if (this.config.rememberPath == 'expand') {
this.sync(this.path);
}
}
};
Zapatec.Menu.prototype.hideMenu = function() {
if (this.top_parent.style.display != 'none') {
this.collapseAll();
this.top_parent.style.display = 'none';
}
};
Zapatec.Menu.selectedItemsStack = new Array();
Zapatec.Menu.selectItem = function(item) {
Zapatec.Utils.addClass(item, "zpMenu-item-selected");
if (/zpMenu-item-collapsed/i.test(item.className)) {
Zapatec.Utils.addClass(item, "zpMenu-item-selected-collapsed");
}
for (var i = Zapatec.Menu.selectedItemsStack.length - 1; i >= 0; i--) {
if (Zapatec.Menu.selectedItemsStack[i] == item) {
Zapatec.Menu.selectedItemsStack.splice(i, 1);
}
}
Zapatec.Menu.selectedItemsStack.push(item);
};
Zapatec.Menu.unselectItem = function(item) {
Zapatec.Utils.removeClass(item, "zpMenu-item-selected");
Zapatec.Utils.removeClass(item, "zpMenu-item-selected-collapsed");
for (var i = Zapatec.Menu.selectedItemsStack.length - 1; i >= 0; i--) {
if (Zapatec.Menu.selectedItemsStack[i] == item) {
Zapatec.Menu.selectedItemsStack.splice(i, 1);
}
}
};
Zapatec.Utils.addEvent(window, "load", Zapatec.Utils.checkActivation);
?>