function isIE(){
    if(navigator.appName.indexOf("Internet Explore")>-1){
        return true;
    }
    return false;
}


function getPosition(e){
    if(e==null){
        return null;
    }
    var left = 0;
    var top = 0;
    while (e.offsetParent){
        left += e.offsetLeft;
        top += e.offsetTop;
        e = e.offsetParent;
    }
    left += e.offsetLeft;
    top += e.offsetTop;
    return {x:left, y:top};
}


var m_strTitle = "您的位置->";
// -------- 主菜单样式相关定义 ---------//
//定义主菜单样式
var m_strMainMenuStyle = "";
//主菜单项的样式attribute
var m_strMainMenuItemStyle = "";
//主菜单项样式Property
var m_strMMItemProBase = {};
var m_strMMProBase = "";
//主菜单项鼠标悬停样式Property
var m_strMMItemProMOver = {};
var m_strMMProMOver = "";
//菜单项与项之间的分割图片
var m_strMMItemSplitImg;

// -------- 子菜单样式相关定义 ---------//
//定义子菜单样式
var m_strSubMenuStyle = "";
//子菜单项的样式attribute
var m_strSubMenuItemStyle = "";
//子菜单项样式Property
var m_strSMItemProBase = {};
var m_strSMProBase = "";
//子菜单项鼠标悬停样式Property
var m_strSMItemProMOver = {};
var m_strSMProOver = "";
//子菜单项下边框样式(作为分割线)
var m_strSMItemBorderB = "";
//定义虚拟目录路径
var m_strContextPath = "";
//菜单xml数据文件对象
var m_doc;
//主菜单集合
var m_objMMList;
var STR_POS_FRONT = "您的位置：";

/**
*显示一级子菜单
*@param objShow - 显示子菜单的对象
*@param strGetID - 存储显示内容的标签id
*/
function showSubMenu1(objShow,strGetID) {
    endHideSubMenu();
    var objGet = eval(document.getElementById(strGetID));
    var objSubMenuDiv = document.getElementById("subMenuDiv");
    var objBackMenu = document.getElementById("backmenu");
    var pos = getPosition(objShow);
    objSubMenuDiv.style.display="";
    if(bSafari){
        //safari的高度要单独校正
        objSubMenuDiv.style.top = pos.y+objShow.offsetHeight-4;
    }else{
        objSubMenuDiv.style.top = pos.y+objShow.offsetHeight;
    }
    objSubMenuDiv.style.left = pos.x;
    if(objGet.childNodes[0].nodeName.toLowerCase()!='table'){
        var temptable = '<TABLE name="'+strGetID+'" cellspacing="0" cellpadding="4" STYLE="font-size: 9pt; cursor: pointer; border-top-color: #dcdcdc; border-left-color: #dcdcdc; border-right-color: #dcdcdc; border-bottom-color: #dcdcdc; border-top-width: 1px; border-left-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-top-style: solid; border-left-style: solid; border-right-style: solid; border-bottom-style: solid">';
        objSubMenuDiv.innerHTML = temptable+objGet.innerHTML+'</TABLE>';
    }else{
        objSubMenuDiv.innerHTML = objGet.innerHTML;
    }
    if(navigator.appName.indexOf("Internet Explore")>-1){
        objBackMenu.style.display="";
        objBackMenu.style.top = pos.y+objShow.offsetHeight;
        objBackMenu.style.left = pos.x;
        objBackMenu.innerHTML = '<iframe style="position:absolute;z-index:-1;width:'+objSubMenuDiv.offsetWidth+'px;height:'+objSubMenuDiv.offsetHeight+'px;top:0;left:0;scrolling:no;" frameborder="0"></iframe>';
    }
}

/**
*显示二级菜单
*@param strGetID - 存储显示内容的标签id
*@param objTr - 显示子菜单的tr对象
*/
function showSubMenu2(strGetID,objTr){
    var objGet = document.getElementById(strGetID);
    var objSubMenuDiv2 = document.getElementById("subMenuDiv2");
    var pos = getPosition(objTr.firstChild);
    objSubMenuDiv2.innerHTML = objGet.innerHTML;
    objSubMenuDiv2.style.display = "";
    objSubMenuDiv2.style.top = pos.y;
    objSubMenuDiv2.style.left = pos.x+objTr.parentNode.parentNode.offsetWidth-2;
}

//隐藏一级子菜单
function hideSubMenu1(){
    var objSubMenuDiv = document.getElementById("subMenuDiv");
    objSubMenuDiv.style.display="none";
    document.getElementById("backmenu").style.display="none";
}

//隐藏二级子菜单
function hideSubMenu2(){
    var objSubMenuDiv2 = document.getElementById("subMenuDiv2");
    objSubMenuDiv2.style.display="none";
}


//隐藏所有下拉菜单
function hideSubMenu(){
    try{
        var objSubMenuDiv = document.getElementById("subMenuDiv");
        objSubMenuDiv.style.display="none";
        var objSubMenuDiv2 = document.getElementById("subMenuDiv2");
        objSubMenuDiv2.style.display="none";
        document.getElementById("backmenu").style.display="none";
    }catch(e){
    }
}

function beginHideSubMenu(){
    return;
}
function endHideSubMenu(){
    return;
}

/**
*鼠标移入移出主菜单样式的改变
*@param obj - 改变样式的对象
*@param bolChg - 是否改变样式
*/
function chgMainMenuStyle(obj,bolChg)
{
    var bBackImg=false;
    if(obj.style.backgroundImage.indexOf('images')>=0){
        bBackImg = true;
    }
    if ( bolChg ) {//鼠标悬停改变颜色
        obj.style.cssText = m_strMMProMOver;
    } else {//鼠标移出
        obj.style.cssText = m_strMMProBase + ";border:0";
    }
    if(obj.getAttribute("haslink")=="no"){
        obj.style.textDecoration='none';
    }
    if(!bBackImg){
        obj.style.backgroundImage='';
    }
}//end function chgMainMenuStyle(obj,i)

/**
*鼠标移入移出子菜单样式的改变
*@param obj - 改变样式的对象
*@param bolChg - 是否改变样式
*/
function chgSubMenuStyle(obj,bolChg) {
    if ( bolChg ) {//鼠标悬停改变颜色
//        for( var pro in m_strSMItemProMOver ) {
//            obj.style[pro] = m_strSMItemProMOver[pro];
//        }
        obj.style.cssText = m_strSMProOver;
    } else {//鼠标移出
//        for( var pro in m_strSMItemProBase ) {
//            obj.style[pro] = m_strSMItemProBase[pro];
//        }
        obj.style.cssText = m_strSMProBase;
    }
}//end function chgSubMenuStyle(obj,i)

/**
*构造节点样式
*@param strPath 节点路径
*/
function getNodeStyle(temp_node) {
    var strStyle = '';
    if( temp_node ) {
        var nodeList = temp_node.childNodes;
        for( var i = 0;i < nodeList.length;i ++ ) {
            var cur_node = nodeList.item(i);
            var nodeName = cur_node.nodeName;
            var nodeText = "";
            var nodeValueList = cur_node.childNodes;
            if(nodeValueList.length>0){
                nodeText = nodeList[i].childNodes[0].data;
            }
            strStyle += nodeName.toLowerCase() + ":" + nodeText + ";";
        }
    }
    return strStyle;
}

/**
*构造节点Style Property
*/
function getNodeProperty(strPath) {
    var arrProperty = {};
    var tempNode = m_doc.selectNodeSet(strPath);
    if( tempNode ) {
        var nodeList = tempNode.item(0).childNodes;
        for(var i=0;i < nodeList.length;i ++ ) {
            var nodeName = nodeList.item(i).nodeName;
            nodeName = nodeName.toLowerCase();
            var nodeValueList = nodeList.item(i).childNodes;
            var nodeText = nodeList.item(i).childNodes;
            //由attribute到property的转变。如background-color -> backgroundColor
            var aName = nodeName.split("-");
            var strProperty = aName[0];
            for( var j = 1;j < aName.length;j ++ ) {
                strProperty += aName[j].substring(0,1).toUpperCase() + aName[j].substr(1);
            }
            arrProperty[strProperty] = nodeText;
        }
    }
    return arrProperty;
}

/**
*得到主菜单样式
*/
function getMainMenuStyle() {
    var main_menu = m_doc.documentElement.childNodes.item(0).childNodes.item(0);

    //得到主菜单样式
    m_strMainMenuStyle = getNodeStyle(main_menu.childNodes.item(0));
//    m_strMainMenuStyle = getNodeStyle("//popmenu/style/main-menu/base");

    //得到主菜单项样式
    m_strMainMenuItemStyle = getNodeStyle(main_menu.childNodes.item(1).childNodes.item(0));
//    m_strMainMenuItemStyle = getNodeStyle("//popmenu/style/main-menu/menu-item/base");

    //主菜单项的property
    m_strMMProBase = m_strMainMenuItemStyle;

    //得到鼠标悬停时主菜单项各property改变
    m_strMMProMOver = getNodeStyle(main_menu.childNodes.item(1).childNodes.item(1));

    //得到菜单项与项之间的分割图片
    var temp_node = main_menu.childNodes.item(1).childNodes.item(2);
    if( temp_node ) {
        var temp_node_child = temp_node.childNodes;
        var node_text = "";
        if(temp_node_child && temp_node_child.length>0){
            node_text = temp_node_child.item(0).data;
        }
        m_strMMItemSplitImg = "background-image:" + node_text + ";";
        m_strMMItemSplitImg += "background-repeat:no-repeat;background-position:center center;";
    }
}//end function getMainMenuStyle()

/**
*得到主菜单样式
*/
function getSubMenuStyle() {
    var sub_menu = m_doc.documentElement.childNodes.item(0).childNodes.item(1);

    //得到子菜单样式
    m_strSubMenuStyle = getNodeStyle(sub_menu.childNodes.item(0));

    //得到子菜单项样式
    m_strSubMenuItemStyle = getNodeStyle(sub_menu.childNodes.item(1).childNodes.item(0));

    //子菜单项的property
    m_strSMProBase = m_strSubMenuItemStyle;

    //得到鼠标悬停时子菜单项各property改变
    m_strSMProOver = getNodeStyle(sub_menu.childNodes.item(1).childNodes.item(1));

    //得到子菜单项下边框样式(作为分割线)
    var temp_node = sub_menu.childNodes.item(1).childNodes.item(2);
    if( temp_node ) {
        var temp_node_child = temp_node.childNodes;
        var node_text = "";
        if(temp_node_child && temp_node_child.length>0){
            node_text = temp_node_child.item(0).data;
        }
        m_strSMItemBorderB = "border-bottom:" + node_text + "";
    }
}//end function getSubMenuStyle()

var m_bolFirst = true;//是否首次响应菜单
/*
document.onclick = function(){
    m_bolFirst = true;
}
*/
top.document.onclick = function(){
    m_bolFirst = true;
}

/**
*展开各个主菜单
*@param objTd - 主菜单所在td
*@param strSubMenuID - 对应子菜单的id
*@param bolExistSubMenu - 是否存在子菜单
*/
function spreadMainMenu(objTd,strSubMenuID,bolExistSubMenu){
    chgMainMenuStyle(objTd,true);
    endHideSubMenu();
    if( bolExistSubMenu ){
        //如果有子菜单
        showSubMenu1(objTd,strSubMenuID);
        hideSubMenu2();
    } else  {
        hideSubMenu();
        m_bolFirst = false;//已不是第一次响应菜单
    }
}

//打印主菜单
function printMainMenu()
{
    var strHtml = "";
    strHtml = "<table style='"+m_strMainMenuStyle+"'  id='mm' cellpadding='0' border='0'><tr>";
    var intMenuWidth = 0;
    for (var i=0;i< m_objMMList.length ; i ++ )
    {
        var menuNode = m_objMMList.item(i);
        var attList = menuNode.attributes;
        var menuText = menuNode.getAttribute("text");
        var menuHref = menuNode.getAttribute("href");
        var menuTarget = menuNode.getAttribute("target");
	var intMenuWidth = menuNode.getAttribute("width");
        var menustyle = menuNode.getAttribute("style");
        if(menustyle==null){
            menustyle = "";
        }
        var strSubMenuID = "sm" + i;
	//alert(strSubMenuID);
        var strMouseOverEvent = "";
        var strClickEvent = "";
        //如果有子拉菜单，则显示
        if ( menuNode.hasChildNodes() ){
            strMouseOverEvent = "spreadMainMenu(this,\"" + strSubMenuID + "\",true);";
            strClickEvent = "onClickEvent('" + menuHref + "','" + menuTarget + "','" + menuText + "');";
            strHtml += "<td width=" + intMenuWidth + " style='" + m_strMainMenuItemStyle + menustyle + "'  id=mm" + i +" ";
        }else{
            strMouseOverEvent = "chgMainMenuStyle(this,true);hideSubMenu1();";
            strClickEvent = "onClickEvent('" + menuHref + "','" + menuTarget + "','" + menuText + "');";
            //没有子菜单，则不显示小图标
            strHtml += "<td width=" + intMenuWidth + " style='" + m_strMainMenuItemStyle.replace(/images\/arrordown.gif/g,'') + menustyle + "'  id=mm" + i +" ";
        }
        if(menuHref=="#"){
            strHtml += " haslink='no'";
        }
        strHtml += " onmouseover=" + strMouseOverEvent +" ";
        strHtml += " onmouseout='chgMainMenuStyle(this,false);beginHideSubMenu();' ";
        strHtml += " onclick=" + strClickEvent +" ";
        strHtml += " >" + menuText+"</td>";
    }
    strHtml += "<td></td>";
    strHtml += "</tr>";
    strHtml += "</table>";
    document.write(strHtml);
//    alert(strHtml);
}//end printMainMenu()

//打印一级子菜单
function printSubMenu() {
    for (var i=0; i< m_objMMList.length ; i ++ ) {
        menuNode = m_objMMList.item(i);
        //如果没有子菜单，执行下一个循环
        if ( !menuNode.hasChildNodes() ){
            continue;
        }
        //得到主菜单下的子菜单集合
        var objSMList = menuNode.childNodes;
        var intSubMenuLen = objSMList.length;
        //每个主菜单对应的子菜单id
        var strSubMenuID = "sm" + i;
        var strMainMenuID="mm" + i;
        //arrMenuID.push(strSubMenuID);
        var divstrMouseOverEvent = " chgMainMenuStyle(\""+strMainMenuID+"\",true);";
        var divstrMouseOutEvent = " chgmainMenuStyle(\""+strMainMenuID+"\",false);";
        var strSubMenuHtml = "<div style='display:none;border:0;' id='" + strSubMenuID   + "'>" + "<table name='"+strSubMenuID+"'  cellspacing='0' cellpadding='4' style='" + m_strSubMenuStyle + "'>";
        for (var j=0;j < intSubMenuLen;j ++ ) {
            var objSubMenu = objSMList.item(j);
            var menuType = objSubMenu.getAttribute("type");
            var menuText = objSubMenu.getAttribute("text");
            var menuHref = objSubMenu.getAttribute("href");
            var menuTarget = objSubMenu.getAttribute("target");
            var menuTextStyle = objSubMenu.getAttribute("style");
            if(menuTextStyle==null){
                menuTextStyle="";
            }
            //如果有三级子菜单，则需要箭头标识
            var strRightRow = "&nbsp";
            //二级子菜单id
            var strSubMenu2ID = strSubMenuID + "_sm" + j;
            //鼠标悬停和移出时一级子菜单的响应
            var strMouseOverEvent = "chgSubMenuStyle(this,true);endHideSubMenu();";
            var strMouseOutEvent = "chgSubMenuStyle(this,false);beginHideSubMenu();";
            //位置信息显示
            var strPosition = STR_POS_FRONT +  m_objMMList.item(i).getAttribute("text") +  "->"  + menuText;
            if ( objSubMenu.hasChildNodes() ) {
                //打印其二级子菜单
                printSubMenu2(objSubMenu,strSubMenu2ID,strPosition);
//                strMouseOverEvent += "showSubMenu2('" + strSubMenu2ID + "',this);";
                strMouseOverEvent += "showSubMenu2('" + strSubMenu2ID + "',this);";
                strRightRow = "<font name='submenu1' style='font-weight:normal'>&gt;&gt;</font>";
                strPosition = "";
                strSubMenuHtml += "<tr name='submenu1' style='" + m_strSubMenuItemStyle + "' ";
                strSubMenuHtml += ' onmouseover="showSubMenu2(\''+strSubMenu2ID+'\',this);" ';
                strSubMenuHtml += ' onmouseout="' + strMouseOutEvent + '" onclick="onClickEvent(\''+menuHref+'\',\''+menuTarget+'\',\'\');">';
            } else {
                //strMouseOverEvent += "parent.endHideSubMenu();";
                strMouseOverEvent += "hideSubMenu2();";
                strSubMenuHtml += "<tr name='submenu1' style='" + m_strSubMenuItemStyle + "' ";
                strSubMenuHtml += " onmouseover='" + strMouseOverEvent + "' ";
                strSubMenuHtml += ' onmouseout="' + strMouseOutEvent + '" onclick="onClickEvent(\''+menuHref+'\',\''+menuTarget+'\',\'\');">';
            }
//            strSubMenuHtml += "<tr name='submenu1' style='" + m_strSubMenuItemStyle + "' ";
//            strSubMenuHtml += " onmouseover='" + strMouseOverEvent + "' ";
//            strSubMenuHtml += ' onmouseout="' + strMouseOutEvent + '" onclick="onClickEvent(\''+menuHref+'\',\''+menuTarget+'\',\'\');">';
            strSubMenuHtml += "<td name='submenu1' width='3' nowrap style='" + m_strSMItemBorderB+";"+ menuTextStyle+ "'>&nbsp;</td>";
            if(menuType=='vip'){
                strSubMenuHtml += "<td name='submenu1' nowrap style='" + m_strSMItemBorderB+ ";" + menuTextStyle + "'>";
                strSubMenuHtml += "<div name='submenu1' style='float:left;margin-top:3px'>"+menuText + "</div>";
                strSubMenuHtml += "<div name='submenu1' style='float:left;margin-left:2px'><img title='升级到VIP之后才能使用' border='0' name='submenu1' src='/images/vip.gif'/></div>";
                strSubMenuHtml += "</td>";
            }else{
                strSubMenuHtml += "<td name='submenu1' nowrap style='" + m_strSMItemBorderB+ ";" + menuTextStyle + "'>" + menuText + "</td>";
            }
            strSubMenuHtml += "<td name='submenu1' width='10' align='right' nowrap style='" + m_strSMItemBorderB +";"+menuTextStyle+ "'>" + strRightRow + "</td>";
            strSubMenuHtml += "</tr>";
//            alert(strSubMenuHtml);
        }//end for 子菜单个数循环
        strSubMenuHtml += "</table></div>";
        document.write(strSubMenuHtml);
//        alert(strSubMenuHtml);
    }//end for 主菜单个数循环
}//end function printSubMenu()

/**打印二级子菜单
*objSubMenu : 一级子菜单对象
*strSubMenu2ID ：将要打印的二级菜单的id
*strPosition：主菜单和一级子菜单文本描述
*/
function printSubMenu2(objSubMenu,strSubMenu2ID,strPosition)
{
    var objSMList = objSubMenu.childNodes;
    var intSubMenu2Len = objSMList.length;

    var strSubMenu2Html = "<div name='submenu2' style='display:none;border:0;'  id='" + strSubMenu2ID + "'>" +
                        " <table  name='submenu2' cellspacing='0' cellpadding='4' style='" + m_strSubMenuStyle + "'>";
    for (var i=0; i< intSubMenu2Len;i ++ )
    {
        var objSubMenu2 = objSMList.item(i);
        var menuText = objSubMenu2.getAttribute("text");;
        var menuHref = objSubMenu2.getAttribute("href");;
        var menuTarget = objSubMenu2.getAttribute("target");
        var strPostion2 = strPosition + "->" + menuText;
        strSubMenu2Html += '<tr name="submenu2" style="' + m_strSubMenuItemStyle + '" ';
        strSubMenu2Html += 'onmouseover="chgSubMenuStyle(this,true);endHideSubMenu();"';
        strSubMenu2Html += 'onmouseout="chgSubMenuStyle(this,false);beginHideSubMenu();"';
        strSubMenu2Html += 'onclick="onClickEvent(\''+menuHref+'\',\''+menuTarget+'\',\''+strPosition+'\');">';
        strSubMenu2Html += '<td name="submenu2" width="3" nowrap style="' + m_strSMItemBorderB + '">&nbsp;</td>';
        strSubMenu2Html += '<td name="submenu2" nowrap style="' + m_strSMItemBorderB + '">' + menuText + '</td>';
        strSubMenu2Html += '<td name="submenu2" width="3" nowrap style="' + m_strSMItemBorderB + '">&nbsp;</td></tr>';

    }
    strSubMenu2Html += "</table></div>";
    document.write(strSubMenu2Html);

}//end function printSubMenu2

/**
*打开链接，所有菜单的链接都是通过这个函数来打开。并显示位置信息
*@param strUrl - 打开链接的地址
*@param strTarget - 打开链接的target。如_self,_blank等
*@param strViewText - 位置信息
*/
function onClickEvent(strUrl,strTarget,strViewText)
{
    m_bolFirst = true;//以后响应菜单时变为为第一次响应
    //document.all.selected_menu.innerText = strViewText;
    m_strTitle = "";
    var arrText = strViewText.split("->");
    if ( arrText.length >0 )
        m_strTitle = arrText[0];
    for (var i = 1; i < arrText.length ; i ++ )
    {
        m_strTitle += "－" + arrText[i];
    }
    STR_POS_FRONT = "您的位置：";
    m_strTitle = m_strTitle.substring(STR_POS_FRONT.length);
    //隐藏下拉菜单
    hideSubMenu();
    //显示title
    if (m_strTitle != "")
    {
        //parent.document.title = m_strTitle;
    }

    if ( strUrl == "#" )
        return;

    //如果url是一个javascript字符串则直接执行之
    if(strUrl.toLowerCase().indexOf("javascript") != -1) {
        executeScript(strUrl.replace(/javascript:/g,''));
        return;
    }
	if(strTarget=="_blank"){
	    window.open(strUrl,strTarget);
	}else{
		window.location.href=strUrl;
	}
}

//执行一个javascript字符串
function executeScript(strScript)
{
    //第一个eval得到该字符串表示的变量，第二个eval则执行变量里的脚本
    eval(strScript);
}

/**
*加载菜单
*@param strXMLPath - XML数据文件所在路径及文件名
*/
function loadMenu() {
    if(isIE()){
        m_doc = new ActiveXObject("MSXML2.DOMDocument.3.0");
        m_doc.async = false;
        m_doc.loadXML(ge("menucontent").value);
    }else{
        var objXMLParser=new DOMParser();
        m_doc = objXMLParser.parseFromString(ge("menucontent").value,"text/xml");
    }

    getMainMenuStyle();
    getSubMenuStyle();
    m_objMMList = m_doc.documentElement.childNodes.item(2).childNodes;

    printMainMenu();
    printSubMenu();
}


