/* Built by Gulp on Thu May 05 2016 15:30:34 GMT+0100 (BST) */ {"version":3,"sources":["ExternalInterface.js","htmlMediaComponents.js","_boot.js","Audio.js","Image.js","Line.js","Oval.js","ProgressBar.js","QuestionDragAndDrop.js","QuestionMultipleChoice.js","Rectangle.js","SpeechBubble.js","Summary.js","Swf.js","Textfield.js","Triangle.js","Video.js","YouTube.js","InteractionsManager.js","PropExtractor.js","QuestionButtonsDefault.js","TimelineManager.js","ButtonSetsMatcher.js","CourseMenu.js","GlossaryScreen.js","HelpScreen.js","ResourcesScreen.js","Shell.js","applyCssArray.js","DropShadow.js","escapeRegExp.js","FontManager.js","getBool.js","getButtonMapping.js","getExternalScriptName.js","getQueryString.js","getRandomNumber.js","isArray.js","ModalMsgBox.js","PlugsManager.js","PointerEvents.js","stringToFunction.js","Player.js","SwfPlayer.js","Main.js"],"names":["goURL","strURL","$","ln","trigger","parent","onYouTubeIframeAPIReady","youtube","createPlayer","window","console","log","dir","version","useFlashSolution","usePngFix","usePngFixShim","showPlayerOnly","extend","ns","ns_string","pl","i","parts","split","slice","length","initShell","domRef","shell","sh","Shell","objects","Audio","playerRef","jQueryContainer","uniqueNum","init_props","oFamily","oType","this","player","num","props_init","props","Object","uID","attr","css","timeline_manager","interactions_manager","isReady","mediaLoaded","mediaPlayedToEnd","mediaDuration","controlsTimeline","isPaused","pausedTimeCode","playEventTimecode","append","domRefPlayer","audio","domRefID","mediaURL","mediaFile","mediaID","extractProps","prototype","common","PropExtractor","parseProps","TimelineManager","SyncsTo","PATH_MEDIA","decodeURIComponent","Media","preloadAudioOpts","type","url","success","mediaDownloadCompleted","error","mediaDownloadError","cache","context","ajax","mediaDownloadProgress","duration","setMediaLength","data","textStatus","request","settings","exception","noty","text","buttons","addClass","onClick","$noty","preload","stop","close","getPlayEvent","getFirstEventOfType","getMediaLength","parseInt","playheadTick","mediaTimecode","timelineCurrent","timelineTick","Math","round","mediaPlay","jPlayer","mp3","bind","event","progress","_this","e","status","ended","mediaEnded","durationchange","timeupdate","currentTime","timelineStop","mediaPause","mediaStop","src","indexOf","unbind","timelineStart","Image","domRefImg","children","domRefStr","imgUnscaledWidth","imgUnscaledHeight","imgScaledWidth","imgScaledHeight","importedScaleX","importedScaleY","roundingAll","roundingTL","roundingTR","roundingBR","roundingBL","scaledFrameRounding","scaledFrameThickness","InteractionsManager","RequireClickForScreenCompletion","Parent","hasOwnProperty","arrCorners","CornersRounded","FrameRounding","RoundingTL","RoundingTR","RoundingBR","RoundingBL","X","Y","Z","applyTransforms","load","postImgLoadedProps","Rotation","Scale","ScaleX","ScaleY","Frame","FrameThickness","FrameCol","substr","FrameAlpha","strBorderRadius","ds","util","DropShadow","FilterDropShadow","Line","boundingBox","paper","theLine","importedLineCol","importedLineThickness","importedLineAlpha","LineColour","FrameColour","LineThickness","LineAlpha","Variation","getBox","height","width","Raphael","find","xOffset","yOffset","drawLine","LineControlPointX","LineControlPointY","LineEndPosX","LineEndPosY","startX","startY","controlX","controlY","endX","endY","xMin","xMax","yMin","yMax","abs","oBox","linePath","path","LineStyle","DashSize","dashGapsSize","Oval","theOval","importedHeight","importedWidth","ExternalHeight","Height","ExternalWidth","Width","drawOval","halfWidth","halfHeight","halfStroke","ellipse","FillColour","FillAlpha","ProgressBar","col1","col2","pauseButtonOffset","pointerEvents","PointerEvents","lastKnownTimelinePosition","domRefPauseBtn","domRefPauseBtnGradient","domRefPauseBtnFill","domRefPauseBtnSymbol","domRefPauseBtnSymbol1","domRefPauseBtnSymbol2","domRefBG","domRefGradient","domRefFill","domRefLeftText","domRefRightText","domRefHandle","cssPauseButton","BarCol","cssPauseButtonFill","cssPauseButtonGradient","cssPauseButtonSymbolContainer","cssPauseButtonSymbol1","cssPauseButtonSymbol2","cssBg","cssGradient","cssFill","cssHandle","cssTextLeft","cssTextRight","applyCssArray","ExternalHeght","ShowPauseButton","click","self","pauseButtonClicked","timelineTogglePause","setHandlePosition","timelineLength","percDone","percStep","pixelsDone","handleHalfWidth","leftText","getFriendlyTimecode","rightText","ms","totalSeconds","floor","minutes","seconds","cleanup","QuestionDragAndDrop","interval","buttonSet","externalButtonSetLoaded","externalButtonSetScriptName","domRefButtons","childrenReady","numDraggables","arrDraggables","Array","arrDraggablesDepths","arrDropTargets","numDropTargets","draggablesOutlineWeight","draggablesColStrokeSelected","draggablesColStrokeOver","draggablesColFillSelected","draggablesColFillOver","draggablesColFillOverSelected","draggablesColStrokeCorrect","draggablesColStrokeWrong","buttonsEnabled","intAttemptsMade","intAllowedAttempts","questionState","draggingJQ","draggingJS","draggingIndex","xMouseDiff","yMouseDiff","q","answersCheck","answersShowCorrect","answersReset","DraggablesAndAnswers","DropTargetsObjects","AllowedAttempts","AnswerStacking","undefined","setupButtonsDefault","checkChildrenBegin","jsButtonSet","ButtonSetsMatcher","getScript","getJsMedia","done","script","getExternalScriptName","fail","jqxhr","newButtonSet","stringToFunction","ButtonCol","QuestionButtonsDefault","setupButtonDefaults","questionDisable","disableQuestionButtons","disableDraggables","questionEnable","updateQuestionUI","enableQuestionButtons","enableDraggables","dropDraggableObj","draggableJS","draggableJQ","draggableIndex","dropX","dropY","foundTarget","targetJQ","targetBounds","offset","left","top","okX","okY","AllowMultipleChoices","occupied","j","currentAnswerID","currentAnswerJS","currentAnswerJQ","AutoCheckAnswer","showCorrect","objLastCoord","updateQuestionUI_showCorrect","animate","dd_lastDroppedLeft","dd_lastDroppedTop","dd_originalLeft","dd_originalTop","newX","boxX","newY","boxY","dropTargetStacks","animCount","animDelay","push","targetID","draggables","delay","dd_showCorrectLeft","dd_showCorrectTop","dropTargetJQ","boxLeft","boxWidth","boxRight","boxXCentre","boxTop","boxHeight","boxBottom","boxYCentre","intAnswersWidth","intAnswersHeight","intGaps","intMargin","o","intXGap","intYGap","lastDropped","k","draggableID","topOfPile","objW","objH","objXOffset","objYOffset","lastDroppedX","lastDroppedY","lastDroppedW","lastDroppedH","lastDroppedXOffset","lastDroppedYOffset","moveToX","moveToY","draggableData","droppedJQ","droppedBounds","targetCentreX","objInBoxAlready","targetCentreY","topObj","swapZ","highestZ","depth","topObjID","arrTemp","ref","sort","a","b","draggableEndDrag","pageX","pageY","draggableStartDrag","preventDefault","selfJQ","hasClass","selfJS","index","Modernizr","pointerevents","originalEvent","touches","draggableMove","draggablePointerOver","question","draggablePointerOut","down","over","out","DrawChoiceRollovers","document","body","move","up","enableButtonShowCorrect","enableButtonReset","enableButtonSubmit","disableButtonsAll","hideButtonsAll","hideButtonReset","hideButtonSubmit","disableButtonShowCorrect","disableButtonReset","disableButtonSubmit","hideButtonShowCorrect","enableShowCorrectQuestionButtonOnly","ShowCorrectOnFail","questionPlayAudio","QuestionAudioObj","doFeedbackReset","playLastFeedback","thisPointer","setInterval","checkChildrenAreReady","checkChildrenSuccessful","clearInterval","initDraggables","rawDraggablesAndAnswers","targets","draggableName","shift","oDraggable","correctShown","correctTargetsID","correctTargetsJS","correctTargetsJQ","QuestionTextObj","PassedFeedbackTextObj","FailedFeedbackTextObj","IncorrectFeedbackTextObj","ShowCorrectFeedbackTextObj","PassedFeedbackAudioObj","FailedFeedbackAudioObj","IncorrectFeedbackAudioObj","ShowCorrectFeedbackAudioObj","numChoices","fadeTo","doFeedbackPassed","doFeedbackFailed","doFeedbackIncorrect","doFeedbackShowCorrect","blnError","foundMatch","questionDone","AutoShowCorrectOnFail","strTargets","join","foundDuplicates","duplicatesSet","m","screenType","setScreenStatus","QuestionMultipleChoice","arrChoices","arrCurrentAnswers","arrCorrectAnswers","ChoiceObjects","rawCorrectAnswers","CorrectAnswers","disableQuestionChoices","enableQuestionChoices","$choiceObj","choiceObj","swfChoice","$swfChoice","jsContent","domRefContent","enable","thisJS","thisJQ","setChoiceSelection","questionChoiceID","touchevents","questionChoiceStatus","disable","initQuestionChoiceObjects","swfChoiceObj","init","questionChoiceSelected","objJS","choiceJS","colFill","colBorder","colStrokeSelected","colStrokeOver","colFillSelected","colFillOver","colFillOverSelected","colStrokeCorrect","colStrokeWrong","questionChoiceUIUpdate","objJQmove","objJQpaint","offsetAmount","choiceID","swfVal","reset","Rectangle","domRefStroke","arrFrameRounding","SpeechBubble","domRefPlayerLines","domRefLines","theBubble","bubbleWidth","bubbleHeight","bubblePointX","bubblePointY","bubblePointBaseLeft","bubblePointBaseRight","negativePointOffsetX","bubbleCanvasWidth","arrBubbleVals","BubbleVals","bubbleCanvasHeight","drawBubble","fo","po","fr","bw","bh","bpbr","bpbl","bpx","bpy","bubblePath","clear","Summary","poolRawScore","poolMaxRawScore","poolScore","poolPassMark","poolInfo","poolRawMaxScore","poolMaxScore","playAssessmentPoolFeedback","_domRef","PassedTextObj","FailedTextObj","PassedImageObj","FailedImageObj","PassedAnimationObj","FailedAnimationObj","ScoreTextObj","PassedAudioObj","FailedAudioObj","setSummaryScoreText","initAssessmentPoolFeedback","Swf","fontManager","fontMgr","mediaExternalScriptName","getSwfToJsReplacement","replace","dataType","externalJsLoadSuccess","externalJsLoadError","swfToReplace","mediaPath","js","jsProps","ThemeCol","LabelCol","Label","SwfWidth","SwfHeight","file","Textfield","styles","styleElementToApply","font","loadFont","mediaSet","domRefBullet","domRefText","checkTextHeightInterval","leading","hasHyperlink","isStyleAvailable","styleIdToFind","id","name","TextFieldWidth","ObjStyle","parseFlashText","HtmlTxt","BG","BGCol","Border","BorderCol","TextOffsetX","remove","checkTextHeightExist","updateHeight","bulletWidth","textCurrentX","textNewX","outerHeight","TextOffsetY","applyTextfieldStyle","styleFont","style","bold","toLowerCase","italic","underline","align","size","color","font-family","font-weight","font-style","text-decoration","line-height","text-align","font-size","first","strText","oParent","arrTopFontNodes","oTopFontNode","oNewTopFontNode","oOut","createElement","textFormatCount","strPreparedFlashText","prepareFlashHtml","$preparedText","each","newWidth","parseFontNode","node","textfieldObjectRef","getNodes","jqNode","newNode","is","html","newTree","getTextNodesIn","includeWhitespaceNodes","getTextNodes","nodeType","whitespace","test","nodeValue","textNodes","len","childNodes","strOut","$text","textnodes","wrap","numTextformats","paragraphs","oldHtml","Triangle","theTriangle","drawTriangle","stroke","shapeType","trianglePath","ShapeVariation","TriangleType","Video","video","stalledInterval","stalledTimer","stalledCheckGap","stalledMaxDuration","progressMaxDuration","overallMaxDuration","progressTimeout","overallTimeout","canPlay","canPlayThrough","hadProgress","percLoaded","lastPercLoaded","mediaFLV","mediaMP4","optimisticLoadCheckIgnored","unscaledWidth","unscaledHeight","scaledWidth","scaledHeight","jPlayerRef","alpha","_player","Alpha","setAndPreloadVideo","prefix","flash","active","flv","m4v","canplay","mediaCanPlay","canplaythrough","mediaCanPlayThrough","loadeddata","mediaLoadedData","loadedmetadata","mediaLoadedMetaData","stalled","mediaStalled","waiting","mediaWaiting","mediaError","play","preloadPlayHandler","pause","preloadPauseHandler","hint","message","mediaStalledIntervalHandler","currentTarget","paused","clearTimeout","checkMediaLoaded","setMediaLoaded","setDimensions","setTimeout","overallTimeoutHandler","progressTimeoutHandler","bufferedRanges","bufferedRangeStart","bufferedRangeEnd","bufferedRange","bufferedTotal","bufferedString","buffered","start","end","readyState","videoWidth","videoHeight","refreshDom","hide","show","parkPlayer","YouTube","isPlaying","youTubeState","youtubePlayerRef","loadVideoById","VideoID","setSize","addEventListener","stateChanged","Number","newState","pauseVideo","getDuration","playVideo","getCurrentTime","stopVideo","seekTo","objRef","requireClick","optPassThrough","rawEvents","MouseEvents","arrMouseEvents","blnMouseEventsSet","passThrough","mouseState","lastNoInteractionObj","clickThisToCompleteScreen","mouseOverEvtIDs","mouseOutEvtIDs","mouseClickEvtIDs","handCursor","MouseEventsHandCursor","setMouseInteractions","interactionsDisabled","handleNoMouseInteractions","anchors","anchor","x","y","pointerCoords","getEventCoordinates","xOK","yOK","comms","numMouseEvents","isNaN","splice","handleInteraction","sendClickToPlayer","eCoords","changedTouches","screenX","screenY","objBelow","elementFromPoint","objBelowParent","parents","objWithInteractionsFound","traversedObjects","numTraversedObjects","hasInteractions","traversing","eventIndex","interaction","getInteractionObject","numInteractionObjs","action","noParams","params","rawProps","oID","retProps","value","parentID","col","cssButtonBase","border","-moz-border-radius","-webkit-border-radius","border-radius","cursor","overflow","background","cssButtonComponents","position","cssButtonHidden","opacity","display","cssButtonDisabled","cssButtonEnabled","cssButtonBG","cssButtonBgGradients","domRefButtonReset","lang","bundle","player_question_reset","domRefButtonShowCorrect","player_question_showCorrect","domRefButtonSubmit","player_question_checkAnswer","TLEvents","arrTimelineEvents","arrTimelineEventsLength","arrEventsDone","evtsSplit","TLCheckEvent","timecode","TLDoEvent","evt","evtID","superquick","evtName","evtStartVal","evtEndVal","evtLength","isFirstAlphaInEvent","eventType","evtInfo","evtTimecode","mediaInfo","mediaRaw","mediaPathJs","buttonSetsPath","retVal","CourseMenu","shellRef","animDuration","isReset","askToResume","screen_w_diff","screen_h_diff","aux_screen_w","aux_screen_h","screen_w","screen_h","resizer","unitsOnly","numModules","lesson_super_sections_names","numSuperSections","item_status_notAttempted","item_status_unfinished","item_status_completed","item_status_passed","item_status_failed","course_menu_theme_bg_col","divBackground","divModules","divUnits","divLegend","divLaunchUnit","divLaunchUnitContents","divResumePopup","divResumePopupContents","course_menu_theme_bg_img","course_menu_theme_bg_img_alpha","themeCSS","course_menu_theme_section_bg_fill_default_col","course_menu_theme_section_bg_fill_rollover_col","course_menu_theme_section_bg_border_default_col","course_menu_theme_section_bg_border_rollover_col","course_menu_theme_section_txt_default_col","course_menu_theme_section_txt_rollover_col","buildUnitsMenu","buildModulesMenu","updateDisplayedScores","screen_width_diff","screen_height_diff","aux_screen_width","aux_screen_height","screen_width","screen_height","bgWidth","bgHeight","courseMenuHeight","courseMenuWidth","listHeight","listTop","barHeight","getCssClassNameFromStatus","newModule","statusClass","getSectionStatus","lesson_super_sections","lesson_section_descriptions","courseMenu","moduleName","moduleSectionIndex","firstTime","moduleClicked","marginTop","lesson_section_ids","getSectionIsModule","newUnit","unitName","unitDescription","unitSectionIndex","unitClicked","moduleDescrRef","unitPopupShow","completionRequirementSatisfied","getCompletionRequirementSatisfied","courseMenu_completionRequirementNotSatisfied","courseMenu_button_launch","courseMenu_button_close","launchUnit","unitPopupHide","fadeIn","empty","navToScreen","getFirstScreenInUnit","aggScoreMax","scoreMax","updateScores","updateScoStatus","course","get_item_status_langString","sco_status","courseMenu_legend_aggregateScore","aggScoreRaw","aggScorePerc","courseMenu_legend_allScore","scoreRaw","scorePerc","setResumeScreen","screenNumber","resumeBookmarkBarShow","langMsg","courseMenu_bookmark_bar_resume_message_click","courseMenu_bookmark_bar_resume_message_tap","before","courseMenu_button_bookmark_bar_ignore","resumeBookmarkBarHide","resumeCoursePopupShow","courseMenu_resume_course_popup_title","courseMenu_resume_course_popup_description","courseMenu_button_resume_course_yes","courseMenu_button_resume_course_no","screen","resumeCourse","resumeCoursePopupHide","screenToResume","GlossaryScreen","letters","numLetters","glossary_title","glossary_btn_close","divListContainer","pointerEventsCloseButton","glossaryScreen","buildList","glossaryHeight","glossaryWidth","listLeft","numDefinitions","glossary_items","newLetter","letter","newGlossaryItem","term","definition","itemIndex","listItemClicked","marginBottom","HelpScreen","PATH_HELP_CONTENT","shellGetHelpContentsPath","langID","help_title","help_btn_close","divHelpContent","helpScreen","helpWidth","helpHeight","contentTop","contentLeft","helpContentLoaded","domRefTitle","domRefSegments","domRefPosition","domRefPositionTotal","domRefPositionCurrent","currentSection","screens","update","section","getScreensInUnit","paint","currentScreen","lesson_location","arrScreens","title","sectionPosition","classes","ResourcesScreen","resources_title","resources_btn_close","resourcesScreen","resourcesHeight","resourcesWidth","numResources","resources_items","newResource","description","resources_btn_tap_view_resource","resources_btn_click_view_resource","resourceIndex","listItemButtonClicked","stopPropagation","domRefShellBackgroundImage","domRefAudioPlayer","domRefCourseTitle","txt_posx1","domRefCourseMenu","domRefResourcesScreen","domRefGlossaryScreen","domRefHelpScreen","domRefCertificateScreen","domRefCreditsScreen","domRefCreditsContentFrame","domRefHeaderButtons","domRefFooterButtons","domRefButtonCourseMenu","shell_menuItem_courseMenu","domRefButtonResources","shell_menuItem_resources","domRefButtonGlossary","shell_menuItem_glossary","domRefButtonCertificate","shell_menuItem_certificate","domRefButtonHelp","shell_menuItem_help","domRefButtonExit","shell_menuItem_exit","domRefProgressBar","domRefButtonPrevious","shell_button_previous","domRefButtonReplay","shell_button_replay","domRefButtonNext","shell_button_next","domRefLogo1","domRefLogo2","headerLogoMaxWidth","headerLogoMaxHeight","SCO_PATH_AND_FILE_NAME","shellGetScoXMLPath","SETTINGS_XML","THEME_XML","PATH_XML","shellGetXMLPath","SCO_XML","lastIndexOf","PATH_SCO_XML","PATH_SETTINGS_XML","PATH_THEME_XML","PATH_GLOSSARY_XML","PATH_RESOURCES_XML","PATH_STYLES_XML","playerStylesGetPath","PATH_LOGO","shellGetLogo","PATH_VEND_LOGO","shellGetVendorLogo","PATH_CREDITS_SCREEN","shellGetCreditsPath","parsedStyles","swfPlayerSuccessfullyLoaded","PATH_SHELL_CSS","course_data","lms_present","ask_for_user_name","user_name","SCREEN_LOAD_DELAY","auxScreensTrail","hasResources","resources_allow","hasGLossary","glossary_allow","certificate_screen","certificate_ext_html","lesson_has_certificate","clear_question_pool_data_on_entry","license_screen_disable","credits_screen_disable","course_menu","resources_screen","resources_bg_alpha","resources_bg_col","resources_col_txt_title","glossary_screen","glossary_bg_alpha","glossary_bg_col","glossary_col_txt_title","help_screen","help_bg_alpha","help_bg_col","help_col_txt_title","bg_full_screen_fill_color_use","bg_full_screen_fill_color","bg_full_screen_bg_use","bg_full_screen_bg_path","bg_full_screen_bg_alpha","arrScreensTemp","numScreens","totalHeight","totalHeightReduced","aggScoredScreens","numAggScoredScreens","course_id","course_title","lesson_id","lesson_title","lesson_scoring","lesson_scoring_passmark","lesson_req_completion_for_sections","lesson_randomize_screens","lesson_randomize_ran_group","checkHeaderLogosHeightInterval","certified_course","getAssessmentPoolInfo","target","showHeaderButtons","playerContentsLoaded","info","playerScreenStatusChangedEventHandler","navNextScreen","navPreviousScreen","navReplayScreen","navCourseMenu","auxScreenClosed","shellProgressBar","loadXml","plugsManager","PlugsManager","requirePlug","resizeHeaderLogos","$logo1","$logo2","maximumHeight","maximumWidth","ratio","vend_logo_align","cust_logo_align","supersleight","shim","makeHeaderLogosVisible","which","loadXmlOpts","loadScoXmlSuccess","loadScoXmlError","loadSettingsXmlSuccess","loadSettingsXmlError","loadThemeXmlSuccess","loadThemeXmlError","loadResourcesXmlSuccess","loadResourcesXmlError","loadGlossaryXmlSuccess","loadGlossaryXmlError","retrieveStylesXml","loadStylesXmlSuccess","loadStylesXmlError","stringData","jqXHR","parseStylesXml","arguments","statusText","xmlData","parseScoXml","retrieveScoXml","parseSettingsXml","parseThemeXml","buttonControl","parseResourcesXml","retrieveResourcesXml","hasGlossary","parseGlossaryXml","retrieveGlossaryXml","retrievedScoXml","shellGetScoXML","retrievedStylesXml","playerStylesGet","importedGlossary","shellGetGlossaryXML","importedResources","shellGetResourcesXML","x2js","X2JS","xml_str2json","style_definition","mandatoryXmlFilesLoaded","getBool","scoXmlCustLogo","countedMaxScore","newScreen","score_weight","btn_restrict","btn_perm_restrict","multi_step","keywords","ran_group","allow_jump","aux1","aux2","ID","random","score","aggScore","doneThisSession","imported","randomizeScreens","setMaxScore","lesson_perm_disable_buttons","cust_logo_x","vend_logo_x","contents","newDef","newRes","parseOverridesXml","xml","parseXML","$xml","tagName","shellGetSettingsOverrides","setCourseTitlePosition","updateScreenSize","setupHeaderLogos","checkLMS","getParsedStyles","getLMSStatus","loadCourseData","parseCourseData","checkHeaderLogosHeightExist","logo1","logo2","totalWidth","checkShellHeight","arrRanGroups","lastProcessedRanGroup","screensToPick","screensInGroup","l","pickedScreens","ran","getRandomNumber","oSummaryRef","poolScores","getAssessmentPoolScores","raw","maxRaw","scoreMaxRaw","summaryID","sectionID","intScreen","arrScreensInUnit","getUnitBelongsToModule","unitID","moduleID","nextModule","lastModule","s","intI","intN","intF","intP","intC","intSectionRawScore","intSectionPercScore","intSectionMaxRawScore","intSectionLength","blnHasQuestions","secStat","unitStatus","moduleStatus","getSectionsAreCompletedUpTo","sectionStatus","satisfied","blnCompletionRequired","prepareNewScreen","auxScreensClearTrail","startLoadingNewScreen","currentPool","resetPlayer","loadNewScreen","injectedXml","SwfPlayer","screenWidth","screenHeight","swfExists","Player","parseScreenXml","stopAnyPlayingAudio","injectXmlIntoHtmlPlayer","xmlToInject","closeAll","screenIndex","showFooterButtons","screenSetStatus","nextScreenSection","previousScreenSection","numBookmark","hideFooterButtons","hideScreens","auxScreensLeaveTrail","navGlossary","navResources","navHelp","navCertificate","loadCert","user","oArgs","scoStatus","userName","hasCertificate","courseTitle","newPlug","navCredits","hideHeaderButtons","self1","self2","margin","topNudge","quitCourse","strAuxScreen","pop","actionExit","ModalMsgBox","confirm_exit","confirm_exit_are_you_sure","yes","no","scope","func","actionExitConfirmed","what","except","removeClass","arrExcept","getButtonMapping","arrTempRestrict","arrPermRestrict","newStatus","skipSaveData","currentStatus","saveCourseData","suspendDataFound","returnData","coreData","getCore_Lesson","JSON","parse","statuses","lessonLocation","getLesson_Location","getUserName","cookie","rawSuspendData","arrCookieParts","dateSaved","Date","scoreAggRaw","scoreAggPerc","scoreAggMax","setLesson_Location","setLesson_Status","setScore","stringify","setCore_Lesson","encodeURIComponent","arrStatuses","getAdjustedBookmark","name_please","confirm","setUserName","nameStr","importedBookmark","adjustedBookmark","getAssessmentPoolInfoForFlashPlayer","intScore","intMaxScore","strScoreForFlashPlayer","jqRef","cssArr","cssString","distance","angle","blur","inset","arrProps","r","g","colour","cos","sin","escapeRegExp","str","ExternalInterface","playerGetFontsPath","playerXMLGetPath","strScreenID","playerXMLGet","shellGetCourseMenuPath","shellIgnoreYouTube","ignoreTubes","err","playerGetObjPath","playerGetMediaPath","playerGetFlvPath","shellGetTextPath","shellGetPlayerPath","shellGetDM","shellGetDebugMode","strVar","getLesson_Status","playerFontsGetPathPrefix","playerGetAvailableFonts","getAs3InsteadofAs2Player","getAs3InsteadOfAs2Player","shellShowPlayerOnly","FontManager","fontsPath","PATH_FONTS","fontName","checkFontTagExist","unloadFont","val","loadedScript","strRet","foundString","getQueryString","win","queryStringKeyValue","location","search","qsJsonObject","min","max","randomNum","wmoded","ready","ignored","loadTimer","loadTimeOut","defaultWidthDesktop","defaultWidthTouch","defaultHeightDesktop","defaultHeightTouch","defaultLeftDesktop","defaultLeftTouch","defaultTopDesktop","defaultTopTouch","parkedOpacity","parkedLeft","parkedTop","parkedVisibilityTouch","parkedVisibilityMouse","parkedHeightTouch","parkedHeightMouse","parkedWidthTouch","parkedWidthMouse","parkedWidth","parkedHeight","attachYouTube","youTubeApiPlayerTimeout","tag","firstScriptTag","getElementsByTagName","parentNode","insertBefore","defaultWidth","defaultHeight","defaultTop","defaultLeft","YT","videoId","volume","wmode","playerVars","controls","showinfo","allowscriptaccess","origin","protocol","hostname","events","onReady","youTubeApiPlayerInitialized","onError","youTubeApiPlayerError","determineInclude","oga","jPlayerAudioInitialized","supplied","swfPath","solution","solutions","used","webmv","ogv","poster","jPlayerVideoInitialized","isArray","toString","call","callbacks","boxType","boxTitle","boxMessage","buttonLabels","buttonCallbacks","domRefOuter","domRefInner","domRefMessage","domRefInput","browser","msie","boxHeightInterval","checkBoxHeightExists","hasHeight","setupButtonEvents","box","kill","refShell","languageID","plugsRoot","plugs","plugFolderName","args","rootPath","custom","arr","fn","Error","xmlId","xmlRef","PATH_SCREEN_XML","obj_media","progressBarObj","player_width","player_height","timelineIsPaused","timelineStartedOnce","timelineInterval","timelineRefreshRate","timelineSyncObjects","timelineHasPlayedToEnd","timelineEvents","timelineEventsLength","clicksRequiredToCompleteScreen","clicksDoneToCompleteScreen","clickableObjectsToCompleteScreen","mediaItemsToLoad","mediaItemsLoaded","objectsToReportIn","objectsReportedIn","arrObjectsToReportIn","arrObjectsToLoad","xmlParsed","fileFailedToLoadInPlayerEventHandler","mediaFailedToLoad","loadXmlSuccess","loadXmlError","retrieveScreenXml","retrievedScreen","objectCount","xmlVer","rawSyncObjects","newObj","newObjTlEvents","newObjFamily","newObjType","newObjEnum","newObjProps","registerClickForScreenCompletion","triggerClickForScreenCompletion","objectRecognised","checkAllObjectMediaLoaded","checkAllObjectsReportedIn","arrEvt","arrEvts","act","_objectID","showFailedDownloads","objID","clicked","objClicked","clickable","checkAllClicksDoneForScreenCompletion","getCurrentSyncObject","oSync","oSyncPlay","oSyncLength","timelineSeekTo","posFromMedia","timelineFinished","alert","obj","fileExists","fileLocation","response","async","SCREEN_XML","PATH_OBJECTS","PATH_FLV","PATH_STYLES","PATH_FONTS_PREFIX","AVAILABLE_FONTS","as2SwfPlayer","as3SwfPlayer","swfPlayerPath","player_dom_id","player_quality","player_script_access","player_wmode","player_auto_play","player_scale","player_menu","setModeFromJavascript","strFlashVars","embedString","swfInterfaceFunction","param","domRefIdInnerSpinner","domRefIdSpinner","domRefIdSpinnerLabel","loadingSpinner","Spinner","lines","shadow","radius","spin","getElementById","verbose","on","msg","setLabel","quick","fadeOut","LANG","loadLanguageFile","languageFileInitialized","Bundle","shell_intro_pleaseWait","determineSolution","FastClick","checkShowPlayerOnly","debug","errorThrown","swfobject","hasFlashPlayerVersion","forceTrigger","shellComps","wasReducedHeight","isReducedHeight","triggerHeight","resize"],"mappings":"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","file":"ln.js","sourcesContent":["ln.extend(ln, \"ln.util\");\n\nln.util.ExternalInterface = function()\n{\n $(ln).trigger(\"DebuggerLogEvent\", \"ln.util.ExternalInterface.constructor\");\n};\n\nln.util.ExternalInterface.prototype.shellGetLogo = function()\n{\n $(ln).trigger(\"DebuggerLogEvent\", \"ln.util.ExternalInterface.shellGetLogo\");\n return parent.shellGetLogo();\n};\n\nln.util.ExternalInterface.prototype.shellGetVendorLogo = function()\n{\n $(ln).trigger(\"DebuggerLogEvent\", \"ln.util.ExternalInterface.shellGetVendorLogo\");\n return parent.shellGetVendorLogo();\n};\n\nln.util.ExternalInterface.prototype.shellGetSettingsOverrides = function()\n{\n $(ln).trigger(\"DebuggerLogEvent\", \"ln.util.ExternalInterface.shellGetSettingsOverrides\");\n return parent.shellGetSettingsOverrides();\n};\n\nln.util.ExternalInterface.prototype.playerGetFontsPath = function()\n{\n $(ln).trigger(\"DebuggerLogEvent\", \"ln.util.ExternalInterface.playerGetFontsPath\");\n return parent.playerGetFontsPath();\n};\n\nln.util.ExternalInterface.prototype.playerStylesGetPath = function()\n{\n $(ln).trigger(\"DebuggerLogEvent\", \"ln.util.ExternalInterface.playerStylesGetPath\");\n return parent.playerStylesGetPath();\n};\n\nln.util.ExternalInterface.prototype.playerStylesGet = function()\n{\n $(ln).trigger(\"DebuggerLogEvent\", \"ln.util.ExternalInterface.playerStylesGet\");\n return parent.playerStylesGet();\n};\n\nln.util.ExternalInterface.prototype.playerXMLGetPath = function(strScreenID)\n{\n $(ln).trigger(\"DebuggerLogEvent\", \"ln.util.ExternalInterface.playerXMLGetPath\");\n return parent.playerXMLGetPath(strScreenID);\n};\n\nln.util.ExternalInterface.prototype.playerXMLGet = function(strScreenID)\n{\n $(ln).trigger(\"DebuggerLogEvent\", \"ln.util.ExternalInterface.playerXMLGet\");\n return parent.playerXMLGet(strScreenID);\n};\n\nln.util.ExternalInterface.prototype.shellGetCourseMenuPath = function()\n{\n $(ln).trigger(\"DebuggerLogEvent\", \"ln.util.ExternalInterface.shellGetCourseMenuPath\");\n return parent.shellGetCourseMenuPath();\n};\n\nln.util.ExternalInterface.prototype.shellGetCreditsPath = function(langID)\n{\n $(ln).trigger(\"DebuggerLogEvent\", \"ln.util.ExternalInterface.shellGetCreditsPath: LangID: \" + langID);\n return parent.shellGetCreditsPath(langID);\n};\n\nln.util.ExternalInterface.prototype.shellGetHelpContentsPath = function(langID)\n{\n $(ln).trigger(\"DebuggerLogEvent\", \"ln.util.ExternalInterface.shellGetHelpContentsPath: LangID: \" + langID);\n return parent.shellGetHelpContentsPath(langID);\n};\n\nln.util.ExternalInterface.prototype.shellIgnoreYouTube = function()\n{\n $(ln).trigger(\"DebuggerLogEvent\", \"ln.util.ExternalInterface.shellIgnoreYouTube\");\n $(ln).trigger(\"DebuggerLogEvent\", \"ln.util.ExternalInterface.shellIgnoreYouTube\");\n\n var ignoreTubes = true;\n\n try\n {\n $(ln).trigger(\"DebuggerLogEvent\", \"ln.util.ExternalInterface.shellIgnoreYouTube: try parent external interface\");\n $(ln).trigger(\"DebuggerLogEvent\", \"ln.util.ExternalInterface.shellIgnoreYouTube: try parent external interface\");\n ignoreTubes = parent.shellIgnoreYouTube();\n } catch (err)\n {\n $(ln).trigger(\"DebuggerLogEvent\", \"ln.util.ExternalInterface.shellIgnoreYouTube: caught error, ignore tubes TRUE\");\n $(ln).trigger(\"DebuggerLogEvent\", \"ln.util.ExternalInterface.shellIgnoreYouTube: caught error, ignore tubes TRUE\");\n ignoreTubes = true;\n }\n\n $(ln).trigger(\"DebuggerLogEvent\", \"ln.util.ExternalInterface.shellIgnoreYouTube: End of function: return value: \" + ignoreTubes);\n $(ln).trigger(\"DebuggerLogEvent\", \"ln.util.ExternalInterface.shellIgnoreYouTube: End of function: return value: \" + ignoreTubes);\n return ignoreTubes;\n};\n\nln.util.ExternalInterface.prototype.playerGetObjPath = function()\n{\n $(ln).trigger(\"DebuggerLogEvent\", \"ln.util.ExternalInterface.playerGetObjPath\");\n return parent.playerGetObjPath();\n};\n\nln.util.ExternalInterface.prototype.playerGetMediaPath = function()\n{\n $(ln).trigger(\"DebuggerLogEvent\", \"ln.util.ExternalInterface.playerGetMediaPath\");\n return parent.playerGetMediaPath();\n};\n\nln.util.ExternalInterface.prototype.playerGetFlvPath = function()\n{\n $(ln).trigger(\"DebuggerLogEvent\", \"ln.util.ExternalInterface.playerGetFlvPath\");\n return parent.playerGetFlvPath();\n};\n\nln.util.ExternalInterface.prototype.shellGetXMLPath = function()\n{\n $(ln).trigger(\"DebuggerLogEvent\", \"ln.util.ExternalInterface.shellGetXMLPath\");\n return parent.shellGetXMLPath();\n};\n\nln.util.ExternalInterface.prototype.shellGetTextPath = function()\n{\n $(ln).trigger(\"DebuggerLogEvent\", \"ln.util.ExternalInterface.shellGetTextPath\");\n return parent.shellGetTextPath();\n};\n\nln.util.ExternalInterface.prototype.shellGetScoXMLPath = function()\n{\n $(ln).trigger(\"DebuggerLogEvent\", \"ln.util.ExternalInterface.shellGetScoXMLPath\");\n return parent.shellGetScoXMLPath();\n};\n\nln.util.ExternalInterface.prototype.shellGetScoXML = function()\n{\n $(ln).trigger(\"DebuggerLogEvent\", \"ln.util.ExternalInterface.shellGetScoXML\");\n return parent.shellGetScoXML();\n}\n\nln.util.ExternalInterface.prototype.shellGetPlayerPath = function()\n{\n $(ln).trigger(\"DebuggerLogEvent\", \"ln.util.ExternalInterface.shellGetPlayerPath\");\n return parent.shellGetPlayerPath();\n};\n\nln.util.ExternalInterface.prototype.shellGetDM = function()\n{\n $(ln).trigger(\"DebuggerLogEvent\", \"ln.util.ExternalInterface.shellGetDM\");\n return parent.shellGetDebugMode();\n};\n\nln.util.ExternalInterface.prototype.quitCourse = function()\n{\n $(ln).trigger(\"DebuggerLogEvent\", \"ln.util.ExternalInterface.quitCourse\");\n parent.quitCourse();\n};\n\nln.util.ExternalInterface.prototype.getLMSStatus = function()\n{\n $(ln).trigger(\"DebuggerLogEvent\", \"ln.util.ExternalInterface.getLMSStatus\");\n return parent.getLMSStatus();\n};\n\nln.util.ExternalInterface.prototype.setMaxScore = function(strVar)\n{\n $(ln).trigger(\"DebuggerLogEvent\", \"ln.util.ExternalInterface.setMaxScore\");\n parent.setMaxScore(strVar);\n};\n\nln.util.ExternalInterface.prototype.setScore = function(strVar)\n{\n $(ln).trigger(\"DebuggerLogEvent\", \"ln.util.ExternalInterface.setScore\");\n parent.setScore(strVar);\n};\n\nln.util.ExternalInterface.prototype.setLesson_Status = function(strVar)\n{\n $(ln).trigger(\"DebuggerLogEvent\", \"ln.util.ExternalInterface.setLesson_Status\");\n parent.setLesson_Status(strVar);\n};\n\nln.util.ExternalInterface.prototype.getLesson_Location = function(strVar)\n{\n $(ln).trigger(\"DebuggerLogEvent\", \"ln.util.ExternalInterface.getLesson_Location\");\n return parent.getLesson_Location(strVar);\n};\n\nln.util.ExternalInterface.prototype.setLesson_Location = function(strVar)\n{\n $(ln).trigger(\"DebuggerLogEvent\", \"ln.util.ExternalInterface.setLesson_Location\");\n parent.setLesson_Location(strVar);\n};\n\nln.util.ExternalInterface.prototype.getCore_Lesson = function()\n{\n $(ln).trigger(\"DebuggerLogEvent\", \"ln.util.ExternalInterface.getCore_Lesson\");\n return parent.getCore_Lesson();\n};\n\nln.util.ExternalInterface.prototype.setCore_Lesson = function(strVar)\n{\n $(ln).trigger(\"DebuggerLogEvent\", \"ln.util.ExternalInterface.setCore_Lesson\");\n parent.setCore_Lesson(strVar);\n};\n\nln.util.ExternalInterface.prototype.getLesson_Status = function()\n{\n $(ln).trigger(\"DebuggerLogEvent\", \"ln.util.ExternalInterface.getLesson_Status\");\n return parent.getLesson_Status();\n};\n\nln.util.ExternalInterface.prototype.getUserName = function()\n{\n $(ln).trigger(\"DebuggerLogEvent\", \"ln.util.ExternalInterface.getUserName\");\n return parent.getUserName();\n};\n\nln.util.ExternalInterface.prototype.goURL = function(strURL)\n{\n $(ln).trigger(\"DebuggerLogEvent\", \"ln.util.ExternalInterface.goURL: strURL: '\" + strURL + \"'\");\n parent.goURL(strURL);\n};\n\n// Added to load a stand-alone certificate in a new window / tab\nln.util.ExternalInterface.prototype.loadCert = function(oArgs)\n{\n $(ln).trigger(\"DebuggerLogEvent\", \"ln.util.ExternalInterface.loadCert: oArgs: \" + oArgs);\n parent.loadCert(oArgs);\n};\n\nln.util.ExternalInterface.prototype.playerFontsGetPathPrefix = function()\n{\n $(ln).trigger(\"DebuggerLogEvent\", \"ln.util.ExternalInterface.playerFontsGetPathPrefix\");\n return parent.playerFontsGetPathPrefix();\n};\n\nln.util.ExternalInterface.prototype.playerGetAvailableFonts = function()\n{\n $(ln).trigger(\"DebuggerLogEvent\", \"ln.util.ExternalInterface.playerGetAvailableFonts\");\n return parent.playerGetAvailableFonts();\n};\n\nln.util.ExternalInterface.prototype.getAs3InsteadofAs2Player = function()\n{\n $(ln).trigger(\"DebuggerLogEvent\", \"ln.util.ExternalInterface.getAs3InsteadOfAs2Player\");\n return parent.getAs3InsteadOfAs2Player();\n};\n\nln.util.ExternalInterface.prototype.shellGetResourcesXML = function()\n{\n $(ln).trigger(\"DebuggerLogEvent\", \"ln.util.ExternalInterface.shellGetResourcesXML\");\n return parent.shellGetResourcesXML();\n};\n\nln.util.ExternalInterface.prototype.shellGetGlossaryXML = function()\n{\n $(ln).trigger(\"DebuggerLogEvent\", \"ln.util.ExternalInterface.shellGetGlossaryXML\");\n return parent.shellGetGlossaryXML();\n};\n\nln.util.ExternalInterface.prototype.shellShowPlayerOnly = function()\n{\n $(ln).trigger(\"DebuggerLogEvent\", \"ln.util.ExternalInterface.shellShowPlayerOnly\");\n return parent.shellShowPlayerOnly();\n};\n\n// For backwards compatibility with AS2 Player that assumes there is a goURL method in the containing html\n// This worked before, but in the HTML Shell the method is part of the parent document and the Flash Player\n// is not using this bridge\nfunction goURL(strURL)\n{\n $(ln).trigger(\"DebuggerLogEvent\", \"legacy goURL: strURL: '\" + strURL + \"'\");\n parent.goURL(strURL);\n}\n\n","ln.extend(ln, \"ln.youtube\");\nln.extend(ln, \"ln.audio\");\nln.extend(ln, \"ln.video\");\n\n$(ln).trigger(\"DebuggerLogEvent\", \"htmlMediaComponents.js: LOADED ----------\");\n\n// ----------------------------------------------------------------------------------------\n// YOUTUBE STUFF START\n\n/**\n * The youtube code lives in the ln.youtube namespace and has many members and methods\n *\n * @typedef {Object} ln.youtube\n * @property {Object} player\n * @property {Boolean} wmoded\n * @property {Boolean} ready\n * @property {Boolean} ignored\n * @property {Boolean} firstTime\n * @property {Object} domRefID\n * @property {Number} loadTimer\n * @property {Number} loadTimeOut\n * @property {String} defaultWidthDesktop\n * @property {String} defaultWidthTouch\n * @property {String} defaultHeightDesktop\n * @property {String} defaultHeightTouch\n * @property {String} defaultLeftDesktop\n * @property {String} defaultLeftTouch\n * @property {String} defaultTopDesktop\n * @property {String} defaultTopTouch\n * @property {Number} parkedOpacity\n * @property {String} parkedLeft\n * @property {String} parkedTop\n * @property {String} parkedVisibilityTouch\n * @property {String} parkedVisibilityMouse\n * @property {String} parkedHeightTouch\n * @property {String} parkedHeightMouse\n * @property {String} parkedWidthTouch\n * @property {String} parkedWidthMouse\n * @property {Number} parkedWidth\n * @property {Number} parkedHeight\n */\nln.youtube.player = null;\nln.youtube.wmoded = false;\nln.youtube.ready = false;\nln.youtube.ignored = false;\nln.youtube.firstTime = false;\nln.youtube.domRefID = \"#ln_shell_youtube_player\";\nln.youtube.loadTimer = 0;\nln.youtube.loadTimeOut = 10000;\n\nln.youtube.defaultWidthDesktop = \"200px\";\nln.youtube.defaultWidthTouch = \"790px\";\nln.youtube.defaultHeightDesktop = \"200px\";\nln.youtube.defaultHeightTouch = \"580px\";\nln.youtube.defaultLeftDesktop = \"-195px\";\nln.youtube.defaultLeftTouch = \"0px\";\nln.youtube.defaultTopDesktop = \"-195px\";\nln.youtube.defaultTopTouch = \"0px\";\n\nln.youtube.parkedOpacity = \"0.01\";\nln.youtube.parkedLeft = \"-195px\";\nln.youtube.parkedTop = \"-195px\";\nln.youtube.parkedVisibilityTouch = \"block\";\nln.youtube.parkedVisibilityMouse = \"block\";\nln.youtube.parkedHeightTouch = \"0px\";\nln.youtube.parkedHeightMouse = \"0px\";\nln.youtube.parkedWidthTouch = \"0px\";\nln.youtube.parkedWidthMouse = \"0px\";\n\nln.youtube.parkedWidth = 200;\nln.youtube.parkedHeight = 200;\n\n/**\n * global function automatically called by the youtube api when ready:\n */\nfunction onYouTubeIframeAPIReady()\n{\n $(ln).trigger(\"DebuggerLogEvent\", \"htmlMediaComponents.js: onYouTubeIframeAPIReady\");\n ln.youtube.createPlayer();\n}\n\nln.youtube.attachYouTube = function()\n{\n $(ln).trigger(\"DebuggerLogEvent\", \"htmlMediaComponents.js: ln.youtube.attachYouTube\");\n $(ln).trigger(\"DebuggerLogEvent\", \"htmlMediaComponents.js: ln.youtube.attachYouTube: start timeout timer: \" + ln.youtube.loadTimeOut + \" ms.\");\n\n ln.youtube.loadTimer = setTimeout(function()\n {\n ln.youtube.youTubeApiPlayerTimeout();\n }, ln.youtube.loadTimeOut);\n\n var tag = document.createElement(\"script\");\n\n tag.src = \"http://www.youtube.com/iframe_api\";\n var firstScriptTag = document.getElementsByTagName(\"script\")[0];\n firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n};\n\nln.youtube.createPlayer = function()\n{\n $(ln).trigger(\"DebuggerLogEvent\", \"htmlMediaComponents.js: ln.youtube.createPlayer\");\n $(ln).trigger(\"DebuggerLogEvent\", \"htmlMediaComponents.js: ln.youtube.createPlayer: touch: \" + Modernizr.touchevents);\n\n var defaultWidth = ln.youtube.defaultWidthDesktop;\n var defaultHeight = ln.youtube.defaultHeightDesktop;\n var defaultTop = ln.youtube.defaultTopDesktop;\n var defaultLeft = ln.youtube.defaultLeftDesktop;\n\n if (Modernizr.touchevents)\n {\n defaultWidth = ln.youtube.defaultWidthTouch;\n defaultHeight = ln.youtube.defaultHeightTouch;\n defaultTop = ln.youtube.defaultTopTouch;\n defaultLeft = ln.youtube.defaultLeftTouch;\n }\n\n // called from the generic onYouTubeIframeReady function\n $(ln.youtube.domRefID).css(\"left\", defaultTop);\n $(ln.youtube.domRefID).css(\"top\", defaultLeft);\n $(ln.youtube.domRefID).css(\"opacity\", ln.youtube.parkedOpacity);\n\n // Function that is automatically called by the YouTube api when it's ready\n ln.youtube.player = new YT.Player(\"ln_shell_youtube_player\", {\n height: defaultHeight,\n width: defaultWidth,\n videoId: \"HK9NhFV6vX8\", /* \"D61q7iryOTg\", */\n volume: 25,\n wmode: \"transparent\",\n playerVars: {controls: 0, showinfo: 0, allowscriptaccess: \"always\", origin: document.location.protocol + \"//\" + document.location.hostname},\n events: {\n \"onReady\": ln.youtube.youTubeApiPlayerInitialized,\n \"onError\": ln.youtube.youTubeApiPlayerError\n }\n });\n};\n\nln.youtube.youTubeApiPlayerInitialized = function(e)\n{\n // By changing the src attribute of the youtube iframe you force it to reload and also call this function again\n // Problem is we only want this function to turn the ln.yotube.player.ready variable to true once and only after it's been reloaded! :-)\n\n $(ln).trigger(\"DebuggerLogEvent\", \"htmlMediaComponents.js: ln.youtube.youTubeApiPlayerInitialized\");\n $(ln).trigger(\"DebuggerLogEvent\", \"htmlMediaComponents.js: ln.youtube.youTubeApiPlayerInitialized: ready? \" + ln.youtube.ready + \", wmoded: \" + ln.youtube.wmoded);\n\n // If on desktop, set the wmode for the flash player version of youtube\n if (!Modernizr.touchevents)\n {\n $(ln).trigger(\"DebuggerLogEvent\", \"htmlMediaComponents.js: ln.youtube.youTubeApiPlayerInitialized: Desktop, ln.youtube.ready: \" + ln.youtube.ready);\n\n if (ln.youtube.ready === false && ln.youtube.wmoded === false)\n {\n clearTimeout(ln.youtube.loadTimer);\n // ln.youtube.ready = true;\n\n var url = $(ln.youtube.domRefID).attr(\"src\");\n\n $(ln).trigger(\"DebuggerLogEvent\", \"htmlMediaComponents.js: ln.youtube.youTubeApiPlayerInitialized: url: \" + url);\n\n if ($(ln.youtube.domRefID).attr(\"src\").indexOf(\"?\") > 0)\n {\n $(ln).trigger(\"DebuggerLogEvent\", \"htmlMediaComponents.js: ln.youtube.youTubeApiPlayerInitialized: url has existing query string\");\n ln.youtube.wmoded = true;\n\n $(ln.youtube.domRefID).attr({\n \"src\": url + \"&wmode=transparent\",\n \"wmode\": \"Opaque\"\n });\n\n $(ln).trigger(\"DebuggerLogEvent\", \"htmlMediaComponents.js: ln.youtube.youTubeApiPlayerInitialized: new url with wmode=transparent: '\" + url + \"&wmode=transparent'\");\n } else\n {\n $(ln).trigger(\"DebuggerLogEvent\", \"htmlMediaComponents.js: ln.youtube.youTubeApiPlayerInitialized: url has no existing query string\");\n ln.youtube.wmoded = true;\n\n $(ln.youtube.domRefID).attr({\n \"src\": url + \"?wmode=transparent\",\n \"wmode\": \"Opaque\"\n });\n\n $(ln).trigger(\"DebuggerLogEvent\", \"htmlMediaComponents.js: ln.youtube.youTubeApiPlayerInitialized: new url with wmode=transparent: '\" + url + \"&wmode=transparent'\");\n }\n } else\n {\n // SHould be ready and wmoded:\n $(ln).trigger(\"DebuggerLogEvent\", \"htmlMediaComponents.js: ln.youtube.youTubeApiPlayerInitialized: Desktop, Should be wmoded and ready now\");\n ln.youtube.ready = true;\n }\n } else\n {\n $(ln).trigger(\"DebuggerLogEvent\", \"htmlMediaComponents.js: ln.youtube.youTubeApiPlayerInitialized: Touch device\");\n $(ln).trigger(\"DebuggerLogEvent\", \"htmlMediaComponents.js: ln.youtube.youTubeApiPlayerInitialized: Clear timeout and make ready\");\n\n clearTimeout(ln.youtube.loadTimer);\n ln.youtube.ready = true;\n }\n\n $(ln).trigger(\"DebuggerLogEvent\", \"htmlMediaComponents.js: ln.youtube.youTubeApiPlayerInitialized: Proceed to determine includes\");\n ln.preload.determineInclude();\n};\n\nln.youtube.youTubeApiPlayerError = function()\n{\n $(ln).trigger(\"DebuggerLogEvent\", \"htmlMediaComponents.js: ln.youtube.youTubeApiPlayerError\");\n\n noty({\n text: \"YouTube player encountered an error (youTubeApiPlayerError). Shell will continue to load without YouTube functionality.\",\n type: \"error\"\n });\n\n clearTimeout(ln.youtube.loadTimer);\n ln.youtube.ignored = true;\n ln.preload.determineInclude();\n};\n\nln.youtube.youTubeApiPlayerTimeout = function()\n{\n $(ln).trigger(\"DebuggerLogEvent\", \"htmlMediaComponents.js: ln.youtube.youTubeApiPlayerTimeout\");\n\n noty({\n text: \"YouTube API took too long to respond (\" + ln.youtube.loadTimeOut + \"ms.), ignoring YouTube for this course\",\n type: \"error\"\n });\n\n ln.youtube.ignored = true;\n ln.preload.determineInclude();\n};\n\nln.youtube.parkPlayer = function()\n{\n $(ln).trigger(\"DebuggerLogEvent\", \"ln.youtube.parkPlayer: ln.youtube.ignored: \" + ln.youtube.ignored);\n\n if (Modernizr.touchevents)\n {\n $(ln).trigger(\"DebuggerLogEvent\", \"ln.youtube.parkPlayer: Touch\");\n $(ln.youtube.domRefID).css(\"left\", ln.youtube.parkedLeft);\n $(ln.youtube.domRefID).css(\"top\", ln.youtube.parkedTop);\n $(ln.youtube.domRefID).css(\"-ms-filter\", \"progid:DXImageTransform.Microsoft.Alpha(Opacity=\" + (ln.youtube.parkedOpacity * 100) + \")\");\n $(ln.youtube.domRefID).css(\"filter\", \"alpha(opacity=\" + (ln.youtube.parkedOpacity * 100) + \")\");\n $(ln.youtube.domRefID).css(\"opacity\", ln.youtube.parkedOpacity);\n $(ln.youtube.domRefID).css(\"display\", ln.youtube.parkedVisibilityTouch);\n } else\n {\n $(ln).trigger(\"DebuggerLogEvent\", \"ln.youtube.parkPlayer: Desktop\");\n $(ln.youtube.domRefID).css(\"left\", ln.youtube.parkedLeft);\n $(ln.youtube.domRefID).css(\"top\", ln.youtube.parkedTop);\n $(ln.youtube.domRefID).css(\"opacity\", ln.youtube.parkedOpacity);\n $(ln.youtube.domRefID).css(\"display\", ln.youtube.parkedVisibilityTouch);\n }\n\n if (ln.youtube.ignored === false || ln.youtube.player)\n {\n ln.youtube.player.setSize(ln.youtube.parkedWidth, ln.youtube.parkedHeight);\n }\n};\n\n// YOUTUBE STUFF END\n// ----------------------------------------------------------------------------------------\n\n// ----------------------------------------------------------------------------------------\n// AUDIO STUFF START\n\nln.audio.ready = false;\nln.audio.firstTime = false;\nln.audio.player = null;\nln.audio.domRefID = \"#ln_shell_audio_player\";\n\nln.audio.createPlayer = function()\n{\n $(ln.audio.domRefID).jPlayer({\n ready: function()\n {\n $(this).jPlayer(\"setMedia\", {\n mp3: \"../media_shell/mp3/windows_unlock_quiet.mp3\",\n oga: \"../media_shell/oga/windows_unlock_quiet.ogg\"\n });\n ln.audio.jPlayerAudioInitialized();\n },\n volume: 1.0,\n supplied: \"mp3, oga\",\n swfPath: \"../js/misc/jPlayer/Jplayer.swf\",\n solution: \"html, flash\",\n preload: \"auto\"\n });\n};\n\nln.audio.jPlayerAudioInitialized = function()\n{\n ln.audio.ready = true;\n ln.preload.determineInclude();\n};\n\n// AUDIO STUFF END\n// ----------------------------------------------------------------------------------------\n\n// ----------------------------------------------------------------------------------------\n// VIDEO STUFF START\n\nln.video.ready = false;\nln.video.firstTime = false;\nln.video.player = null;\nln.video.solutions = \"html,flash\";\nln.video.domRefID = \"#ln_shell_video_player\";\nln.video.parkedOpacity = \"0.01\";\nln.video.parkedLeft = \"-195px\"; // 245px\nln.video.parkedTop = \"-195px\"; // 175px\nln.video.parkedVisibilityTouch = \"block\";\nln.video.parkedVisibilityMouse = \"none\";\nln.video.parkedWidth = 200;\nln.video.parkedHeight = 200;\n\nif (Modernizr.touchevents)\n{\n ln.video.solutions = \"html, flash\";\n}\n\nln.video.createPlayer = function()\n{\n $(ln).trigger(\"DebuggerLogEvent\", \"htmlMediaComponents.js: ln.video.createPlayer\");\n\n $(ln.video.domRefID).jPlayer({\n ready: function()\n {\n var prefix = \"\";\n\n if ($(ln.video.domRefID).data(\"jPlayer\").flash.used)\n {\n prefix = \"../../\";\n }\n\n $(this).jPlayer(\"setMedia\", {\n webmv: \"../media_shell/webm/dingdong_no_audio.webm\",\n m4v: prefix + \"../media_shell/mp4/dingdong_no_audio.mp4\",\n ogv: \"../media_shell/ogv/dingdong_no_audio.ogv\",\n flv: prefix + \"../media_shell/flv/dingdong_no_audio.flv\",\n poster: \"../media_shell/poster/dingdong.jpg\"\n });\n\n ln.video.jPlayerVideoInitialized();\n },\n volume: 1.0,\n size: {width: ln.video.parkedWidth, height: ln.video.parkedHeight},\n supplied: \"m4v, webmv, ogv, flv\",\n swfPath: \"../js/misc/jPlayer/Jplayer.swf\",\n solution: ln.video.solutions,\n preload: \"auto\",\n wmode: \"transparent\"/*,\n nativeVideoControls: {all: /./}*/\n });\n};\n\nln.video.jPlayerVideoInitialized = function()\n{\n $(ln).trigger(\"DebuggerLogEvent\", \"htmlMediaComponents.js: ln.video.jPlayerVideoInitialized\");\n\n $(ln.video.domRefID).css(\"left\", ln.video.parkedLeft);\n $(ln.video.domRefID).css(\"top\", ln.video.parkedTop);\n $(ln.video.domRefID).css(\"opacity\", ln.video.parkedOpacity);\n\n ln.video.ready = true;\n ln.preload.determineInclude();\n};\n\nln.video.parkPlayer = function()\n{\n $(ln).trigger(\"DebuggerLogEvent\", \"ln.video.parkPlayer\");\n\n var prefix = \"\";\n\n if ($(ln.video.domRefID).data(\"jPlayer\").flash.used)\n {\n prefix = \"../../\";\n }\n\n $(ln.video.domRefID).jPlayer(\"setMedia\", {\n webmv: \"../media_shell/webm/dingdong_no_audio.webm\",\n m4v: prefix + \"../media_shell/mp4/dingdong_no_audio.mp4\",\n ogv: \"../media_shell/ogv/dingdong_no_audio.ogv\",\n flv: prefix + \"../media_shell/flv/dingdong_no_audio.flv\",\n poster: \"../media_shell/poster/dingdong.jpg\"\n });\n\n if (Modernizr.touchevents)\n {\n $(ln).trigger(\"DebuggerLogEvent\", \"htmlMediaComponents.js: ln.video.parkPlayer, tablet\");\n\n $(ln.video.domRefID).css(\"left\", ln.video.parkedLeft);\n $(ln.video.domRefID).css(\"top\", ln.video.parkedTop);\n $(ln.video.domRefID).jPlayer({size: {width: ln.video.parkedWidth + \"px\", height: ln.video.parkedHeight + \"px\"}});\n $(ln.video.domRefID).css(\"opacity\", ln.video.parkedOpacity);\n $(ln.video.domRefID).css(\"display\", ln.video.parkedVisibilityTouch);\n } else\n {\n $(ln).trigger(\"DebuggerLogEvent\", \"htmlMediaComponents.js: ln.video.parkPlayer, desktop\");\n $(ln).trigger(\"DebuggerLogEvent\", \"ln.video.parkPlayer, desktop\");\n $(ln.video.domRefID).css(\"display\", ln.video.parkedVisibilityMouse);\n }\n};\n\n// VIDEO STUFF END\n// ----------------------------------------------------------------------------------------\n\n","/* IE should not complain there is no console */\nif (!window.console)\n{\n console = {\n log: function ()\n {\n },\n dir: function ()\n {\n }\n };\n}\n\n/**\n * top level namespace for Learning Nexus\n *\n * @typedef {Object} ln\n * @property {String} version The current version, valid values are:

\n * @property {Boolean} useFlashSolution Is Flash solution used?\n * @property {Boolean} usePngFix Should PNG fix be used?\n * @property {String} usePngFixShim Path to png fix image\n * @property {Function} initShell Instantiate shell!\n * @property {Boolean} showPlayerOnly Should all of the shell be hidden to only show the Player (for preview purposes)\n */\nvar ln = {};\nln.version = \"0.20\";\nln.useFlashSolution = false;\nln.usePngFix = false;\nln.usePngFixShim = \"../js/misc/supersleight/x.gif\";\nln.showPlayerOnly = false;\n\n/**\n * Extends global namespace variable with further members, but checks to make sure a member is not being overwritten first\n *\n * @typedef {Function} ln.extend\n * @param {String} ns The namespace to extend\n * @param {String} ns_string The name of the new namespace (object)\n */\nln.extend = function (ns, ns_string)\n{\n var parts = ns_string.split(\".\");\n var parent = ns;\n var pl, i;\n if (parts[0] === \"ln\")\n {\n parts = parts.slice(1);\n }\n\n pl = parts.length;\n for (i = 0; i < pl; i++)\n {\n //create a property if it doesnt exist\n if (!parent[parts[i]])\n {\n parent[parts[i]] = {};\n }\n parent = parent[parts[i]];\n }\n};\n\n/**\n * Instantiate shell!\n *\n * @param {jQuery} domRef\n */\nln.initShell = function(domRef)\n{\n ln.shell.sh = new ln.shell.Shell($(\"#ln_shell\"));\n}","ln.extend(ln, \"ln.objects\");\n\nln.objects.Audio = function(playerRef, jQueryContainer, uniqueNum, init_props, oFamily, oType)\n{\n this.player = playerRef;\n this.domRef = jQueryContainer;\n this.num = uniqueNum;\n this.props_init = init_props;\n this.props = new Object();\n this.oFamily = oFamily;\n this.oType = oType;\n this.uID = this.oType + \"_\" + this.num;\n this.domRef.attr(\"id\", this.uID);\n this.domRef.css(\"position\", \"absolute\");\n\n this.timeline_manager = null;\n this.interactions_manager = null;\n this.isReady = false;\t// For questions so that they know if this object has fully loaded and set its properties\n\n this.mediaLoaded = false;\n this.mediaPlayedToEnd = false;\n this.mediaDuration = 0;\n\n this.controlsTimeline = false;\n this.isPaused = false;\n this.pausedTimeCode = -1;\n\n this.playEventTimecode = -1;\n\n this.domRef.append(\"
\");\n this.domRefPlayer = $(ln.audio.domRefID);\n\n this.mediaURL = \"\"; // path including file name and extensions\n this.mediaFile = \"\"; // file name (id) and extensions\n this.mediaID = \"\"; // id only\n\n this.extractProps();\n};\n\nln.objects.Audio.prototype.extractProps = function()\n{\n this.props = new ln.objects.common.PropExtractor(this.props_init, this.uID);\n\n if (this.props)\n {\n this.parseProps();\n }\n};\n\nln.objects.Audio.prototype.parseProps = function()\n{\n this.timeline_manager = new ln.objects.common.TimelineManager(this, this.domRef, this.player);\n\n if (this.props.SyncsTo === true)\n {\n this.controlsTimeline = true;\n }\n\n this.mediaURL = this.player.PATH_MEDIA + decodeURIComponent(this.props.Media.split(\",\")[0]);\n this.mediaFile = decodeURIComponent(this.props.Media.split(\",\")[0]);\n this.mediaID = decodeURIComponent(this.props.Media.split(\",\")[0]).split(\".\")[0];\n\n var preloadAudioOpts = new Object();\n preloadAudioOpts.type = \"GET\";\n preloadAudioOpts.url = this.mediaURL;\n preloadAudioOpts.success = this.mediaDownloadCompleted;\n preloadAudioOpts.error = this.mediaDownloadError;\n preloadAudioOpts.cache = true;\n preloadAudioOpts.context = this; // Important, scope callback functions properly\n\n $.ajax(preloadAudioOpts);\n};\n\nln.objects.Audio.prototype.mediaDownloadProgress = function(duration)\n{\n this.setMediaLength(duration);\n};\n\nln.objects.Audio.prototype.mediaDownloadCompleted = function(data, textStatus)\n{\n // Trigger event notifying player that media has loaded (should ideally be done somehwere else, but may not be useful anyway):\n this.domRef.trigger(\"MediaLoadedEvent\", \"media loaded\");\n this.mediaLoaded = true;\n this.isReady = true;\n};\n\nln.objects.Audio.prototype.mediaDownloadError = function(request, settings, exception)\n{\n noty({\n text: \"Audio file could not be loaded! This could be because...
The audio file has been removed from its expected location (\"+this.mediaURL+\") or...
Access restrictions (either server or browser)\",\n type: \"error\",\n buttons: [\n {\n addClass: 'btn btn-primary', text: 'Course Menu', onClick: function($noty)\n {\n // this = button element\n // $noty = $noty element\n ln.preload.stop();\n $(ln).trigger(\"AuxScreenCourseMenuEvent\");\n $noty.close();\n }\n },\n {\n addClass: \"btn btn-danger\", text: \"Previous screen\", onClick: function($noty)\n {\n ln.preload.stop();\n $(ln).trigger(\"ShellNavPreviousScreenEvent\");\n $noty.close();\n }\n }\n ]\n });\n};\n\nln.objects.Audio.prototype.getPlayEvent = function()\n{\n if (this.playEventTimecode === -1)\n {\n this.playEventTimecode = this.timeline_manager.getFirstEventOfType(\"PLAY\");\n return this.playEventTimecode;\n } else\n {\n return this.playEventTimecode;\n }\n};\n\nln.objects.Audio.prototype.getMediaLength = function()\n{\n return this.mediaDuration;\n};\n\nln.objects.Audio.prototype.setMediaLength = function(duration)\n{\n this.mediaDuration = parseInt(duration * 1000);\n};\n\nln.objects.Audio.prototype.playheadTick = function(mediaTimecode)\n{\n if (this.controlsTimeline === true)\n {\n if (this.player.timelineCurrent >= this.getPlayEvent() && this.mediaPlayedToEnd === false)\n {\n this.player.timelineTick((this.getPlayEvent() + Math.round(mediaTimecode * 1000)));\n }\n } else\n {\n // Playhead ticks are unnecessary if it's not controlling the timeline\n }\n};\n\nln.objects.Audio.prototype.mediaPlay = function()\n{\n if (!this.isPaused)\n {\n this.domRefPlayer.jPlayer(\"setMedia\", {mp3: this.player.PATH_MEDIA + decodeURIComponent(this.props.Media.split(\",\")[0])});\n\n // Setup event listeners:\n this.domRefPlayer.bind($.jPlayer.event.progress, {_this: this}, function(e) {\n e.data._this.mediaDownloadProgress(e.jPlayer.status.duration);\n });\n this.domRefPlayer.bind($.jPlayer.event.ended, {_this: this}, function(e) {\n e.data._this.mediaEnded();\n });\n this.domRefPlayer.bind($.jPlayer.event.durationchange, {_this: this}, function(e) {\n e.data._this.setMediaLength(e.jPlayer.status.duration);\n });\n this.domRefPlayer.bind($.jPlayer.event.timeupdate, {_this: this}, function(e) {\n e.data._this.playheadTick(e.jPlayer.status.currentTime);\n });\n }\n\n if (this.controlsTimeline === true)\n {\n // Stop timeline and start jPlayer, each tick of the jPlayer will progress the Player timeline\n this.player.timelineStop();\n\n if (this.isPaused)\n {\n this.domRefPlayer.jPlayer(\"play\", this.pausedTimeCode);\n } else\n {\n this.domRefPlayer.jPlayer(\"play\");\n }\n } else\n {\n // Just start the jPlayer and ignore the Player timeline, they operate independently\n this.domRefPlayer.jPlayer(\"play\");\n }\n\n this.isPaused = false;\n};\n\nln.objects.Audio.prototype.mediaPause = function()\n{\n this.isPaused = true;\n this.domRefPlayer.jPlayer(\"pause\");\n this.pausedTimeCode = this.domRefPlayer.data(\"jPlayer\").status.currentTime;\n\n if (this.controlsTimeline === true)\n {\n\n } else\n {\n\n }\n};\n\nln.objects.Audio.prototype.mediaStop = function()\n{\n // Only stop and reset to timecode 0 if what we're trying to stop (this audio object) is the same media as loaded by the jPlayer:\n if (this.domRefPlayer.data(\"jPlayer\").status.src.indexOf(this.mediaID) !== -1)\n {\n // jPlayer media is the same as this audio object, stop it!\n this.domRefPlayer.jPlayer(\"stop\");\n\n if (this.controlsTimeline === true)\n {\n\n } else\n {\n\n }\n }\n};\n\nln.objects.Audio.prototype.mediaEnded = function()\n{\n // Clear event listeners:\n this.domRefPlayer.unbind($.jPlayer.event.progress);\n this.domRefPlayer.unbind($.jPlayer.event.ended);\n this.domRefPlayer.unbind($.jPlayer.event.durationchange);\n this.domRefPlayer.unbind($.jPlayer.event.timeupdate);\n\n if (this.controlsTimeline === true)\n {\n this.mediaPlayedToEnd = true;\n this.player.timelineStart((parseInt(this.getPlayEvent()) + parseInt(this.getMediaLength())));\n } else\n {\n\n }\n};","ln.extend(ln, \"ln.objects\");\n\nln.objects.Image = function(playerRef, jQueryContainer, uniqueNum, init_props, oFamily, oType)\n{\n this.player = playerRef;\n this.domRef = jQueryContainer;\n this.num = uniqueNum;\n this.props_init = init_props;\n this.props = new Object();\n this.oFamily = oFamily;\n this.oType = oType;\n this.uID = this.oType + \"_\" + this.num;\n this.domRef.attr(\"id\", this.uID);\n this.domRef.css(\"position\", \"absolute\");\n\n this.timeline_manager = null;\n this.interactions_manager = null;\n this.isReady = false;\t// For questions so that they know if this object has fully loaded and set its properties\n\n this.domRef.append(\"\");\n this.domRef.append(\"
\");\n\n this.mediaLoaded = false;\n this.domRefImg = jQueryContainer.children(\"img\");\n this.domRefStr = jQueryContainer.children(\"div\");\n\n this.imgUnscaledWidth = 0;\n this.imgUnscaledHeight = 0;\n this.imgScaledWidth = 0;\n this.imgScaledHeight = 0;\n\n this.importedScaleX = 0;\n this.importedScaleY = 0;\n\n this.roundingAll = false;\n this.roundingTL = 0;\n this.roundingTR = 0;\n this.roundingBR = 0;\n this.roundingBL = 0;\n\n this.scaledFrameRounding = 0;\n this.scaledFrameThickness = 0;\n\n this.domRefStr.css(\"position\", \"absolute\");\n this.domRefImg.css(\"position\", \"absolute\");\n\n this.extractProps();\n};\n\nln.objects.Image.prototype.extractProps = function()\n{\n this.props = new ln.objects.common.PropExtractor(this.props_init, this.uID);\n\n if (this.props)\n {\n this.parseProps();\n }\n};\n\nln.objects.Image.prototype.parseProps = function()\n{\n var _this = this;\n\n this.timeline_manager = new ln.objects.common.TimelineManager(this, this.domRef, this.player);\n this.interactions_manager = new ln.objects.common.InteractionsManager(this, this.domRef, this.player, this.props.RequireClickForScreenCompletion, this.props.Parent);\n\n // Actionscript 2 Builder frame rounding...\n if (this.props.hasOwnProperty(\"CornersRounded\") &&\n this.props.hasOwnProperty(\"FrameRounding\"))\n {\n var arrCorners = decodeURIComponent(this.props.CornersRounded).split(\",\");\n this.roundingTL = arrCorners[0] === \"true\" ? this.props.FrameRounding : 0;\n this.roundingTR = arrCorners[1] === \"true\" ? this.props.FrameRounding : 0;\n this.roundingBR = arrCorners[2] === \"true\" ? this.props.FrameRounding : 0;\n this.roundingBL = arrCorners[3] === \"true\" ? this.props.FrameRounding : 0;\n }\n\n // Actionscript 3 Builder frame rounding\n if (this.props.hasOwnProperty(\"RoundingAll\") &&\n this.props.hasOwnProperty(\"RoundingTL\") &&\n this.props.hasOwnProperty(\"RoundingTR\") &&\n this.props.hasOwnProperty(\"RoundingBR\") &&\n this.props.hasOwnProperty(\"RoundingBL\"))\n {\n this.roundingTL = this.props.RoundingTL;\n this.roundingTR = this.props.RoundingTR;\n this.roundingBR = this.props.RoundingBR;\n this.roundingBL = this.props.RoundingBL;\n }\n\n // Set X coordinate:\n this.domRef.css(\"left\", this.props.X + \"px\");\n\n // Set Y coordinate:\n this.domRef.css(\"top\", this.props.Y + \"px\");\n\n // Set depth\n this.domRef.css(\"z-index\", this.props.Z);\n\n // Set alpha of whole object:\n this.domRef.css(\"opacity\", 0);\n\n // Rotation\n this.applyTransforms();\n\n // Set image source:\n this.domRefImg.attr(\"src\", this.player.PATH_MEDIA + decodeURIComponent(this.props.Media).split(\",\")[0]);\n this.domRefImg.load(function()\n {\n _this.domRef.trigger(\"MediaLoadedEvent\", \"media loaded\");\n _this.mediaLoaded = true;\n _this.isReady = true;\n\n _this.imgUnscaledWidth = parseInt(_this.domRefImg.css(\"width\").slice(0, -2));\n _this.imgUnscaledHeight = parseInt(_this.domRefImg.css(\"height\").slice(0, -2));\n\n _this.postImgLoadedProps();\n });\n};\n\nln.objects.Image.prototype.applyTransforms = function()\n{\n // Always do this:\n this.domRef.css(\"-ms-transform-origin\", \"0px 0px\");\n this.domRef.css(\"-moz-transform-origin\", \"0px 0px\");\n this.domRef.css(\"-webkit-transform-origin\", \"0px 0px\");\n this.domRef.css(\"transform-origin\", \"0px 0px\");\n\n this.domRefImg.css(\"-ms-transform-origin\", \"0px 0px\");\n this.domRefImg.css(\"-moz-transform-origin\", \"0px 0px\");\n this.domRefImg.css(\"-webkit-transform-origin\", \"0px 0px\");\n this.domRefImg.css(\"transform-origin\", \"0px 0px\");\n\n this.domRef.css(\"-webkit-transform\", \"rotate(\" + this.props.Rotation + \"deg)\");\n this.domRef.css(\"-moz-transform\", \"rotate(\" + this.props.Rotation + \"deg)\");\n this.domRef.css(\"-ms-transform\", \"rotate(\" + this.props.Rotation + \"deg)\");\n this.domRef.css(\"transform\", \"rotate(\" + this.props.Rotation + \"deg)\");\n\n if (this.props.hasOwnProperty(\"Scale\"))\n {\n this.importedScaleX = this.props.Scale/100;\n this.importedScaleY = this.props.Scale/100;\n } else if (this.props.hasOwnProperty(\"ScaleX\") && this.props.hasOwnProperty(\"ScaleY\"))\n {\n this.importedScaleX = this.props.ScaleX;\n this.importedScaleY = this.props.ScaleY;\n }\n\n this.domRefImg.css(\"-webkit-transform\", \"scale(\" + this.importedScaleX + \",\" + this.importedScaleY + \")\");\n this.domRefImg.css(\"-moz-transform\", \"scale(\" + this.importedScaleX + \",\" + this.importedScaleY + \")\");\n this.domRefImg.css(\"-ms-transform\", \"scale(\" + this.importedScaleX + \",\" + this.importedScaleY + \")\");\n this.domRefImg.css(\"transform\", \"scale(\" + this.importedScaleX + \",\" + this.importedScaleY + \")\");\n\n this.imgScaledWidth = this.imgUnscaledWidth * this.importedScaleX;\n this.imgScaledHeight = this.imgUnscaledHeight * this.importedScaleY;\n\n this.domRef.css(\"width\", this.imgScaledWidth);\n this.domRef.css(\"height\", this.imgScaledHeight);\n};\n\nln.objects.Image.prototype.postImgLoadedProps = function()\n{\n this.applyTransforms();\n\n // Sort out the frame:\n if (this.props.Frame)\n {\n // Set size of frame according to unscaled dimensions, taking care to make up for the frame thickness\n this.domRefStr.css(\"width\", this.imgUnscaledWidth - (this.props.FrameThickness * 2));\n this.domRefStr.css(\"height\", this.imgUnscaledHeight - (this.props.FrameThickness * 2));\n\n this.domRefStr.css(\"-ms-transform-origin\", \"0px 0px\");\n this.domRefStr.css(\"-moz-transform-origin\", \"0px 0px\");\n this.domRefStr.css(\"-webkit-transform-origin\", \"0px 0px\");\n this.domRefStr.css(\"transform-origin\", \"0px 0px 0px\");\n \n this.domRefStr.css(\"-webkit-transform\", \"scale(\" + this.importedScaleX + \",\" + this.importedScaleY + \")\");\n this.domRefStr.css(\"-moz-transform\", \"scale(\" + this.importedScaleX + \",\" + this.importedScaleY + \")\");\n this.domRefStr.css(\"-ms-transform\", \"scale(\" + this.importedScaleX + \",\" + this.importedScaleY + \")\");\n this.domRefStr.css(\"transform\", \"scale(\" + this.importedScaleX + \", \" + this.importedScaleY + \")\");\n\n // Frame properties:\n this.domRefStr.css(\"border-width\", this.props.FrameThickness + \"px\");\n\n this.domRefStr.css(\"border-style\", \"solid\");\n\n if (this.props.FrameCol.indexOf(\"0x\") != -1)\n {\n this.props.FrameCol = this.props.FrameCol.substr(2);\n }\n\n this.domRefStr.css(\"border-color\", \"#\" + this.props.FrameCol);\n\n // Frame alpha:\n this.domRefStr.css(\"opacity\", this.props.FrameAlpha / 100);\n\n // Border rounding\n var strBorderRadius;\n\n strBorderRadius = this.roundingTL + \"px \";\n strBorderRadius += this.roundingTR + \"px \";\n strBorderRadius += this.roundingBR + \"px \";\n strBorderRadius += this.roundingBL + \"px\";\n\n // For the container:\n this.domRef.css(\"-moz-border-radius\", strBorderRadius);\n this.domRef.css(\"-webkit-border-radius\", strBorderRadius);\n this.domRef.css(\"border-radius\", strBorderRadius);\n\n // For the stroke\n this.domRefStr.css(\"-moz-border-radius\", strBorderRadius);\n this.domRefStr.css(\"-webkit-border-radius\", strBorderRadius);\n this.domRefStr.css(\"border-radius\", strBorderRadius);\n\n // For the image itself:\n this.domRefImg.css(\"-moz-border-radius\", strBorderRadius);\n this.domRefImg.css(\"-webkit-border-radius\", strBorderRadius);\n this.domRefImg.css(\"border-radius\", strBorderRadius);\n }\n\n\n\n // Drop shadow filter:\n var ds = ln.util.DropShadow(this.props.FilterDropShadow);\n this.domRefStr.css(\"box-shadow\", ds);\n};","ln.extend(ln, \"ln.objects\");\n\nln.objects.Line = function(playerRef, jQueryContainer, uniqueNum, init_props, oFamily, oType)\n{\n this.player = playerRef;\n this.domRef = jQueryContainer;\n this.num = uniqueNum;\n this.props_init = init_props;\n this.props = new Object();\n this.oFamily = oFamily;\n this.oType = oType;\n this.uID = this.oType + \"_\" + this.num;\n this.domRef.attr(\"id\", this.uID);\n this.domRef.css(\"position\", \"absolute\");\n\n this.timeline_manager = null;\n this.interactions_manager = null;\n this.isReady = false;\t// For questions so that they know if this object has fully loaded and set its properties\n\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".constructor, enum: \" + this.num + \", family: \" + oFamily + \", type: \" + oType);\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".constructor, props length: \" + this.props_init.length);\n\n this.boundingBox = null;\n this.paper = null;\n this.theLine = null;\n\n this.importedLineCol = \"000000\";\n this.importedLineThickness = 1;\n this.importedLineAlpha = 1;\n\n this.extractProps();\n};\n\nln.objects.Line.prototype.extractProps = function()\n{\n this.props = new ln.objects.common.PropExtractor(this.props_init, this.uID);\n\n if (this.props)\n {\n this.parseProps();\n }\n};\n\nln.objects.Line.prototype.parseProps = function()\n{\n this.timeline_manager = new ln.objects.common.TimelineManager(this, this.domRef, this.player);\n this.interactions_manager = new ln.objects.common.InteractionsManager(this, this.domRef, this.player, this.props.RequireClickForScreenCompletion, this.props.Parent);\n\n if (this.props.hasOwnProperty(\"LineColour\"))\n {\n this.importedLineCol = this.props.LineColour;\n } else if (this.props.hasOwnProperty(\"FrameColour\"))\n {\n this.importedLineCol = this.props.FrameColour;\n }\n\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".parseProps: importedLineCol: \" + this.importedLineCol);\n\n if (this.props.hasOwnProperty(\"LineThickness\"))\n {\n this.importedLineThickness = this.props.LineThickness;\n } else if (this.props.hasOwnProperty(\"FrameThickness\"))\n {\n this.importedLineThickness = this.props.FrameThickness;\n }\n\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".parseProps: importedLineThickness: \" + this.importedLineThickness);\n\n if (this.props.hasOwnProperty(\"LineAlpha\"))\n {\n this.importedLineAlpha = this.props.LineAlpha;\n } else if (this.props.hasOwnProperty(\"FrameAlpha\"))\n {\n this.importedLineAlpha = this.props.FrameAlpha;\n }\n\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".parseProps: importedLineAlpha: \" + this.importedLineAlpha);\n\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".parseProps: Variation: \" + this.props.Variation);\n\n this.boundingBox = this.getBox();\n\n // Set height:\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".parseProps: ExternalHeight: \" + this.boundingBox.height);\n this.domRef.css(\"height\", this.boundingBox.height + \"px\");\n\n // Set width:\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".parseProps: ExternalWidth: \" + this.boundingBox.width);\n this.domRef.css(\"width\", this.boundingBox.width + \"px\");\n\n // Set X coordinate:\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".parseProps: X: \" + this.props.X);\n this.domRef.css(\"left\", this.props.X);\n\n // Set Y coordinate:\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".parseProps: Y: \" + this.props.Y);\n this.domRef.css(\"top\", this.props.Y);\n\n // Set depth\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".parseProps: Z: \" + this.props.Z);\n this.domRef.css(\"z-index\", this.props.Z);\n\n // Set alpha of whole object:\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".parseProps: Alpha: 0\");\n this.domRef.css(\"opacity\", 0);\n\n this.paper = Raphael(this.domRef[0], \"100%\", \"100%\");\n\n this.domRef.find(\"svg\").css(\"position\", \"absolute\");\n this.domRef.find(\"svg\").css(\"left\", this.boundingBox.xOffset * -1);\n this.domRef.find(\"svg\").css(\"top\", this.boundingBox.yOffset * -1);\n\n this.drawLine();\n\n this.isReady = true;\n};\n\n\nln.objects.Line.prototype.getBox = function()\n{\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".getBox\");\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".getBox: props.LineControlPointX: \" + this.props.LineControlPointX);\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".getBox: props.LineControlPointY: \" + this.props.LineControlPointY);\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".getBox: props.LineEndPosX: \" + this.props.LineEndPosX);\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".getBox: props.LineEndPosY: \" + this.props.LineEndPosY);\n\n var startX = 0;\n var startY = 0;\n var controlX = this.props.LineControlPointX;\n var controlY = this.props.LineControlPointY;\n var endX = this.props.LineEndPosX;\n var endY = this.props.LineEndPosY;\n\n var xMin = startX;\n var xMax = startX;\n var yMin = startY;\n var yMax = startY;\n\n // Get xMin:\n if (controlX < xMin)\n {\n xMin = controlX;\n }\n\n if (endX < xMin)\n {\n xMin = endX;\n }\n\n // Get xMax:\n if (controlX > xMax)\n {\n xMax = controlX;\n }\n\n if (endX > xMax)\n {\n xMax = endX;\n }\n\n // Get yMin:\n if (controlY < yMin)\n {\n yMin = controlY;\n }\n\n if (endY < yMin)\n {\n yMin = endY;\n }\n\n // Get yMax:\n if (controlY > yMax)\n {\n yMax = controlY;\n }\n\n if (endY > yMax)\n {\n yMax = endY;\n }\n\n var xOffset = 0;\n var yOffset = 0;\n\n if (xMin < 0)\n {\n xOffset = Math.abs(xMin);\n }\n\n if (yMin < 0)\n {\n yOffset = Math.abs(yMin);\n }\n\n var oBox = {};\n oBox.xMin = xMin;\n oBox.xMax = xMax;\n oBox.yMin = yMin;\n oBox.yMax = yMax;\n oBox.height = (yMax - yMin) + (this.importedLineThickness * 2);\n oBox.width = (xMax - xMin) + (this.importedLineThickness * 2);\n oBox.xOffset = xOffset + this.importedLineThickness;\n oBox.yOffset = yOffset + this.importedLineThickness;\n\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".getBox: startX: \" + startX);\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".getBox: startY: \" + startY);\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".getBox: controlX: \" + controlX);\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".getBox: controlY: \" + controlY);\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".getBox: endX: \" + endX);\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".getBox: endY: \" + endY);\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".getBox: xMin: \" + xMin);\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".getBox: xMax: \" + xMax);\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".getBox: yMin: \" + yMin);\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".getBox: yMax: \" + yMax);\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".getBox: width: \" + oBox.width);\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".getBox: height: \" + oBox.height);\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".getBox: xOffset: \" + xOffset);\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".getBox: yOffset: \" + yOffset);\n\n return oBox;\n};\n\n\nln.objects.Line.prototype.drawLine = function() {\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".drawLine\");\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".drawLine: boundingBox.xOffset: \" + this.boundingBox.xOffset);\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".drawLine: boundingBox.yOffset: \" + this.boundingBox.yOffset);\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".drawLine: props.LineControlPointX: \" + this.props.LineControlPointX);\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".drawLine: props.LineControlPointY: \" + this.props.LineControlPointY);\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".drawLine: props.LineEndPosX: \" + this.props.LineEndPosX);\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".drawLine: props.LineEndPosY: \" + this.props.LineEndPosY);\n\n var halfStrokeWeight = (this.importedLineThickness / 2);\n\n var startX = this.boundingBox.xOffset;\n var startY = this.boundingBox.yOffset;\n var controlX = (startX + this.props.LineControlPointX);\n var controlY = (startY + this.props.LineControlPointY);\n var endX = (startX + this.props.LineEndPosX);\n var endY = (startY + this.props.LineEndPosY);\n\n var linePath = \"M\" + startX + \",\" + startY;\n\n if (this.props.Variation === \"Straight\") {\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".drawLine: Variation Straight\");\n linePath += \"L\" + endX + \", \" + endY;\n } else if (this.props.Variation === \"Curved\") {\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".drawLine: Variation Curved\");\n linePath += \"Q\" + controlX + \",\" + controlY + \",\" + endX + \",\" + endY;\n } else if (this.props.Variation === \"Angled\") {\n linePath += \"L\" + controlX + \",\" + controlY;\n linePath += \"L\" + endX + \",\" + endY;\n }\n\n // linePath += \"Z\";\n this.theLine = this.paper.path(linePath);\n\n if (this.props.LineStyle === \"Dashed\")\n {\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".drawLine: LineStyle Dashed\");\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".drawLine: props.DashSize: \" + this.props.DashSize);\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".drawLine: props.dashGapsSize: \" + this.props.dashGapsSize);\n $(this.theLine[0]).attr(\"stroke-dasharray\", this.props.DashSize + \",\" + this.props.dashGapsSize);\n }\n\n this.theLine.attr(\"stroke-width\", this.importedLineThickness);\n this.theLine.attr(\"stroke\", \"#\" + this.importedLineCol);\n this.theLine.attr(\"stroke-opacity\", this.importedLineAlpha / 100);\n this.theLine.attr(\"stroke-linejoin\", \"round\");\n\n // Rotation\n this.domRef.css(\"-ms-transform-origin\", \"0px 0px\");\n this.domRef.css(\"-moz-transform-origin\", \"0px 0px\");\n this.domRef.css(\"-webkit-transform-origin\", \"0px 0px\");\n this.domRef.css(\"transform-origin\", \"0px 0px\");\n\n this.domRef.css(\"-ms-transform\", \"rotate(\" + this.props.Rotation + \"deg)\");\n this.domRef.css(\"-moz-transform\", \"rotate(\" + this.props.Rotation + \"deg)\");\n this.domRef.css(\"-webkit-transform\", \"rotate(\" + this.props.Rotation + \"deg)\");\n this.domRef.css(\"transform\", \"rotate(\" + this.props.Rotation + \"deg)\");\n};","ln.extend(ln, \"ln.objects\");\n\nln.objects.Oval = function(playerRef, jQueryContainer, uniqueNum, init_props, oFamily, oType)\n{\n this.player = playerRef;\n this.domRef = jQueryContainer;\n this.num = uniqueNum;\n this.props_init = init_props;\n this.props = new Object();\n this.oFamily = oFamily;\n this.oType = oType;\n this.uID = this.oType + \"_\" + this.num;\n this.domRef.attr(\"id\", this.uID);\n this.domRef.css(\"position\", \"absolute\");\n\n this.timeline_manager = null;\n this.interactions_manager = null;\n this.isReady = false;\t// For questions so that they know if this object has fully loaded and set its properties\n\n this.paper = null;\n this.theOval = null;\n\n this.importedHeight = 0;\n this.importedWidth = 0;\n\n this.extractProps();\n};\n\nln.objects.Oval.prototype.extractProps = function()\n{\n this.props = new ln.objects.common.PropExtractor(this.props_init, this.uID);\n\n if (this.props)\n {\n this.parseProps();\n }\n};\n\nln.objects.Oval.prototype.parseProps = function()\n{\n this.timeline_manager = new ln.objects.common.TimelineManager(this, this.domRef, this.player);\n this.interactions_manager = new ln.objects.common.InteractionsManager(this, this.domRef, this.player, this.props.RequireClickForScreenCompletion, this.props.Parent);\n\n // Set height (ExternalHeight for AS2 or Height for AS3):\n if (this.props.hasOwnProperty(\"ExternalHeight\"))\n {\n this.importedHeight = this.props.ExternalHeight;\n this.domRef.css(\"height\", this.props.ExternalHeight + \"px\");\n } else if (this.props.hasOwnProperty(\"Height\"))\n {\n this.importedHeight = this.props.Height;\n this.domRef.css(\"height\", this.props.Height + \"px\");\n }\n\n // Set width (ExternalWidth for AS2 or Width for AS3):\n if (this.props.hasOwnProperty(\"ExternalWidth\"))\n {\n this.importedWidth = this.props.ExternalWidth;\n this.domRef.css(\"width\", this.props.ExternalWidth + \"px\");\n } else if (this.props.hasOwnProperty(\"Height\"))\n {\n this.importedWidth = this.props.Width;\n this.domRef.css(\"width\", this.props.Width + \"px\");\n }\n\n // Set X coordinate:\n this.domRef.css(\"left\", this.props.X);\n\n // Set Y coordinate:\n this.domRef.css(\"top\", this.props.Y);\n\n // Set depth\n this.domRef.css(\"z-index\", this.props.Z);\n\n // Set alpha of whole object:\n this.domRef.css(\"opacity\", 0);\n\n this.paper = Raphael(this.domRef[0], this.importedWidth, this.importedHeight);\n\n this.drawOval();\n\n this.isReady = true;\n};\n\nln.objects.Oval.prototype.drawOval = function()\n{\n var halfWidth = (this.importedWidth / 2);\n var halfHeight = (this.importedHeight / 2);\n var stroke = this.props.FrameThickness;\n var halfStroke = (this.props.FrameThickness / 2);\n\n // Paper.ellipse(centerX, centerY, radiusX, radiusY)\n this.theOval = this.paper.ellipse((halfWidth), (halfHeight), (halfWidth - halfStroke), (halfHeight - halfStroke));\n this.theOval.attr(\"stroke-width\", this.props.FrameThickness);\n this.theOval.attr(\"fill\", \"#\" + this.props.FillColour);\n this.theOval.attr(\"fill-opacity\", this.props.FillAlpha / 100);\n this.theOval.attr(\"stroke\", \"#\" + this.props.FrameColour);\n this.theOval.attr(\"stroke-opacity\", this.props.FrameAlpha / 100);\n this.theOval.attr(\"stroke-linejoin\", \"round\");\n\n if (this.props.LineStyle === \"Dashed\")\n {\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".drawOval: LineStyle Dashed\");\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".drawOval: props.DashSize: \" + this.props.DashSize);\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".drawOval: props.dashGapsSize: \" + this.props.dashGapsSize);\n $(this.theOval[0]).attr(\"stroke-dasharray\", this.props.DashSize + \",\" + this.props.dashGapsSize);\n }\n\n // Rotation\n this.domRef.css(\"-ms-transform-origin\", \"0px 0px\");\n this.domRef.css(\"-moz-transform-origin\", \"0px 0px\");\n this.domRef.css(\"-webkit-transform-origin\", \"0px 0px\");\n this.domRef.css(\"transform-origin\", \"0px 0px\");\n\n this.domRef.css(\"-ms-transform\", \"rotate(\" + this.props.Rotation + \"deg)\");\n this.domRef.css(\"-moz-transform\", \"rotate(\" + this.props.Rotation + \"deg)\");\n this.domRef.css(\"-webkit-transform\", \"rotate(\" + this.props.Rotation + \"deg)\");\n this.domRef.css(\"transform\", \"rotate(\" + this.props.Rotation + \"deg)\");\n};","ln.extend(ln, \"ln.shell\");\n\nln.shell.ProgressBar = function (jQueryContainer, shellRef)\n{\n this.domRef = jQueryContainer;\n this.shell = shellRef;\n\n this.domRef.append(\"
\");\n this.domRefTitle = this.domRef.find(\".title\");\n\n this.domRef.append(\"
\");\n this.domRefSegments = this.domRef.find(\".segments\");\n\n this.domRef.append(\"
Screen current / total
\");\n this.domRefPosition = this.domRef.find(\".position\");\n this.domRefPositionTotal = this.domRefPosition.find(\".total\");\n this.domRefPositionCurrent = this.domRefPosition.find(\".current\");\n\n this.currentSection = -1;\n this.screens = [];\n};\n\nln.shell.ProgressBar.prototype.update = function (section, screen)\n{\n if (this.currentSection === -1)\n {\n this.currentSection = section;\n this.screens = this.shell.getScreensInUnit(section);\n this.paint(screen);\n } else if (this.currentSection !== section)\n {\n this.currentSection = section;\n this.screens = this.shell.getScreensInUnit(section);\n this.paint(screen);\n } else\n {\n this.paint(screen);\n }\n};\n\nln.shell.ProgressBar.prototype.paint = function (currentScreen)\n{\n this.domRefSegments.empty();\n this.domRefTitle.text(this.shell.lesson_section_ids[this.currentSection]);\n this.domRefTitle.attr(\"title\", \"Screen: \" + this.shell.lesson_location + \" (\" + this.shell.arrScreens[this.shell.lesson_location].title + \")\");\n\n var sectionPosition = 1;\n\n for (var i = 0; i < this.screens.length; i++)\n {\n var classes = \"segment\";\n\n if (i === 0)\n {\n classes += \" first\";\n } else if (i === (this.screens.length - 1))\n {\n classes += \" last\";\n } else\n {\n classes += \" middle\";\n }\n\n // all passed, completed and failed screens have the same colour\n if (this.shell.arrScreens[this.screens[i]].status === \"n\")\n {\n classes += \" notVisited\";\n } else if (this.shell.arrScreens[this.screens[i]].status === \"i\")\n {\n classes += \" incomplete\";\n } else if (this.shell.arrScreens[this.screens[i]].status === \"c\")\n {\n classes += \" completed\";\n } else if (this.shell.arrScreens[this.screens[i]].status === \"p\")\n {\n classes += \" passed\";\n } else if (this.shell.arrScreens[this.screens[i]].status === \"f\")\n {\n classes += \" failed\";\n }\n\n if (this.screens[i] === currentScreen)\n {\n sectionPosition = i + 1;\n classes += \" currentScreen\";\n }\n\n this.domRefSegments.append(\"
\");\n }\n\n this.domRefPositionCurrent.text(sectionPosition);\n this.domRefPositionTotal.text(this.screens.length);\n};","ln.extend(ln, \"ln.objects\");\n\nln.objects.QuestionDragAndDrop = function (playerRef, jQueryContainer, uniqueNum, init_props, oFamily, oType)\n{\n this.player = playerRef;\n this.domRef = jQueryContainer;\n this.num = uniqueNum;\n this.props_init = init_props;\n this.props = new Object();\n this.oFamily = oFamily;\n this.oType = oType;\n this.uID = this.oType + \"_\" + this.num;\n this.domRef.attr(\"id\", this.uID);\n this.domRef.css(\"position\", \"absolute\");\n\n this.timeline_manager = null;\n this.interactions_manager = null;\n this.isReady = false;\t// Has all the children reported in?\n\n this.pointerEvents = new ln.util.PointerEvents();\n\n this.interval = null;\n\n this.buttonSet = null;\n this.mediaLoaded = false; // For the button set (set to true if using default, failing to load (defaulting to default buttonset or successfully loading external buttonset)\n this.externalButtonSetLoaded = false;\n this.externalButtonSetScriptName = null; // String reference (global to most local) where the constructor / class for the loaded button set is\n\n this.domRef.append(\"
\");\n this.domRefButtons = this.domRef.find(\"#\" + this.uID + \"_buttonSet\");\n\n this.childrenReady = false;\n\n this.numDraggables = 0;\n this.arrDraggables = new Array();\n this.arrDraggablesDepths = new Array();\n this.arrDropTargets = new Array();\n this.numDropTargets = 0;\n\n // Styling\n this.draggablesOutlineWeight = 4;\n this.draggablesColStrokeSelected = \"rgba(0, 157, 220, 1)\";\n this.draggablesColStrokeOver = \"rgba(255, 153, 0, 1)\";\n this.draggablesColFillSelected = \"rgba(191, 223, 225, 0)\";\n this.draggablesColFillOver = \"rgba(255, 221, 153, 0)\";\n this.draggablesColFillOverSelected = \"rgba(191, 223, 225, 0)\";\n this.draggablesColStrokeCorrect = \"rgba(0, 255, 0, 1)\";\n this.draggablesColStrokeWrong = \"rgba(255, 0, 0, 1)\";\n\n this.buttonsEnabled = false;\n\n this.intAttemptsMade = 0;\n this.intAllowedAttempts = 0;\n this.questionState = \"none\"; // Set when showing any of the feedbacks (if applicable)\n\n // Currently dragged object references:\n this.draggingJQ = null;\n this.draggingJS = null;\n this.draggingIndex = null;\n this.xMouseDiff = 0;\n this.yMouseDiff = 0;\n\n this.domRef.bind(\"QuestionEventCheckAnswer\", {q: this}, function (e)\n {\n e.data.q.answersCheck();\n });\n\n this.domRef.bind(\"QuestionEventShowCorrectAnswer\", {q: this}, function (e)\n {\n e.data.q.answersShowCorrect();\n });\n\n this.domRef.bind(\"QuestionEventResetAnswer\", {q: this}, function (e)\n {\n e.data.q.answersReset();\n });\n\n this.domRefButtons.css(\"position\", \"absolute\");\n\n this.extractProps();\n};\n\nln.objects.QuestionDragAndDrop.prototype.extractProps = function ()\n{\n this.props = new ln.objects.common.PropExtractor(this.props_init, this.uID);\n\n if (this.props)\n {\n this.parseProps();\n }\n};\n\nln.objects.QuestionDragAndDrop.prototype.parseProps = function ()\n{\n // Used in the getScript handlers:\n var _this = this;\n\n this.timeline_manager = new ln.objects.common.TimelineManager(this, this.domRef, this.player);\n this.interactions_manager = new ln.objects.common.InteractionsManager(this, this.domRef, this.player, this.props.RequireClickForScreenCompletion, \"keep_internal_events\");\n\n this.numDraggables = this.props.DraggablesAndAnswers.split(\"|\").length;\n\n this.arrDropTargets = this.props.DropTargetsObjects.split(\",\");\n\n this.numDropTargets = this.arrDropTargets.length;\n\n this.intAllowedAttempts = this.props.AllowedAttempts;\n\n this.props.AnswerStacking = parseInt(this.props.AnswerStacking);\n\n // Set X coordinate:\n this.domRef.css(\"left\", parseInt(this.props.X + \"px\"));\n\n // Set Y coordinate:\n this.domRef.css(\"top\", parseInt(this.props.Y + \"px\"));\n\n // Set depth:\n this.domRef.css(\"z-index\", parseInt(this.props.Z));\n\n // Set alpha of whole object:\n this.domRef.css(\"opacity\", 0);\n\n if (this.props.Media === \"None\" || this.props.Media === \"none\" || this.props.Media === \"\" || this.props.Media === undefined || this.props.Media === null)\n {\n // No need to load external buttonset:\n this.mediaLoaded = true;\n this.domRef.trigger(\"MediaLoadedEvent\", \"media loaded\");\n\n this.setupButtonsDefault();\n this.checkChildrenBegin();\n } else\n {\n var jsButtonSet = new ln.objects.common.ButtonSetsMatcher(this.props.Media);\n\n // Load external buttonset Javascript file:\n $.getScript(this.player.PATH_MEDIA + jsButtonSet.getJsMedia())\n .done(function (script, textStatus)\n {\n _this.externalButtonSetScriptName = ln.util.getExternalScriptName(script);\n\n _this.mediaLoaded = true;\n _this.externalButtonSetLoaded = true;\n\n _this.domRef.trigger(\"MediaLoadedEvent\", \"media loaded\");\n\n _this.setupButtonsDefault();\n _this.checkChildrenBegin();\n })\n .fail(function (jqxhr, settings, exception)\n {\n _this.mediaLoaded = true;\n _this.externalButtonSetLoaded = false;\n\n _this.domRef.trigger(\"MediaLoadedEvent\", \"media loaded\");\n\n _this.setupButtonsDefault();\n _this.checkChildrenBegin();\n });\n }\n};\n\nln.objects.QuestionDragAndDrop.prototype.setupButtonsDefault = function ()\n{\n if (this.externalButtonSetLoaded === true)\n {\n var newButtonSet = ln.util.stringToFunction(this.externalButtonSetScriptName);\n this.buttonSet = new newButtonSet(this.uID, this.domRefButtons, this.props.ButtonCol);\n } else\n {\n this.buttonSet = new ln.objects.common.QuestionButtonsDefault(this.uID, this.domRefButtons, this.props.ButtonCol);\n }\n\n this.buttonSet.setupButtonDefaults();\n\n this.questionDisable();\n};\n\nln.objects.QuestionDragAndDrop.prototype.questionDisable = function ()\n{\n this.disableQuestionButtons();\n this.disableDraggables();\n\n this.buttonsEnabled = false;\n};\n\nln.objects.QuestionDragAndDrop.prototype.questionEnable = function ()\n{\n // Are you done with the question (no attempts left). If so, don't enable the answers again and update question ui\n if (this.intAttemptsMade >= this.intAllowedAttempts || this.questionState === \"Passed\" || this.questionState === \"Failed\")\n {\n this.updateQuestionUI();\n } else\n {\n this.buttonsEnabled = true;\n this.enableQuestionButtons();\n this.enableDraggables();\n }\n};\n\nln.objects.QuestionDragAndDrop.prototype.dropDraggableObj = function (draggableJS, draggableJQ, draggableIndex, dropX, dropY)\n{\n var foundTarget = false;\n\n for (var i = 0; i < this.numDropTargets; i++)\n {\n var targetJQ = this.player.domRef.find(\"#\" + this.arrDropTargets[i]);\n\n var targetBounds = new Object();\n targetBounds.xMin = targetJQ.offset().left;\n targetBounds.xMax = targetBounds.xMin + parseInt(targetJQ.css(\"width\").slice(0, -2));\n targetBounds.yMin = targetJQ.offset().top;\n targetBounds.yMax = targetBounds.yMin + parseInt(targetJQ.css(\"height\").slice(0, -2));\n\n var okX = false;\n var okY = false;\n\n if (dropX >= targetBounds.xMin && dropX <= targetBounds.xMax)\n {\n okX = true;\n }\n\n if (dropY >= targetBounds.yMin && dropY <= targetBounds.yMax)\n {\n okY = true;\n }\n\n if (okX === true && okY === true)\n {\n // X and Y OK - Inside a box:\n if (this.props.AllowMultipleChoices === false)\n {\n var occupied = false;\n\n for (var j = 0; j < this.numDraggables; j++)\n {\n // Check if any '.currentAnswer' is set to this particular box already except itself:\n if (this.arrDraggables[j].currentAnswerID === this.arrDropTargets[i] && j !== draggableIndex)\n {\n occupied = true;\n }\n }\n\n if (occupied === false)\n {\n foundTarget = true;\n this.arrDraggables[draggableIndex].currentAnswerID = this.arrDropTargets[i];\n this.arrDraggables[draggableIndex].currentAnswerJS = this.player.objects[this.arrDropTargets[i]];\n this.arrDraggables[draggableIndex].currentAnswerJQ = this.player.domRef.find(\"#\" + this.arrDropTargets[i]);\n break;\n } else\n {\n break;\n }\n } else\n {\n foundTarget = true;\n this.arrDraggables[draggableIndex].currentAnswerID = this.arrDropTargets[i];\n this.arrDraggables[draggableIndex].currentAnswerJS = this.player.objects[this.arrDropTargets[i]];\n this.arrDraggables[draggableIndex].currentAnswerJQ = this.player.domRef.find(\"#\" + this.arrDropTargets[i]);\n break;\n }\n }\n }\n\n // Why reset the current answer if you didn't hit a box, you might have dragged it from a different box initially?\n if (foundTarget === false)\n {\n this.arrDraggables[draggableIndex].currentAnswerID = undefined;\n this.arrDraggables[draggableIndex].currentAnswerJS = undefined;\n this.arrDraggables[draggableIndex].currentAnswerJQ = undefined;\n }\n\n if (this.arrDraggables[draggableIndex].currentAnswerJS !== undefined)\n {\n\n }\n\n // Don't auto check answer unless you've actually dropped an object in a valid place...\n if (this.props.AutoCheckAnswer === true && foundTarget === true)\n {\n this.answersCheck();\n }\n\n this.updateQuestionUI(false, false);\n};\n\nln.objects.QuestionDragAndDrop.prototype.updateQuestionUI = function (showCorrect, objLastCoord)\n{\n if (showCorrect === true)\n {\n this.updateQuestionUI_showCorrect();\n } else\n {\n if (objLastCoord === true)\n {\n // Go back to where they were last time dropped (rewinding and playing timeline)\n for (var i = 0; i < this.numDraggables; i++)\n {\n var draggableJQ = this.arrDraggables[i].draggableJQ;\n var draggableJS = this.arrDraggables[i].draggableJS;\n\n if (this.arrDraggables[i].currentAnswerID !== undefined)\n {\n // Slide to current answer (box)\n draggableJQ.animate({\n left: draggableJS.dd_lastDroppedLeft,\n top: draggableJS.dd_lastDroppedTop\n }, 500);\n }\n\n // Any unset answer is set to default original coordinates:\n if (this.arrDraggables[i].currentAnswerID === undefined)\n {\n draggableJQ.animate({\n left: draggableJS.dd_originalLeft,\n top: draggableJS.dd_originalTop\n }, 500);\n }\n }\n } else\n {\n // Obj dropped, get X and Y coordinates...\n for (var i = 0; i < this.numDraggables; i++)\n {\n var draggableJQ = this.arrDraggables[i].draggableJQ;\n var draggableJS = this.arrDraggables[i].draggableJS;\n\n if (this.arrDraggables[i].currentAnswerID !== undefined)\n {\n // Slide to current answer (box)\n\n var newX = this.boxX(this.arrDraggables[i]);\n var newY = this.boxY(this.arrDraggables[i]);\n\n draggableJS.dd_lastDroppedLeft = newX;\n draggableJS.dd_lastDroppedTop = newY;\n\n draggableJQ.animate({\n left: newX,\n top: newY\n }, 500);\n }\n\n // Any unset answer is set to default original coordinates:\n if (this.arrDraggables[i].currentAnswerID === undefined)\n {\n draggableJQ.animate({\n left: draggableJS.dd_originalLeft,\n top: draggableJS.dd_originalTop\n }, 500);\n }\n }\n }\n }\n};\n\nln.objects.QuestionDragAndDrop.prototype.updateQuestionUI_showCorrect = function ()\n{\n var dropTargetStacks = new Array();\n\n var animCount = 0;\n var animDelay = 250;\n var animTime = 500;\n\n // Create a stack of objects where each array element is an object with .target (string) and .draggables (array)\n // arrDropTargets\n // numDropTargets\n // arrDraggables\n // numDraggables\n\n // Correct answers have already been set so each draggable has already been set the correct answer (a drop target). If a drop target had multiple correct\n // drop targets it was assigned the first available and if anything was already correct it stayed that way\n\n // Loop through the drop targets and generate an array the length of the amount of drop targets\n // Each element is an object with references to the drop target (targetID, targetJQ) and an array of the\n // draggables supposed to be in that drop target (each of those is an object with all the draggable's data)\n for (var i = 0; i < this.numDropTargets; i++)\n {\n // Each item in this array has references to the drop target and an array of draggables supposed to be in that drop target:\n dropTargetStacks.push(new Object({\n targetID: this.arrDropTargets[i],\n targetJQ: this.player.domRef.find(\"#\" + this.arrDropTargets[i]),\n draggables: new Array()\n }));\n\n for (var j = 0; j < this.numDraggables; j++)\n {\n if (this.arrDraggables[j].currentAnswerID === this.arrDropTargets[i])\n {\n dropTargetStacks[i].draggables.push(this.arrDraggables[j]);\n } else if (this.arrDraggables[j].currentAnswerID === undefined)\n {\n // Move back to original position as correct answer is 'no target'\n this.arrDraggables[j].draggableJQ.delay(animCount * animDelay).animate(\n {\n left: this.arrDraggables[j].draggableJS.dd_originalLeft,\n top: this.arrDraggables[j].draggableJS.dd_originalTop\n }, 500);\n\n animCount++;\n }\n }\n }\n\n // Loop through the intended stacks of objects (each drop target), calculate where everything is supposed to go and send it there...\n for (var j = 0; j < dropTargetStacks.length; j++)\n {\n if (dropTargetStacks[j].draggables.length === 1)\n {\n // Only one item - centre it, no magic here:\n dropTargetStacks[j].draggables[0].draggableJS.dd_showCorrectLeft = this.boxX(dropTargetStacks[j].draggables[0]);\n dropTargetStacks[j].draggables[0].draggableJS.dd_showCorrectTop = this.boxY(dropTargetStacks[j].draggables[0]);\n\n dropTargetStacks[j].draggables[0].draggableJQ.delay(animCount * animDelay).animate({\n left: dropTargetStacks[j].draggables[0].draggableJS.dd_showCorrectLeft,\n top: dropTargetStacks[j].draggables[0].draggableJS.dd_showCorrectTop\n }, 500);\n\n animCount++;\n } else\n {\n // Multiple items\n var dropTargetJQ = dropTargetStacks[j].targetJQ;\n\n var boxLeft = parseInt(dropTargetJQ.css(\"left\").slice(0, -2));\n var boxWidth = parseInt(dropTargetJQ.css(\"width\").slice(0, -2));\n var boxRight = boxLeft + boxWidth;\n var boxXCentre = boxLeft + (boxWidth / 2);\n\n var boxTop = parseInt(dropTargetJQ.css(\"top\").slice(0, -2));\n var boxHeight = parseInt(dropTargetJQ.css(\"height\").slice(0, -2));\n var boxBottom = boxTop + boxHeight;\n var boxYCentre = boxTop + (boxHeight / 2);\n\n // Begin Calculate total width, height and gap between objects\n var intAnswersWidth = 0;\n var intAnswersHeight = 0;\n var intGaps = 0;\n var intMargin = 8;\n\n for (var o = 0; o < dropTargetStacks[j].draggables.length; o++)\n {\n intAnswersWidth = intAnswersWidth + parseInt(dropTargetStacks[j].draggables[o].draggableJQ.css(\"width\").slice(0, -2));\n intAnswersHeight = intAnswersHeight + parseInt(dropTargetStacks[j].draggables[o].draggableJQ.css(\"height\").slice(0, -2));\n intGaps++;\n }\n\n // There is one gap less than there are objects, naturally...\n intGaps--;\n\n // Calculate gaps:\n var intXGap = ((boxWidth - (intMargin * 2)) - intAnswersWidth) / intGaps;\n var intYGap = ((boxHeight - (intMargin * 2)) - intAnswersHeight) / intGaps;\n\n // No 'previous' object exist yet...\n var lastDropped = undefined;\n\n for (var k = 0; k < dropTargetStacks[j].draggables.length; k++)\n {\n var draggableJQ = dropTargetStacks[j].draggables[k].draggableJQ;\n var draggableJS = dropTargetStacks[j].draggables[k].draggableJS;\n var draggableID = dropTargetStacks[j].draggables[k].draggableID;\n\n // Stack them on top of each other in order of being placed:\n this.topOfPile(draggableJQ);\n\n // Get bounds and other values for the object currently being placed:\n var objX = parseInt(draggableJQ.css(\"left\").slice(0, -2));\n var objY = parseInt(draggableJQ.css(\"top\").slice(0, -2));\n var objW = parseInt(draggableJQ.css(\"width\").slice(0, -2));\n var objH = parseInt(draggableJQ.css(\"height\").slice(0, -2));\n\n // How much are the bounds of the object less than the _x of the object (always going to be less due to rotation, if any);\n var objXOffset = 0;\n var objYOffset = 0;\n\n // Get bounds and other values for the previously placed object:\n var lastDroppedX = 0;\n var lastDroppedY = 0;\n var lastDroppedW = 0;\n var lastDroppedH = 0;\n\n if (lastDropped !== undefined && lastDropped !== null)\n {\n lastDroppedX = lastDropped.draggableJS.dd_showCorrectLeft;\n lastDroppedY = lastDropped.draggableJS.dd_showCorrectTop;\n lastDroppedW = parseInt(lastDropped.draggableJQ.css(\"width\").slice(0, -2));\n lastDroppedH = parseInt(lastDropped.draggableJQ.css(\"height\").slice(0, -2));\n }\n\n // How much are the bounds of the previous object less than the _x of the object (always going to be less due to rotation, if any);\n var lastDroppedXOffset = 0;\n var lastDroppedYOffset = 0;\n\n // To make below code a bit tidier:\n var moveToX = 0;\n var moveToY = 0;\n\n if (this.props.AnswerStacking === 0) // Top to bottom, aligned left\n {\n if (lastDropped === undefined)\n {\n moveToX = boxLeft + intMargin + objXOffset;\n moveToY = boxTop + intMargin + objYOffset;\n } else\n {\n moveToX = boxLeft + intMargin + objXOffset;\n moveToY = lastDroppedY + lastDroppedH - lastDroppedYOffset + intYGap + objYOffset;\n }\n } else if (this.props.AnswerStacking === 1) // Top to bottom, aligned centre\n {\n if (lastDropped === undefined)\n {\n moveToX = boxXCentre - (objW / 2) + objXOffset;\n moveToY = boxTop + intMargin + objYOffset;\n } else\n {\n moveToX = boxXCentre - (objW / 2) + objXOffset;\n moveToY = lastDroppedY + lastDroppedH - lastDroppedYOffset + intYGap + objYOffset;\n }\n } else if (this.props.AnswerStacking === 2) // Top to bottom, aligned right\n {\n if (lastDropped === undefined)\n {\n moveToX = boxRight - intMargin - objW + objXOffset;\n moveToY = boxTop + intMargin + objYOffset;\n } else\n {\n moveToX = boxRight - intMargin - objW + objXOffset;\n moveToY = lastDroppedY + lastDroppedH - lastDroppedYOffset + intYGap + objYOffset;\n }\n } else if (this.props.AnswerStacking === 3) // Left to right, aligned top\n {\n if (lastDropped === undefined)\n {\n moveToX = boxLeft + intMargin + objXOffset;\n moveToY = boxTop + intMargin + objYOffset;\n } else\n {\n moveToX = lastDroppedX + lastDroppedW - lastDroppedXOffset + intXGap + objXOffset;\n moveToY = boxTop + intMargin + objYOffset;\n }\n } else if (this.props.AnswerStacking === 4) // Left to right, aligned middle\n {\n if (lastDropped === undefined)\n {\n moveToX = boxLeft + intMargin + objXOffset;\n moveToY = boxYCentre - (objH / 2) + objYOffset;\n } else\n {\n moveToX = lastDroppedX + lastDroppedW - lastDroppedXOffset + intXGap + objXOffset;\n moveToY = boxYCentre - (objH / 2) + objYOffset;\n }\n } else if (this.props.AnswerStacking === 5) // Left to right, aligned bottom\n {\n if (lastDropped === undefined)\n {\n moveToX = boxLeft + intMargin + objXOffset;\n moveToY = boxBottom - intMargin - objH + objYOffset;\n } else\n {\n moveToX = lastDroppedX + lastDroppedW - lastDroppedXOffset + intXGap + objXOffset;\n moveToY = boxBottom - intMargin - objH + objYOffset;\n }\n }\n\n draggableJS.dd_showCorrectLeft = Math.round(moveToX);\n draggableJS.dd_showCorrectTop = Math.round(moveToY);\n\n dropTargetStacks[j].draggables[k].draggableJQ.delay(animCount * animDelay).animate(\n {\n left: Math.round(moveToX),\n top: Math.round(moveToY)\n }, 500);\n\n lastDropped = dropTargetStacks[j].draggables[k];\n animCount++;\n }\n }\n }\n};\n\nln.objects.QuestionDragAndDrop.prototype.boxX = function (draggableData)\n{\n var droppedJQ = draggableData.draggableJQ;\n var droppedID = draggableData.draggableID;\n var targetJQ = draggableData.currentAnswerJQ;\n var targetID = draggableData.currentAnswerID;\n\n var droppedBounds = new Object();\n droppedBounds.xMin = parseInt(droppedJQ.css(\"left\").slice(0, -2));\n droppedBounds.xMax = droppedBounds.xMin + parseInt(droppedJQ.css(\"width\").slice(0, -2));\n droppedBounds.width = parseInt(droppedJQ.css(\"width\").slice(0, -2));\n\n var targetBounds = new Object();\n targetBounds.xMin = parseInt(targetJQ.css(\"left\").slice(0, -2));\n targetBounds.xMax = targetBounds.xMin + parseInt(targetJQ.css(\"width\").slice(0, -2));\n\n var targetCentreX = targetBounds.xMin + ((targetBounds.xMax - targetBounds.xMin) / 2);\n\n var objInBoxAlready = new Array();\n\n for (var i = 0; i < this.numDraggables; i++)\n {\n if (this.arrDraggables[i].currentAnswerID === targetID)\n {\n objInBoxAlready.push(this.arrDraggables[i].draggableJQ);\n }\n }\n\n if (objInBoxAlready.length === 1)\n {\n // Centre:\n return Math.round(targetCentreX - (droppedBounds.width / 2));\n } else\n {\n if (droppedBounds.width > targetBounds.xMax - targetBounds.xMin)\n {\n // Dragged object too wide for box, centre it:\n return Math.round(targetCentreX - (droppedBounds.width / 2));\n } else if (droppedBounds.xMin < targetBounds.xMin)\n {\n // Too far to left:\n return Math.round(targetBounds.xMin);\n } else if (droppedBounds.xMin + droppedBounds.width > targetBounds.xMax)\n {\n // Too far to right:\n return Math.round(targetBounds.xMax - droppedBounds.width);\n } else\n {\n // Leave where dropped:\n return Math.round(droppedBounds.xMin);\n }\n }\n};\n\nln.objects.QuestionDragAndDrop.prototype.boxY = function (draggableData)\n{\n var droppedJQ = draggableData.draggableJQ;\n var droppedID = draggableData.draggableID;\n var targetJQ = draggableData.currentAnswerJQ;\n var targetID = draggableData.currentAnswerID;\n\n var droppedBounds = new Object();\n droppedBounds.yMin = parseInt(droppedJQ.css(\"top\").slice(0, -2));\n droppedBounds.yMax = droppedBounds.yMin + parseInt(droppedJQ.css(\"height\").slice(0, -2));\n droppedBounds.height = parseInt(droppedJQ.css(\"height\").slice(0, -2));\n\n var targetBounds = new Object();\n targetBounds.yMin = parseInt(targetJQ.css(\"top\").slice(0, -2));\n targetBounds.yMax = targetBounds.yMin + parseInt(targetJQ.css(\"height\").slice(0, -2));\n\n var targetCentreY = targetBounds.yMin + ((targetBounds.yMax - targetBounds.yMin) / 2);\n\n var objInBoxAlready = new Array();\n\n for (var i = 0; i < this.numDraggables; i++)\n {\n if (this.arrDraggables[i].currentAnswerID === targetID)\n {\n objInBoxAlready.push(this.arrDraggables[i].draggableJQ);\n }\n }\n\n if (objInBoxAlready.length === 1)\n {\n // Centre:\n return Math.round(targetCentreY - (droppedBounds.height / 2));\n } else\n {\n if (droppedBounds.height > targetBounds.yMax - targetBounds.yMin)\n {\n // Dragged object too wide for box, centre it:\n return Math.round(targetCentreY - (droppedBounds.height / 2));\n } else if (droppedBounds.yMin < targetBounds.yMin)\n {\n // Too far to left:\n return Math.round(targetBounds.yMin);\n } else if (droppedBounds.yMin + droppedBounds.height > targetBounds.yMax)\n {\n // Too far to right:\n return Math.round(targetBounds.yMax - droppedBounds.height);\n } else\n {\n // Leave where dropped:\n return Math.round(droppedBounds.yMin);\n }\n }\n};\n\nln.objects.QuestionDragAndDrop.prototype.topOfPile = function (topObj)\n{\n // topObj is a jQuery object that is supposed to go on top of the others\n\n // Temporary swapping depth:\n var swapZ = 987654;\n\n // Highest Z of objects in array (last object as it is sorted):\n var highestZ = this.arrDraggablesDepths[this.arrDraggablesDepths.length - 1].depth;\n\n // This will be the index of the object we're putting on top in the current array index:\n var topObjID = 0;\n\n var arrTemp = new Array();\n\n // Populate temp array with a snapshot of the current choices and depths array (it's not changed, just created every time this function runs)\n // Get new top obj element id in the array:\n for (var i = 0; i < this.numDraggables; i++)\n {\n arrTemp.push({ref: this.arrDraggablesDepths[i].ref, depth: this.arrDraggablesDepths[i].depth});\n\n if (this.arrDraggablesDepths[i].ref.attr(\"id\") === topObj.attr(\"id\"))\n {\n topObjID = i;\n }\n }\n\n // Temporarily move it to swapping depth first...\n topObj.css(\"z-index\", swapZ);\n\n // Loop through remainder of objects in the array and set their depths to previous objects depth (move them all up) using arrTemp for the original values...\n for (var j = topObjID + 1; j < this.numDraggables; j++)\n {\n this.arrDraggablesDepths[j].depth = arrTemp[j - 1].depth;\n this.arrDraggablesDepths[j].ref.css(\"z-index\", arrTemp[j - 1].depth);\n }\n\n // Top obj array element gets highest depth possible... and change the depth of the object itself...\n this.arrDraggablesDepths[topObjID].depth = highestZ;\n topObj.css(\"z-index\", highestZ);\n\n // Sort array\n this.arrDraggablesDepths.sort(function (a, b)\n {\n return a.depth - b.depth;\n });\n};\n\nln.objects.QuestionDragAndDrop.prototype.draggableEndDrag = function (e)\n{\n if (e.data.q.draggingJQ)\n {\n var dropX = 0;\n var dropY = 0;\n\n if (e.pageX && e.pageY)\n {\n dropX = e.pageX;\n dropY = e.pageY;\n } else\n {\n dropX = parseInt(e.data.q.draggingJQ.offset().left) + (parseInt(e.data.q.draggingJQ.css(\"width\").slice(0, -2)) / 2);\n dropY = parseInt(e.data.q.draggingJQ.offset().top) + (parseInt(e.data.q.draggingJQ.css(\"height\").slice(0, -2)) / 2);\n }\n\n e.data.q.dropDraggableObj(e.data.q.draggingJS, e.data.q.draggingJQ, e.data.q.draggingIndex, dropX, dropY);\n e.data.q.draggingJQ = null;\n e.data.q.draggingJS = null;\n e.data.q.draggingIndex = null;\n }\n};\n\nln.objects.QuestionDragAndDrop.prototype.draggableStartDrag = function (e)\n{\n e.preventDefault();\n\n if (e.data.selfJQ.hasClass(\"topLevelPlayerObject\"))\n {\n e.data.q.draggingJQ = e.data.selfJQ;\n e.data.q.draggingJS = e.data.selfJS;\n e.data.q.draggingIndex = e.data.index;\n\n if (e.pageX && e.pageY)\n {\n e.data.q.xMouseDiff = e.pageX - e.data.selfJQ.offset().left;\n e.data.q.yMouseDiff = e.pageY - e.data.selfJQ.offset().top;\n } else\n {\n if (Modernizr.pointerevents)\n {\n // Using Pointer Events API\n\n e.data.q.xMouseDiff = e.originalEvent.pageX - e.data.selfJQ.offset().left;\n e.data.q.yMouseDiff = e.originalEvent.pageY - e.data.selfJQ.offset().top;\n } else\n {\n // Touchy feely devices\n\n e.data.q.xMouseDiff = e.originalEvent.touches[0].pageX - e.data.selfJQ.offset().left;\n e.data.q.yMouseDiff = e.originalEvent.touches[0].pageY - e.data.selfJQ.offset().top;\n }\n }\n\n e.data.q.topOfPile(e.data.selfJQ);\n }\n};\n\nln.objects.QuestionDragAndDrop.prototype.draggableMove = function (e)\n{\n if (e.data.q.draggingJQ)\n {\n if (e.data.q.draggingJQ.hasClass(\"topLevelPlayerObject\"))\n {\n if (e.pageX && e.pageY)\n {\n e.data.q.draggingJQ.offset({\n top: e.pageY - e.data.q.yMouseDiff,\n left: e.pageX - e.data.q.xMouseDiff\n });\n } else\n {\n if (Modernizr.pointerevents)\n {\n // Using Pointer Evens API\n\n e.data.q.draggingJQ.offset({\n top: e.originalEvent.pageY - e.data.q.yMouseDiff,\n left: e.originalEvent.pageX - e.data.q.xMouseDiff\n });\n } else\n {\n // Touchy feely devices\n\n e.data.q.draggingJQ.offset({\n top: e.originalEvent.touches[0].pageY - e.data.q.yMouseDiff,\n left: e.originalEvent.touches[0].pageX - e.data.q.xMouseDiff\n });\n }\n }\n }\n }\n};\n\nln.objects.QuestionDragAndDrop.prototype.draggablePointerOver = function (e)\n{\n var question = e.data.q;\n\n if (e.data.selfJQ)\n {\n if (e.data.selfJQ.hasClass(\"topLevelPlayerObject\"))\n {\n e.data.selfJQ.css(\"outline\", question.draggablesOutlineWeight + \"px solid \" + question.draggablesColStrokeOver);\n\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".draggablePointerOver: \" + e.data.selfJS.uID);\n }\n }\n};\n\nln.objects.QuestionDragAndDrop.prototype.draggablePointerOut = function (e)\n{\n var question = e.data.q;\n\n if (e.data.selfJQ)\n {\n if (e.data.selfJQ.hasClass(\"topLevelPlayerObject\"))\n {\n e.data.selfJQ.css(\"outline\", \"none\");\n\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".draggablePointerOut: \" + e.data.selfJS.uID);\n }\n }\n};\n\nln.objects.QuestionDragAndDrop.prototype.enableDraggables = function ()\n{\n for (var i = 0; i < this.numDraggables; i++)\n {\n this.arrDraggables[i].draggableJQ.bind(this.pointerEvents.down, {\n index: i,\n q: this,\n selfJS: this.arrDraggables[i].draggableJS,\n selfJQ: this.arrDraggables[i].draggableJQ\n }, this.draggableStartDrag);\n\n this.arrDraggables[i].draggableJQ.bind(this.pointerEvents.over, {\n index: i,\n q: this,\n selfJS: this.arrDraggables[i].draggableJS,\n selfJQ: this.arrDraggables[i].draggableJQ\n }, this.draggablePointerOver);\n this.arrDraggables[i].draggableJQ.bind(this.pointerEvents.out, {\n index: i,\n q: this,\n selfJS: this.arrDraggables[i].draggableJS,\n selfJQ: this.arrDraggables[i].draggableJQ\n }, this.draggablePointerOut);\n\n if (this.props.DrawChoiceRollovers === true)\n {\n this.arrDraggables[i].draggableJQ.css(\"cursor\", \"pointer\");\n }\n\n $(document.body).bind(this.pointerEvents.move, {\n index: i,\n q: this,\n selfJS: this.arrDraggables[i].draggableJS,\n selfJQ: this.arrDraggables[i].draggableJQ\n }, this.draggableMove);\n $(document.body).bind(this.pointerEvents.up, {\n index: i,\n q: this,\n selfJS: this.arrDraggables[i].draggableJS,\n selfJQ: this.arrDraggables[i].draggableJQ\n }, this.draggableEndDrag);\n }\n};\n\nln.objects.QuestionDragAndDrop.prototype.disableDraggables = function ()\n{\n if (this.childrenReady === true)\n {\n for (var i = 0; i < this.numDraggables; i++)\n {\n this.arrDraggables[i].draggableJQ.unbind(\"mousedown\");\n this.arrDraggables[i].draggableJQ.unbind(\"touchstart\");\n this.arrDraggables[i].draggableJQ.unbind(\"pointerdown\");\n this.arrDraggables[i].draggableJQ.unbind(\"mousemove\");\n this.arrDraggables[i].draggableJQ.unbind(\"touchmove\");\n this.arrDraggables[i].draggableJQ.unbind(\"pointermove\");\n this.arrDraggables[i].draggableJQ.unbind(\"mouseup\");\n this.arrDraggables[i].draggableJQ.unbind(\"touchend\");\n this.arrDraggables[i].draggableJQ.unbind(\"pointerup\");\n this.arrDraggables[i].draggableJQ.unbind(\"touchleave\");\n this.arrDraggables[i].draggableJQ.unbind(\"pointerout\");\n }\n } else\n {\n\n }\n};\n\nln.objects.QuestionDragAndDrop.prototype.enableQuestionButtons = function ()\n{\n if (this.props.AutoCheckAnswer === false)\n {\n if (this.questionState === \"ShowCorrect\")\n {\n this.buttonSet.enableButtonShowCorrect();\n } else\n {\n this.buttonSet.enableButtonReset();\n this.buttonSet.enableButtonSubmit();\n }\n } else\n {\n this.buttonSet.disableButtonsAll();\n this.buttonSet.hideButtonsAll();\n }\n};\n\nln.objects.QuestionDragAndDrop.prototype.disableQuestionButtons = function ()\n{\n if (this.props.AutoCheckAnswer === false)\n {\n if (this.questionState === \"ShowCorrect\")\n {\n this.buttonSet.hideButtonReset();\n this.buttonSet.hideButtonSubmit();\n this.buttonSet.disableButtonShowCorrect();\n //this.buttonSet.hideButtonShowCorrect();\n } else if (this.questionState === \"Failed\")\n {\n this.buttonSet.disableButtonReset();\n this.buttonSet.disableButtonSubmit();\n this.buttonSet.hideButtonShowCorrect();\n } else\n {\n this.buttonSet.disableButtonReset();\n this.buttonSet.disableButtonSubmit();\n this.buttonSet.hideButtonShowCorrect();\n }\n } else\n {\n this.buttonSet.hideButtonsAll();\n }\n};\n\nln.objects.QuestionDragAndDrop.prototype.enableShowCorrectQuestionButtonOnly = function ()\n{\n this.buttonSet.hideButtonReset();\n this.buttonSet.hideButtonSubmit();\n\n if (this.props.AutoCheckAnswer === false)\n {\n this.buttonSet.enableButtonShowCorrect();\n } else\n {\n if (this.props.ShowCorrectOnFail === true)\n {\n this.buttonSet.enableButtonShowCorrect();\n } else\n {\n this.buttonSet.hideButtonShowCorrect();\n }\n }\n};\n\nln.objects.QuestionDragAndDrop.prototype.questionPlayAudio = function ()\n{\n if (this.props.QuestionAudioObj !== \"none\")\n {\n // Question hasn't been done yet, play question audio if there is any... When question audio finishes it will automatically\n // enable question and play last feedback in its mediaComplete function.\n this.questionEnable();\n this.doFeedbackReset();\n this.player.objects[this.props.QuestionAudioObj].mediaPlay();\n } else\n {\n // No question audio\n this.questionEnable();\n this.playLastFeedback();\n }\n};\n\nln.objects.QuestionDragAndDrop.prototype.checkChildrenBegin = function ()\n{\n var thisPointer = this;\n this.interval = setInterval(function ()\n {\n if (thisPointer.checkChildrenAreReady() === true)\n {\n thisPointer.checkChildrenSuccessful();\n }\n }, 250);\n};\n\nln.objects.QuestionDragAndDrop.prototype.checkChildrenSuccessful = function ()\n{\n this.domRef.trigger(\"IsReportingInEvent\", \"reporting in\");\n this.childrenReady = true;\n this.isReady = true;\n window.clearInterval(this.interval);\n this.initDraggables();\n};\n\nln.objects.QuestionDragAndDrop.prototype.initDraggables = function ()\n{\n var rawDraggablesAndAnswers = this.props.DraggablesAndAnswers.split(\"|\");\n\n for (var i = 0; i < this.numDraggables; i++)\n {\n // Create targets array that also includes the draggable as first element:\n var targets = rawDraggablesAndAnswers[i].split(\",\");\n\n // Remove the first element (the draggable) and leave the tagets in the array:\n var draggableName = targets.shift();\n\n // Sort the targets so that a comparison can be made later when showing correct answers:\n targets = targets.sort();\n\n var oDraggable = new Object();\n\n oDraggable.correctShown = false; // Sets to true for each object as their correct answer is shown and used to check that they're not repeated or looped improperly\n\n oDraggable.draggableID = draggableName;\n oDraggable.draggableJS = this.player.objects[draggableName];\n oDraggable.draggableJQ = this.player.domRef.find(\"#\" + draggableName);\n\n oDraggable.correctTargetsID = undefined;\n oDraggable.correctTargetsJS = undefined;\n oDraggable.correctTargetsJQ = undefined;\n\n oDraggable.currentAnswerID = undefined;\n oDraggable.currentAnswerJS = undefined;\n oDraggable.currentAnswerJQ = undefined;\n\n oDraggable.draggableJS.dd_originalLeft = oDraggable.draggableJQ.css(\"left\");\n oDraggable.draggableJS.dd_originalTop = oDraggable.draggableJQ.css(\"top\");\n\n oDraggable.draggableJS.dd_lastDroppedLeft = oDraggable.draggableJQ.css(\"left\");\n oDraggable.draggableJS.dd_lastDroppedTop = oDraggable.draggableJQ.css(\"top\");\n\n if (targets.length === 1)\n {\n if (targets[0] !== \"\")\n {\n oDraggable.correctTargetsID = targets;\n oDraggable.correctTargetsJS = [this.player.objects[targets]];\n oDraggable.correctTargetsJQ = [this.player.domRef.find(\"#\" + targets)];\n }\n } else if (targets.length > 1)\n {\n oDraggable.correctTargetsID = targets;\n oDraggable.correctTargetsJS = new Array();\n oDraggable.correctTargetsJQ = new Array();\n\n for (var j = 0; j < targets.length; j++)\n {\n oDraggable.correctTargetsJS.push(this.player.objects[targets[j]]);\n oDraggable.correctTargetsJQ.push(this.player.domRef.find(\"#\" + targets[j]));\n }\n }\n\n this.arrDraggables.push(oDraggable);\n this.arrDraggablesDepths.push({ref: oDraggable.draggableJQ, depth: oDraggable.draggableJQ.css(\"z-index\")});\n this.arrDraggablesDepths.sort(function (a, b)\n {\n return a.depth - b.depth;\n });\n\n if (this.arrDraggables[i].correctTargetsID === undefined)\n {\n } else if (this.arrDraggables[i].correctTargetsID.length === 1)\n {\n } else if (this.arrDraggables[i].correctTargetsID.length > 1)\n {\n\n }\n }\n\n this.updateQuestionUI();\n this.questionDisable();\n};\n\nln.objects.QuestionDragAndDrop.prototype.checkChildrenAreReady = function ()\n{\n // QuestionTextObj always exist, no need to check for 'none'\n if (this.player.objects[this.props.QuestionTextObj].isReady !== true)\n {\n return false;\n }\n\n // Check if PassedFeedbackTextObj exists (!== \"none\") and if it's ready\n if (this.props.PassedFeedbackTextObj !== \"none\" && this.player.objects[this.props.PassedFeedbackTextObj] && this.player.objects[this.props.PassedFeedbackTextObj].isReady !== true)\n {\n return false;\n }\n\n // Check if FailedFeedbackTextObj exists (!== \"none\") and if it's ready\n if (this.props.FailedFeedbackTextObj !== \"none\" && this.player.objects[this.props.FailedFeedbackTextObj] && this.player.objects[this.props.FailedFeedbackTextObj].isReady !== true)\n {\n return false;\n }\n\n // Check if IncorrectFeedbackTextObj exists (!== \"none\") and if it's ready\n if (this.props.IncorrectFeedbackTextObj !== \"none\" && this.player.objects[this.props.IncorrectFeedbackTextObj] && this.player.objects[this.props.IncorrectFeedbackTextObj].isReady !== true)\n {\n return false;\n }\n\n // Check if ShowCorrectFeedbackTextObj exists (!== \"none\") and if it's ready\n if (this.props.ShowCorrectFeedbackTextObj !== \"none\" && this.player.objects[this.props.ShowCorrectFeedbackTextObj] && this.player.objects[this.props.ShowCorrectFeedbackTextObj].isReady !== true)\n {\n return false;\n }\n\n // Check if QuestionAudioObj exists (!== \"none\") and if it's ready\n if (this.props.QuestionAudioObj !== \"none\" && this.player.objects[this.props.QuestionAudioObj] && this.player.objects[this.props.QuestionAudioObj].isReady !== true)\n {\n return false;\n }\n\n // Check if PassedFeedbackAudioObj exists (!== \"none\") and if it's ready\n if (this.props.PassedFeedbackAudioObj !== \"none\" && this.player.objects[this.props.PassedFeedbackAudioObj] && this.player.objects[this.props.PassedFeedbackAudioObj].isReady !== true)\n {\n return false;\n }\n\n // Check if FailedFeedbackAudioObj exists (!== \"none\") and if it's ready\n if (this.props.FailedFeedbackAudioObj !== \"none\" && this.player.objects[this.props.FailedFeedbackAudioObj] && this.player.objects[this.props.FailedFeedbackAudioObj].isReady !== true)\n {\n return false;\n }\n\n // Check if IncorrectFeedbackAudioObj exists (!== \"none\") and if it's ready\n if (this.props.IncorrectFeedbackAudioObj !== \"none\" && this.player.objects[this.props.IncorrectFeedbackAudioObj] && this.player.objects[this.props.IncorrectFeedbackAudioObj].isReady !== true)\n {\n return false;\n }\n\n // Check if ShowCorrectFeedbackAudioObj exists (!== \"none\") and if it's ready\n if (this.props.ShowCorrectFeedbackAudioObj !== \"none\" && this.player.objects[this.props.ShowCorrectFeedbackAudioObj] && this.player.objects[this.props.ShowCorrectFeedbackAudioObj].isReady !== true)\n {\n return false;\n }\n\n // Check each of the clickable question choices are ready\n for (var i = 0; i < this.numChoices; i++)\n {\n if (!this.player.objects[this.arrDraggables[i].draggableID] || this.player.objects[this.arrDraggables[i].draggableID].isReady !== true)\n {\n return false;\n }\n }\n\n /*\n this.props.QuestionTextObj;\n\n this.props.PassedFeedbackTextObj;\n this.props.FailedFeedbackTextObj;\n this.props.IncorrectFeedbackTextObj;\n this.props.ShowCorrectFeedbackTextObj;\n\n this.props.QuestionAudioObj;\n this.props.PassedFeedbackAudioObj;\n this.props.FailedFeedbackAudioObj;\n this.props.IncorrectFeedbackAudioObj;\n this.props.ShowCorrectFeedbackAudioObj;\n\n this.props.ChoiceObjects; // array\n */\n\n return true;\n};\n\nln.objects.QuestionDragAndDrop.prototype.doFeedbackReset = function ()\n{\n // Make feedback texts invisible again:\n if (this.props.ShowCorrectFeedbackTextObj !== \"none\")\n {\n $(\"#\" + this.props.ShowCorrectFeedbackTextObj).fadeTo(500, 0);\n }\n\n if (this.props.IncorrectFeedbackTextObj !== \"none\")\n {\n $(\"#\" + this.props.IncorrectFeedbackTextObj).fadeTo(500, 0);\n }\n\n if (this.props.FailedFeedbackTextObj !== \"none\")\n {\n $(\"#\" + this.props.FailedFeedbackTextObj).fadeTo(500, 0);\n }\n\n if (this.props.PassedFeedbackTextObj !== \"none\")\n {\n $(\"#\" + this.props.PassedFeedbackTextObj).fadeTo(500, 0);\n }\n\n if (this.props.PassedFeedbackAudioObj !== \"none\")\n {\n this.player.objects[this.props.PassedFeedbackAudioObj].mediaStop();\n }\n\n if (this.props.FailedFeedbackAudioObj !== \"none\")\n {\n this.player.objects[this.props.FailedFeedbackAudioObj].mediaStop();\n }\n\n if (this.props.IncorrectFeedbackAudioObj !== \"none\")\n {\n this.player.objects[this.props.IncorrectFeedbackAudioObj].mediaStop();\n }\n\n if (this.props.ShowCorrectFeedbackAudioObj !== \"none\")\n {\n this.player.objects[this.props.ShowCorrectFeedbackAudioObj].mediaStop();\n }\n};\n\nln.objects.QuestionDragAndDrop.prototype.doFeedbackPassed = function ()\n{\n this.questionState = \"Passed\";\n\n if (this.props.PassedFeedbackTextObj !== \"none\")\n {\n $(\"#\" + this.props.PassedFeedbackTextObj).fadeTo(500, 1);\n }\n\n if (this.props.FailedFeedbackTextObj !== \"none\")\n {\n $(\"#\" + this.props.FailedFeedbackTextObj).fadeTo(500, 0);\n }\n\n if (this.props.IncorrectFeedbackTextObj !== \"none\")\n {\n $(\"#\" + this.props.IncorrectFeedbackTextObj).fadeTo(500, 0);\n }\n\n if (this.props.ShowCorrectFeedbackTextObj !== \"none\")\n {\n $(\"#\" + this.props.ShowCorrectFeedbackTextObj).fadeTo(500, 0);\n }\n\n if (this.props.PassedFeedbackAudioObj !== \"none\")\n {\n this.player.objects[this.props.PassedFeedbackAudioObj].mediaPlay();\n }\n};\n\nln.objects.QuestionDragAndDrop.prototype.doFeedbackFailed = function ()\n{\n this.questionState = \"Failed\";\n\n if (this.props.PassedFeedbackTextObj !== \"none\")\n {\n $(\"#\" + this.props.PassedFeedbackTextObj).fadeTo(500, 0);\n }\n\n if (this.props.FailedFeedbackTextObj !== \"none\")\n {\n $(\"#\" + this.props.FailedFeedbackTextObj).fadeTo(500, 1);\n }\n\n if (this.props.IncorrectFeedbackTextObj !== \"none\")\n {\n $(\"#\" + this.props.IncorrectFeedbackTextObj).fadeTo(500, 0);\n }\n\n if (this.props.ShowCorrectFeedbackTextObj !== \"none\")\n {\n $(\"#\" + this.props.ShowCorrectFeedbackTextObj).fadeTo(500, 0);\n }\n\n if (this.props.FailedFeedbackAudioObj !== \"none\")\n {\n this.player.objects[this.props.FailedFeedbackAudioObj].mediaPlay();\n }\n};\n\nln.objects.QuestionDragAndDrop.prototype.doFeedbackIncorrect = function ()\n{\n this.questionState = \"Incorrect\";\n if (this.props.PassedFeedbackTextObj !== \"none\")\n {\n $(\"#\" + this.props.PassedFeedbackTextObj).fadeTo(500, 0);\n }\n\n if (this.props.FailedFeedbackTextObj !== \"none\")\n {\n $(\"#\" + this.props.FailedFeedbackTextObj).fadeTo(500, 0);\n }\n\n if (this.props.IncorrectFeedbackTextObj !== \"none\")\n {\n $(\"#\" + this.props.IncorrectFeedbackTextObj).fadeTo(500, 1);\n }\n\n if (this.props.ShowCorrectFeedbackTextObj !== \"none\")\n {\n $(\"#\" + this.props.ShowCorrectFeedbackTextObj).fadeTo(500, 0);\n }\n\n if (this.props.IncorrectFeedbackAudioObj !== \"none\")\n {\n this.player.objects[this.props.IncorrectFeedbackAudioObj].mediaPlay();\n }\n};\n\nln.objects.QuestionDragAndDrop.prototype.doFeedbackShowCorrect = function ()\n{\n this.questionState = \"ShowCorrect\";\n\n if (this.props.PassedFeedbackTextObj !== \"none\")\n {\n $(\"#\" + this.props.PassedFeedbackTextObj).fadeTo(500, 0);\n }\n\n if (this.props.FailedFeedbackTextObj !== \"none\")\n {\n $(\"#\" + this.props.FailedFeedbackTextObj).fadeTo(500, 0);\n }\n\n if (this.props.IncorrectFeedbackTextObj !== \"none\")\n {\n $(\"#\" + this.props.IncorrectFeedbackTextObj).fadeTo(500, 0);\n }\n\n if (this.props.ShowCorrectFeedbackTextObj !== \"none\")\n {\n $(\"#\" + this.props.ShowCorrectFeedbackTextObj).fadeTo(500, 1);\n }\n\n if (this.props.ShowCorrectFeedbackAudioObj !== \"none\")\n {\n this.player.objects[this.props.ShowCorrectFeedbackAudioObj].mediaPlay();\n }\n};\n\nln.objects.QuestionDragAndDrop.prototype.playLastFeedback = function ()\n{\n if (this.questionState !== \"none\")\n {\n // Timeline was rewinded and we're now playing the last feedback you had when you did question last time...\n // eval(\"_this.api.doFeedback\"+_this.questionState)._();\n if (this.questionState === \"Passed\")\n {\n this.doFeedbackPassed();\n } else if (this.questionState === \"Failed\")\n {\n this.doFeedbackFailed();\n } else if (this.questionState === \"Incorrect\")\n {\n this.doFeedbackIncorrect();\n } else if (this.questionState === \"ShowCorrect\")\n {\n this.doFeedbackShowCorrect();\n }\n }\n};\n\nln.objects.QuestionDragAndDrop.prototype.answersReset = function ()\n{\n // Make feedback texts invisible again:\n if (this.props.ShowCorrectFeedbackTextObj !== \"none\")\n {\n $(\"#\" + this.props.ShowCorrectFeedbackTextObj).fadeTo(500, 0);\n }\n\n if (this.props.IncorrectFeedbackTextObj !== \"none\")\n {\n $(\"#\" + this.props.IncorrectFeedbackTextObj).fadeTo(500, 0);\n }\n\n if (this.props.FailedFeedbackTextObj !== \"none\")\n {\n $(\"#\" + this.props.FailedFeedbackTextObj).fadeTo(500, 0);\n }\n\n if (this.props.PassedFeedbackTextObj !== \"none\")\n {\n $(\"#\" + this.props.PassedFeedbackTextObj).fadeTo(500, 0);\n }\n\n for (var i = 0; i < this.numDraggables; i++)\n {\n this.arrDraggables[i].currentAnswerID = undefined;\n this.arrDraggables[i].currentAnswerJS = undefined;\n this.arrDraggables[i].currentAnswerJQ = undefined;\n }\n\n this.updateQuestionUI();\n};\n\nln.objects.QuestionDragAndDrop.prototype.answersCheck = function ()\n{\n // A new attempts has been made, record it:\n this.intAttemptsMade++;\n\n var blnError = false;\n\n // Check if any of the answers are incorrect:\n for (var i = 0; i < this.numDraggables; i++)\n {\n if (this.arrDraggables[i].correctTargetsID === undefined)\n {\n if (this.arrDraggables[i].currentAnswerID !== undefined)\n {\n blnError = true;\n } else\n {\n\n }\n } else if (this.arrDraggables[i].correctTargetsID.length === 1)\n {\n if (this.arrDraggables[i].currentAnswerID !== this.arrDraggables[i].correctTargetsID[0])\n {\n blnError = true;\n } else\n {\n\n }\n } else if (this.arrDraggables[i].correctTargetsID.length > 1)\n {\n var foundMatch = false;\n\n for (var j = 0; j < this.arrDraggables[i].correctTargetsID.length; j++)\n {\n if (this.arrDraggables[i].currentAnswerID === this.arrDraggables[i].correctTargetsID[j])\n {\n foundMatch = true;\n }\n }\n\n if (foundMatch === false)\n {\n blnError = true;\n } else\n {\n\n }\n }\n }\n\n if (this.intAttemptsMade < this.intAllowedAttempts)\n {\n // Not yet reached the last attempt:\n\n if (blnError === false)\n {\n // ---------------------------------------------------\n // CODE GOES HERE TO SET A CORRECT ANSWER (still attempts left)\n // ---------------------------------------------------\n\n this.doFeedbackPassed();\n this.disableDraggables();\n this.disableQuestionButtons();\n this.questionDone(\"passed\");\n } else if (blnError === true)\n {\n // ---------------------------------------------------\n // CODE GOES HERE TO SET A INCORRECT ANSWER (still attempts left)\n // ---------------------------------------------------\n this.doFeedbackIncorrect();\n }\n } else if (this.intAttemptsMade >= this.intAllowedAttempts)\n {\n // This is the last attempt:\n if (blnError === false)\n {\n // ---------------------------------------------------\n // CODE GOES HERE TO SET A CORRECT ANSWER (last attempt)\n // ---------------------------------------------------\n\n this.doFeedbackPassed();\n this.disableDraggables();\n this.disableQuestionButtons();\n this.questionDone(\"passed\");\n } else if (blnError === true)\n {\n // ---------------------------------------------------\n // CODE GOES HERE TO SET A FAILED ANSWER\n // ---------------------------------------------------\n this.doFeedbackFailed();\n this.disableDraggables();\n\n // Check if it should automatically show correct answer or simply allow user to show it by means of the 'show correct' button...\n if (this.props.AutoShowCorrectOnFail === true)\n {\n // BEGIN SHOW CORRECT ANSWERS ON FAIL\n // Learner failed, this is where it shows the correct answer if set up to do so!\n this.answersShowCorrect();\n this.disableQuestionButtons();\n\n // END SHOW CORRECT ANSWERS ON FAIL!\n } else if (this.props.ShowCorrectOnFail === true)\n {\n // Learner failed, this is where it shows the correct answer if set up to do so!\n if (this.props.AutoCheckAnswer === true)\n {\n this.disableQuestionButtons();\n } else\n {\n this.enableShowCorrectQuestionButtonOnly();\n }\n } else if (this.props.ShowCorrectOnFail === false)\n {\n // Learner failed, this is where it shows the correct answer if set up to do so!\n if (this.props.AutoCheckAnswer === true)\n {\n this.disableQuestionButtons();\n } else\n {\n this.disableQuestionButtons();\n }\n }\n\n // Set failed answer in shell:\n this.questionDone(\"failed\");\n }\n }\n};\n\nln.objects.QuestionDragAndDrop.prototype.answersShowCorrect = function ()\n{\n // Loop through the draggables and set correct answers, leaving currently correct answers with several possibilities as they are (so they don't\n // move to a different correct box for no apparent reason)\n for (var i = 0; i < this.numDraggables; i++)\n {\n if (this.arrDraggables[i].correctTargetsID === undefined)\n {\n // Not supposed to go anywhere\n\n this.arrDraggables[i].correctShown = true;\n this.arrDraggables[i].currentAnswerID = undefined;\n this.arrDraggables[i].currentAnswerJS = undefined;\n this.arrDraggables[i].currentAnswerJQ = undefined;\n } else if (this.arrDraggables[i].correctTargetsID.length === 1)\n {\n // Only has one correct answer\n this.arrDraggables[i].correctShown = true;\n this.arrDraggables[i].currentAnswerID = this.arrDraggables[i].correctTargetsID[0];\n this.arrDraggables[i].currentAnswerJS = this.arrDraggables[i].correctTargetsJS[0];\n this.arrDraggables[i].currentAnswerJQ = this.arrDraggables[i].correctTargetsJQ[0];\n } else if (this.arrDraggables[i].correctTargetsID.length > 1)\n {\n var strTargets = this.arrDraggables[i].correctTargetsID.join();\n var foundDuplicates = false;\n var duplicatesSet = 0;\n\n for (var m = 0; m < this.numDraggables; m++)\n {\n if (this.arrDraggables[m].correctTargetsID !== undefined && this.arrDraggables[m].correctTargetsID !== null)\n {\n // Loop through other draggables to see if there's another with exact same targets (can be multiple):\n if (this.arrDraggables[m].correctTargetsID.join() === strTargets &&\n this.arrDraggables[m].draggableID !== this.arrDraggables[i].draggableID &&\n this.arrDraggables[m].correctTargetsID.length > 1)\n {\n if (this.arrDraggables[m].correctShown === true)\n {\n duplicatesSet++;\n }\n\n foundDuplicates = true;\n }\n }\n\n }\n\n if (foundDuplicates === true)\n {\n this.arrDraggables[i].correctShown = true;\n this.arrDraggables[i].currentAnswerID = this.arrDraggables[i].correctTargetsID[duplicatesSet]; // Use first available box as new 'show correct' answer\n this.arrDraggables[i].currentAnswerJS = this.arrDraggables[i].correctTargetsJS[duplicatesSet];\n this.arrDraggables[i].currentAnswerJQ = this.arrDraggables[i].correctTargetsJQ[duplicatesSet];\n } else\n {\n this.arrDraggables[i].correctShown = true;\n this.arrDraggables[i].currentAnswerID = this.arrDraggables[i].correctTargetsID[0]; // Use first available box as new 'show correct' answer\n this.arrDraggables[i].currentAnswerJS = this.arrDraggables[i].correctTargetsJS[0];\n this.arrDraggables[i].currentAnswerJQ = this.arrDraggables[i].correctTargetsJQ[0];\n }\n }\n }\n\n if (this.props.AutoShowCorrectOnFail === false)\n {\n // Only execute the feedback function if there is any feedback for 'show correct' to keep behaviour from when it\n // didn't exist as an option:\n if (this.props.ShowCorrectFeedbackAudioObj !== \"none\" || this.props.ShowCorrectFeedbackTextObj !== \"none\")\n {\n this.doFeedbackShowCorrect();\n }\n }\n\n this.disableQuestionButtons();\n this.updateQuestionUI(true);\n};\n\nln.objects.QuestionDragAndDrop.prototype.questionDone = function (status)\n{\n if (this.player.screenType === \"Assessment\")\n {\n if (status === \"passed\")\n {\n this.player.setScreenStatus(\"p\");\n } else if (status === \"failed\")\n {\n this.player.setScreenStatus(\"f\");\n }\n } else\n {\n this.player.setScreenStatus(\"c\");\n }\n};\n\nln.objects.QuestionDragAndDrop.prototype.cleanup = function ()\n{\n for (var i = 0; i < this.numDraggables; i++)\n {\n this.arrDraggables[i].draggableJQ.unbind(\"mousedown\");\n this.arrDraggables[i].draggableJQ.unbind(\"touchstart\");\n this.arrDraggables[i].draggableJQ.unbind(\"mousemove\");\n this.arrDraggables[i].draggableJQ.unbind(\"touchmove\");\n this.arrDraggables[i].draggableJQ.unbind(\"mouseup\");\n this.arrDraggables[i].draggableJQ.unbind(\"touchend\");\n this.arrDraggables[i].draggableJQ.unbind(\"touchleave\");\n }\n\n this.buttonSet.disableButtonsAll();\n};","ln.extend(ln, \"ln.objects\");\n\nln.objects.QuestionMultipleChoice = function(playerRef, jQueryContainer, uniqueNum, init_props, oFamily, oType)\n{\n this.player = playerRef;\n this.domRef = jQueryContainer;\n this.num = uniqueNum;\n this.props_init = init_props;\n this.props = new Object();\n this.oFamily = oFamily;\n this.oType = oType;\n this.uID = this.oType + \"_\" + this.num;\n this.domRef.attr(\"id\", this.uID);\n this.domRef.css(\"position\", \"absolute\");\n\n this.timeline_manager = null;\n this.interactions_manager = null;\n this.isReady = false;\t// Has all the children reported in?\n\n this.pointerEvents = new ln.util.PointerEvents();\n\n this.interval = null;\n\n this.buttonSet = null;\n this.mediaLoaded = false; // For the button set (set to true if using default, failing to load (defaulting to default buttonset or successfully loading external buttonset)\n this.externalButtonSetLoaded = false;\n this.externalButtonSetScriptName = null; // String reference (global to most local) where the constructor / class for the loaded button set is\n\n this.domRef.append(\"
\");\n this.domRefButtons = this.domRef.find(\"#\" + this.uID + \"_buttonSet\");\n\n this.childrenReady = false;\n\n this.arrChoices = new Array();\n this.numChoices = 0;\n\n this.arrCurrentAnswers = new Array();\n this.arrCorrectAnswers = new Array();\n\n this.buttonsEnabled = false;\n\n this.intAttemptsMade = 0;\n this.intAllowedAttempts = 0;\n this.questionState = \"none\"; // Set when showing any of the feedbacks (if applicable)\n\n this.domRef.bind(\"QuestionEventCheckAnswer\", {q: this}, function(e)\n {\n e.data.q.answersCheck();\n });\n\n this.domRef.bind(\"QuestionEventShowCorrectAnswer\", {q: this}, function(e)\n {\n e.data.q.questionState = \"ShowCorrect\";\n e.data.q.answersShowCorrect();\n });\n\n this.domRef.bind(\"QuestionEventResetAnswer\", {q: this}, function(e)\n {\n e.data.q.answersReset();\n });\n\n this.domRefButtons.css(\"position\", \"absolute\");\n\n this.extractProps();\n};\n\nln.objects.QuestionMultipleChoice.prototype.extractProps = function()\n{\n this.props = new ln.objects.common.PropExtractor(this.props_init, this.uID);\n\n if (this.props)\n {\n this.parseProps();\n }\n};\n\nln.objects.QuestionMultipleChoice.prototype.parseProps = function()\n{\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".parseProps\");\n\n // Used in the getScript handlers:\n var _this = this;\n\n this.timeline_manager = new ln.objects.common.TimelineManager(this, this.domRef, this.player);\n this.interactions_manager = new ln.objects.common.InteractionsManager(this, this.domRef, this.player, this.props.RequireClickForScreenCompletion, \"keep_internal_events\");\n\n // Split up the comma-separated string of instance names that are the instance names of the clickable choices:\n this.arrChoices = decodeURIComponent(this.props.ChoiceObjects).split(\",\");\n this.numChoices = this.arrChoices.length;\n\n for (var i = 0; i < this.numChoices; i++)\n {\n if (this.oType === \"question_mc_swf\")\n {\n this.arrCurrentAnswers[i] = undefined;\n } else\n {\n this.arrCurrentAnswers[i] = false;\n }\n }\n\n this.intAllowedAttempts = this.props.AllowedAttempts;\n\n var rawCorrectAnswers = this.props.CorrectAnswers.split(\",\");\n for (var i = 0; i < rawCorrectAnswers.length; i++)\n {\n if (rawCorrectAnswers[i] === \"true\")\n {\n this.arrCorrectAnswers[i] = true;\n } else\n {\n this.arrCorrectAnswers[i] = false;\n }\n }\n\n // Set X coordinate:\n this.domRef.css(\"left\", parseInt(this.props.X + \"px\"));\n\n // Set Y coordinate:\n this.domRef.css(\"top\", parseInt(this.props.Y + \"px\"));\n\n // Set depth:\n this.domRef.css(\"z-index\", parseInt(this.props.Z));\n\n // Set alpha of whole object:\n this.domRef.css(\"opacity\", 0);\n\n if (this.props.Media === \"None\" || this.props.Media === \"none\" || this.props.Media === \"\" || this.props.Media === undefined || this.props.Media === null)\n {\n // No need to load external buttonset:\n this.mediaLoaded = true;\n this.domRef.trigger(\"MediaLoadedEvent\", \"media loaded\");\n\n this.setupButtonsDefault();\n this.checkChildrenBegin();\n } else\n {\n var jsButtonSet = new ln.objects.common.ButtonSetsMatcher(this.props.Media);\n\n // Load external buttonset Javascript file:\n $.getScript(this.player.PATH_MEDIA + jsButtonSet.getJsMedia())\n .done(function(script, textStatus)\n {\n _this.externalButtonSetScriptName = ln.util.getExternalScriptName(script);\n\n _this.mediaLoaded = true;\n _this.externalButtonSetLoaded = true;\n\n _this.domRef.trigger(\"MediaLoadedEvent\", \"media loaded\");\n\n _this.setupButtonsDefault();\n _this.checkChildrenBegin();\n })\n .fail(function(jqxhr, settings, exception)\n {\n _this.mediaLoaded = true;\n _this.externalButtonSetLoaded = false;\n\n _this.domRef.trigger(\"MediaLoadedEvent\", \"media loaded\");\n\n _this.setupButtonsDefault();\n _this.checkChildrenBegin();\n });\n }\n};\n\nln.objects.QuestionMultipleChoice.prototype.setupButtonsDefault = function()\n{\n\n if (this.externalButtonSetLoaded === true)\n {\n var newButtonSet = ln.util.stringToFunction(this.externalButtonSetScriptName);\n this.buttonSet = new newButtonSet(this.uID, this.domRefButtons, this.props.ButtonCol);\n } else\n {\n this.buttonSet = new ln.objects.common.QuestionButtonsDefault(this.uID, this.domRefButtons, this.props.ButtonCol);\n }\n\n this.buttonSet.setupButtonDefaults();\n\n this.questionDisable();\n};\n\nln.objects.QuestionMultipleChoice.prototype.questionDisable = function()\n{\n this.disableQuestionButtons();\n this.disableQuestionChoices();\n\n this.buttonsEnabled = false;\n};\n\nln.objects.QuestionMultipleChoice.prototype.questionEnable = function()\n{\n // Are you done with the question (no attempts left). If so, don't enable the answers again and update question ui\n if (this.intAttemptsMade >= this.intAllowedAttempts || this.questionState === \"Passed\" || this.questionState === \"Failed\")\n {\n this.updateQuestionUI();\n } else\n {\n this.buttonsEnabled = true;\n this.enableQuestionButtons();\n this.enableQuestionChoices();\n }\n};\n\nln.objects.QuestionMultipleChoice.prototype.enableQuestionChoices = function()\n{\n var $choiceObj;\n var choiceObj;\n\n var swfChoice;\n var $swfChoice;\n\n for (var i = 0; i < this.numChoices; i++)\n {\n $choiceObj = $(\"#\" + this.arrChoices[i]);\n choiceObj = this.player.objects[this.arrChoices[i]];\n\n if (this.oType === \"question_mc_swf\")\n {\n swfChoice = choiceObj.jsContent;\n $swfChoice = $choiceObj.domRefContent;\n\n swfChoice.enable();\n } else\n {\n if (this.props.DrawChoiceRollovers === true)\n {\n $choiceObj.css(\"cursor\", \"pointer\");\n\n $choiceObj.bind(this.pointerEvents.click, {q: this, thisJS: choiceObj, thisJQ: $choiceObj}, function(e)\n {\n e.data.q.setChoiceSelection(e.data.thisJS.questionChoiceID);\n e.data.q.updateQuestionUI();\n });\n\n $choiceObj.bind(this.pointerEvents.over, {q: this, thisJS: choiceObj, thisJQ: $choiceObj}, function(e)\n {\n if (!Modernizr.touchevents)\n {\n e.data.thisJS.questionChoiceStatus = \"rollover\";\n }\n e.data.q.updateQuestionUI();\n });\n\n $choiceObj.bind(this.pointerEvents.out, {q: this, thisJS: choiceObj, thisJQ: $choiceObj}, function(e)\n {\n if (!Modernizr.touchevents)\n {\n e.data.thisJS.questionChoiceStatus = \"default\";\n }\n e.data.q.updateQuestionUI();\n });\n } else\n {\n $choiceObj.css(\"cursor\", \"auto\");\n\n $choiceObj.bind(this.pointerEvents.click, {q: this, thisJS: choiceObj}, function(e)\n {\n e.data.q.setChoiceSelection(e.data.thisJS.questionChoiceID);\n e.data.q.updateQuestionUI();\n });\n }\n }\n }\n};\n\nln.objects.QuestionMultipleChoice.prototype.disableQuestionChoices = function()\n{\n var $choiceObj, choiceObj;\n var swfChoice;\n\n if (this.childrenReady === true)\n {\n for (var i = 0; i < this.numChoices; i++)\n {\n $choiceObj = $(\"#\" + this.arrChoices[i]);\n choiceObj = this.player.objects[this.arrChoices[i]];\n\n if (this.oType === \"question_mc_swf\")\n {\n swfChoice = choiceObj.jsContent;\n swfChoice.disable();\n } else\n {\n $choiceObj.css(\"cursor\", \"auto\");\n\n if (this.props.DrawChoiceRollovers === true)\n {\n $choiceObj.unbind(this.pointerEvents.click);\n $choiceObj.unbind(this.pointerEvents.over);\n $choiceObj.unbind(this.pointerEvents.out);\n } else\n {\n $choiceObj.unbind(\"click\");\n }\n }\n }\n } else\n {\n\n }\n};\n\nln.objects.QuestionMultipleChoice.prototype.enableQuestionButtons = function()\n{\n if (this.props.AutoCheckAnswer === false)\n {\n if (this.questionState === \"ShowCorrect\")\n {\n this.buttonSet.enableButtonShowCorrect();\n } else\n {\n this.buttonSet.enableButtonReset();\n this.buttonSet.enableButtonSubmit();\n }\n } else\n {\n this.buttonSet.disableButtonsAll();\n this.buttonSet.hideButtonsAll();\n }\n};\n\nln.objects.QuestionMultipleChoice.prototype.disableQuestionButtons = function()\n{\n if (this.props.AutoCheckAnswer === false)\n {\n if (this.questionState === \"ShowCorrect\")\n {\n this.buttonSet.hideButtonReset();\n this.buttonSet.hideButtonSubmit();\n this.buttonSet.disableButtonShowCorrect();\n //this.buttonSet.hideButtonShowCorrect();\n } else if (this.questionState === \"Failed\")\n {\n this.buttonSet.disableButtonReset();\n this.buttonSet.disableButtonSubmit();\n this.buttonSet.hideButtonShowCorrect();\n } else\n {\n this.buttonSet.disableButtonReset();\n this.buttonSet.disableButtonSubmit();\n this.buttonSet.hideButtonShowCorrect();\n }\n } else\n {\n this.buttonSet.hideButtonsAll();\n }\n};\n\nln.objects.QuestionMultipleChoice.prototype.enableShowCorrectQuestionButtonOnly = function()\n{\n this.buttonSet.hideButtonReset();\n this.buttonSet.hideButtonSubmit();\n\n if (this.props.AutoCheckAnswer === false)\n {\n this.buttonSet.enableButtonShowCorrect();\n } else\n {\n if (this.props.ShowCorrectOnFail === true)\n {\n this.buttonSet.enableButtonShowCorrect();\n } else\n {\n this.buttonSet.hideButtonShowCorrect();\n }\n }\n};\n\nln.objects.QuestionMultipleChoice.prototype.questionPlayAudio = function()\n{\n if (this.props.QuestionAudioObj !== \"none\")\n {\n // Question hasn't been done yet, play question audio if there is any... When question audio finishes it will automatically\n // enable question and play last feedback in its mediaComplete function.\n this.questionEnable();\n this.doFeedbackReset();\n this.player.objects[this.props.QuestionAudioObj].mediaPlay();\n } else\n {\n // No question audio\n this.questionEnable();\n this.playLastFeedback();\n }\n};\n\nln.objects.QuestionMultipleChoice.prototype.checkChildrenBegin = function()\n{\n var thisPointer = this;\n this.interval = setInterval(function()\n {\n if (thisPointer.checkChildrenAreReady() === true)\n {\n thisPointer.checkChildrenSuccessful();\n }\n }, 250);\n};\n\nln.objects.QuestionMultipleChoice.prototype.checkChildrenSuccessful = function()\n{\n this.domRef.trigger(\"IsReportingInEvent\", \"reporting in\");\n this.childrenReady = true;\n this.isReady = true;\n window.clearInterval(this.interval);\n this.initQuestionChoiceObjects();\n};\n\nln.objects.QuestionMultipleChoice.prototype.initQuestionChoiceObjects = function()\n{\n var choiceObj;\n var swfChoiceObj;\n\n for (var i = 0; i < this.numChoices; i++)\n {\n choiceObj = this.player.objects[this.arrChoices[i]];\n\n if (this.oType === \"question_mc_swf\")\n {\n this.arrCurrentAnswers[i] = undefined;\n swfChoiceObj = choiceObj.jsContent;\n swfChoiceObj.init(this, i);\n } else\n {\n this.arrCurrentAnswers[i] = false;\n }\n\n choiceObj.questionChoiceID = i;\n choiceObj.questionChoiceStatus = \"default\";\n choiceObj.questionChoiceSelected = false;\n }\n\n this.updateQuestionUI();\n this.questionDisable();\n};\n\nln.objects.QuestionMultipleChoice.prototype.checkChildrenAreReady = function()\n{\n // QuestionTextObj always exist, no need to check for 'none' - Not true for questions coming from AS3\n // if (this.player.objects[this.props.QuestionTextObj].isReady !== true)\n if (this.props.QuestionTextObj !== \"none\" && this.player.objects[this.props.QuestionTextObj] && this.player.objects[this.props.QuestionTextObj].isReady !== true)\n {\n return false;\n }\n\n // Check if PassedFeedbackTextObj exists (!== \"none\") and if it's ready\n if (this.props.PassedFeedbackTextObj !== \"none\" && this.player.objects[this.props.PassedFeedbackTextObj] && this.player.objects[this.props.PassedFeedbackTextObj].isReady !== true)\n {\n return false;\n }\n\n // Check if FailedFeedbackTextObj exists (!== \"none\") and if it's ready\n if (this.props.FailedFeedbackTextObj !== \"none\" && this.player.objects[this.props.FailedFeedbackTextObj] && this.player.objects[this.props.FailedFeedbackTextObj].isReady !== true)\n {\n return false;\n }\n\n // Check if IncorrectFeedbackTextObj exists (!== \"none\") and if it's ready\n if (this.props.IncorrectFeedbackTextObj !== \"none\" && this.player.objects[this.props.IncorrectFeedbackTextObj] && this.player.objects[this.props.IncorrectFeedbackTextObj].isReady !== true)\n {\n return false;\n }\n\n // Check if ShowCorrectFeedbackTextObj exists (!== \"none\") and if it's ready\n if (this.props.ShowCorrectFeedbackTextObj !== \"none\" && this.player.objects[this.props.ShowCorrectFeedbackTextObj] && this.player.objects[this.props.ShowCorrectFeedbackTextObj].isReady !== true)\n {\n return false;\n }\n\n // Check if QuestionAudioObj exists (!== \"none\") and if it's ready\n if (this.props.QuestionAudioObj !== \"none\" && this.player.objects[this.props.QuestionAudioObj] && this.player.objects[this.props.QuestionAudioObj].isReady !== true)\n {\n return false;\n }\n\n // Check if PassedFeedbackAudioObj exists (!== \"none\") and if it's ready\n if (this.props.PassedFeedbackAudioObj !== \"none\" && this.player.objects[this.props.PassedFeedbackAudioObj] && this.player.objects[this.props.PassedFeedbackAudioObj].isReady !== true)\n {\n return false;\n }\n\n // Check if FailedFeedbackAudioObj exists (!== \"none\") and if it's ready\n if (this.props.FailedFeedbackAudioObj !== \"none\" && this.player.objects[this.props.FailedFeedbackAudioObj] && this.player.objects[this.props.FailedFeedbackAudioObj].isReady !== true)\n {\n return false;\n }\n\n // Check if IncorrectFeedbackAudioObj exists (!== \"none\") and if it's ready\n if (this.props.IncorrectFeedbackAudioObj !== \"none\" && this.player.objects[this.props.IncorrectFeedbackAudioObj] && this.player.objects[this.props.IncorrectFeedbackAudioObj].isReady !== true)\n {\n return false;\n }\n\n // Check if ShowCorrectFeedbackAudioObj exists (!== \"none\") and if it's ready\n if (this.props.ShowCorrectFeedbackAudioObj !== \"none\" && this.player.objects[this.props.ShowCorrectFeedbackAudioObj] && this.player.objects[this.props.ShowCorrectFeedbackAudioObj].isReady !== true)\n {\n return false;\n }\n\n // Check each of the clickable question choices are ready\n for (var i = 0; i < this.numChoices; i++)\n {\n if (!this.player.objects[this.arrChoices[i]] || this.player.objects[this.arrChoices[i]].isReady !== true)\n {\n return false;\n }\n }\n\n /*\n this.props.QuestionTextObj;\n\n this.props.PassedFeedbackTextObj;\n this.props.FailedFeedbackTextObj;\n this.props.IncorrectFeedbackTextObj;\n this.props.ShowCorrectFeedbackTextObj;\n\n this.props.QuestionAudioObj;\n this.props.PassedFeedbackAudioObj;\n this.props.FailedFeedbackAudioObj;\n this.props.IncorrectFeedbackAudioObj;\n this.props.ShowCorrectFeedbackAudioObj;\n\n this.props.ChoiceObjects; // array\n */\n\n return true;\n};\n\nln.objects.QuestionMultipleChoice.prototype.updateQuestionUI = function()\n{\n var colFill = \"transparent\";\n var colBorder = \"transparent\";\n var objJS;\n var choiceJS;\n\n var colStrokeSelected = \"rgba(0, 157, 220, 1)\";\n var colStrokeOver = \"rgba(255, 153, 0, 1)\";\n var colFillSelected = \"rgba(191, 223, 225, 0)\";\n var colFillOver = \"rgba(255, 221, 153, 0)\";\n var colFillOverSelected = \"rgba(191, 223, 225, 0)\";\n\n var colStrokeCorrect = \"rgba(0, 255, 0, 1)\";\n var colStrokeWrong = \"rgba(255, 0, 0, 1)\";\n\n if (this.oType === \"question_mc_swf\")\n {\n for (var i = 0; i < this.numChoices; i++)\n {\n objJS = this.player.objects[this.arrChoices[i]];\n choiceJS = objJS.jsContent;\n choiceJS.questionChoiceUIUpdate(objJS.questionChoiceStatus);\n }\n } else\n {\n for (var i = 0; i < this.numChoices; i++)\n {\n objJS = this.player.objects[this.arrChoices[i]];\n var objJQmove;\n var objJQpaint;\n var offsetAmount = 4;\n\n colFill = \"transparent\";\n colBorder = \"transparent\";\n\n if (this.player.objects[this.arrChoices[i]].uID.indexOf(\"textfield\") !== -1)\n {\n objJQmove = $(\"#\" + this.arrChoices[i]);\n objJQpaint = $(\"#\" + this.arrChoices[i]).children(\".textfieldContents\");\n } else\n {\n objJQmove = $(\"#\" + this.arrChoices[i]);\n objJQpaint = $(\"#\" + this.arrChoices[i]);\n }\n\n if (objJS.questionChoiceStatus === \"highlightIncorrectSelected\")\n {\n // HIGHLIGHT FOR INCORRECT ANSWERS!\n colFill = \"transparent\";\n colBorder = \"transparent\";\n } else if (objJS.questionChoiceStatus === \"highlightCorrectSelected\")\n {\n // HIGHLIGHT FOR CORRECT ANSWERS!\n colFill = \"transparent\";\n colBorder = offsetAmount + \"px solid \" + colStrokeCorrect;\n } else if (objJS.questionChoiceStatus === \"highlightIncorrectUnselected\")\n {\n // HIGHLIGHT FOR INCORRECT UNSELECTED ANSWERS!\n colFill = \"transparent\";\n colBorder = offsetAmount + \"px solid \" + colStrokeWrong;\n } else if (objJS.questionChoiceStatus === \"highlightCorrectUnselected\")\n {\n // HIGHLIGHT FOR CORRECT UNSELECTED ANSWERS!\n colFill = \"transparent\";\n colBorder = \"transparent\";\n } else\n {\n if (objJS.questionChoiceSelected === true)\n {\n if (objJS.questionChoiceStatus === \"default\")\n {\n // SELECTED DEFAULT:\n colFill = colFillSelected;\n colBorder = offsetAmount + \"px solid #009DDC\";\n } else if (objJS.questionChoiceStatus === \"rollover\")\n {\n // SELECTED ROLLOVER:\n colFill = colFillOverSelected;\n colBorder = offsetAmount + \"px solid \" + colStrokeSelected;\n }\n } else if (objJS.questionChoiceSelected === false)\n {\n if (objJS.questionChoiceStatus === \"default\")\n {\n // NOT SELECTED DEFAULT:\n colFill = \"transparent\";\n colBorder = \"transparent\";\n } else if (objJS.questionChoiceStatus === \"rollover\")\n {\n // NOT SELECTED ROLLOVER:\n if (this.props.DrawChoiceRollovers === true)\n {\n colFill = colFillOver;\n colBorder = offsetAmount + \"px solid \" + colStrokeOver;\n } else\n {\n colFill = \"transparent\";\n colBorder = \"transparent\";\n }\n }\n }\n }\n\n objJQpaint.css(\"outline\", colBorder);\n objJQpaint.css(\"background-color\", colFill);\n }\n }\n};\n\nln.objects.QuestionMultipleChoice.prototype.setChoiceSelection = function(choiceID, swfVal)\n{\n if (swfVal !== undefined && this.oType === \"question_mc_swf\")\n {\n // SWF QUESTION CHOICES\n if (this.props.AllowMultipleChoices === true)\n {\n this.arrCurrentAnswers[choiceID] = swfVal;\n this.player.objects[this.arrChoices[choiceID]].questionChoiceSelected = swfVal;\n } else\n {\n // Only one choice allowed at any time, set all to false and set the activated choice to true:\n for (var i = 0; i < this.numChoices; i++)\n {\n if (i !== choiceID)\n {\n this.arrCurrentAnswers[i] = !swfVal;\n this.player.objects[this.arrChoices[i]].questionChoiceSelected = !swfVal;\n }\n }\n\n this.arrCurrentAnswers[choiceID] = swfVal;\n this.player.objects[this.arrChoices[choiceID]].questionChoiceSelected = swfVal;\n }\n } else\n {\n if (this.props.AllowMultipleChoices === true)\n {\n // If multiple choices are allowed at the same time simply invert the activated choice:\n this.arrCurrentAnswers[choiceID] = !this.arrCurrentAnswers[choiceID];\n this.player.objects[this.arrChoices[choiceID]].questionChoiceSelected = !this.player.objects[this.arrChoices[choiceID]].questionChoiceSelected;\n } else\n {\n // Only one choice allowed at any time, set all to false and set the activated choice to true:\n for (var i = 0; i < this.numChoices; i++)\n {\n if (i !== choiceID)\n {\n this.arrCurrentAnswers[i] = false;\n this.player.objects[this.arrChoices[i]].questionChoiceSelected = false;\n }\n }\n\n this.arrCurrentAnswers[choiceID] = !this.arrCurrentAnswers[choiceID];\n this.player.objects[this.arrChoices[choiceID]].questionChoiceSelected = !this.player.objects[this.arrChoices[choiceID]].questionChoiceSelected;\n }\n }\n\n // Hide feedback...\n this.doFeedbackReset();\n\n if (this.props.AutoCheckAnswer === true)\n {\n this.answersCheck();\n }\n};\n\nln.objects.QuestionMultipleChoice.prototype.doFeedbackReset = function()\n{\n // Make feedback texts invisible again:\n if (this.props.ShowCorrectFeedbackTextObj !== \"none\")\n {\n $(\"#\" + this.props.ShowCorrectFeedbackTextObj).fadeTo(500, 0);\n }\n\n if (this.props.IncorrectFeedbackTextObj !== \"none\")\n {\n $(\"#\" + this.props.IncorrectFeedbackTextObj).fadeTo(500, 0);\n }\n\n if (this.props.FailedFeedbackTextObj !== \"none\")\n {\n $(\"#\" + this.props.FailedFeedbackTextObj).fadeTo(500, 0);\n }\n\n if (this.props.PassedFeedbackTextObj !== \"none\")\n {\n $(\"#\" + this.props.PassedFeedbackTextObj).fadeTo(500, 0);\n }\n\n if (this.props.PassedFeedbackAudioObj !== \"none\")\n {\n this.player.objects[this.props.PassedFeedbackAudioObj].mediaStop();\n }\n\n if (this.props.FailedFeedbackAudioObj !== \"none\")\n {\n this.player.objects[this.props.FailedFeedbackAudioObj].mediaStop();\n }\n\n if (this.props.IncorrectFeedbackAudioObj !== \"none\")\n {\n this.player.objects[this.props.IncorrectFeedbackAudioObj].mediaStop();\n }\n\n if (this.props.ShowCorrectFeedbackAudioObj !== \"none\")\n {\n this.player.objects[this.props.ShowCorrectFeedbackAudioObj].mediaStop();\n }\n};\n\nln.objects.QuestionMultipleChoice.prototype.doFeedbackPassed = function()\n{\n this.questionState = \"Passed\";\n if (this.props.PassedFeedbackTextObj !== \"none\")\n {\n $(\"#\" + this.props.PassedFeedbackTextObj).fadeTo(500, 1);\n }\n\n if (this.props.FailedFeedbackTextObj !== \"none\")\n {\n $(\"#\" + this.props.FailedFeedbackTextObj).fadeTo(500, 0);\n }\n\n if (this.props.IncorrectFeedbackTextObj !== \"none\")\n {\n $(\"#\" + this.props.IncorrectFeedbackTextObj).fadeTo(500, 0);\n }\n\n if (this.props.ShowCorrectFeedbackTextObj !== \"none\")\n {\n $(\"#\" + this.props.ShowCorrectFeedbackTextObj).fadeTo(500, 0);\n }\n\n if (this.props.PassedFeedbackAudioObj !== \"none\")\n {\n this.player.objects[this.props.PassedFeedbackAudioObj].mediaPlay();\n }\n};\n\nln.objects.QuestionMultipleChoice.prototype.doFeedbackFailed = function()\n{\n this.questionState = \"Failed\";\n if (this.props.PassedFeedbackTextObj !== \"none\")\n {\n $(\"#\" + this.props.PassedFeedbackTextObj).fadeTo(500, 0);\n }\n\n if (this.props.FailedFeedbackTextObj !== \"none\")\n {\n $(\"#\" + this.props.FailedFeedbackTextObj).fadeTo(500, 1);\n }\n\n if (this.props.IncorrectFeedbackTextObj !== \"none\")\n {\n $(\"#\" + this.props.IncorrectFeedbackTextObj).fadeTo(500, 0);\n }\n\n if (this.props.ShowCorrectFeedbackTextObj !== \"none\")\n {\n $(\"#\" + this.props.ShowCorrectFeedbackTextObj).fadeTo(500, 0);\n }\n\n if (this.props.FailedFeedbackAudioObj !== \"none\")\n {\n this.player.objects[this.props.FailedFeedbackAudioObj].mediaPlay();\n }\n};\n\nln.objects.QuestionMultipleChoice.prototype.doFeedbackIncorrect = function()\n{\n this.questionState = \"Incorrect\";\n if (this.props.PassedFeedbackTextObj !== \"none\")\n {\n $(\"#\" + this.props.PassedFeedbackTextObj).fadeTo(500, 0);\n }\n\n if (this.props.FailedFeedbackTextObj !== \"none\")\n {\n $(\"#\" + this.props.FailedFeedbackTextObj).fadeTo(500, 0);\n }\n\n if (this.props.IncorrectFeedbackTextObj !== \"none\")\n {\n $(\"#\" + this.props.IncorrectFeedbackTextObj).fadeTo(500, 1);\n }\n\n if (this.props.ShowCorrectFeedbackTextObj !== \"none\")\n {\n $(\"#\" + this.props.ShowCorrectFeedbackTextObj).fadeTo(500, 0);\n }\n\n if (this.props.IncorrectFeedbackAudioObj !== \"none\")\n {\n this.player.objects[this.props.IncorrectFeedbackAudioObj].mediaPlay();\n }\n};\n\nln.objects.QuestionMultipleChoice.prototype.doFeedbackShowCorrect = function()\n{\n this.questionState = \"ShowCorrect\";\n if (this.props.PassedFeedbackTextObj !== \"none\")\n {\n $(\"#\" + this.props.PassedFeedbackTextObj).fadeTo(500, 0);\n }\n\n if (this.props.FailedFeedbackTextObj !== \"none\")\n {\n $(\"#\" + this.props.FailedFeedbackTextObj).fadeTo(500, 0);\n }\n\n if (this.props.IncorrectFeedbackTextObj !== \"none\")\n {\n $(\"#\" + this.props.IncorrectFeedbackTextObj).fadeTo(500, 0);\n }\n\n if (this.props.ShowCorrectFeedbackTextObj !== \"none\")\n {\n $(\"#\" + this.props.ShowCorrectFeedbackTextObj).fadeTo(500, 1);\n }\n\n if (this.props.ShowCorrectFeedbackAudioObj !== \"none\")\n {\n this.player.objects[this.props.ShowCorrectFeedbackAudioObj].mediaPlay();\n }\n};\n\nln.objects.QuestionMultipleChoice.prototype.playLastFeedback = function()\n{\n if (this.questionState !== \"none\")\n {\n // Timeline was rewinded and we're now playing the last feedback you had when you did question last time...\n // eval(\"_this.api.doFeedback\"+_this.questionState)._();\n if (this.questionState === \"Passed\")\n {\n this.doFeedbackPassed();\n } else if (this.questionState === \"Failed\")\n {\n this.doFeedbackFailed();\n } else if (this.questionState === \"Incorrect\")\n {\n this.doFeedbackIncorrect();\n } else if (this.questionState === \"ShowCorrect\")\n {\n this.doFeedbackShowCorrect();\n }\n }\n};\n\nln.objects.QuestionMultipleChoice.prototype.answersReset = function()\n{\n for (var i = 0; i < this.numChoices; i++)\n {\n var choiceObj = this.player.objects[this.arrChoices[i]];\n choiceObj.questionChoiceStatus = \"default\";\n\n if (this.oType === \"question_mc_swf\")\n {\n var swfChoice = choiceObj.jsContent;\n this.arrCurrentAnswers[i] = undefined;\n choiceObj.questionChoiceSelected = undefined;\n swfChoice.reset();\n } else\n {\n this.arrCurrentAnswers[i] = false;\n choiceObj.questionChoiceSelected = false;\n }\n }\n\n // Make feedback texts invisible again:\n if (this.props.ShowCorrectFeedbackTextObj !== \"none\")\n {\n $(\"#\" + this.props.ShowCorrectFeedbackTextObj).fadeTo(500, 0);\n }\n\n if (this.props.IncorrectFeedbackTextObj !== \"none\")\n {\n $(\"#\" + this.props.IncorrectFeedbackTextObj).fadeTo(500, 0);\n }\n\n if (this.props.FailedFeedbackTextObj !== \"none\")\n {\n $(\"#\" + this.props.FailedFeedbackTextObj).fadeTo(500, 0);\n }\n\n if (this.props.PassedFeedbackTextObj !== \"none\")\n {\n $(\"#\" + this.props.PassedFeedbackTextObj).fadeTo(500, 0);\n }\n\n this.updateQuestionUI();\n};\n\nln.objects.QuestionMultipleChoice.prototype.answersCheck = function()\n{\n // A new attempts has been made, record it:\n this.intAttemptsMade++;\n\n var blnError = false;\n\n // Check if any of the answers are incorrect:\n for (var i = 0; i < this.numChoices; i++)\n {\n if (this.arrCurrentAnswers[i] !== this.arrCorrectAnswers[i])\n {\n blnError = true;\n break;\n }\n }\n\n if (this.intAttemptsMade < this.intAllowedAttempts)\n {\n // Not yet reached the last attempt:\n\n if (blnError === false)\n {\n // ---------------------------------------------------\n // CODE GOES HERE TO SET A CORRECT ANSWER (still attempts left)\n // ---------------------------------------------------\n this.doFeedbackPassed();\n this.disableQuestionChoices();\n this.disableQuestionButtons();\n this.questionDone(\"passed\");\n } else if (blnError === true)\n {\n // ---------------------------------------------------\n // CODE GOES HERE TO SET A INCORRECT ANSWER (still attempts left)\n // ---------------------------------------------------\n this.doFeedbackIncorrect();\n }\n } else if (this.intAttemptsMade >= this.intAllowedAttempts)\n {\n // This is the last attempt:\n if (blnError === false)\n {\n // ---------------------------------------------------\n // CODE GOES HERE TO SET A CORRECT ANSWER (last attempt)\n // ---------------------------------------------------\n this.doFeedbackPassed();\n this.disableQuestionChoices();\n this.disableQuestionButtons();\n this.questionDone(\"passed\");\n } else if (blnError === true)\n {\n // ---------------------------------------------------\n // CODE GOES HERE TO SET A FAILED ANSWER\n // ---------------------------------------------------\n this.doFeedbackFailed();\n this.disableQuestionChoices();\n\n // Check if it should automatically show correct answer or simply allow user to show it by means of the 'show correct' button...\n if (this.props.AutoShowCorrectOnFail === true)\n {\n // BEGIN SHOW CORRECT ANSWERS ON FAIL\n // Learner failed, this is where it shows the correct answer if set up to do so!\n this.answersShowCorrect();\n this.disableQuestionButtons();\n\n // END SHOW CORRECT ANSWERS ON FAIL!\n } else if (this.props.ShowCorrectOnFail === true)\n {\n // Learner failed, this is where it shows the correct answer if set up to do so!\n if (this.props.AutoCheckAnswer === true)\n {\n this.disableQuestionButtons();\n } else\n {\n this.enableShowCorrectQuestionButtonOnly();\n }\n } else if (this.props.ShowCorrectOnFail === false)\n {\n // Learner failed, this is where it shows the correct answer if set up to do so!\n if (this.props.AutoCheckAnswer === true)\n {\n this.disableQuestionButtons();\n } else\n {\n this.disableQuestionButtons();\n }\n }\n\n // Set failed answer in shell:\n this.questionDone(\"failed\");\n }\n }\n};\n\nln.objects.QuestionMultipleChoice.prototype.answersShowCorrect = function()\n{\n var choiceObj;\n var swfChoiceObj;\n\n // Loop through the answers and if any of them are correct mark it so that UI updates to show this...\n if (this.oType === \"question_mc_swf\")\n {\n // Loop through the answers and if any of them are correct mark it so that UI updates to show this...\n for (var i = 0; i < this.numChoices; i++)\n {\n choiceObj = this.player.objects[this.arrChoices[i]];\n swfChoiceObj = choiceObj.jsContent;\n\n if (this.arrCurrentAnswers[i] !== this.arrCorrectAnswers[i])\n {\n // Incorrect answer, selected\n choiceObj.questionChoiceStatus = \"highlightIncorrect_\" + this.arrCorrectAnswers[i];\n } else if (this.arrCurrentAnswers[i] === this.arrCorrectAnswers[i])\n {\n // Correct answer, selected\n choiceObj.questionChoiceStatus = \"highlightCorrect_\" + this.arrCorrectAnswers[i];\n }\n swfChoiceObj.questionChoiceUIUpdate(choiceObj.questionChoiceStatus);\n }\n } else\n {\n for (var i = 0; i < this.numChoices; i++)\n {\n choiceObj = this.player.objects[this.arrChoices[i]];\n\n if (this.arrCurrentAnswers[i] !== this.arrCorrectAnswers[i] && choiceObj.questionChoiceSelected === true)\n {\n choiceObj.questionChoiceStatus = \"highlightIncorrectSelected\";\n } else if (this.arrCurrentAnswers[i] === this.arrCorrectAnswers[i] && choiceObj.questionChoiceSelected === true)\n {\n choiceObj.questionChoiceStatus = \"highlightCorrectSelected\";\n } else if (this.arrCurrentAnswers[i] !== this.arrCorrectAnswers[i] && choiceObj.questionChoiceSelected === false)\n {\n choiceObj.questionChoiceStatus = \"highlightIncorrectUnselected\";\n } else if (this.arrCurrentAnswers[i] === this.arrCorrectAnswers[i] && choiceObj.questionChoiceSelected === false)\n {\n choiceObj.questionChoiceStatus = \"highlightCorrectUnselected\";\n }\n }\n }\n\n if (this.props.AutoShowCorrectOnFail === false)\n {\n // Only execute the feedback function if there is any feedback for 'show correct' to keep behaviour from when it\n // didn't exist as an option:\n if (this.props.ShowCorrectFeedbackAudioObj !== \"none\" || this.props.ShowCorrectFeedbackTextObj !== \"none\")\n {\n this.doFeedbackShowCorrect();\n }\n }\n\n this.disableQuestionButtons();\n this.updateQuestionUI();\n};\n\nln.objects.QuestionMultipleChoice.prototype.questionDone = function(status)\n{\n if (this.player.screenType === \"Assessment\")\n {\n if (status === \"passed\")\n {\n this.player.setScreenStatus(\"p\");\n } else if (status === \"failed\")\n {\n this.player.setScreenStatus(\"f\");\n }\n } else\n {\n this.player.setScreenStatus(\"c\");\n }\n};\n\nln.objects.QuestionMultipleChoice.prototype.cleanup = function()\n{\n for (var i = 0; i < this.numChoices; i++)\n {\n var $choiceObj = $(\"#\" + this.arrChoices[i]);\n\n $choiceObj.unbind(this.pointerEvents.click);\n $choiceObj.unbind(this.pointerEvents.over);\n $choiceObj.unbind(this.pointerEvents.out);\n }\n\n this.buttonSet.disableButtonsAll();\n};","ln.extend(ln, \"ln.objects\");\n\nln.objects.Rectangle = function(playerRef, jQueryContainer, uniqueNum, init_props, oFamily, oType)\n{\n this.player = playerRef;\n this.domRef = jQueryContainer;\n this.num = uniqueNum;\n this.props_init = init_props;\n this.props = new Object();\n this.oFamily = oFamily;\n this.oType = oType;\n this.uID = this.oType + \"_\" + this.num;\n this.domRef.attr(\"id\", this.uID);\n this.domRef.css(\"position\", \"absolute\");\n\n this.timeline_manager = null;\n this.interactions_manager = null;\n this.isReady = false;\t// For questions so that they know if this object has fully loaded and set its properties\n\n this.domRef.append(\"
\");\n\n this.domRefBG = this.domRef.find(\"#\" + this.uID + \"_bg\");\n this.domRefStroke = this.domRef.find(\"#\" + this.uID + \"_stroke\");\n\n this.domRefBG.css(\"position\", \"absolute\");\n this.domRefStroke.css(\"position\", \"absolute\");\n\n this.importedWidth = 0;\n this.importedHeight = 0;\n\n this.extractProps();\n};\n\nln.objects.Rectangle.prototype.extractProps = function()\n{\n this.props = new ln.objects.common.PropExtractor(this.props_init, this.uID);\n\n if (this.props)\n {\n this.parseProps();\n }\n};\n\nln.objects.Rectangle.prototype.parseProps = function()\n{\n this.timeline_manager = new ln.objects.common.TimelineManager(this, this.domRef, this.player);\n this.interactions_manager = new ln.objects.common.InteractionsManager(this, this.domRef, this.player, this.props.RequireClickForScreenCompletion, this.props.Parent);\n\n // Set height (ExternalHeight for AS2 or Height for AS3):\n if (this.props.hasOwnProperty(\"ExternalHeight\"))\n {\n this.importedHeight = this.props.ExternalHeight;\n } else if (this.props.hasOwnProperty(\"Height\"))\n {\n this.importedHeight = this.props.Height;\n }\n\n this.domRef.css(\"height\", this.importedHeight + \"px\");\n this.domRefBG.css(\"height\", this.importedHeight + \"px\");\n this.domRefStroke.css(\"height\", this.importedHeight - (2 * this.props.FrameThickness) + \"px\");\n\n // Set width (ExternalWidth for AS2 or Width for AS3):\n if (this.props.hasOwnProperty(\"ExternalWidth\"))\n {\n this.importedWidth = this.props.ExternalWidth;\n } else if (this.props.hasOwnProperty(\"Width\"))\n {\n this.importedWidth = this.props.Width;\n }\n\n this.domRef.css(\"width\", this.importedWidth + \"px\");\n this.domRefBG.css(\"width\", this.importedWidth + \"px\");\n this.domRefStroke.css(\"width\", this.importedWidth - (2 * this.props.FrameThickness) + \"px\");\n\n // Set X coordinate:\n this.domRef.css(\"left\", this.props.X + \"px\");\n\n // Set Y coordinate:\n this.domRef.css(\"top\", this.props.Y + \"px\");\n\n // Set depth\n this.domRef.css(\"z-index\", this.props.Z);\n\n // Set alpha of whole object:\n this.domRef.css(\"opacity\", 0);\n\n // Rotation\n this.domRef.css(\"-ms-transform-origin\", \"0px 0px\");\n this.domRef.css(\"-moz-transform-origin\", \"0px 0px\");\n this.domRef.css(\"-webkit-transform-origin\", \"0px 0px\");\n this.domRef.css(\"transform-origin\", \"0px 0px\");\n\n this.domRef.css(\"-ms-transform\", \"rotate(\" + this.props.Rotation + \"deg)\");\n this.domRef.css(\"-moz-transform\", \"rotate(\" + this.props.Rotation + \"deg)\");\n this.domRef.css(\"-webkit-transform\", \"rotate(\" + this.props.Rotation + \"deg)\");\n this.domRef.css(\"transform\", \"rotate(\" + this.props.Rotation + \"deg)\");\n\n // Set background color:\n this.domRefBG.css(\"background-color\", \"#\" + this.props.FillColour);\n\n // Frame properties:\n this.domRefStroke.css(\"border-width\", this.props.FrameThickness + \"px\");\n\n if (this.props.LineStyle === \"Dashed\")\n {\n this.domRefStroke.css(\"border-style\", \"dashed\");\n } else\n {\n this.domRefStroke.css(\"border-style\", \"solid\");\n }\n\n this.domRefStroke.css(\"border-color\", \"#\" + this.props.FrameColour);\n\n // Frame alpha:\n this.domRefStroke.css(\"opacity\", this.props.FrameAlpha / 100);\n\n // Background alpha\n this.domRefBG.css(\"opacity\", this.props.FillAlpha / 100);\n\n // Border / background rounding\n var strBorderRadius;\n\n if (this.props.hasOwnProperty(\"CornersRounded\"))\n {\n var arrFrameRounding = decodeURIComponent(this.props.CornersRounded).split(\",\");\n\n arrFrameRounding = decodeURIComponent(this.props.CornersRounded).split(\",\");\n\n strBorderRadius = arrFrameRounding[0] === \"true\" ? this.props.FrameRounding + \"px \" : \"0px \";\n strBorderRadius += arrFrameRounding[1] === \"true\" ? this.props.FrameRounding + \"px \" : \"0px \";\n strBorderRadius += arrFrameRounding[2] === \"true\" ? this.props.FrameRounding + \"px \" : \"0px \";\n strBorderRadius += arrFrameRounding[3] === \"true\" ? this.props.FrameRounding + \"px \" : \"0px\";\n } else if (this.props.hasOwnProperty(\"RoundingAll\"))\n {\n strBorderRadius = this.props.RoundingTL + \"px \";\n strBorderRadius += this.props.RoundingTR + \"px \";\n strBorderRadius += this.props.RoundingBR + \"px \";\n strBorderRadius += this.props.RoundingBL + \"px \";\n }\n\n // For the background:\n this.domRefBG.css(\"border-radius\", strBorderRadius);\n this.domRefBG.css(\"-moz-border-radius\", strBorderRadius);\n this.domRefBG.css(\"-webkit-border-radius\", strBorderRadius);\n\n // For the stroke\n this.domRefStroke.css(\"border-radius\", strBorderRadius);\n this.domRefStroke.css(\"-moz-border-radius\", strBorderRadius);\n this.domRefStroke.css(\"-webkit-border-radius\", strBorderRadius);\n\n // Drop shadow filter:\n var ds = ln.util.DropShadow(this.props.FilterDropShadow);\n this.domRefBG.css(\"box-shadow\", ds);\n\n this.isReady = true;\n};","ln.extend(ln, \"ln.objects\");\n\nln.objects.SpeechBubble = function(playerRef, jQueryContainer, uniqueNum, init_props, oFamily, oType)\n{\n this.player = playerRef;\n this.domRef = jQueryContainer;\n this.num = uniqueNum;\n this.props_init = init_props;\n this.props = new Object();\n this.oFamily = oFamily;\n this.oType = oType;\n this.uID = this.oType + \"_\" + this.num;\n this.domRef.attr(\"id\", this.uID);\n this.domRef.css(\"position\", \"absolute\");\n\n this.timeline_manager = null;\n this.interactions_manager = null;\n this.isReady = false;\t// For questions so that they know if this object has fully loaded and set its properties\n\n this.domRefPlayerLines = this.player.domRefLines;\n this.theBubble = null;\n\n this.bubbleWidth = 0;\n this.bubbleHeight = 0;\n this.bubblePointX = 0;\n this.bubblePointY = 0;\n this.bubblePointBaseLeft = 0;\n this.bubblePointBaseRight = 0;\n\n this.negativePointOffsetX = 0; // Records if the point of the speech bubble is a negative value, default 0\n this.bubbleCanvasWidth = 0;\t// The width of the speech bubble depends on if the point is further right than the bubble body rectangle\n\n this.domRef.css(\"left\", \"0px\");\n this.domRef.css(\"top\", \"0px\");\n this.domRef.css(\"width\", \"100%\");\n this.domRef.css(\"height\", \"100%\");\n\n this.extractProps();\n};\n\nln.objects.SpeechBubble.prototype.extractProps = function()\n{\n this.props = new ln.objects.common.PropExtractor(this.props_init, this.uID);\n\n if (this.props)\n {\n this.parseProps();\n }\n};\n\nln.objects.SpeechBubble.prototype.parseProps = function()\n{\n this.timeline_manager = new ln.objects.common.TimelineManager(this, this.domRef, this.player);\n this.interactions_manager = new ln.objects.common.InteractionsManager(this, this.domRef, this.player, this.props.RequireClickForScreenCompletion, this.props.Parent);\n\n var arrBubbleVals = this.props.BubbleVals.split(\",\");\n\n this.bubbleWidth = parseInt(arrBubbleVals[0]);\n this.bubbleHeight = parseInt(arrBubbleVals[1]);\n this.bubblePointX = parseInt(arrBubbleVals[2]);\n this.bubblePointY = parseInt(arrBubbleVals[3]);\n this.bubblePointBaseLeft = parseInt(arrBubbleVals[5]);\n this.bubblePointBaseRight = parseInt(arrBubbleVals[4]);\n\n // Determine the width and height of the svg canvas:\n this.bubbleCanvasWidth = this.bubbleWidth;\n this.bubbleCanvasHeight = this.bubblePointY;\n if (this.bubblePointX > this.bubbleWidth)\n {\n this.bubbleCanvasWidth = this.bubblePointX;\n } else if (this.bubblePointX < 0)\n {\n this.bubbleCanvasWidth = this.bubbleWidth + (this.bubblePointX * -1);\n }\n\n // Get offset for point being a negative value:\n if (this.bubblePointX < 0)\n {\n this.negativePointOffsetX = (this.bubblePointX * -1);\n }\n\n // Set width:\n this.domRef.css(\"width\", this.bubbleCanvasWidth);\n\n // Set height:\n this.domRef.css(\"height\", this.bubbleCanvasHeight);\n\n // Set X coordinate:\n this.domRef.css(\"left\", (this.props.X - this.negativePointOffsetX) + \"px\");\n\n // Set Y coordinate:\n this.domRef.css(\"top\", this.props.Y + \"px\");\n\n this.paper = Raphael(this.domRef[0], this.bubbleCanvasWidth, this.bubbleCanvasHeight);\n\n // Set depth\n this.domRef.css(\"z-index\", this.props.Z);\n\n // Set alpha of whole object:\n this.domRef.css(\"opacity\", 0);\n\n // Rotation\n this.domRef.css(\"-ms-transform-origin\", \"0px 0px\");\n this.domRef.css(\"-moz-transform-origin\", \"0px 0px\");\n this.domRef.css(\"-webkit-transform-origin\", \"0px 0px\");\n this.domRef.css(\"transform-origin\", \"0px 0px\");\n\n this.domRef.css(\"-ms-transform\", \"rotate(\" + this.props.Rotation + \"deg)\");\n this.domRef.css(\"-moz-transform\", \"rotate(\" + this.props.Rotation + \"deg)\");\n this.domRef.css(\"-webkit-transform\", \"rotate(\" + this.props.Rotation + \"deg)\");\n this.domRef.css(\"transform\", \"rotate(\" + this.props.Rotation + \"deg)\");\n\n this.isReady = true;\n\n this.drawBubble();\n};\n\nln.objects.SpeechBubble.prototype.drawBubble = function()\n{\n var fo = this.props.FrameThickness / 2; // frame thickness offset (take off or added as needed);\n var po = this.negativePointOffsetX; // Offset for if we need to move the whole lot to the right because the bubble point was a negative value:\n var fr = this.props.FrameRounding;\n var bw = this.bubbleWidth;\n var bh = this.bubbleHeight;\n var bpbr = this.bubblePointBaseRight;\n var bpbl = this.bubblePointBaseLeft;\n var bpx = this.bubblePointX;\n var bpy = this.bubblePointY;\n var bubblePath = \"\";\n\n this.paper.clear();\n\n if (fr === 0)\n {\n bubblePath = \"M\" + (fo + po) + \",\" + (fo); // Move to 0,0\n bubblePath += \"L\" + (bw - fo + po) + \",\" + fo; // Line to top right corner\n bubblePath += \"L\" + (bw - fo + po) + \",\" + (bh - fo); // Line to bottom right corner\n bubblePath += \"L\" + (bpbr + po) + \",\" + (bh - fo); // Line to right edge of base of point\n bubblePath += \"L\" + (bpx - fo + po) + \",\" + (bpy - fo); // Line to bubble point\n bubblePath += \"L\" + (bpbl + po) + \",\" + (bh - fo); // Line to left edge of base of point\n bubblePath += \"L\" + (fo + po) + \",\" + (bh - fo); // Line to lower left corner\n bubblePath += \"L\" + (fo + po) + \",\" + (fo); // Line to top left corner\n bubblePath += \"Z\";\n } else\n {\n bubblePath = \"M\" + (fo + po + fr) + \",\" + (fo); // Move to top left end of corner curve\n bubblePath += \"L\" + (bw - fo + po - fr) + \",\" + fo; // Line to top right start of curve\n bubblePath += \"Q\" + (bw - fo + po) + \",\" + fo + \",\" + (bw - fo + po) + \",\" + (fr + fo); // Curve upper right corner\n bubblePath += \"L\" + (bw - fo + po) + \",\" + (bh - fo - fr); // Line to bottom right start of curve\n bubblePath += \"Q\" + (bw - fo + po) + \",\" + (bh - fo) + \",\" + (bw - fo + po - fr) + \",\" + (bh - fo); // Curve bottom right corner\n bubblePath += \"L\" + (bpbr + po) + \",\" + (bh - fo); // Line to right edge of base of point\n bubblePath += \"L\" + (bpx - fo + po) + \",\" + (bpy - fo); // Line to bubble point\n bubblePath += \"L\" + (bpbl + po) + \",\" + (bh - fo); // Line to left edge of base of point\n bubblePath += \"L\" + (fo + po + fr) + \",\" + (bh - fo); // Line to lower left start of curve\n bubblePath += \"Q\" + (fo + po) + \",\" + (bh - fo) + \",\" + (fo + po) + \",\" + (bh - fo - fr); // Curve lower left corner\n bubblePath += \"L\" + (fo + po) + \",\" + (fo + fr); // Line to top left start of curve\n bubblePath += \"Q\" + (fo + po) + \",\" + (fo) + \",\" + (fo + po + fr) + \",\" + (fo); // Curve upper left corner\n bubblePath += \"Z\";\n }\n\n this.theBubble = this.paper.path(bubblePath);\n this.theBubble.attr(\"stroke-width\", this.props.FrameThickness);\n this.theBubble.attr(\"fill\", \"#\" + this.props.FillColour);\n this.theBubble.attr(\"fill-opacity\", this.props.FillAlpha / 100);\n this.theBubble.attr(\"stroke\", \"#\" + this.props.FrameColour);\n this.theBubble.attr(\"stroke-opacity\", this.props.FrameAlpha / 100);\n this.theBubble.attr(\"stroke-linejoin\", \"round\");\n};\n\n\nln.objects.SpeechBubble.prototype.cleanup = function()\n{\n this.paper.clear();\n this.theBubble = null;\n};","ln.extend(ln, \"ln.objects\");\n\nln.objects.Summary = function(playerRef, jQueryContainer, uniqueNum, init_props, oFamily, oType)\n{\n this.player = playerRef;\n this.domRef = jQueryContainer;\n this.num = uniqueNum;\n this.props_init = init_props;\n this.props = new Object();\n this.oFamily = oFamily;\n this.oType = oType;\n this.uID = this.oType + \"_\" + this.num;\n this.domRef.attr(\"id\", this.uID);\n this.domRef.css(\"position\", \"absolute\");\n\n this.timeline_manager = null;\n this.interactions_manager = null;\n this.isReady = false;\t// Has all the children reported in?\n\n this.interval = null;\n\n this.childrenReady = false;\n\n this.poolRawScore = null;\n this.poolMaxRawScore = null;\n this.poolScore = null; // Percentage calculated from the above two variables\n this.poolPassMark = null; // Percentage received from shell\n\n this.domRef.bind(\"AssessmentPoolInfoEvent\", {_this: this}, function(e, poolInfo)\n {\n e.data._this.poolRawScore = poolInfo.poolRawScore;\n e.data._this.poolRawMaxScore = poolInfo.poolMaxScore;\n e.data._this.poolScore = Math.round((poolInfo.poolRawScore / poolInfo.poolMaxRawScore) * 100);\n e.data._this.poolPassMark = poolInfo.poolPassMark;\n\n e.data._this.playAssessmentPoolFeedback();\n });\n\n this.extractProps();\n};\n\nln.objects.Summary.prototype.extractProps = function()\n{\n this.props = new ln.objects.common.PropExtractor(this.props_init, this.uID);\n\n if (this.props)\n {\n this.parseProps();\n }\n};\n\nln.objects.Summary.prototype.parseProps = function()\n{\n var _domRef = this.domRef;\n\n this.timeline_manager = new ln.objects.common.TimelineManager(this, this.domRef, this.player);\n this.interactions_manager = new ln.objects.common.InteractionsManager(this, this.domRef, this.player, this.props.RequireClickForScreenCompletion, \"keep_internal_events\");\n\n // Set depth:\n _domRef.css(\"z-index\", parseInt(this.props.Z));\n\n this.checkChildrenBegin();\n};\n\nln.objects.Summary.prototype.checkChildrenBegin = function()\n{\n var thisPointer = this;\n this.interval = setInterval(function()\n {\n if (thisPointer.checkChildrenAreReady() === true)\n {\n thisPointer.checkChildrenSuccessful();\n }\n }, 250);\n};\n\nln.objects.Summary.prototype.checkChildrenSuccessful = function()\n{\n this.domRef.trigger(\"IsReportingInEvent\", \"reporting in\");\n this.childrenReady = true;\n this.isReady = true;\n window.clearInterval(this.interval);\n};\n\nln.objects.Summary.prototype.checkChildrenAreReady = function()\n{\n // PassedTextObj\n // FailedTextObj\n // PassedImageObj\n // FailedImageObj\n // PassedAnimationObj\n // FailedAnimationObj\n // ScoreTextObj\n // PassedAudioObj\n // FailedAudioObj\n\n // Check if PassedTextObj exists (!== \"none\") and if it's ready\n if (this.props.PassedTextObj !== \"none\" && this.player.objects[this.props.PassedTextObj] && this.player.objects[this.props.PassedTextObj].isReady !== true)\n {\n return false;\n }\n\n // Check if FailedTextObj exists (!== \"none\") and if it's ready\n if (this.props.FailedTextObj !== \"none\" && this.player.objects[this.props.FailedTextObj] && this.player.objects[this.props.FailedTextObj].isReady !== true)\n {\n return false;\n }\n\n // Check if PassedImageObj exists (!== \"none\") and if it's ready\n if (this.props.PassedImageObj !== \"none\" && this.player.objects[this.props.PassedImageObj] && this.player.objects[this.props.PassedImageObj].isReady !== true)\n {\n return false;\n }\n\n // Check if FailedImageObj exists (!== \"none\") and if it's ready\n if (this.props.FailedImageObj !== \"none\" && this.player.objects[this.props.FailedImageObj] && this.player.objects[this.props.FailedImageObj].isReady !== true)\n {\n return false;\n }\n\n // Check if PassedAnimationObj exists (!== \"none\") and if it's ready\n if (this.props.PassedAnimationObj !== \"none\" && this.player.objects[this.props.PassedAnimationObj] && this.player.objects[this.props.PassedAnimationObj].isReady !== true)\n {\n return false;\n }\n\n // Check if FailedAnimationObj exists (!== \"none\") and if it's ready\n if (this.props.FailedAnimationObj !== \"none\" && this.player.objects[this.props.FailedAnimationObj] && this.player.objects[this.props.FailedAnimationObj].isReady !== true)\n {\n return false;\n }\n\n // Check if ScoreTextObj exists (!== \"none\") and if it's ready\n if (this.props.ScoreTextObj !== \"none\" && this.player.objects[this.props.ScoreTextObj] && this.player.objects[this.props.ScoreTextObj].isReady !== true)\n {\n return false;\n }\n\n // Check if PassedAudioObj exists (!== \"none\") and if it's ready\n if (this.props.PassedAudioObj !== \"none\" && this.player.objects[this.props.PassedAudioObj] && this.player.objects[this.props.PassedAudioObj].isReady !== true)\n {\n return false;\n }\n\n // Check if FailedAudioObj exists (!== \"none\") and if it's ready\n if (this.props.FailedAudioObj !== \"none\" && this.player.objects[this.props.FailedAudioObj] && this.player.objects[this.props.FailedAudioObj].isReady !== true)\n {\n return false;\n }\n\n return true;\n};\n\nln.objects.Summary.prototype.doFeedbackPassed = function()\n{\n if (this.props.PassedTextObj !== \"none\")\n {\n $(\"#\" + this.props.PassedTextObj).fadeTo(500, 1);\n }\n\n if (this.props.FailedTextObj !== \"none\")\n {\n $(\"#\" + this.props.FailedTextObj).fadeTo(500, 0);\n }\n\n if (this.props.PassedImageObj !== \"none\")\n {\n $(\"#\" + this.props.PassedImageObj).fadeTo(500, 1);\n }\n\n if (this.props.FailedImageObj !== \"none\")\n {\n $(\"#\" + this.props.FailedImageObj).fadeTo(500, 0);\n }\n\n if (this.props.PassedAnimationObj !== \"none\")\n {\n $(\"#\" + this.props.PassedAnimationObj).fadeTo(500, 1);\n }\n\n if (this.props.FailedAnimationObj !== \"none\")\n {\n $(\"#\" + this.props.FailedAnimationObj).fadeTo(500, 0);\n }\n\n if (this.props.PassedAudioObj !== \"none\")\n {\n this.player.objects[this.props.PassedAudioObj].mediaPlay();\n }\n\n if (this.props.ScoreTextObj !== \"none\")\n {\n $(\"#\" + this.props.ScoreTextObj).fadeTo(500, 1);\n this.player.objects[this.props.ScoreTextObj].setSummaryScoreText(this.poolScore + \"%\");\n }\n};\n\nln.objects.Summary.prototype.doFeedbackFailed = function()\n{\n if (this.props.PassedTextObj !== \"none\")\n {\n $(\"#\" + this.props.PassedTextObj).fadeTo(500, 0);\n }\n\n if (this.props.FailedTextObj !== \"none\")\n {\n $(\"#\" + this.props.FailedTextObj).fadeTo(500, 1);\n }\n\n if (this.props.PassedImageObj !== \"none\")\n {\n $(\"#\" + this.props.PassedImageObj).fadeTo(500, 0);\n }\n\n if (this.props.FailedImageObj !== \"none\")\n {\n $(\"#\" + this.props.FailedImageObj).fadeTo(500, 1);\n }\n\n if (this.props.PassedAnimationObj !== \"none\")\n {\n $(\"#\" + this.props.PassedAnimationObj).fadeTo(500, 0);\n }\n\n if (this.props.FailedAnimationObj !== \"none\")\n {\n $(\"#\" + this.props.FailedAnimationObj).fadeTo(500, 1);\n }\n\n if (this.props.FailedAudioObj !== \"none\")\n {\n this.player.objects[this.props.FailedAudioObj].mediaPlay();\n }\n\n if (this.props.ScoreTextObj !== \"none\")\n {\n $(\"#\" + this.props.ScoreTextObj).fadeTo(500, 1);\n this.player.objects[this.props.ScoreTextObj].setSummaryScoreText(this.poolScore + \"%\");\n }\n};\n\nln.objects.Summary.prototype.initAssessmentPoolFeedback = function()\n{\n this.domRef.trigger(\"GetAssessmentPoolInfoEvent\");\n};\n\nln.objects.Summary.prototype.playAssessmentPoolFeedback = function()\n{\n if (this.poolScore >= this.poolPassMark)\n {\n this.doFeedbackPassed();\n } else\n {\n this.doFeedbackFailed();\n }\n};\n\nln.objects.Summary.prototype.cleanup = function()\n{\n this.domRef.unbind(\"AssessmentPoolInfoEvent\");\n};","ln.extend(ln, \"ln.objects\");\n\nln.objects.Swf = function(playerRef, jQueryContainer, uniqueNum, init_props, oFamily, oType, fontManager)\n{\n this.player = playerRef;\n this.domRef = jQueryContainer;\n this.num = uniqueNum;\n this.props_init = init_props;\n this.props = new Object();\n this.oFamily = oFamily;\n this.oType = oType;\n this.uID = this.oType + \"_\" + this.num;\n this.domRef.attr(\"id\", this.uID);\n this.domRef.css(\"position\", \"absolute\");\n\n this.timeline_manager = null;\n this.interactions_manager = null;\n this.isReady = false;\t// For questions so that they know if this object has fully loaded and set its properties\n\n this.fontMgr = fontManager;\n\n this.domRef.append(\"
\");\n\n this.mediaLoaded = false;\n this.mediaExternalScriptName = null;\n\n this.jsContent = null; // This is the javascript object that was loaded externally\n this.domRefContent = jQueryContainer.children(\"#\" + this.uID + \"_content\");\n this.domRefContent.css(\"position\", \"absolute\");\n this.domRefContent.css(\"overflow\", \"hidden\");\n\n this.extractProps();\n};\n\nln.objects.Swf.prototype.extractProps = function()\n{\n this.props = new ln.objects.common.PropExtractor(this.props_init, this.uID);\n\n if (this.props)\n {\n this.parseProps();\n }\n};\n\nln.objects.Swf.prototype.parseProps = function()\n{\n this.timeline_manager = new ln.objects.common.TimelineManager(this, this.domRef, this.player);\n this.interactions_manager = new ln.objects.common.InteractionsManager(this, this.domRef, this.player, this.props.RequireClickForScreenCompletion, this.props.Parent);\n\n // Set height:\n this.domRef.css(\"height\", this.props.ExternalHeight + \"px\");\n this.domRefContent.css(\"height\", this.props.ExternalHeight + \"px\");\n\n // Set width:\n this.domRef.css(\"width\", this.props.ExternalWidth + \"px\");\n this.domRefContent.css(\"width\", this.props.ExternalWidth + \"px\");\n\n // Set X coordinate:\n this.domRef.css(\"left\", this.props.X + \"px\");\n\n // Set Y coordinate:\n this.domRef.css(\"top\", this.props.Y + \"px\");\n\n // Set depth\n this.domRef.css(\"z-index\", this.props.Z);\n\n // Set alpha of whole object:\n this.domRef.css(\"opacity\", 0);\n\n this.props.Media = this.getSwfToJsReplacement(this.props.Media);\n\n // Rotation\n this.domRef.css(\"-ms-transform-origin\", \"0px 0px\");\n this.domRef.css(\"-moz-transform-origin\", \"0px 0px\");\n this.domRef.css(\"-webkit-transform-origin\", \"0px 0px\");\n this.domRef.css(\"transform-origin\", \"0px 0px\");\n\n this.domRef.css(\"-ms-transform\", \"rotate(\" + this.props.Rotation + \"deg)\");\n this.domRef.css(\"-moz-transform\", \"rotate(\" + this.props.Rotation + \"deg)\");\n this.domRef.css(\"-webkit-transform\", \"rotate(\" + this.props.Rotation + \"deg)\");\n this.domRef.css(\"transform\", \"rotate(\" + this.props.Rotation + \"deg)\");\n\n // Load external script file for this 'swf':\n $.ajax(\n {\n url: this.player.PATH_MEDIA + decodeURIComponent(this.props.Media).split(\",\")[0].replace(\".swf\", \".js\"),\n dataType: \"script\",\n context: this\n }).done(this.externalJsLoadSuccess)\n .fail(this.externalJsLoadError);\n};\n\nln.objects.Swf.prototype.getSwfToJsReplacement = function(swfToReplace)\n{\n var mediaPath = swfToReplace.split(\",\")[0]; // For example: \"animation/F/C/8/FC89D1A2-013B-4E06-AF71-C86891C042C3.swf\"\n var mediaID = swfToReplace.split(\",\")[1]; // The ID: \"{FC89D1A2-013B-4E06-AF71-C86891C042C3}\"\n\n // var retVal = swfToReplace;\n\n // choice_this_or_that_dynamic_arial_border.swf\n if (swfToReplace.indexOf(\"D2223378-ADCC-4776-8C48-EEA6E2E44370\") !== -1)\n {\n mediaPath = \"jsQuestionChoices/choice_this_or_that_dynamic_arial_same_size.js\";\n }\n\n // choice_this_or_that_dynamic_arial.swf\n else if (swfToReplace.indexOf(\"40537DC3-0CD2-401F-B06B-B2486A1523E8\") !== -1)\n {\n mediaPath = \"jsQuestionChoices/choice_this_or_that_dynamic_arial_same_size.js\";\n }\n\n // choice_dynamic_several.swf\n else if (swfToReplace.indexOf(\"6180DBBA-7112-44D3-9D4F-222F2651D957\") !== -1)\n {\n mediaPath = \"jsQuestionChoices/.js\";\n }\n\n // choice_fb_like_button.swf\n else if (swfToReplace.indexOf(\"C533BAFA-D1D4-4574-A35C-C5E45F1ED760\") !== -1)\n {\n mediaPath = \"jsQuestionChoices/.js\";\n }\n\n // choice_push_pull.swf\n else if (swfToReplace.indexOf(\"E5BFC9AD-D574-49A7-8869-027CF36BC11A\") !== -1)\n {\n mediaPath = \"jsQuestionChoices/.js\";\n }\n\n // choice_push_pull.swf\n else if (swfToReplace.indexOf(\"DFCFDCB5-A5DB-4C4F-B0B7-8C007AE7008C\") !== -1)\n {\n mediaPath = \"jsQuestionChoices/.js\";\n }\n\n // choice_slideleftright2_arial_compact_default_left.swf\n else if (swfToReplace.indexOf(\"D225BE75-C3C4-4148-90F4-C53D5C8FD673\") !== -1)\n {\n mediaPath = \"jsQuestionChoices/choice_slideleftright2_arial_default_left.js\";\n }\n\n // choice_slideleftright3_arial_compact_default_left.swf\n else if (swfToReplace.indexOf(\"6821BF0D-3D74-44C8-8298-ABC6BDE55BDD\") !== -1)\n {\n mediaPath = \"jsQuestionChoices/choice_slideleftright3_arial_default_left.js\";\n }\n\n // choice_slideleftright2_arial_bold_default_left.swf\n else if (swfToReplace.indexOf(\"9BFD05D9-7F22-45CA-A9BD-D4C7187160FA\") !== -1)\n {\n mediaPath = \"jsQuestionChoices/choice_slideleftright2_arial_bold_default_left.js\";\n }\n\n // choice_slideleftright2_arial_default_left.swf\n else if (swfToReplace.indexOf(\"5B6642F7-BABF-412B-8ACB-F87361F74228\") !== -1)\n {\n mediaPath = \"jsQuestionChoices/choice_slideleftright2_arial_default_left.js\";\n }\n\n // choice_slideleftright2_bold_default_left.swf\n else if (swfToReplace.indexOf(\"0B189DA5-917F-4D3C-AB32-A03E43C2A058\") !== -1)\n {\n mediaPath = \"jsQuestionChoices/choice_slideleftright2_verdana_bold_default_left.js\";\n }\n\n // choice_slideleftright2_default_left.swf\n else if (swfToReplace.indexOf(\"F44B3FFB-002D-4566-85F5-9484F7115567\") !== -1)\n {\n mediaPath = \"jsQuestionChoices/choice_slideleftright2_verdana_default_left.js\";\n }\n\n // choice_slideleftright1_arial_bold_default_left.swf\n else if (swfToReplace.indexOf(\"05A77694-23D1-45A2-B5FA-E403D3E0D288\") !== -1)\n {\n mediaPath = \"jsQuestionChoices/choice_slideleftright1_arial_bold_default_left.js\";\n }\n\n // choice_slideleftright1_arial_default_left.swf\n else if (swfToReplace.indexOf(\"E1CB5752-76CA-40AE-BFEE-985BD4E4B532\") !== -1)\n {\n mediaPath = \"jsQuestionChoices/choice_slideleftright1_arial_default_left.js\";\n }\n\n // choice_slideleftright1_default_left.swf\n else if (swfToReplace.indexOf(\"C96D3A81-8FCC-435C-B40D-9CC0E2455B95\") !== -1)\n {\n mediaPath = \"jsQuestionChoices/choice_slideleftright1_verdana_default_left.js\";\n }\n\n // choice_slideleftright1_default_left.swf\n else if (swfToReplace.indexOf(\"A24BCD40-5AF3-49B5-930D-00C0FCB11D18\") !== -1)\n {\n mediaPath = \"jsQuestionChoices/choice_slideleftright1_verdana_default_left.js\";\n }\n\n // choice_slideleftright3_arial_bold_default_left.swf\n else if (swfToReplace.indexOf(\"EA4F72E3-28A7-4BE7-9C9D-9360314916C4\") !== -1)\n {\n mediaPath = \"jsQuestionChoices/choice_slideleftright3_arial_bold_default_left.js\";\n }\n\n // choice_slideleftright3_arial_default_left.swf\n else if (swfToReplace.indexOf(\"1FBA6DB1-DE2B-4E2E-8B46-91CE10259305\") !== -1)\n {\n mediaPath = \"jsQuestionChoices/choice_slideleftright3_arial_default_left.js\";\n }\n\n // choice_slideleftright3_bold_default_left.swf\n else if (swfToReplace.indexOf(\"A3B6259E-F2DC-4CDB-B973-2DCE960C3DD9\") !== -1)\n {\n mediaPath = \"jsQuestionChoices/choice_slideleftright3_verdana_bold_default_left.js\";\n }\n\n // choice_slideleftright3_default_left.swf\n else if (swfToReplace.indexOf(\"C5B05FBC-4660-4CC3-99A3-CACF6756628E\") !== -1)\n {\n mediaPath = \"jsQuestionChoices/choice_slideleftright3_verdana_default_left.js\";\n }\n\n // choice_slideleftright2_arial_bold.swf\n else if (swfToReplace.indexOf(\"ED702C5E-BD29-477E-BC76-28D93CEAAF4E\") !== -1)\n {\n mediaPath = \"jsQuestionChoices/choice_slideleftright2_arial_bold.js\";\n }\n\n // choice_slideleftright2_arial.swf\n else if (swfToReplace.indexOf(\"DE2E81D7-C394-4DF2-9EE9-FB03DE9089B8\") !== -1)\n {\n mediaPath = \"jsQuestionChoices/choice_slideleftright2_arial.js\";\n }\n\n // choice_slideleftright2_bold.swf\n else if (swfToReplace.indexOf(\"190CDF18-A38C-4A61-B0A6-5F1526B25272\") !== -1)\n {\n mediaPath = \"jsQuestionChoices/choice_slideleftright2_verdana_bold.js\";\n }\n\n // choice_slideleftright2.swf\n else if (swfToReplace.indexOf(\"F6FADCD4-BE3C-4A11-9530-83E355AACA1D\") !== -1)\n {\n mediaPath = \"jsQuestionChoices/choice_slideleftright2_verdana.js\";\n }\n\n // choice_slideleftright1_arial_bold.swf\n else if (swfToReplace.indexOf(\"61B54C0E-4D42-437B-B3CE-C461740703B4\") !== -1)\n {\n mediaPath = \"jsQuestionChoices/choice_slideleftright1_arial_bold.js\";\n }\n\n // choice_slideleftright1_arial.swf\n else if (swfToReplace.indexOf(\"A4D46200-2312-44A3-9557-59D5BB6B270B\") !== -1)\n {\n mediaPath = \"jsQuestionChoices/choice_slideleftright1_arial.js\";\n }\n\n // choice_slideleftright1.swf\n else if (swfToReplace.indexOf(\"D8862289-4269-45E8-A705-286471220AEC\") !== -1)\n {\n mediaPath = \"jsQuestionChoices/choice_slideleftright1_verdana_bold.js\";\n }\n\n // choice_slideleftright1.swf\n else if (swfToReplace.indexOf(\"6BCCBF70-66AF-46E1-8311-62A0BE4369AC\") !== -1)\n {\n mediaPath = \"jsQuestionChoices/choice_slideleftright1_verdana.js\";\n }\n\n // choice_slideleftright3_arial_bold.swf\n else if (swfToReplace.indexOf(\"43C51695-7BA9-4591-9172-C114C47469D2\") !== -1)\n {\n mediaPath = \"jsQuestionChoices/choice_slideleftright3_arial_bold.js\";\n }\n\n // choice_slideleftright3_arial.swf\n else if (swfToReplace.indexOf(\"F5D363C4-99E1-4611-8E58-E18863F2DC26\") !== -1)\n {\n mediaPath = \"jsQuestionChoices/choice_slideleftright3_arial.js\";\n }\n\n // choice_slideleftright3_bold.swf\n else if (swfToReplace.indexOf(\"DDAE604A-5720-420F-9E4B-1EDAC2E447CB\") !== -1)\n {\n mediaPath = \"jsQuestionChoices/choice_slideleftright3_verdana_bold.js\";\n }\n\n // choice_slideleftright3.swf\n else if (swfToReplace.indexOf(\"C821918C-BE3E-48CC-9ECB-89E169FE86E7\") !== -1)\n {\n mediaPath = \"jsQuestionChoices/choice_slideleftright3_verdana.js\";\n }\n\n // theme_choice_flat.swf\n else if (swfToReplace.indexOf(\"AEAA327F-F076-4EDF-9665-2B19789E95CA\") !== -1)\n {\n mediaPath = \"jsQuestionChoices/choice_this_or_that_dynamic_arial_same_size_flat_smaller.js\";\n }\n\n // custom_choice_truefalse_1.swf\n else if (swfToReplace.indexOf(\"FC89D1A2-013B-4E06-AF71-C86891C042C3\") !== -1)\n {\n mediaPath = \"jsQuestionChoices/choice_this_or_that_dynamic_arial_same_size.js\";\n }\n\n // choice_push_pull.swf (v2)\n else if (swfToReplace.indexOf(\"E5BFC9AD-D574-49A7-8869-027CF36BC11A\") !== -1)\n {\n mediaPath = \"jsQuestionChoices/choice_push_pull.js\";\n }\n\n // simple-flat-blue-true-false-choice.swf\n else if (swfToReplace.indexOf(\"CC604B4B-2369-4CC0-AE78-2B4324C6BE38\") !== -1)\n {\n mediaPath = \"jsQuestionChoices/simple-flat-blue-true-false-choice.js\";\n }\n\n // simple-flat-blue-yes-no-choice.swf\n else if (swfToReplace.indexOf(\"D543D0B6-7B39-4212-9DAC-443199FA35FD\") !== -1)\n {\n mediaPath = \"jsQuestionChoices/simple-flat-blue-yes-no-choice.js\";\n }\n\n // Assume it's got a correct, direct path to something JS (no substitution):\n else\n {\n mediaPath = \"jsQuestionChoices/\" + swfToReplace.split(\",\")[0].replace(\".swf\", \".js\");\n }\n\n return mediaPath + \",\" + mediaID;\n};\n\nln.objects.Swf.prototype.externalJsLoadSuccess = function(script, textStatus)\n{\n this.mediaExternalScriptName = ln.util.getExternalScriptName(script);\n\n var js = ln.util.stringToFunction(this.mediaExternalScriptName);\n var jsProps =\n {\n \"ThemeCol\": this.props.ThemeCol,\n \"LabelCol\": this.props.LabelCol,\n \"Label\": this.props.Label,\n \"SwfWidth\": this.props.ExternalWidth,\n \"SwfHeight\": this.props.ExternalHeight\n };\n\n this.jsContent = new js(this.uID, this.domRefContent, jsProps, this.fontMgr);\n\n this.mediaLoaded = true;\n this.domRef.trigger(\"MediaLoadedEvent\", \"media loaded\");\n this.isReady = true;\n};\n\nln.objects.Swf.prototype.externalJsLoadError = function()\n{\n $(ln).trigger(\"DebuggerErrorEvent\", this.uID + \".externalJsLoadError: Media: \" + this.props.Media);\n\n this.mediaLoaded = true;\n this.domRef.trigger(\"MediaLoadedEvent\", \"media loaded\");\n this.domRef.trigger(\"FileFailedToLoadEvent\", {uID: this.uID, file: this.props.Media.split(\",\")[0]});\n this.isReady = true;\n};\n\nln.objects.Swf.prototype.mediaPlay = function()\n{\n $(ln).trigger(\"DebuggerWarnEvent\", this.uID + \".mediaPlay: Not implemented yet\");\n};","ln.extend(ln, \"ln.objects\");\n\nln.objects.Textfield = function (playerRef, jQueryContainer, uniqueNum, init_props, oFamily, oType, fontManager, styles)\n{\n this.player = playerRef;\n this.domRef = jQueryContainer;\n this.num = uniqueNum;\n this.props_init = init_props;\n this.props = {};\n this.oFamily = oFamily;\n this.oType = oType;\n this.uID = this.oType + \"_\" + this.num;\n this.domRef.attr(\"id\", this.uID);\n this.domRef.css(\"position\", \"absolute\");\n\n this.timeline_manager = null;\n this.interactions_manager = null;\n this.isReady = false;\t// For questions so that they know if this object has fully loaded and set its properties\n\n this.fontMgr = fontManager;\n\n // These are styles imported by the Shell, passed on to the Player and passed on to the Textfield object (array)\n this.styles = styles;\n\n // In this.styles above - which element applies to this textfield? -1 is default and is set to a positive number if there is a style for this text\n this.styleElementToApply = -1;\n\n // AS2 screens have a type that inclues 'textfield_' like this: 'textfield_ln_arial' but AS3 doesn't have 'textfield_' prefix, and only the font name ('ln_arial')\n if (this.oType.indexOf(\"textfield_\") === 0)\n {\n // Remove 'textfield_'\n this.font = this.oType.split(\"textfield_\")[1];\n } else\n {\n // Use as-is...\n this.font = this.oType;\n }\n\n this.fontMgr.loadFont(this.font);\n\n this.domRef.append(\"\");\n this.domRef.append(\"
\");\n\n this.mediaLoaded = false;\t// Did media load, set to true when media loads but also if there wasn't any media to load\n this.mediaSet = false;\t\t// Only true if there was no media to load at all\n this.domRefBullet = jQueryContainer.children(\"img\");\n this.domRefText = jQueryContainer.children(\"div\");\n\n this.checkTextHeightInterval = null;\n\n this.leading = 2;\n\n this.hasHyperlink = false;\n\n this.domRefText.css(\"position\", \"absolute\");\n this.domRefBullet.css(\"position\", \"absolute\");\n\n this.extractProps();\n};\n\nln.objects.Textfield.prototype.extractProps = function ()\n{\n this.props = new ln.objects.common.PropExtractor(this.props_init, this.uID);\n\n if (this.props)\n {\n this.parseProps();\n }\n};\n\nln.objects.Textfield.prototype.isStyleAvailable = function (styleIdToFind)\n{\n var i = 0;\n\n // No styles available, no point in looking!\n if (this.styles.length === 0)\n {\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".isStyleAvailable: NO STYLES AVAILABLE\");\n return -1;\n }\n\n for (i = 0; i < this.styles.length; i++)\n {\n if (styleIdToFind === this.styles[i].id)\n {\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".isStyleAvailable: i: \" + i + \", style name: '\" + this.styles[i].name + \"'\");\n\n return [i];\n }\n }\n\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".isStylesAvailable: Not available (returning -1)\");\n\n return -1;\n};\n\nln.objects.Textfield.prototype.parseProps = function ()\n{\n var _this = this;\n\n this.timeline_manager = new ln.objects.common.TimelineManager(this, this.domRef, this.player);\n this.interactions_manager = new ln.objects.common.InteractionsManager(this, this.domRef, this.player, this.props.RequireClickForScreenCompletion, this.props.Parent);\n\n this.domRefText.css(\"font-family\", this.font);\n\n // Set width:\n this.domRefText.css(\"width\", this.props.TextFieldWidth + \"px\");\n this.domRef.css(\"width\", this.props.TextFieldWidth + \"px\");\n\n // Styles?\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".parseProps: ObjStyle: \" + this.props.ObjStyle);\n\n this.styleElementToApply = this.isStyleAvailable(this.props.ObjStyle);\n\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".parseProps: Apply this style element to this text: \" + this.styleElementToApply);\n\n // Set html text:\n this.domRefText.append(this.parseFlashText(this.props.HtmlTxt, this.domRefText));\n\n // Set X coordinate:\n this.domRef.css(\"left\", this.props.X + \"px\");\n\n // Set Y coordinate:\n this.domRef.css(\"top\", this.props.Y + \"px\");\n\n // Set depth:\n this.domRef.css(\"z-index\", this.props.Z);\n\n // Set alpha of whole object:\n this.domRef.css(\"opacity\", 0);\n\n // Background on / off\n if (this.props.BG === false)\n {\n this.domRefText.css(\"background-color\", \"transparent\");\n }\n\n // Background color:\n if (this.props.BG === true)\n {\n this.domRefText.css(\"background-color\", \"#\" + this.props.BGCol);\n }\n\n // Textfield border:\n if (this.props.Border === true)\n {\n this.domRefText.css(\"border-style\", \"solid\");\n this.domRefText.css(\"border-width\", \"1px\");\n this.domRefText.css(\"width\", parseInt(this.domRefText.css(\"width\")) - 1 + \"px\");\n } else\n {\n this.domRefText.css(\"border\", \"none\");\n }\n\n // Border color:\n this.domRefText.css(\"border-color\", \"#\" + this.props.BorderCol);\n\n // Set x offset\n this.domRefText.css(\"left\", this.props.TextOffsetX + \"px\");\n\n // Rotation\n this.domRef.css(\"-ms-transform-origin\", \"0px 0px\");\n this.domRef.css(\"-moz-transform-origin\", \"0px 0px\");\n this.domRef.css(\"-webkit-transform-origin\", \"0px 0px\");\n this.domRef.css(\"transform-origin\", \"0px 0px\");\n\n this.domRef.css(\"-ms-transform\", \"rotate(\" + this.props.Rotation + \"deg)\");\n this.domRef.css(\"-moz-transform\", \"rotate(\" + this.props.Rotation + \"deg)\");\n this.domRef.css(\"-webkit-transform\", \"rotate(\" + this.props.Rotation + \"deg)\");\n this.domRef.css(\"transform\", \"rotate(\" + this.props.Rotation + \"deg)\");\n\n // Set bullet point and set text offset y (can only be done once height of image is known):\n if (this.props.Media === \"none\" || this.props.Media === \"\")\n {\n this.domRefBullet.remove();\n\n _this.checkTextHeightInterval = setInterval(function ()\n {\n if (_this.checkTextHeightExist() === true)\n {\n _this.updateHeight();\n }\n }, 250);\n } else\n {\n this.domRefBullet.attr(\"src\", this.player.PATH_MEDIA + decodeURIComponent(this.props.Media).split(\",\")[0]);\n\n this.domRefBullet.load(function ()\n {\n var bulletWidth = parseInt(_this.domRefBullet.css(\"width\").slice(0, -2));\n var textCurrentX = parseInt(_this.domRefText.css(\"left\").slice(0, -2));\n var textNewX = bulletWidth + textCurrentX;\n\n _this.domRefText.css(\"left\", textNewX + \"px\");\n\n if (_this.domRefText.outerHeight() > _this.domRefBullet.outerHeight())\n {\n _this.domRefBullet.css(\"top\", _this.props.TextOffsetY + \"px\");\n } else\n {\n _this.domRefText.css(\"top\", _this.props.TextOffsetY + \"px\");\n }\n\n _this.domRef.trigger(\"MediaLoadedEvent\", \"media loaded\");\n _this.mediaLoaded = true;\n _this.mediaSet = true;\n _this.isReady = true;\n });\n }\n\n this.applyTextfieldStyle();\n};\n\nln.objects.Textfield.prototype.applyTextfieldStyle = function ()\n{\n if (this.styleElementToApply === -1)\n {\n $(ln).trigger(\"DebuggerLogEvent\", \".applyTextfieldStyle: No style to apply!\");\n\n return;\n }\n\n $(ln).trigger(\"DebuggerLogEvent\", \".applyTextfieldStyle: style element: \" + this.styleElementToApply);\n\n var style = this.styles[this.styleElementToApply];\n\n var styleFont;\n\n if (style.type.indexOf(\"textfield_\") === 0)\n {\n // Remove 'textfield_'\n styleFont = style.type.split(\"textfield_\")[1];\n } else\n {\n // Use as-is...\n styleFont = style.type;\n }\n\n this.fontMgr.loadFont(styleFont);\n\n $(ln).trigger(\"DebuggerLogEvent\", \".applyTextfieldStyle: font-family: \" + styleFont);\n $(ln).trigger(\"DebuggerLogEvent\", \".applyTextfieldStyle: font-weight: \" + ((style.style.bold.toLowerCase() === \"true\") ? \"bold\" : \"normal\"));\n $(ln).trigger(\"DebuggerLogEvent\", \".applyTextfieldStyle: font-style: \" + ((style.style.italic.toLowerCase() === \"true\") ? \"italic\" : \"normal\"));\n $(ln).trigger(\"DebuggerLogEvent\", \".applyTextfieldStyle: text-decoration: \" + ((style.style.underline.toLowerCase() === \"true\") ? \"underline\" : \"none\"));\n $(ln).trigger(\"DebuggerLogEvent\", \".applyTextfieldStyle: line-height: \" + style.style.leading);\n $(ln).trigger(\"DebuggerLogEvent\", \".applyTextfieldStyle: text-align: \" + style.style.align);\n $(ln).trigger(\"DebuggerLogEvent\", \".applyTextfieldStyle: font-size: \" + style.style.size);\n $(ln).trigger(\"DebuggerLogEvent\", \".applyTextfieldStyle: color: \" + style.style.color);\n\n // Apply new styles at the top of the Textfield instance inheritance / cascade\n this.domRefText.css({\n \"font-family\": styleFont,\n \"font-weight\": (style.style.bold.toLowerCase() === \"true\") ? \"bold\" : \"normal\",\n \"font-style\": (style.style.italic.toLowerCase() === \"true\") ? \"italic\" : \"normal\",\n \"text-decoration\": (style.style.underline.toLowerCase() === \"true\") ? \"underline\" : \"none\",\n \"line-height\": (parseInt(style.style.leading) + 13) + \"px\", /* Only applied to the top element (applies to all text always) */\n \"text-align\": style.style.align,\n \"font-size\": style.style.size + \"px\",\n \"color\": \"#\" + style.style.color\n });\n\n // For each paragraph\n this.domRefText.find(\"p\").css({\n \"font-family\": \"inherit\",\n \"font-weight\": \"inherit\",\n \"font-style\": \"inherit\",\n \"text-decoration\": \"inherit\",\n \"text-align\": \"inherit\",\n \"font-size\": \"inherit\",\n \"color\": \"inherit\"\n });\n\n // For each styled part...\n this.domRefText.find(\"span\").css({\n \"font-family\": \"inherit\",\n \"font-weight\": \"inherit\",\n \"font-style\": \"inherit\",\n \"text-decoration\": \"inherit\",\n \"text-align\": \"inherit\",\n \"font-size\": \"inherit\",\n \"color\": \"inherit\"\n });\n\n // Reduce margin of first p tag by half of leading to make sure that the first line of text is roughly in the correct position\n // 'leading' isn't applied to first line of text, it's not supposed to push the text down, like 'line-height' does.\n // The rest of the text adheres to the 'line-height' as before, but textfield might not be as tall as expected (evident when border or background is enabled)\n this.domRefText.find(\"p\").first().css(\"margin-top\", ((style.style.leading / 2) * -1) + \"px\");\n};\n\nln.objects.Textfield.prototype.checkTextHeightExist = function ()\n{\n if (this.domRefText.css(\"height\") !== \"0px\")\n {\n return true;\n }\n\n return false;\n};\n\nln.objects.Textfield.prototype.updateHeight = function ()\n{\n this.domRef.css(\"height\", this.domRefText.css(\"height\"));\n window.clearInterval(this.checkTextHeightInterval);\n\n this.domRef.trigger(\"MediaLoadedEvent\", \"media loaded\");\n this.mediaLoaded = true;\n this.mediaSet = false;\n this.isReady = true;\n};\n\nln.objects.Textfield.prototype.parseFlashText = function (strText, oParent)\n{\n var _this = this;\n\n var arrTopFontNodes, oTopFontNode, oNewTopFontNode;\n var oOut = $(document.createElement(\"span\"));\n var textFormatCount = 0;\n\n var strPreparedFlashText = \"\" + _this.prepareFlashHtml(strText) + \"\"; // String representation of the XML after removing formatting and adding FONT tags where necessary\n\n var $preparedText = $(strPreparedFlashText);\n\n $($preparedText).find(\"textformat\").each(function ()\n {\n if (textFormatCount === 0)\n {\n _this.leading = parseInt($(this).attr(\"leading\"));\n\n var newWidth = oParent.width() - (parseInt($(this).attr(\"rightmargin\")) * 2);\n\n oParent.css(\"width\", newWidth + \"px\");\n oParent.css(\"line-height\", parseInt($(this).attr(\"leading\")) + 13 + \"px\");\n oParent.css(\"padding-left\", $(this).attr(\"rightmargin\") + \"px\");\n oParent.css(\"padding-right\", $(this).attr(\"rightmargin\") + \"px\");\n oParent.css(\"text-align\", $(this).find(\"p\").first().attr(\"align\").toLowerCase());\n oParent.css(\"letter-spacing\", $(this).find(\"font\").first().attr(\"letterspacing\") + \"px\");\n }\n\n textFormatCount++;\n arrTopFontNodes = $(this).children(\"p\").children(\"font\");\n\n // Loop through top level FONT tags:\n for (var i = 0; i < arrTopFontNodes.length; i++)\n {\n oTopFontNode = $(arrTopFontNodes[i]);\n\n oNewTopFontNode = $(document.createElement(\"p\"));\n\n if (typeof oTopFontNode.attr(\"size\") !== \"undefined\")\n {\n oNewTopFontNode.css(\"font-size\", oTopFontNode.attr(\"size\") + \"px\");\n }\n\n if (typeof oTopFontNode.attr(\"color\") !== \"undefined\")\n {\n oNewTopFontNode.css(\"color\", oTopFontNode.attr(\"color\"));\n }\n\n if (oTopFontNode.text() === \"\" || oTopFontNode.text().length === 0)\n {\n oNewTopFontNode.append(\" \");\n } else\n {\n oNewTopFontNode.append(_this.parseFontNode(oTopFontNode, _this));\n }\n }\n\n oOut.append(oNewTopFontNode);\n });\n\n // Reduce margin of first p tag by half of leading to make sure that the first line of text is roughly in the correct position\n // 'leading' isn't applied to first line of text, it's not supposed to push the text down, like 'line-height' does.\n // The rest of the text adheres to the 'line-height' as before, but textfield might not be as tall as expected (evident when border or background is enabled)\n oOut.children(\"p\").first().css(\"margin-top\", ((this.leading / 2) * -1) + \"px\");\n\n return oOut;\n};\n\nln.objects.Textfield.prototype.parseFontNode = function (node, textfieldObjectRef)\n{\n var _this = textfieldObjectRef;\n var newTree = $(document.createElement(\"span\"));\n\n function getNodes(node)\n {\n var jqNode = $(node);\n var newNode = $(document.createElement(\"span\"));\n if (jqNode.is(\"font\"))\n {\n // Create a new font node, we don't yet know if it has any children\n if (typeof jqNode.attr(\"size\") !== \"undefined\")\n {\n newNode.css(\"font-size\", jqNode.attr(\"size\") + \"px\");\n newNode.css(\"line-height\", _this.leading + parseInt(jqNode.attr(\"size\")) + \"px\");\n }\n\n if (typeof jqNode.attr(\"color\") !== \"undefined\")\n {\n newNode.css(\"color\", jqNode.attr(\"color\"));\n }\n\n if (typeof jqNode.attr(\"parsedstyle\") !== \"undefined\")\n {\n if (jqNode.attr(\"parsedstyle\") === \"bold\")\n {\n newNode.css(\"font-weight\", \"bold\");\n } else if (jqNode.attr(\"parsedstyle\") === \"italic\")\n {\n newNode.css(\"font-style\", \"italic\");\n } else if (jqNode.attr(\"parsedstyle\") === \"underlined\")\n {\n newNode.css(\"text-decoration\", \"underline\");\n }\n }\n\n if (typeof jqNode.attr(\"href\") !== \"undefined\")\n {\n newNode = $(document.createElement(\"a\"));\n newNode.attr(\"href\", jqNode.attr(\"href\").split(\",\")[1]);\n newNode.attr(\"target\", \"_blank\");\n _this.hasHyperlink = true;\n }\n\n if (jqNode.children(\"font\").length === 0)\n {\n //newNode.html(jqNode.html().replace(//g, \" \").replace(//g, \" \"));\n newNode.html(jqNode.html());\n return newNode;\n } else\n {\n for (var i = 0; i < jqNode.children().length; ++i)\n {\n newNode.append(getNodes(jqNode.children()[i], node));\n }\n }\n }\n\n return newNode;\n }\n\n newTree.append(getNodes(node));\n\n return newTree;\n};\n\nln.objects.Textfield.prototype.getTextNodesIn = function (node, includeWhitespaceNodes)\n{\n var textNodes = [], whitespace = /^\\s*$/;\n\n function getTextNodes(node)\n {\n if (node.nodeType === 3)\n {\n if (includeWhitespaceNodes || !whitespace.test(node.nodeValue))\n {\n textNodes.push(node);\n }\n } else\n {\n for (var i = 0, len = node.childNodes.length; i < len; ++i)\n {\n getTextNodes(node.childNodes[i]);\n }\n }\n }\n\n getTextNodes(node);\n return textNodes;\n};\n\nln.objects.Textfield.prototype.prepareFlashHtml = function (strText)\n{\n var _this = this;\n\n var strOut = strText.replace(/\\/g, \"\");\n strOut = strOut.replace(/\\<\\/I\\>/g, \"\");\n strOut = strOut.replace(/\\/g, \"\");\n strOut = strOut.replace(/\\<\\/B\\>/g, \"\");\n strOut = strOut.replace(/\\/g, \"\");\n strOut = strOut.replace(/\\<\\/U\\>/g, \"\");\n\n strOut = strOut.replace(/\\/g, \"\");\n\n // Wrap strOut in and so that when we convert the string to a jQuery object we don't discard bits, the tag is discarded now instead\n var $text = $(\"\" + strOut + \"\");\n\n for (var i = 0; i < $text.length; i++)\n {\n var textnodes = _this.getTextNodesIn($text[i]);\n for (var j = 0; j < textnodes.length; j++)\n {\n if ($(textnodes[j]))\n {\n $(textnodes[j]).wrap(\"\");\n }\n }\n }\n\n var numTextformats = $text.find(\"TEXTFORMAT\").length;\n\n // We are doing this because when we set leading to 0 Flash ommits the TEXTFORMAT tags, we need to wrap the p tags in TEXTFORMAT tags with leading set to 0\n if (numTextformats === 0)\n {\n // Wrap all 'p' tags with TEXTFORMAT tag with leading set to 0\n var paragraphs = $text.find(\"P\");\n paragraphs.wrap(\"\");\n }\n\n strOut = $(\"\").append($text).html();\n strOut = strOut.replace(/ /g, \"  \"); // Replace all double spaces with non-breaking spaces\n strOut = strOut.replace(/  /g, \"  \"); // Replace non-breaking space with an actual space to two non-breaking spaces\n\n return strOut;\n};\n\nln.objects.Textfield.prototype.setSummaryScoreText = function (strText)\n{\n // Function specifically designed for the score text summary textfield child\n // It replaces the 'XXX%' text with the score text from the Summary object and retains / keeps the formatting\n var oldHtml = this.domRefText.html();\n this.domRefText.html(oldHtml.replace(\"XXX%\", strText));\n};\n\nln.objects.Textfield.prototype.cleanup = function ()\n{\n window.clearInterval(this.checkTextHeightInterval);\n};","ln.extend(ln, \"ln.objects\");\n\nln.objects.Triangle = function(playerRef, jQueryContainer, uniqueNum, init_props, oFamily, oType)\n{\n this.player = playerRef;\n this.domRef = jQueryContainer;\n this.num = uniqueNum;\n this.props_init = init_props;\n this.props = new Object();\n this.oFamily = oFamily;\n this.oType = oType;\n this.uID = this.oType + \"_\" + this.num;\n this.domRef.attr(\"id\", this.uID);\n this.domRef.css(\"position\", \"absolute\");\n\n this.timeline_manager = null;\n this.interactions_manager = null;\n this.isReady = false;\t// For questions so that they know if this object has fully loaded and set its properties\n\n this.paper = null;\n this.theTriangle = null;\n\n this.importedWidth = 0;\n this.importedHeight = 0;\n\n this.extractProps();\n};\n\nln.objects.Triangle.prototype.extractProps = function()\n{\n this.props = new ln.objects.common.PropExtractor(this.props_init, this.uID);\n\n if (this.props)\n {\n this.parseProps();\n }\n};\n\nln.objects.Triangle.prototype.parseProps = function()\n{\n this.timeline_manager = new ln.objects.common.TimelineManager(this, this.domRef, this.player);\n this.interactions_manager = new ln.objects.common.InteractionsManager(this, this.domRef, this.player, this.props.RequireClickForScreenCompletion, this.props.Parent);\n\n // Set height (ExternalHeight for AS2 or Height for AS3):\n if (this.props.hasOwnProperty(\"ExternalHeight\"))\n {\n this.importedHeight = this.props.ExternalHeight;\n } else if (this.props.hasOwnProperty(\"Height\"))\n {\n this.importedHeight = this.props.Height;\n }\n\n this.domRef.css(\"height\", this.importedHeight + \"px\");\n\n // Set width (ExternalWidth for AS2 or Width for AS3):\n if (this.props.hasOwnProperty(\"ExternalWidth\"))\n {\n this.importedWidth = this.props.ExternalWidth;\n } else if (this.props.hasOwnProperty(\"Width\"))\n {\n this.importedWidth = this.props.Width;\n }\n\n this.domRef.css(\"width\", this.importedWidth + \"px\");\n\n // Set X coordinate:\n this.domRef.css(\"left\", this.props.X + \"px\");\n\n // Set Y coordinate:\n this.domRef.css(\"top\", this.props.Y + \"px\");\n\n // Set depth\n this.domRef.css(\"z-index\", this.props.Z);\n\n // Set alpha of whole object:\n this.domRef.css(\"opacity\", 0);\n\n this.paper = Raphael(this.domRef[0], this.importedWidth, this.importedHeight);\n\n // Rotation\n this.domRef.css(\"-ms-transform-origin\", \"0px 0px\");\n this.domRef.css(\"-moz-transform-origin\", \"0px 0px\");\n this.domRef.css(\"-webkit-transform-origin\", \"0px 0px\");\n this.domRef.css(\"transform-origin\", \"0px 0px\");\n\n this.domRef.css(\"-ms-transform\", \"rotate(\" + this.props.Rotation + \"deg)\");\n this.domRef.css(\"-moz-transform\", \"rotate(\" + this.props.Rotation + \"deg)\");\n this.domRef.css(\"-webkit-transform\", \"rotate(\" + this.props.Rotation + \"deg)\");\n this.domRef.css(\"transform\", \"rotate(\" + this.props.Rotation + \"deg)\");\n\n this.drawTriangle();\n\n this.isReady = true;\n};\n\nln.objects.Triangle.prototype.drawTriangle = function()\n{\n var width = this.importedWidth;\n var halfWidth = (this.importedWidth / 2);\n var height = this.importedHeight;\n var halfHeight = (this.importedHeight / 2);\n var stroke = this.props.FrameThickness;\n var halfStroke = (this.props.FrameThickness / 2);\n\n var shapeType = \"Standard\";\n var trianglePath = \"\";\n\n // Normalize any incoming values to match those available in the AS3 environment (even though we might not be able to render them all yet\n if (this.props.hasOwnProperty(\"ShapeVariation\"))\n {\n if (this.props.ShapeVariation === \"Standard\")\n {\n shapeType = \"Centered point top\";\n } else if (this.props.ShapeVariation === \"Right angle\")\n {\n shapeType = \"Bottom left straight\";\n }\n } else if (this.props.hasOwnProperty(\"TriangleType\"))\n {\n shapeType = this.props.TriangleType;\n }\n\n // Now draw the triangle according to the shapeType variable defined above:\n\n if (shapeType === \"Centered point top\")\n {\n trianglePath += \"M\" + halfWidth + \",\" + halfStroke; // Move to center top\n trianglePath += \"L\" + (width - halfStroke) + \", \" + (height - halfStroke); // Line to lower right corner\n trianglePath += \"L\" + halfStroke + \", \" + (height - halfStroke); // Line to lower left corner\n trianglePath += \"L\" + halfWidth + \", \" + halfStroke; // Line back to center top\n trianglePath += \"Z\";\n } else if (shapeType === \"Centered point bottom\")\n {\n trianglePath += \"M\" + halfStroke + \",\" + halfStroke; // LT\n trianglePath += \"L\" + (width - halfStroke) + \", \" + halfStroke; // TR\n trianglePath += \"L\" + halfWidth + \", \" + (height - halfStroke); // CB\n trianglePath += \"L\" + halfStroke + \", \" + halfStroke; // LT\n trianglePath += \"Z\";\n\n\n } else if (shapeType === \"Centered point left\")\n {\n trianglePath += \"M\" + (width - halfStroke) + \",\" + halfStroke; // TR\n trianglePath += \"L\" + (width - halfStroke) + \", \" + (height - halfStroke); // BR\n trianglePath += \"L\" + halfStroke + \", \" + halfHeight; // LC\n trianglePath += \"L\" + (width - halfStroke) + \",\" + halfStroke; // TR\n trianglePath += \"Z\";\n\n } else if (shapeType === \"Centered point right\")\n {\n trianglePath += \"M\" + halfStroke + \",\" + halfStroke; \n trianglePath += \"L\" + (width - halfStroke) + \", \" + halfHeight; \n trianglePath += \"L\" + halfStroke + \", \" + (height- halfStroke); \n trianglePath += \"L\" + halfStroke + \",\" + halfStroke; \n trianglePath += \"Z\";\n\n } else if (shapeType === \"Top left straight\")\n {\n trianglePath += \"M\" + halfStroke + \",\" + halfStroke; //TL\n trianglePath += \"L\" + (width - halfStroke) + \", \" + halfStroke; //|TR\n trianglePath += \"L\" + halfStroke + \", \" + (height- halfStroke); // LC\n trianglePath += \"L\" + halfStroke + \",\" + halfStroke; // TR\n trianglePath += \"Z\";\n\n } else if (shapeType === \"Top right straight\")\n {\n trianglePath += \"M\" + halfStroke + \",\" + halfStroke; //TL\n trianglePath += \"L\" + (width - halfStroke) + \", \" + halfStroke; //|TR\n trianglePath += \"L\" + (width - halfStroke) + \", \" + (height- halfStroke); // \n trianglePath += \"L\" + halfStroke + \",\" + halfStroke; // TR\n trianglePath += \"Z\";\n\n } else if (shapeType === \"Bottom right straight\")\n {\n trianglePath += \"M\" + (width - halfStroke)+ \",\" + halfStroke; \n trianglePath += \"L\" + (width - halfStroke) + \", \" + (height- halfStroke); \n trianglePath += \"L\" + halfStroke + \", \" + (height- halfStroke); \n trianglePath += \"L\" + (width - halfStroke)+ \",\" + halfStroke; \n trianglePath += \"Z\";\n\n\n } else if (shapeType === \"Bottom left straight\")\n {\n trianglePath += \"M\" + halfStroke + \",\" + halfStroke; // Move to top left\n trianglePath += \"L\" + (width - halfStroke) + \", \" + (height - halfStroke); // Line to lower right corner\n trianglePath += \"L\" + halfStroke + \", \" + (height - halfStroke); // Line to lower left corner\n trianglePath += \"L\" + halfStroke + \", \" + halfStroke; // Line back to center top\n trianglePath += \"Z\";\n }\n\n this.theTriangle = this.paper.path(trianglePath);\n this.theTriangle.attr(\"stroke-width\", stroke);\n this.theTriangle.attr(\"fill\", \"#\" + this.props.FillColour);\n this.theTriangle.attr(\"fill-opacity\", this.props.FillAlpha / 100);\n this.theTriangle.attr(\"stroke\", \"#\" + this.props.FrameColour);\n this.theTriangle.attr(\"stroke-linejoin\", \"round\");\n this.theTriangle.attr(\"stroke-opacity\", this.props.FrameAlpha / 100);\n};","ln.extend(ln, \"ln.objects\");\n\nln.objects.Video = function(playerRef, jQueryContainer, uniqueNum, init_props, oFamily, oType)\n{\n this.player = playerRef;\n this.domRef = jQueryContainer;\n this.num = uniqueNum;\n this.props_init = init_props;\n this.props = new Object();\n this.oFamily = oFamily;\n this.oType = oType;\n this.uID = this.oType + \"_\" + this.num;\n this.domRef.attr(\"id\", this.uID);\n this.domRef.css(\"position\", \"absolute\");\n\n this.timeline_manager = null;\n this.interactions_manager = null;\n this.isReady = false;\t// For questions so that they know if this object has fully loaded and set its properties\n\n this.mediaLoaded = false;\n this.mediaPlayedToEnd = false;\n this.mediaDuration = 0;\n\n this.controlsTimeline = false;\n this.isPaused = false;\n\n this.playEventTimecode = -1;\n\n this.domRef.append(\"
\");\n this.domRefPlayer = $(ln.video.domRefID);\n\n this.stalledInterval = 0;\n this.stalledTimer = 0;\n this.stalledCheckGap = 5000; // 4 times / second check for update in stalledness\n this.stalledMaxDuration = 5000; // Wait for 5 seconds before assuming it's an error rather than a stall\n\n this.progressMaxDuration = 5000; // Wait 5 seconds for a download progress event before trusting the canplaythrough event\n this.overallMaxDuration = 30000; // Wait 30 seconds before giving up and playing anyway\n this.progressTimeout = 0;\n this.overallTimeout = 0;\n\n this.canPlay = false; // Sets to true when video event fires this event\n this.canPlayThrough = false; // Sets to true when video event fires this event\n this.hadProgress = false; // Sets to true when video event fires this event\n this.percLoaded = 0;\n this.lastPercLoaded = 0;\n\n this.mediaFLV = null;\n this.mediaMP4 = null;\n\n this.optimisticLoadCheckIgnored = false;\n\n this.unscaledWidth = 0;\n this.unscaledHeight = 0;\n this.scaledWidth = 0;\n this.scaledHeight = 0;\n\n if (this.domRefPlayer.css(\"display\") === \"none\")\n {\n this.domRefPlayer.css(\"display\", \"block\");\n this.domRefPlayer.css(\"opacity\", 0)\n }\n\n // When FADE IN, FADE OUT, OPACITY events occur this handles the jPlayer opacity for us\n this.domRef.bind(\"handleOpacityEventForDependants\", { _this: this, jPlayerRef: this.domRefPlayer }, function(event, duration, alpha)\n {\n event.data.jPlayerRef.fadeTo(duration, alpha);\n });\n\n this.extractProps();\n};\n\nln.objects.Video.prototype.extractProps = function()\n{\n this.props = new ln.objects.common.PropExtractor(this.props_init, this.uID);\n\n if (this.props)\n {\n this.parseProps();\n }\n};\n\nln.objects.Video.prototype.parseProps = function()\n{\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".parseProps\");\n\n var _player = this.player;\n\n this.timeline_manager = new ln.objects.common.TimelineManager(this, this.domRefPlayer, this.player);\n this.interactions_manager = new ln.objects.common.InteractionsManager(this, this.domRef, this.player, this.props.RequireClickForScreenCompletion, this.props.Parent);\n\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".parseProps: SyncsTo: \" + this.props.SyncsTo);\n if (this.props.SyncsTo === true)\n {\n this.controlsTimeline = true;\n }\n\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".parseProps: X: \" + this.props.X);\n this.domRefPlayer.css(\"left\", this.props.X + \"px\");\n\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".parseProps: Y: \" + this.props.Y + \", \" + _player.domRef.css(\"top\"));\n this.domRefPlayer.css(\"top\", (this.props.Y + 100) + \"px\");\n\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".parseProps: Z: \" + this.props.Z);\n this.domRefPlayer.css(\"z-index\", this.props.Z);\n\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".parseProps: Height: \" + this.props.ExternalHeight);\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".parseProps: Width: \" + this.props.ExternalWidth);\n\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".parseProps: Alpha: \" + this.props.Alpha);\n this.domRefPlayer.css(\"opacity\", \"0\");\n\n this.mediaFLV = this.player.PATH_MEDIA + decodeURIComponent(this.props.Media.split(\",\")[0]);\n this.mediaMP4 = this.player.PATH_MEDIA + decodeURIComponent(this.props.Media.split(\",\")[0]).replace(\".flv\", \".mp4\");\n\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".parseProps: media FLV: \" + this.mediaFLV);\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".parseProps: media MP4: \" + this.mediaMP4);\n\n // this.domRefPlayer.jPlayer({size:{width: this.props.ExternalWidth+\"px\", height: this.props.ExternalHeight+\"px\"}});\n\n // Rotation\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".parseProps: Rotation: \" + this.props.Rotation);\n this.domRefPlayer.css(\"-ms-transform-origin\", \"0px 0px\");\n this.domRefPlayer.css(\"-moz-transform-origin\", \"0px 0px\");\n this.domRefPlayer.css(\"-webkit-transform-origin\", \"0px 0px\");\n this.domRefPlayer.css(\"transform-origin\", \"0px 0px\");\n\n this.domRefPlayer.css(\"-ms-transform\", \"rotate(\" + this.props.Rotation + \"deg)\");\n this.domRefPlayer.css(\"-moz-transform\", \"rotate(\" + this.props.Rotation + \"deg)\");\n this.domRefPlayer.css(\"-webkit-transform\", \"rotate(\" + this.props.Rotation + \"deg)\");\n this.domRefPlayer.css(\"transform\", \"rotate(\" + this.props.Rotation + \"deg)\");\n\n this.setAndPreloadVideo();\n};\n\nln.objects.Video.prototype.setAndPreloadVideo = function()\n{\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".setAndPreloadVideo\");\n\n // If Flash solution is active we need to add a prefix to the path:\n var prefix = \"\";\n if (this.domRefPlayer.data(\"jPlayer\").flash.active)\n {\n prefix = \"../../\";\n }\n\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".setAndPreloadVideo: prefix + mediaFLV: \" + prefix + this.mediaFLV);\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".setAndPreloadVideo: prefix + mediaMP4: \" + prefix + this.mediaMP4);\n\n // FLash needs an extra ../ but HTML doesn't\n this.domRefPlayer.jPlayer(\"setMedia\",\n {\n flv: prefix + this.mediaFLV,\n m4v: prefix + this.mediaMP4\n });\n\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".setAndPreloadVideo: Set up event listeners, included 'canplay' event that should fire to indicate 'media is playable'\");\n\n // Setup event listeners:\n this.domRefPlayer.bind($.jPlayer.event.progress, {_this: this}, function(e)\n {\n e.data._this.mediaDownloadProgress(e.jPlayer.status.duration, e);\n });\n\n this.domRefPlayer.bind($.jPlayer.event.ended, {_this: this}, function(e)\n {\n e.data._this.mediaEnded();\n });\n\n this.domRefPlayer.bind($.jPlayer.event.durationchange, {_this: this}, function(e)\n {\n e.data._this.setMediaLength(e.jPlayer.status.duration);\n });\n\n this.domRefPlayer.bind($.jPlayer.event.timeupdate, {_this: this}, function(e)\n {\n e.data._this.playheadTick(e.jPlayer.status.currentTime);\n });\n\n this.domRefPlayer.bind($.jPlayer.event.canplay, {_this: this}, function(e)\n {\n e.data._this.mediaCanPlay(e);\n });\n\n this.domRefPlayer.bind($.jPlayer.event.canplaythrough, { _this: this }, function (e) {\n e.data._this.mediaCanPlayThrough(e);\n });\n\n this.domRefPlayer.bind($.jPlayer.event.loadeddata, { _this: this }, function (e) {\n e.data._this.mediaLoadedData(e);\n });\n\n this.domRefPlayer.bind($.jPlayer.event.loadedmetadata, { _this: this }, function (e) {\n e.data._this.mediaLoadedMetaData(e);\n });\n\n this.domRefPlayer.bind($.jPlayer.event.stalled, { _this: this }, function (e)\n {\n e.data._this.mediaStalled(e);\n });\n\n this.domRefPlayer.bind($.jPlayer.event.waiting, {_this: this}, function(e)\n {\n e.data._this.mediaWaiting(e);\n });\n\n this.domRefPlayer.bind($.jPlayer.event.error, {_this: this}, function(e)\n {\n e.data._this.mediaError(e);\n });\n\n this.domRefPlayer.bind($.jPlayer.event.play, {_this: this}, function(e)\n {\n e.data._this.preloadPlayHandler(e);\n });\n\n this.domRefPlayer.bind($.jPlayer.event.pause, {_this: this}, function(e)\n {\n e.data._this.preloadPauseHandler(e);\n });\n};\n\nln.objects.Video.prototype.preloadPlayHandler = function(e)\n{\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".preloadPlayHandler\");\n\n this.domRefPlayer.jPlayer(\"pause\");\n};\n\nln.objects.Video.prototype.preloadPauseHandler = function(e)\n{\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".preloadPauseHandler\");\n\n this.domRefPlayer.jPlayer(\"playHead\", 0);\n //this.domRefPlayer.unbind($.jPlayer.event.play);\n //this.domRefPlayer.unbind($.jPlayer.event.pause);\n};\n\nln.objects.Video.prototype.mediaError = function(e)\n{\n $(ln).trigger(\"DebuggerErrorEvent\", this.uID + \".mediaError\");\n $(ln).trigger(\"DebuggerErrorEvent\", this.uID + \".mediaError: e.jPlayer.error.type: \" + e.jPlayer.error.type);\n $(ln).trigger(\"DebuggerErrorEvent\", this.uID + \".mediaError: e.jPlayer.error.context: \" + e.jPlayer.error.context);\n $(ln).trigger(\"DebuggerErrorEvent\", this.uID + \".mediaError: e.jPlayer.error.hint: \" + e.jPlayer.error.hint);\n $(ln).trigger(\"DebuggerErrorEvent\", this.uID + \".mediaError: e.jPlayer.error.message: \" + e.jPlayer.error.message);\n $(ln).trigger(\"DebuggerErrorEvent\", this.uID + \".mediaError: check console!\");\n\n $(ln).trigger(\"DebuggerErrorEvent\", this.uID + \".mediaError: e.jPlayer.error.type: \" + e.jPlayer.error.type);\n $(ln).trigger(\"DebuggerErrorEvent\", this.uID + \".mediaError: e.jPlayer.error: \" + e.jPlayer.error);\n\n $(ln).trigger(\"DebuggerErrorEvent\", this.uID + \".mediaError: this.mediaFLV: \" + this.mediaFLV);\n $(ln).trigger(\"DebuggerErrorEvent\", this.uID + \".mediaError: this.mediaMP4: \" + this.mediaMP4);\n\n var _this = this;\n\n noty({\n text: \"A Video object (\" + _this.uID + \") reported an 'error' event of type '\" + e.jPlayer.error.type + \"', hint: '\" + e.jPlayer.error.hint + \"', message: '\" + e.jPlayer.error.message + \"'. You have two options:\",\n type: \"error\",\n buttons: [\n {\n addClass: 'btn btn-primary', text: 'Reload Screen', onClick: function($noty)\n {\n // this = button element\n // $noty = $noty element\n $(ln).trigger(\"ShellNavReplayScreenEvent\");\n $noty.close();\n }\n },\n {\n addClass: 'btn btn-danger', text: 'Course Menu', onClick: function($noty)\n {\n $(ln).trigger(\"AuxScreenCourseMenuEvent\");\n $noty.close();\n }\n }\n ]\n });\n};\n\nln.objects.Video.prototype.mediaWaiting = function(e)\n{\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".mediaWaiting\");\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".mediaWaiting: event object: \" + e);\n};\n\nln.objects.Video.prototype.mediaStalled = function(e)\n{\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".mediaStalled\");\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".mediaStalled: event object: \" + e);\n\n //if (this.isReady)\n //{\n // var _this = this;\n // var _e = e;\n\n // clearInterval(this.stalledInterval);\n // this.stalledInterval = setInterval(function()\n // {\n // _this.mediaStalledIntervalHandler(_e);\n // }, this.stalledCheckGap);\n //} else\n //{\n // if (this.optimisticLoadCheckIgnored || this.percLoaded < 10)\n // {\n // $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".mediaStalled: Try to kickstart player again because:\");\n // $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".mediaStalled: a) it reported 0->100% preloaded and stalled (says it's loaded but really isn't)\");\n // $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".mediaStalled: b) stalled during preload process and < 10% loaded\");\n // $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".mediaStalled: Reset preloader play/pause events and check variable\");\n\n // this.domRefPlayer.bind($.jPlayer.event.play, {_this: this}, function(e)\n // {\n // e.data._this.preloadPlayHandler(e);\n // });\n\n // this.domRefPlayer.bind($.jPlayer.event.pause, {_this: this}, function(e)\n // {\n // e.data._this.preloadPauseHandler(e);\n // });\n\n // this.optimisticLoadCheckIgnored = false;\n\n // this.domRefPlayer.jPlayer(\"play\");\n // }\n //}\n};\n\nln.objects.Video.prototype.mediaStalledIntervalHandler = function(e)\n{\n this.stalledTimer += this.stalledCheckGap;\n\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".mediaStalledIntervalHandler: timer: \" + this.stalledTimer + \", max stalled duration: \" + this.stalledMaxDuration + \", media duration: \" + this.mediaDuration);\n\n if (this.stalledTimer >= this.stalledMaxDuration)\n {\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".mediaStalledIntervalHandler: \" + this.stalledMaxDuration + \"ms passed, take action!\");\n\n clearInterval(this.stalledInterval);\n this.stalledTimer = 0;\n\n if (!this.mediaPlayedToEnd)\n {\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".mediaStalledIntervalHandler: Has not played to end yet!\");\n\n var _this = this;\n\n if (this.percLoaded >= 100)\n {\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".mediaStalledIntervalHandler: Loaded 100% or more\");\n\n if (e.currentTarget.childNodes[1].paused)\n {\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".mediaStalledIntervalHandler: Paused, try to play it! (only if player timecode >= video play event)\");\n\n clearInterval(_this.stalledInterval);\n _this.stalledTimer = 0;\n\n if (this.player.timelineCurrent >= this.getPlayEvent())\n {\n this.mediaPlay();\n }\n\n $.noty.close();\n return false;\n } else\n {\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".mediaStalledIntervalHandler: Not paused, close noty and continue as usual\");\n\n $.noty.close();\n return false;\n }\n } else\n {\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".mediaStalledIntervalHandler: Loaded < 100%\");\n\n if (e.currentTarget.childNodes[1].paused)\n {\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".mediaStalledIntervalHandler: Paused, try to play it! (only if player timecode > video play event)\");\n\n clearInterval(_this.stalledInterval);\n _this.stalledTimer = 0;\n\n if (this.player.timelineCurrent >= this.getPlayEvent())\n {\n this.mediaPlay();\n }\n\n $.noty.close();\n return false;\n } else\n {\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".mediaStalledIntervalHandler: Not paused, close noty and continue as usual\");\n\n $.noty.close();\n return false;\n }\n\n noty({\n text: \"A Video object (\" + _this.uID + \") reports it is stalled (paused? \" + e.currentTarget.childNodes[1].paused + \") for an unknown reason, you can either wait a but longer or reload the screen or go back to Course Menu:\",\n type: \"error\",\n buttons: [\n {\n addClass: 'btn btn-primary', text: 'Wait', onClick: function($noty)\n {\n // this = button element\n // $noty = $noty element\n clearInterval(_this.stalledInterval);\n _this.stalledTimer = 0;\n _this.stalledInterval = setInterval(function() {\n _this.mediaStalledIntervalHandler();\n }, _this.stalledCheckGap);\n $noty.close();\n }\n },\n {\n addClass: 'btn btn-primary', text: 'Reload Screen', onClick: function($noty)\n {\n // this = button element\n // $noty = $noty element\n $(ln).trigger(\"ShellNavReplayScreenEvent\");\n $noty.close();\n }\n },\n {\n addClass: 'btn btn-danger', text: 'Course Menu', onClick: function($noty)\n {\n $(ln).trigger(\"AuxScreenCourseMenuEvent\");\n $noty.close();\n }\n }\n ]\n });\n }\n } else\n {\n $.noty.close();\n }\n }\n};\n\nln.objects.Video.prototype.mediaDownloadProgress = function(duration, e)\n{\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".mediaDownloadProgress\");\n if (this.progressTimeout != 0) {\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".mediaDownloadProgress: clearing download progress timeout (\" + this.progressTimeout + \")\");\n clearTimeout(this.progressTimeout);\n this.progressTimeout = 0;\n }\n this.hadProgress = true;\n this.setMediaLength(duration);\n this.checkMediaLoaded(e);\n if (this.canPlay && this.percLoaded >= 10 && !this.mediaLoaded) {\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".mediaDownloadProgress: more than 10% has downloaded (\" + this.percLoaded + \" ) - issuing loaded event!\");\n this.setMediaLoaded();\n }\n};\n\nln.objects.Video.prototype.mediaCanPlay = function(e)\n{\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".mediaCanPlay\");\n this.canPlay = true;\n this.setDimensions(e);\n this.checkMediaLoaded(e);\n if (!this.mediaLoaded) {\n if (this.percLoaded >= 10) {\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".mediaCanPlay: more than 10% has downloaded (\" + this.percLoaded + \" ) - issuing loaded event!\");\n this.setMediaLoaded();\n }\n else {\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".mediaCanPlay: starting overall timeout\");\n var _this = this;\n clearTimeout(this.overallTimeout);\n this.overallTimeout = setTimeout(function () {\n _this.overallTimeoutHandler();\n }, this.overallMaxDuration);\n }\n }\n};\n\nln.objects.Video.prototype.overallTimeoutHandler = function () {\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".overallTimeoutHandler: overall timeout (\" + this.overallMaxDuration / 1000 + \" secs) has expired - giving up and issuing loaded event!\");\n this.setMediaLoaded();\n};\n\nln.objects.Video.prototype.mediaCanPlayThrough = function (e)\n{\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".mediaCanPlayThrough\");\n this.canPlayThrough = true;\n this.checkMediaLoaded(e);\n if (!this.mediaLoaded) {\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".mediaCanPlayThrough: starting download progress timeout\");\n var _this = this;\n clearTimeout(this.progressTimeout);\n this.progressTimeout = setTimeout(function () {\n _this.progressTimeoutHandler();\n }, this.progressMaxDuration);\n }\n};\n\nln.objects.Video.prototype.progressTimeoutHandler = function () {\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".progressTimeoutHandler: download progress timeout (\" + this.progressMaxDuration / 1000 + \" secs) has expired - assuming canplaythrough event can be trusted and issuing loaded event!\");\n this.setMediaLoaded();\n};\n\nln.objects.Video.prototype.mediaLoadedData = function (e) {\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".mediaLoadedData\");\n this.checkMediaLoaded(e);\n};\n\nln.objects.Video.prototype.mediaLoadedMetaData = function (e) {\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".mediaLoadedMetaData\");\n this.checkMediaLoaded(e);\n if (this.percLoaded === 0) {\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".mediaLoadedMetaData: no data has been downloaded - kickstarting using preload play/pause handlers\");\n this.domRefPlayer.jPlayer(\"play\");\n }\n};\n\nln.objects.Video.prototype.setMediaLoaded = function ()\n{\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".setMediaLoaded\");\n clearTimeout(this.progressTimeout);\n clearTimeout(this.overallTimeout);\n this.progressTimeout = 0;\n this.overallTimeout = 0;\n this.domRefPlayer.unbind($.jPlayer.event.play);\n this.domRefPlayer.unbind($.jPlayer.event.pause);\n this.domRef.trigger(\"MediaLoadedEvent\", \"media loaded\");\n this.mediaLoaded = true;\n this.isReady = true;\n};\n\nln.objects.Video.prototype.checkMediaLoaded = function (e)\n{\n //var bufferedRanges = 0;\n //var bufferedRangeStart = 0;\n //var bufferedRangeEnd = 0;\n\n //if (e.currentTarget.childNodes[1].buffered.length !== 0)\n //{\n // bufferedRanges = e.currentTarget.childNodes[1].buffered.length;\n // bufferedRangeStart = e.currentTarget.childNodes[1].buffered.start(0);\n // bufferedRangeEnd = e.currentTarget.childNodes[1].buffered.end(0);\n //}\n\n //var seekRanges = 0;\n //var seekRangeStart = 0;\n //var seekRangeEnd = 0;\n\n //if (e.currentTarget.childNodes[1].seekable.length !== 0)\n //{\n // seekRanges = e.currentTarget.childNodes[1].seekable.length;\n // seekRangeStart = e.currentTarget.childNodes[1].seekable.start(0);\n // seekRangeEnd = e.currentTarget.childNodes[1].seekable.end(0);\n //}\n\n //this.lastPercLoaded = this.percLoaded;\n //this.percLoaded = ((bufferedRangeEnd * 1000) / this.mediaDuration) * 100;\n //var paused = e.currentTarget.childNodes[1].paused;\n ///*\n // * 0 = HAVE_NOTHING - no information whether or not the audio/video is ready\n // * 1 = HAVE_METADATA - metadata for the audio/video is ready\n // * 2 = HAVE_CURRENT_DATA - data for the current playback position is available, but not enough data to play next frame/millisecond\n // * 3 = HAVE_FUTURE_DATA - data for the current and at least the next frame is available\n // * 4 = HAVE_ENOUGH_DATA - enough data available to start playing\n // */\n //var readyState = e.jPlayer.status.readyState;\n\n //if (this.percLoaded >= 100 && this.lastPercLoaded === 0)\n //{\n // this.optimisticLoadCheckIgnored = true;\n //}\n\n //if (!this.optimisticLoadCheckIgnored)\n //{\n // if (!this.mediaLoaded && this.mediaDuration !== 0 && this.canPlay)\n // {\n // if (paused && bufferedRangeEnd === 0)\n // {\n // this.domRefPlayer.jPlayer(\"play\");\n // } else\n // {\n // this.domRefPlayer.unbind($.jPlayer.event.play);\n // this.domRefPlayer.unbind($.jPlayer.event.pause);\n // }\n\n // if (this.percLoaded != 0 && bufferedRangeEnd != 0)\n // {\n // // Trigger event notifying player that media has loaded enough to play\n // this.domRef.trigger(\"MediaLoadedEvent\", \"media loaded\");\n // this.mediaLoaded = true;\n // this.isReady = true;\n // }\n // }\n //}\n\n // calculate buffered data\n var bufferedRanges = 0;\n var bufferedRangeStart = 0;\n var bufferedRangeEnd = 0;\n var bufferedRange = 0;\n var bufferedTotal = 0;\n var bufferedString = '';\n\n bufferedRanges = e.currentTarget.childNodes[1].buffered.length;\n bufferedString += \", bufferedRanges: \" + bufferedRanges;\n for (var i = 0; i < bufferedRanges; i++) {\n bufferedRangeStart = e.currentTarget.childNodes[1].buffered.start(i);\n bufferedRangeEnd = e.currentTarget.childNodes[1].buffered.end(i);\n bufferedRange = bufferedRangeEnd - bufferedRangeStart;\n bufferedTotal += bufferedRange;\n bufferedString += \", bufferedRangeStart(\" + i + \"): \" + bufferedRangeStart + \", bufferedRangeEnd(\" + i + \"): \" + bufferedRangeEnd + \", bufferedRange(\" + i + \"): \" + bufferedRange;\n }\n bufferedString += \", bufferedTotal: \" + bufferedTotal;\n\n this.lastPercLoaded = this.percLoaded;\n this.percLoaded = ((bufferedTotal * 1000) / this.mediaDuration) * 100;\n\n // * 0 = HAVE_NOTHING - no information whether or not the audio/video is ready\n // * 1 = HAVE_METADATA - metadata for the audio/video is ready\n // * 2 = HAVE_CURRENT_DATA - data for the current playback position is available, but not enough data to play next frame/millisecond\n // * 3 = HAVE_FUTURE_DATA - data for the current and at least the next frame is available\n // * 4 = HAVE_ENOUGH_DATA - enough data available to start playing\n // */\n var readyState = e.jPlayer.status.readyState;\n\n $(ln).trigger(\"DebuggerLogEvent\", this.uID + \".checkMediaLoaded: preload: \" + e.currentTarget.childNodes[1].preload + bufferedString\n + \", lastPercLoaded: \" + this.lastPercLoaded + \", percLoaded: \" + this.percLoaded + \", readyState: \" + readyState + \", canPlay: \" + this.canPlay + \", canPlayThrough: \" + this.canPlayThrough + \", hadProgress: \" + this.hadProgress);\n\n};\n\nln.objects.Video.prototype.setDimensions = function(e)\n{\n this.unscaledWidth = e.jPlayer.status.videoWidth;\n this.unscaledHeight = e.jPlayer.status.videoHeight;\n\n if (this.props.hasOwnProperty(\"Scale\"))\n {\n // as2 props...\n this.scaledWidth = this.unscaledWidth * (this.props.Scale / 100);\n this.scaledHeight = this.unscaledHeight * (this.props.Scale / 100);\n } else if (this.props.hasOwnProperty(\"ScaleProportional\"))\n {\n // As3 props...\n this.scaledWidth = this.unscaledWidth * this.props.ScaleX;\n this.scaledHeight = this.unscaledHeight * this.props.ScaleY;\n }\n\n this.domRefPlayer.jPlayer({size: {width: this.scaledWidth + \"px\", height: this.scaledHeight + \"px\"}});\n};\n\nln.objects.Video.prototype.getPlayEvent = function()\n{\n if (this.playEventTimecode === -1)\n {\n this.playEventTimecode = this.timeline_manager.getFirstEventOfType(\"PLAY\");\n return this.playEventTimecode;\n } else\n {\n return this.playEventTimecode;\n }\n};\n\nln.objects.Video.prototype.getMediaLength = function()\n{\n if (this.mediaDuration === 0)\n {\n this.mediaDuration = parseInt(this.domRefPlayer.data(\"jPlayer\").status.duration) * 1000;\n }\n\n return this.mediaDuration;\n};\n\nln.objects.Video.prototype.setMediaLength = function(duration)\n{\n this.mediaDuration = parseInt(duration * 1000);\n};\n\nln.objects.Video.prototype.playheadTick = function(mediaTimecode)\n{\n if (!this.mediaLoaded || this.mediaDuration === 0 || !this.canPlay)\n {\n return false;\n }\n\n if (this.controlsTimeline === true)\n {\n if (this.player.timelineCurrent >= this.getPlayEvent() && this.mediaPlayedToEnd === false)\n {\n this.player.timelineTick((this.getPlayEvent() + Math.round(mediaTimecode * 1000)));\n }\n } else\n {\n // Playhead ticks are unnecessary if it's not controlling the timeline\n }\n};\n\nln.objects.Video.prototype.mediaPlay = function()\n{\n if (this.mediaLoaded && this.mediaDuration !== 0 && this.canPlay && !this.mediaPlayedToEnd)\n {\n this.isPaused = false;\n\n if (this.controlsTimeline === true)\n {\n // Stop timeline and start jPlayer, each tick of the jPlayer will progress the Player timeline\n this.player.timelineStop();\n this.domRefPlayer.jPlayer(\"play\");\n } else\n {\n // Just start the jPlayer and ignore the Player timeline, they operate independently\n this.domRefPlayer.jPlayer(\"play\");\n }\n\n var _this = this;\n setTimeout(function()\n {\n _this.refreshDom();\n }, 0);\n } else\n {\n\n }\n};\n\nln.objects.Video.prototype.refreshDom = function()\n{\n var _player = this.domRefPlayer;\n this.domRefPlayer.hide(0, function()\n {\n _player.show();\n });\n};\n\nln.objects.Video.prototype.mediaPause = function()\n{\n this.isPaused = true;\n this.domRefPlayer.jPlayer(\"pause\");\n\n if (this.controlsTimeline === true)\n {\n\n } else\n {\n\n }\n};\n\nln.objects.Video.prototype.mediaStop = function()\n{\n // Stop and reset to timecode 0\n this.domRefPlayer.jPlayer(\"stop\");\n\n if (this.controlsTimeline === true)\n {\n\n } else\n {\n\n }\n};\n\nln.objects.Video.prototype.mediaEnded = function()\n{\n // Clear event listeners:\n this.domRefPlayer.unbind($.jPlayer.event.progress);\n this.domRefPlayer.unbind($.jPlayer.event.ended);\n this.domRefPlayer.unbind($.jPlayer.event.durationchange);\n this.domRefPlayer.unbind($.jPlayer.event.timeupdate);\n\n if (this.controlsTimeline === true)\n {\n this.mediaPlayedToEnd = true;\n this.player.timelineStart((parseInt(this.getPlayEvent()) + parseInt(this.getMediaLength())));\n } else\n {\n\n }\n};\n\nln.objects.Video.prototype.cleanup = function()\n{\n clearInterval(this.stalledInterval);\n this.stalledTimer = 0;\n $.noty.close();\n\n this.domRefPlayer.jPlayer(\"stop\");\n ln.video.parkPlayer();\n this.domRefPlayer.unbind();\n};","ln.extend(ln, \"ln.objects\");\n\nln.objects.YouTube = function(playerRef, jQueryContainer, uniqueNum, init_props, oFamily, oType)\n{\n this.player = playerRef;\n this.domRef = jQueryContainer;\n this.num = uniqueNum;\n this.props_init = init_props;\n this.props = new Object();\n this.oFamily = oFamily;\n this.oType = oType;\n this.uID = this.oType + \"_\" + this.num;\n this.domRef.attr(\"id\", this.uID);\n this.domRef.css(\"position\", \"absolute\");\n\n this.timeline_manager = null;\n this.interactions_manager = null;\n this.isReady = false;\t// For questions so that they know if this object has fully loaded and set its properties\n\n this.importedWidth = 0;\n this.importedHeight = 0;\n\n this.domRefPlayer = $(ln.youtube.domRefID);\n\n this.mediaLoaded = false;\n this.mediaPlayedToEnd = false;\n this.mediaDuration = 0;\n\n this.interval = null;\n\n this.controlsTimeline = false;\n this.isPlaying = false;\n this.isPaused = false;\n\n this.playEventTimecode = -1;\n\n this.youTubeState = -2;\n\n if (this.domRefPlayer.css(\"display\") !== \"block\")\n {\n this.domRefPlayer.css(\"display\", \"block\");\n }\n\n // When FADE IN, FADE OUT, OPACITY events occur this handles the jPlayer opacity for us\n this.domRef.bind(\"handleOpacityEventForDependants\", { _this: this, youtubePlayerRef: this.domRefPlayer }, function(event, duration, alpha)\n {\n event.data.youtubePlayerRef.fadeTo(duration, alpha);\n });\n\n this.extractProps();\n};\n\nln.objects.YouTube.prototype.extractProps = function()\n{\n this.props = new ln.objects.common.PropExtractor(this.props_init, this.uID);\n\n if (this.props)\n {\n this.parseProps();\n }\n};\n\nln.objects.YouTube.prototype.parseProps = function()\n{\n var _this = this;\n\n this.timeline_manager = new ln.objects.common.TimelineManager(this, this.domRefPlayer, this.player);\n this.interactions_manager = new ln.objects.common.InteractionsManager(this, this.domRef, this.player, this.props.RequireClickForScreenCompletion, this.props.Parent);\n\n if (this.props.SyncsTo === true)\n {\n this.controlsTimeline = true;\n }\n\n // this.domRefPlayer.attr(\"src\", \"http://www.youtube.com/embed/\" + this.props.VideoID + \"?controls=0\");\n ln.youtube.player.loadVideoById(this.props.VideoID);\n\n this.domRefPlayer.css(\"left\", this.props.X);\n\n this.domRefPlayer.css(\"top\", (this.props.Y + 100) + \"px\");\n\n this.domRefPlayer.css(\"z-index\", this.props.Z);\n\n this.domRefPlayer.css(\"opacity\", 0);\n\n // What's the width?\n if (this.props.hasOwnProperty(\"Width\"))\n {\n this.importedWidth = this.props.Width;\n } else if (this.props.hasOwnProperty(\"ExternalWidth\"))\n {\n this.importedWidth = this.props.ExternalWidth;\n }\n\n // What's the height?\n if (this.props.hasOwnProperty(\"Height\"))\n {\n this.importedHeight = this.props.Height;\n } else if (this.props.hasOwnProperty(\"ExternalHeight\"))\n {\n this.importedHeight = this.props.ExternalHeight;\n }\n\n ln.youtube.player.setSize(this.importedWidth, this.importedHeight);\n ln.youtube.player.addEventListener(\"onStateChange\", function(e)\n {\n _this.stateChanged(Number(e.data));\n });\n};\n\nln.objects.YouTube.prototype.stateChanged = function(newState)\n{\n // -2 (no state has ever been set by this function before)\n // -1 (unstarted)\n // 0 (ended)\n // 1 (playing)\n // 2 (paused)\n // 3 (buffering)\n // 5 (video cued)\n\n this.getMediaLength();\n\n if (this.mediaLoaded === false)\n {\n if (this.youTubeState === -2 && newState >= 1 && this.getMediaLength() !== 0)\n {\n this.mediaDownloadCompleted();\n this.youTubeState = newState;\n ln.youtube.player.pauseVideo();\n }\n } else\n {\n this.youTubeState = newState;\n\n if (newState === 0)\n {\n this.mediaEnded();\n }\n }\n};\n\nln.objects.YouTube.prototype.mediaDownloadCompleted = function()\n{\n // Trigger event notifying player that media has loaded (should ideally be done somehwere else, but may not be useful anyway):\n this.domRef.trigger(\"MediaLoadedEvent\", \"media loaded\");\n this.mediaLoaded = true;\n this.isReady = true;\n};\n\nln.objects.YouTube.prototype.getPlayEvent = function()\n{\n if (this.playEventTimecode === -1)\n {\n this.playEventTimecode = this.timeline_manager.getFirstEventOfType(\"PLAY\");\n return this.playEventTimecode;\n } else\n {\n return this.playEventTimecode;\n }\n};\n\nln.objects.YouTube.prototype.getMediaLength = function()\n{\n if (this.mediaDuration === 0)\n {\n if (ln.youtube.player.getDuration() !== 0)\n {\n this.mediaDuration = Math.round(ln.youtube.player.getDuration()) * 1000;\n }\n } else if (this.mediaDuration !== Math.round(ln.youtube.player.getDuration()) * 1000 && Math.round(ln.youtube.player.getDuration()) * 1000 !== 0)\n {\n this.mediaDuration = Math.round(ln.youtube.player.getDuration()) * 1000;\n }\n\n return this.mediaDuration;\n};\n\nln.objects.YouTube.prototype.playheadTick = function(mediaTimecode)\n{\n if (this.controlsTimeline === true)\n {\n if (this.player.timelineCurrent >= this.getPlayEvent() && this.mediaPlayedToEnd === false)\n {\n this.player.timelineTick((this.getPlayEvent() + Math.round(mediaTimecode * 1000)));\n }\n } else\n {\n // Playhead ticks are unnecessary if it's not controlling the timeline\n }\n};\n\nln.objects.YouTube.prototype.mediaPlay = function()\n{\n this.isPlaying = true;\n this.isPaused = false;\n\n if (this.controlsTimeline === true)\n {\n // Stop timeline and start jPlayer, each tick of the jPlayer will progress the Player timeline\n this.player.timelineStop();\n ln.youtube.player.playVideo();\n var thisPointer = this;\n this.interval = setInterval(function()\n {\n thisPointer.playheadTick(ln.youtube.player.getCurrentTime());\n }, 125);\n } else\n {\n // Just start the jPlayer and ignore the Player timeline, they operate independently\n ln.youtube.player.playVideo();\n }\n};\n\nln.objects.YouTube.prototype.mediaPause = function()\n{\n this.isPlaying = false;\n this.isPaused = true;\n\n if (this.controlsTimeline === true)\n {\n ln.youtube.player.pauseVideo();\n window.clearInterval(this.interval);\n } else\n {\n ln.youtube.player.pauseVideo();\n }\n};\n\nln.objects.YouTube.prototype.mediaStop = function()\n{\n this.isPlaying = false;\n\n // Stop and reset to timecode 0\n ln.youtube.player.stopVideo();\n ln.youtube.player.seekTo(0);\n\n if (this.controlsTimeline === true)\n {\n window.clearInterval(this.interval);\n } else\n {\n\n }\n};\n\nln.objects.YouTube.prototype.mediaEnded = function()\n{\n if (this.controlsTimeline === true)\n {\n this.mediaPlayedToEnd = true;\n this.player.timelineStart((parseInt(this.getPlayEvent()) + parseInt(this.getMediaLength())));\n } else\n {\n\n }\n\n window.clearInterval(this.interval);\n};\n\nln.objects.YouTube.prototype.cleanup = function()\n{\n window.clearInterval(this.interval);\n ln.youtube.player.stopVideo();\n ln.youtube.parkPlayer();\n};","/* TO DO\n *\n * Touch end object must match touch start object so that you get the expected behaviour when touching an object but releasing the finger outside it (nothing should happen). Current\n * behaviour is that the touch start immediately gets to work executing the code even if you subsequently drag the finger.\n *\n * Currently includes a dirty fix for Chrome for Android 18: http://code.google.com/p/chromium/issues/detail?id=141840 to make up for incorrect DPI scaling for touch events\n */\n\nln.extend(ln, \"ln.objects.common\");\n\nln.objects.common.InteractionsManager = function(objRef, domRef, playerRef, requireClick, optPassThrough)\n{\n this.player = playerRef;\n this.objRef = objRef;\n this.domRef = domRef;\n this.rawEvents = this.objRef.props.MouseEvents;\n this.arrMouseEvents = new Array();\n this.blnMouseEventsSet = false;\n this.passThrough = false;\n if (optPassThrough)\n {\n if (optPassThrough === \"none\")\n {\n this.passThrough = true;\n }\n\n if (optPassThrough === \"keep_internal_events\")\n {\n this.passThrough = false;\n }\n }\n\n $(ln).trigger(\"DebuggerLogEvent\", this.objRef.uID + \".InteractionsManager.constructor: optPassThrough: \" + optPassThrough + \", passThrough: \" + this.passThrough);\n\n this.pointerEvents = new ln.util.PointerEvents();\n\n this.mouseState = \"out\"; // 'out' = Default / Mouse out, 'over' = Mouse over\n\n this.lastNoInteractionObj = this.domRef;\n this.clickThisToCompleteScreen = false;\n\n $(ln).trigger(\"DebuggerLogEvent\", this.objRef.uID + \".InteractionsManager.constructor: objectRef: \" + objRef.uID + \", raw events: \" + this.rawEvents);\n $(ln).trigger(\"DebuggerLogEvent\", this.objRef.uID + \".InteractionsManager.constructor: Require click for completion? \" + requireClick);\n if (requireClick)\n {\n // $(ln).trigger(\"DebuggerLogEvent\", this.objRef.uID + \".InteractionsManager.constructor: Instruct Player to check for clicks to complete screen\");\n this.domRef.trigger(\"RegisterRequiredClickForScreenCompletionEvent\", this.objRef.uID);\n this.clickThisToCompleteScreen = true;\n }\n\n this.mouseOverEvtIDs = null;\n this.mouseOutEvtIDs = null;\n this.mouseClickEvtIDs = null;\n\n this.handCursor = this.objRef.props.MouseEventsHandCursor;\n // $(ln).trigger(\"DebuggerLogEvent\", this.objRef.uID + \".InteractionsManager.constructor: hand cursor: \" + this.handCursor);\n this.domRef.css(\"cursor\", \"default\");\n\n this.setMouseInteractions();\n};\n\nln.objects.common.InteractionsManager.prototype.setMouseInteractions = function(interactionsDisabled)\n{\n if (interactionsDisabled === true)\n {\n // $(ln).trigger(\"DebuggerLogEvent\", this.objRef.uID + \".InteractionsManager.setMouseInteractions, Disabled\");\n\n this.domRef.unbind(this.pointerEvents.click);\n this.domRef.unbind(this.pointerEvents.over);\n this.domRef.unbind(this.pointerEvents.out);\n\n this.domRef.bind(this.pointerEvents.click, {_this: this}, function(e)\n {\n e.preventDefault();\n e.data._this.handleNoMouseInteractions(e);\n });\n\n this.domRef.bind(this.pointerEvents.over, {_this: this}, function(e)\n {\n e.data._this.handleNoMouseInteractions(e);\n });\n\n this.domRef.bind(this.pointerEvents.out, {_this: this}, function(e)\n {\n e.data._this.handleNoMouseInteractions(e);\n });\n\n if (this.passThrough)\n {\n // For browsers that support this it should dramatically improve behaviour when 'clicking through' objects to ones below\n this.domRef.css(\"pointer-events\", \"none\");\n }\n\n return;\n }\n\n this.domRef.unbind(this.pointerEvents.click);\n // $(ln).trigger(\"DebuggerLogEvent\", this.objRef.uID + \".InteractionsManager.setMouseInteractions\");\n\n if (this.rawEvents === \"None\" || this.rawEvents === \"\" || this.rawEvents === undefined || this.rawEvents === \"none\" || this.rawEvents === null)\n {\n if (this.passThrough && this.objRef.oFamily !== \"textfield\")\n {\n // For browsers that support this it should dramatically improve behaviour when 'clicking through' objects to ones below\n this.domRef.css(\"pointer-events\", \"none\");\n }\n\n // $(ln).trigger(\"DebuggerLogEvent\", this.objRef.uID + \".InteractionsManager.setMouseInteractions: No mouse events to consider\");\n this.arrMouseEvents = new Array(\"None\");\n this.blnMouseEventsSet = false;\n\n // Android gets touch start event and all others the click event\n this.domRef.bind(this.pointerEvents.click, {_this: this}, function(e)\n {\n if (e.data._this.objRef.oFamily === \"textfield\")\n {\n // $(ln).trigger(\"DebuggerLogEvent\", e.data._this.objRef.uID + \".InteractionsManager.\" + e.data._this.pointerEvents.click + \": Check if textfield anchor link has been clicked\");\n\n var anchors = e.data._this.domRef.find(\"a\");\n\n // $(ln).trigger(\"DebuggerLogEvent\", e.data._this.objRef.uID + \".InteractionsManager.\" + e.data._this.pointerEvents.click + \": anchors: \" + anchors.length);\n // $(ln).trigger(\"DebuggerLogEvent\", e.data._this.objRef.uID + \".InteractionsManager.\" + e.data._this.pointerEvents.click + \": x: \" + e.pageX + \", y: \" + e.pageY);\n\n $(anchors).each(function(index)\n {\n var offset = $(this).offset();\n var anchor = new Object();\n anchor.x = offset.left;\n anchor.y = offset.top;\n anchor.width = $(this).width();\n anchor.height = $(this).height();\n anchor.url = $(this).attr(\"href\");\n\n var pointerCoords = getEventCoordinates(e);\n\n // $(ln).trigger(\"DebuggerLogEvent\", e.data._this.objRef.uID + \".InteractionsManager.\" + e.data._this.pointerEvents.click + \": \" + index + \": \" + $(this).text() + \", x: \" + anchor.x + \", y: \" + anchor.y + \", width: \" + anchor.width + \", height: \" + anchor.height);\n\n var xOK = false;\n var yOK = false;\n\n if (pointerCoords.x >= anchor.x && pointerCoords.x <= (anchor.x + anchor.width))\n {\n xOK = true;\n }\n\n if (pointerCoords.y >= anchor.y && (pointerCoords.y <= (anchor.y + anchor.height)))\n {\n yOK = true;\n }\n\n if (xOK && yOK)\n {\n ln.comms.goURL(anchor.url);\n }\n });\n }\n\n e.preventDefault();\n e.data._this.handleNoMouseInteractions(e);\n });\n\n // Desktop has mouse over / out / move events registered as well:\n this.domRef.bind(this.pointerEvents.over, {_this: this}, function(e) {\n e.data._this.handleNoMouseInteractions(e);\n });\n\n this.domRef.bind(this.pointerEvents.out, {_this: this}, function(e) {\n e.data._this.handleNoMouseInteractions(e);\n });\n\n this.domRef.bind(this.pointerEvents.move, {_this: this}, function(e) {\n e.data._this.handleNoMouseInteractions(e);\n });\n } else\n {\n $(ln).trigger(\"DebuggerLogEvent\", this.objRef.uID + \".InteractionsManager.setMouseInteractions: Set up mouse events!\");\n\n // For browsers that support this it should dramatically improve behaviour when 'clicking through' objects to ones below\n this.domRef.css(\"pointer-events\", \"\");\n\n if (this.rawEvents.indexOf(\"SELF\") !== -1)\n {\n this.rawEvents = this.rawEvents.replace(\"SELF\", this.objRef.uID);\n }\n\n // Each mouse event is separated by \"&&\"\n this.arrMouseEvents = this.rawEvents.split(\"&&\");\n this.numMouseEvents = this.arrMouseEvents.length;\n\n // Events have been set, don't do it again while in the player (will just duplicate the events and slow performance otherwise)\n this.blnMouseEventsSet = true;\n\n // Clear the arrays so that duplicates are not introduced\n this.mouseOverEvtIDs = new Array();\n this.mouseOutEvtIDs = new Array();\n this.mouseClickEvtIDs = new Array();\n\n for (var i = 0; i < this.numMouseEvents; i++)\n {\n this.arrMouseEvents[i] = this.arrMouseEvents[i].split(\",\");\n\n if (isNaN(Number(this.arrMouseEvents[i][2])))\n {\n // Insert an element telling it there are no parameters...\n this.arrMouseEvents[i].splice(2, 0, \"0\");\n }\n\n if (this.arrMouseEvents[i][0] === \"Mouse over\")\n {\n $(ln).trigger(\"DebuggerLogEvent\", this.objRef.uID + \".InteractionsManager.setMouseInteractions: Found a mouse over! (\" + this.arrMouseEvents[i] + \")\");\n\n this.domRef.bind(this.pointerEvents.over, {_this: this, index: i}, function(e)\n {\n if (this.mouseState !== \"over\")\n {\n e.data._this.handleInteraction(e.data.index);\n this.mouseState = \"over\";\n }\n });\n } else if (this.arrMouseEvents[i][0] === \"Mouse out\")\n {\n $(ln).trigger(\"DebuggerLogEvent\", this.objRef.uID + \".InteractionsManager.setMouseInteractions: Found a mouse out! (\" + this.arrMouseEvents[i] + \")\");\n\n this.domRef.bind(this.pointerEvents.out, {_this: this, index: i}, function(e)\n {\n if (this.mouseState !== \"out\")\n {\n e.data._this.handleInteraction(e.data.index);\n this.mouseState = \"out\";\n }\n });\n } else if (this.arrMouseEvents[i][0] === \"Mouse click\")\n {\n $(ln).trigger(\"DebuggerLogEvent\", this.objRef.uID + \".InteractionsManager.setMouseInteractions: Found a mouse click! (\" + this.arrMouseEvents[i] + \")\");\n\n this.domRef.bind(this.pointerEvents.click, {_this: this, index: i}, function(e)\n {\n e.preventDefault();\n e.data._this.handleInteraction(e.data.index);\n e.data._this.sendClickToPlayer();\n this.mouseState = \"out\";\n });\n }\n } // for-loop end\n }\n\n this.blnMouseEventsSet = true;\n};\n\nln.objects.common.InteractionsManager.prototype.getEventCoordinates = function(e)\n{\n var eCoords = new Object();\n eCoords.x = 0;\n eCoords.y = 0;\n eCoords.type = \"\";\n\n if (e.pageX && e.pageY)\n {\n // Mouse clicks (everything except android)\n eCoords.x = e.pageX;\n eCoords.y = e.pageY;\n eCoords.type = \"pageXY\";\n } else if (e.originalEvent)\n {\n if (Modernizr.pointerevents)\n {\n // Don't check touches (for browsers supporting Pointer Events API!\n eCoords.x = e.originalEvent.pageX;\n eCoords.y = e.originalEvent.pageY;\n eCoords.type = \"pageXY\"\n } else\n {\n // touchstart event for android with fix:\n // e.originalEvent.touches[0].pageX;\n // e.originalEvent.touches[0].pageY;\n\n // Dirty fix for Chrome 18\n eCoords.x = e.originalEvent.changedTouches[0].screenX;\n eCoords.y = e.originalEvent.changedTouches[0].screenY;\n eCoords.type = \"originalEvent\";\n }\n }\n\n return eCoords;\n};\n\nln.objects.common.InteractionsManager.prototype.handleNoMouseInteractions = function(e)\n{\n this.domRef.css(\"display\", \"none\");\n\n var eCoords = this.getEventCoordinates(e);\n\n if (eCoords.type !== \"pageXY\" && eCoords.type !== \"originalEvent\")\n {\n this.domRef.css(\"display\", \"block\");\n this.lastNoInteractionObj = this.domRef;\n\n return false;\n }\n\n var objBelow = $(document.elementFromPoint(eCoords.x, eCoords.y));\n var objBelowParent = objBelow.parents(\".topLevelPlayerObject\");\n\n // $(ln).trigger(\"DebuggerLogEvent\", this.objRef.uID + \".interactionsManager.handleNoMouseIneractions: objBelow: \" + objBelow.attr(\"id\") + \", objBelowParent: \" + objBelowParent.attr(\"id\"));\n\n // Get first object below the coordinates which has a mouse interaction set, continue until you find one:\n var objWithInteractionsFound = false;\n var traversedObjects = [];\n var numTraversedObjects = 0;\n\n if (objBelowParent.hasClass(\"topLevelPlayerObject\"))\n {\n if (this.player.objects[objBelowParent.attr(\"id\")].interactions_manager.hasInteractions())\n {\n objWithInteractionsFound = true;\n }\n }\n\n while (objWithInteractionsFound === false && objBelow.attr(\"id\") !== undefined)\n {\n var traversing = $(document.elementFromPoint(eCoords.x, eCoords.y));\n if (!traversing.hasClass(\".topLevelPlayerObject\"))\n {\n traversing = traversing.parents(\".topLevelPlayerObject\");\n }\n\n if (traversing.attr(\"id\") === undefined)\n {\n break;\n }\n\n if (this.player.objects[traversing.attr(\"id\")].interactions_manager.hasInteractions())\n {\n objWithInteractionsFound = true;\n objBelow = $(document.elementFromPoint(eCoords.x, eCoords.y));\n objBelowParent = objBelow.parents(\".topLevelPlayerObject\");\n } else\n {\n traversing.css(\"display\", \"none\");\n traversedObjects.push(traversing);\n numTraversedObjects++;\n }\n }\n\n for (var i = 0; i < numTraversedObjects; i++)\n {\n traversedObjects[i].css(\"display\", \"block\");\n }\n\n if (this.lastNoInteractionObj.attr(\"id\") === undefined || this.lastNoInteractionObj.attr(\"id\") === \"undefined\")\n {\n // $(ln).trigger(\"DebuggerLogEvent\", this.objRef.uID + \".handleNoMouseInteractions: lastNoInteractionObj: is undefined, [BAIL OUT]\");\n } else\n {\n if (e.type === \"mousemove\")\n {\n if (this.lastNoInteractionObj.attr(\"id\") !== this.objRef.uID)\n {\n if (this.lastNoInteractionObj.attr(\"id\") !== objBelowParent.attr(\"id\"))\n {\n this.lastNoInteractionObj.trigger(\"mouseout\");\n } else\n {\n objBelowParent.trigger(\"mouseover\");\n }\n }\n } else\n {\n if (e.type === this.pointerEvents.click)\n {\n objBelowParent.trigger(e);\n } else\n {\n if (this.lastNoInteractionObj.attr(\"id\") !== objBelowParent.attr(\"id\"))\n {\n this.lastNoInteractionObj.trigger(\"mouseout\");\n }\n }\n }\n }\n\n this.domRef.css(\"display\", \"block\");\n this.lastNoInteractionObj = objBelowParent;\n};\n\nln.objects.common.InteractionsManager.prototype.handleInteraction = function(eventIndex)\n{\n var interaction = this.getInteractionObject(eventIndex);\n var numInteractionObjs = interaction.objects.length;\n\n $(ln).trigger(\"DebuggerLogEvent\", this.objRef.uID + \".InteractionsManager.handleInteraction trigger: '\" + interaction.trigger + \"', action: '\" + interaction.action + \"', noPArams: '\" + interaction.noParams + \"', params: '\" + interaction.params + \"', objects: \" + interaction.objects);\n\n if (interaction.action === \"Fade in\")\n {\n $(ln).trigger(\"DebuggerLogEvent\", this.objRef.uID + \".InteractionsManager.handleInteraction, FADE IN\");\n\n for (var k = 0; k < numInteractionObjs; k++)\n {\n $(\"#\" + interaction.objects[k]).stop();\n $(\"#\" + interaction.objects[k]).fadeTo(500, 1);\n $(\"#\" + interaction.objects[k]).trigger(\"handleOpacityEventForDependants\", [500, 1]);\n }\n } else if (interaction.action === \"Fade out\")\n {\n $(ln).trigger(\"DebuggerLogEvent\", this.objRef.uID + \".InteractionsManager.handleInteraction, FADE OUT\");\n\n for (var k = 0; k < numInteractionObjs; k++)\n {\n $(\"#\" + interaction.objects[k]).stop();\n $(\"#\" + interaction.objects[k]).fadeTo(500, 0);\n $(\"#\" + interaction.objects[k]).trigger(\"handleOpacityEventForDependants\", [500, 0]);\n }\n } else if (interaction.action === \"Fade to\")\n {\n $(ln).trigger(\"DebuggerLogEvent\", this.objRef.uID + \".InteractionsManager.handleInteraction, FADE TO\");\n\n var alpha = Number(interaction.params[0]) / 100;\n var duration = Number(interaction.params[1]) * 1000;\n\n for (var k = 0; k < numInteractionObjs; k++)\n {\n $(\"#\" + interaction.objects[k]).stop();\n $(\"#\" + interaction.objects[k]).fadeTo(duration, alpha);\n $(\"#\" + interaction.objects[k]).trigger(\"handleOpacityEventForDependants\", [duration, alpha]);\n }\n } else if (interaction.action === \"Go to website\")\n {\n // $(ln).trigger(\"DebuggerLogEvent\", this.objRef.uID + \".InteractionsManager.handleInteraction, GO TO WEBSITE\");\n // window.open(interaction.params[0], \"-\");\n ln.comms.goURL(interaction.params[0]);\n } else if (interaction.action === \"Play\")\n {\n $(ln).trigger(\"DebuggerLogEvent\", this.objRef.uID + \".InteractionsManager.handleInteraction, PLAY\");\n\n for (var k = 0; k < numInteractionObjs; k++)\n {\n this.player.objects[interaction.objects[k]].mediaPlay();\n }\n } else if (interaction.action === \"Pause\")\n {\n // $(ln).trigger(\"DebuggerLogEvent\", this.objRef.uID + \".InteractionsManager.handleInteraction, PAUSE\");\n\n for (var k = 0; k < numInteractionObjs; k++)\n {\n this.player.objects[interaction.objects[k]].mediaPause();\n }\n } else if (interaction.action === \"Stop\")\n {\n // $(ln).trigger(\"DebuggerLogEvent\", this.objRef.uID + \".InteractionsManager.handleInteraction, STOP\");\n\n for (var k = 0; k < numInteractionObjs; k++)\n {\n this.player.objects[interaction.objects[k]].mediaStop();\n }\n } else if (interaction.action === \"Enable mouse interactions\")\n {\n // $(ln).trigger(\"DebuggerLogEvent\", this.objRef.uID + \".InteractionsManager.handleInteraction, ENABLE MOUSE INTERACTIONS\");\n\n for (var k = 0; k < numInteractionObjs; k++)\n {\n this.player.objects[interaction.objects[k]].interactions_manager.setMouseInteractions(false);\n }\n } else if (interaction.action === \"Disable mouse interactions\")\n {\n // $(ln).trigger(\"DebuggerLogEvent\", this.objRef.uID + \".InteractionsManager.handleInteraction, DISABLE MOUSE INTERACTIONS\");\n\n for (var k = 0; k < numInteractionObjs; k++)\n {\n this.player.objects[interaction.objects[k]].interactions_manager.setMouseInteractions(true);\n }\n }\n};\n\nln.objects.common.InteractionsManager.prototype.getInteractionObject = function(eventIndex)\n{\n var trigger = this.arrMouseEvents[eventIndex][0];\n var action = this.arrMouseEvents[eventIndex][1];\n var noParams = parseInt(this.arrMouseEvents[eventIndex][2]);\n var params = new Array();\n var objects = new Array();\n\n if (noParams !== 0)\n {\n for (var i = 0; i < noParams; i++)\n {\n params.push(this.arrMouseEvents[eventIndex][3 + i]);\n }\n }\n\n if (noParams !== 0)\n {\n for (var j = (3 + noParams); j < this.arrMouseEvents[eventIndex].length; j++)\n {\n objects.push(this.arrMouseEvents[eventIndex][j]);\n }\n } else\n {\n for (var j = 3; j < this.arrMouseEvents[eventIndex].length; j++)\n {\n objects.push(this.arrMouseEvents[eventIndex][j]);\n }\n }\n\n var o = new Object();\n o.trigger = trigger;\n o.action = action;\n o.noParams = noParams;\n o.params = params;\n o.objects = objects;\n\n return o;\n};\n\nln.objects.common.InteractionsManager.prototype.hasInteractions = function()\n{\n if (!this.rawEvents || this.rawEvents === undefined || this.rawEvents === \"None\" || this.rawEvents === \"\")\n {\n return false;\n }\n\n return true;\n};\n\nln.objects.common.InteractionsManager.prototype.sendClickToPlayer = function()\n{\n if (this.clickThisToCompleteScreen)\n {\n // $(ln).trigger(\"DebuggerLogEvent\", this.objRef.uID + \".InteractionsManager.sendClickToPlayer: Requires click to complete screen!\");\n this.domRef.trigger(\"TriggerClickForScreenCompletionEvent\", this.objRef.uID);\n }\n};","ln.extend(ln, \"ln.objects.common\");\n\n// Returns an object with all the props and values, properly type to numbers, booleans and string (and unescaped where applicable)\n// Returns null if no props were supplied.\nln.objects.common.PropExtractor = function(rawProps, oID)\n{\n var retProps = new Object();\n\n // $(ln).trigger(\"DebuggerLogEvent\", oID + \".PropExtractor: \" + rawProps.length + \" props to be extracted...\");\n\n if (rawProps)\n {\n $.each(rawProps, function(index, value)\n {\n // Boolean string values should be stored as proper Boolean values, not strings...\n if ($(this).attr(\"type\") === \"bln\")\n {\n if ($(this).text().toLowerCase() === \"true\")\n {\n // Store as Boolean TRUE\n retProps[$(this).attr(\"api\")] = true;\n } else if ($(this).text().toLowerCase() === \"false\")\n {\n // Store as Boolean FALSE\n retProps[$(this).attr(\"api\")] = false;\n }\n }\n\n // Number string values should be stored as proper Number values, not strings:\n if ($(this).attr(\"type\") === \"int\")\n {\n retProps[$(this).attr(\"api\")] = Number($(this).text());\n }\n\n // Strings should be kept as String values, but we need to check if they have been escaped first:\n if ($(this).attr(\"type\") === \"str\")\n {\n if ($(this).attr(\"esc\") === \"true\")\n {\n retProps[$(this).attr(\"api\")] = decodeURIComponent($(this).text());\n } else\n {\n retProps[$(this).attr(\"api\")] = $(this).text();\n }\n }\n });\n } else\n {\n // $(ln).trigger(\"DebuggerLogEvent\", oID + \".PropExtractor: Couldn't find any props to extract!\");\n retProps = null;\n }\n\n return retProps;\n};","ln.extend(ln, \"ln.objects.common\");\n\nln.objects.common.QuestionButtonsDefault = function(parentID, domRef, col)\n{\n this.parentID = parentID;\n this.domRef = domRef;\n this.col = col;\n this.col1 = \"#FFFFFF\";\n this.col2 = \"#\" + this.col.slice(2);\n\n this.pointerEvents = new ln.util.PointerEvents();\n\n this.cssButtonBase = {\n \"border\": \"2px solid #\" + this.col.slice(2),\n \"-moz-border-radius\": \"7px\",\n \"-webkit-border-radius\": \"7px\",\n \"border-radius\": \"7px\",\n \"font-family\": \"Arial, Verdana, sans-serif\",\n \"font-size\": \"13px\",\n \"font-weight\": \"bold\",\n \"line-height\": \"24px\",\n \"text-align\": \"center\",\n \"cursor\": \"pointer\",\n \"overflow\": \"hidden\",\n \"background\": \"#FFFFFF\"\n };\n\n this.cssButtonComponents = {\n \"position\": \"absolute\",\n \"width\": \"135px\",\n \"height\": \"24px\"\n };\n\n this.cssButtonHidden = {\n \"opacity\": 0,\n \"display\": \"none\",\n \"cursor\": \"auto\"\n };\n\n this.cssButtonDisabled = {\n \"opacity\": 0.5,\n \"display\": \"block\",\n \"cursor\": \"auto\"\n };\n\n this.cssButtonEnabled = {\n \"opacity\": 1,\n \"display\": \"block\",\n \"cursor\": \"pointer\"\n };\n\n this.cssButtonBG = {\n \"opacity\": 0.5\n };\n\n this.cssButtonBgGradients = [\n [\"background\", this.col1],\n [\"background\", \"-moz-linear-gradient(top, \" + this.col1 + \" 0%, \" + this.col2 + \" 100%)\"],\n [\"background\", \"-webkit-gradient(linear, left top, left bottom, color-stop(0%,\" + this.col1 + \"), color-stop(100%,\" + this.col2 + \"))\"],\n [\"background\", \"-webkit-linear-gradient(top, \" + this.col1 + \" 0%,\" + this.col2 + \" 100%)\"],\n [\"background\", \"-ms-linear-gradient(top, \" + this.col1 + \" 0%,\" + this.col2 + \" 100%)\"],\n [\"background\", \"linear-gradient(to bottom, \" + this.col1 + \" 0%,\" + this.col2 + \" 100%)\"]\n ];\n\n // Reset button:\n this.domRef.append(\"
\");\n this.domRefButtonReset = this.domRef.find(\"#\" + this.parentID + \"_buttonReset\");\n this.domRefButtonReset.append(\"
\");\n this.domRefButtonReset.append(\"
\" + ln.lang.bundle.player_question_reset + \"
\");\n\n // Show Correct button:\n this.domRef.append(\"
\");\n this.domRefButtonShowCorrect = this.domRef.find(\"#\" + this.parentID + \"_buttonShowCorrect\");\n this.domRefButtonShowCorrect.append(\"
\");\n this.domRefButtonShowCorrect.append(\"
\" + ln.lang.bundle.player_question_showCorrect + \"
\");\n\n // Submit / Check answer button:\n this.domRef.append(\"
\");\n this.domRefButtonSubmit = this.domRef.find(\"#\" + this.parentID + \"_buttonSubmit\");\n this.domRefButtonSubmit.append(\"
\");\n this.domRefButtonSubmit.append(\"
\" + ln.lang.bundle.player_question_checkAnswer + \"
\");\n\n this.domRef.css(\"position\", \"absolute\");\n\n // Move two of the buttons further to the right:\n this.domRefButtonSubmit.css(\"left\", \"160px\");\n this.domRefButtonShowCorrect.css(\"left\", \"160px\");\n\n // Style the buttons\n this.domRef.find(\".questionButton, .questionButtonBG, .questionButtonText\").css(this.cssButtonComponents);\n this.domRef.find(\".questionButton\").css(this.cssButtonBase);\n\n this.domRef.find(\".questionButtonBG\").css(this.cssButtonBG);\n ln.util.applyCssArray(this.domRef.find(\".questionButtonBG\"), this.cssButtonBgGradients);\n};\n\nln.objects.common.QuestionButtonsDefault.prototype.setupButtonDefaults = function()\n{\n this.disableButtonReset();\n this.disableButtonSubmit();\n this.hideButtonShowCorrect();\n};\n\nln.objects.common.QuestionButtonsDefault.prototype.enableButtonShowCorrect = function()\n{\n this.domRefButtonShowCorrect.css(this.cssButtonEnabled);\n this.domRefButtonShowCorrect.bind(this.pointerEvents.click, {_this: this}, function(e)\n {\n e.preventDefault();\n e.data._this.domRef.trigger(\"QuestionEventShowCorrectAnswer\");\n });\n};\n\nln.objects.common.QuestionButtonsDefault.prototype.enableButtonReset = function()\n{\n this.domRefButtonReset.css(this.cssButtonEnabled);\n this.domRefButtonReset.bind(this.pointerEvents.click, {_this: this}, function(e)\n {\n e.preventDefault();\n e.data._this.domRef.trigger(\"QuestionEventResetAnswer\");\n });\n};\n\nln.objects.common.QuestionButtonsDefault.prototype.enableButtonSubmit = function()\n{\n this.domRefButtonSubmit.css(this.cssButtonEnabled);\n this.domRefButtonSubmit.bind(this.pointerEvents.click, {_this: this}, function(e)\n {\n e.preventDefault();\n e.data._this.domRef.trigger(\"QuestionEventCheckAnswer\");\n });\n};\n\nln.objects.common.QuestionButtonsDefault.prototype.disableButtonShowCorrect = function()\n{\n this.domRefButtonShowCorrect.css(this.cssButtonDisabled);\n this.domRefButtonShowCorrect.unbind(this.pointerEvents.click);\n};\n\nln.objects.common.QuestionButtonsDefault.prototype.disableButtonReset = function()\n{\n this.domRefButtonReset.css(this.cssButtonDisabled);\n this.domRefButtonReset.unbind(this.pointerEvents.click);\n};\n\nln.objects.common.QuestionButtonsDefault.prototype.disableButtonSubmit = function()\n{\n this.domRefButtonSubmit.css(this.cssButtonDisabled);\n this.domRefButtonSubmit.unbind(this.pointerEvents.click);\n};\n\nln.objects.common.QuestionButtonsDefault.prototype.hideButtonShowCorrect = function()\n{\n this.domRefButtonShowCorrect.css(this.cssButtonHidden);\n this.domRefButtonShowCorrect.unbind(this.pointerEvents.click);\n};\n\nln.objects.common.QuestionButtonsDefault.prototype.hideButtonReset = function()\n{\n this.domRefButtonReset.css(this.cssButtonHidden);\n this.domRefButtonReset.unbind(this.pointerEvents.click);\n};\n\nln.objects.common.QuestionButtonsDefault.prototype.hideButtonSubmit = function()\n{\n this.domRefButtonSubmit.css(this.cssButtonHidden);\n this.domRefButtonSubmit.unbind(this.pointerEvents.click);\n};\n\nln.objects.common.QuestionButtonsDefault.prototype.hideButtonsAll = function()\n{\n this.hideButtonShowCorrect();\n this.hideButtonReset();\n this.hideButtonSubmit();\n};\n\nln.objects.common.QuestionButtonsDefault.prototype.disableButtonsAll = function()\n{\n this.disableButtonShowCorrect();\n this.disableButtonReset();\n this.disableButtonSubmit();\n};","ln.extend(ln, \"ln.objects.common\");\n\nln.objects.common.TimelineManager = function(objRef, domRef, playerRef)\n{\n this.player = playerRef;\n this.objRef = objRef;\n this.domRef = domRef;\n\n this.rawEvents = this.objRef.props.TLEvents;\n this.arrTimelineEvents = [];\n this.arrTimelineEventsLength = 0;\n this.arrEventsDone = [];\n\n var i = 0;\n\n if (this.rawEvents.indexOf(\"||\") === -1)\n {\n this.arrTimelineEvents[0] = this.rawEvents.split(\",\");\n this.arrTimelineEvents.splice(1);\n\n this.arrEventsDone[0] = false;\n this.arrEventsDone.splice(1);\n } else\n {\n var evtsSplit = this.rawEvents.split(\"||\");\n\n for (i = 0; i < evtsSplit.length; i++)\n {\n this.arrTimelineEvents[i] = evtsSplit[i].split(\",\");\n this.arrEventsDone[i] = false;\n }\n }\n\n this.arrTimelineEventsLength = this.arrTimelineEvents.length;\n\n for (i = 0; i < this.arrTimelineEventsLength; i++)\n {\n this.arrEventsDone[i] = false;\n }\n};\n\n// arrTimelineEvents[x]\n// [0] = Event name\n// [1] = Timecode (ms) to perform the event\n// [2] = Start value of event\n// [3] = End value of event\n// [4] = Length of the event in seconds (if a tweening event)\n// [5] = Animation type of event (if a tweening event)\n\n// arrEventsDone\n// true or false depending on if the event has fired or not (this is updated as you play with the timeline in the player).\n\nln.objects.common.TimelineManager.prototype.TLCheckEvent = function(timecode)\n{\n for (var i = 0; i < this.arrTimelineEventsLength; i++)\n {\n if (timecode >= parseInt(this.arrTimelineEvents[i][1]) && this.arrEventsDone[i] === false)\n {\n this.TLDoEvent(this.arrTimelineEvents[i], i, false);\n this.arrEventsDone[i] = true;\n }\n }\n};\n\n// evt:Array, evtID:Number, superquick:Boolean\nln.objects.common.TimelineManager.prototype.TLDoEvent = function(evt, evtID, superquick)\n{\n var evtName = evt[0];\n // var evtTimecode = evt[1];\n var evtStartVal = evt[2];\n var evtEndVal = evt[3];\n var evtLength = evt[4];\n // var evtAnimType = evt[5];\n\n // $(ln).trigger(\"DebuggerLogEvent\", this.objRef.uID + \".TimelineManager.TLDoEvent: raw event: \" + evt);\n // $(ln).trigger(\"DebuggerLogEvent\", this.objRef.uID + \".TimelineManager.TLDoEvent: Alpha prop of objRef: \" + this.objRef.props.Alpha)\n // $(ln).trigger(\"DebuggerLogEvent\", this.objRef.uID + \".TimelineManager.TLDoEvent: evtName: \" + evtName + \", evtTimecode: \" + evtTimecode + \", evtStartVal: \" + evtStartVal + \", evtEndVal: \" + evtEndVal);\n\n if (evtName === \"OPACITY\")\n {\n if (superquick === true)\n {\n this.domRef.css(\"opacity\", (evtEndVal / 100)); // Set end value directly\n } else\n {\n this.domRef.css(\"opacity\", (evtStartVal / 100)); // Set start value:\n this.domRef.fadeTo((evtLength * 1000), (evtEndVal / 100)); // Fade to end value\n }\n } else if (evtName === \"PLAY\")\n {\n this.objRef.mediaPlay();\n } else if (evtName === \"STOP\")\n {\n this.objRef.mediaStop();\n } else if (evtName === \"PAUSE\")\n {\n this.objRef.mediaPause();\n } else if (evtName === \"PLAY QUESTION AUDIO\")\n {\n this.objRef.questionPlayAudio();\n } else if (evtName === \"FADE IN\")\n {\n if (this.isFirstAlphaInEvent(evt))\n {\n evtEndVal = this.objRef.props.Alpha;\n } else\n {\n evtEndVal = 100;\n }\n\n if (superquick === true)\n {\n this.domRef.css(\"opacity\", (evtEndVal / 100));\n } else\n {\n this.domRef.fadeTo(500, (evtEndVal / 100));\n }\n } else if (evtName === \"FADE OUT\")\n {\n if (superquick === true)\n {\n this.domRef.css(\"opacity\", 0);\n } else\n {\n this.domRef.fadeTo(500, 0);\n }\n } else if (evtName === \"ENABLE MOUSE INTERACTION\")\n {\n this.objRef.interactions_manager.setMouseInteractions();\n } else if (evtName === \"DISABLE MOUSE INTERACTION\")\n {\n this.objRef.interactions_manager.setMouseInteractions(true);\n } else if (evtName === \"PLAY FEEDBACK\")\n {\n this.objRef.initAssessmentPoolFeedback();\n } else if (evtName === \"ENABLE QUESTION\")\n {\n $(ln).trigger(\"DebuggerLogEvent\", this.objRef.uID + \".TimelineManager.TLDoEvent: Enable question, not implemented yet\");\n } else if (evtName === \"DISABLE QUESTION\")\n {\n $(ln).trigger(\"DebuggerLogEvent\", this.objRef.uID + \".TimelineManager.TLDoEvent: Disable question, not implemented yet\");\n }\n\n if (evtID)\n {\n this.arrEventsDone[evtID] = true;\n }\n};\n\n// Returns a timecode (ms) of the first event of a particular type\nln.objects.common.TimelineManager.prototype.getFirstEventOfType = function(eventType)\n{\n var timecode = 999999999999;\n\n for (var i = 0; i < this.arrTimelineEventsLength; i++)\n {\n if (this.arrTimelineEvents[i][0] === eventType)\n {\n if (parseInt(this.arrTimelineEvents[i][1]) < timecode)\n {\n timecode = parseInt(this.arrTimelineEvents[i][1]);\n }\n }\n }\n\n return timecode;\n};\n\nln.objects.common.TimelineManager.prototype.isFirstAlphaInEvent = function(evtInfo) \n{ \n // var firstAlphaAt = null;\n // var evtName = evtInfo[0];\n var evtTimecode = evtInfo[1];\n\n for (var i = 0; i < this.arrTimelineEventsLength; i++)\n {\n if (this.arrTimelineEvents[i][0] === \"FADE IN\")\n {\n if (this.arrTimelineEvents[i][1] < evtTimecode)\n {\n return false;\n }\n }\n }\n\n return true;\n};","ln.extend(ln, \"ln.objects.common\");\n\n/*\nAccepts mediaID and returns a new path to a JS equivalent\n */\nln.objects.common.ButtonSetsMatcher = function(mediaInfo)\n{\n this.mediaRaw = decodeURIComponent(mediaInfo);\n this.mediaPath = this.mediaRaw.split(\",\")[0];\n this.mediaPathJs = this.mediaPath.replace(\"swf\", \"js\");\n\n this.buttonSetsPath = \"jsButtonSets/\";\n\n $(ln).trigger(\"DebuggerLogEvent\", \"ButtonSetsMatcher.contructor: mediaRaw: \" + this.mediaRaw);\n $(ln).trigger(\"DebuggerLogEvent\", \"ButtonSetsMatcher.contructor: mediaPath: \" + this.mediaPath);\n $(ln).trigger(\"DebuggerLogEvent\", \"ButtonSetsMatcher.contructor: mediaPathJs: \" + this.mediaPathJs);\n}\n\nln.objects.common.ButtonSetsMatcher.prototype.getJsMedia = function()\n{\n // For any specific media ID we can intercept the output and provide a different output if we want to.\n // For example in instances where a button set not yet has a JS implementation we can provide a current working\n // JS implementation so that something loads, rather than the default button set\n\n var retVal = this.buttonSetsPath;\n\n retVal += this.mediaPathJs;\n\n return retVal;\n}\n\n","ln.extend(ln, \"ln.shell\");\n\nln.shell.CourseMenu = function(jQueryContainer, shellRef)\n{\n this.domRef = jQueryContainer;\n this.shell = shellRef;\n\n this.animDuration = 400;\n this.isReset = false;\n this.askToResume = -1;\n\n if (Modernizr.touchevents)\n {\n this.animDuration = 0;\n }\n\n $(ln).bind(\"ShellResizeEvent\", {self: this}, function(e, screen_w_diff, screen_h_diff, aux_screen_w, aux_screen_h, screen_w, screen_h)\n {\n e.data.self.resizer(screen_w_diff, screen_h_diff, aux_screen_w, aux_screen_h, screen_w, screen_h);\n });\n\n this.unitsOnly = false;\n this.numModules = this.shell.lesson_super_sections_names.length;\n // if (this.numModules <= 1)\n if (this.shell.numSuperSections === 0)\n {\n this.unitsOnly = true;\n }\n\n this.domRef.append(\"
\");\n this.domRef.append(\"
\");\n this.domRef.append(\"
\");\n this.domRef.append(\"
\" + ln.lang.bundle.item_status_notAttempted + \"
\" + ln.lang.bundle.item_status_unfinished + \"
\" + ln.lang.bundle.item_status_completed + \"
\" + ln.lang.bundle.item_status_passed + \"
\" + ln.lang.bundle.item_status_failed + \"
\");\n this.domRef.children(\".legend\").append(\"
\");\n this.domRef.append(\"
\");\n this.domRef.append(\"
\");\n\n this.domRef.css(\"background-color\", this.shell.course_menu_theme_bg_col);\n\n this.divBackground = this.domRef.find(\".backgroundImageContainer\");\n this.divModules = this.domRef.find(\".modulesContainer\");\n this.divUnits = this.domRef.find(\".unitsContainer\");\n this.divLegend = this.domRef.find(\".legend\");\n\n this.divLaunchUnit = this.domRef.find(\".launchDivPopup\");\n this.divLaunchUnit.css(\"display\", \"none\");\n this.divLaunchUnitContents = null;\n\n this.divResumePopup = this.domRef.find(\".resumePopup\");\n this.divResumePopup.css(\"display\", \"none\");\n this.divResumePopupContents = null;\n\n this.domRef.css(\"background-color\", \"#FFFFFF\");\n\n if (this.shell.course_menu_theme_bg_col)\n {\n $(ln).trigger(\"DebuggerLogEvent\", \"ln.shell.CourseMenu.constructor: course_menu_theme_bg_col: \" + this.shell.course_menu_theme_bg_col);\n this.domRef.css(\"background-color\", this.shell.course_menu_theme_bg_col);\n } else\n {\n $(ln).trigger(\"DebuggerLogEvent\", \"ln.shell.CourseMenu.constructor: No Course Menu background colour set, set it to a default value\");\n this.domRef.css(\"background-color\", \"#FFFFFF\");\n }\n\n if (this.shell.course_menu_theme_bg_img)\n {\n $(ln).trigger(\"DebuggerLogEvent\", \"ln.shell.CourseMenu.constructor: course_menu_theme_bg_img: \" + this.shell.course_menu_theme_bg_img);\n this.divBackground.css(\"background-image\", \"url(\" + this.shell.course_menu_theme_bg_img + \")\");\n } else\n {\n $(ln).trigger(\"DebuggerLogEvent\", \"ln.shell.CourseMenu.constructor: No background image, hide DIV\");\n this.divBackground.css(\"display\", \"none\");\n }\n\n if (this.shell.course_menu_theme_bg_img_alpha)\n {\n $(ln).trigger(\"DebuggerLogEvent\", \"ln.shell.CourseMenu.constructor: course_menu_theme_bg_img_alpha: \" + this.shell.course_menu_theme_bg_img_alpha);\n this.divBackground.css(\"-ms-filter\", \"progid:DXImageTransform.Microsoft.Alpha(Opacity=\" + this.shell.course_menu_theme_bg_img_alpha + \")\");\n this.divBackground.css(\"filter\", \"alpha(opacity=\" + this.shell.course_menu_theme_bg_img_alpha + \")\");\n this.divBackground.css(\"opacity\", this.shell.course_menu_theme_bg_img_alpha / 100);\n } else\n {\n $(ln).trigger(\"DebuggerLogEvent\", \"ln.shell.CourseMenu.constructor: No background image Alpha set, make it 100% visible\");\n this.divBackground.css(\"-ms-filter\", \"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)\");\n this.divBackground.css(\"filter\", \"alpha(opacity=100)\");\n this.divBackground.css(\"opacity\", \"1\");\n }\n\n this.themeCSS = \"\";\n if (this.shell.course_menu_theme_section_bg_fill_default_col)\n {\n this.themeCSS += \"#ln_shell_course_menu .buttonExpanding { filter: none; background: \" + this.shell.course_menu_theme_section_bg_fill_default_col + \"; }\";\n }\n\n if (this.shell.course_menu_theme_section_bg_fill_rollover_col)\n {\n this.themeCSS += \"#ln_shell_course_menu .buttonExpanding:hover { filter: none; background: \" + this.shell.course_menu_theme_section_bg_fill_rollover_col + \"; }\";\n }\n\n if (this.shell.course_menu_theme_section_bg_border_default_col)\n {\n this.themeCSS += \"#ln_shell_course_menu .buttonExpanding { border: 2px solid \" + this.shell.course_menu_theme_section_bg_border_default_col + \"; }\";\n }\n\n if (this.shell.course_menu_theme_section_bg_border_rollover_col)\n {\n this.themeCSS += \"#ln_shell_course_menu .buttonExpanding:hover { border: 2px solid \" + this.shell.course_menu_theme_section_bg_border_rollover_col + \"; }\";\n }\n\n if (this.shell.course_menu_theme_section_txt_default_col)\n {\n this.themeCSS += \"#ln_shell_course_menu .buttonExpanding { color: \" + this.shell.course_menu_theme_section_txt_default_col + \"; }\";\n }\n\n if (this.shell.course_menu_theme_section_txt_rollover_col)\n {\n this.themeCSS += \"#ln_shell_course_menu .buttonExpanding:hover { color: \" + this.shell.course_menu_theme_section_txt_rollover_col + \"; }\";\n }\n\n if (this.themeCSS !== \"\" || this.themeCSS.length !== 0)\n {\n $(\"head\").append(\"