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