Salome HOME
DCQ : Merge with Ecole_Ete_a6.
[modules/smesh.git] / doc / salome / gui / SMESH / whphost.js
diff --git a/doc/salome/gui/SMESH/whphost.js b/doc/salome/gui/SMESH/whphost.js
new file mode 100755 (executable)
index 0000000..d4c80bb
--- /dev/null
@@ -0,0 +1,526 @@
+var gaProj=new Array();\r
+var gnChecked=0;\r
+var gsProjName="";\r
+var gbReady=false;\r
+var goMan=null;\r
+var gbXML=false;\r
+var gsFirstPane="";\r
+var gServerEnabled=false;\r
+var gsPath="";\r
+var gbWhPHost=false;\r
+var goDiv = null;\r
+var gsHTML = "";\r
+\r
+if (navigator.currentNavPen)\r
+       gsFirstPane = navigator.currentNavPen;\r
+\r
+\r
+function delayLoad()\r
+{\r
+       if (goDiv&&gsHTML)\r
+       {\r
+               goDiv.innerHTML=gsHTML;\r
+               goDiv=null;\r
+               gsHTML="";\r
+       }\r
+}\r
+\r
+function whCom(sName,sComFile)\r
+{\r
+       this.msName=sName;\r
+       this.msDivId=sName+"Div";\r
+       this.msIFrameId=sName+"IFrame";\r
+       this.msComFile=sComFile;\r
+       this.mbloaded=false;\r
+       this.mbShow=false;\r
+       this.show=function(bShow)\r
+       {\r
+               if(this.mbShow!=bShow)\r
+               {\r
+                       if(bShow&&!this.mbloaded)\r
+                       {\r
+                               this.load();\r
+                       }\r
+\r
+                       var oDiv=getElement(this.msDivId);\r
+                       if(oDiv)\r
+                       {\r
+                               if(gbIE55||(gbIE5&&gbMac))\r
+                               {\r
+                                       var oIframe=getElement(this.msIFrameId);\r
+                                       if(oIframe)\r
+                                       {\r
+                                               if(bShow)\r
+                                               {\r
+                                                       oDiv.style.zIndex=3;\r
+                                                       if(oIframe!=null)\r
+                                                       {\r
+                                                               oIframe.style.zIndex=3;\r
+                                                               if (!gbIE55)\r
+                                                                       oIframe.style.visibility="visible";\r
+                                                       }\r
+                                               }\r
+                                               else\r
+                                               {\r
+                                                       oDiv.style.zIndex=2;\r
+                                                       if(oIframe!=null)\r
+                                                       {\r
+                                                               oIframe.style.zIndex=2;\r
+                                                               if (!gbIE55)\r
+                                                                       oIframe.style.visibility="hidden";\r
+                                                       }\r
+                                               }\r
+                                       }\r
+                               }\r
+                               if (!gbIE55)\r
+                                       oDiv.style.visibility=(bShow==true)?'visible':'hidden';\r
+                               this.mbShow=bShow;\r
+                       }\r
+\r
+               }\r
+       }\r
+       this.load=function()\r
+       {\r
+               if(!this.mbloaded)\r
+               {\r
+                       if(this.msComFile.length>0){\r
+                               var strFile= _getFullPath(getPath(), this.msComFile);\r
+                               var oDiv=getElement(this.msDivId);\r
+                               if(oDiv){\r
+                                       if(gbIE4){\r
+                                               var nIFrameHeight=oDiv.style.pixelHeight;\r
+                                               var nIFrameWidth=oDiv.style.pixelWidth;\r
+                                               var sHTML="<IFRAME ID="+this.msIFrameId+" title=\"" + this.msName + "\" SRC=\""+strFile+"\" BORDER=0 FRAMEBORDER=no STYLE=\"width:";\r
+                                               if(gbMac){\r
+                                                       sHTML+=nIFrameWidth+"px;height:"+nIFrameHeight+"px;\"></IFRAME>";\r
+                                               }else{\r
+                                                       sHTML+="100%; height:100%;\"></IFRAME>";\r
+                                               }\r
+                                               oDiv.innerHTML=sHTML;\r
+                                       }else if(gbNav6){\r
+                                               gsHTML="<IFRAME ID="+this.msIFrameId+" title=\"" + this.msName + "\" SRC=\""+strFile+"\" BORDER=0 FRAMEBORDER=no STYLE=\"width:100%;border:0;height:";\r
+                                               gsHTML+="100%;\"></IFRAME>";\r
+                                               goDiv = oDiv;\r
+                                               setTimeout("delayLoad()", 100);\r
+                                       }\r
+                                       this.mbloaded=true;\r
+                               }\r
+                       }\r
+               }\r
+       }\r
+       this.unload=function()\r
+       {\r
+               var oDiv=getElement(this.msDivId);\r
+               if(oDiv)\r
+                       oDiv.innerHTML="";\r
+       }\r
+       this.getDivHTML=function()\r
+       {\r
+               var sHTML="";\r
+               if(gbMac&&gbIE4)\r
+                       sHTML+="<DIV ID="+this.msDivId+" ALIGN=left STYLE=\"position:absolute;z-index:1;left:0;top:0;width:100%;height:100%;margin:0;padding:0;border:0;\">";\r
+               else\r
+                       if (gbIE5)\r
+                               sHTML+="<DIV ID="+this.msDivId+" ALIGN=left STYLE=\"position:absolute;z-index:1;left:0;top:0;width:100%;height:100%;\">";\r
+                       else\r
+                               sHTML+="<DIV ID="+this.msDivId+" ALIGN=left STYLE=\"position:absolute;z-index:1;left:0;top:0;width:100%;height:100%;visibility:hidden\">";\r
+               sHTML+="</DIV>";\r
+               return sHTML;\r
+       }\r
+}  \r
+\r
+function whComMan()\r
+{\r
+       this.sName="";\r
+       this.maCom=new Array();\r
+       this.addCom=function(sName,sComFile)\r
+       {\r
+               var owhCom=new whCom(sName,sComFile);\r
+               this.maCom[this.maCom.length]=owhCom;\r
+       }\r
+       this.init=function()\r
+       {\r
+               var sHTML="";\r
+               for(var i=0;i<this.maCom.length;i++)\r
+               {\r
+                       sHTML+=this.maCom[i].getDivHTML();\r
+               }\r
+               document.body.insertAdjacentHTML("beforeEnd",sHTML);\r
+\r
+       }\r
+       this.showById=function(nId)\r
+       {\r
+               for(var s=0;s<this.maCom.length;s++)\r
+               {\r
+                       if(s!==nId)\r
+                               this.maCom[s].show(false);\r
+               }\r
+               this.maCom[nId].show(true);\r
+       }\r
+       this.show=function(sName)\r
+       {\r
+               navigator.currentNavPen = sName;\r
+               var bFound=false;\r
+               for(var i=0;i<this.maCom.length;i++)\r
+               {\r
+                       if(sName==this.maCom[i].msName)\r
+                       {\r
+                               bFound=true;\r
+                               break;\r
+                       }\r
+               }\r
+               if(bFound)\r
+               {\r
+                       this.showById(i);\r
+                       this.sName=sName;\r
+               }\r
+       }\r
+       this.unload=function()\r
+       {\r
+               for(var i=0;i<this.maCom.length;i++)\r
+               {\r
+                       this.maCom[i].unload();\r
+               }               \r
+       }\r
+       this.getCurrent=function()\r
+       {\r
+               return this.sName;\r
+       }\r
+}\r
+\r
+function getPath()\r
+{\r
+       if(gsPath=="")\r
+       {\r
+               gsPath=location.href;\r
+               gsPath=_replaceSlash(gsPath);\r
+               var nPosFile=gsPath.lastIndexOf("/");\r
+               gsPath=gsPath.substring(0,nPosFile+1);\r
+       }\r
+       return gsPath;\r
+}\r
+\r
+goMan=new whComMan();\r
+function addPane(sName,sFileName)\r
+{\r
+       goMan.addCom(sName,sFileName);  \r
+}\r
+\r
+function setShowPane(sName, bForce)\r
+{\r
+       if ((gsFirstPane == "") || bForce)\r
+               gsFirstPane=sName;\r
+}\r
+\r
+function window_OnLoad()\r
+{\r
+       if(gsProjName!="")\r
+       {\r
+               goMan.init();\r
+               if(gsFirstPane!="")\r
+                       goMan.show(gsFirstPane);\r
+               else\r
+                       goMan.showById(0);\r
+               loadData2(gsProjName);\r
+       }\r
+       else if (gServerEnabled)\r
+       {\r
+               goMan.init();\r
+               if(gsFirstPane!="")\r
+                       goMan.show(gsFirstPane);\r
+               else\r
+                       goMan.showById(0);\r
+       }\r
+}\r
+\r
+function setServerEnabled()\r
+{\r
+       gServerEnabled = true;\r
+}\r
+\r
+function loadData2(strFile)\r
+{\r
+       if(gbXML)\r
+               loadDataXML(strFile);\r
+       else\r
+               loadData(strFile);\r
+}\r
+\r
+function addProject(bPreferXML,sXMLName,sHTMLName)\r
+{\r
+       var bLoadXML=bPreferXML;\r
+       if(!gbIE4&&!gbNav6)\r
+               return;\r
+       if(gbIE4&&!gbIE5)\r
+               bLoadXML=false;\r
+       if (gbIE5&&!gbMac)\r
+               bLoadXML=true;\r
+       if(gbIE55||gbNav6)\r
+               bLoadXML=true;\r
+       if(bLoadXML)\r
+               addProjectXML(sXMLName);\r
+       else\r
+               addProjectHTML(sHTMLName);\r
+}\r
+\r
+function addProjectHTML(sName)\r
+{\r
+       gbXML=false;\r
+       gsProjName=sName;\r
+}\r
+\r
+function addProjectXML(sName)\r
+{\r
+       gbXML=true;\r
+       gsProjName=sName;\r
+}\r
+\r
+function window_MyBunload()\r
+{\r
+       goMan.unload();\r
+       window_BUnload();\r
+}\r
+\r
+function putDataXML(xmlDoc,sdocPath)\r
+{\r
+       if(xmlDoc!=null)\r
+       {\r
+               var projectNode=xmlDoc.getElementsByTagName("project")[0];\r
+               if(projectNode)\r
+               {\r
+                       var aRProj=new Array();\r
+                       aRProj[0]=new Object();\r
+                       aRProj[0].sPPath=_getPath(sdocPath);\r
+                       var sLangId=projectNode.getAttribute("langid");\r
+                       if(sLangId)\r
+                       {\r
+                               aRProj[0].sLangId=sLangId;\r
+                       }\r
+                       var sDPath=projectNode.getAttribute("datapath");\r
+                       if(sDPath)\r
+                       {\r
+                               if(sDPath.lastIndexOf("/")!=sDPath.length-1)\r
+                                       sDPath+="/";\r
+                               aRProj[0].sDPath=sDPath;\r
+                       }\r
+                       else\r
+                               aRProj[0].sDPath="";\r
+                       aRProj[0].sToc=projectNode.getAttribute("toc");\r
+                       aRProj[0].sIdx=projectNode.getAttribute("index");\r
+                       aRProj[0].sFts=projectNode.getAttribute("fts");\r
+                       aRProj[0].sGlo=projectNode.getAttribute("glossary");\r
+                       var RmtProject=projectNode.getElementsByTagName("remote");\r
+                       var nCount=1;\r
+                       for (var i=0;i<RmtProject.length;i++)\r
+                       {\r
+                               var sURL=RmtProject[i].getAttribute("url");\r
+                               if(sURL)\r
+                               {\r
+                                       aRProj[nCount]=new Object();\r
+                                       aRProj[nCount++].sPPath=_getFullPath(aRProj[0].sPPath,sURL);\r
+                               }\r
+                       }\r
+                       putProjectInfo(aRProj);\r
+               }\r
+               else\r
+               {\r
+                       // on Netscape 6.0 under some situation the xml file cannot be loaded.\r
+                       // so we use pure html instead.\r
+                       setTimeout("redirectToList();",100);\r
+               }\r
+       }\r
+}\r
+\r
+function redirectToList()\r
+{\r
+       if(gbReDirectThis)\r
+               document.location=gsNavReDirect;\r
+       else\r
+               parent.document.location=gsNavReDirect;\r
+}\r
+\r
+function putProjectInfo(aRProj)\r
+{\r
+       if(gnChecked==0||isSamePath(gaProj[gnChecked].sPPath,aRProj[0].sPPath))\r
+       {\r
+               if(gnChecked!=0)\r
+               {\r
+                       if(aRProj[0].sLangId!=gaProj[0].sLangId)\r
+                               alert("The project: "+aRProj[0].sPPath+" is using a different language to the main project, which will cause the index and full text search functionality to be disabled for this remote project.");\r
+               }\r
+               gaProj[gnChecked]=aRProj[0];\r
+               for(var i=1;i<aRProj.length;i++)\r
+               {\r
+                       var bFound=false;\r
+                       for(var j=0;j<gaProj.length;j++)\r
+                       {\r
+                               if(isSamePath(gaProj[j].sPPath,aRProj[i].sPPath))\r
+                               {\r
+                                       bFound=true;\r
+                                       break;\r
+                               }\r
+                       }\r
+                       if(!bFound)\r
+                       {\r
+                               gaProj[gaProj.length]=aRProj[i];\r
+                       }\r
+               }\r
+               gnChecked++;\r
+               checkRemoteProject();\r
+       }\r
+       else\r
+               alert("Could not load correctly, please click Refresh.");\r
+}\r
+\r
+function isSamePath(sPath1,sPath2)\r
+{\r
+       return (sPath1.toLowerCase()==sPath2.toLowerCase());\r
+}\r
+\r
+function checkRemoteProject()\r
+{\r
+       if(gaProj.length!=gnChecked)\r
+       {\r
+               setTimeout("cancelProj("+gnChecked+");",10000);\r
+               loadData2(gaProj[gnChecked].sPPath+gsProjName);\r
+       }\r
+       else{\r
+               var oMsg=new whMessage(WH_MSG_PROJECTREADY,this,1,null);\r
+               gbReady=true;\r
+               SendMessage(oMsg);\r
+       }\r
+}\r
+\r
+function cancelProj(i)\r
+{\r
+       if(i==gnChecked)\r
+       {\r
+               alert("Can't load project::"+gaProj[i].sPPath);\r
+               gnChecked++;\r
+               checkRemoteProject();\r
+       }       \r
+}\r
+\r
+function window_resize()\r
+{\r
+       for(var i=0;i<goMan.maCom.length;i++)\r
+       {\r
+               var oFrame=getElement(goMan.maCom[i].msIFrameId);\r
+               if(oFrame)\r
+               {\r
+                       oFrame.style.height=document.body.clientHeight;\r
+                       oFrame.style.width=document.body.clientWidth;\r
+               }\r
+       }\r
+       window_resize2();\r
+}\r
+\r
+function window_resize2()\r
+{\r
+       if(document.body)\r
+       {\r
+               if(document.body.clientWidth > 1 && document.body.clientHeight>1)\r
+               {\r
+                       var oMsg = new whMessage(WH_MSG_RESIZEPANE, this, 1, null);\r
+                       SendMessage(oMsg);\r
+               }\r
+       }\r
+}\r
+\r
+function window_unload()\r
+{\r
+       UnRegisterListener2(this,WH_MSG_GETPROJINFO);\r
+       UnRegisterListener2(this,WH_MSG_SHOWTOC);\r
+       UnRegisterListener2(this,WH_MSG_SHOWIDX);\r
+       UnRegisterListener2(this,WH_MSG_SHOWFTS);\r
+       UnRegisterListener2(this,WH_MSG_SHOWGLO);\r
+       UnRegisterListener2(this,WH_MSG_GETPANEINFO);\r
+}\r
+\r
+function onSendMessage(oMsg)\r
+{\r
+       if(oMsg)\r
+       {\r
+               var nMsgId=oMsg.nMessageId;\r
+               if(nMsgId==WH_MSG_GETPROJINFO)\r
+               {\r
+                       if(gbReady)\r
+                       {\r
+                               var oProj=new Object();\r
+                               oProj.aProj=gaProj;\r
+                               oProj.bXML=gbXML;\r
+                               oMsg.oParam=oProj;\r
+                       }\r
+                       else\r
+                               return false;\r
+               }\r
+               else if(nMsgId==WH_MSG_SHOWTOC)\r
+               {\r
+                       if(goMan)\r
+                               goMan.show("toc");\r
+                       var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "toc");\r
+                       SendMessage(onMsg);\r
+                       onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);\r
+                       SendMessage(onMsg);\r
+               }\r
+               else if(nMsgId==WH_MSG_SHOWIDX)\r
+               {\r
+                       if(goMan)\r
+                               goMan.show("idx");\r
+                       var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "idx");\r
+                       SendMessage(onMsg);\r
+                       onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);\r
+                       SendMessage(onMsg);\r
+               }\r
+               else if(nMsgId==WH_MSG_SHOWFTS)\r
+               {\r
+                       if(goMan)\r
+                               goMan.show("fts");\r
+                       var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "fts");\r
+                       SendMessage(onMsg);\r
+                       onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);\r
+                       SendMessage(onMsg);\r
+               }\r
+               else if(nMsgId==WH_MSG_SHOWGLO)\r
+               {\r
+                       if(goMan)\r
+                               goMan.show("glo");\r
+                       var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "glo");\r
+                       SendMessage(onMsg);\r
+                       onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);\r
+                       SendMessage(onMsg);\r
+               }\r
+               else if(nMsgId==WH_MSG_GETPANEINFO)\r
+               {\r
+                       oMsg.oParam=goMan.getCurrent();\r
+                       return false;\r
+               }\r
+       }\r
+       return true;\r
+}\r
+\r
+if(window.gbWhUtil&&window.gbWhMsg&&window.gbWhVer&&window.gbWhProxy)\r
+{\r
+       RegisterListener2(this,WH_MSG_GETPROJINFO);\r
+       RegisterListener2(this,WH_MSG_SHOWTOC);\r
+       RegisterListener2(this,WH_MSG_SHOWIDX);\r
+       RegisterListener2(this,WH_MSG_SHOWFTS);\r
+       RegisterListener2(this,WH_MSG_SHOWGLO);\r
+       RegisterListener2(this,WH_MSG_GETPANEINFO);\r
+\r
+       if((gbMac&&gbIE4)||(gbSunOS&&gbIE5))\r
+       {\r
+               window.onresize=window_resize;\r
+       }\r
+       else if(gbIE4)\r
+       {\r
+               window.onresize=window_resize2;\r
+       }\r
+       window.onload=window_OnLoad;\r
+       window.onbeforeunload=window_MyBunload;\r
+       window.onunload=window_unload;\r
+       gbWhPHost=true;\r
+}\r
+else\r
+       document.location.reload();\r
+\r