var gTopicElemId = ""; var gsPPath=""; var gaPaths=new Array(); var gaAvenues=new Array(); var gaSearchTerms = new Array(); var gaSearchTermType = new Array(); var gbPhraseTerm = false ; var gChildPathInMain=""; var goFrame=null; var gsStartPage=""; var gsRelCurPagePath=""; var gsSearchFormHref=""; var gnTopicOnly=-1; var gnOutmostTopic=-1; var gsFtsBreakChars="\t\r\n\"\\ .,!@#$%^&*()~'`:;<>?/{}[]|+-=\x85\x92\x93\x94\x95\x96\x97\x99\xA9\xAE\xB7"; var gsQuote='\x22'; var gsBkgndColor=""; var gsTextColor=""; 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; var gaBreadcrumbsTrail = new Array(); var gnYPos = -1; var gbBadUriError = false; var EST_TERM = 1; var EST_PHRASE = 2; var EST_STEM = 3; //Code for breadcrumb variable check for bookmark (function() { gbBreadCrumb = 0; var strDocumentUrl = document.location.hash; var n = strDocumentUrl.toLowerCase().indexOf("bc-"); if(n != -1) { document.location.hash = strDocumentUrl.substring(0, n); var bc = strDocumentUrl.substring(n+3); gbBreadCrumb = bc; } })(); // Initialize rh.util.addEventListener(document, 'DOMContentLoaded', verifyEnvironment); function verifyEnvironment() { if (window.self === window.top) { // Loaded without a parent. addRhLoadCompleteEvent(rh._.redirectToLayout); } else { addRhLoadCompleteEvent(initializeTopic); } loadScreens(SCR_NONE, gCommonRootRelPath); } function initializeTopic() { publishTopicData(); rh.model.subscribe(rh.consts('KEY_TOPIC_ORIGIN'), function() { setTimeout(applyHighlight, 50); }); loadParentDataForSyncing(gCommonRootRelPath, SCR_PARENT_TOCSYNC); } function publishTopicData() { // Active topic URL rh.model.publish(rh.consts('KEY_TOPIC_URL'), decodeURI(document.location.href)); // Active topic title rh.model.publish(rh.consts('KEY_TOPIC_TITLE'), document.title); // Active topic's browse sequence map var brsPrevNodes = document.querySelectorAll('meta[name=brsprev]'); var brsNextNodes = document.querySelectorAll('meta[name=brsnext]'); var brsPrevLinks = new Array(); var brsNextLinks = new Array(); var hostFolder = _isHTTPUrl(document.location.href) ? document.location.protocol + '//' + gHost + gHostPath : gHostPath; if (brsPrevNodes != undefined) { for (i = 0; i < brsPrevNodes.length; i++) brsPrevLinks[brsPrevLinks.length] = rh.util.traverseByPath(document.location.href, gCommonRootRelPath) + brsPrevNodes[i].getAttribute('value'); } if (brsNextNodes != undefined) { for (i = 0; i < brsNextNodes.length; i++) brsNextLinks[brsNextLinks.length] = rh.util.traverseByPath(document.location.href, gCommonRootRelPath) + brsNextNodes[i].getAttribute('value'); } rh.model.publish(rh.consts('KEY_TOPIC_BRSMAP'), { p: brsPrevLinks, n: brsNextLinks }); } function syncToc(tocChildPrefixStr, tocChildOrder) { rh.model.publish(rh.consts('KEY_TOPIC_ID'), {topicID: gTopicId, childPrefix: gTocChildPrefixStr, childOrder: gTocChildOrder}); } /////////highlight Search Routines ///////// function ClosedRange( a_nStart, a_nEnd ) { this.nStart = a_nStart; this.nEnd = a_nEnd; } ////////generic functions ////////// var g_RunesWordBreaks=gsFtsBreakChars; var g_RunesWhiteSpaces="\x20\x09\x0D\x0A\xA0"; function _isWordBreak( a_ch ) { return ( g_RunesWordBreaks.indexOf( a_ch ) >= 0 ); } function _isWhiteSpace( a_ch ) { return ( g_RunesWhiteSpaces.indexOf( a_ch ) >= 0 ); } function _getLengthOfWordBreak( a_str, a_nFrom ) { var i = a_nFrom, nLen = a_str.length; while ( i < nLen && _isWordBreak( a_str.charAt( i ) ) ) ++i; return i - a_nFrom; } function _getLengthOfWord( a_str, a_nFrom ) { var i = a_nFrom, nLen = a_str.length; while ( i < nLen && !_isWordBreak( a_str.charAt( i ) ) ) ++i; return i - a_nFrom; } function _getWord( a_str, a_nFrom ) { var nLen = _getLengthOfWord( a_str, a_nFrom ); return a_str.substr( a_nFrom, nLen ); } function _getPositionInc( a_str, a_nFrom ) { var i = a_nFrom, nLen = a_str.length, nInc = 1; while ( i < nLen && _isWordBreak( a_str.charAt( i ) ) ) { if ( !_isWhiteSpace( a_str.charAt( i ) ) ) nInc++; i++; } return nInc; } function _getNormalizedWord( a_strWord ) { var strLower = a_strWord.toLowerCase(); return strLower; } function DolWord( a_strWord, a_nPosition, a_nCharLocation ) { this.strWord = a_strWord; this.nPosition = a_nPosition; this.nCharLocation = a_nCharLocation; } function dolSegment( a_strSrc ) { var nLen = a_strSrc.length; var nCur = 0; var nPosition = 1; var strWord = ""; var aRslt = new Array(); nCur += _getLengthOfWordBreak( a_strSrc, nCur ); while ( nCur < nLen ) { strWord = _getNormalizedWord( _getWord( a_strSrc, nCur ) ); aRslt[aRslt.length] = new DolWord( strWord, nPosition, nCur ); nCur += strWord.length; nPosition += _getPositionInc( a_strSrc, nCur ); nCur += _getLengthOfWordBreak( a_strSrc, nCur ); } return aRslt; } /////////// Dom Text node /////////////// var s_strHlStart=null; var s_strHlEnd =null; function DomTextNode( a_Node, a_nFrom ) { this.node = a_Node; this.nFrom = a_nFrom; this.aClosedRanges = new Array(); this.getClosedRanges = function( a_aRanges, a_nStart ) { var nTo = this.nFrom + a_Node.data.length; for ( var i = a_nStart; i < a_aRanges.length; i++ ) { if ( a_aRanges[i].nStart <= nTo && a_aRanges[i].nEnd >= this.nFrom ) { this.aClosedRanges[this.aClosedRanges.length] = new ClosedRange( a_aRanges[i].nStart > this.nFrom ? a_aRanges[i].nStart : this.nFrom, a_aRanges[i].nEnd < nTo ? a_aRanges[i].nEnd : nTo ); } if ( a_aRanges[i].nEnd > nTo ) { return i; } } return i; } this.doHighlight = function( a_aRanges, a_nStart ) { s_strHlStart = ""; s_strHlEnd = ""; if ( a_nStart >= a_aRanges.length ) return a_nStart; var nEnd = this.getClosedRanges( a_aRanges, a_nStart ); if ( this.aClosedRanges.length == 0 ) return nEnd; // Check if node.parentNode is a valid parent for a span tag. if (!isValidParentForSpan(this.node.parentNode)) return nEnd; var strText = this.node.data; //replace newline, carriage return, tab characters with space strText = strText.replace(/[\n\r\t]/g," "); var strHTML = ""; var nLastStart = 0; for ( var i = 0; i < this.aClosedRanges.length; i++ ) { strHTML += _textToHtml_nonbsp(strText.substring( nLastStart, this.aClosedRanges[i].nStart - this.nFrom )); strHTML += s_strHlStart; strHTML += _textToHtml_nonbsp(strText.substring( this.aClosedRanges[i].nStart - this.nFrom, this.aClosedRanges[i].nEnd - this.nFrom )); strHTML += s_strHlEnd; nLastStart = this.aClosedRanges[i].nEnd - this.nFrom; } strHTML += _textToHtml_nonbsp(strText.substr( nLastStart )); var spanElement = document.createElement( "span" ); spanElement.innerHTML = strHTML; if (gbIE) { //for IE, when assigning string to innerHTML, leading whitespaces are dropped if ((strHTML.length >0)&&(strHTML.charAt(0) == " ")) spanElement.innerHTML = " " + spanElement.innerHTML ; } this.node.parentNode.replaceChild( spanElement, this.node ); if(gnYPos == -1) { var elemObj = spanElement; var curtop = 0; if (elemObj.offsetParent) { while (elemObj.offsetParent) { curtop += elemObj.offsetTop elemObj = elemObj.offsetParent; } } else if (elemObj.y) curtop += elemObj.y; gnYPos = curtop; } showHighlightedElement(spanElement); return nEnd; }; } function showHighlightedElement(highlightElement) { //display a dropdown/expand text if highlighted element is inside it var parent = highlightElement.parentNode; while( (typeof parent != 'undefined') && parent != null ) { var tagname = parent.tagName.toLowerCase(); if( tagname == 'body') break; if( (tagname == "div" && parent.className == "droptext") || (tagname == "span" && parent.className == "expandtext")) { if(parent.style.display == "none") parent.style.display = ""; } parent = parent.parentNode; } } function DomTexts() { this.strText = ""; this.aNodes = new Array(); this.aRanges = new Array(); this.addElementNode = function( a_Node ) { if ( a_Node == null || a_Node.childNodes == null ) return; var nLen = a_Node.childNodes.length; for ( var i = 0; i < nLen; i++ ) { var node = a_Node.childNodes.item( i ); if ( node != null ) { if ( node.nodeType == 3 ) { this.addTextNode( node ); } else if ( node.nodeType == 1 ) { this.addElementNode( node ); } } } } this.addTextNode = function( a_Node ) { if ( a_Node == null ) return; var strInnerText = a_Node.data; //replace newline, carriage return, tab characters with space strInnerText = strInnerText.replace(/[\n\r\t]/g," "); if ( strInnerText.length != 0 ) { var nFrom = this.strText.length; this.strText += strInnerText; this.aNodes[this.aNodes.length] = new DomTextNode( a_Node, nFrom ); } } this.isWordMatch = function( a_strHlWord, a_strTextWord ) { return a_strTextWord.indexOf(a_strHlWord.toLowerCase()) != -1; } this.makeHighlightRanges = function() { if(typeof(gaSearchTerms[0]) == "undefined") return; var str = gaSearchTerms.reduce(function(result, value, index) { var term = escapeRegExp(value.toLowerCase()); if (!(gsSubstrSrch || rh.util.hasNonAsciiChar(term))) { term = '\\b' + term + '\\b'; } result += (result != '' ? '|' : '') + term; return result; }, ''); var regexp = new RegExp(str, "i"); var aWords ; if (!gbPhraseTerm) aWords = dolSegment( this.strText ); else { aWords = new Array(); aWords[0] = new DolWord( this.strText, 1, 0 ); } for ( var i = 0; i < aWords.length; i++ ) { var n = new Object; n.index = 0; var prevLen = 0; var tmpStr1 = aWords[i].strWord.toLowerCase(); while(n != null && n.index > -1) { n = regexp.exec(tmpStr1); if (n != null && n.index > -1 ) { var strWord = n[0]; this.aRanges[this.aRanges.length] = new ClosedRange( aWords[i].nCharLocation + prevLen + n.index, aWords[i].nCharLocation + prevLen + n.index + strWord.length); prevLen = prevLen + n.index + strWord.length; tmpStr1 = tmpStr1.substring(n.index + strWord.length, tmpStr1.length); } } } } this.highlightNodes = function() { var nFrom = 0; for ( var i = 0; i < this.aNodes.length; i++ ) nFrom = this.aNodes[i].doHighlight( this.aRanges, nFrom ); } this.jump2FirstHighlightedWord = function() { if (gnYPos > 51) window.scrollTo(0, gnYPos-50); } } function processSuspendNodes( a_aNodes ) { if ( a_aNodes.length == 0 ) return false; var dt = new DomTexts(); //build dom texts... for ( var i = 0; i < a_aNodes.length; i++ ) { var node = a_aNodes[i]; if ( node.nodeType == 1 ) { dt.addElementNode( node ); } else if ( node.nodeType == 3 ) { dt.addTextNode( node ); } } dt.makeHighlightRanges(); dt.highlightNodes(); dt.jump2FirstHighlightedWord(); } var s_strRecursiveTags = "sub sup img applet object br iframe embed noembed param area input " + "select textarea button option hr frame noframes marquee label p dl " + "div center noscript blockquote form isindex table fieldset address layer " + "dt dd caption thead tfoot tbody tr th td legend h1 h2 h3 h4 h5 h6 " + "ul ol dir menu li pre xmp listing plaintext ins del"; var s_strSpanInvalidParents = "applet object iframe embed table thead tfoot tbody tr ul ol script"; function doesTagRecursiveProcess( a_Node ) { if ( a_Node == null ) return false; var strTagName = a_Node.tagName.toLowerCase(); var rg = "\\b" + strTagName + "\\b"; var ss = s_strRecursiveTags.match( rg ); return ss != null; } function isValidParentForSpan(a_Node) { if (a_Node == null) return false; var strTagName = a_Node.tagName.toLowerCase(); var rg = "\\b" + strTagName + "\\b"; var ss = s_strSpanInvalidParents.match(rg); return ss == null; } function doHighLightDomElement( a_aSuspendedNodes, a_Node ) { var childNodes = a_Node.childNodes; if ( childNodes == null || childNodes.length == 0 ) return; var nLen = childNodes.length; for ( var i = 0; i < nLen; i++ ) { var node = childNodes.item( i ); if ( node == null ) continue; if ( node.nodeType == 1 ) { //element if ( doesTagRecursiveProcess( node ) ) { if ( a_aSuspendedNodes.length > 0 ) { processSuspendNodes( a_aSuspendedNodes ); a_aSuspendedNodes.length = 0; } } doHighLightDomElement( a_aSuspendedNodes, node ); } else if ( node.nodeType == 3 ) { //text a_aSuspendedNodes[a_aSuspendedNodes.length] = node; } } } function highlightDocument() { if ( !document.body || document.body == null ) return; var aSuspendedNodes = new Array(); var topicNode = document.getElementById(gTopicElemId); if(!topicNode) topicNode = document.body; doHighLightDomElement( aSuspendedNodes, topicNode ); processSuspendNodes( aSuspendedNodes ); } /////// start routine ///////// function applyHighlight() { readSetting(RHHIGHLIGHT, callbackHighlightSettingRead); } function callbackHighlightSettingRead(bHighlight) { if(bHighlight == TRUESTR) readSetting(RHHIGHLIGHTTEXTCOLOR, callbackHighlightTxtColorRead); } function callbackHighlightTxtColorRead(txtColor) { gsTextColor = txtColor; readSetting(RHHIGHLIGHTBGCOLOR, callbackHighlightBgColorRead); } function callbackHighlightBgColorRead(bgColor) { gsBkgndColor = bgColor; StartHighLightSearch(); } function StartHighLightSearch() { var strTerms = GetHighlightTextFromURL(); var arrSyns = GetSynonymsFromURL(); findSearchTerms(strTerms, false); // Repeat for all synonyms for (var i = 0; i < arrSyns.length; i++) if (trim(arrSyns[i]) != "") findSearchTerms(trim(arrSyns[i]), false); highlightDocument(); } //////// common with FTS routines to identify stop word etc. //////////// function findSearchTerms(searchTerms, bSkip) { if(searchTerms != "") { var sInput=searchTerms; var bPhrase = false ; var sCW=""; var nS=-1; var nSep=-1; for(var nChar=0;nChar=szWord.length-1) continue; nStemPos=szWord.lastIndexOf(aStems[iStem]); if(nStemPos>0){ var cssub=szWord.substring(nStemPos); if(cssub==aStems[iStem]){ csStem=szWord; if(szWord.charAt(nStemPos-2)==szWord.charAt(nStemPos-1)){ csStem=csStem.substring(0,nStemPos-1); }else{ csStem=csStem.substring(0,nStemPos); } return csStem; } } } return szWord; } function IsStopWord(sCW,aFtsStopArray) { var nStopArrayLen=aFtsStopArray.length; var nB=0; var nE=nStopArrayLen-1; var nM=0; var bFound=false; var sStopWord=""; while(nB<=nE){ nM=(nB+nE); nM>>=1; sStopWord=aFtsStopArray[nM]; if(compare(sCW,sStopWord)>0){ nB=(nB==nM)?nM+1:nM; }else{ if(compare(sCW,sStopWord)<0){ nE=(nE==nM)?nM-1:nM; }else{ bFound=true; break; } } } return bFound; } /////// end highlight search rountines ///////////// 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=""; 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++; } } //recursively finds the parent project StartPage path if exists //also computes the child toc path in the parent toc recursively until //main proj function getPPStartPagePath(sPath) { if(sPath.length != 0) { var sXmlFolderPath = _getPath(sPath); if(sXmlFolderPath.indexOf("/mergedProjects/") == -1 && sXmlFolderPath.indexOf("\\mergedProjects\\") == -1) return sPath; var sdocPath = _getFullPath(sXmlFolderPath, "MasterData.xml"); try { if(gbIE5) //Internet Explorer { xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async=false; xmlDoc.load(sdocPath); } else if(gbNav6) //Firefox, Mozilla, Opera etc. { var req=new XMLHttpRequest(); req.open("GET", sdocPath, false); req.send(null); xmlDoc = req.responseXML; } else if(gbSafari3) //Safari { if(window.XMLHttpRequest) xmlhttp = new XMLHttpRequest(); if(xmlhttp) { xmlhttp.onreadystatechange=processReqChange; xmlhttp.open("GET", sdocPath, false); xmlhttp.send(""); } } } catch(e){ gbBadUriError=true; return sPath; } if(xmlDoc == null) return sPath; var root = xmlDoc.documentElement; if(root == null) return sPath; var masterProj = null; try { masterProj = xmlDoc.getElementsByTagName("syncinfo"); var childTocPosInParent = null; if(masterProj) { var startpage = xmlDoc.getElementsByTagName("startpage"); masterStartPageName = startpage[0].getAttribute("name"); masterStartPageRelPath = startpage[0].getAttribute("url"); var tocpos = xmlDoc.getElementsByTagName("tocpos"); childTocPosInParent = tocpos[0].getAttribute("path"); } } catch(e){return sPath;} if(childTocPosInParent) { childTocPosInParent = childTocPosInParent.replace(/\\n/g, "\n"); gChildPathInMain = childTocPosInParent + gChildPathInMain; } sXmlFolderPath = _getFullPath(sXmlFolderPath, masterStartPageRelPath+masterStartPageName); sXmlFolderPath = getPPStartPagePath(sXmlFolderPath); return sXmlFolderPath; } } //project info function setRelStartPage(sPath) { if(gsPPath.length==0) { gsPPath=_getFullPath(_getPath(document.location.href),_getPath(sPath)); gsStartPage=_getFullPath(_getPath(document.location.href),sPath); try{ gsStartPage = getPPStartPagePath(gsStartPage); } catch(e) { alert("Error reading masterData.xml"); } gsRelCurPagePath=_getRelativeFileName(gsStartPage,document.location.href); for(var i=0; i< gaPaths.length; i++) gaPaths[i] = gChildPathInMain + gaPaths[i]; } } function getImage(oImage,sType) { var sImg=""; if(oImage&&oImage.aImgs&&(oImage.aImgs.length>0)) { sImg+="\""+sType+"\"0) sImg+=" width="+oImage.nWidth; if(oImage.nHeight>0) sImg+=" height="+oImage.nHeight; sImg+=" border=0>"; } return sImg; } function addTocInfo(sTocPath) { gaPaths[gaPaths.length]=sTocPath; } var flex_nextLocation; var flex_previousLocation; function addAvenueInfo(sName,sPrev,sNext) { gaAvenues[gaAvenues.length]=new avenueInfo(sName,sPrev,sNext); flex_previousLocation = sPrev; flex_nextLocation = 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=""; if(nStyle==BTN_TEXT) sButton+=goPrev.sText; else sButton+=getImage(goPrev,sTitle); sButton+=""; } } else if(sType=="next") { if(canGo(true)) { var sTitle="Next Topic"; goNext=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3); sButton=""; if(nStyle==BTN_TEXT) sButton+=goNext.sText; else sButton+=getImage(goNext,sTitle); sButton+=""; } } else if(sType=="show") { if(isTopicOnly()&&(!gbOpera6||gbOpera7)) { var sTitle="Show Navigation Component"; goShow=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3); sButton=""; if(nStyle==BTN_TEXT) sButton+=goShow.sText; else sButton+=getImage(goShow,sTitle); sButton+=""; } } else if(sType=="hide") { if(!isTopicOnly()&&!gbOpera6) { var sTitle="Hide Navigation Component"; goHide=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3); sButton=""; if(nStyle==BTN_TEXT) sButton+=goHide.sText; else sButton+=getImage(goHide,sTitle); sButton+=""; } } else if(sType=="shownav") { if(isShowHideEnable()) { var sTitle="Show Navigation Component"; goShowNav=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3); sButton=""; if(nStyle==BTN_TEXT) sButton+=goShowNav.sText; else sButton+=getImage(goShowNav,sTitle); sButton+=""; } } else if(sType=="hidenav") { if(isShowHideEnable()) { var sTitle="Hide Navigation Component"; goHideNav=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3); sButton=""; if(nStyle==BTN_TEXT) sButton+=goHideNav.sText; else sButton+=getImage(goHideNav,sTitle); sButton+=""; } } else if(sType=="synctoc") { if(gaPaths.length>0) { var sTitle="Sync TOC"; goSync=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3); sButton=""; if(nStyle==BTN_TEXT) sButton+=goSync.sText; else sButton+=getImage(goSync,sTitle); sButton+=""; } } else if(sType=="websearch") { if(gsSearchFormHref.length>0) { var sTitle="WebSearch"; goWebSearch=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3); sButton=""; if(nStyle==BTN_TEXT) sButton+=goWebSearch.sText; else sButton+=getImage(goWebSearch,sTitle); sButton+=""; } } else if(sType=="searchform") { gaButtons[nBtn]="NeedSearchForm"; gaTypes[nBtn]=sType; } if(sButton.length!=0) { if(nStyle==BTN_TEXT) sButton+=" "; gaButtons[nBtn]=""+sButton+""; 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+="
"; sHTML+=""; for(var i=0;i0) { var sHTML=""; if(nAligns!=0) { sHTML+="
" if(nAligns&1) sHTML+=""; if(nAligns&2) sHTML+=""; if(nAligns&4) sHTML+=""; sHTML+="
"+getIntopicBar("left")+""+getIntopicBar("center")+""+getIntopicBar("right")+"
"; 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(); var sPath = null; if(gsStartPage.length != 0) sPath = _getPath(gsStartPage); else if(gsPPath.length==0) sPath =_getPath(document.location.href); else sPath = gsPPath; oParam.sPPath=sPath; 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() { if(gbAIRSSL) return; 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;i0&&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;i0&&bNext)|| (gaAvenues[i].sPrev!=null&&gaAvenues[i].sPrev.length>0&&!bNext)) return true; } return false; } function show() { if(gbBadUriError) { var strMainPage = document.location.href; var indx = strMainPage.toLowerCase().indexOf("/mergedprojects/"); if(indx != -1) window.location = strMainPage.substring(0, indx+1) + "whcsh_home.htm#topicurl=" + strMainPage.substring(indx+1); else if(gsStartPage!="") window.location=gsStartPage+"#"+gsRelCurPagePath; } else 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="
" sButton+=""; if("dummy"=="text") { sButton+="dummy"; } else if("dummy"=="image") { sButton+="" sButton+=""; } sButton+="
"; sHTML=""+sButton+""; 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; } function PickupDialog_Invoke() { if(!gbIE4||gbMac||gbAIRSSL) { if(typeof(_PopupMenu_Invoke)=="function") return _PopupMenu_Invoke(PickupDialog_Invoke.arguments); } else { if(PickupDialog_Invoke.arguments.length>2) { var sPickup="dummy"; var sPickupPath=gsPPath+sPickup; if(gbIE4) { var sFrame=PickupDialog_Invoke.arguments[1]; var aTopics=new Array(); for(var i=2;i1) { var nWidth=300; var nHeight=180; var nScreenWidth=screen.width; var nScreenHeight=screen.height; var nLeft=(nScreenWidth-nWidth)/2; var nTop=(nScreenHeight-nHeight)/2; if(gbIE4) { var vRet=window.showModalDialog(sPickupPath,aTopics,"dialogHeight:"+nHeight+"px;dialogWidth:"+nWidth+"px;resizable:yes;status:no;scroll:no;help:no;center:yes;"); if(vRet) { var sURL=vRet.m_url; if(sFrame) window.open(sURL,sFrame); else window.open(sURL,"_self"); } } } else if(aTopics.length==1) { var sURL=aTopics[0].m_sURL if(sFrame) window.open(sURL,sFrame); else window.open(sURL,"_self"); } } } } } function isQuote( a_ch ) { return ( a_ch == gsQuote ); } function escapeRegExp(str) { var specials = new RegExp("[.*+?|()\\^\\$\\[\\]{}\\\\]", "g"); // .*+?|()^$[]{}\ return str.replace(specials, "\\$&"); }