var g_FixZIndex     = 1;
var g_OpenDelay     = 10;
var g_CloseDelay    = 350;

var MF_BYCOMMAND    = 0x00;
var MF_BYPOSITION   = 0x01;
var MF_MENUITEM     = 0x02;
var MF_SEPARATOR    = 0x04;
var MF_HEADER       = 0x08;
var MF_DISABLED     = 0x10;
var MF_CHECKED      = 0x20;
var MF_HIGHLIGHT    = 0x40;
var MF_ACTIVATE     = 0x80;

var TPM_CENTERALIGN = 1;
var TPM_LEFTALIGN   = 2;
var TPM_RIGHTALIGN  = 3;

var _$miArray = new hxjArray();
var _TB_ = "<table border=0 cellpadding=0 cellspacing=0 style='padding:0px'";
var _JV_ = "javascript:void(0)";


var _$ENUM_MS={alwaysvisible:0,itemwidth:1,itemheight:2,openstyle:4,opendelay:5,closedelay:6,divides:9,separatorall:10,separatorcolor:11,separatorsize:12,separatorwidth:13,separatorheight:14,separatorpadding:15,separatoralign:16,separatorvalign:17,separatorimage:18,highlightcolor:19,highlightbgcolor:20,highlightbgimage:21,highlightfont:22,highlightborder:23,openonclick:24,clickcolor:25,clickbgcolor:26,clickimage:27,clicksubimage:28,clickbgimage:29,clickborder:30,clickfont:31,headercolor:32,headerbgcolor:33,headerborder:34,headerfont:35,headerbgimage:36,image:37,onimage:38,imagepadding:39,imageborder:40,imageonborder:41,imagealign:42,imagevalign:43,imagewidth:44,imageheight:45,subimage:46,onsubimage:47,subimagepadding:48,subimageborder:49,subimageonborder:50,subimagealign:51,subimagevalign:52,subimagewidth:53,subimageheight:54,visitedcolor:55,itemborder:56,onitemborder:57,menubgimage:58};
function hxjMenuStyle(sID) {
    INHERIT_CLASS(this, new hxjWinStyle(sID), "hxjWinStyle");
    
    for(var $i in _$ENUM_MS)
        this[$i]=null;
        
    this.Init = function() {
        if (_$B.isIE5x) {
            if (!this.built) {
                if (!this.cursor) this.cursor = "hand";
                if (!_$B.isIE && this.cursor == "hand") this.cursor = "pointer";
                if (!this.padding || this.padding<=0) this.padding = 1;
                if (!this.margin) this.margin = 0;
                if (!this.width && this.itemwidth) this.width = this.itemwidth;
                if (!this.position) this.position = "absolute";
                if (this.position == "fixed" && !_$B.isNS) this.position = "absolute";
                if (this.overflow == "scroll") this.overflow = "auto";
            }
                    
            this.built = 1;
        }
        else {
            this.hxjWinStyle.Init.call(this);
        }
        
        if (this.visitedcolor){
            var vC = this.visitedcolor;
            var oC = this.txtcolor;
            if (!oC) oC = "#000000";
            if (!vC) vC = "#ff0000";

            var oVst = hxj_FindObject(this.sID);
            if (oVst) {
                oVst.innerHTML = ".ss_"+this.sID+":link{color:"+oC+"}.ss_"+this.sID+":visited{color:"+vC+"}";
            }
            else {
                _$D.write("<style id='"+this.sID+"'>.ss_"+this.sID+":link{color:"+oC+"}.ss_"+this.sID+":visited{color:"+vC+"}</style>");
            }
        }
        
        if (!this.opendelay) this.opendelay = g_OpenDelay;
        if (!this.closedelay) this.closedelay = g_CloseDelay;
        if (this.closedelay < g_CloseDelay) this.closedelay = g_CloseDelay;
        if (!this.position && !this.alwaysvisible && _$B.isNS) this.position = "fixed";
        if (!this.separatorcolor) this.separatorcolor = this.txtcolor;
        if (!this.separatorsize && this.separatorall) this.separatorsize = 1;
        if (!this.separatorpadding) this.separatorpadding = 1;
        if (this.orientation == "horizontal"){
            this.orientation = 1;
            if (this.separatorwidth) this.separatorsize = this.separatorwidth;
            if (this.itemheight) this.height = this.itemheight;
        }
        else {
            this.orientation = 0;
            if (this.separatorheight) this.separatorsize = this.separatorheight;
            if (this.itemwidth) this.width = this.itemwidth;
        }
    }
}

var _$ENUM_MI={menu:0,text:1,url:2,submenu:3,status:4,type:5,target:6,targetfeatures:7,itemwidth:8,itemheight:9,image:10,onimage:11,imageurl:12,imageborder:14,title:15,itemborder:16,onitemborder:17,subimage:18,onsubimage:19,subimageborder:20,state:21};
function hxjMenuItem(sID, oMenuStyle, sArgs) {
    INHERIT_CLASS(this, new hxjWinStyle(sID), "hxjWinStyle");
    
    for(var $i in _$ENUM_MI)
        this[$i]=null;
    for($i in oMenuStyle) {
        if (_$ENUM_MI[$i] || _$ENUM_WS[$i])
            this[$i]=oMenuStyle[$i];
    }
    
    this.Parse = function(sArgs) {
        var it = sArgs.split(";");    
        for (var a=0; a < it.length; a++) {
            var sp = it[a].indexOf("=");
            if (sp != -1){
                var value = it[a].slice(sp+1);
                var name = it[a].slice(0,sp);
                
                name = hxj_LowerCase(name);                
                if (_$ENUM_MI[name])
                    this[name] = value;
            }
        }
    }
    
    this.Parse(sArgs);
}

function hxjMenu() {
    INHERIT_CLASS(this, new hxjWindow(), "hxjWindow");
    
    this.items = new hxjArray();
    this.rwT = 0;
    this.rwC = 0;
    this.built = 0;
    this.ifbuilt = 0;
    
    this._findIndex = function(sID) {
        for (var i=0; i < this.items.length; i++) {
            if (this.items[i].sID == sID)
                return i;
        }
        
        return -1;
    }
    this.EVENT_MAP = function() {
        this.OnSelectStart = hxjMenu_OnSelectStart;
        this.OnStyle = hxjMenu_OnStyle;
        this.OnScroll = hxjMenu_OnScroll;
        this.OnMouseover = hxjMenu_OnMouseover;
        this.OnMouseout = hxjMenu_OnMouseout;
        this.OnShowWindow = hxjMenu_OnShowWindow;
        this.OnDraw = hxjMenu_OnDraw;
    }
    this.CreateMenu = function(sID, oStyle) {
        this.Create(null, sID, oStyle);      
        
        if (_$B.isIE && g_FixZIndex)
   			_$D.write("<iframe frameborder=0 id='ifM"+this.sID+"' name='ifM"+this.sID+"' src='/ssmenu/ifdummy.html' scrolling=no style='filter:Alpha(Opacity=0);background:#FFFFFF;margin=0;width:1px;height:1px;left:-999px;top:-999px;position:absolute;display:block;visibility:hidden;z-index:1001'></iframe>\r\n");
    }
    this.DestroyMenu = function() {
        var oIfM = hxj_FindObject("ifM"+this.sID);
        if (oIfM)
            oIfM.removeNode(true);
            
        this.Destroy();
    }
    this.DeleteMenu = function(IDItem, nFlags) {
        if (nFlags == MF_BYCOMMAND) {
            IDItem = this._findIndex(IDItem);
        }
        
        
    }
    this.TrackPopupMenu = function(nFlags, x, y) {
        switch (nFlags) {
        case TPM_CENTERALIGN:
            break;
        case TPM_LEFTALIGN:
            break;
        case TPM_RIGHTALIGN:
            break;
        }
        
    }
    this.AppendMenu = function(nFlags, sIDItem, sArgs) {
        var $MI = new hxjMenuItem(sIDItem, this.oStyle, sArgs);
               
        $MI.menu = this;
        if (!$MI.state)
            $MI.state = 0;
            
        if (nFlags & MF_MENUITEM) {
            $MI.type = MF_MENUITEM;
        }
        else if (nFlags & MF_SEPARATOR) {
            $MI.type = MF_SEPARATOR;
        }
        else if (nFlags & MF_HEADER) {
            $MI.type = MF_HEADER;
        }
        
        if (nFlags & MF_DISABLED)
            $MI.state |= MF_DISABLED;
        if (nFlags & MF_CHECKED)
            $MI.state |= MF_CHECKED;
        if (nFlags & MF_HIGHLIGHT)
            $MI.state |= MF_HIGHLIGHT;
                
        objMap.put(sIDItem, $MI);        
        this.items.push($MI);
        this.built = 0;
    }
    this.InsertMenu = function(IDItem, nFlags, IDNewItem, sArgs) {        
        if (nFlags & MF_BYCOMMAND) {
            IDItem = this._findIndex(IDItem);
        }
              
        
    }
    this.ModifyMenu = function(nFlags, IDItem, sArgs) {        
        if (nFlags & MF_BYCOMMAND) {
            IDItem = this._findIndex(IDItem);
        }
               
    }
    this.RemoveMenu = function(IDItem, nFlags) {
        if (nFlags & MF_BYCOMMAND) {
            IDItem = this._findIndex(IDItem);
        }
        
    }
    this.EnableMenuItem = function(IDItem, nFlags) {
        if (nFlags & MF_BYCOMMAND) {
            IDItem = this._findIndex(IDItem);
        }
        if (nFlags & MF_DISABLED) {
            
        }
        
        
    }
    this.CheckMenuItem = function(IDItem, nFlags) {
        if (nFlags & MF_BYCOMMAND) {
            IDItem = this._findIndex(IDItem);
        }
        if (nFlags & MF_CHECKED) {
            
        }
        
        
    }
    this.HighlightMenuItem = function(IDItem, nFlags) {
        if (nFlags & MF_BYCOMMAND) {
            IDItem = this._findIndex(IDItem);
        }
        if (nFlags & MF_CHECKED) {
            
        }
        
        
    }
    this.GetMenuItemCount = function() {
        
    }
    this.GetMenuItemID = function(nPos) {
        
    }
    this.GetMenuState = function(IDItem, nFlags) {
        if (nFlags & MF_BYCOMMAND) {
            IDItem = this._findIndex(IDItem);
        }
        
    }
    this.GetSubMenu = function(IDItem, nFlags) {
        if (nFlags & MF_BYCOMMAND) {
            IDItem = this._findIndex(IDItem);
        }
        
    }
    this.SetSubMenu = function(IDItem, nFlags, oSubMenu) {
        if (nFlags & MF_BYCOMMAND)
            IDItem = this._findIndex(IDItem);
        
        var $MI = this.items[IDItem];
        if ($MI)
            $MI.submenu = oSubMenu.sID;
    }
    this.AdjustPosition = function(bHorz, rcBase, nOffset) {
        var $dB = (_$D.body) ? _$D.body : _$D.documentElement;
        var rcMenu = this.GetWindowRect();
        var cx = null, cy = null;

        if (this.oStyle.minwidth && this.oStyle.minwidth > rcMenu.Width()) {
            cx = this.oStyle.minwidth;
            rcMenu.right = rcMenu.left + cx;
        }
        if (this.oStyle.maxwidth && this.oStyle.maxwidth < rcMenu.Width()) {
            cx = this.oStyle.maxwidth;
            rcMenu.right = rcMenu.left + cx;
        }
        if (this.oStyle.minheight && this.oStyle.minheight > rcMenu.Height()) {
            cy = this.oStyle.minheight;
            rcMenu.bottom = rcMenu.top + cy;
        }
        if (this.oStyle.maxheight && this.oStyle.maxheight < rcMenu.Height()) {
            cy = this.oStyle.maxheight;
            rcMenu.bottom = rcMenu.top + cy;
        }
            
        if (bHorz) {
            rcBase.OffsetRect(0, rcBase.Height()+nOffset);
            
            if ((rcBase.left + rcMenu.Width() + nOffset) > $dB.clientWidth) {
                if ((rcBase.right + nOffset) > $dB.clientWidth)
                    rcBase.OffsetRect(-((rcBase.right+nOffset) - $dB.clientWidth), 0);

                rcBase.OffsetRect(-(rcMenu.Width()-rcBase.Width()), 0);
                if (_$B.isIE && this.oStyle.onfilter)
                    rcBase.OffsetRect(nOffset, 0);
            }
        }
        else {        	
            if ((rcBase.right + rcMenu.Width() + nOffset) > $dB.clientWidth) {
                if (rcMenu.Width() > rcBase.left) {
                    var xpd = (rcBase.right + rcMenu.Width() + nOffset) - $dB.clientWidth;
                    rcBase.left = rcBase.right - xpd;
                    rcBase.right= $dB.clientWidth;
                }
                else {
                    rcBase.OffsetRect(-(rcMenu.Width()+(nOffset/2)), 0);
                }
            }
            else {
                rcBase.OffsetRect(rcBase.Width()+nOffset, 0);
            }
        }
        
        if (!this.oStyle.orientation) {
            if (!bHorz && (rcBase.top + this.oObject.scrollHeight) > $dB.clientHeight) {
                rcBase.OffsetRect(0, $dB.clientHeight - (rcBase.top + this.oObject.scrollHeight + nOffset));
                if (rcBase.top < nOffset)
                    rcBase.top = nOffset;
            }
            
            if (this.oStyle.overflow == "auto") {
                if ((rcBase.top + this.oObject.scrollHeight) > $dB.clientHeight) {
                    this.oObject.style.overflow = "auto";
                    
                    if (this.oObject.scrollHeight < this.oObject.offsetHeight)
                        cx = rcMenu.Width()+nOffset+12;

                    cy = $dB.clientHeight-(rcBase.top+nOffset);
                }
                else if (this.oObject.scrollHeight > this.oObject.offsetHeight) {
                    cx = this.oObject.clientWidth;
                    cy = this.oObject.scrollHeight+nOffset;                
                    if (!_$B.isIE) {
                        cx -= nOffset;
                        cy -= nOffset;
                    }
                    
                    this.oObject.style.overflow = "visible";
                }
            }
        }

        this.MoveWindow(rcBase.left, rcBase.top, cx, cy);
    }
    
}

var _tRMI = 0;
var _tRRR = 0;
function hxjMenu_OnSelectStart(event) {
    return false;
}
function hxjMenu_OnScroll(event) {
    _hxjMenu_RemoveActiveMI(_TN_, this.sID);
}
function hxjMenu_OnMouseout(event) {
    var $actMI = _hxjMenu_GetActiveMI();
    if ($actMI) {
        _$W.clearTimeout(_tRMI);
       	_tRMI = _$W.setTimeout("_hxjMenu_RemoveAllActiveMI(true)", g_CloseDelay);        
    }
}
function hxjMenu_OnMouseover(event) {
    _$W.clearTimeout(_tRMI);
    _tRMI = 0;
}
function hxjMenu_OnStyle() {
    var $S = this.oStyle;
    var sIt = "";
    
    if (!$S.built) $S.Init();
    
    sIt = ($S.left) ? ("left:"+hxj_MakePixel($S.left)) : ((!$S.alwaysvisible) ? "left:-999px" : _TN_);
    sIt += ($S.top) ? (";top:"+hxj_MakePixel($S.top)) : ((!$S.alwaysvisible) ? ";top:-999px" : _TN_);
    sIt += ($S.width) ? (";width:"+hxj_MakePixel($S.width)) : _TN_;
    sIt += ($S.height) ? (";height:"+hxj_MakePixel($S.height)) : _TN_;
    sIt += ($S.position) ? (";position:"+$S.position) : _TN_;    
    
    if ($S.high3dcolor && $S.low3dcolor) {
        sIt += (";border-bottom-color:"+$S.high3dcolor);
        sIt += (";border-right-color:"+$S.high3dcolor);
        sIt += (";border-top-color:"+$S.low3dcolor);
        sIt += (";border-left-color:"+$S.low3dcolor);
    }
    if ($S.padding) {
        sIt += ";padding:"+hxj_MakePixel($S.padding);
    }
    else {
        sIt += ($S.margin) ? (";padding:"+hxj_MakePixel($S.margin)) : ";padding:0px";
    }
    
    sIt += ";z-index:"+ (($S.zindex) ? $S.zindex : "999");
    sIt += ($S.bgcolor) ? (";background-color:"+$S.bgcolor) : _TN_;
    sIt += ($S.bgimage) ? (";background-image:url("+$S.bgimage+")") : _TN_;
    sIt += ($S.border) ? (";border:"+$S.border) : _TN_;
    sIt += ";display:block";
    sIt += ";visibility:hidden";
        
    return sIt;
}
function hxjMenu_OnShowWindow(bShow) {    
    if (bShow && !this.built) {
        this.oObject.innerHTML = this.OnDraw();
     
    	if (_$B.isSafari && g_FixZIndex) {
    		if (_$D.readyState != "complete") {
    			_$D.write("<iframe frameborder=0 id='ifM"+this.sID+"' name='ifM"+this.sID+"' src='/ssmenu/ifdummy.html' scrolling=no style='filter:Alpha(Opacity=0);background:#FFFFFF;margin=0;width:1px;height:1px;left:-999px;top:-999px;position:absolute;display:block;visibility:hidden;z-index:1001'></iframe>\r\n");
    		}
    		else {
	            var $dB = (_$D.body) ? _$D.body : _$D.documentElement;
	            	        	
	        	$iF = _$D.createElement("iframe");
	        	$iF.id = "ifM"+this.sID;
	        	$iF.name = "ifM"+this.sID;
	        	$iF.src= "/ssmenu/ifdummy.html";
	        	$iF.frameBorder = 0;	        	
	        	$iF.scrolling = "no";
	        	$iF.style.filter = "filter:Alpha(Opacity=0)";
	        	$iF.style.background = "#FFFFFF";
	        	$iF.style.margin = 0;
	        	$iF.style.width = "1px";
	        	$iF.style.height = "1px";
	        	$iF.style.left = "-999px";
	        	$iF.style.top = "-999px";
	        	$iF.style.position = "absolute";
	        	$iF.style.display = "block";
	        	$iF.style.visibility = "hidden";
	        		        	
	        	if ($dB.appendChild) 
	        		$dB.appendChild($iF);	        	
	        }
		}
    }
}
function hxjMenu_OnDraw() {
    var $MS = this.oStyle;
    var sIt = _TN_;
    
    if (!this.built && this.items.length > 0) {
        sIt = _TB_;
        sIt += ($MS.align) ? (" align="+$MS.align) : _TN_;        
        sIt += ($MS.height) ? (" height="+$MS.height) : _TN_;    
        
        if ($MS.orientation) {
            if ($MS.itemwidth=="100%") $S.itemwidth = Math.ceil(100/this.items.length)+"%";
            if ($MS.divides > 1) this.rwC = Math.ceil(this.items.length/$MS.divides);
            this.rwT = this.rwC;
        }
        else {
            if ($MS.itemwidth||$MS.width)
                sIt += " width=100%";
        }
        
        sIt += " id='tbl" + this.sID + "'>\r\n";
        sIt += "<tr>\r\n";
        
        for (var i=0; i < this.items.length; i++) {
            sIt += _hxjMenu_OnDrawSubMenu(i, this, this.items[i]);
        }
        
        sIt += "</tr>\r\n";
        sIt += "</table>\r\n";
        
        this.built = 1;
    }
    
    return sIt;
}

function _hxjMenu_OnDrawSubMenu(i, $M, $MI) {
    var $MS = $M.oStyle;
    var sIt = _TN_;
    
    if (!$MS.orientation && i > 0)
        sIt += "</tr>\r\n<tr>\r\n";
                
    if ($MI.type & MF_SEPARATOR) {
        if (i+1 < $M.items.length)
            sIt += _hxjMenu_OnDrawSeparator($M);
    }
    else {
        var sLink = _hxjMenu_OnDrawMenuLink($M, $MI);
        var dividespan = 0;
                
        if ($MS.orientation && $M.rwC > 1) {
            if (i+1 == $M.rwT && i+1 < $M.items.length) {
                sIt += "</tr>\r\n<tr>\r\n";
                $M.rwT = $M.rwT+$M.rwC;
                
                if ($M.rwT > $M.items.length) {
                    dividespan = $M.rwT - $M.items.length;                    
                    if ($MS.separatorall)
                        dividespan = (dividespan*2) + 1;
                }
            }
        }
                
        sIt += "<td id='el"+$MI.sID+"'";
        sIt += " onmouseover=_hxjMenu_MI(this,'"+$MI.sID+"') onclick=_hxjMenu_MC(this,'"+$MI.sID+"')";
        sIt += (dividespan > 0) ? (" colspan="+dividespan) : _TN_;
        sIt += ($MI.itemwidth) ? (" width="+$MI.itemwidth) : (($MI.maxwidth) ? _TN_ : " nowrap");
        sIt += ($MI.align) ? (" align="+$MI.align) : _TN_;
        sIt += ($MI.valign) ? (" valign="+$MI.align) : _TN_;
        sIt += " style='";
        sIt += ";padding:" + (($MI.image || ($MI.submenu && $MI.subimage)) ? "1px" : (($MI.padding) ? hxj_MakePixel($MI.padding) : "1px"));
        sIt += ($MI.itemborder) ? (";border:"+$MI.itemborder) : _TN_;
        sIt += ($MI.itemwidth) ? (";width:"+$MI.itemwidth) : _TN_;
        sIt += ($MI.itemheight) ? (";height:"+$MI.itemheight) : ";height:100%";
        sIt += ";cursor:" + (($MI.url && !($MI.state & MF_DISABLED)) ? $MI.cursor : "default");
        if ($MI.menubgimage) {
            sIt += (";background-image:url("+$MI.menubgimage+")");
        }
        else {
            sIt += ($MI.bgcolor) ? (";background-color:"+$MI.bgcolor) : _TN_;
        }
        sIt += "'>\r\n";
        
        if ($MI.image || ($MI.submenu && $MI.subimage)) {
            sIt += _TB_;
            sIt += " width=100% height=100%>\r\n";
            sIt += "<tr>\r\n";
            
            if ($MI.image) {
                sIt += "<td id='_img"+$MI.sID+"'";
                sIt += ($MS.imagealign) ? (" align="+$MS.imagealign) : _TN_;
                sIt += ($MS.imagevalign) ? (" valign="+$MS.imagevalign) : _TN_;
                sIt += ($MS.imagewidth) ? (" width="+hxj_MakePixel($MS.imagewidth)) : _TN_;
                sIt += ($MS.imagepadding) ? (" style='padding:"+hxj_MakePixel($MS.imagepadding)+"'") : _TN_;
                sIt += ">\r\n";                
                
                sIt += ($MI.imageurl) ? ("<a href='"+$MI.imageurl+"'>\r\n") : _TN_;
                sIt += "<img id='img"+$MI.sID+"'";
                sIt += " border=" + (($MI.imageborder) ? $MI.imageborder : "0");
                sIt += ($MI.title) ? (" alt='"+$MI.title+"'") : _TN_;
                sIt += ($MS.imagewidth) ? (" width="+hxj_MakePixel($MS.imagewidth)) : _TN_;
                sIt += ($MS.imageheight) ? (" height="+hxj_MakePixel($MS.imageheight)) : _TN_;
                sIt += " style='display:block' "
                sIt += " src='"+$MI.image+"'>\r\n"
                sIt += ($MI.imageurl) ? "</a>\r\n" : _TN_;
                                
                sIt += "</td>\r\n";
            }
            
            sIt += "<td width=100%";
            sIt += ($MS.maxwidth) ? _TN_ : " nowrap";
            sIt += ($MS.align) ? (" align="+$MS.align) : _TN_;
            sIt += ($MS.valign) ? (" valign="+$MS.valign) : _TN_;            
            sIt += " style='"+ (($MI.padding) ? (";padding:"+hxj_MakePixel($MI.padding)) : _TN_) + "'>\r\n";
            sIt += sLink;
            sIt += "</td>\r\n";
            
            if ($MI.submenu && $MI.subimage) {
                sIt += "<td id='_simg"+$MI.sID+"'";
                sIt += ($MS.subimagealign) ? (" align="+$MS.subimagealign) : _TN_;
                sIt += ($MS.subimagevalign) ? (" valign="+$MS.subimagevalign) : _TN_;
                sIt += ($MS.subimagewidth) ? (" width="+hxj_MakePixel($MS.subimagewidth)) : _TN_;
                sIt += ($MS.subimagepadding) ? (" style='padding:"+hxj_MakePixel($MS.subimagepadding)+"'") : _TN_;
                sIt += ">\r\n";                
                
                sIt += "<img id='simg"+$MI.sID+"'";
                sIt += " border=" + (($MI.subimageborder) ? $MI.subimageborder : "0");
                sIt += ($MS.subimagewidth) ? (" width="+hxj_MakePixel($MS.subimagewidth)) : _TN_;
                sIt += ($MS.subimageheight) ? (" height="+hxj_MakePixel($MS.subimageheight)) : _TN_;
                sIt += " style='display:block' "
                sIt += " src='"+$MI.subimage+"'>\r\n"
                                
                sIt += "</td>\r\n";
            }
            
            sIt += "</tr>\r\n";
            sIt += "</table>\r\n";
        }
        else {
           sIt += sLink;
        }
        
        sIt += "</td>\r\n";
                
        if ($MS.separatorall && (i+1 < $M.items.length)) {
            if (!$MS.orientation)
                sIt += "</tr>\r\n<tr>\r\n";
            
            sIt += _hxjMenu_OnDrawSeparator($M);
        }
    }
    
    return sIt;
}

function _hxjMenu_OnDrawMenuLink($M, $MI) {
    var $MS = $M.oStyle;
    var sIt = _TN_;

    sIt =  "<div id='lnk"+$MI.sID+"'";
    sIt += " href='"+ (($MI.state & MF_DISABLED) ? _JV_ : (($MI.url) ? $MI.url : _JV_)) +"'";
    sIt += ($MI.visitedcolor) ? (" class='ss_"+$MS.sID+"'") : _TN_;
    sIt += " style='border:none;background:transparent;display:block";
    sIt += ($MI.txtcolor) ? (";color:"+$MI.txtcolor) : _TN_;  
    if ($MI.font) {
        sIt += ";font:"+$MI.font;
    }
    else {
        sIt += ($MI.fontfamily) ? (";font-family:"+$MI.fontfamily) : _TN_;
        sIt += ";font-size:" + (($MI.fontsize) ? $MI.fontsize : "74%");
        sIt += ";font-style:" + (($MI.fontstyle) ? $MI.fontstyle : "normal");
        sIt += ";font-weight:" + (($MI.fontweight) ? $MI.fontweight : "normal");
    }
    sIt += ";text-decoration:"+ (($MI.txtDecoration) ? $MI.txtDecoration : _NN_);  
    sIt += ($MI.txtOverflow) ? (";text-overflow:"+$MI.txtOverflow) : _TN_;
    sIt += ($MI.txtTransform) ? (";text-transform:"+$MI.txtTransform) : _TN_;
    sIt += ($MI.letterSpacing) ? (";letter-spacing:"+hxj_MakePixel($MI.letterSpacing)) : _TN_;
    sIt += ($MI.txtTransform) ? (";text-transform:"+$MI.txtTransform) : _TN_;
    sIt += ($MI.align) ? (";text-align:"+$MI.align) : _TN_;
    sIt += ($MI.lineHeight) ? (";line-height:"+hxj_MakePixel($MI.lineHeight)) : _TN_;
    sIt += ($MI.zoom) ? (";zoom:"+hxj_MakePercent($MI.zoom)) : _TN_;
    sIt += ($MI.rawcss) ? (";"+$MI.rawcss) : _TN_;
    sIt += "'>"+$MI.text+"</div>\r\n";
    
    return sIt;
}

function _hxjMenu_OnDrawSeparator($M) {
    var $MS = $M.oStyle;
    var sIt = _TN_;

    sIt = "<td";
    sIt += " align="+ (($MS.separatoralign) ? $MS.separatoralign : "center");
    sIt += " valign="+ (($MS.separatorvalign) ? $MS.separatorvalign : "middle");
    sIt += " style='font-size:1px";
    sIt += ";padding:"+ (($MS.separatorpadding) ? hxj_MakePixel($MS.separatorpadding) : "0px");
    sIt += "'>\r\n";
    sIt += "<div style='padding:0px";
    
    if (!_$B.isMac) sIt += ";overflow:hidden";
    if ($MS.separatorimage) {
        sIt += (";background-image:url("+$MS.separatorimage+")");
    }
    else {
        sIt += ($MS.separatorcolor) ? (";background-color:"+$MS.separatorcolor) : _TN_;
    }
    
    if ($MS.orientation) {
        sIt += ";width:"+ (($MS.separatorsize) ? hxj_MakePixel($MS.separatorsize) : "1px");
        sIt += ";height:"+ (($MS.separatorheight) ? hxj_MakePixel($MS.separatorheight) : "100%");        
    }
    else {
        sIt += ";width:"+ (($MS.separatorwidth) ? hxj_MakePixel($MS.separatorwidth) : "100%");
        sIt += ";height:"+ (($MS.separatorsize) ? hxj_MakePixel($MS.separatorsize) : "1px");
    }
    
    sIt += "'>\r\n";
    sIt += "</div>\r\n";
    sIt += "</td>\r\n";
    
    return sIt;
}

function _hxjMenu_MO($O, sID) {
    var $MI = objMap[sID]; 
    
    if ($MI && ($MI.state & MF_ACTIVATE)) {
        if ($MI.status) _$W.status = _TN_;
        
        if ($MI.onimage) _hxjMenu_FindObject("img"+$MI.sID, $MI.menu.sID).src = $MI.image;
        if ($MI.submenu && $MI.onsubimage) _hxjMenu_FindObject("simg"+$MI.sID, $MI.menu.sID).src = $MI.subimage;
        if ($MI.onbgcolor) $O.style.backgroundColor = ($MI.bgcolor) ? $MI.bgcolor : _TS_;
        if ($MI.onbgimage) $O.style.backgroundImage = ($MI.bgimage) ? "url("+$MI.bgimage+")" : _NN_;
        if ($MI.ontxtcolor) $O.style.color = ($MI.txtcolor) ? $MI.txtcolor : _TN_;
        if ($MI.ontxtDecoration) $O.style.textDecoration = ($MI.txtDecoration) ? $MI.txtDecoration : _NN_;
        if ($MI.onfont) {
            $O.style.font = ($MI.font) ? $MI.font : _TN_;
        }
        else {
            if ($MI.onfontfamily) $O.style.fontFamily = ($MI.fontfamily) ? $MI.fontfamily : _TN_;
            if ($MI.onfontstyle) $O.style.fontStyle = ($MI.fontstyle) ? $MI.fontstyle : "normal";
            if ($MI.onfontsize) $O.style.fontSize = ($MI.fontsize) ? $MI.fontsize : "74%";
            if ($MI.onfontweight) $O.style.fontWeight = ($MI.fontweight) ? $MI.fontweight : "normal";
        }
        if ($MI.onitemborder) {
            $O.style.border = ($MI.itemborder) ? $MI.itemborder : _NN_;
            
            if ($MI.image || ($MI.submenu && $MI.subimage)) {
                $O.style.padding="1px 1px";
            }
            else {
                $O.style.padding = $MI.padding+"px "+$MI.padding+"px";
            }
        }
        
        if ($MI.submenu){
            var $SM = objMap[$MI.submenu];

            if ($SM) {
                _hxjMenu_FixZindex($SM, false);                    
                $SM.ShowWindow(false);
            }
        }
        
        $MI.state &= ~MF_ACTIVATE;
    }
}

function _hxjMenu_MI($O, sID) {
    var $MI = objMap[sID]; 
    
    if ($MI) {
        _$W.status = ($MI.status) ? $MI.status : _TN_;
        
        var $actMI = _hxjMenu_GetActiveMI();
        if ($actMI != $MI) {
            _hxjMenu_RemoveActiveMI($MI.sID, $MI.menu.sID);  

            if (!($MI.state & MF_ACTIVATE)) {
                if ($MI.onimage) _hxjMenu_FindObject("img"+$MI.sID, $MI.menu.sID).src = $MI.onimage;
                if ($MI.submenu && $MI.onsubimage) _hxjMenu_FindObject("simg"+$MI.sID, $MI.menu.sID).src = $MI.onsubimage;
                if ($MI.onbgcolor) $O.style.backgroundColor = $MI.onbgcolor;
                if ($MI.onbgimage) $O.style.backgroundImage = "url("+$MI.onbgimage+")";
                if ($MI.ontxtcolor) $O.style.color = $MI.ontxtcolor;
                if ($MI.ontxtDecoration) $O.style.textDecoration = $MI.ontxtDecoration;
                if ($MI.onfont) {
                    $O.style.font = $MI.onfont;
                }
                else {
                    if ($MI.onfontfamily) $O.style.fontFamily = $MI.onfontfamily;
                    if ($MI.onfontstyle) $O.style.fontStyle = $MI.onfontstyle;
                    if ($MI.onfontsize) $O.style.fontSize = $MI.onfontsize;
                    if ($MI.onfontweight) $O.style.fontWeight = $MI.onfontweight;
                }
                if ($MI.onitemborder) {
                    $O.style.border = $MI.onitemborder;
                    
                    if ($MI.image || ($MI.submenu && $MI.subimage)) {
                        $O.style.padding="0px 0px";
                    }
                    else {
                        $O.style.padding = ($MI.padding-1)+"px "+($MI.padding-1)+"px";
                    }
                }
                
                if ($MI.submenu){
                    var $SM = objMap[$MI.submenu];
        
                    if ($SM) {
                        var $MS = $MI.menu.oStyle;
                        var rcRect = hxj_GetObjectRect($O);
                        var nOffset = (($MS.padding) ? $MS.padding*2 : (($MS.margin) ? $MS.margin*2 : 2));
                                                
                        $SM.ShowWindow(true);
                        $SM.AdjustPosition($MS.orientation, rcRect, nOffset);
                        _hxjMenu_FixZindex($SM, true);
                    }
                }
                                
                _hxjMenu_AddActiveMI($MI);
                $MI.state |= MF_ACTIVATE;
            }
        }
    }
    
    if (_tRMI > 0) {
        _$W.clearTimeout(_tRMI);
        _tRMI = 0;
    }
}

function _hxjMenu_MC($O, sID) {
    var $MI = objMap[sID]; 
        
    if ($MI) {
        if (!$MI.url || ($MI.state & MF_DISABLED)) {
            _$W.status = _JV_;
        }
        else {   
            var $win = ($MI.target) ? _$W.frames[$MI.target] : _$W;
            if ($win) {
                $win.location.href = $MI.url;
            }
            else {
                var _ww = _$W.open($MI.url, $MI.target, ($MI.targetfeatures) ? $MI.targetfeatures : "");
                _ww.focus();
            }
            
            _hxjMenu_RemoveAllActiveMI(false);
        }   
    }
}

var _$ifArray = new hxjArray();
function _hxjMenu_OverlayIFrame(ifrm) {
	if ((_$B.isSafari || (_$B.isMac && _$B.isFirefox)) && g_FixZIndex) {
		var $dom = (ifrm.contentDocument) ? ifrm.contentDocument : ifrm.document;
		if ($dom) {
			try {
				$dom.addEventListener("mousemove", _hxjMenu_OverlayMousemove, false);
				_$ifArray[$dom] = ifrm;
			}
			catch(excp) {
				//
			}
		}
	}
}

function _hxjMenu_OverlayMousemove(event) {
	var bOverlay = false;
	
	if (_$D.elementFromPoint) {
		var $iF = _$ifArray[this];
		var rc = hxj_GetObjectRect($iF);
		var x = event.clientX + rc.left;
		var y = event.clientY + rc.top;
				
		var obj = _$D.elementFromPoint(x, y);
		for (; obj; obj = obj.parentNode) {	 	
			if (obj.id && obj.id.substr(0, 2) == "el") {
				_hxjMenu_MI(obj, obj.id.substr(2));
				bOverlay = true;
				break;
			}
		}
	}
	
	if (!bOverlay)
		hxjMenu_OnMouseout(event);
}

function _hxjMenu_FindObject(sObjID, sMenuID) {
    if ((_$B.isIE5x || _$B.isSafari) && g_FixZIndex) {
    	var $obj = hxj_FindObjectInIFrame("ifM"+sMenuID, sObjID);
        if ($obj)
            return $obj;
    }
    
    return hxj_FindObject(sObjID);
}

function _hxjMenu_FixZindex($SM, bShow) {
    if ((_$B.isIE || _$B.isSafari) && g_FixZIndex) {
        var $iF = hxj_FindObject("ifM"+$SM.sID);
        if ($iF) {
	        if (bShow) {
	            var rcMemu = $SM.GetWindowRect();
	           	hxj_MoveWindow($iF, rcMemu.left, rcMemu.top, rcMemu.Width(), rcMemu.Height());
	            
	            if (_$B.isIE5x || _$B.isSafari) {
	                $SM.ShowWindow(false);
	                
	                var $div = _hxjMenu_FindObject("dummyMenu", $SM.sID);
	                if ($div) {
	                    if (!$SM.ifbuilt) {
	                        $div.className = $SM.sID;
	                        $div.innerHTML = $SM.oObject.innerHTML;
	                        
	                        if ($SM.oStyle.high3dcolor && $SM.oStyle.low3dcolor) {
	                            $div.style.borderBottomColor = $SM.oStyle.high3dcolor;
	                            $div.style.borderRightColor = $SM.oStyle.high3dcolor;
	                            $div.style.borderTopColor  = $SM.oStyle.low3dcolor;
	                            $div.style.borderLeftColor = $SM.oStyle.low3dcolor;
	                        }
	    
	                        if ($SM.oStyle.padding) {
	                            $div.style.padding = hxj_MakePixel($SM.oStyle.padding);
	                        }
	                        else {
	                            $div.style.padding = ($SM.oStyle.margin) ? hxj_MakePixel($SM.oStyle.margin) : "0px";
	                        }
	    
	                        if ($SM.oStyle.bgcolor) $div.style.backgroundColor = $SM.oStyle.bgcolor;
	                        if ($SM.oStyle.bgimage) $div.style.backgroundImage = "url("+$SM.oStyle.bgimage+")";
	                        if ($SM.oStyle.border) $div.style.border = $SM.oStyle.border;
	                        
	                        $SM.ifbuilt = 1;
	                    }
	                    
	                    if ($SM.oObject.style.overflow) {
	                        $div.style.overflow = $SM.oObject.style.overflow;
	                        $div.scrollTop = 0;
	                        $div.scrollLeft = 0;
	                    }
	                        
	                    hxj_MoveWindow($div, null, null, "100%", "100%");
	                }
	            }
	
	            $iF.style.visibility = "visible";
	            $iF.style.zIndex = $SM.oObject.style.zIndex-1;
	        }
	        else {
	            $iF.style.visibility = "hidden";
	        }
		}
    }
	else if (_$B.isMac && _$B.isFirefox) {		
		if (_$ifArray.length <= 0) {
			var iframes = _$D.getElementsByTagName("iframe");
	
			// loop through all table tags
			for (var i=0; i<iframes.length; i++){
				var ifrm = iframes[i];
				
				if (!ifrm.id || ifrm.id.substr(0,3) != "ifM")					
					_hxjMenu_OverlayIFrame(ifrm);
			}
		}
	}	
}

function _hxjMenu_GetActiveMI() {
    if (_$miArray.length > 0)
        return _$miArray[_$miArray.length-1];
    
    return null;
}
function _hxjMenu_AddActiveMI($MI) {
    _$miArray.push($MI);
}
function _hxjMenu_RemoveActiveMI(sID, sMenuID) {
    var $obj = null;
    
    while (1) {
        var $actMI = _$miArray.pop();
        if (!$actMI)
            break;
            
        if ($actMI.sID == sID 
                || $actMI.submenu == sMenuID) {
            _$miArray.push($actMI);
            break;
        }
        
        _hxjMenu_MO(_hxjMenu_FindObject("el"+$actMI.sID, $actMI.menu.sID), $actMI.sID);
    }   
}
function _hxjMenu_RemoveAllActiveMI(bTimer) {
    var $obj = null;
    
    if (bTimer && !(_tRMI > 0 && _tRRR == 0))
        return;
    
    while (1) {
        var $actMI = _$miArray.pop();
        if (!$actMI)
            break;
        
        _hxjMenu_MO(_hxjMenu_FindObject("el"+$actMI.sID, $actMI.menu.sID), $actMI.sID);
    }
}

