var g_nMaxSubMenu = 30;
var g_nTotalMenu = 0;
var g_arrMenu = new Array(30);
var g_nCurrentMenu = -1;
var g_nSubmenuWidth = 75;
var g_nSubmenuLeft = 0;
var g_nSubmenuTop = 10;
var g_strMenucolor = "#5588bb";
var g_strSubmenucolor = "#5588bb";
var g_strToolsBoxcolor = "#000000";
var g_strToolsBoxcolor2 = "#000000";
var g_strLinkColor = "#FFFFFF"
var g_strLinkHoverColor = "#225588"
var g_strLinkHoverBGColor = "#ccddff"
var g_nLineNumber = 19;
var g_nOnSubmenu = false;
var g_strToolsIconSrc;
var g_strToolsIcon = "";
var g_strToolsHtml = "";
var g_isonmenu = 0;

function do_menu(id,evt)
{
    if(evt == null)
                evt = window.event; // For IE
    var srcElement = evt.srcElement? evt.srcElement : evt.target;  // IE-srcElement,Firefox-target
        var i;
        for ( i = 0; i < g_nTotalMenu; i++ )
        {
                if( g_arrMenu[i].ID == id )
                {
                        write_submenu(i);
                        if (g_arrMenu[i].SubmenuHTML != "")
                        {
                                
                                g_nSubmenuLeft = srcElement.offsetLeft + srcElement.offsetParent.offsetLeft + srcElement.offsetParent.offsetParent.offsetLeft -10;                                              
                                document.getElementById("idSubMenu").style.left = g_nSubmenuLeft;
                                document.getElementById("idSubMenu").style.top = g_nSubmenuTop;
                                g_nCurrentMenu = i;
                                document.getElementById("idSubMenu").innerHTML = g_arrMenu[i].SubmenuHTML;
                                show_submenu();
                        }
                        break;
                }
        }
        menu_mouse_over(evt);
//      window.event.returnValue = false;
}

function menu_mouse_over(evt)
{
    if(evt == null)
                evt = window.event; // For IE
    var srcElement = evt.srcElement? evt.srcElement : evt.target;  // IE-srcElement,Firefox-target
        srcElement.style.color = g_strLinkHoverColor;
        //srcElement.parentElement.style.backgroundColor = g_strLinkHoverBGColor;
        srcElement.parentNode.style.backgroundColor =g_strLinkHoverBGColor;
	g_isonmenu=1;
}

function menu_mouse_out(evt)
{
    if(evt == null)
                evt = window.event; // For IE
    var srcElement = evt.srcElement? evt.srcElement : evt.target;  // IE-srcElement,Firefox-target      
        srcElement.style.color = g_strLinkColor;
		//alert(g_isonmenu);
		if(g_isonmenu==1)
		{
        	srcElement.parentNode.style.backgroundColor = g_strMenucolor;
		}
	
	g_isonmenu=0;
		//alert("hehe");
}

function show_submenu()
{
        document.getElementById("idSubMenu").style.visibility = "visible";
}

function hide_submenu(evt)
{
    if(evt == null)
                evt = window.event; // For IE
    var srcElement = evt.srcElement? evt.srcElement : evt.target;  // IE-srcElement,Firefox-target      
        var x = evt.clientX + document.body.scrollLeft;
        var y = evt.clientY + document.body.scrollTop;

        //great code by PowerStation@lilac :)
        var elmt = document.getElementById("idSubMenu"); 
        var offsetTop = elmt.offsetTop + 80;     
        var offsetLeft = elmt.offsetLeft; 
        //var offsetWidth = elmt.offsetWidth; 
        
        /*!!!!!NOTICE    this offsetWidth is only a temp solution.If someday a submenu has tree rows,it will break */
        
        var offsetWidth = elmt.offsetWidth;//(g_arrMenu[g_nCurrentMenu].SubMenuNumber <= g_nLineNumber)?elmt.offsetWidth : g_nSubmenuWidth *2;
        
        var offsetHeight = elmt.offsetHeight; 
        
        while( elmt = elmt.offsetParent ) 
        { 
                // add this judge 
                if ( elmt.style.position == 'absolute' || elmt.style.position == 'relative'  
                        || ( elmt.style.overflow != 'visible' && elmt.style.overflow != '' ) ) 

                { 
                        break; 
                }
                
                offsetTop += elmt.offsetTop; 
                offsetLeft += elmt.offsetLeft; 
        }
        
        //alert("Top:" + offsetTop + "Bottom:" + (offsetTop + offsetHeight) + "Left:" + offsetLeft + "Right:" + (offsetLeft + offsetWidth) );

        if ( !g_nOnSubmenu )
        {
                if (       ( x > (offsetLeft ) )//(offsetLeft + document.body.scrollLeft) )
                        && ( x < (offsetLeft + offsetWidth ) )// + document.body.scrollLeft) )
                        && ( y > (offsetTop  - 5) )//(offsetTop + document.body.scrollTop - 5) )
                        && ( y < (offsetTop + offsetHeight ) ) )//+ document.body.scrollTop) ) )
                {
                        g_nOnSubmenu = true;
                        return;
                }
        }
        else
        {
                if (       ( x > (offsetLeft ) )//+ document.body.scrollLeft) )
                        && ( x < (offsetLeft + offsetWidth) )//+ document.body.scrollLeft) )
                        && ( y > (offsetTop ) )//+ document.body.scrollTop) )
                        && ( y < (offsetTop + offsetHeight) ) )//+ document.body.scrollTop) ) )
                {
                        g_nOnSubmenu = true;
                        return;
                }
        }
        g_nOnSubmenu = false;
        document.getElementById("idSubMenu").innerHTML = "";
        document.getElementById("idSubMenu").style.visibility = "hidden";
}

function init_tools_box(bShow)
{
        idLeftBan.innerHTML = strLeft;
//      idLeftBan.style.backgroundColor = g_strToolsBoxcolor;

        if (bShow)
        {
                idToolsIcon.src = g_strToolsIconSrc + "_c.gif";
                idLeftBan.style.display = "";
        }
        else
        {
                idToolsIcon.src = g_strToolsIconSrc + ".gif";
                idLeftBan.style.display = "none";
        }
}

function do_tools_box(evt)
{

    if(evt == null)
                evt = window.event; // For IE
    var srcElement = evt.srcElement? evt.srcElement : evt.target;  // IE-srcElement,Firefox-target      
        if ( srcElement.src.indexOf(g_strToolsIconSrc+"_on.gif") != -1 )
        {
                srcElement.src = g_strToolsIconSrc + "_c_on.gif";
                idLeftBan.style.display = "";
                document.cookie = "left_show=1";
                return;
        }
        if ( srcElement.src.indexOf(g_strToolsIconSrc+"_c_on.gif") != -1 )
        {
                srcElement.src = g_strToolsIconSrc + "_on.gif";
                idLeftBan.style.display = "none";
                document.cookie = "left_show=0";
                return;
        }
}

function show_tools_box(evt)
{
    if(evt == null)
                evt = window.event; // For IE
    var srcElement = evt.srcElement? evt.srcElement : evt.target;  // IE-srcElement,Firefox-target
        if ( srcElement.src.indexOf(g_strToolsIconSrc+".gif") != -1 )
        {
                srcElement.src = g_strToolsIconSrc + "_on.gif";
                return;
        }
        if ( srcElement.src.indexOf(g_strToolsIconSrc+"_c.gif") != -1 )
        {
                srcElement.src = g_strToolsIconSrc + "_c_on.gif";

                return;
        }
}
//var g_nOnToolsBox = false;
function hide_tools_box(evt)
{
    if(evt == null)
                evt = window.event; // For IE
    var srcElement = evt.srcElement? evt.srcElement : evt.target;  // IE-srcElement,Firefox-target
        if ( srcElement.src.indexOf(g_strToolsIconSrc+"_on.gif") != -1 )
        {
                srcElement.src = g_strToolsIconSrc + ".gif";
        }
        if ( srcElement.src.indexOf(g_strToolsIconSrc+"_c_on.gif") != -1 )
        {
                srcElement.src = g_strToolsIconSrc + "_c.gif";
        }
}

function menu_info(id,display,url,type,target)
{
        this.ID = id;
        this.DisplayStr = display;
        this.URLStr = url;
        // type = 0  标准菜单
        //        1  只用作显示用
        this.Type = type;
        this.SubMenuNumber = 0;
        this.arrSubMenu =  new Array(20);
        this.SubmenuHTML = "";
		
		this.Target = target;
}

function submenu_info(pid,display,url,type,id,target)
{
        var dp = display;
        var i, j=0;
        if ( type == 2 )
        {
                dp2 += "<FONT face=SimHei>4</FONT>";
        }
        else
        this.ParentID = pid;
        this.ID = id;
        this.DisplayStr = dp;
        // type = 0  标准子菜单项
        //        1  分割条
        //        2  扩展子菜单
        this.Type = type;
        this.URLStr = url;
		
		this.Target = target
}

function add_menu(id,display,url,type,target)
{

        var bFound = false;
        var menu_id = "idMENU_" + id;
        for ( i = 0; i < g_nTotalMenu; i++ )
        {
                if( g_arrMenu[i].ID == menu_id )
                {
                        bFound = true;
                        break;
                }
        }
        if ( !bFound )
        {
                g_arrMenu[i] = new menu_info( menu_id, display, url, type, target );
                g_nTotalMenu ++;
        }
}

function add_submenu(parent_id,display,url,type,id,target)
{
        var bFound = false;
        var i;
        var submenu_id = "idSUNMENU_" + id;
        var parent_menu_id = "idMENU_" + parent_id;
        for ( i = 0; i < g_nTotalMenu; i++ )
        {
                if( g_arrMenu[i].ID == parent_menu_id )
                {
                        bFound = true;
                        break;
                }
        }
        if ( bFound )
        {
                g_arrMenu[i].arrSubMenu[g_arrMenu[i].SubMenuNumber] = new submenu_info( parent_menu_id, display, url, type, submenu_id, target );
                g_arrMenu[i].SubMenuNumber ++;
        }
}

function clear_submenu(parent_id)
{

        var bFound = false;
        var i;
        var j;
        var parent_menu_id = "idMENU_" + parent_id;
        for ( i = 0; i < g_nTotalMenu; i++ )
        {
                if( g_arrMenu[i].ID == parent_menu_id )
                {
                        bFound = true;
                        break;
                }
        }
        if ( bFound )
        {
                for (j = 0; j < g_arrMenu[i].SubMenuNumber; j++)
                        delete g_arrMenu[i].arrSubMenu[j];
        }
        g_arrMenu[i].SubMenuNumber = 0;
}

function write_menu()
{
        var i;
        strToolbarHTML = "";

        strToolbarHTML += "<table border=0 cellspacing=0 cellpadding=0 width=760 >";
        strToolbarHTML += "  <table align=right border=0 cellspacing=0 cellpadding=0 style='WIDTH:760'>";
        strToolbarHTML += "  <td valign=middle STYLE='overflow:hidden; COLOR: #ffffff; HEIGHT: 22px; BACKGROUND-COLOR: " + g_strMenucolor + ";'>";
        strToolbarHTML += "     <DIV ID='idMenu' align=middle STYLE='FONT-SIZE: 12px; FONT-WEIGHT: 800; COLOR: #ffffff; HEIGHT: 14px; BACKGROUND-COLOR: " + g_strMenucolor + ";'>";
        strToolbarHTML += "     </DIV>";
        strToolbarHTML += "  </table>";
        strToolbarHTML += "</table>";

        strToolbarHTML += "<DIV ID='idSubMenu' ALIGN=middle STYLE='FONT-SIZE: 12px;FONT-WEIGHT: 800;LEFT: 0; POSITION: absolute;width:";
        strToolbarHTML += g_nSubmenuWidth;
        strToolbarHTML += ";z-index:10;visibility: hidden' onmouseout='menu_mouse_out(event); hide_submenu(event)'></DIV>";
        
        document.write( strToolbarHTML );
        
        strMenuHTML = "<table border=0 cellpadding=0 cellspacing=0 cellspacing=0 STYLE='WIDTH:100%; HEIGHT: 14px; BACKGROUND-COLOR: " + g_strMenucolor + "'>";
        for ( i = 0; i < g_nTotalMenu; i++ )
        {
                switch ( g_arrMenu[i].Type )
                {
                case 0:
//                      strMenuHTML += "<span>&nbsp";
//                      strMenuHTML += "<span STYLE='WIDTH:59'>";
                        strMenuHTML += "<td align=center STYLE='WIDTH: 157; HEIGHT: 24px; FONT-SIZE: 12px;  FONT-WEIGHT: 800; BACKGROUND-COLOR: " + g_strMenucolor + "'><A id='";
                        strMenuHTML += g_arrMenu[i].ID;
                        strMenuHTML += "' href='";
                        strMenuHTML += g_arrMenu[i].URLStr;
                        strMenuHTML += "' target='";
						strMenuHTML += g_arrMenu[i].Target;
						strMenuHTML += "' onmouseover=do_menu('";
                        strMenuHTML += g_arrMenu[i].ID;
                        strMenuHTML += "',event) onmouseout='menu_mouse_out(event);hide_submenu(event)' ";
                        strMenuHTML += " STYLE='text-decoration:none;cursor:hand;color:" + g_strLinkColor + "'>";
                        strMenuHTML += g_arrMenu[i].DisplayStr;
//                      strMenuHTML += "</A>&nbsp</span>|";
                        strMenuHTML += "</A>";
//                      strMenuHTML += "<td STYLE='WIDTH: 1; HEIGHT: 12px; FONT-SIZE: 12px; BACKGROUND-COLOR: #FFFFFF'>";
//                      write_submenu( i );
                        break;
                case 1:
                        strMenuHTML += "<span><A href=''>< IMG alt='用户实用工具' src='expand_mo.gif'></A></span>";
                        break;
                }
        }
        strMenuHTML += "<td STYLE='HEIGHT: 12px; FONT-SIZE: 12px; BACKGROUND-COLOR: " + g_strMenucolor + "'>&nbsp</table>";
        document.getElementById("idMenu").innerHTML = strMenuHTML;
}

function write_submenu(n)

{
        var strSubmenuHTML = "";
        var nLine;
        var div = false;
        if (g_arrMenu[n].SubMenuNumber <= 0)
        {
                g_arrMenu[n].SubmenuHTML = strSubmenuHTML;
                return;
        }
        if ( g_arrMenu[n].SubMenuNumber <= g_nLineNumber )
        {
                nLine = g_arrMenu[n].SubMenuNumber;
                div = false;
                strSubmenuHTML += "<table border=0 cellPadding=0 cellSpacing=0 STYLE='HEIGHT: 1px; Font-weight:800; FONT-SIZE: 12px; BACKGROUND-COLOR: " + g_strSubmenucolor + "; top:94px;POSITION: relative; WIDTH: " + g_nSubmenuWidth + "; overflow:hidden;'>";
                strSubmenuHTML += "<TR><th align=left STYLE='HEIGHT: 8px; FONT-SIZE: 12px; BACKGROUND-COLOR: " + g_strSubmenucolor + "; POSITION: relative; WIDTH: 100%'></th></tr>";
        }
        else
        {
                nLine = g_nLineNumber;
                div = true;
                strSubmenuHTML += "<table border=0 cellPadding=0 cellSpacing=0 STYLE='HEIGHT: 1px; Font-weight:800; FONT-SIZE: 12px;  BACKGROUND-COLOR: " + g_strSubmenucolor + "; POSITION: relative; WIDTH: " + g_nSubmenuWidth*2 + "; overflow:hidden;'>";
                strSubmenuHTML += "<tr><th align=left STYLE='HEIGHT: 8px; FONT-SIZE: 12px; BACKGROUND-COLOR: " + g_strSubmenucolor + "; POSITION: relative; WIDTH: " + g_nSubmenuWidth + "'></th>";
                strSubmenuHTML += "<th align=left STYLE='HEIGHT: 8px; FONT-SIZE: 12px; BACKGROUND-COLOR: #336699; POSITION: relative; WIDTH: 1'></th>";
                strSubmenuHTML += "<th align=left STYLE='HEIGHT: 8px; FONT-SIZE: 12px; BACKGROUND-COLOR: " + g_strSubmenucolor + "; POSITION: relative; WIDTH: " + (g_nSubmenuWidth-1) + "'></th></tr>";
        }

        var j;
        
        for ( j = 0; j < nLine; j++ )
        {
                strSubmenuHTML += "<tr><th align=left STYLE='HEIGHT: 14px; FONT-SIZE: 12px; FONT-WEIGHT: 800; BACKGROUND-COLOR: " + g_strSubmenucolor + "; POSITION: relative; WIDTH: " + g_nSubmenuWidth + "; PADDING-BOTTOM: 1pt; PADDING-LEFT: 0pt; PADDING-RIGHT: 0pt; PADDING-TOP: 1pt;'>&nbsp<A href='";
                strSubmenuHTML += g_arrMenu[n].arrSubMenu[j].URLStr;
				strSubmenuHTML += "' target='";
				strSubmenuHTML += g_arrMenu[n].arrSubMenu[j].Target;

                strSubmenuHTML += "' onmouseover=menu_mouse_over(event) onmouseout=menu_mouse_out(event) STYLE='text-decoration:none; cursor:hand; color:" + g_strLinkColor + "'>";
                strSubmenuHTML += g_arrMenu[n].arrSubMenu[j].DisplayStr;
                strSubmenuHTML += "</A></th>";

                if ( div )
                {
                        if ( (j+g_nLineNumber) < g_arrMenu[n].SubMenuNumber )
                        {
                                strSubmenuHTML += "<th align=left STYLE='HEIGHT: 14px; FONT-SIZE: 12px; BACKGROUND-COLOR: #336699; POSITION: relative; WIDTH: 1; PADDING-BOTTOM: 1pt; PADDING-LEFT: 0pt; PADDING-RIGHT: 0pt; PADDING-TOP: 1pt;'></th>";
                                strSubmenuHTML += "<th align=left STYLE='HEIGHT: 14px; FONT-SIZE: 12px; FONT-WEIGHT: normal; BACKGROUND-COLOR: " + g_strSubmenucolor + "; POSITION: relative; WIDTH: " + (g_nSubmenuWidth-1) + "; PADDING-BOTTOM: 1pt; PADDING-LEFT: 0pt; PADDING-RIGHT: 0pt; PADDING-TOP: 1pt;'>&nbsp<A href='/";
                                strSubmenuHTML += g_arrMenu[n].arrSubMenu[j+g_nLineNumber].URLStr;
                                strSubmenuHTML += "' onmouseover=menu_mouse_over(event) STYLE='text-decoration:none; cursor:hand; color:" + g_strLinkColor + "'>";
                                strSubmenuHTML += g_arrMenu[n].arrSubMenu[j+g_nLineNumber].DisplayStr;
                                strSubmenuHTML += "</A></th>";
                        }
                        else
                        {
                                strSubmenuHTML += "<th align=left STYLE='HEIGHT: 14px; FONT-SIZE: 12px; BACKGROUND-COLOR: #336699; POSITION: relative; WIDTH: 1'></th>";
                                strSubmenuHTML += "<th align=left STYLE='HEIGHT: 14px; FONT-SIZE: 12px; BACKGROUND-COLOR: " + g_strSubmenucolor + "; POSITION: relative; WIDTH: " + (g_nSubmenuWidth-1) + "'></th>";
                        }
                }
                strSubmenuHTML += "</tr>";
        }
        if ( !div )
        {
                strSubmenuHTML += "<TR><th align=left STYLE='HEIGHT: 8px; FONT-SIZE: 12px; BACKGROUND-COLOR: " + g_strSubmenucolor + "; POSITION: relative; WIDTH: 100%'></th></tr>";
        }
        else
        {
                strSubmenuHTML += "<TR><th align=left STYLE='HEIGHT: 8px; FONT-SIZE: 12px; BACKGROUND-COLOR: " + g_strSubmenucolor + "; POSITION: relative; WIDTH: " + g_nSubmenuWidth + "'></th>";
                strSubmenuHTML += "<th align=left STYLE='HEIGHT: 8px; FONT-SIZE: 12px; BACKGROUND-COLOR: #336699; POSITION: relative; WIDTH: 1'></th>";
                strSubmenuHTML += "<th align=left STYLE='HEIGHT: 8px; FONT-SIZE: 12px; BACKGROUND-COLOR: " + g_strSubmenucolor + "; POSITION: relative; WIDTH: " + (g_nSubmenuWidth-1) + "'></th></tr>";
        }
        strSubmenuHTML += "</table>";
        g_arrMenu[n].SubmenuHTML = strSubmenuHTML;
}

function set_menu_color(clr)
{
        g_strMenucolor = clr;
}

function set_submenu_color(clr)
{
        g_strSubmenucolor = clr;
}

function set_tools_box_color(clr,clr2)
{
        g_strToolsBoxcolor = clr;
        g_strToolsBoxcolor2 = clr2;
}

function set_submenu_top(top)
{
        g_nSubmenuTop = top;
} 