// Variables used in the file var dateObj = new Date(); var UniqueIDString = "" + dateObj.getTime(); var gsDefaultFramesetCol = "230, *"; var gsDefaultFramesetRow = "200, *"; // Set the variable for test scenario if (gsDefaultFramesetRow.substr(0, 2) == "%%") { gsDefaultFramesetRow = "300, *"; } if (gsDefaultFramesetCol.substr(0, 2) == "%%") { gsDefaultFramesetCol = "200, *"; } var gsLastFramesetCol = gsDefaultFramesetCol; var gsCurFramesetCol = gsDefaultFramesetCol; var gsLastFramesetRow = gsDefaultFramesetRow; var gsCurFramesetRow = gsDefaultFramesetRow; var gbVertical = false; var gsBrowseSequenceInfo = ""; var gsTOCSyncInfo = ""; var gPoweredByWindow = null; var gnTopicBGColor = 16777215; var gbSkinLoaded = false; var gnScrollbarTimerID = -1; var gnLastScrollbarWidthRequest = 0; var gnScrollbarDragOffset = 0; var gnInitialFrameWidth = 0; var gnInitialXPos = 0; var IE_FRAMESET_RESIZE_INTERVAL = 300; var DIV_MOVE_INTERVAL = 30; var gsFlashVars=""; var gbCommLoaded=true; var gbNavReloaded=false; var gbTbReloaded=false; var gbReloadNavigationOnly = false; var gbNavPaneLoaded = false; var gbToolBarLoaded = false; var gnMouseOver = -1; var gnMouseMove = -1; var gnTimeOutXPos = -1; var gbMouseTimeOut = false; var gbHasTitle = false; var gsNavPane = "wf_blank.htm"; var gsParamPasser = "wf_blank.htm"; var gFrameInterval = null; //const var CMD_SHOWTOC=1; var CMD_SHOWINDEX=2; var CMD_SHOWSEARCH=3; var CMD_SHOWGLOSSARY=4; function CheckFrameRendered() { clearInterval(gFrameInterval); gFrameInterval = setTimeout("RerenderFrames()",2000); } function RerenderFrames() { var bRerender = true; if (window.frames["Content"]) { if (window.frames["Content"].frames) { if (window.frames["Content"].frames["master"]) { if (window.frames["Content"].frames["master"].DoCommand) { if (window.frames["comm"]) { bRerender = false; } } } } } if (!bRerender && !window.frames["Content"].frames["master"].gbSWFLoaded && (gbNavPaneLoaded || gbToolBarLoaded)) { bRerender = true; } if (bRerender) { window.location.reload(); } } // Funtion to send a command to the master HTML file function SendCmdToMasterHTML(cmd, param1, param2) { if ((window.frames["Content"] != null) && (window.frames["Content"].frames["master"] != null) && (window.frames["Content"].frames["master"].DoCommand != null)) { window.frames["Content"].frames["master"].DoCommand(cmd, param1, param2); } } function SendCmdToTopic(cmd, param) { if ((window.frames["Content"].frames["bottom"] != null) && (window.frames["Content"].frames["bottom"].frames["Topic Pane"] != null) && (window.frames["Content"].frames["bottom"].frames["Topic Pane"].DoCommand != null)) { window.frames["Content"].frames["bottom"].frames["Topic Pane"].DoCommand(cmd, param); } } function NavigateToTopic(url, target) { target = target + ""; if ((window.frames["Content"].frames["bottom"] != null) && (window.frames["Content"].frames["bottom"].frames["Topic Pane"] != null)) { if (target == "" || target == null || target == "0") { if (gbNav4 && !gbNav6) { // For NS 4, we need to use setTimeout. After changing to use fscommand to communicate with NS 4 from Flash, // NS 4 will not perform a change in the URL setTimeout("window.frames['Content'].frames['bottom'].frames['Topic Pane'].location='" + url + "'", 100); } else { window.frames["Content"].frames["bottom"].frames["Topic Pane"].location = url; } } else { if (gbNav4 && !gbNav6) { setTimeout("window.open('" + url + "', '" + target + "','')",100); } else { window.open(url,target,""); } } } } function getElement(elementID) { var element = null; // See if the browser supports the functions we need to get to the element if (document.getElementById) { element = document.getElementById(elementID); } else if (document.all) { element = document.all(elementID); } return element; } function getBottomElement(elementID) { var element = null; // See if the browser supports the functions we need to get to the element if (window.frames["Content"].frames["bottom"].document.getElementById) { element = window.frames["Content"].frames["bottom"].document.getElementById(elementID); } else if (window.frames["Content"].frames["bottom"].document.all) { element = window.frames["Content"].frames["bottom"].document.all(elementID); } return element; } function ShowNavigationPane(bShow) { // Get to the frameset element var frameset = getBottomElement("Bottom Frame"); // Show or hide as appropriate if (bShow) { if (gbVertical) { if (gbNav4 || gbOpera || gbKonqueror || gbSafari) { gsCurFramesetRow = gsLastFramesetRow; RedoBottomFrame(bShow); } else if (gbIE) { frameset.rows = gsLastFramesetRow; } } else { if (gbNav4 || gbOpera || gbKonqueror || gbSafari) { gsCurFramesetCol = gsLastFramesetCol; RedoBottomFrame(bShow); } else if (gbIE) { frameset.cols = gsLastFramesetCol; } } } else { // "frameset.cols" contains a string of the frameset columns // You can get and set this value for Netscape but it doesn't re-render // the pages so it looks like it has no effect. if (gbVertical) { if (gbNav4 || gbOpera || gbKonqueror || gbSafari) { // For some reason, frameset.rows doesn't work list frameset.cols. So, let's use innerHeight instead. gsLastFramesetRow = "" + window.frames["Content"].frames["bottom"].frames["Navigation Pane"].innerHeight + ", *"; gsCurFramesetRow = "0, *"; RedoBottomFrame(bShow); } else if (gbIE) { window.frames["Content"].frames["bottom"].frames["Navigation Pane"].gbNavClosed = true; if (gbIE6) { gsLastFramesetRow = frameset.rows; } else { gsLastFramesetRow = "" + window.frames["Content"].frames["bottom"].frames["Navigation Pane"].document.body.clientHeight + ", *"; } frameset.rows = "0, *"; } } else { if (gbNav4 || gbOpera || gbKonqueror || gbSafari) { gsLastFramesetCol = gsCurFramesetCol; gsCurFramesetCol = "0, *"; RedoBottomFrame(bShow); } else if (gbIE) { gsLastFramesetCol = frameset.cols; frameset.cols = "0, *"; } } } return; } function PrintCurrent() { // Give the topic pane the focus and print if (gbNav) { window.frames["Content"].frames["bottom"].frames["Topic Pane"].print(); } else { window.frames["Content"].frames["bottom"].frames["Topic Pane"].focus(); window.print(); } } function SaveState() { gsTopic = window.frames["Content"].frames["bottom"].frames["Topic Pane"].document.location.href; } function RedoBottomFrame(bShow) { // Save the current topic SaveState(); if (gbNavPaneLoaded) { SendCmdToMasterHTML("CmdNavigationCleanup"); } else { SendCmdToMasterHTML("CmdNavigationCleanupComplete"); } } function ReloadNavigation() { gbReloadNavigationOnly = true; RedoBottomFrame(false); } function SetVertical(bVertical) { gbVertical = bVertical; } ////////////////////////////////////////////////////////////////////////////// // // Frame resizing code // // We only want to try to resize the framesets every so often or the browsers // will fall behind. A timer is set up to achieve this purpose and only the // last requested size is used when resizing. // ////////////////////////////////////////////////////////////////////////////// function BeginMouseCapture() { var topicPane = window.frames["Content"].frames["bottom"].frames["Topic Pane"]; topicPane.document.onmouseover = MouseOver; } function MouseOver(e) { var topicPane = window.frames["Content"].frames["bottom"].frames["Topic Pane"]; var xMousePos = 0; if (!e) { e = topicPane.window.event; } if (e.x) { xMousePos = e.x } else { xMousePos = e.pageX; } gnMouseOver = xMousePos; if (gbOpera && gbMac) { ScrollbarDragStop(gnMouseOver + gnInitialFrameWidth,0); } topicPane.document.onmouseover = null; } function ScrollbarDragStart(x, y) { if (gbSafari || (gbMac && gbOpera)) { BeginMouseCapture(); } // Calculate how far the mouse is from the edge of the frameset at the beginning if (gbNav4) { gnInitialFrameWidth = window.frames["Content"].frames["bottom"].frames["Navigation Pane"].window.innerWidth; } else { gnInitialFrameWidth = window.frames["Content"].frames["bottom"].frames["Navigation Pane"].document.body.clientWidth; } gnInitialXPos = x; gnScrollbarDragOffset = gnInitialFrameWidth - x; // Record the position gnLastScrollbarWidthRequest = x; // Let the topic know about the start drag if necessary. Calculate the coordinates in the topic coordinate space var interval = IE_FRAMESET_RESIZE_INTERVAL; if (gbNav4 || gbOpera || gbKonqueror || gbSafari) { var newX = x - gnInitialFrameWidth; SendCmdToTopic("CmdScrollbarDragStart", newX); interval = DIV_MOVE_INTERVAL; } // Make an initial call to "resize" the frameset ResizeFrameset(); // Start a timer that will regulate how often the frameset is "resized" gnScrollbarTimerID = setInterval("ResizeFrameset()", interval); } function MousePos_nsm(e) { var topicPane = window.frames["Content"].frames["bottom"].frames["Topic Pane"]; var xMousePos = 0; if (!e) { e = topicPane.window.event; } if (e.x) { xMousePos = e.x } else { xMousePos = e.pageX; } gnMouseMove = xMousePos; topicPane.document.onmousemove = null; } function ScrollbarDragStop(x, y) { clearInterval(gnScrollbarTimerID); // Resize for Netscape 7 on a MAC if (gbNav7 && gbMac && !gbMouseTimeOut) { var topicPane = window.frames["Content"].frames["bottom"].frames["Topic Pane"]; gnMouseMove = -1; topicPane.document.onmousemove = MousePos_nsm; gbMouseTimeOut = true; gnTimeOutXPos = x; setTimeout("ScrollbarDragStop()",1000) return; } else if (gbNav7 && gbMac && gbMouseTimeOut && (gnMouseMove > -1)) { x = gnMouseMove + gnInitialFrameWidth; gnLastScrollbarWidthRequest = gnMouseMove + gnInitialFrameWidth; gnMouseMove = -1; gbMouseTimeOut = false; } else if (gbNav7 && gbMac && gbMouseTimeOut) { x = gnTimeOutXPos; gbMouseTimeOut = false; } // Limit the resize down to zero if (x < 0) { x = 0; } if (gbSafari && gnMouseOver == -1 && !gbMouseTimeOut) { gnTimeOutXPos = x; gbMouseTimeOut = true; setTimeout("ScrollbarDragStop()",50); return; } else if (gbSafari && gbMouseTimeOut) { x = gnTimeOutXPos; gbMouseTimeOut = false; } gnLastScrollbarWidthRequest = x; if (gbSafari && gnMouseOver > -1) { x = gnMouseOver + gnInitialFrameWidth; gnLastScrollbarWidthRequest = gnMouseOver + gnInitialFrameWidth; gnMouseOver = -1; } ResizeFrameset(); // Let the topic know about the stop drag if necessary. Calculate the coordinates in the topic coordinate space if (gbNav4 || gbOpera || gbKonqueror || gbSafari) { var newX = x - gnInitialFrameWidth; SendCmdToTopic("CmdScrollbarDragStop", newX); } // Resize the framesets where necessary if (gbNav4 || gbOpera || gbKonqueror || gbSafari) { if (gnInitialXPos != x){ gsCurFramesetCol = (x+gnScrollbarDragOffset) + ", *"; } RedoBottomFrame(false); } } function ResizeFrameset() { if ((gbIE) && (!gbOpera)) { // Resize the frames var frameWidth = gnLastScrollbarWidthRequest + gnScrollbarDragOffset; var frameset = getBottomElement("Bottom Frame"); frameset.cols = "" + frameWidth + ", *"; } else if (gbNav4 || gbOpera || gbKonqueror || gbSafari) { // Let the topic know where to draw its resize bar var newX = gnLastScrollbarWidthRequest - gnInitialFrameWidth; SendCmdToTopic("CmdScrollbarDragMove", newX); } } function ScrollbarDrag(x, y) { gnLastScrollbarWidthRequest = x; } function IsHideNavEnabledForRemoteURL() { if (gbIE) { return true; } else { return false; } } function IsHideNavEnabled() { // We should always be able to resize and thus hide the navpane return true; } function DoCommand(cmd, param1, param2) { switch (cmd) { case "CmdCurrentNav": gsDefaultTab = param1; break; case "CmdSkinSwfLoaded": gbSkinLoaded = true; break; case "CmdTopicIsLoaded": case "CmdTopicDisplayed": case "CmdTopicUnloaded": SendCmdToMasterHTML(cmd, param1, param2); break; case "CmdSyncTOC": // Store the information in case it is requested later gsTOCSyncInfo = param1; // Send it off SendCmdToMasterHTML(cmd, param1, param2); break; case "CmdSyncInfo": // Store the information in case it is requested later gsTOCSyncInfo = param1; break; case "CmdBrowseSequenceInfo": // Store the information in case it is requested later gsBrowseSequenceInfo = param1; // Send it off SendCmdToMasterHTML(cmd, param1, param2); break; case "CmdGetBrowseSequenceInfo": // Send it off SendCmdToMasterHTML("CmdBrowseSequenceInfo", gsBrowseSequenceInfo); break; case "CmdTopicBGColor": // Store the information in case it is requested later and send it off gnTopicBGColor = param1; SendCmdToMasterHTML(cmd, param1, param2); break; case "CmdGetTopicBGColor": SendCmdToMasterHTML("CmdTopicBGColor", gnTopicBGColor); break; case "CmdGetSkinFilename": SendCmdToMasterHTML("CmdSkinFilename", gsActiveSkinFileName); break; case "CmdDisplayTopic": // Navigate to the proper HTML file NavigateToTopic(param1, param2); break; case "CmdHideNavigation": ShowNavigationPane(false); break; case "CmdGetToolbarOrder": gbToolBarLoaded = true; CheckForPrint(); SendCmdToMasterHTML("CmdToolbarOrder", gsToolbarOrder); break; case "CmdGetNavbarOrder": SendCmdToMasterHTML("CmdNavbarOrder", gsNavigationElement); break; case "CmdShowNavigation": ShowNavigationPane(true); break; case "CmdGetSyncTOC": SendCmdToMasterHTML("CmdSyncTOC", gsTOCSyncInfo, 0); break; case "CmdIsAutoSyncTOCEnabled": SendCmdToMasterHTML("CmdAutoSyncTOCEnabled", gbAutoSync); break; case "CmdGetDefaultNav": SendCmdToMasterHTML("CmdSelectItem", gsDefaultTab, param1); break; case "CmdSetFocus": if (param1 == "Navigation") { if (window.frames["Content"].frames["bottom"].frames["Navigation Pane"]) { if (window.frames["Content"].frames["bottom"].frames["Navigation Pane"].navpaneSWF) { if (window.frames["Content"].frames["bottom"].frames["Navigation Pane"].navpaneSWF.focus) { window.frames["Content"].frames["bottom"].frames["Navigation Pane"].navpaneSWF.focus(); } } } } else if (param1 == "Topic") { window.frames["Content"].frames["bottom"].frames["Topic Pane"].focus(); } break; case "CmdPrint": PrintCurrent(); break; case "CmdInvokePoweredBy": // Create a centered window var left = (screen.width / 2) - 200; var top = (screen.height / 2) - 200; var width = 300; var height = 200; if ((gbNav) && (gbNav4) && (!gbNav6)) { width += 10; height += 10; } // Open the window if it is not already open if ((gPoweredByWindow == null) || (gPoweredByWindow.closed == true)) { // Create the parameter list var param_str = "uniqueHelpID=" + UniqueID(); param_str += "&pbpoweredby=" + gsFlashHelpVersion; param_str += "&pbgeneratedby=" + gsGeneratorVersion; param_str += "&pbaboutlabel="+param1; // Take different action depending on the browser if ((gbIE5 && gbWindows) && (!gbOpera)) { height += 30; var strWindow = 'dialogWidth:' + width + 'px;dialogHeight:' + height + 'px;resizable:no;status:no;scroll:no;help:no;center:yes;'; gPoweredByWindow = window.showModelessDialog("wf_poweredby.htm", param_str, strWindow); } else if (gbNav4 && !gbNav6) { // For NS 4, we need to use setTimeout. After changing to use fscommand to communicate with NS 4 from Flash, // NS 4 will not perform a window.open of an HTML file during the processing of an fscommand. var strURL = "wf_poweredby.htm?" + param_str; var strWindow = 'width=' + width + ',height=' + height + ',left=' + left + ',top=' + top; setTimeout("window.open('" + strURL + "', 'PoweredByWindow', '" + strWindow + "')", 100); } else if (gbIE4 && !gbIE5) { // Create the window string and add the parameters to the filename var strURL = "wf_poweredby.htm#" + param_str; var strWindow = 'width=' + width + ',height=' + height + ',left=' + left + ',top=' + top; gPoweredByWindow = window.open(strURL, 'PoweredByWindow', strWindow); } else { // Create the window string and add the parameters to the filename var strURL = "wf_poweredby.htm?" + param_str; var strWindow = 'width=' + width + ',height=' + height + ',left=' + left + ',top=' + top; gPoweredByWindow = window.open(strURL, 'PoweredByWindow', strWindow); } } else if (gPoweredByWindow != null) { gPoweredByWindow.focus(); } break; case "CmdAskIsTopicOnly": param1.isTopicOnly=false; break; case "CmdScrollbarDragStart": ScrollbarDragStart(Number(param1), Number(param2)); break; case "CmdScrollbarDragStop": ScrollbarDragStop(Number(param1), Number(param2)); break; case "CmdScrollbarDragMove": ScrollbarDrag(Number(param1), Number(param2)); break; case "CmdIsNavResizeVisible": SendCmdToMasterHTML("CmdNavResizeVisible", (gbNav4 || gbOpera) ? 1 : 0); break; case "CmdNavigationCleanupComplete": // Cleanup finished - we can now reload gbNavPaneLoaded = false; if (gbReloadNavigationOnly) { window.frames["Content"].frames["bottom"].frames["Navigation Pane"].window.location.reload(); gbReloadNavigationOnly = false; } else { window.frames["Content"].frames["bottom"].window.location.reload(); } break; case "CmdNavigationPaneLoaded": gbNavPaneLoaded = true; break; case "CmdUILoadFailure": // Inform the user and load the plain HTML version of the help system alert(param1 + " failed to load the following components:\n" + param2 + "\nThe non-Flash version of the help system will be displayed."); window.location.replace("wf_njs.htm"); break; case "CmdReloadNavigation": ReloadNavigation(); break; case "CmdCanFocusBeSet": SendCmdToMasterHTML("CmdFocusCanBeSet", ((gbIE && !gbMac) ? true : false)); break; case "CmdIsHideNavEnabled": SendCmdToMasterHTML("CmdHideNavEnabled", IsHideNavEnabled()); break; case "CmdIsHideNavEnabledForRemoteURL": SendCmdToMasterHTML("CmdHideNavEnabledForRemoteURL", IsHideNavEnabledForRemoteURL()); break; default: // See if this is a debug command and send it along to the master if (cmd.substr(0, 6) == "debug:") { SendCmdToMasterHTML(cmd, param1, param2); } break; } } // Create a unique string to ID this instance of the help system function UniqueID() { return UniqueIDString; } function TestLoaded(bVert) { gbAutoSync = 1; gsNavigationElement="Previous|Next|Sync TOC|Hide"; gsToolbarOrder="Contents|Index|Search|Glossary|Print|SearchInput|Logo/Author"; gsDefaultTab="Index"; gsActiveSkinFileName = "skin.xml"; gsFlashHelpVersion="FlashHelp 1.5"; gsGeneratorVersion="RoboHelp XX"; DoCommand("CmdSetFocus","Navigation"); } // Send the first command - setting the skin filename to the master function Loaded() { // SendCmdToMasterHTML("CmdSkinFilename", gsActiveSkinFileName); // Reset the CurFrameset Col & Row because opera will not do this on reload gsCurFramesetCol = gsDefaultFramesetCol; gsCurFramesetRow = gsDefaultFramesetRow DoCommand("CmdSetFocus","Navigation"); } var gnPans=2; var gsTopic="Your_studio_website_-_the_manual.htm"; var gsAutoSync="1"; var gbAutoSync = (gsAutoSync == "1") ? 1 : 0; var gsNavigationElement="|Hide"; var gsToolbarOrder="Contents|Index|Search|Print|SearchInput|Logo/Author"; var gsDefaultTab="Contents"; var gsActiveSkinFileName="flashhelp_default.fhs"; var gsLowCaseFileName="0"; var gsFlashHelpVersion="FlashHelp%201.5"; var gsGeneratorVersion="RoboHelp%20X5.0"; var gsResFileName="wfres.xml"; var gsToolbarPaneHeight="50"; // Set a default topic for testing if (gsTopic.substr(0, 2) == "%%") { gsTopic = "wf_topic.htm"; } if (gsToolbarPaneHeight.substr(0, 2) == "%%") { gsToolbarPaneHeight = "50"; } // Don't show the navigation pane if there is nothing to show if ((gsToolbarOrder.substr(0, 2) != "%%") && (gsToolbarOrder.indexOf('Contents') == -1) && (gsToolbarOrder.indexOf('Index') == -1) && (gsToolbarOrder.indexOf('Search') == -1) && (gsToolbarOrder.indexOf('Glossary') == -1)) { if (gbVertical) { gsCurFramesetRow = "0, *"; } else { gsCurFramesetCol = "0, *"; } } // Remove the "print" button as a possibility if the print function is not supported function CheckForPrint() { if (!window.print || (gbMac && (gbNav6 && !gbNav7)) || gbOpera) { var iPrint = gsToolbarOrder.indexOf("Print"); if (iPrint != -1) { var sNewOrder = gsToolbarOrder.substr(0, iPrint); if (gsToolbarOrder.length > iPrint + 5) { sNewOrder += gsToolbarOrder.substr(iPrint + 6, gsToolbarOrder.length); } gsToolbarOrder = sNewOrder; } } } if (location.hash.length > 1) { if (location.hash.indexOf("#<") == 0) { document.location = "whcsh_home.htm#" + location.hash.substring(2); } else if (location.hash.indexOf("#>>") == 0) { parseParam(location.hash.substring(3)); } else { var nPos = location.hash.indexOf(">>"); if (nPos>1) { gsTopic = location.hash.substring(1, nPos); parseParam(location.hash.substring(nPos+2)); } else gsTopic = location.hash.substring(1); } if (gnPans == 1 && gsTopic) { var strURL=location.href; if (location.hash) { var nPos=location.href.indexOf(location.hash); strURL=strURL.substring(0, nPos); } if (gbHasTitle) document.location=_getPath(strURL)+ "whskin_tw.htm" + location.hash; else document.location=_getPath(strURL)+ gsTopic; } } function parseParam(sParam) { if (sParam) { var nBPos=0; do { var nPos=sParam.indexOf(">>", nBPos); if (nPos!=-1) { if (nPos>0) { var sPart=sParam.substring(nBPos, nPos); parsePart(sPart); } nBPos = nPos + 2; } else { var sPart=sParam.substring(nBPos); parsePart(sPart); break; } } while(nBPos < sParam.length); } } function parsePart(sPart) { if(sPart.toLowerCase().indexOf("cmd=")==0) { gnCmd=parseInt(sPart.substring(4)); if(gnCmd == CMD_SHOWTOC) gsDefaultTab="Contents"; else if(gnCmd == CMD_SHOWINDEX) gsDefaultTab="Index"; else if(gnCmd == CMD_SHOWSEARCH) gsDefaultTab="Search"; else if(gnCmd == CMD_SHOWGLOSSARY) gsDefaultTab="Glossary"; } else if(sPart.toLowerCase().indexOf("cap=")==0) { document.title=_browserStringToText(sPart.substring(4)); gbHasTitle=true; } else if(sPart.toLowerCase().indexOf("pan=")==0) { gnPans=parseInt(sPart.substring(4)); } else if(sPart.toLowerCase().indexOf("pot=")==0) { gnOpts=parseInt(sPart.substring(4)); } else if(sPart.toLowerCase().indexOf("pbs=")==0) { var sRawBtns = sPart.substring(4); var aBtns = sRawBtns.split("|"); for (var i=0;i