/********************************************************************* --- flashcommand : fscommand handler functions --- version 5.0.0 This is the general fscommand handler for ALL output formats *********************************************************************/ /////////////////////////////////////////////////////////////////////////// // Global Vars /////////////////////////////////////////////////////////////////////////// var DATA_PATH = "data/swf/"; var FLASH_WND_WIDTH = 40; var FLASH_WND_HEIGHT = 30; var SWF_BASE_WIDTH = 980; var SWF_BASE_HEIGHT = 640; var WEBOBJ_LEFT = 254; var WEBOBJ_TOP = 36; if (FF1 || NS6plus) { WEBOBJ_LEFT = 253; WEBOBJ_TOP = 34; } if (!g_bScaleSwf) { WEBOBJ_LEFT -= 8; WEBOBJ_TOP -= 4; strSwfWidth = 992; strSwfHeight = 652; } var WEBOBJ_DISPLAY3_XPOS_ADJUST = 150; var WEBOBJ_DISPLAY3_YPOS_ADJUST = 20; var WEBOBJ_DISPLAY2_XPOS_ADJUST = 119; // Browser Resize var g_ResizeTimeout; var g_strQMPath; /////////////////////////////////////////////////////////////////////////// // Utility Functions /////////////////////////////////////////////////////////////////////////// function Click() { alert("Test"); } function CreateBookmark(args, bSlide) { if (!Opera7plus && IE4plus) { var nSlideNum = args.substring(0,args.indexOf("|")); var strTitle = args.substring((args.indexOf("|")+1),args.length); var _proto = document.location.protocol; var _host = document.location.host; var _pathname = document.location.pathname; var _search = document.location.search; var newpath = ""; var newUrl = ""; var nPos = 0; nPos = _pathname.lastIndexOf("/"); if (nPos <= 0) { nPos = _pathname.lastIndexOf("\\"); } if ( nPos < _pathname.length) { // if / is not the last char grab the trailing "/" nPos++; } if (_search.indexOf("akpDocumentID",0) < 0) { newpath = _pathname.substr(0, nPos) + "player.html"; newUrl = _proto + "//" + _host + newpath +"?slide=" + nSlideNum; } else { did = _search.substring((_search.lastIndexOf("akpDocumentID") + ("akpDocumentID").length+1), _search.length); newpath = "/Portal/Storage/DownloadDocument.aspx?DocumentID=" + did; newUrl = _proto+"//"+ _host + newpath + "?slide="+ nSlideNum; } if (bSlide) { strTitle = strTitle + " - Powered by Articulate "; } else { strTitle = strTitle + " Slide "+ nSlideNum +" - Powered by Articulate "; } window.external.AddFavorite(newUrl, strTitle); } else { var strErr = "Your browser does not support automatic bookmarking.\nTo bookmark this presentation, please create a bookmark \non the web page that launched this window."; alert(strErr); } } function OpenFlashObjectWnd(args) { str = args; params = str.split("|"); var strContainerType = params[0]; // Unused var strFilename = params[1]; var nXPos = parseInt(params[2]); // Unused var nYPos = parseInt(params[3]); // Unused var nWidth = parseInt(params[4]); var nHeight = parseInt(params[5]); var strBrowserOptions = params[6]; var re = /width=0/gi; ww = strBrowserOptions.search(re); re = /height=0/gi; wh = strBrowserOptions.search(re); // If the width and height are 0 set to Full screen if ((ww >= 0 && wh >= 0) || (nWidth ==0 && nHeight==0)) { nWidth = window.screen.availWidth; nHeight = window.screen.availHeight; } else { nWidth += FLASH_WND_WIDTH; nHeight += FLASH_WND_HEIGHT; } // Put the width,height settings into opener options here, strBrowserOptions += ", width=" + nWidth + ",height=" + nHeight; // Get the HTML filename var filebase = strFilename.substring(0,strFilename.toLowerCase().indexOf(".swf")); // Display the Flash Object var wndFlashObj = window.open(DATA_PATH + filebase + ".html", "flashobjectwin", strBrowserOptions); wndFlashObj.focus(); } function OpenWebObjectWnd(args) { str = args; params = str.split("|"); var strContainerType = params[0]; // Unused var strObjectType = params[1]; // Unused var nXPos = params[2]; // Unused var nYPos = params[3]; // Unused var nWidth = params[4]; var nHeight = params[5]; var strBrowserOptions = params[6]; var strMode = params[7]; // Unused var strUrl = params[8]; //Check for repository: if (strUrl.toLowerCase().indexOf("repository://") == 0) { strUrl = "/Portal/Storage/Viewers/ArtPlayer/FollowLink.aspx?file=" + strUrl; } var re = /width=0/gi; ww = strBrowserOptions.search(re); re = /height=0/gi; wh = strBrowserOptions.search(re); // If the width and height are 0 set to Full screen if ((ww >= 0 && wh >= 0) || (nWidth ==0 && nHeight==0)) { nWidth = window.screen.availWidth; nHeight = window.screen.availHeight; strBrowserOptions += ",width="+nWidth+",height="+nHeight+",left=0,top=0,screenX=0,screenY=0"; } else { strBrowserOptions += ",width=" + nWidth + ",height=" +nHeight; } //--Setup the Window.open Target Url to popup and populate: var wndWebObj = window.open(strUrl, "mediaobjectwin", strBrowserOptions); wndWebObj.focus(); } function ShowWebObjectDiv(args) { str = args; params = str.split("|"); var strContainerType = params[0]; // Unused var strObjectType = params[1]; // Unused var nXPos = parseInt(params[2]); var nYPos = parseInt(params[3]); var nWidth = parseInt(params[4]); var nHeight = parseInt(params[5]); var strBrowserOptions = params[6]; var strMode = params[7]; // scale modes var strUrl = params[8]; //Check for repository:// string// if (strUrl.toLowerCase().indexOf("repository://") == 0) { strUrl = "/Portal/Storage/Viewers/ArtPlayer/FollowLink.aspx?file=" + strUrl; } //- (iframe) -// if (g_bWebObject) { // Set the global values g_bWebObjDisplay = true; g_nWebXPos = nXPos; g_nWebYPos = nYPos; g_nWebWidth = nWidth; g_nWebHeight = nHeight; g_strWebMode = strMode; // Set the URL var myIFrame = document.getElementById("eIFContent"); myIFrame.src = strUrl; // Adjust the Size and position ResizeWebObject(); } else { //alert("Can't find a media layer. Opening in a new window instead."); window.open(strUrl, "webobjectwin", "width=700,height=500,"+strBrowserOptions); } } function HideWebObjectDiv(args) { //clear the iframe if (g_bWebObject) { g_bWebObjDisplay = false; // Make the WebObject Small for Firefox g_nWebWidth = 5; g_nWebHeight = 5; ResizeWebObject(); // Set the layer to be invisible var layerWebObject = document.getElementById("eLayer1"); layerWebObject.style.visibility = 'hidden'; // Fill with blank page var myIFrame = document.getElementById("eIFContent"); myIFrame.src = "player/blank.html"; } } function SetDisplayMode(args) { var params = args.split("|"); currentDisplayMode = params[0]; if (g_bWebObjDisplay) { ResizeWebObject(); } } function ShowMediaObject(args) { //rightclick insert webobject, display in new window// str = args; params = str.split("|"); var _url = params[0]; var _options = params[1]; //--Launch a new window with the specifed parameters and content: window.open(_url, "mediaobjectwin", _options); } function SendQuiz() { g_strQuizResults = g_strQuizResults.replace(/'/g,"'"); var sHTML = ""; sHTML += '
'; document.getElementById("divQuiz").innerHTML = sHTML; document.getElementById("divQuiz").document.getElementById("formQuiz").submit(); } function GetBasePath() { var strFullPath = document.location.href; var nPos1 = -1; var nPos2 = -1; nPos1 = strFullPath.lastIndexOf("\\"); nPos2 = strFullPath.lastIndexOf("/"); if (nPos2 > nPos1) { nPos1 = nPos2; } if (nPos1 >= 0) { strFullPath = strFullPath.substring(0, nPos1 + 1); } return(strFullPath); } /////////////////////////////////////////////////////////////////////////// // Resize Event /////////////////////////////////////////////////////////////////////////// var g_resizeTimer; var g_nWebXPos = 0; var g_nWebYPos = 0; var g_nWebWidth = 0; var g_nWebHeight = 0; var g_bWebObjDisplay = false; var g_strWebMode = "scaleall"; function ResizeWebObject() { var layerWebObject = document.getElementById("eLayer1"); var myIFrame = document.getElementById("eIFContent"); var nWidth = g_nWebWidth; var nHeight = g_nWebHeight; var nXPos = g_nWebXPos; var nYPos = g_nWebYPos; // Calculate the Ratio and Offsets var swfMovie = thisMovie('player'); if (!swfMovie.clientHeight) { swfMovie = document.getElementById("player"); } var nSwfXPos = swfMovie.offsetLeft; var nSwfYPos = swfMovie.offsetTop; var nSwfHeight = swfMovie.clientHeight; var nSwfWidth = swfMovie.clientWidth; if (isMac && IE5) { nSwfWidth = swfMovie.width; if (swfMovie.width == "100%") { nSwfWidth = document.body.clientWidth; } nSwfHeight = swfMovie.height; if (swfMovie.height == "100%") { nSwfHeight = document.body.clientHeight; } } var nWRatio = nSwfWidth / SWF_BASE_WIDTH; var nHRatio = nSwfHeight / SWF_BASE_HEIGHT; var nRatio = 1; var nLeftOffset = 0; var nTopOffset = 0; // Adjust the Width and the height for firefox if (FF1 || NS6plus) { nWidth -= 5; nHeight -= 5; } //Handle special Mode 2 and 3 cases: if (currentDisplayMode == 3) { nXPos -= WEBOBJ_DISPLAY3_XPOS_ADJUST; nYPos -= WEBOBJ_DISPLAY3_YPOS_ADJUST; nXPos *= 1.13; nYPos *= 1.13; nWidth *= 1.13; nHeight *= 1.13; } else if (currentDisplayMode == 2) { nXPos -= WEBOBJ_DISPLAY2_XPOS_ADJUST; } if (nHRatio < nWRatio) { nRatio = nHRatio; nLeftOffset = (nSwfWidth - (SWF_BASE_WIDTH * nRatio)) / 2; } else { nRatio = nWRatio; nTopOffset = (nSwfHeight - (SWF_BASE_HEIGHT * nRatio)) / 2; } strMode = "scaleall"; if ((g_strWebMode == "") || (g_strWebMode == "scaleall")) { factorSize = nRatio; factorPosition = nRatio; } if (g_strWebMode =="scaleposition") { factorSize = 1; factorPosition = nRatio; } if (g_strWebMode == "scalesize") { factorSize = nRatio; factorPosition = 1; } if (g_strWebMode == "absolute") { factorSize = 1; factorPosition = 1; } iLeft = (WEBOBJ_LEFT + nXPos) * factorPosition + nLeftOffset; iTop = (WEBOBJ_TOP + nYPos) * factorPosition + nTopOffset; iWidth = nWidth * factorSize; iHeight = nHeight * factorSize; //Resize the layer layerWebObject.style.left = nSwfXPos + iLeft; layerWebObject.style.top = nSwfYPos + iTop; layerWebObject.style.width = iWidth; layerWebObject.style.height = iHeight; layerWebObject.style.visibility = 'visible'; // Resize the IFrame myIFrame.style.width = iWidth; myIFrame.style.height = iHeight; } function WindowResize() { // Notify the swf that we have resized. This is for // text that does not scale properly if (g_bScaleSwf) { // Make sure that we don't send 100 resize messages in a row clearTimeout(g_ResizeTimeout); g_ResizeTimeout = setTimeout("NotifySwfResize()", 200); } // Resize the Web Object if (g_bWebObjDisplay) { ResizeWebObject(); } } function NotifySwfResize() { var swfMovie = thisMovie('player'); swfMovie.SetVariable("g_Resize.Trigger", "1"); } function SetBgColor(strColor) { var strTemp = ""; if (IE4 && !Opera && !isMac) { strTemp = "0x" + strColor; document.bgColor = parseInt(strTemp); } else { strTemp = "#" + strColor; document.bgColor = strTemp; } } window.onresize = WindowResize; var g_strAttachment = ""; function OpenAttachment() { if (IESP2) { try { window.open('player/attach.html?' + GetBasePath() + g_strAttachment,"attach") } catch (e) { if (e.number == -2147024891) { alert("For viewing attachments when presentation is not playing from a website, view the Knowledge Base article located at http://kb.articulate.com/kb/000669.php") } } } else { window.open(GetBasePath() + g_strAttachment); } } //////////////////////////////////////////////////////////////////////////////// // Results Screen Code //////////////////////////////////////////////////////////////////////////////// var g_arrResults = new Array(); var g_oQuizResults = new Object(); function QuestionResult(nQuestionNum, strQuestion, strResult, strCorrectResponse, strStudentResponse, nPoints) { if (nPoints < 0) { nPoints = 0; } if (strCorrectResponse == "") { strCorrectResponse = " "; } this.nQuestionNum = nQuestionNum this.strQuestion = strQuestion; this.strCorrectResponse = strCorrectResponse; this.strStudentResponse = strStudentResponse; this.strResult = strResult; this.nPoints = nPoints; this.bFound = false; } function StoreResult(args) { var arrParams = args.split("|$:$|"); var oQuestionResult = new QuestionResult(parseInt(arrParams[0]) + 1, arrParams[1], arrParams[2], arrParams[3], arrParams[4] ,arrParams[5]); var nIndex = g_arrResults.length; // Lets see if we have answered the question before for (var i = 0; i < g_arrResults.length; i++) { if (g_arrResults[i].nQuestionNum == oQuestionResult.nQuestionNum) { nIndex = i; break; } } g_arrResults[nIndex] = oQuestionResult; } function StoreQuizResult(args) { var arrParams = args.split("|$:$|"); g_oQuizResults.dtmFinished = new Date(); g_oQuizResults.strResult = arrParams[0]; g_oQuizResults.strScore = arrParams[1]; g_oQuizResults.strPassingScore = arrParams[2]; } function ShowResult(args) { var arrData = args.split(";"); if (!g_oQuizResults.oOptions) { g_oQuizResults.oOptions = new Object(); } g_oQuizResults.oOptions.bShowUserScore = (arrData[0] == "1"); g_oQuizResults.oOptions.bShowPassingScore = (arrData[1] == "1"); g_oQuizResults.oOptions.bShowShowPassFail = (arrData[2] == "1"); g_oQuizResults.oOptions.bShowQuizReview = (arrData[3] == "1"); g_oQuizResults.oOptions.strResult = arrData[4]; g_oQuizResults.oOptions.strName = arrData[5]; window.open(GetBasePath() + g_strQMPath + "report.html", "Reports") } //////////////////////////////////////////////////////////////////////////////// // Zoom code //////////////////////////////////////////////////////////////////////////////// var g_oZoomInfo = new Object(); var g_wndZoom; function PopZoomImage(strFileName, nWidth, nHeight) { var strScroll = "0"; g_oZoomInfo.strFileName = strFileName; g_oZoomInfo.nWidth = parseInt(nWidth); g_oZoomInfo.nHeight = parseInt(nHeight); if (g_oZoomInfo.nWidth > screen.availWidth) { g_oZoomInfo.nWidth = screen.availWidth; strScroll = "1"; } if (g_oZoomInfo.nHeight > screen.availHeight) { g_oZoomInfo.nHeight = screen.availHeight; strScroll = "1"; } var strOptions = "width=" + g_oZoomInfo.nWidth +",height=" + g_oZoomInfo.nHeight + ", status=0, toolbar=0, location=0, menubar=0, scrollbars=" + strScroll; if (g_wndZoom) { try { g_wndZoom.close() } catch (e) { } } g_wndZoom = window.open(GetBasePath() + g_strQMPath + "zoom.html", "Zoom", strOptions); } /////////////////////////////////////////////////////////////////////////// // Flash Command Handler /////////////////////////////////////////////////////////////////////////// function player_DoFSCommand(command, args) { switch (command) { case "bookmark_presentation": CreateBookmark(args, false); break; case "bookmark_slide": CreateBookmark(args, true); break; case "hyper_flashobject": OpenFlashObjectWnd(args); break; case "hyper_webobject_newwindow": OpenWebObjectWnd(args); break; case "hyper_webobject_inplayer": ShowWebObjectDiv(args); break; case "hyper_webobject_inplayer_hide": HideWebObjectDiv(args); break; case "ART_displaymode": SetDisplayMode(args); break; case "hyper_mediaobject": ShowMediaObject(args); break; case "ART_CloseAndExit": if (!g_bLMS) { top.window.close(); } break; case "ART_SetBgBolor": SetBgColor(args); break; case "ART_Attachment": g_strAttachment = args; if (IESP2) { OpenAttachment() } else { setTimeout("OpenAttachment()", 100) } break; // Email Handlers case "emailEmail": g_strEmail = args; break; case "QuizResults": case "Quiz Results": g_strQuizResults = args; break; case "emailSubject": g_strSubject = args; break; case "emailSubmit": SendQuiz(); break; // QM Handlers case "SetQMPath": g_strQMPath = args; break; case "StoreQuestionResult": StoreResult(args); break; case "StoreQuizResult": StoreQuizResult(args); break; case "DisplayPrintScreen": ShowResult(args); break; case "ART_QMAttachment": g_strAttachment = g_strQMPath + args; if (IESP2) { OpenAttachment() } else { setTimeout("OpenAttachment()", 100) } break; case "QM_ZoomImage": var arrData = args.split(";"); PopZoomImage(arrData[0], arrData[1], arrData[2]); break; } if (g_bLMS) { customFScommandHandler(command, args); //found in Lms.js } }