/*
Copyright DHTMLX LTD. http://www.dhtmlx.com
You allowed to use this component or parts of it under GPL terms
To use it on other terms or get Professional edition of the component please contact us at sales@dhtmlx.com
*/






function dhtmlXMenuBarObject(htmlObject, width, height, name, vMode, gfxPath, httpsdummy) {
    if (typeof (htmlObject) != "object")
        this.parentObject = document.getElementById(htmlObject); else
        this.parentObject = htmlObject; if (!this.parentObject) this.parentObject = document.body; this.setGfxPathA = this.setGfxPath; this.setGfxPath = function() { this.setGfxPathA.apply(this, arguments); var self = this; dhtmlXMenuItemObject.prototype.dummyImg = function() { return self.sysGfxPath + "blank.gif" } }; if ((_isIE) && (this.parentObject == document.body))
    { var zdiv = document.createElement("DIV"); zdiv.style.position = "absolute"; zdiv.style.zIndex = 30; zdiv.style.top = 0; zdiv.style.left = 0; document.body.insertBefore(zdiv, document.body.firstChild); this.parentObject = zdiv }; if (!vMode) this.flsmd = true; this.tname = name; this.topMenu = this; this.width = width; this.height = height; this.topNod = 0; this._httpsdummy = httpsdummy; this.ieFix = (document.all ? true : false); var detect = navigator.userAgent.toLowerCase(); place = detect.indexOf('opera') + 1; if (place) this.ieFix = false; this.ieWinMode = true; this.ieWinModeState = 0; this.zIndex = 30; this.maxItems = 99; this.echsw = true; this.sysGfxPath = gfxPath; this.dividerCell = 0; this.firstCell = 0; this.nameCell = 0; this.crossCell = 0; this.echsw2 = true; this.tableCSS = "menuTable"; this.titleCSS = "menuName"; this.secTableCSS = "secondMenuTable"; this.extraMode = convertStringToBoolean(vMode); this.defaultAction = 0; this.onShow = 0; this.onHide = 0; var lastOpenedPanel = 0; var lastSelectedItem = 0; this.items = new Array(); this.itemsCount = 0; this.gitems = new Array(); this.gitemsCount = 0; this.subMenus = new Array(); this.subMenusCount = 0; if (!this.extraMode) this._createPanel(); else
        this._createVPanel(); this.hiddenForm = document.createElement("FORM"); this.hiddenForm.style.display = "none"; this.parentObject.appendChild(this.hiddenForm); if (this._extendedInit) this._extendedInit(); this.xmlLoader = new dtmlXMLLoaderObject(this._parseXMLTree, this); this.setMenuMode("classic"); this.setBarSize(this.width, this.height); this.showBar(); return this
}; dhtmlXMenuBarObject.prototype = new dhtmlXProtobarObject; dhtmlXMenuBarObject.prototype.setZIndex = function(zIndex) { this.zIndex = zIndex; this.topNod.style.zIndex = this.zIndex; if (this.topNod.ieFix) this.topNod.ieFix.style.zIndex = this.zIndex - 1; if ((_isIE) && (this.parentObject) && (this.parentObject.style.position == "absolute")) this.parentObject.style.zIndex = zIndex }; dhtmlXMenuBarObject.prototype.setIconSize = function(size) { this._aimsize = size }; function dhtmlXMenuBarPanelObject(parentPanel, parentItem, mode, minWidth, withoutImages) {
    this.extraMode = !convertStringToBoolean(mode); this.parentPanel = parentPanel; this.parentItem = parentItem; this.parentObject = parentPanel.parentObject; this.topMenu = parentPanel.topMenu; this.topNod = 0; this.dividerCell = 0; this.firstCell = 0; this.nameCell = 0; this.crossCell = 0; this.maxItems = 99; this.items = new Array(); this.itemsCount = 0; this.withoutImages = (withoutImages == 1); this.mixedImages = (withoutImages == 2); if (minWidth) this.width = minWidth; if ((!this.topMenu.flsmd) || (this.topMenu != this.parentPanel))
        this.parentItem.setHasChild(true); if (mode) this._createVPanel = this.topMenu._createPanel; else
        this._createVPanel = this.topMenu._createVPanel; this._createVPanel(); this.topNod.panel = this; this.topNod.onmouseover = this.topMenu._onmouseoverZ; this.topNod.onmouseout = this.topMenu._onmouseoutZ; parentItem.subMenu = this; this.topNod.style.position = "absolute"; this.topMenu.subMenus[this.topMenu.subMenusCount] = this; this.topMenu.subMenusCount++; return this
}; dhtmlXMenuBarObject.prototype.enableIESelectBoxFix = function(mode) { this.ieFix = convertStringToBoolean(mode) }; dhtmlXMenuBarObject.prototype.enableTooltip = function(mode) { this._endtt = (!convertStringToBoolean(mode)) }; dhtmlXMenuBarObject.prototype.disableSmartPositioning = function(mode) { this._skipAPP = convertStringToBoolean(mode) }; dhtmlXMenuBarObject.prototype.enableMenuHandle = function(mode) { if (convertStringToBoolean(mode)) this.dividerCell.style.display = ""; else this.dividerCell.style.display = "none" }; dhtmlXMenuBarObject.prototype.enableChildIcon = function(mode) { this.echsw = convertStringToBoolean(mode) }; dhtmlXMenuBarObject.prototype.setHrefMode = function(mode) { this._hmode = mode }; dhtmlXMenuBarObject.prototype.enableDirectOnClick = function(mode) { this._dirClick = convertStringToBoolean(mode) }; dhtmlXMenuBarObject.prototype.enableChildIconSwitching = function(mode) { this.echsw2 = convertStringToBoolean(mode) }; dhtmlXMenuBarObject.prototype.enableWindowOpenMode = function(mode) { this.ieWinMode = convertStringToBoolean(mode) }; dhtmlXMenuBarObject.prototype._getItemIndex = function(id) { for (var i = 0; i < this.gitemsCount; i++) { if (this.gitems[i].id == id) return i }; return -1 }; dhtmlXMenuBarObject.prototype.getItem = function(itemId) { var z = this._getItemIndex(itemId); if (z >= 0) return this.gitems[z] }; dhtmlXMenuBarObject.prototype._showScroll = function(node, order, rest, mode) {
    if (!node.items[order]) return; if (mode == "") if (rest == 1) node.cAr[2]++; else node.cAr[0]--; else
        if (rest == 1) node.cAr[0]++; else node.cAr[2]--; if ((!node.items[order].CSSTag) || (node.items[order].hide))
    { node.items[order].topNod.parentNode.style.display = mode; this._showScroll(node, order * 1 + rest * 1, rest, mode) } else
    { node.items[order].topNod.parentNode.style.display = mode } 
}; dhtmlXMenuBarObject.prototype._fixScrollState = function(node, rest) {
    if (parseInt(node.topNod.offsetWidth) > parseInt(node.topNod.width))
        node.topNod.width = node.topNod.offsetWidth; var flag = 0; if (rest > 0) { this._showScroll(node, node.cAr[0], 1, "none"); this._showScroll(node, node.cAr[2], 1, "") } else { this._showScroll(node, node.cAr[0] - 1, -1, ""); this._showScroll(node, node.cAr[2] - 1, -1, "none") }; z.scrollState += rest * 1; if ((node.scrollState * 1 + node.maxItems * 1) == (node.realItemsCount))
        node.scrollDown.className = "menuScrollerDisabled"; else
    { node.scrollDown.className = "menuScrollerEnabled"; flag++ }; if (node.scrollState == 0) node.scrollUp.className = "menuScrollerDisabled"; else
    { node.scrollUp.className = "menuScrollerEnabled"; flag++ }; return flag
}; dhtmlXMenuBarObject.prototype._scrollstart = function() {
    if (this.timeoutops) clearTimeout(this.timeoutops); z = this.parentNode.parentNode.parentNode.menu; if (z.scrollDown == this) var rest = 1; else
        var rest = -1; if (z.topMenu._fixScrollState(z, rest) == 2)
        this.timeoutops = setTimeout(new z.topMenu._delayedTimerCall(this, "onmouseover", 0, 0), 333)
}; dhtmlXMenuBarObject.prototype._scrollend = function(node) { if (this.timeoutops) window.clearTimeout(this.timeoutops) }; dhtmlXMenuBarObject.prototype._scrollCheck = function(node) { var z_count = 0; for (var i = 0; i < node.itemsCount; i++) if ((node.items[i].CSSTag) && (!node.items[i].hide)) z_count++; node.realItemsCount = z_count; node.cAr = new Array(0, 0, 0); if ((node.realItemsCount > node.maxItems) && (node.scrollDown)) { node.scrollDown.style.display = ""; node.scrollUp.style.display = ""; node.scrollDown.className = 'menuScrollerEnabled'; node.scrollState = 0; node.scrollUp.onmouseover = this._scrollstart; node.scrollUp.onmouseout = this._scrollend; node.scrollDown.onmouseover = this._scrollstart; node.scrollDown.onmouseout = this._scrollend; node.cAr[2] = 0; var z_count = 0; var b_flag = true; for (var i = 0; i < node.itemsCount; i++) { if ((node.items[i].CSSTag) && (!node.items[i].hide)) z_count++; if (z_count > node.maxItems) { node.items[i].topNod.parentNode.style.display = "none"; if (node.cAr[2] == 0) node.cAr[2] = i } else { node.items[i].topNod.parentNode.style.display = "" } } } }; dhtmlXMenuBarObject.prototype._scrollClear = function(node) {
    for (var i = 0; i < node.itemsCount; i++) {
        if ((node.items[i].CSSTag) && (!node.items[i].hide))
            node.items[i].topNod.parentNode.style.display = ""; if (node.scrollDown) node.scrollDown.style.display = "none"; if (node.scrollUp) node.scrollUp.style.display = "none"
    } 
}; dhtmlXMenuBarObject.prototype.getPanel = function(panelId) { var z = this._getGItemIndex(panelId); if (z < 0) return this; else return this.gitems[z].subMenu }; dhtmlXMenuBarObject.prototype.addItem = function(panel, item) { if (this == panel) this.addFirstLevel(panel, item); else this.addSecondLevel(panel, item) }; dhtmlXMenuBarObject.prototype._addItem = function(panel, item) { panel.items[panel.itemsCount] = item; panel.firstCell.parentNode.insertBefore(item.getTopNode(), panel.firstCell); item.getTopNode().style.marginBottom = "20px"; item.parentNod = this; item.parentPanel = panel; if (this.defaultAction) item.setAction(this.defaultAction); panel.itemsCount++; this.gitems[this.gitemsCount] = item; this.gitemsCount++ }; dhtmlXMenuBarObject.prototype.addItem_vertical = function(panel, item) { panel.items[panel.itemsCount] = item; var tr = document.createElement("tr"); tr.style.verticalAlign = "top"; tr.appendChild(item.getTopNode()); panel.firstCell.parentNode.insertBefore(tr, panel.firstCell); item.parentNod = this; item.parentPanel = panel; if (this.defaultAction) item.setAction(this.defaultAction); panel.itemsCount++; this.gitems[this.gitemsCount] = item; this.gitemsCount++ }; dhtmlXMenuBarObject.prototype._getGItemIndex = function(id) { return (this._getItemIndex(id)) }; dhtmlXMenuBarObject.prototype.clearAll = function(id) { for (var i = 0; i < this.gitemsCount; i++) { var x = this.gitems[i].getTopNode(); x.parentNode.removeChild(x); x = this.gitems[i].parentPanel; if (x != this.topMenu && x.topNod) { x.topNod.parentNode.removeChild(x.topNod); x.topNod = null } }; this.items = new Array(); this.itemsCount = 0; this.gitems = new Array(); this.gitemsCount = 0; this.subMenus = new Array(); this.subMenusCount = 0; this.realWinModeStart = this.ieWinModeState = this._lastOpenedPanel = this._lastSelectedItem = null }; dhtmlXMenuBarObject.prototype.removeItem = function(id) {
    var z = this._getGItemIndex(id); if (z >= 0) {
        var panel = this.gitems[z].parentPanel; if (this.gitems[z].removeItem) this.gitems[z].removeItem(); if (panel.firstCell.tagName == "TR") var zw = this.gitems[z].getTopNode().parentNode
        else
            var zw = this.gitems[z].getTopNode().parentNode
        zw.parentNode.removeChild(zw); panel.itemsCount--; for (var i = 0; i < panel.itemsCount; i++) if (panel.items[i] == this.gitems[z]) { panel.items[i] = panel.items[i + 1]; panel.items[i + 1] = this.gitems[z] }; panel.items[panel.itemsCount] = 0; this.gitemsCount--; for (var i = z; i < this.gitemsCount; i++) { this.gitems[i] = this.gitems[i + 1] }; this.gitems[this.gitemsCount] = 0
    } 
}; dhtmlXMenuBarObject.prototype._parseXMLTree = function(that, node, level, parentNode, aTempNode, mode) {
    if (!node) { node = that.xmlLoader.getXMLTopNode("menu"); if (that._awaitXML) { aTempNode = that._awaitXML; parentNode = aTempNode.parentPanel; level = 1; that._awaitXML = null; mode = this.modeValue } else { level = 0; parentNode = that; mode = node.getAttribute("mode"); if (mode) that.setMenuMode(mode); var menuAlign = node.getAttribute("menuAlign"); if (menuAlign) that.setBarAlign(menuAlign); that.maxItems = node.getAttribute("maxItems") || 99; var absolutePosition = node.getAttribute("absolutePosition"); var aleft = node.getAttribute("left"); var atop = node.getAttribute("top"); if (absolutePosition) that.topNod.style.top = parseInt(atop || 0) + "px"; if (absolutePosition) that.topNod.style.left = parseInt(aleft || 0) + "px"; if (absolutePosition == "yes") that.topNod.style.position = "absolute"; var name = node.getAttribute("name"); if (name) that.setTitleText(name); var width = node.getAttribute("width"); var height = node.getAttribute("height"); that.setBarSize(width, height); var imageTextButtonCssClass = node.getAttribute("imageTextButtonCssClass"); var globalTextCss = node.getAttribute("globalTextCss"); that.globalSecondCss = node.getAttribute("globalSecondCss"); that.globalCss = node.getAttribute("globalCss"); that.globalTextCss = node.getAttribute("globalTextCss"); if (node.getAttribute("withoutImages")) that.withoutImages = true; if (node.getAttribute("mixedImages")) that.mixedImages = true; that.type = node.getAttribute("type") || "a1" } }; if (level) { var parentNode = new dhtmlXMenuBarPanelObject(parentNode, aTempNode, ((mode != "classic") && (mode != "popup")), node.getAttribute("panelWidth"), (node.getAttribute("withoutImages") ? 1 : (node.getAttribute("mixedImages") ? 2 : 0))); parentNode.maxItems = node.getAttribute("maxItems") || that.maxItems }; for (var i = 0; i < node.childNodes.length; i++) {
        if (node.childNodes[i].nodeType == 1) {
            var localItem = node.childNodes[i]

            if (!level) {
                if ((!localItem.getAttribute("className")) && (that.globalCss))
                    localItem.setAttribute("className", that.globalCss)
            } else
                if (!localItem.getAttribute("className")) {
                if (that.globalSecondCss) localItem.setAttribute("className", that.globalSecondCss); else
                    localItem.setAttribute("className", "menuButtonSecond")
            }; if ((!localItem.getAttribute("textClassName")) && (that.globalTextCss))
                localItem.setAttribute("textClassName", that.globalTextCss); var tempsrc = localItem.getAttribute("src"); if (parentNode.withoutImages) { localItem.setAttribute("src", ""); localItem.setAttribute("src2", that.sysGfxPath + "blank.gif") } else {
                if ((parentNode.mixedImages) && (tempsrc == null))
                    tempsrc = that.sysGfxPath + "blank.gif"; else
                    tempsrc = that.sysGfxPath + (tempsrc || "blank.gif"); localItem.setAttribute("src", tempsrc)
            }; tempsrc = localItem.getAttribute("width"); if (tempsrc == null) { localItem.setAttribute("width", "100%") }; if (that._endtt) localItem.setAttribute("tooltip", ""); if (that._aimsize) localItem.setAttribute("imageSize", that._aimsize); var z = eval("window.dhtmlX" + localItem.tagName + "Object"); if (z) var TempNode = new z(localItem, node.getAttribute("type") || that.type); else
                var TempNode = null; if (localItem.tagName == "divider") if ((level) || (that.modeValue == "popup"))
                that.addItem(parentNode, new dhtmlXMenuDividerYObject(localItem.getAttribute("id"))); else
                that.addItem(parentNode, new dhtmlXMenuDividerXObject(localItem.getAttribute("id"))); else
                if (TempNode) if (level) that.addItem(parentNode, TempNode); else
                that.addItem(parentNode, TempNode); if (localItem.getAttribute("disabled"))
                TempNode.disable(); if ((TempNode) && (localItem.getAttribute("submenu"))) { TempNode.submenu = localItem.getAttribute("submenu"); TempNode.setHasChild(true) }; if (that.checkXMLChild(localItem)) that._parseXMLTree(that, localItem, level + 1, parentNode, TempNode, mode)
        } 
    }; that._scrollCheck(parentNode); if (level == 0) { if (that.topMenu.correctMenuPosition) that.topMenu.correctMenuPosition(that.topMenu.topNod); if (that.topMenu.waitCall) that.topMenu.waitCall() } 
}; dhtmlXMenuBarObject.prototype.checkXMLChild = function(node) { for (var i = 0; i < node.childNodes.length; i++) if (node.childNodes[i].nodeType == 1) return true; return false }; dhtmlXMenuBarObject.prototype._createPanel = function() {
    if (!this.width) this.width = 1; if (!this.height) this.height = 1; if (this.width.toString().indexOf("%") == -1) this.width = parseInt(this.width) + "px"; if (this.height.toString().indexOf("%") == -1) this.height = parseInt(this.height) + "px"; var div = document.createElement("div"); div.innerHTML = '<table cellpadding="0" cellspacing="0" class="' + this.topMenu.tableCSS + '" width="' + this.width + '" height="' + this.height + '"><tbody>' +
 '<tr>' +
 '<td width="3px" style="display:none"><div class="menuHandle">&nbsp;</div></td>' +
 '<td class="' + this.topMenu.titleCSS + '" style="display:none">' + this.topMenu.tname + '</td>' +
 '<td></td>' +
 '<td align="right" ' + (_isOpera ? '' : 'width="100%"') + ' class="' + this.topMenu.titleCSS + '">&nbsp;' + this.topMenu.tname + '</td>' +
 '<td >&nbsp;</td>' +
 '</tr></tbody></table>'; var table = div.childNodes[0]; table.style.display = "none"; table.setAttribute("UNSELECTABLE", "on"); table.onselectstart = this.topMenu.badDummy; this.topNod = table; this.dividerCell = table.childNodes[0].childNodes[0].childNodes[0]; this.dividerCell.menu = this; this.preNameCell = this.dividerCell.nextSibling; this.firstCell = this.preNameCell.nextSibling; this.nameCell = this.firstCell.nextSibling; this.crossCell = this.nameCell.nextSibling; if (this.topMenu != this) { this.dividerCell.style.display = "none"; this.preNameCell.style.display = "none"; this.nameCell.style.display = "none"; this.crossCell.style.display = "none"; table.className = this.topMenu.secTableCSS }; this.topNod.style.zIndex = this.topMenu.zIndex; if (this.topMenu.ieFix) { var iframe = document.createElement("IFRAME"); if (this._httpsdummy || this.topMenu.sysGfxPath) iframe.src = (this._httpsdummy || (this.topMenu.sysGfxPath + "/blank.html")); iframe.style.zIndex = this.topMenu.zIndex - 1; iframe.style.position = "absolute"; iframe.style.display = "none"; iframe.scrolling = "no"; iframe.frameBorder = 0; this.parentObject.appendChild(iframe); this._del_iframe = iframe; this.topNod.ieFix = iframe }; this.parentObject.appendChild(table); this._del_table = table
}; dhtmlXMenuBarObject.prototype.setMenuCSS = function(table, title, secTable) { this.tableCSS = table; this.titleCSS = title; this.secTableCSS = secTable; this.topNod.className = this.tableCSS; this.preNameCell.className = this.titleCSS; this.nameCell.className = this.titleCSS }; dhtmlXMenuBarObject.prototype._adjustGFXPath = function(path) { if (this.extraMode) { this.topNod.rows[0].cells[0].childNodes[0].src = path + 'btn_up1.gif'; this.topNod.rows[this.topNod.rows.length - 3].cells[0].childNodes[0].src = path + 'btn_up2.gif' } }; dhtmlXMenuBarObject.prototype._createVPanel = function() {
    if (!this.width) this.width = 120; if (!this.height) this.height = 20; if (this.width.toString().indexOf("%") == -1) this.width = parseInt(this.width) + "px"; if (this.height.toString().indexOf("%") == -1) this.height = parseInt(this.height) + "px"; var div = document.createElement("div"); div.innerHTML = '<table cellpadding="0" cellspacing="0" class="' + this.topMenu.tableCSS + '" width="' + this.width + '" ><tbody>' +
 '<tr ><td class="menuScrollerDisabled" style="display:none"><img src="' + this.topMenu.sysGfxPath + 'btn_up1.gif"/></td></tr>' +
 '<tr><td class="' + this.topMenu.titleCSS + '" style="display:none">' + this.tname + '</td></tr>' +
 '<tr><td></td></tr>' +
 '<tr><td class="menuScrollerDisabled" style="display:none"><img src="' + this.topMenu.sysGfxPath + 'btn_up2.gif"/></td></tr>' +
 '<tr><td align="right" class="' + this.topMenu.titleCSS + '" style="display:none">' + this.tname + '</td></tr>' +
 '<tr><td></td></tr>' +
 '</tbody></table>'; var table = div.childNodes[0]; table.style.display = 'none'; this.topNod = table; table.onselectstart = this.topMenu.badDummy; table.setAttribute("UNSELECTABLE", "on"); this.dividerCell = table.childNodes[0].childNodes[0].childNodes[0]; table.menu = this; this.scrollUp = this.dividerCell; this.scrollonmouseover = ""; this.preNameCell = table.childNodes[0].childNodes[1].childNodes[0]; this.firstCell = table.childNodes[0].childNodes[2]; this.scrollDown = table.childNodes[0].childNodes[3].childNodes[0]; this.nameCell = table.childNodes[0].childNodes[4].childNodes[0]; this.crossCell = table.childNodes[0].childNodes[5].childNodes[0]; if (this.topMenu != this) { this.preNameCell.parentNode.style.display = "none"; this.nameCell.parentNode.style.display = "none"; this.crossCell.parentNode.style.display = "none"; table.className = this.topMenu.secTableCSS }; this.topNod.style.zIndex = this.topMenu.zIndex; if (this.topMenu.ieFix) { var iframe = document.createElement("IFRAME"); iframe.style.zIndex = this.topMenu.zIndex - 1; iframe.style.position = "absolute"; iframe.src = (this._httpsdummy || (this.topMenu.sysGfxPath + "blank.gif")); iframe.style.display = "none"; iframe.scrolling = "no"; iframe.frameBorder = 0; this.parentObject.appendChild(iframe); this._del_iframe = iframe; this.topNod.ieFix = iframe }; this.parentObject.appendChild(table); this._del_table = table
};
function dhtmlXMenuItemObject(id, text, width, src, className, disableImage, href, target, type, image_size) {
    type = type || "a1"; var src2 = ""; var tooltip = ""; if (id.tagName == "MenuItem") {
        type = text || "a1"; src = id.getAttribute("src"); src2 = id.getAttribute("src2"); text = id.getAttribute("name"); className = id.getAttribute("className"); disableImage = id.getAttribute("disableImage"); width = id.getAttribute("width");
        href = id.getAttribute("href");
        //if (_isKHTML) href = href.replace(/\&\#38;/g, "&");
         target = id.getAttribute("target"); tooltip = id.getAttribute("tooltip"); if ((tooltip !== "") && (!tooltip)) tooltip = text; image_size = id.getAttribute("imageSize"); id = id.getAttribute("id")
    }; if (id) this.id = id; else this.id = (new Date()).valueOf(); src2 = src2 || src;
    image_size = parseInt(image_size) || 18; this.topNod = 0; this.action = 0; this.persAction = 0; this.src = src; this.text = text; 
    this.href = href; this.target = target; this.className = className || "menuButton"; this.textClassName = "defaultMenuText"; this.disableImage = disableImage; td = document.createElement("td"); this.topNod = td; td.align = "center"; td.noWrap = true; if (width && width.toString().indexOf("%") == -1) { width = parseInt(width) + "px"; if (_isOpera) td.style.width = width }; td.innerHTML = "<table align='left' cellpadding='0' cellspacing='0' border='0' style='" + (width ? ("width:" + width + ";") : "") + " height:100%;'><tr><td width='" + (2 + image_size) + "px' style=' " + (src ? "" : "display:none;") + "'><img src='" + (src2 ? src2 : this.dummyImg()) + "' border='0' width='" + image_size + "px' height='" + image_size + "px'/></td><td width='100%' align='left' style=' " + (src ? " padding-left:2px;" : "") + " overflow:hidden;' ><table width='100%' height='100%' cellpadding='0' cellspacing='0'><tr><td title='" + tooltip + "' class='" + this.textClassName + "' nowrap='nowrap' >" + this.text + "</td><td width='12px'><img style='display:none' src='" + this.dummyImg() + "'/></td></tr></table></td></tr></table>"; this.imageTag = td.childNodes[0].childNodes[0].childNodes[0].childNodes[0].childNodes[0]; this.childMenuTag = td.childNodes[0].childNodes[0].childNodes[0].childNodes[1].childNodes[0].childNodes[0].childNodes[0].childNodes[1].childNodes[0]; this.textTag = this.childMenuTag.parentNode.parentNode.childNodes[0]; switch (type) {
        case "a1":
            this.CSSTag = td; this.CSSImageTag = null; break; 
        case "a2":
            this.CSSTag = td.childNodes[0]; this.CSSImageTag = null; break; 
        case "a3":
            this.CSSTag = td.childNodes[0].childNodes[0].childNodes[0].childNodes[1]; this.CSSImageTag = null; break; 
        case "b1":
            this.CSSTag = td; this.CSSImageTag = this.imageTag.parentNode; break; 
        case "b2":
            this.CSSTag = td.childNodes[0]; this.CSSImageTag = this.imageTag.parentNode; break; 
            case "b3":
            this.CSSTag = td.childNodes[0].childNodes[0].childNodes[0].childNodes[1]; 
            this.CSSImageTag = this.imageTag.parentNode; break
    }; td.id = "menuItem_" + this.id; this.CSSTag.className = this.className; td.objectNode = this; this.enable(); return this
}; dhtmlXMenuItemObject.prototype = new dhtmlXButtonPrototypeObject; dhtmlXMenuItemObject.prototype.dummyImg = function() { return "" }; dhtmlXMenuItemObject.prototype.enable = function() {
    if (this.disableImage) this.imageTag.src = this.src; else
        if (!this.className) this.topNod.className = this.objectNode.className; else
        this.topNod.className = this.className; if (this.textTag) this.textTag.className = this.textClassName; this.topNod.onmouseover = this._onmouseoverX; this.topNod.onmouseout = this._onmouseoutX; this.topNod.onmousedown = this._onmousedownX; this.topNod.onmouseup = this._onclickX
}; dhtmlXMenuItemObject.prototype._onmousedownX = function(e) { if ((!this.objectNode.parentPanel.parentPanel) && ((this.objectNode.subMenu) || (this.objectNode.submenu))) this.objectNode._onclickX(e, this.objectNode) }; dhtmlXMenuItemObject.prototype.setHasChild = function(mode) { if ((convertStringToBoolean(mode)) && (this.parentPanel.topMenu.echsw)) { this.childMenuTag.src = this.parentPanel.topMenu.sysGfxPath + 'btn_rt1.gif'; this.childMenuTag.style.display = '' } else this.childMenuTag.style.display = 'none' }; dhtmlXMenuItemObject.prototype.setText = function(newText) { this.textTag.innerHTML = newText }; dhtmlXMenuItemObject.prototype._onclickX = function(e, that) {
    if (!e) e = event; e.cancelBubble = true; if (!that) that = this.objectNode; var thatM = that.parentPanel.topMenu; if (that.topNod.dstatus) return; if (that.submenu) { var a_that = that; var a_top = thatM; thatM.loadXMLFor(that.submenu, that.id, function() { a_that.submenu = null; a_that._onclickX([], a_that) }); a_that.submenu = null; return }; if ((thatM.ieWinMode) && (!thatM.ieWinModeState) && (that.subMenu))
    { that.parentPanel.topMenu._onItemOver(that, that.subMenu); if (document.body.currentActiveMenu != thatM) if (document.body.onmouseup) { document.body.onmouseup() }; if (thatM.realWinModeStart) { that.parentPanel.topMenu.ieWinModeState = 1; if (document.body.onmouseup != thatM._onclickclose) { thatM.olddoc = document.body.onmouseup; document.body.onmouseup = thatM._onclickclose }; document.body.currentActiveMenu = that.parentPanel.topMenu; thatM.realWinModeStart = 0 } else thatM.realWinModeStart = 1; return }; if ((thatM.ieWinMode) && (thatM.ieWinModeState) && (that.subMenu)) {
        if ((!thatM.realWinModeStart) && (that.parentPanel == thatM))
        { thatM.realWinModeStart = 1; return } else
            thatM.realWinModeStart = 0
    }; thatM.realWinModeStart = 0; thatM.ieWinModeState = 0; thatM.dropTimers(that.parentPanel); thatM._closePanel(that.parentPanel); thatM.lastSelectedItem = 0; thatM.probablyCloseMe = 0; thatM.lastOpenedPanel = ""; if (that.parentPanel.topMenu.ieWinMode) {
        if (that.parentPanel.topMenu.olddoc) document.body.onclick = that.parentPanel.topMenu.olddoc; else
            document.body.onclick = null
    }; if ((that.parentPanel.topMenu.ieWinMode) && (!that.parentPanel.parentPanel) && (that.subMenu))
    { return }; that.parentPanel.topMenu._unMarkItem(that, "down"); if (that.parentPanel.topMenu._dirClick) that._onclickY(0, 0); else
        setTimeout(new that.parentPanel.topMenu._delayedTimerCall(that, "_onclickY", 0, 0), 100); return
}; dhtmlXMenuBarObject.prototype._onclickclose = function(e) {
    var that = this.currentActiveMenu; if (that.olddoc) document.body.onmouseup = that.olddoc; else
        document.body.onmouseup = null; that.realWinModeStart = 0; that.lastOpenedPanel = ""; that.ieWinModeState = 0; that.dropTimers(that); that._closePanel(that); that.lastSelectedItem = 0
}; dhtmlXMenuBarObject.prototype.close = function(e) {
    if (this.olddoc) document.body.onmouseup = this.olddoc; else
        document.body.onmouseup = null; that.realWinModeStart = 0; that.lastOpenedPanel = ""; that.ieWinModeState = 0; that.dropTimers(this); that._closePanel(this); that.lastSelectedItem = 0
}; dhtmlXMenuItemObject.prototype._onclickY = function() {
    if ((!this.persAction) || (this.persAction()))
        if ((!this.action) || (this.action(this.id)))
        if (this.href) { if (this.target) { var form = this.parentPanel.topMenu.hiddenForm; form.action = this.href; form.target = this.target; form.method = (this.parentPanel.topMenu._hmode ? this.parentPanel.topMenu._hmode : "GET"); form.submit() } else document.location.href = this.href; return false }; return false
}; dhtmlXMenuItemObject.prototype._onmouseoverY = function(e) {
    var that = this.parentPanel.topMenu; if ((!that.ieWinMode) || (that.ieWinModeState))
        this.parentPanel.topMenu._onItemOver(this, this.subMenu); else {
        if ((that.lastSelectedItem) && (that.lastSelectedItem != this))
            this.parentPanel.topMenu._unMarkItem(that.lastSelectedItem); this.parentPanel.topMenu._markItem(this)
    } 
}; dhtmlXMenuItemObject.prototype._onmouseoutY = function(e) { this.parentPanel.topMenu._onItemOut(this, this.subMenu) }; dhtmlXMenuBarObject.prototype.dropTimers = function(panel) { if (!panel) return; z = panel.topNod.timeoutop; if (z) clearTimeout(z); if (!panel.parentPanel) return; var z = panel.parentPanel.topNod.timeoutop; if (z) clearTimeout(z); var z = panel.parentItem.topNod.timeoutop; if (z) clearTimeout(z) }; dhtmlXMenuBarObject.prototype._onmouseoverZ = function(e) { if (!e) e = event; e.cancelBubble = true; that = this.panel.topMenu; if (this.timeoutop) clearTimeout(this.timeoutop); that.dropTimers(this.panel); that._onItemOver(0, this.panel) }; dhtmlXMenuBarObject.prototype._onmouseoutZ = function(e) {
    if (!e) e = event; e.cancelBubble = true; that = this.panel.topMenu; if (this.timeoutop) clearTimeout(this.timeoutop); if ((!that.ieWinMode))
    { this.timeoutop = setTimeout(new that._delayedTimerCall(this.panel.topMenu, "_onItemOut", 0, this.panel), 200) } 
}; dhtmlXMenuBarObject.prototype._delayedTimerCall = function(object, functionName, a, b, time) { this.callFunc = function() { var ax = a; var bx = b; object[functionName](ax, bx) }; return this.callFunc }; dhtmlXMenuBarObject.prototype._onItemOut = function(item, panel) {
    if (!panel) {
        if ((item) && (!item.subMenu))
            this._unMarkItem(item); return
    }; if (this.ieWinMode) if ((panel.topMenu == panel) || ((item) && (this.ieWinModeState == 1))) return; if (item) this._unMarkItem(item); this._closePanel(panel)
}; dhtmlXMenuBarObject.prototype._onItemOver = function(item, panel) {
    if (item) {
        if ((this.lastSelectedItem) && (this.lastSelectedItem != item)) {
            if ((!this.lastSelectedItem.subMenu) || (this.lastSelectedItem.subMenu != item.parentPanel))
                this._unMarkItem(this.lastSelectedItem)
        }; this.lastSelectedItem = item; if (this.ieWinMode) { this._markItem(item, "down") } else
        { this._markItem(item) }; var zp = item.parentPanel; if ((zp._lastSelectedItem) && (zp._lastSelectedItem != item))
            if (zp._lastSelectedItem.subMenu) this._closePanel(zp._lastSelectedItem.subMenu); item.parentPanel._lastSelectedItem = item
    }; if (panel) this._openPanel(panel); if (item.submenu) { var a_that = item; var a_top = this; this.loadXMLFor(item.submenu, item.id, function() { a_that.submenu = null; a_top._onItemOver(a_that, a_that.subMenu) }); a_that.submenu = null; return } 
}; dhtmlXMenuBarObject.prototype._openPanel = function(panel) {
    if ((this.lastOpenedPanel) && (this.lastOpenedPanel != panel) && (this.lastOpenedPanel.parentPanel != panel) && (this.lastOpenedPanel != panel.parentPanel))
    { this._closePanel(this.lastOpenedPanel) }; var z = panel.topNod.timeoutop; if (z) clearTimeout(z); if (panel.topNod.style.display == "") return; if (this.lastOpenedPanel != panel) {
        this.lastOpenedPanel = panel; switch (this.modeValue) {
            case "classic":
                if (panel.topMenu != panel.parentPanel) { panel.topNod.style.left = getAbsoluteLeft(panel.parentItem.topNod) * 1 + panel.parentItem.topNod.offsetWidth * 1 + "px"; panel.topNod.style.top = getAbsoluteTop(panel.parentItem.topNod) + "px" } else { panel.topNod.style.left = getAbsoluteLeft(panel.parentItem.topNod) + "px"; panel.topNod.style.top = getAbsoluteTop(panel.parentItem.topNod) * 1 + panel.parentItem.topNod.offsetHeight * 1 - 1 + "px" }; break; case "popup":
                panel.topNod.style.left = getAbsoluteLeft(panel.parentItem.topNod) * 1 + panel.parentItem.topNod.offsetWidth * 1 + "px"; panel.topNod.style.top = getAbsoluteTop(panel.parentItem.topNod) + "px"; break; case "betta":
                if (panel.topMenu != panel.parentPanel) { panel.topNod.style.left = getAbsoluteLeft(panel.parentItem.topNod) * 1 + "px"; panel.topNod.style.top = getAbsoluteTop(panel.parentItem.topNod) + panel.parentItem.topNod.offsetHeight * 1 - 1 + "px" } else { panel.topNod.style.left = getAbsoluteLeft(panel.parentItem.topNod) * 1 + panel.parentItem.topNod.offsetWidth * 1 + "px"; panel.topNod.style.top = getAbsoluteTop(panel.parentItem.topNod) + "px" }; break; case "alfa":
                panel.topNod.style.top = getAbsoluteTop(panel.parentItem.topNod) * 1 + panel.parentItem.topNod.offsetHeight * 1 - 1 + "px"; panel.topNod.style.left = getAbsoluteLeft(panel.parentItem.topNod) + "px"; break
        }; if (panel.topNod.parentNode.style.position == "absolute") { panel.topNod.style.top = parseInt(panel.topNod.style.top) - getAbsoluteTop(panel.topNod.parentNode) + "px"; panel.topNod.style.left = parseInt(panel.topNod.style.left) - getAbsoluteLeft(panel.topNod.parentNode) + "px" }; panel.topNod.style.display = ""; if (panel.topNod.ieFix) { panel.topNod.ieFix.style.top = panel.topNod.style.top; panel.topNod.ieFix.style.left = panel.topNod.style.left; panel.topNod.ieFix.style.width = panel.topNod.offsetWidth + "px"; panel.topNod.ieFix.style.height = panel.topNod.offsetHeight + "px"; panel.topNod.ieFix.style.display = "" } 
    }; if (!this._skipAPP) this._fixPanelPosition(panel)
}; dhtmlXMenuBarObject.prototype._fixPanelPosition = function(panel, mode) {
    var uf = 0; if (panel.parentPanel) {
        var xs = document.body.offsetWidth - 15 + document.body.scrollLeft; var ys = document.body.offsetHeight - 15 + document.body.scrollTop; if ((panel.topNod.offsetWidth + parseInt(panel.topNod.style.left)) > xs)
        { if (!panel.parentPanel.extraMode) { var z = xs - panel.topNod.offsetWidth; if (z < 0) z = 0; panel.topNod.style.left = z + "px"; if (panel.topNod.ieFix) panel.topNod.ieFix.style.left = z + "px" } else { var z = parseInt(panel.topNod.style.left) - panel.topNod.offsetWidth - panel.parentItem.topNod.offsetWidth; if (z < 0) { var z2 = parseInt(panel.topNod.style.top) + panel.parentItem.topNod.offsetHeight; panel.topNod.style.top = z2 + "px"; if (panel.topNod.ieFix) panel.topNod.ieFix.style.top = z2 + "px"; z = xs - panel.topNod.offsetWidth; if (z < 0) z = 0 }; panel.topNod.style.left = z + "px"; if (panel.topNod.ieFix) panel.topNod.ieFix.style.left = z + "px" } }; if ((panel.topNod.offsetHeight + parseInt(panel.topNod.style.top)) > ys)
        { if (panel.parentPanel.extraMode) { var z = ys - panel.topNod.offsetHeight; if (z < 0) z = 0; panel.topNod.style.top = z + "px"; if (panel.topNod.ieFix) panel.topNod.ieFix.style.top = z + "px" } else { var z = parseInt(panel.topNod.style.top) - panel.topNod.offsetHeight - panel.parentItem.topNod.offsetHeight; if (z < 0) { var z2 = parseInt(panel.topNod.style.left) + panel.parentItem.topNod.offsetWidth; panel.topNod.style.left = z2 + "px"; if (panel.topNod.ieFix) panel.topNod.ieFix.style.left = z2 + "px"; uf = 1; z = ys - panel.topNod.offsetHeight; if (z < 0) z = 0 }; panel.topNod.style.top = z + "px"; if (panel.topNod.ieFix) panel.topNod.ieFix.style.top = z + "px" } } 
    }; if ((uf) && (!mode)) this._fixPanelPosition(panel, 1)
}; dhtmlXMenuBarObject.prototype._closePanel = function(panel) { if (!panel) return; if ((this.lastSelectedItem) && (this.lastSelectedItem.parentPanel == panel)) this._unMarkItem(this.lastSelectedItem); this._closeBottomPanels(panel); this._closeTopPanels(panel); this.lastOpenedPanel = "" }; dhtmlXMenuBarObject.prototype._closeTopPanels = function(panel) {
    if ((this.lastSelectedItem) && (this.lastSelectedItem.parentPanel == panel)) this._unMarkItem(this.lastSelectedItem); for (var i = 0; i < panel.itemsCount; i++) {
        var zi = panel.items[i]; if ((zi.subMenu) && (zi.subMenu.topNod.style.display != "none")) {
            zi.subMenu.topNod.style.display = "none"; this._unMarkItem(zi.subMenu.parentItem); if (zi.subMenu.topNod.ieFix) zi.subMenu.topNod.ieFix.style.display = "none"
            this._closeTopPanels(zi.subMenu); return
        } 
    } 
}; dhtmlXMenuBarObject.prototype._closeBottomPanels = function(panel, ieWinMode) {
    if (panel.parentPanel) {
        if ((!this.lastSelectedItem) || (this.lastSelectedItem.parentPanel != panel.parentPanel))
        { this._closeBottomPanels(panel.parentPanel) } else this.lastOpenedPanel = panel; panel.topNod.style.display = "none"; this._unMarkItem(panel.parentItem); if (panel.topNod.ieFix) panel.topNod.ieFix.style.display = "none"
    } 
}; dhtmlXMenuBarObject.prototype._unMarkItem = function(item) {
    item.CSSTag.className = item.className; if (item.CSSImageTag) item.CSSImageTag.className = ""; if ((item.childMenuTag.src != "") && (this.topMenu.echsw) && (this.topMenu.echsw2))
        item.childMenuTag.src = this.topMenu.sysGfxPath + "btn_rt1.gif"
}; dhtmlXMenuBarObject.prototype._markItem = function(item, over) {
    over = over || "over"; item.CSSTag.className = item.className + over; if (item.CSSImageTag) item.CSSImageTag.className = item.className + over + "img"; if ((item.childMenuTag.src != "") && (this.topMenu.echsw) && (this.topMenu.echsw2))
        item.childMenuTag.src = this.topMenu.sysGfxPath + "btn_rt2.gif"
}; dhtmlXMenuBarObject.prototype.setMenuMode = function(modeValue) {
    this.modeValue = modeValue; switch (modeValue) {
        case "classic":
            this.addFirstLevel = this._addItem; this.addSecondLevel = this.addItem_vertical; break; case "alfa":
            this.addFirstLevel = this._addItem; this.addSecondLevel = this._addItem; break; case "popup":
            this.addFirstLevel = this.addItem_vertical; this.addSecondLevel = this.addItem_vertical; break; case "betta":
            this.addFirstLevel = this.addItem_vertical; this.addSecondLevel = this._addItem; break
    } 
}; function dhtmlXMenuDividerYObject(id) { this.topNod = 0; if (id) this.id = id; else this.id = 0; td = document.createElement("td"); this.topNod = td; td.align = "center"; td.style.padding = "2px 2px 1px 2px"; td.innerHTML = "<div class='menuDividerY'>&nbsp;</div>"; if (!document.all) td.childNodes[0].style.height = "0px"; return this }; dhtmlXMenuDividerYObject.prototype = new dhtmlXButtonPrototypeObject; function dhtmlXMenuDividerXObject(id) { this.topNod = 0; if (id) this.id = id; else this.id = 0; td = document.createElement("td"); this.topNod = td; td.align = "center"; td.style.paddingRight = "2px"; td.style.paddingLeft = "2px"; td.width = "4px"; td.innerHTML = "<div class='menuDivider'></div >"; if (!document.all) { td.childNodes[0].style.width = "0px"; td.style.padding = "0px 0px 0px 0px"; td.style.margin = "0px 0px 0px 0px" }; return this }; dhtmlXMenuDividerXObject.prototype = new dhtmlXButtonPrototypeObject;




/*
Copyright DHTMLX LTD. http://www.dhtmlx.com
You allowed to use this component or parts of it under GPL terms
To use it on other terms or get Professional edition of the component please contact us at sales@dhtmlx.com
*/
