--- /dev/null
+window.whname="wh_stub";\r
+function getframehandle(frames,framename)\r
+{\r
+ var frame=null;\r
+ if(null==frames) return null;\r
+ for(var i=0;i<frames.length;i++)\r
+ {\r
+ if(typeof(frames[i].name)!="unknown")\r
+ {\r
+ if(frames[i].name==framename)\r
+ return frames[i];\r
+ if(frames[i].frames.length>0)\r
+ frame=getframehandle(frames[i].frames,framename);\r
+ if(null!=frame)\r
+ return frame;\r
+ }\r
+ }\r
+ return frame;\r
+}\r
+\r
+function AddToArray(arr,obj)\r
+{\r
+ var bFound=false;\r
+ for(var i=0;i<arr.length;i++){\r
+ if(arr[i]==obj){\r
+ bFound=true;\r
+ break;\r
+ }\r
+ else if(arr[i]==null){\r
+ break;\r
+ }\r
+ }\r
+ if(!bFound) arr[i]=obj;\r
+}\r
+\r
+var gArrayRegistedMessage=new Array();\r
+var gArrayCompoentsArray=new Array();\r
+\r
+function GetComponentsArray(nMessageId)\r
+{\r
+ var len=gArrayRegistedMessage.length;\r
+ for(var i=0;i<len;i++)\r
+ {\r
+ if(gArrayRegistedMessage[i]==nMessageId){\r
+ if(gArrayCompoentsArray.length>i)\r
+ return gArrayCompoentsArray[i];\r
+ else\r
+ return null;\r
+ }\r
+ }\r
+ return null;\r
+}\r
+\r
+function CreateComponentsArray(nMessageId)\r
+{\r
+ var len=gArrayRegistedMessage.length;\r
+ gArrayRegistedMessage[len]=nMessageId;\r
+ gArrayCompoentsArray[len]=new Array();\r
+ return gArrayCompoentsArray[len];\r
+}\r
+\r
+function listener(sName,oWindow)\r
+{\r
+ this.sName=sName;\r
+ this.oWindow=oWindow;\r
+}\r
+\r
+function RegisterListener(windowName,nMessageId)\r
+{\r
+ var arrayComponents=GetComponentsArray(nMessageId);\r
+ if(arrayComponents==null)\r
+ arrayComponents=CreateComponentsArray(nMessageId);\r
+ \r
+ if(arrayComponents!=null)\r
+ {\r
+ for (var i=0;i<arrayComponents.length;i++)\r
+ {\r
+ if (arrayComponents[i].sName == windowName)\r
+ return false;\r
+ }\r
+ var oListener=new listener(windowName,null);\r
+ AddToArray(arrayComponents,oListener);\r
+ return true;\r
+ }\r
+ else\r
+ return false;\r
+}\r
+\r
+function RegisterListener2(oWindow,nMessageId)\r
+{\r
+ var arrayComponents=GetComponentsArray(nMessageId);\r
+ if(arrayComponents==null)\r
+ arrayComponents=CreateComponentsArray(nMessageId);\r
+ \r
+ if(arrayComponents!=null)\r
+ {\r
+ var oListener=new listener("",oWindow);\r
+ AddToArray(arrayComponents,oListener);\r
+ return true;\r
+ }\r
+ else\r
+ return false;\r
+}\r
+\r
+function UnRegisterListener2(oWindow,nMessageId)\r
+{\r
+ var arrayComponents=GetComponentsArray(nMessageId);\r
+ if(arrayComponents!=null)\r
+ {\r
+ for(var i=0;i<arrayComponents.length;i++)\r
+ {\r
+ if(arrayComponents[i].oWindow==oWindow)\r
+ {\r
+ removeItemFromArray(arrayComponents,i);\r
+ return true;\r
+ }\r
+ }\r
+ }\r
+ else\r
+ return false;\r
+}\r
+\r
+function SendMessage(oMessage)\r
+{\r
+ var bDelivered=false;\r
+ var arrayComponents=GetComponentsArray(oMessage.nMessageId);\r
+ if(arrayComponents!=null&&arrayComponents.length>0){\r
+ for(var i=0;i<arrayComponents.length;i++)\r
+ {\r
+ if(null!=arrayComponents[i])\r
+ {\r
+ var pFrame;\r
+ if(arrayComponents[i].oWindow==null)\r
+ pFrame=getframehandle(frames,arrayComponents[i].sName);\r
+ else\r
+ pFrame=arrayComponents[i].oWindow;\r
+ if(null!=pFrame)\r
+ {\r
+ if(pFrame.onSendMessageX)\r
+ {\r
+ bDelivered=true;\r
+ if(!pFrame.onSendMessageX(oMessage))\r
+ break;\r
+ }\r
+ if(pFrame.onSendMessage)\r
+ {\r
+ bDelivered=true;\r
+ if(!pFrame.onSendMessage(oMessage))\r
+ break;\r
+ }\r
+ }\r
+ }\r
+ }\r
+ }\r
+ return bDelivered;\r
+}
\ No newline at end of file