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

  1. //    WebHelp 5.10.001
  2. window.whname="wh_stub";
  3. function getframehandle(frames,framename)
  4. {
  5.     var frame=null;
  6.     if(null==frames) return null;
  7.     for(var i=0;i<frames.length;i++)
  8.     {
  9.         if(typeof(frames[i].name)!="unknown")
  10.         {
  11.             if(frames[i].name==framename)
  12.                 return frames[i];
  13.             if(frames[i].frames.length>0)
  14.                 frame=getframehandle(frames[i].frames,framename);
  15.                 if(null!=frame)
  16.                     return frame;
  17.         }
  18.     }
  19.     return frame;
  20. }
  21.  
  22. function AddToArray(arr,obj)
  23. {
  24.     var bFound=false;
  25.     for(var i=0;i<arr.length;i++){
  26.         if(arr[i]==obj){
  27.             bFound=true;
  28.             break;
  29.         }
  30.         else if(arr[i]==null){
  31.             break;
  32.         }
  33.     }
  34.     if(!bFound) arr[i]=obj;
  35. }
  36.  
  37. var gArrayRegistedMessage=new Array();
  38. var gArrayCompoentsArray=new Array();
  39.  
  40. function GetComponentsArray(nMessageId)
  41. {
  42.     var len=gArrayRegistedMessage.length;
  43.     for(var i=0;i<len;i++)
  44.     {
  45.         if(gArrayRegistedMessage[i]==nMessageId){
  46.             if(gArrayCompoentsArray.length>i)
  47.                 return gArrayCompoentsArray[i];
  48.             else
  49.                 return null;
  50.         }
  51.     }
  52.     return null;
  53. }
  54.  
  55. function CreateComponentsArray(nMessageId)
  56. {
  57.     var len=gArrayRegistedMessage.length;
  58.     gArrayRegistedMessage[len]=nMessageId;
  59.     gArrayCompoentsArray[len]=new Array();
  60.     return gArrayCompoentsArray[len];
  61. }
  62.  
  63. function listener(sName,oWindow)
  64. {
  65.     this.sName=sName;
  66.     this.oWindow=oWindow;
  67. }
  68.  
  69. function RegisterListener(windowName,nMessageId)
  70. {
  71.     var arrayComponents=GetComponentsArray(nMessageId);
  72.     if(arrayComponents==null)
  73.         arrayComponents=CreateComponentsArray(nMessageId);
  74.     
  75.     if(arrayComponents!=null)
  76.     {
  77.         for (var i=0;i<arrayComponents.length;i++)
  78.         {
  79.             if (arrayComponents[i].sName == windowName)
  80.                 return false;
  81.         }
  82.         var oListener=new listener(windowName,null);
  83.         AddToArray(arrayComponents,oListener);
  84.         return true;
  85.     }
  86.     else
  87.         return false;
  88. }
  89.  
  90. function RegisterListener2(oWindow,nMessageId)
  91. {
  92.     var arrayComponents=GetComponentsArray(nMessageId);
  93.     if(arrayComponents==null)
  94.         arrayComponents=CreateComponentsArray(nMessageId);
  95.     
  96.     if(arrayComponents!=null)
  97.     {
  98.         var oListener=new listener("",oWindow);
  99.         AddToArray(arrayComponents,oListener);
  100.         return true;
  101.     }
  102.     else
  103.         return false;
  104. }
  105.  
  106. function UnRegisterListener2(oWindow,nMessageId)
  107. {
  108.     var arrayComponents=GetComponentsArray(nMessageId);
  109.     if(arrayComponents!=null)
  110.     {
  111.         for(var i=0;i<arrayComponents.length;i++)
  112.         {
  113.             if(arrayComponents[i].oWindow==oWindow)
  114.             {
  115.                 removeItemFromArray(arrayComponents,i);
  116.                 return true;
  117.             }
  118.         }
  119.     }
  120.     else
  121.         return false;
  122. }
  123.  
  124. function SendMessage(oMessage)
  125. {
  126.     var bDelivered=false;
  127.     var arrayComponents=GetComponentsArray(oMessage.nMessageId);
  128.     if(arrayComponents!=null&&arrayComponents.length>0){
  129.         for(var i=0;i<arrayComponents.length;i++)
  130.         {
  131.             if(null!=arrayComponents[i])
  132.             {
  133.                 var pFrame;
  134.                 if(arrayComponents[i].oWindow==null)
  135.                     pFrame=getframehandle(frames,arrayComponents[i].sName);
  136.                 else
  137.                     pFrame=arrayComponents[i].oWindow;
  138.                 if(null!=pFrame)
  139.                 {
  140.                     if(pFrame.onSendMessageX)
  141.                     {
  142.                         bDelivered=true;
  143.                         if(!pFrame.onSendMessageX(oMessage))
  144.                             break;
  145.                     }
  146.                     if(pFrame.onSendMessage)
  147.                     {
  148.                         bDelivered=true;
  149.                         if(!pFrame.onSendMessage(oMessage))
  150.                             break;
  151.                     }
  152.                 }
  153.             }
  154.         }
  155.     }
  156.     return bDelivered;
  157. }