home *** CD-ROM | disk | FTP | other *** search
/ Chip 2003 May / CHIPCD200305.iso / super / altn / md_en.exe / WHSTART.JS < prev    next >
Encoding:
Text File  |  2003-04-14  |  9.2 KB  |  426 lines

  1. //    WebHelp 5.10.003
  2. RegisterListener2(this, WH_MSG_GETSTARTFRAME);
  3. RegisterListener2(this, WH_MSG_GETDEFAULTTOPIC);
  4. RegisterListener2(this, WH_MSG_MINIBARORDER);
  5. RegisterListener2(this, WH_MSG_TOOLBARORDER);
  6. RegisterListener2(this, WH_MSG_ISSEARCHSUPPORT);
  7. RegisterListener2(this, WH_MSG_ISSYNCSSUPPORT);
  8. RegisterListener2(this, WH_MSG_ISAVENUESUPPORT);
  9. RegisterListener2(this, WH_MSG_GETPANETYPE);
  10. RegisterListener2(this, WH_MSG_GETPANES);
  11. RegisterListener2(this, WH_MSG_RELOADNS6);
  12. RegisterListener2(this, WH_MSG_GETCMD);
  13. RegisterListener2(this, WH_MSG_GETPANE);
  14. RegisterListener2(this, WH_MSG_GETDEFPANE);
  15.  
  16. if (gbNav6)
  17. {
  18.     var gnReload=0;
  19.     setTimeout("delayReload();",5000);
  20. }
  21.  
  22. function delayReload()
  23. {
  24.     if (!(this.cMRServer && cMRServer.m_strVersion))
  25.     {
  26.         if(gnReload!=2)
  27.         {
  28.             if(nViewFrameType&&nViewFrameType==1)
  29.                 document.location=document.location;
  30.         }
  31.     }
  32. }
  33.  
  34. var gsToolbarOrder = "toc|idx|fts|blankblock|searchform|banner";
  35. var gsMinibarOrder = "blankblock|hide2|";
  36.  
  37. var gsTopic = "Welcome_To_WorldClient.htm";
  38. var PANE_OPT_SEARCH = 1;
  39. var PANE_OPT_BROWSESEQ = 2;
  40. var gnOpts=-1;
  41. var gnCmd=-1;
  42. var gnPans=2;
  43. var gsBtns="invalid";
  44. var gsDefaultBtn="invalid";
  45.  
  46. if (location.hash.length > 1)
  47. {
  48.     if (location.hash.indexOf("#<") == 0)
  49.     {
  50.         document.location = "whcsh_home.htm#" + location.hash.substring(2);
  51.     }
  52.     else if (location.hash.indexOf("#>>") == 0)
  53.     {
  54.         parseParam(location.hash.substring(3));
  55.     }
  56.     else
  57.     {
  58.         var nPos = location.hash.indexOf(">>");
  59.         if (nPos>1)
  60.         {
  61.             gsTopic = location.hash.substring(1, nPos);
  62.             parseParam(location.hash.substring(nPos+2));
  63.         }
  64.         else
  65.             gsTopic = location.hash.substring(1);
  66.  
  67.     }
  68.     if (gnPans == 1 && gsTopic)
  69.     {
  70.         var strURL=location.href;
  71.         if (location.hash)
  72.         {
  73.             var nPos=location.href.indexOf(location.hash);
  74.             strURL=strURL.substring(0, nPos);
  75.         }
  76.         document.location=_getPath(strURL)+gsTopic;
  77.     }
  78. }
  79.  
  80. function parseParam(sParam)
  81. {
  82.     if (sParam)
  83.     {
  84.         var nBPos=0;
  85.         do 
  86.         {
  87.             var nPos=sParam.indexOf(">>", nBPos);
  88.             if (nPos!=-1)
  89.             {
  90.                 if (nPos>0)
  91.                 {
  92.                     var sPart=sParam.substring(nBPos, nPos);
  93.                     parsePart(sPart);
  94.                 }
  95.                 nBPos = nPos + 2;
  96.             }
  97.             else
  98.             {
  99.                 var sPart=sParam.substring(nBPos);
  100.                 parsePart(sPart);
  101.                 break;
  102.             }
  103.         } while(nBPos < sParam.length);
  104.     }    
  105. }
  106.  
  107. function parsePart(sPart)
  108. {
  109.     if(sPart.toLowerCase().indexOf("cmd=")==0)
  110.     {
  111.         gnCmd=parseInt(sPart.substring(4));
  112.     }
  113.     else if(sPart.toLowerCase().indexOf("cap=")==0)
  114.     {
  115.         document.title=_browserStringToText(sPart.substring(4));
  116.     }
  117.     else if(sPart.toLowerCase().indexOf("pan=")==0)
  118.     {
  119.         gnPans=parseInt(sPart.substring(4));
  120.     }
  121.     else if(sPart.toLowerCase().indexOf("pot=")==0)
  122.     {
  123.         gnOpts=parseInt(sPart.substring(4));
  124.     }
  125.     else if(sPart.toLowerCase().indexOf("pbs=")==0)
  126.     {
  127.         var sRawBtns = sPart.substring(4);
  128.         var aBtns = sRawBtns.split("|");
  129.         for (var i=0;i<aBtns.length;i++)
  130.         {
  131.             aBtns[i] = transferAgentNameToPaneName(aBtns[i]);
  132.         }
  133.         gsRawBtns = aBtns.join("|");
  134.     }
  135.     else if(sPart.toLowerCase().indexOf("pdb=")==0)
  136.     {
  137.         gsDefaultBtn=transferAgentNameToPaneName(sPart.substring(4));
  138.     }
  139. }
  140.  
  141. function setToolbarOrder(sOrder)
  142. {
  143.     gsToolbarOrder = sOrder;
  144. }
  145.  
  146. function setMinibarOrder(sOrder)
  147. {
  148.     gsMinibarOrder = sOrder;
  149. }
  150.  
  151. function onSendMessageX(oMsg)
  152. {
  153.     var nMsgId = oMsg.nMessageId;
  154.     if (nMsgId == WH_MSG_GETSTARTFRAME)
  155.     {
  156.         oMsg.oParam.oFrame = this;
  157.         return false;
  158.     }
  159.     else if (nMsgId == WH_MSG_GETDEFAULTTOPIC)
  160.     {
  161.         if (this.cMRServer && cMRServer.m_strVersion)
  162.         {
  163.             if (cMRServer.m_strURLTopic);
  164.             {
  165.                 oMsg.oParam.sTopic = cMRServer.m_strURLTopic;
  166.                 return false;
  167.             }
  168.  
  169.         }
  170.         oMsg.oParam.sTopic = gsTopic;
  171.         return false;
  172.     }
  173.     else if (nMsgId == WH_MSG_TOOLBARORDER)
  174.     {
  175.         var oMsg1 = new whMessage(WH_MSG_GETPANES, this, 1, null);
  176.         if (SendMessage(oMsg1))
  177.         {
  178.             if (oMsg1.oParam)
  179.             {
  180.                 if (this.cMRServer && cMRServer.m_strVersion)
  181.                 {
  182.                     var aToolbarOrder=cMRServer.m_strAgentList.split(";");
  183.                     var i=0;
  184.                     for (i=0;i<aToolbarOrder.length;i++)
  185.                         aToolbarOrder[i]=transferANToPN2(aToolbarOrder[i]);
  186.                     aToolbarOrder[aToolbarOrder.length] = "blankblock";
  187.                     if (cMRServer.m_bShowSearchInput)
  188.                     {
  189.                         aToolbarOrder[aToolbarOrder.length] = "searchform";
  190.                     }
  191.                     aToolbarOrder[aToolbarOrder.length] = "banner";
  192.                     var aToolbarOrderNew = new Array();
  193.                     for (i=0;i<aToolbarOrder.length;i++)
  194.                     {
  195.                         if (isAPane(aToolbarOrder[i]))
  196.                         {
  197.                             if (oMsg1.oParam.aPanes && oMsg1.oParam.aPanes.length)
  198.                             {
  199.                                 for (var j=0;j<oMsg1.oParam.aPanes.length;j++)
  200.                                 {
  201.                                     if (aToolbarOrder[i] == oMsg1.oParam.aPanes[j].sPaneName)
  202.                                     {
  203.                                         aToolbarOrderNew[aToolbarOrderNew.length] = aToolbarOrder[i];
  204.                                         break;
  205.                                     }
  206.                                 }
  207.                             }
  208.                         }
  209.                         else
  210.                             aToolbarOrderNew[aToolbarOrderNew.length] = aToolbarOrder[i];
  211.                     }
  212.                     oMsg.oParam = aToolbarOrderNew.join("|");
  213.                     return false;
  214.                 }
  215.             }
  216.         }
  217.         var sParam="";
  218.         if (gsBtns!="invalid")
  219.             sParam=gsBtns+"|blankblock|banner";
  220.         else
  221.             sParam = gsToolbarOrder;
  222.  
  223.         if (gnOpts!=-1)
  224.         {
  225.             var nPosForm=sParam.indexOf("|searchform|");
  226.             if (gnOpts&PANE_OPT_SEARCH)
  227.             {
  228.                 if (nPosForm == -1 && sParam.indexOf("|fts|") != -1)
  229.                 {
  230.                     var nPos=sParam.indexOf("banner");
  231.                     if (nPos!=-1)
  232.                     {
  233.                         sParam=sParam.substring(0, nPos) + "searchform|" + sParam.substring(nPos);
  234.                     }
  235.                 }
  236.             }
  237.             else
  238.             {
  239.                 if (nPosForm!=-1)
  240.                 {
  241.                     sParam=sParam.substring(0,nPosForm) + sParam.substring(nPosForm+11);
  242.                 }
  243.             }
  244.         }
  245.         oMsg.oParam=sParam;
  246.         return false;
  247.     }
  248.     else if (nMsgId == WH_MSG_MINIBARORDER)
  249.     {
  250.         var sMinParam=gsMinibarOrder;
  251.         if (gnOpts!=-1)
  252.         {
  253.             var nPosBro=gsMinibarOrder.indexOf("avprev|avnext");
  254.             if (gnOpts&PANE_OPT_BROWSESEQ)
  255.             {
  256.                 if (nPosBro==-1)
  257.                 {
  258.                     sMinParam ="avprev|avnext|" + gsMinibarOrder;
  259.                 }
  260.             }
  261.             else
  262.             {
  263.                 if (nPosBro!=-1)
  264.                 {
  265.                     if (nPosBro!=0)
  266.                         sMinParam=gsMinibarOrder.substring(0, nPosBro) + gsMinibarOrder.substring(nPosBro+14);
  267.                     else
  268.                         sMinParam=gsMinibarOrder.substring(14);
  269.                 }
  270.             }
  271.         }
  272.         oMsg.oParam = sMinParam;
  273.         return false;
  274.     }
  275.     else if (nMsgId == WH_MSG_ISSYNCSSUPPORT)
  276.     {
  277.         if (this.cMRServer && cMRServer.m_strVersion)
  278.         {
  279.             if (cMRServer.m_bShowSync)
  280.                 oMsg.oParam=true;
  281.             else
  282.                 oMsg.oParam=false;
  283.             return false;
  284.         }
  285.         else
  286.         {
  287.             if(typeof(nViewFrameType)!="undefined")
  288.             {
  289.                 oMsg.oParam= (nViewFrameType < 3);
  290.                 return false;
  291.             }
  292.         }
  293.     }
  294.     else if (nMsgId == WH_MSG_ISAVENUESUPPORT)
  295.     {
  296.         if (this.cMRServer && cMRServer.m_strVersion)
  297.         {
  298.             if (cMRServer.m_bShowBrowseSequences)
  299.                 oMsg.oParam=true;
  300.             else
  301.                 oMsg.oParam=false;
  302.         }
  303.         else
  304.         {
  305.             oMsg.oParam=true;
  306.         }
  307.         return false;
  308.     }
  309.     else if (nMsgId == WH_MSG_ISSEARCHSUPPORT)
  310.     {
  311.         if(typeof(nViewFrameType)!="undefined")
  312.         {
  313.             oMsg.oParam= (nViewFrameType < 3);
  314.             return false;
  315.         }
  316.     }
  317.     else if (nMsgId == WH_MSG_GETPANETYPE)
  318.     {
  319.         if(typeof(nViewFrameType)!="undefined")
  320.         {
  321.             var oPaneInfo = new Object();
  322.             oPaneInfo.nType = nViewFrameType;
  323.             oPaneInfo.sPaneURL = strPane;
  324.             oMsg.oParam = oPaneInfo;
  325.             return false;
  326.         }
  327.     }
  328.     else if (nMsgId == WH_MSG_GETPANES)
  329.     {
  330.         if (this.cMRServer && cMRServer.m_strVersion)
  331.         {
  332.             var oPanes = new Object();
  333.             var aAgentNames = null;
  334.             if (cMRServer.m_strDefAgent)
  335.                 oPanes.sDefault = transferAgentNameToPaneName(cMRServer.m_strDefAgent);
  336.  
  337.             aPanes = new Array();
  338.             for(var i=0; i< cMRServer.m_cAgents.length; i++)
  339.             {
  340.                 var nCur = aPanes.length;
  341.                 aPanes[nCur] = new Object();
  342.                 aPanes[nCur].sPaneName = transferAgentNameToPaneName(cMRServer.m_cAgents[i].m_strID);
  343.                 aPanes[nCur].sPaneURL = cMRServer.m_cAgents[i].m_strURL;
  344.             }
  345.             oPanes.aPanes = aPanes;
  346.             oMsg.oParam = oPanes;
  347.             return false;
  348.         }
  349.         else
  350.         {
  351.             oMsg.oParam = null;
  352.             return false;
  353.         }
  354.     }
  355.     else if(nMsgId==WH_MSG_RELOADNS6)
  356.     {
  357.         if(gbNav6)
  358.             gnReload++;
  359.         return false;
  360.     }
  361.     else if(nMsgId==WH_MSG_GETCMD)
  362.     {
  363.         oMsg.oParam=gnCmd;
  364.         return false;
  365.     }
  366.     else if(nMsgId==WH_MSG_GETPANE)
  367.     {
  368.         if (gsBtns!="invalid" && oMsg.oParam.sName)
  369.         {
  370.             if(gsBtns.indexOf(oMsg.oParam.sName) != -1)
  371.                 oMsg.oParam.bEnable=true;
  372.             else
  373.                 oMsg.oParam.bEnable=false;
  374.         }
  375.         else
  376.             oMsg.oParam.bEnable=true;
  377.         return false;
  378.     }
  379.     else if(nMsgId==WH_MSG_GETDEFPANE)
  380.     {
  381.         if (gsDefaultBtn!="invalid")
  382.         {
  383.             oMsg.oParam=gsDefaultBtn;
  384.         }
  385.         return false;
  386.     }
  387.     return true;
  388. }
  389.  
  390. function transferANToPN2(sAN)
  391. {
  392.     if (sAN =="toc")
  393.         return "toc";
  394.     else if    (sAN =="ndx")
  395.         return "idx";
  396.     else if    (sAN =="nls")
  397.         return "fts";
  398.     else if    (sAN =="gls")
  399.         return "glo";
  400.     else if    (sAN =="WebSearch")
  401.         return "websearch";
  402.     else if (sAN.indexOf("custom_")==0);
  403.         return "custom" + sAN.substring(7);
  404.     return sAN;
  405. }
  406.  
  407. function transferAgentNameToPaneName(sAgentName)
  408. {
  409.     if (sAgentName =="toc")
  410.         return "toc";
  411.     else if    (sAgentName =="ndx")
  412.         return "idx";
  413.     else if    (sAgentName =="nls")
  414.         return "fts";
  415.     else if    (sAgentName =="gls")
  416.         return "glo";
  417.     return "";
  418. }
  419.  
  420. function isAPane(sPaneName)
  421. {
  422.     if (sPaneName == "toc" || sPaneName == "idx" || sPaneName == "fts" || sPaneName == "glo")
  423.         return true;
  424.     else
  425.         return false;
  426. }