Salome HOME
DCQ : Merge with Ecole_Ete_a6.
[modules/smesh.git] / doc / salome / gui / SMESH / whtopic.js
diff --git a/doc/salome/gui/SMESH/whtopic.js b/doc/salome/gui/SMESH/whtopic.js
new file mode 100755 (executable)
index 0000000..3adaa25
--- /dev/null
@@ -0,0 +1,662 @@
+var gsPPath = "";\r
+var gaPaths = new Array();\r
+var gaAvenues = new Array();\r
+\r
+var goFrame = null;\r
+var gsStartPage = "";\r
+var gsRelCurPagePath = "";\r
+var gsSearchFormHref  = "";\r
+var gnTopicOnly = -1;\r
+var gnOutmostTopic = -1;\r
+\r
+var BTN_TEXT=1;\r
+var BTN_IMG=2;\r
+\r
+var goSync = null;\r
+\r
+var goShow = null;\r
+var goHide = null;\r
+\r
+var goPrev = null;\r
+var goNext = null;\r
+var gnForm = 0;\r
+var goShowNav = null;\r
+var goHideNav = null;\r
+\r
+var goWebSearch = null;\r
+\r
+var gsBtnStyle = "";\r
+var gaButtons = new Array();\r
+var gaTypes = new Array();\r
+var whtopic_foldUnload = null;\r
+var gbWhTopic=false;\r
+var gbCheckSync=false;\r
+var gbSyncEnabled=false;\r
+\r
+function setButtonFont(sType, sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)\r
+{\r
+       var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);\r
+       gsBtnStyle += ".whtbtn" + sType + "{"+getFontStyle(vFont) + "}";\r
+}\r
+\r
+function writeBtnStyle()\r
+{\r
+       if (gaButtons.length > 0)\r
+       {\r
+               if (gsBtnStyle.length > 0)\r
+               {\r
+                       var sStyle = "<style type='text/css'>";\r
+                       sStyle+= gsBtnStyle + "</style>";\r
+                       document.write(sStyle);\r
+               }\r
+       }\r
+}\r
+\r
+function button(sText, nWidth, nHeight)\r
+{\r
+       this.sText = sText;\r
+       this.nWidth = nWidth;\r
+       this.nHeight = nHeight;\r
+       \r
+       this.aImgs = new Array();\r
+       var i = 0;\r
+       while (button.arguments.length > i + 3)\r
+       {\r
+               this.aImgs[i] = button.arguments[3 + i];\r
+               i ++;\r
+       }\r
+}\r
+\r
+// project info\r
+function setRelStartPage(sPath)\r
+{\r
+       if (gsPPath.length == 0)\r
+       {\r
+               gsPPath = _getFullPath(_getPath(document.location.href),  _getPath(sPath));\r
+               gsStartPage = _getFullPath(_getPath(document.location.href), sPath);\r
+               gsRelCurPagePath = _getRelativeFileName(gsStartPage, document.location.href);\r
+       }\r
+}\r
+\r
+function getImage(oImage, sType)\r
+{\r
+       var sImg="";\r
+       if (oImage && oImage.aImgs && (oImage.aImgs.length > 0))\r
+       {\r
+               sImg+="<img alt=\""+ sType + "\" src=\"" + oImage.aImgs[0] + "\"";\r
+               if (oImage.nWidth > 0)\r
+                       sImg+=" width=" + oImage.nWidth;\r
+               if (oImage.nHeight > 0)\r
+                       sImg+=" height=" + oImage.nHeight;\r
+               sImg+=" border=no>";\r
+       }\r
+       return sImg;\r
+}\r
+\r
+function addTocInfo(sTocPath)\r
+{\r
+       gaPaths[gaPaths.length] = sTocPath;\r
+}\r
+\r
+function addAvenueInfo(sName, sPrev, sNext)\r
+{\r
+       gaAvenues[gaAvenues.length] = new avenueInfo(sName, sPrev, sNext);      \r
+}\r
+\r
+function addButton(sType, nStyle, sText, sHref, sOnClick, sOnMouseOver, sOnLoad, nWidth, nHeight, sImg1, sImg2, sImg3)\r
+{\r
+       var sButton = "";\r
+       var nBtn=gaButtons.length;\r
+       if (sType == "prev")\r
+       {\r
+               if (canGo(false))\r
+               {\r
+                       var sTitle = "Previous Topic";\r
+                       goPrev = new button(sText, nWidth, nHeight, sImg1, sImg2, sImg3);\r
+                       sButton = "<a title=\"" + sTitle + "\" class=\"whtbtnprev\" href=\"javascript:void(0);\" onclick=\"goAvenue(false);return false;\">";\r
+                       if (nStyle == BTN_TEXT)\r
+                               sButton += goPrev.sText;\r
+                       else\r
+                               sButton += getImage(goPrev, sTitle);\r
+                       sButton += "</a>";\r
+               }\r
+       }\r
+       else if (sType == "next")\r
+       {\r
+               if (canGo(true))\r
+               {\r
+                       var sTitle = "Next Topic";\r
+                       goNext = new button(sText, nWidth, nHeight, sImg1, sImg2, sImg3);\r
+                       sButton = "<a title=\"" + sTitle + "\" class=\"whtbtnnext\" href=\"javascript:void(0);\" onclick=\"goAvenue(true);return false;\">";\r
+                       if (nStyle == BTN_TEXT)\r
+                               sButton += goNext.sText;\r
+                       else\r
+                               sButton += getImage(goNext, sTitle);\r
+                       sButton += "</a>";\r
+               }\r
+       }\r
+       else if (sType == "show")\r
+       {\r
+               if (isTopicOnly())\r
+               {\r
+                       var sTitle = "Show Navigation Component";\r
+                       goShow = new button(sText, nWidth, nHeight, sImg1, sImg2, sImg3);\r
+                       sButton = "<a title=\"" + sTitle + "\" class=\"whtbtnshow\" href=\"javascript:void(0);\" onclick=\"show();return false;\">";\r
+                       if (nStyle == BTN_TEXT)\r
+                               sButton += goShow.sText;\r
+                       else\r
+                               sButton += getImage(goShow, sTitle);\r
+                       sButton += "</a>";\r
+               }\r
+       }\r
+       else if (sType == "hide")\r
+       {\r
+               if (!isTopicOnly())\r
+               {\r
+                       var sTitle = "Hide Navigation Component";\r
+                       goHide = new button(sText, nWidth, nHeight, sImg1, sImg2, sImg3);\r
+                       sButton = "<a title=\"" + sTitle + "\" class=\"whtbtnhide\" href=\"javascript:void(0);\" onclick=\"hide();return false;\">";\r
+                       if (nStyle == BTN_TEXT)\r
+                               sButton += goHide.sText;\r
+                       else\r
+                               sButton += getImage(goHide, sTitle);\r
+                       sButton += "</a>";\r
+               }\r
+       }\r
+       else if (sType == "shownav")\r
+       {\r
+               \r
+               if (isShowHideEnable())\r
+               {\r
+                       var sTitle = "Show Navigation Component";\r
+                       goShowNav = new button(sText, nWidth, nHeight, sImg1, sImg2, sImg3);\r
+                       sButton = "<a title=\"" + sTitle + "\" class=\"whtbtnshownav\" href=\"javascript:void(0);\" onclick=\"showHidePane(true);return false;\">";\r
+                       if (nStyle == BTN_TEXT)\r
+                               sButton += goShowNav.sText;\r
+                       else\r
+                               sButton += getImage(goShowNav, sTitle);\r
+                       sButton += "</a>";\r
+               }\r
+       }\r
+       else if (sType == "hidenav")\r
+       {\r
+               if (isShowHideEnable())\r
+               {\r
+                       var sTitle = "Hide Navigation Component";\r
+                       goHideNav = new button(sText, nWidth, nHeight, sImg1, sImg2, sImg3);\r
+                       sButton = "<a title=\"" + sTitle + "\" class=\"whtbtnhidenav\" href=\"javascript:void(0);\" onclick=\"showHidePane(false);return false;\">";\r
+                       if (nStyle == BTN_TEXT)\r
+                               sButton += goHideNav.sText;\r
+                       else\r
+                               sButton += getImage(goHideNav, sTitle);\r
+                       sButton += "</a>";\r
+               }\r
+       }\r
+       else if (sType == "synctoc")\r
+       {\r
+               if (gaPaths.length > 0)\r
+               {\r
+                       var sTitle = "Sync TOC";\r
+                       goSync = new button(sText, nWidth, nHeight, sImg1, sImg2, sImg3);\r
+                       sButton = "<a title=\""+ sTitle + "\" class=\"whtbtnsynctoc\" href=\"javascript:void(0);\" onclick=\"syncWithShow();return false;\">";\r
+                       if (nStyle == BTN_TEXT)\r
+                               sButton += goSync.sText;\r
+                       else\r
+                               sButton += getImage(goSync, sTitle);\r
+                       sButton += "</a>";\r
+               }\r
+       }\r
+       else if (sType == "websearch")\r
+       {\r
+               if (gsSearchFormHref.length > 0)\r
+               {\r
+                       var sTitle = "WebSearch";\r
+                       goWebSearch = new button(sText, nWidth, nHeight, sImg1, sImg2, sImg3);\r
+                       sButton = "<a title=\""+ sTitle + "\" class=\"whtbtnwebsearch\" href=\"" + gsSearchFormHref + "\">";\r
+                       if (nStyle == BTN_TEXT)\r
+                               sButton += goWebSearch.sText;\r
+                       else\r
+                               sButton += getImage(goWebSearch, sTitle);\r
+                       sButton += "</a>";\r
+               }\r
+       }\r
+       else if (sType == "searchform")\r
+       {\r
+               gaButtons[nBtn] = "NeedSearchForm";\r
+               gaTypes[nBtn] = sType;\r
+       }\r
+       if (sButton.length != 0)\r
+       {\r
+               if (nStyle == BTN_TEXT)\r
+                       sButton += "&nbsp;";\r
+               gaButtons[nBtn] = "<td>" + sButton + "</td>";\r
+               gaTypes[nBtn] = sType;\r
+       }\r
+}\r
+\r
+function isSyncEnabled()\r
+{\r
+       if (!gbCheckSync)\r
+       {\r
+               var oMsg=new whMessage(WH_MSG_ISSYNCSSUPPORT,this,1,null);\r
+               if(SendMessage(oMsg))\r
+               {\r
+                       gbSyncEnabled=oMsg.oParam;\r
+               }\r
+               gbCheckSync=true;\r
+       }\r
+       return gbSyncEnabled;\r
+}\r
+\r
+function isInPopup()\r
+{\r
+       return (window.name.indexOf("BSSCPopup") != -1);\r
+}\r
+\r
+function getIntopicBar(sAlign)\r
+{\r
+       var sHTML = "";\r
+       if (gaButtons.length > 0)\r
+       {\r
+               sHTML += "<div align="+ sAlign + ">";\r
+\r
+               sHTML += "<table cellpadding=\"2\" cellspacing=\"0\" border=\"0\"><tr>";\r
+               for (var i = 0; i < gaButtons.length; i++)\r
+               {\r
+                       if (gaTypes[i]!="synctoc" || isSyncEnabled())\r
+                       {\r
+                               if (gaButtons[i] == "NeedSearchForm")\r
+                                       sHTML += getSearchFormHTML();\r
+                               else\r
+                                       sHTML += gaButtons[i];\r
+                       }\r
+               }\r
+               sHTML += "</tr></table>";\r
+\r
+               sHTML += "</div>";\r
+       }\r
+       return sHTML;\r
+}\r
+\r
+\r
+function writeIntopicBar(nAligns)\r
+{\r
+       if (isInPopup()) return;\r
+       if (gaButtons.length > 0)\r
+       {\r
+               var sHTML = "";\r
+               if (nAligns != 0)\r
+               {\r
+                       sHTML += "<table width=100%><tr>"\r
+                       if (nAligns & 1)\r
+                               sHTML += "<td width=33%>" + getIntopicBar("left") + "</td>";\r
+                       if (nAligns & 2)\r
+                               sHTML += "<td width=34%>" + getIntopicBar("center") + "</td>";\r
+                       if (nAligns & 4)\r
+                               sHTML += "<td width=33%>" + getIntopicBar("right") + "</td>";\r
+                       sHTML += "</tr></table>";\r
+                       document.write(sHTML);\r
+               }\r
+       }\r
+}\r
+\r
+function sendAveInfoOut()\r
+{\r
+       if (!isInPopup())\r
+               setTimeout("sendAveInfo();", 100);\r
+}\r
+\r
+function sendAveInfo()\r
+{\r
+       var oMsg = new whMessage(WH_MSG_AVENUEINFO, this, 1, gaAvenues);\r
+       SendMessage(oMsg);\r
+}\r
+\r
+\r
+function onNext()\r
+{\r
+       var oMsg = new whMessage(WH_MSG_NEXT, this, 1, null);\r
+       SendMessage(oMsg);\r
+}\r
+\r
+function onPrev()\r
+{\r
+       var oMsg = new whMessage(WH_MSG_PREV, this, 1, null);\r
+       SendMessage(oMsg);\r
+}\r
+\r
+function createSyncInfo()\r
+{\r
+       var oParam = new Object();\r
+       if (gsPPath.length == 0)\r
+               gsPPath = _getPath(document.location.href);\r
+       oParam.sPPath = gsPPath;\r
+       oParam.sTPath = document.location.href;\r
+       oParam.aPaths = gaPaths;\r
+       return oParam;\r
+}\r
+\r
+function syncWithShow()\r
+{\r
+       if (isTopicOnly())\r
+               show();\r
+       else \r
+       {\r
+               sync();\r
+               showTocPane();\r
+       }\r
+}\r
+\r
+function showTocPane()\r
+{\r
+       var oMsg = new whMessage(WH_MSG_SHOWTOC, this, 1, null);\r
+       SendMessage(oMsg);\r
+}\r
+\r
+function sendSyncInfo()\r
+{\r
+       if (!isInPopup())\r
+       {\r
+               var oParam = null;\r
+               if (gaPaths.length > 0)\r
+               {\r
+                       oParam = createSyncInfo();\r
+               }\r
+               var oMsg = new whMessage(WH_MSG_SYNCINFO, this, 1, oParam);\r
+               SendMessage(oMsg);\r
+       }\r
+}\r
+\r
+function sendInvalidSyncInfo()\r
+{\r
+       if (!isInPopup())\r
+       {\r
+               var oMsg = new whMessage(WH_MSG_SYNCINFO, this, 1, null);\r
+               SendMessage(oMsg);\r
+       }\r
+}\r
+\r
+function enableWebSearch(bEnable)\r
+{\r
+       if (!isInPopup())\r
+       {\r
+               var oMsg = new whMessage(WH_MSG_ENABLEWEBSEARCH, this, 1, bEnable);\r
+               SendMessage(oMsg);\r
+       }\r
+}\r
+\r
+function autoSync(nSync)\r
+{\r
+       if (nSync == 0) return;\r
+       if (isInPopup()) return;\r
+       if (isOutMostTopic())\r
+               sync();\r
+}\r
+\r
+function isOutMostTopic()\r
+{\r
+       if (gnOutmostTopic == -1)\r
+       {\r
+               var oMessage = new whMessage(WH_MSG_ISINFRAMESET, this, 1 , null);\r
+               if (SendMessage(oMessage))\r
+                       gnOutmostTopic = 0;\r
+               else\r
+                       gnOutmostTopic = 1;\r
+       }\r
+       return (gnOutmostTopic == 1);\r
+}\r
+\r
+function sync()\r
+{\r
+       if (gaPaths.length > 0)\r
+       {\r
+               var oParam = createSyncInfo();\r
+               var oMessage = new whMessage(WH_MSG_SYNCTOC, this, 1, oParam);\r
+               SendMessage(oMessage);\r
+       }\r
+}\r
+\r
+\r
+function avenueInfo(sName, sPrev, sNext)\r
+{\r
+       this.sName = sName;\r
+       this.sPrev = sPrev;\r
+       this.sNext = sNext;\r
+}\r
+\r
+function getCurrentAvenue()\r
+{\r
+       var oParam = new Object();\r
+       oParam.sAvenue = null;\r
+       var oMessage = new whMessage(WH_MSG_GETCURRENTAVENUE, this, 1, oParam);\r
+       SendMessage(oMessage);\r
+       return oParam.sAvenue;\r
+}\r
+\r
+function unRegisterListener()\r
+{\r
+       sendInvalidSyncInfo();\r
+       enableWebSearch(false);\r
+       if (whtopic_foldUnload)\r
+               whtopic_foldUnload();\r
+}\r
+\r
+function onSendMessage(oMsg)\r
+{\r
+       var nMsgId = oMsg.nMessageId;\r
+       if (nMsgId == WH_MSG_GETAVIAVENUES)\r
+       {\r
+               oMsg.oParam.aAvenues = gaAvenues;\r
+               return false;\r
+       }\r
+       else if (nMsgId == WH_MSG_GETTOCPATHS)\r
+       {\r
+               if (isOutMostTopic())\r
+               {\r
+                       oMsg.oParam.oTocInfo = createSyncInfo();\r
+                       return false;           \r
+               }\r
+               else\r
+                       return true;\r
+       }\r
+       else if (nMsgId == WH_MSG_NEXT)\r
+       {\r
+               goAvenue(true);\r
+       }\r
+       else if (nMsgId == WH_MSG_PREV)\r
+       {\r
+               goAvenue(false);\r
+       }\r
+       else if (nMsgId == WH_MSG_WEBSEARCH)\r
+       {\r
+               websearch();\r
+       }\r
+       return true;\r
+}\r
+\r
+function goAvenue(bNext)\r
+{\r
+       var sTopic = null;\r
+       var sAvenue = getCurrentAvenue();\r
+       var nAvenue = -1;\r
+       if (sAvenue != null && sAvenue != "")\r
+       {\r
+               for (var i = 0; i < gaAvenues.length ; i ++)\r
+               {\r
+                       if (gaAvenues[i].sName == sAvenue)\r
+                       {\r
+                               nAvenue = i;\r
+                               break;\r
+                       }\r
+               }\r
+               if (nAvenue != -1)\r
+               {\r
+                       if (bNext)\r
+                               sTopic = gaAvenues[nAvenue].sNext;\r
+                       else\r
+                               sTopic = gaAvenues[nAvenue].sPrev;\r
+               }\r
+       }\r
+       else\r
+       { \r
+               for (var i = 0; i < gaAvenues.length ; i ++)\r
+               {\r
+                       if (gaAvenues[i].sNext != null && gaAvenues[i].sNext.length > 0 && bNext)\r
+                       {\r
+                               sTopic = gaAvenues[i].sNext;\r
+                               break;\r
+                       }\r
+                       else if (gaAvenues[i].sPrev != null && gaAvenues[i].sPrev.length > 0 && !bNext)\r
+                       {\r
+                               sTopic = gaAvenues[i].sPrev;\r
+                               break;\r
+                       }\r
+               }\r
+       }\r
+       \r
+       if (sTopic != null && sTopic != "")\r
+       {\r
+               if (gsPPath != null && gsPPath != "")\r
+               {\r
+                       sFullTopicPath = _getFullPath(gsPPath, sTopic);\r
+                       document.location = sFullTopicPath;\r
+               }\r
+       }\r
+}\r
+\r
+function canGo(bNext)\r
+{\r
+       for (var i = 0; i < gaAvenues.length ; i ++)\r
+       {\r
+               if ((gaAvenues[i].sNext != null && gaAvenues[i].sNext.length > 0 && bNext) ||\r
+                       (gaAvenues[i].sPrev != null && gaAvenues[i].sPrev.length > 0 && !bNext))\r
+                       return true;\r
+       }\r
+       return false;\r
+}\r
+\r
+function show()\r
+{\r
+       if (gsStartPage != "")\r
+               window.location =  gsStartPage + "#" + gsRelCurPagePath;\r
+}\r
+\r
+function hide()\r
+{\r
+       if (goFrame != null)\r
+       {\r
+               goFrame.location = window.location;\r
+       }\r
+}\r
+\r
+function isTopicOnly()\r
+{\r
+       if (gnTopicOnly == -1)\r
+       {\r
+               var oParam = new Object();\r
+               oParam.oFrame = null;\r
+               var oMsg = new whMessage(WH_MSG_GETSTARTFRAME, this, 1, oParam);\r
+               if (SendMessage(oMsg))\r
+               {\r
+                       goFrame = oParam.oFrame;\r
+                       gnTopicOnly = 0;\r
+               }\r
+               else\r
+                       gnTopicOnly = 1;\r
+       }\r
+       if (gnTopicOnly == 1)\r
+               return true;\r
+       else\r
+               return false;\r
+}\r
+\r
+function websearch()\r
+{\r
+       if (gbNav4)\r
+       {\r
+               if (document.ehelpform)\r
+                       document.ehelpform.submit();\r
+       }\r
+       else\r
+       {\r
+               if (window.ehelpform)\r
+                       window.ehelpform.submit();\r
+       }\r
+}\r
+\r
+function addSearchFormHref(sHref)\r
+{\r
+       gsSearchFormHref = sHref;\r
+       enableWebSearch(true);\r
+}\r
+\r
+function searchB(nForm)\r
+{\r
+       var sValue = eval("document.searchForm" + nForm + ".searchString.value");\r
+       var oMsg = new whMessage(WH_MSG_SEARCHTHIS, this, 1, sValue);\r
+       SendMessage(oMsg);\r
+}\r
+\r
+function getSearchFormHTML()\r
+{\r
+       var sHTML = "";\r
+       gnForm ++;\r
+       var sFormName = "searchForm" + gnForm;\r
+       var sButton = "<form name=\"" + sFormName + "\" method=\"POST\" action=\"javascript:searchB("+ gnForm + ")\">"\r
+       sButton += "<input type=\"text\" name=\"searchString\" value=\"- Full Text search -\" size=\"20\"/>";\r
+       if ("" == "text")\r
+       {\r
+               sButton+="<a class=\"searchbtn\" href=\"javascript:void(0);\" onclick=\"" + sFormName + ".submit(); return false;\"></a>";\r
+       }\r
+       else if ("" == "image")\r
+       {\r
+               sButton+="<a class=\"searchbtn\" href=\"javascript:void(0);\" onclick=\"" + sFormName + ".submit(); return false;\">"\r
+               sButton+="<img src=\"\" border=0></a>";\r
+       }\r
+       sButton += "</form>";\r
+       sHTML ="<td align=\"center\">" + sButton + "</td>";\r
+       return sHTML;\r
+}\r
+\r
+function showHidePane(bShow)\r
+{\r
+       var oMsg=null;\r
+       if (bShow)\r
+               oMsg=new whMessage(WH_MSG_SHOWPANE, this, 1, null);\r
+       else\r
+               oMsg=new whMessage(WH_MSG_HIDEPANE, this, 1, null);\r
+       SendMessage(oMsg);\r
+}\r
+\r
+function isShowHideEnable()\r
+{\r
+       if (gbIE4)\r
+               return true;\r
+       else\r
+               return false;\r
+}\r
+\r
+if(window.gbWhUtil&&window.gbWhMsg&&window.gbWhVer&&window.gbWhProxy)\r
+{\r
+       RegisterListener("bsscright", WH_MSG_GETAVIAVENUES);\r
+       RegisterListener("bsscright", WH_MSG_GETTOCPATHS);\r
+       RegisterListener("bsscright", WH_MSG_NEXT);\r
+       RegisterListener("bsscright", WH_MSG_PREV);\r
+       RegisterListener("bsscright", WH_MSG_WEBSEARCH);\r
+       if (gbMac && gbIE4)\r
+       {\r
+               if (typeof(window.onunload) != "unknown")\r
+                       whtopic_foldUnload = window.onunload;\r
+       }\r
+       else\r
+       {\r
+               if (window.onunload)\r
+                       whtopic_foldUnload = window.onunload;\r
+       }\r
+       window.onunload = unRegisterListener;\r
+       setButtonFont("show","","10pt","","","","");\r
+\r
+       gbWhTopic=true;\r
+}\r
+else\r
+       document.location.reload();
\ No newline at end of file