gnb_menus_layer.js
上传用户:nbluoke
上传日期:2013-08-09
资源大小:4851k
文件大小:16k
源码类别:

教育系统应用

开发平台:

WORD

  1.   function getGNBLinkColor(moduleID)/*鼠标over时显示颜色*/
  2.   {
  3.     if (moduleID == "www") return "#3260B1";
  4.     if (moduleID == "senior") return "#B77BB4";
  5.     if (moduleID == "junior") return "#F7A300";
  6.     if (moduleID == "exercises") return "#77B7B9";
  7.     if (moduleID == "community") return "#C28383";
  8.     if (moduleID == "myjh") return "#8882B5";
  9.     if (moduleID == "help") return "#CEAB75";
  10.   }
  11.   function getGNBLayerColor(moduleID)/*间隔的彩条基本颜色*/
  12.   {
  13.     if (moduleID == "senior") return "#F7E1F6";
  14.     if (moduleID == "junior") return "#FFEBC4";
  15.     if (moduleID == "exercises") return "#DFF1E4";
  16.     if (moduleID == "community") return "#FBE2D3";
  17.     if (moduleID == "myjh") return "#EFEDFD";
  18.     if (moduleID == "help") return "#F5E8D3";
  19.   }
  20.   function getGNBLayerHighlightColor(moduleID)/*下拉菜单鼠标over时改变的颜色*/
  21.   {
  22.     if (moduleID == "senior") return "#D3ADD1";
  23.     if (moduleID == "junior") return "#E4BD55";
  24.     if (moduleID == "exercises") return "#77B7B9";
  25.     if (moduleID == "community") return "#E1B1B1";
  26.     if (moduleID == "myjh") return "#B5B1D4";
  27.     if (moduleID == "help") return "#CEAB75";
  28.   }
  29.   function generateGNBLayerMenu(moduleID, subMenu, menuID, strOption)
  30.   {
  31.       var href = "javascript:sayNavigate('"+subMenu[0].replace(/'/g, '\'')+"');"
  32. /*
  33.     if (subMenu[0].substr(0, 7) == "http://")
  34.       var href = "javascript:sayNavigate('"+subMenu[0].replace(/'/g, '\'')+"');"
  35.     else
  36.       var href = subMenu[0];
  37. */
  38.     if (subMenu[2] == "normal")
  39.       return "<TD "+strOption+" ONMOUSEOVER="javascript:highlightLayer('"+moduleID+"', '"+menuID+"')" ONMOUSEOUT="javascript:restoreLayer('"+moduleID+"', '"+menuID+"')" ONMOUSEDOWN=""+href+"" STYLE="cursor:hand" CLASS=gnbSubMenu>&nbsp;<SPAN ID=text_"+menuID+">" + subMenu[1] + "</SPAN>&nbsp;&nbsp;</TD>";
  40.     else if (subMenu[2] == "special")
  41.       return "<TD "+strOption+" ONMOUSEOVER="javascript:highlightLayer('"+moduleID+"', '"+menuID+"');document.all.arrow_"+menuID+".color='#FFFFFF';" ONMOUSEOUT="javascript:restoreLayer('"+moduleID+"', '"+menuID+"');document.all.arrow_"+menuID+".color='#BFBFBF';" ONMOUSEDOWN=""+href+"" STYLE="cursor:hand" CLASS=gnbSubMenu>&nbsp;<SPAN ID=text_"+menuID+"><FONT ID=arrow_"+menuID+" COLOR=#BFBFBF style='font-size:8pt;'>⒑</FONT>" + subMenu[1] + "</SPAN>&nbsp;&nbsp;</TD>";
  42.     else
  43.       return "<TD "+strOption+" ONMOUSEOVER="javascript:highlightLayer('"+moduleID+"', '"+menuID+"')" ONMOUSEOUT="javascript:restoreLayer('"+moduleID+"', '"+menuID+"');document.all.text_"+menuID+".style.color='#646464';" ONMOUSEDOWN=""+href+"" STYLE="cursor:hand; color:#646464;" CLASS=gnbSubMenu ALIGN=right>&nbsp;<SPAN ID=text_"+menuID+"><b>more <FONT SIZE=-2>&gt;</FONT></b></SPAN>&nbsp;&nbsp;</TD>";
  44.   }
  45.   function generateGNBLayerTop(moduleID, subMenu, bgcolor, menuID)
  46.   {
  47.     document.writeln(
  48. "<TR VALIGN=bottom HEIGHT=1>"+
  49.   "<TD ROWSPAN=2 BGCOLOR=#717171></TD>"+
  50.   "<TD ID="+menuID+" BGCOLOR="+bgcolor+" ROWSPAN=2 COLSPAN=3></TD>"+
  51.   generateGNBLayerMenu(moduleID, subMenu, menuID, 'ID='+menuID+' BGCOLOR='+bgcolor+' ROWSPAN=2')+
  52.   "<TD ID="+menuID+" BGCOLOR="+bgcolor+" ROWSPAN=2 COLSPAN=2></TD>"+
  53.   "<TD ROWSPAN=2 BGCOLOR=#717171></TD>"+
  54.   "<TD></TD>"+
  55. "</TR>"+
  56. "<TR BGCOLOR="+bgcolor+" VALIGN=bottom HEIGHT=17>"+
  57.   "<TD BGCOLOR=#000000></TD>"+
  58. "</TR>");
  59.   }
  60.   function generateGNBLayerCommon(moduleID, subMenu, bgcolor, menuID)
  61.   {
  62.     document.writeln(
  63. "<TR ID="+menuID+" BGCOLOR="+bgcolor+" VALIGN=bottom HEIGHT=18>"+
  64.   "<TD BGCOLOR=#717171></TD>"+
  65.   "<TD COLSPAN=3></TD>"+
  66.   generateGNBLayerMenu(moduleID, subMenu, menuID, '')+
  67.   "<TD COLSPAN=2></TD>"+
  68.   "<TD BGCOLOR=#717171></TD>"+
  69.   "<TD BGCOLOR=#000000></TD>"+
  70. "</TR>");
  71.   }
  72.   function generateGNBLayerBottom(moduleID, subMenu, bgcolor, menuID)
  73.   {
  74.     document.writeln(
  75. "<TR ID="+menuID+" BGCOLOR="+bgcolor+" VALIGN=bottom HEIGHT=16>"+
  76.   "<TD BGCOLOR=#717171></TD>"+
  77.   "<TD></TD>"+
  78.   "<TD ROWSPAN=2></TD>"+
  79.   "<TD ROWSPAN=3></TD>"+
  80.   generateGNBLayerMenu(moduleID, subMenu, menuID, 'ROWSPAN=3')+
  81.   "<TD ROWSPAN=2></TD>"+
  82.   "<TD></TD>"+
  83.   "<TD BGCOLOR=#717171></TD>"+
  84.   "<TD ROWSPAN=2 BGCOLOR=#000000></TD>"+
  85. "</TR>"+
  86. "<TR HEIGHT=1>"+
  87.   "<TD ROWSPAN=2></TD>"+
  88.   "<TD ROWSPAN=2 BGCOLOR=#717171></TD>"+
  89.   "<TD ROWSPAN=2 BGCOLOR=#717171></TD>"+
  90.   "<TD ROWSPAN=2 BGCOLOR=#000000></TD>"+
  91. "</TR>"+
  92. "<TR HEIGHT=1>"+
  93.   "<TD BGCOLOR=#717171></TD>"+
  94.   "<TD BGCOLOR=#717171></TD>"+
  95.   "<TD></TD>"+
  96. "</TR>");
  97.   }
  98.   
  99.   function generateGNBLayerLine()
  100.   {
  101.     document.writeln(
  102. "<TR BGCOLOR=#D3D3D3 HEIGHT=1>"+
  103.   "<TD BGCOLOR=#717171></TD>"+
  104.   "<TD COLSPAN=6></TD>"+
  105.   "<TD BGCOLOR=#717171></TD>"+
  106.   "<TD BGCOLOR=#000000></TD>"+
  107. "</TR>");
  108.   }
  109.   function generateGNBLayer(moduleID, subMenus)
  110.   {
  111.     var bgcolor = getGNBLayerColor(moduleID);
  112.     document.writeln(
  113. "<DIV ID=gnb_layer_"+moduleID+"  ONMOUSEOVER="javascript:showSubMenuLayer('"+moduleID+"')" ONMOUSEOUT="javascript:hideSubMenuLayer('"+moduleID+"')" STYLE="position:absolute; display:none; z-index:99">"+
  114. "<TABLE CELLPADDING=0 CELLSPACING=0 BORDER=0 STYLE="position:relative">"+
  115.   "<COL WIDTH=1>"+
  116.   "<COL WIDTH=1>"+
  117.   "<COL WIDTH=1>"+
  118.   "<COL WIDTH=1>"+
  119.   "<COL>"+
  120.   "<COL WIDTH=1>"+
  121.   "<COL WIDTH=1>"+
  122.   "<COL WIDTH=1>"+
  123.   "<COL WIDTH=1>");
  124.     var isSpecial = false;
  125.     var bgcolor = '#FFFFFF';
  126.     for (key in subMenus)
  127.     {
  128.       if (subMenus[key][2] != 'normal')
  129.         bgcolor = "#F8F8F3";
  130.       else if (key % 2 == 0)
  131.         bgcolor = getGNBLayerColor(moduleID);
  132.       else
  133.         bgcolor = "#FFFFFF";
  134.       if (subMenus[key][2] != 'normal' && !isSpecial)
  135.       {
  136.         generateGNBLayerLine();
  137.         isSpecial = true;
  138.       }
  139.       if (key == subMenus.length - 1)
  140.         generateGNBLayerBottom(moduleID, subMenus[key], bgcolor, "gnb_layer_"+moduleID+"_"+key);
  141.       else if (key == 0)
  142.         generateGNBLayerTop(moduleID, subMenus[key], bgcolor, "gnb_layer_"+moduleID+"_"+key);
  143.       else
  144.         generateGNBLayerCommon(moduleID, subMenus[key], bgcolor, "gnb_layer_"+moduleID+"_"+key);
  145.     }
  146.     document.writeln(
  147.   "<TR HEIGHT=1>"+
  148.     "<TD COLSPAN=2></TD>"+
  149.     "<TD BGCOLOR=#000000></TD>"+
  150.     "<TD COLSPAN=2 BGCOLOR=#717171></TD>"+
  151.     "<TD COLSPAN=3 BGCOLOR=#000000></TD>"+
  152.     "<TD></TD>"+
  153.   "</TR>"+
  154.   "<TR HEIGHT=1>"+
  155.     "<TD COLSPAN=4></TD>"+
  156.     "<TD COLSPAN=2 BGCOLOR=#000000></TD>"+
  157.     "<TD COLSPAN=3></TD>"+
  158.   "</TR>"+
  159. "</TABLE>"+
  160. "</DIV>");
  161.   }
  162.   var originalLayerBGColor;
  163.   var originalLayerFontColor;
  164.   function highlightLayer(moduleID, menuID)
  165.   {
  166.     //showSubMenuLayer(moduleID);
  167.     originalLayerBGColor = document.getElementById(menuID).bgColor;
  168.     var colMenu = document.getElementsByName(menuID);
  169.     for (var i=0; i<colMenu.length; i++)
  170.       colMenu[i].bgColor = getGNBLayerHighlightColor(moduleID);
  171.     document.all("text_"+menuID).style.color = "#FFFFFF";
  172.   }
  173.   function restoreLayer(moduleID, menuID)
  174.   {
  175.     //hideSubMenuLayer(moduleID);
  176.     var colMenu = document.getElementsByName(menuID);
  177.     for (var i=0; i<colMenu.length; i++)
  178.       colMenu[i].bgColor = originalLayerBGColor;
  179.     document.all("text_"+menuID).style.color = "#000000";
  180.   }
  181.   var originalMenuColor;
  182.   var originalMenuFontWeight;
  183.   var currentShewModuleID = '';
  184.   function showSubMenuLayer(moduleID)
  185.   {
  186.     if (currentShewModuleID == moduleID)
  187.       return;
  188.     if (currentShewModuleID != '')
  189.       hideSubMenuLayer(currentShewModuleID);
  190.     currentShewModuleID = moduleID;
  191.     var tg = document.all("gnb_layer_"+moduleID);
  192.     var link = document.all("gnb_link_"+moduleID);
  193.     var linkText = document.all("gnb_link_text_"+moduleID);
  194.     originalMenuColor = linkText.style.color;
  195.     originalMenuFontWeight = linkText.style.fontWeight;
  196.     linkText.style.color = getGNBLinkColor(moduleID);
  197.     linkText.style.fontWeight = "bold";
  198.     if (tg != null)
  199.     {
  200.       tg.style.posTop = link.offsetTop + link.offsetHeight;
  201.       tg.style.posLeft = link.offsetLeft;
  202.       tg.style.display = "inline";
  203.       for (var i=0; i<objectForClipping.length; i++)
  204.       {
  205.         var frameName = objectForClipping[i];
  206.         var tableName = oTableForClipping[i];
  207.         var oFrame = document.all[frameName];
  208.         var oTable = document.all[tableName];
  209.         if( 'undefined' != typeof(tableName) && '' != tableName )
  210.         {
  211.           var oldFrameOffsetTop = oFrame.offsetTop;
  212.           var oldFrameOffsetLeft = oFrame.offsetLeft;
  213.           var frameOffsetTop = oFrame.offsetTop + parseInt(oTable.style.top);
  214.           var frameOffsetLeft = oFrame.offsetLeft + parseInt(oTable.style.left);
  215.           var frameOffsetBottom = frameOffsetTop + oFrame.offsetHeight;
  216.           var frameOffsetRight = frameOffsetLeft + oFrame.offsetWidth;
  217.         }
  218.         else
  219.         {
  220.           oFrame.style.position = 'relative';
  221.           var frameOffsetTop = oFrame.offsetTop;
  222.           var frameOffsetLeft = oFrame.offsetLeft;
  223.           var frameOffsetBottom = oFrame.offsetTop + oFrame.offsetHeight;
  224.           var frameOffsetRight = oFrame.offsetLeft + oFrame.offsetWidth;
  225.         }
  226.         var layerOffsetTop = tg.offsetTop;
  227.         var layerOffsetBottom = tg.offsetTop + tg.offsetHeight;
  228.         var layerOffsetLeft = tg.offsetLeft;
  229.         var layerOffsetRight = tg.offsetLeft + tg.offsetWidth;
  230.         if (frameOffsetTop <= layerOffsetBottom &&
  231.             (layerOffsetLeft >= frameOffsetLeft && layerOffsetLeft <= frameOffsetRight ||
  232.              frameOffsetLeft >= layerOffsetLeft && frameOffsetLeft <= layerOffsetRight))
  233.         {
  234.           oFrame.style.position = 'absolute';
  235.           if( 'undefined' != typeof(tableName) && '' != tableName )
  236.           {
  237.             oFrame.style.top = oldFrameOffsetTop;
  238.             oFrame.style.left = oldFrameOffsetLeft;
  239.           }
  240.           else
  241.           {
  242.             oFrame.style.top = frameOffsetTop;
  243.             oFrame.style.left = frameOffsetLeft;
  244.           }
  245.             oFrame.style.clip = "rect(" + (layerOffsetBottom - frameOffsetTop + 1) + " auto auto auto)";
  246.         }
  247.       }
  248.     }
  249.   }
  250.   function hideSubMenuLayer(moduleID, force)
  251.   {
  252.     if (currentShewModuleID != moduleID)
  253.       return;
  254.     var tg = document.all("gnb_layer_" + moduleID);
  255.     var linkText = document.all("gnb_link_text_"+moduleID);
  256.     currentShewModuleID = '';
  257.     linkText.style.color = originalMenuColor?originalMenuColor:"#000000";
  258.     linkText.style.fontWeight = originalMenuFontWeight?originalMenuFontWeight:"normal";
  259.     if (tg != null)
  260.     {
  261.       tg.style.display = "none";
  262.       for (var i=0; i<objectForClipping.length; i++)
  263.       {
  264.         var frameName = objectForClipping[i];
  265.         var tableName = oTableForClipping[i];
  266.         var oFrame = document.all[frameName];
  267.         var oTable = document.all[tableName];
  268.         oFrame.style.position = 'relative';
  269.         oFrame.style.top = 0;
  270.         oFrame.style.left = 0;
  271.         oFrame.style.clip = "rect(auto)";
  272.       }
  273.     }
  274.   }
  275.   function showSubMenuLayer2(moduleID)
  276.   {
  277.     if (currentShewModuleID == moduleID)
  278.       return;
  279.     if (currentShewModuleID != '')
  280.       hideSubMenuLayer(currentShewModuleID);
  281.     currentShewModuleID = moduleID;
  282.     var linkText = document.all("gnb_link_text_"+moduleID);
  283.     originalMenuColor = linkText.style.color;
  284.     originalMenuFontWeight = linkText.style.fontWeight;
  285.     linkText.style.color = getGNBLinkColor(moduleID);
  286.     linkText.style.fontWeight = "bold";
  287.   }
  288.   function hideSubMenuLayer2(moduleID)
  289.   {
  290.     if (currentShewModuleID != moduleID)
  291.       return;
  292.     var linkText = document.all("gnb_link_text_"+moduleID);
  293.     currentShewModuleID = '';
  294.     linkText.style.color = originalMenuColor?originalMenuColor:"#000000";
  295.     linkText.style.fontWeight = originalMenuFontWeight?originalMenuFontWeight:"normal";
  296.   }
  297.   var objectForClipping = new Array();
  298.   var oTableForClipping = new Array();
  299.   function addIFrameForClipping(frameName, tableName)/*下拉菜单包含内容及其链接*/
  300.   {
  301.     var count = objectForClipping.length;
  302.     objectForClipping[count] = frameName;
  303.     oTableForClipping[count] = tableName;
  304.   }
  305. var subMenus_senior = new Array();
  306. subMenus_senior[0] = new Array();
  307. subMenus_senior[0][0] = "/senior/";
  308. subMenus_senior[0][1] = "高考通";
  309. subMenus_senior[0][2] = "normal";
  310. subMenus_senior[1] = new Array();
  311. subMenus_senior[1][0] = "/senior/none_g3.jsp";
  312. subMenus_senior[1][1] = "高考通高三";
  313. subMenus_senior[1][2] = "normal";
  314. subMenus_senior[2] = new Array();
  315. subMenus_senior[2][0] = "/senior/none_g2.jsp";
  316. subMenus_senior[2][1] = "高考通高二";
  317. subMenus_senior[2][2] = "normal";
  318. subMenus_senior[3] = new Array();
  319. subMenus_senior[3][0] = "/senior/none_g1.jsp";
  320. subMenus_senior[3][1] = "高考通高一";
  321. subMenus_senior[3][2] = "normal";
  322. var subMenus_senior_in = new Array();
  323. var subMenus_junior = new Array();
  324. subMenus_junior[0] = new Array();
  325. subMenus_junior[0][0] = "/junior/index.jsp";
  326. subMenus_junior[0][1] = "中考通";
  327. subMenus_junior[0][2] = "normal";
  328. subMenus_junior[1] = new Array();
  329. subMenus_junior[1][0] = "/junior/none_c3.jsp";
  330. subMenus_junior[1][1] = "中考通初三";
  331. subMenus_junior[1][2] = "normal";
  332. subMenus_junior[2] = new Array();
  333. subMenus_junior[2][0] = "/junior/none_c2.jsp";
  334. subMenus_junior[2][1] = "中考通初二";
  335. subMenus_junior[2][2] = "normal";
  336. subMenus_junior[3] = new Array();
  337. subMenus_junior[3][0] = "/junior/none_c1.jsp";
  338. subMenus_junior[3][1] = "中考通初一";
  339. subMenus_junior[3][2] = "normal";
  340. var subMenus_junior_in = new Array();
  341. var subMenus_exercises = new Array();
  342. subMenus_exercises[0] = new Array();
  343. subMenus_exercises[0][0] = "/exercises/index.jsp";
  344. subMenus_exercises[0][1] = "考题资料";
  345. subMenus_exercises[0][2] = "normal";
  346. subMenus_exercises[1] = new Array();
  347. subMenus_exercises[1][0] = "/exercises/index.jsp";
  348. subMenus_exercises[1][1] = "模拟考试";
  349. subMenus_exercises[1][2] = "normal";
  350. var subMenus_community = new Array();
  351. subMenus_community[0] = new Array();
  352. subMenus_community[0][0] = "http://jsptestonline.cosoft.org.cn/";
  353. subMenus_community[0][1] = "名师辅导";
  354. subMenus_community[0][2] = "normal";
  355. subMenus_community[1] = new Array();
  356. subMenus_community[1][0] = "/community/bbs.jsp";
  357. subMenus_community[1][1] = "学习论坛";
  358. subMenus_community[1][2] = "normal";
  359. subMenus_community[2] = new Array();
  360. subMenus_community[2][0] = "/cardshow/list.jsp";
  361. subMenus_community[2][1] = "贺卡";
  362. subMenus_community[2][2] = "normal";
  363. subMenus_community[3] = new Array();
  364. subMenus_community[3][0] = "/community/wallpaper.jsp";
  365. subMenus_community[3][1] = "壁纸";
  366. subMenus_community[3][2] = "normal";
  367. subMenus_community[4] = new Array();
  368. subMenus_community[4][0] = "/community/color.jsp";
  369. subMenus_community[4][1] = "多彩空间";
  370. subMenus_community[4][2] = "normal";
  371. subMenus_community[5] = new Array();
  372. subMenus_community[5][0] = "/community/lab.jsp";
  373. subMenus_community[5][1] = "多媒体实验";
  374. subMenus_community[5][2] = "normal";
  375. var subMenus_saygame = new Array();
  376. var subMenus_myjh = new Array();
  377. subMenus_myjh[0] = new Array();
  378. subMenus_myjh[0][0] = "/myjh/index.jsp";
  379. subMenus_myjh[0][1] = "我的资料";
  380. subMenus_myjh[0][2] = "normal";
  381. subMenus_myjh[1] = new Array();
  382. subMenus_myjh[1][0] = "/myjh/index_rc.jsp";
  383. subMenus_myjh[1][1] = "日程管理";
  384. subMenus_myjh[1][2] = "normal";
  385. subMenus_myjh[2] = new Array();
  386. subMenus_myjh[2][0] = "";
  387. subMenus_myjh[2][1] = "考试管理";
  388. subMenus_myjh[2][2] = "normal";
  389. var subMenus_help = new Array();
  390. subMenus_help[0] = new Array();
  391. subMenus_help[0][0] = "/help/product/pro_001.jsp";
  392. subMenus_help[0][1] = "产品介绍";
  393. subMenus_help[0][2] = "normal";
  394. subMenus_help[1] = new Array();
  395. subMenus_help[1][0] = "/help/buy/buy_001.jsp";
  396. subMenus_help[1][1] = "购买向导";
  397. subMenus_help[1][2] = "normal";
  398. subMenus_help[2] = new Array();
  399. subMenus_help[2][0] = "/help/use/use_001.jsp";
  400. subMenus_help[2][1] = "使用帮助";
  401. subMenus_help[2][2] = "normal";
  402. subMenus_help[3] = new Array();
  403. subMenus_help[3][0] = "/help/vote/vote_001.jsp";
  404. subMenus_help[3][1] = "建议投诉";
  405. subMenus_help[3][2] = "normal";