function AskTheExpertEntries(){function e(e){var t=Util.nullValue(e,"");return s.selectItems(AskTheExpertEntryList.SORT_BY_ID,new AskTheExpertEntryListFilter({search:t}))}function t(e){var t=Util.nullValue(e,""),n=s.selectItems(AskTheExpertEntryList.SORT_BY_ID,new AskTheExpertEntryListFilter({ids:t}));return Util.isSet(n.moveFirst())||(n=s.selectItems(AskTheExpertEntryList.SORT_BY_ID,new AskTheExpertEntryListFilter({selectAll:!0}))),n}function n(e){return s.getItemById(e)}function r(){s=i()}function i(){var e=core.manifest["ask-the-expert"],t=new AskTheExpertEntryList;if(null!=e){var n=e.entries;if(null!=n){var r=null;for(var i in n)n.hasOwnProperty(i)&&(r=$.extend({id:i},n[i]),ObjectUtil.is(r.answer,Array)&&(r.answer=r.answer.join("")),r.question=StringUtil.parseVars(r.question),r.answer=StringUtil.parseVars(r.answer),r.visible=a(r.visible),t.addItem(new AskTheExpertEntryListItem(r)))}}return t}function a(e){if(Util.isSet(e))switch(e.constructor){case Boolean:return e;case String:return""===e||StringUtil.evaluate(StringUtil.parseVars(e))===!0}return!0}var o=this;Object.defineProperty(o,"getEntries",{value:e}),Object.defineProperty(o,"getEntriesByIds",{value:t}),Object.defineProperty(o,"getEntryListItem",{value:n}),Object.defineProperty(o,"init",{value:r});var s=null}function AskTheExpertEntryListFilter(e){function t(e){var t=function(t){return t===e.id};if(e.visible&&!r){if(""!==i){var n=Search.find(i.toLowerCase(),e.keywords.toLowerCase()),o=e.question.toLowerCase().indexOf(i.toLowerCase()),s=-1!==o;return n||s}if(a.length>0)return a.some(t)}return e.visible}Object.defineProperty(this,"select",{value:t});var n=Util.nullValue(e,{}),r=Util.nullValue(n.selectAll,!1),i=Util.nullValue(n.search,""),a=Util.isSet(n.ids)?n.ids.split(","):[]}function AskTheExpertEntryListItem(e){function t(){return s}function n(e){s=e}function r(){return l}function i(){return c}function a(){return u}var o=this;ListItem.apply(o,[e.id]),Object.defineProperty(o,"answer",{enumerable:!0,get:t,set:n});var s=Util.nullValue(e.answer,"");Object.defineProperty(o,"keywords",{enumerable:!0,get:r});var l=Util.nullValue(e.keywords,"");Object.defineProperty(o,"question",{enumerable:!0,get:i});var c=Util.nullValue(e.question,"");Object.defineProperty(o,"visible",{enumerable:!0,get:a});var u=Util.nullValue(e.visible,!0)}function AskTheExpertEntryList(){function e(){i.clear(),a=[]}function t(e,t){return t==AskTheExpertEntryList.SORT_BY_QUESTION&&e>=0&&e<r.count?r.items[a[e]]:i.getItemByIndex(e,t)}function n(e){e==AskTheExpertEntryList.SORT_BY_QUESTION?a=ArrayUtil.sortItemsOn(r.items,"question",ArrayUtil.CASE_INSENSITIVE|ArrayUtil.RETURN_INDEXED_ARRAY):i.sort(e)}var r=this,i={};List.apply(r,arguments),i.clear=r.clear,Object.defineProperty(r,"clear",{value:e}),i.getItemByIndex=r.getItemByIndex,Object.defineProperty(r,"getItemByIndex",{value:t}),i.sort=r.sort,Object.defineProperty(r,"sort",{value:n});var a=[]}function EventDispatcher(){function e(e,t){Util.isSet(a[e])||(a[e]=[]),-1===a[e].indexOf(t)&&a[e].push(t)}function t(e){var t=a[e.type];if(Util.isSet(t)){e.target=i;for(var n=t.length,r=0;n>r;r++)t[r](e)}}function n(e,t){var n=a[e];return Util.isSet(n)&&-1!==n.indexOf(t)?!0:!1}function r(e,t){var n=a[e];if(Util.isSet(n))if(Util.isSet(t)){var r=n.indexOf(t);-1!==r&&n.splice(r,1)}else a[e]=null}var i=this,a={};Object.defineProperty(i,"addEventListener",{value:e}),Object.defineProperty(i,"dispatchEvent",{value:t}),Object.defineProperty(i,"hasEventListener",{value:n}),Object.defineProperty(i,"removeEventListener",{value:r})}function Alignment(e,t){function n(){return u}function r(e){u=s(e)}function i(){return d}function a(e){d=l(e)}function o(e){var t=Util.nullValue(e,"");if(""!=t){var n=t.split("-");a(n[0]),r(n[n.length>1?1:0])}}function s(e){if(null!=e){var t=e.toLowerCase();switch(t){case Align.CENTER:case Align.RIGHT:return t}}return Align.LEFT}function l(e){if(null!=e){var t=e.toLowerCase();switch(t){case Align.CENTER:case Align.BOTTOM:return t}}return Align.TOP}var c=this;Object.defineProperty(c,"hAlign",{get:n,set:r});var u=s(t);Object.defineProperty(c,"vAlign",{get:i,set:a});var d=l(e);Object.defineProperty(c,"setAlignment",{value:o})}function Point(e,t){function n(){return c}function r(e){c=e}function i(){return u}function a(e){u=e}function o(e){return Math.sqrt(Math.pow(e.x-c,2)+Math.pow(e.y-u,2))}function s(e){c+=Util.nullValue(e.x,0),u+=Util.nullValue(e.y,0)}var l=this;Object.defineProperty(l,"x",{get:n,set:r});var c=Util.nullValue(e,0);Object.defineProperty(l,"y",{get:i,set:a});var u=Util.nullValue(t,0);Object.defineProperty(l,"distance",{value:o}),Object.defineProperty(l,"offset",{value:s})}function Rectangle(e,t,n,r){function i(){return C}function a(e){C=e}function o(){return P}function s(e){P=e}function l(){return I}function c(e){I=e}function u(){return A}function d(e){A=e}function f(){return N}function p(e){N=e,a(N),c(m_nRight-N)}function g(){return m_nRight}function E(e){m_nRight=e,c(m_nRight-N)}function m(){return m_nTop}function v(e){m_nTop=e,s(m_nTop),d(m_nBottom-m_nTop)}function S(){return m_nBottom}function h(e){m_nBottom=e,d(m_nBottom-m_nTop)}function b(){return new Point(N,m_nTop)}function O(e){v(e.top),p(e.left)}function y(){return new Point(m_nRight,m_nBottom)}function T(e){h(e.bottom),E(e.right)}var U=this;Object.defineProperty(U,"x",{get:i,set:a});var C=Util.nullValue(e,0);Object.defineProperty(U,"y",{get:o,set:s});var P=Util.nullValue(t,0);Object.defineProperty(U,"width",{get:l,set:c});var I=Util.nullValue(n,0);Object.defineProperty(U,"height",{get:u,set:d});var A=Util.nullValue(r,0);Object.defineProperty(U,"left",{get:f,set:p});var N=C;Object.defineProperty(U,"right",{get:g,set:E}),m_nRight=C+I,Object.defineProperty(U,"top",{get:m,set:h}),m_nTop=P,Object.defineProperty(U,"bottom",{get:S,set:h}),m_nBottom=P+A,Object.defineProperty(U,"topLeft",{get:b,set:O}),Object.defineProperty(U,"bottomRight",{get:y,set:T})}function GlossaryEntries(){function e(e){return a.selectItems(GlossaryEntryList.SORT_BY_TERM,new GlossaryEntryListFilter({index:e}))}function t(e){return a.getItemById(e)}function n(){a=r(),a.sort(GlossaryEntryList.SORT_BY_TERM)}function r(){var e=core.manifest.glossary,t=new GlossaryEntryList;if(null!=e){var n=e.entries;if(null!=n){var r=null;for(var a in n)n.hasOwnProperty(a)&&(r=$.extend({id:a},n[a]),ObjectUtil.is(r.definition,Array)&&(r.definition=r.definition.join("")),r.term=StringUtil.parseVars(r.term),r.definition=StringUtil.parseVars(r.definition),r.visible=i(r.visible),t.addItem(new GlossaryEntryListItem(r)))}}return t}function i(e){if(Util.isSet(e))switch(e.constructor){case Boolean:return e;case String:return""===e||StringUtil.evaluate(StringUtil.parseVars(e))===!0}return!0}Object.defineProperty(this,"getEntries",{value:e}),Object.defineProperty(this,"getEntryListItem",{value:t}),Object.defineProperty(this,"init",{value:n});var a=null}function GlossaryEntryListFilter(e){function t(e){if(e.visible&&""!==n){var t=e.term.charAt(0);return"#"===n?!isNaN(Number(t)):t.toLowerCase()===n}return e.visible}Object.defineProperty(this,"select",{value:t});var n=ObjectUtil.is(e.index,String)?e.index.toLowerCase():""}function GlossaryEntryListItem(e){function t(){return s}function n(e){s=e}function r(){return l}function i(){return c}var a=this,o={};ListItem.apply(o,[e.id]),ListItem.apply(a,[e.id]),Object.defineProperty(a,"definition",{get:t,set:n});var s=Util.nullValue(e.definition,"");Object.defineProperty(a,"term",{get:r});var l=Util.nullValue(e.term,"");Object.defineProperty(a,"visible",{enumerable:!0,get:i});var c=Util.nullValue(e.visible,!0)}function GlossaryEntryList(){function e(){i.clear(),a=[]}function t(e,t){return e>=0&&e<r.count?t===GlossaryEntryList.SORT_BY_TERM?r.items[a[e]]:r.items[e]:i.getItemByIndex(e,t)}function n(e){e===GlossaryEntryList.SORT_BY_TERM?a=ArrayUtil.sortItemsOn(r.items,"term",ArrayUtil.CASE_INSENSITIVE|ArrayUtil.RETURN_INDEXED_ARRAY,ArrayUtil.orderedLocale):i.sort(e)}var r=this,i={};List.apply(r,arguments),i.clear=r.clear,Object.defineProperty(r,"clear",{value:e}),i.getItemByIndex=r.getItemByIndex,Object.defineProperty(r,"getItemByIndex",{value:t}),i.sort=r.sort,Object.defineProperty(r,"sort",{value:n});var a=[]}function LmsCourseData(e){function t(){return l}function n(e){l=e}function r(){return o(l)}function i(e){l=a(e)}function a(e){return StringUtil.parseKVP(e)}function o(e){return ObjectUtil.toKVP(e)}var s=this;Object.defineProperty(s,"data",{get:t,set:n});var l={};Object.defineProperty(s,"serializedData",{get:r,set:i}),i(e)}function LmsNone(){function e(){return!1}function t(){return I}function n(){return A}function r(){return""}function i(){return!1}function a(){return null}function o(){return 0}function s(){return""}function l(){return""}function c(){return""}function u(e){}function d(){return ScormLessonMode.NORMAL}function f(){return ScormLessonStatus.NOT_ATTEMPTED}function p(){return""}function g(){return""}function E(){return""}function m(){return""}function v(){return""}function S(){return!1}function h(){return""}function b(){return N}function O(e){N=e}function y(){return""}function T(){}function U(){return core.course.assessment.addEventListener(AssessmentEvent.COMPLETED,C),!0}function C(e){var t=e.target;I=t.date,A=t.score}var P=this;EventDispatcher.apply(P,[]),Object.defineProperty(P,"active",{get:e}),Object.defineProperty(P,"assessmentDate",{get:t});var I=null;Object.defineProperty(P,"assessmentScore",{get:n});var A=-1;Object.defineProperty(P,"audioEnabled",{get:r}),Object.defineProperty(P,"completed",{get:i}),Object.defineProperty(P,"courseData",{get:a}),Object.defineProperty(P,"dataLocale",{get:o}),Object.defineProperty(P,"focusOutline",{get:s}),Object.defineProperty(P,"highContrast",{get:l}),Object.defineProperty(P,"lessonLocation",{get:c,set:u}),Object.defineProperty(P,"lessonMode",{get:d}),Object.defineProperty(P,"lessonStatus",{get:f}),Object.defineProperty(P,"policyAccepted",{get:p}),Object.defineProperty(P,"serializedBookmarkedPages",{get:g}),Object.defineProperty(P,"serializedCompletedPages",{get:E}),Object.defineProperty(P,"serializedRecommendedPages",{get:m}),Object.defineProperty(P,"serializedSettings",{get:v}),Object.defineProperty(P,"started",{get:S}),Object.defineProperty(P,"studentId",{get:h}),Object.defineProperty(P,"studentName",{get:b,set:O});var N="";Object.defineProperty(P,"videoSubtitles",{get:y}),Object.defineProperty(P,"finish",{value:T}),Object.defineProperty(P,"init",{value:U})}function LmsScorm12(e){function t(){return ue.active}function n(){return X}function r(){return W}function i(){return fe.audioEnabled}function a(){return Q}function o(){return ae.data}function s(){return ue.dataLocale}function l(){return fe.focusOutline}function c(){return fe.highContrast}function u(){return z}function d(e){z=e}function f(){return Z}function p(){return se.lessonStatus}function g(){return pe.policyAccepted}function E(){return J}function m(){return ee}function v(){return te}function S(){return ne}function h(){return re}function b(){return ie}function O(){return fe.videoSubtitles}function y(){B(),ue.finish()}function T(){le=core.config["override-completion-score"];var t=Util.nullValue(core.config["scorm-version"],"1.2");if(ue=new LmsScormProxy(e,this),ue.init(t)){if(ce=1,pe=new ScormSuspendData(N(LmsScorm12.SUSPEND_DATA)),P()){k(),de=new ScormSessionTime12,re=N(LmsScorm12.STUDENT_ID),ie=N(LmsScorm12.STUDENT_NAME),z=N(LmsScorm12.LESSON_LOCATION),Z=N(LmsScorm12.LESSON_MODE),oe=new ScormEntry(N(LmsScorm12.ENTRY)),se=new ScormLessonStatus(N(LmsScorm12.LESSON_STATUS)),J=Lms.inflate(pe.bookmarkedPages),ee=Lms.inflate(pe.completedPages),te=Lms.inflate(pe.recommendedPages),fe=new LmsSettings(pe.settings),ae=new LmsCourseData(pe.courseData),Q=se.completed;var n=$("body");return n.on(PageEvent.BOOKMARK,G),n.on(PageEvent.START,H),core.course.restoreState(),core.addEventListener(CoreEvent.DATA,Y),core.addEventListener(CoreEvent.SETTING,K),core.course.assessment.addEventListener(AssessmentEvent.COMPLETED,F),ce=2,q.dispatchEvent({type:LmsEvent.INITIALIZATION_SUCCEEDED}),!0}q.dispatchEvent({type:LmsEvent.INCOMPATIBLE_DATA})}else q.dispatchEvent({type:LmsEvent.INITIALIZATION_FAILED});return!1}function U(e,t){var n=function(){if(!core.config["has-assessment"])return ScormLessonStatus.COMPLETED;if(Util.isSet(t))if(core.config["force-scorm-quiz-status"]){if(core.course.assessment.passed)return ScormLessonStatus.PASSED;if(!core.config["enforce-pass-completion"])return ScormLessonStatus.FAILED}else if(!core.config["enforce-pass-completion"]||core.course.assessment.passed)return ScormLessonStatus.COMPLETED;return ScormLessonStatus.INCOMPLETE};return!core.config["enforce-page-completion"]||e?n():ScormLessonStatus.INCOMPLETE}function C(){var e=ue.getErrorCode();I(e)&&q.dispatchEvent({type:LmsEvent.UNEXPECTED_ERROR,errorCode:ScormErrorCode12.toString(e)})}function P(){var e=A();if(e){var t=core.course.root.version;StringUtil.isEmpty(pe.compatibilityVersion)?pe.compatibilityVersion=t.toString():e=t.isSameAs(new Version(pe.compatibilityVersion))}return e}function I(e){switch(e){case ScormErrorCode12.NO_ERROR:case ScormErrorCode12.NOT_IMPLEMENTED:return!1}return!0}function A(){var e=pe.framework===Core.FRAMEWORK;return e||(""===pe.sessionId||pe.sessionId.indexOf(",")<0)&&(""===pe.completedPages||pe.completedPages.indexOf(".")<0)&&(pe.framework=Core.FRAMEWORK,e=!0),e}function N(e){var t=ue.getValue(e);return StringUtil.isEmpty(t)&&C(),t}function L(){pe.timeStamp=(new Date).getTime().toString(Lms.COMPRESSION_RADIX),j(),w(),ue.save()||q.dispatchEvent({type:LmsEvent.UNEXPECTED_ERROR,errorCode:ErrorCode.LMS_SAVE_FAILED})}function _(e,t){ue.setValue(e,t)||C()}function D(){_(LmsScorm12.LESSON_LOCATION,z)}function R(){_(LmsScorm12.LESSON_STATUS,se.lessonStatus)}function M(){_(LmsScorm12.SCORE_MAX,String(Assessment.MAXIMUM_SCORE))}function x(){_(LmsScorm12.SCORE_MIN,String(Assessment.MINIMUM_SCORE))}function V(){var e=W;le&&(e=core.course.assessment.passed?Assessment.MAXIMUM_SCORE:-1),_(LmsScorm12.SCORE_RAW,e>-1?String(e):"")}function w(){_(LmsScorm12.SESSION_TIME,de.duration)}function j(){_(LmsScorm12.SUSPEND_DATA,pe.serializedData)}function B(){if(2===ce){var e=function(e){e.isPageNode&&(ee+=BooleanUtil.toBinStr(e.completed),e.mandatory&&(Q=Q&&e.completed))},t=core.course.currentPage;z=Util.isSet(t)&&t.allowBookmark?t.id:"course-menu",ee="",Q=!0,core.course.root.forEachChild(e),pe.completedPages=Lms.deflate(ee),se.lessonStatus=U(Q,X),D(),j(),R(),L()}}function k(){X=StringUtil.toDate(pe.assessmentDate),core.course.assessment.date=X;var e=N(LmsScorm12.SCORE_RAW),t=!1;StringUtil.isEmpty(pe.assessmentScore)?pe.assessmentScore=e:t=le?parseInt(e)<Assessment.MAXIMUM_SCORE:pe.assessmentScore!==e,W=StringUtil.isEmpty(pe.assessmentScore)?-1:parseInt(pe.assessmentScore),core.course.assessment.score=W,t&&V()}function F(e){var t=function(e){e.isPageNode&&(te+=BooleanUtil.toBinStr(e.recommended))},n=e.target;X=n.date,W=n.score,te="",core.course.root.forEachChild(t),pe.recommendedPages=Lms.deflate(te),pe.assessmentDate=DateUtil.toString(X),pe.assessmentScore=String(W),se.lessonStatus=U(Q,X),j(),R(),M(),x(),V(),L()}function G(e){var t=function(e){e.isPageNode&&(J+=BooleanUtil.toBinStr(e.bookmarked))};J="",core.course.root.forEachChild(t),pe.bookmarkedPages=Lms.deflate(J),j(),L()}function H(){B()}function Y(e){"policy-accepted"===e.property?pe.policyAccepted=BooleanUtil.toBinStr(e.value):(ae.data[e.property]=e.value,pe.courseData=ae.serializedData),j(),L()}function K(e){"audio-enabled"===e.property?fe.audioEnabled=BooleanUtil.toBinStr(e.value):"focus-outline"===e.property?fe.focusOutline=BooleanUtil.toBinStr(e.value):"high-contrast"===e.property?fe.highContrast=e.value.toString():"video-subtitles"===e.property&&(fe.videoSubtitles=BooleanUtil.toBinStr(e.value)),pe.settings=fe.serializedData,j(),L()}var q=this;EventDispatcher.apply(q,[]),Object.defineProperty(q,"active",{get:t}),Object.defineProperty(q,"assessmentDate",{get:n});var X=null;Object.defineProperty(q,"assessmentScore",{get:r});var W=-1;Object.defineProperty(q,"audioEnabled",{get:i}),Object.defineProperty(q,"completed",{get:a});var Q=!1;Object.defineProperty(q,"courseData",{get:o}),Object.defineProperty(q,"dataLocale",{get:s}),Object.defineProperty(q,"focusOutline",{get:l}),Object.defineProperty(q,"highContrast",{get:c}),Object.defineProperty(q,"lessonLocation",{get:u,set:d});var z="";Object.defineProperty(q,"lessonMode",{get:f});var Z=ScormLessonMode.NORMAL;Object.defineProperty(q,"lessonStatus",{get:p}),Object.defineProperty(q,"policyAccepted",{get:g}),Object.defineProperty(q,"serializedBookmarkedPages",{get:E});var J="";Object.defineProperty(q,"serializedCompletedPages",{get:m});var ee="";Object.defineProperty(q,"serializedRecommendedPages",{get:v});var te="";Object.defineProperty(q,"serializedSettings",{get:S});var ne="";Object.defineProperty(q,"studentId",{get:h});var re="";Object.defineProperty(q,"studentName",{get:b});var ie="";Object.defineProperty(q,"videoSubtitles",{get:O}),Object.defineProperty(q,"finish",{value:y}),Object.defineProperty(q,"init",{value:T});var ae=null,oe=null,se=null,le=!1,ce=0,ue=null,de=null,fe=null,pe=null}function LmsScorm2004(e){function t(){return fe.active}function n(){return Q}function r(){return z}function i(){return ge.audioEnabled}function a(){return Z}function o(){return le.data}function s(){return fe.dataLocale}function l(){return ge.focusOutline}function c(){return ge.highContrast}function u(){return J}function d(e){J=e}function f(){return ee}function p(){return se.completionStatus}function g(){return me.policyAccepted}function E(){return te}function m(){return ne}function v(){return re}function S(){return ie}function h(){return ae}function b(){return oe}function O(){return ge.videoSubtitles}function y(){F(),fe.finish()}function T(){ue=core.config["override-completion-score"];var t=Util.nullValue(core.config["scorm-version"],"1.2");if(fe=new LmsScormProxy(e,this),fe.init(t)){if(de=1,ce=new ScormEntry(L(LmsScorm2004.ENTRY)),ce.entry===ScormEntry.AB_INITIO&&(D(LmsScorm2004.LESSON_LOCATION,""),D(LmsScorm2004.SCORE_RAW,String(Assessment.MINIMUM_SCORE)),D(LmsScorm2004.SUSPEND_DATA,"")),me=new ScormSuspendData(L(LmsScorm2004.SUSPEND_DATA)),I()){G(),pe=new ScormSessionTime2004,ae=L(LmsScorm2004.STUDENT_ID),oe=L(LmsScorm2004.STUDENT_NAME),J=L(LmsScorm2004.LESSON_LOCATION),ee=L(LmsScorm2004.LESSON_MODE),se=new ScormCompletionStatus(L(LmsScorm2004.COMPLETION_STATUS)),Ee=new ScormCompletionStatus(L(LmsScorm2004.SUCCESS_STATUS)),te=Lms.inflate(me.bookmarkedPages),ne=Lms.inflate(me.completedPages),re=Lms.inflate(me.recommendedPages),ge=new LmsSettings(me.settings),le=new LmsCourseData(me.courseData),Z=se.completed;var n=$("body");return n.on(PageEvent.BOOKMARK,Y),n.on(PageEvent.START,K),core.course.restoreState(),core.addEventListener(CoreEvent.DATA,q),core.addEventListener(CoreEvent.SETTING,X),core.course.assessment.addEventListener(AssessmentEvent.COMPLETED,H),de=2,W.dispatchEvent({type:LmsEvent.INITIALIZATION_SUCCEEDED}),!0}W.dispatchEvent({type:LmsEvent.INCOMPATIBLE_DATA})}else W.dispatchEvent({type:LmsEvent.INITIALIZATION_FAILED});return!1}function U(e,t){var n=function(){return core.config["has-assessment"]&&(!Util.isSet(t)||core.config["enforce-pass-completion"]&&!core.course.assessment.passed)?ScormCompletionStatus.INCOMPLETE:ScormCompletionStatus.COMPLETED};return!core.config["enforce-page-completion"]||e?n():ScormCompletionStatus.INCOMPLETE}function C(e,t){return core.config["has-assessment"]&&Util.isSet(t)?core.course.assessment.passed?ScormSuccessStatus.PASSED:ScormSuccessStatus.FAILED:ScormSuccessStatus.UNKNOWN}function P(){var e=fe.getErrorCode();A(e)&&W.dispatchEvent({type:LmsEvent.UNEXPECTED_ERROR,errorCode:ScormErrorCode2004.toString(e)})}function I(){var e=N();if(e){var t=core.course.root.version;StringUtil.isEmpty(me.compatibilityVersion)?me.compatibilityVersion=t.toString():e=t.isSameAs(new Version(me.compatibilityVersion))}return e}function A(e){switch(e){case ScormErrorCode2004.NO_ERROR:case ScormErrorCode2004.NOT_IMPLEMENTED:case ScormErrorCode2004.VALUE_NOT_INITIALIZED:return!1}return!0}function N(){var e=me.framework===Core.FRAMEWORK;return e||(""===me.sessionId||me.sessionId.indexOf(",")<0)&&(""===me.completedPages||me.completedPages.indexOf(".")<0)&&(me.framework=Core.FRAMEWORK,e=!0),e}function L(e){var t=fe.getValue(e);return StringUtil.isEmpty(t)&&P(),t}function _(){me.timeStamp=(new Date).getTime().toString(Lms.COMPRESSION_RADIX),k(),j(),fe.save()||W.dispatchEvent({type:LmsEvent.UNEXPECTED_ERROR,errorCode:ErrorCode.LMS_SAVE_FAILED})}function D(e,t){fe.setValue(e,t)||P()}function R(){D(LmsScorm2004.COMPLETION_STATUS,se.completionStatus)}function M(){D(LmsScorm2004.LESSON_LOCATION,J)}function x(){D(LmsScorm2004.SCORE_MAX,String(Assessment.MAXIMUM_SCORE))}function V(){D(LmsScorm2004.SCORE_MIN,String(Assessment.MINIMUM_SCORE))}function w(){var e=z;ue&&(e=core.course.assessment.passed?Assessment.MAXIMUM_SCORE:-1),D(LmsScorm2004.SCORE_RAW,e>-1?String(e):"")}function j(){D(LmsScorm2004.SESSION_TIME,pe.duration)}function B(){D(LmsScorm2004.SUCCESS_STATUS,Ee.successStatus)}function k(){D(LmsScorm2004.SUSPEND_DATA,me.serializedData)}function F(){if(2===de){var e=function(e){e.isPageNode&&(ne+=BooleanUtil.toBinStr(e.completed),e.mandatory&&(Z=Z&&e.completed))},t=core.course.currentPage;J=Util.isSet(t)&&t.allowBookmark?t.id:"course-menu",ne="",Z=!0,core.course.root.forEachChild(e),me.completedPages=Lms.deflate(ne),se.completionStatus=U(Z,Q),M(),k(),R(),_()}}function G(){Q=StringUtil.toDate(me.assessmentDate),core.course.assessment.date=Q;var e=L(LmsScorm2004.SCORE_RAW),t=!1;StringUtil.isEmpty(me.assessmentScore)?me.assessmentScore=e:t=ue?parseInt(e)<Assessment.MAXIMUM_SCORE:me.assessmentScore!==e,z=StringUtil.isEmpty(me.assessmentScore)?-1:parseInt(me.assessmentScore),core.course.assessment.score=z,t&&w()}function H(e){var t=function(e){e.isPageNode&&(re+=BooleanUtil.toBinStr(e.recommended))},n=e.target;Q=n.date,z=n.score,re="",core.course.root.forEachChild(t),me.recommendedPages=Lms.deflate(re),me.assessmentDate=DateUtil.toString(Q),me.assessmentScore=String(z),se.completionStatus=U(Z,Q),Ee.successStatus=C(Z,Q),k(),R(),B(),x(),V(),w(),_()}function Y(e){var t=function(e){e.isPageNode&&(te+=BooleanUtil.toBinStr(e.bookmarked))};te="",core.course.root.forEachChild(t),me.bookmarkedPages=Lms.deflate(te),k(),_()}function K(){F()}function q(e){"policy-accepted"===e.property?me.policyAccepted=BooleanUtil.toBinStr(e.value):(le.data[e.property]=e.value,me.courseData=le.serializedData),k(),_()}function X(e){"audio-enabled"===e.property?ge.audioEnabled=BooleanUtil.toBinStr(e.value):"focus-outline"===e.property?ge.focusOutline=BooleanUtil.toBinStr(e.value):"high-contrast"===e.property?ge.highContrast=e.value.toString():"video-subtitles"===e.property&&(ge.videoSubtitles=BooleanUtil.toBinStr(e.value)),me.settings=ge.serializedData,k(),_()}var W=this;EventDispatcher.apply(W,[]),Object.defineProperty(W,"active",{get:t}),Object.defineProperty(W,"assessmentDate",{get:n});var Q=null;Object.defineProperty(W,"assessmentScore",{get:r});var z=-1;Object.defineProperty(W,"audioEnabled",{get:i}),Object.defineProperty(W,"completed",{get:a});var Z=!1;Object.defineProperty(W,"courseData",{get:o}),Object.defineProperty(W,"dataLocale",{get:s}),Object.defineProperty(W,"focusOutline",{get:l}),Object.defineProperty(W,"highContrast",{get:c}),Object.defineProperty(W,"lessonLocation",{get:u,set:d});var J="";Object.defineProperty(W,"lessonMode",{get:f});var ee=ScormLessonMode.NORMAL;Object.defineProperty(W,"lessonStatus",{get:p}),Object.defineProperty(W,"policyAccepted",{get:g}),Object.defineProperty(W,"serializedBookmarkedPages",{get:E});var te="";Object.defineProperty(W,"serializedCompletedPages",{get:m});var ne="";Object.defineProperty(W,"serializedRecommendedPages",{get:v});var re="";Object.defineProperty(W,"serializedSettings",{get:S});var ie="";Object.defineProperty(W,"studentId",{get:h});var ae="";Object.defineProperty(W,"studentName",{get:b});var oe="";Object.defineProperty(W,"videoSubtitles",{get:O}),Object.defineProperty(W,"finish",{value:y}),Object.defineProperty(W,"init",{value:T});var se=null,le=null,ce=null,ue=!1,de=0,fe=null,pe=null,ge=null,Ee=null,me=null}function LmsScormProxy(e,t){function n(){var e=m?E.active:!1;return v?pipwerks.SCORM.connection.isActive:e}function r(){return g}function i(){v&&pipwerks.SCORM.quit()}function a(){return v?pipwerks.SCORM.debug.getCode():0}function o(e){var t=m?Util.nullValue(b[e],""):"";return v?pipwerks.SCORM.get(e):t}function s(e){pipwerks.SCORM.version=e;var n=(g&LmsScormProxy.LOCAL)>0;m=n&&E.init();var r=(g&LmsScormProxy.REMOTE)>0;v=r&&pipwerks.SCORM.init();var i=!(v!==r||m!==n);if(i&&m)if(S=f(),h=u(S),v){var a="_"+pipwerks.SCORM.get(t.constructor.STUDENT_ID),o=new ScormSuspendData(pipwerks.SCORM.get(t.constructor.SUSPEND_DATA)),s=h[a];b=Util.nullValue(d(s,o.sessionId,o.timeStamp),{}),s={},o.sessionId=(new Date).getTime().toString(Lms.COMPRESSION_RADIX),s["_"+o.sessionId]=b,h[a]=s,c(t.constructor.SUSPEND_DATA,o.serializedData),l()}else b=h;return i}function l(){var e=m&&E.setValue(S,JSON.stringify(h));return v?pipwerks.SCORM.save():e}function c(e,t){return m&&(b[e]=t),v?pipwerks.SCORM.set(e,t):!0}function u(e){var t=StringUtil.isEmpty(e)?"":E.getValue(e);return StringUtil.isEmpty(t)?{}:JSON.parse(t)}function d(e,n,r){if(Util.isSet(e)&&!StringUtil.isEmpty(n)&&!StringUtil.isEmpty(r)){var i=e["_"+n];if(Util.isSet(i)){var a=new ScormSuspendData(i[t.constructor.SUSPEND_DATA]),o=parseInt(a.timeStamp,Lms.COMPRESSION_RADIX),s=parseInt(r,Lms.COMPRESSION_RADIX);if(o>=s){if(o>s)for(var l in i)i.hasOwnProperty(l)&&pipwerks.SCORM.set(l,i[l]);return i}}}return null}function f(){var e=[core.course.root.id,core.course.root.version.toString()];return v&&e.push("h"),e.join("/")}var p=this;Object.defineProperty(p,"active",{get:n}),Object.defineProperty(p,"dataLocale",{get:r});var g=e;Object.defineProperty(p,"finish",{value:i}),Object.defineProperty(p,"getErrorCode",{value:a}),Object.defineProperty(p,"getValue",{value:o}),Object.defineProperty(p,"init",{value:s}),Object.defineProperty(p,"save",{value:l}),Object.defineProperty(p,"setValue",{value:c});var E=new LocalData,m=!1,v=!1,S="",h=null,b=null}function LmsSettings(e){function t(){return Util.nullValue(m[LmsSettings.AUDIO_ENABLED],"")}function n(e){m[LmsSettings.AUDIO_ENABLED]=e}function r(){return m}function i(e){m=e}function a(){return Util.nullValue(m[LmsSettings.FOCUS_OUTLINE],"")}function o(e){m[LmsSettings.FOCUS_OUTLINE]=e}function s(){return Util.nullValue(m[LmsSettings.HIGH_CONTRAST],"")}function l(e){m[LmsSettings.HIGH_CONTRAST]=e}function c(){return g(m)}function u(e){m=p(e)}function d(){return Util.nullValue(m[LmsSettings.VIDEO_SUBTITLES],"")}function f(e){m[LmsSettings.VIDEO_SUBTITLES]=e}function p(e){return StringUtil.isEmpty(e)?[]:e.split(Lms.FIELD_DELIMITER)}function g(e){return e.join(Lms.FIELD_DELIMITER)}var E=this;Object.defineProperty(E,"audioEnabled",{get:t,set:n}),Object.defineProperty(E,"data",{get:r,set:i});var m=[];Object.defineProperty(E,"focusOutline",{get:a,set:o}),Object.defineProperty(E,"highContrast",{get:s,set:l}),Object.defineProperty(E,"serializedData",{get:c,set:u}),Object.defineProperty(E,"videoSubtitles",{get:d,set:f}),u(e)}function Lms(){function e(){return A.active}function t(){return A.assessmentDate}function n(){return A.assessmentScore}function r(){return A.audioEnabled}function i(){return A.completed}function a(){return A.courseData}function o(){return A.dataLocale}function s(){return A.focusOutline}function l(){return A.highContrast}function c(){return A.lessonLocation}function u(){return A.lessonStatus}function d(){return ObjectUtil.is(A,LmsNone)}function f(){return A.policyAccepted}function p(){return A.serializedBookmarkedPages}function g(){return A.serializedCompletedPages}function E(){return A.serializedRecommendedPages}function m(){return A.serializedSettings}function v(){return A.studentId}function S(){return core.config.evaluation?"Sample Learner":A.studentName}function h(e){A.studentName=e}function b(){return A.videoSubtitles}function O(){A.finish()}function y(){return A=T(core.config.lms),Util.isSet(A)?(A.addEventListener(LmsEvent.INCOMPATIBLE_DATA,U),A.addEventListener(LmsEvent.INITIALIZATION_FAILED,C),A.addEventListener(LmsEvent.UNEXPECTED_ERROR,P),A.init()):(I.dispatchEvent({type:LmsEvent.INVALID_SCORM_VERSION}),!1)}function T(e){var t=function(){switch(e.toLowerCase()){case"local":return LmsScormProxy.LOCAL;case"scorm":return LmsScormProxy.REMOTE;case"scorm-hybrid":return LmsScormProxy.REMOTE|LmsScormProxy.LOCAL}return LmsScormProxy.NONE},n=function(e,t){var n=String(Util.nullValue(e,"1.2"));switch(n){case"1.2":return new LmsScorm12(t);case"2004":return new LmsScorm2004(t)}return null},r=t();return r>0?n(core.config["scorm-version"],r):new LmsNone}function U(e){I.dispatchEvent(e)}function C(e){I.dispatchEvent(e)}function P(e){I.dispatchEvent(e)}var I=this;EventDispatcher.apply(I,[]),Object.defineProperty(I,"active",{get:e}),Object.defineProperty(I,"assessmentDate",{get:t}),Object.defineProperty(I,"assessmentScore",{get:n}),Object.defineProperty(I,"audioEnabled",{get:r}),Object.defineProperty(I,"completed",{get:i}),Object.defineProperty(I,"courseData",{get:a}),Object.defineProperty(I,"dataLocale",{get:o}),Object.defineProperty(I,"focusOutline",{get:s}),Object.defineProperty(I,"highContrast",{get:l}),Object.defineProperty(I,"lessonLocation",{get:c}),Object.defineProperty(I,"lessonStatus",{get:u}),Object.defineProperty(I,"none",{get:d}),Object.defineProperty(I,"policyAccepted",{get:f}),Object.defineProperty(I,"serializedBookmarkedPages",{get:p}),Object.defineProperty(I,"serializedCompletedPages",{get:g}),Object.defineProperty(I,"serializedRecommendedPages",{get:E}),Object.defineProperty(I,"serializedSettings",{get:m}),Object.defineProperty(I,"studentId",{get:v}),Object.defineProperty(I,"studentName",{get:S,set:h}),Object.defineProperty(I,"videoSubtitles",{get:b}),Object.defineProperty(I,"finish",{value:O}),Object.defineProperty(I,"init",{value:y});var A=null}function LocalData(){function e(){return a}function t(e){return a?Util.nullValue(localStorage[e],""):""}function n(){var e="localStorage";return a=e in window&&null!==window[e]}function r(e,t){return a&&(localStorage[e]=t),a}var i=this;Object.defineProperty(i,"active",{get:e});var a=!1;Object.defineProperty(i,"getValue",{value:t}),Object.defineProperty(i,"init",{value:n}),Object.defineProperty(i,"setValue",{value:r})}function ScormCompletionStatus(e){function t(){return a===ScormCompletionStatus.COMPLETED}function n(){return a}function r(e){switch(e){case ScormCompletionStatus.NOT_ATTEMPTED:case ScormCompletionStatus.INCOMPLETE:case ScormCompletionStatus.COMPLETED:case ScormCompletionStatus.UNKNOWN:a=e}}var i=this;Object.defineProperty(i,"completed",{get:t}),Object.defineProperty(i,"completionStatus",{get:n,set:r});var a=ScormCompletionStatus.NOT_ATTEMPTED;r(e)}function ScormEntry(e){function t(){return r}var n=this;Object.defineProperty(n,"entry",{get:t});var r=e}function ScormLessonStatus(e){function t(){switch(a){case ScormLessonStatus.COMPLETED:case ScormLessonStatus.FAILED:case ScormLessonStatus.PASSED:return!0}return!1}function n(){return a}function r(e){switch(e){case ScormLessonStatus.NOT_ATTEMPTED:case ScormLessonStatus.BROWSED:case ScormLessonStatus.INCOMPLETE:case ScormLessonStatus.COMPLETED:case ScormLessonStatus.FAILED:case ScormLessonStatus.PASSED:a=e}}var i=this;Object.defineProperty(i,"completed",{get:t}),Object.defineProperty(i,"lessonStatus",{get:n,set:r});var a=ScormLessonStatus.NOT_ATTEMPTED;r(e)}function ScormSessionTime12(){function e(){var e=Date.now(),r=Math.max(e-l,0),c=t(Math.round(.1*r),o),u=n(Math.min(c.quotient,s),ScormSessionTime12.HOURS_DIGITS),d=t(c.remainder,a),f=n(d.quotient,ScormSessionTime12.MINUTES_DIGITS),p=t(d.remainder,i),g=n(p.quotient,ScormSessionTime12.SECONDS_DIGITS),E=n(p.remainder,ScormSessionTime12.DECIMAL_DIGITS);return u+":"+f+":"+g+"."+E}function t(e,t){return{quotient:Math.floor(e/t),
remainder:e%t}}function n(e,t){var n=Math.pow(10,Math.min(t,16));return n>e?String(n+e).substr(1):String(n-1)}var r=this;Object.defineProperty(r,"duration",{get:e});var i=100,a=60*i,o=60*a,s=Math.pow(10,ScormSessionTime12.HOURS_DIGITS)-1,l=Date.now()}function ScormSessionTime2004(){function e(){var e=Date.now(),n=Math.max(e-o,0),s=t(Math.round(.1*n),a),l=t(s.remainder,i),c=s.quotient>0?s.quotient+"H":"";if(c+=l.quotient>0?l.quotient+"M":"",l.remainder>0){var u=t(l.remainder,r);c+=u.quotient+(u.remainder>0?"."+u.remainder:"")+"S"}return"PT"+c}function t(e,t){return{quotient:Math.floor(e/t),remainder:e%t}}var n=this;Object.defineProperty(n,"duration",{get:e});var r=100,i=60*r,a=60*i,o=Date.now()}function ScormSuccessStatus(e){function t(){return a===ScormSuccessStatus.PASSED}function n(){return a}function r(e){switch(e){case ScormSuccessStatus.PASSED:case ScormSuccessStatus.FAILED:case ScormSuccessStatus.UNKNOWN:a=e}}var i=this;Object.defineProperty(i,"passed",{get:t}),Object.defineProperty(i,"successStatus",{get:n,set:r});var a=ScormSuccessStatus.UNKNOWN;r(e)}function ScormSuspendData(e){function t(){return Util.nullValue(D[ScormSuspendData.ASSESSMENT_DATE],"")}function n(e){D[ScormSuspendData.ASSESSMENT_DATE]=e}function r(){return Util.nullValue(D[ScormSuspendData.ASSESSMENT_SCORE],"")}function i(e){D[ScormSuspendData.ASSESSMENT_SCORE]=e}function a(){return Util.nullValue(D[ScormSuspendData.BOOKMARKED_PAGES],"")}function o(e){D[ScormSuspendData.BOOKMARKED_PAGES]=e}function s(){return Util.nullValue(D[ScormSuspendData.COMPATIBILITY_VERSION],"")}function l(e){D[ScormSuspendData.COMPATIBILITY_VERSION]=e}function c(){return Util.nullValue(D[ScormSuspendData.COMPLETED_PAGES],"")}function u(e){D[ScormSuspendData.COMPLETED_PAGES]=e}function d(){return Util.nullValue(D[ScormSuspendData.COURSE_DATA],"")}function f(e){D[ScormSuspendData.COURSE_DATA]=e}function p(){return D}function g(e){D=e}function E(){return Util.nullValue(D[ScormSuspendData.FRAMEWORK],"")}function m(e){D[ScormSuspendData.FRAMEWORK]=e}function v(){return Util.nullValue(D[ScormSuspendData.POLICY_ACCEPTED],"")}function S(e){D[ScormSuspendData.POLICY_ACCEPTED]=e}function h(){return Util.nullValue(D[ScormSuspendData.RECOMMENDED_PAGES],"")}function b(e){D[ScormSuspendData.RECOMMENDED_PAGES]=e}function O(){return L(D)}function y(e){D=N(e)}function T(){return Util.nullValue(D[ScormSuspendData.SESSION_ID],"")}function U(e){D[ScormSuspendData.SESSION_ID]=e}function C(){return Util.nullValue(D[ScormSuspendData.SETTINGS],"")}function P(e){D[ScormSuspendData.SETTINGS]=e}function I(){return Util.nullValue(D[ScormSuspendData.TIME_STAMP],"")}function A(e){D[ScormSuspendData.TIME_STAMP]=e}function N(e){return StringUtil.isEmpty(e)?[]:e.split(Lms.RECORD_DELIMITER)}function L(e){return e.join(Lms.RECORD_DELIMITER)}var _=this;Object.defineProperty(_,"assessmentDate",{get:t,set:n}),Object.defineProperty(_,"assessmentScore",{get:r,set:i}),Object.defineProperty(_,"bookmarkedPages",{get:a,set:o}),Object.defineProperty(_,"compatibilityVersion",{get:s,set:l}),Object.defineProperty(_,"completedPages",{get:c,set:u}),Object.defineProperty(_,"courseData",{get:d,set:f}),Object.defineProperty(_,"data",{get:p,set:g});var D=[];Object.defineProperty(_,"framework",{get:E,set:m}),Object.defineProperty(_,"policyAccepted",{get:v,set:S}),Object.defineProperty(_,"recommendedPages",{get:h,set:b}),Object.defineProperty(_,"serializedData",{get:O,set:y}),Object.defineProperty(_,"sessionId",{get:T,set:U}),Object.defineProperty(_,"settings",{get:C,set:P}),Object.defineProperty(_,"timeStamp",{get:I,set:A}),y(e)}function AssessmentGroupNode(e){function t(){return i}function n(){return a}var r=this;AssessmentResourceNode.apply(r,arguments),Object.defineProperty(r,"randomize",{enumerable:!0,get:t});var i=Util.nullValue(e.randomize,!1);Object.defineProperty(r,"selectCount",{enumerable:!0,get:n});var a=Util.nullValue(e.selectCount,-1)}function AssessmentQuestionNode(e){function t(){return l}function n(e){l=e}function r(){return c}function i(e){c=e}function a(){return u}function o(){return l>0?c/l:0}var s=this;AssessmentResourceNode.apply(s,arguments),Object.defineProperty(s,"availableMarks",{get:t,set:n});var l=Util.nullValue(e.availableMarks,0);Object.defineProperty(s,"marks",{get:r,set:i});var c=Util.nullValue(e.marks,-1);Object.defineProperty(s,"pageNode",{get:a});var u=e.pageNode;Object.defineProperty(s,"score",{get:o})}function AssessmentResourceNode(e){function t(){return i}function n(){return a}var r=this;Node.apply(r,[e.id]),Object.defineProperty(r,"relative",{enumerable:!0,get:t});var i=Util.nullValue(e.relative,[]);Object.defineProperty(r,"visible",{enumerable:!0,get:n});var a=Util.nullValue(e.visible,!0)}function Assessment(e){function t(){return Util.isSet(V)}function n(){return Util.isSet(I)}function r(){return P.active?!V.hasNext():!1}function i(){var e=core.config["enforce-pass-completion"]?P.passed:P.attempted;return!core.config["has-assessment"]||e}function a(){return I}function o(e){I=e}function s(){return A}function l(){return L>=c()}function c(){return A?N:0}function u(){return L}function d(e){L=e}function f(){return P.active?V.count:0}function p(){return P.active?V.currentItem.id:""}function g(){return P.active?V.currentIndex+1:0}function E(){return _}function m(){V=null}function v(){var e=T();I=new Date,L=e.score,_=e.recommended.slice(),C(core.course.root,e.recommended),(M===RecordAssessmentResult.LATEST_ATTEMPT||e.score>core.lms.assessmentScore)&&P.dispatchEvent({type:AssessmentEvent.COMPLETED}),core.log({s:L})}function S(){var e=V.moveNext();return e.marks=-1,e}function h(){V=O();var e=V.moveFirst();return e.marks=-1,e}function b(e,t){if(e.constructor===AssessmentQuestionNode)t.addItem(e);else for(var n=D||e.selectCount<0?e.childCount:e.selectCount,r=e.randomize?List.SORT_RANDOMLY:List.UNSORTED,i=e.selectChildren(r),a=i.moveFirst();Util.isSet(a)&&i.currentIndex<n;)b(a,t),a=i.moveNext();return t}function O(){var e=b(x,new List),t=R?List.SORT_RANDOMLY:List.UNSORTED;return e.selectItems(t)}function y(e,t){var n=function(t,n,r){var i=e.id===t;return i&&r.splice(n,1),i};return t.constructor===Array?t.length>0&&t.some(n):t}function T(){for(var e=V.moveFirst(),t={current:0,available:0},n=[],r={};Util.isSet(e);)e.marks<e.availableMarks&&(n=ArrayUtil.removeDuplicates(n.concat(e.relative))),t.current+=e.marks,t.available+=e.availableMarks,e=V.moveNext();return r.score=t.available>0?Math.round(t.current/t.available*100):0,r.recommended=n,r}function U(){A=core.config["has-assessment-pass-mark"],N=core.config["assessment-pass-mark"],N=NumberUtil.constrain(N,Assessment.MINIMUM_SCORE,Assessment.MAXIMUM_SCORE),D=core.config["show-all-assessment-questions"],M=core.config["record-assessment-result"]}function C(e,t){var n=y(e,t);e.isPageNode&&(e.recommended=n);for(var r=e.selectChildren(),i=r.moveFirst();Util.isSet(i);)C(i,n?n:t),i=r.moveNext()}var P=this;EventDispatcher.apply(P,[]),Object.defineProperty(P,"active",{get:t}),Object.defineProperty(P,"attempted",{get:n}),Object.defineProperty(P,"completed",{get:r}),Object.defineProperty(P,"completion",{get:i}),Object.defineProperty(P,"date",{get:a,set:o});var I=null;Object.defineProperty(P,"hasPassMark",{get:s});var A=!0;Object.defineProperty(P,"passed",{get:l}),Object.defineProperty(P,"passMark",{get:c});var N=0;Object.defineProperty(P,"score",{get:u,set:d});var L=-1;Object.defineProperty(P,"questionCount",{get:f}),Object.defineProperty(P,"questionId",{get:p}),Object.defineProperty(P,"questionNumber",{get:g}),Object.defineProperty(P,"allRecommended",{get:E});var _=[];Object.defineProperty(P,"cancel",{value:m}),Object.defineProperty(P,"finish",{value:v}),Object.defineProperty(P,"nextQuestion",{value:S}),Object.defineProperty(P,"start",{value:h});var D=!1,R=Util.nullValue(e.randomize,!1),M="",x=e.rootNode,V=null;U()}function Assets(){function e(){return l}function t(e){c=ObjectUtil.toArray(e),a()}function n(e){switch(e.toLowerCase()){case"svg":return new HtmlLoader;case"js":case"json":return new JSONLoader;case"xml":return new XMLLoader}return null}function r(e){var t=e.value,r=n(t.slice(t.lastIndexOf(".")+1));Util.isSet(r)?(u=e.property,r.addEventListener(LoadEvent.LOADED,o),r.load(t)):(console.warn('Unrecognised asset file "'+t+'".'),a())}function i(){s.dispatchEvent({type:LoadEvent.LOADED,success:!0})}function a(){var e=c.shift();Util.isSet(e)?r(e):i()}function o(e){e.success&&(l[u]=e.target.constructor===XMLLoader?e.data.documentElement:e.data),a()}var s=this;EventDispatcher.apply(s,[]),Object.defineProperty(s,"data",{get:e});var l={};Object.defineProperty(s,"init",{value:t});var c=null,u=""}function AudioQueue(e){function t(e){o.push(e),s.prop("paused")&&0===s.prop("currentTime")&&r()}function n(){s.call("stop"),o=[]}function r(){o.length>0&&(s.call("load",o.shift()),s.call("play"))}function i(e){s.call("stop"),r()}var a=this;Object.defineProperty(a,"play",{value:t}),Object.defineProperty(a,"stop",{value:n});var o=[],s=e;s.on(MediaEvent.ENDED,i)}function Certificate(e){function t(){var t=core.config["services-url"];if(!StringUtil.isEmpty(t)){var n={data:{a:Crypto.encrypt(JSON.stringify(e)),l:core.config.licence,hasClientLogo:core.config["has-client-logo"]},dataType:"json",method:"POST",url:t+"/certificates"};s=window.open("certificate/certificate.html","certificate-window");var r=$.ajax(n);r.done(i),r.fail(a)}}function n(e){Util.isSet(s)&&s.close(),o.dispatchEvent({type:CertificateEvent.CERTIFICATE_ERROR,response:e})}function r(){try{s.certificateLoaded()}catch(e){}}function i(e){e.valid?Util.isSet(s)&&(s.location.replace(e.url),setTimeout(r,3e3)):n(ErrorCode.INVALID_CERTIFICATE,e.msg)}function a(e){n(core.getError(e.responseJSON))}var o=this;EventDispatcher.apply(o,[]),Object.defineProperty(o,"generate",{value:t});var s=null}function Configuration(){function e(){return o}function t(){var e={"ask-the-expert":"A","continue":"C","course-summary":"S",exit:"E",glossary:"G","home-page":"H","next-page":"PERIOD","previous-page":"COMMA",resources:"R"},t={"allow-assessment-reattempt":AssessmentReattempt.ALWAYS,"allow-revisit":!0,"assessment-pass-mark":Assessment.DEFAULT_PASS_MARK,"assessment-resource-id":"","audio-enabled":!1,"compatibility-version":1,"debug-mode":!1,"enable-assessment":!1,"enable-log":!1,"enforce-page-completion":!0,"enforce-pass-completion":!1,evaluation:!1,"fit-to-window":!0,"focus-outline":!1,font:"Roboto","font-styles":["300","300i","400","400i","700","700i"],"force-scorm-quiz-status":!1,"has-assessment":!0,"has-assessment-pass-mark":!0,"has-audio":!0,"has-certificate":!1,"has-client-logo":!1,"has-course-summary":!1,"has-policies":!1,"high-contrast":0,"include-beta-custom":!1,"keyboard-shortcuts":e,"override-completion-score":!1,page:"","record-assessment-result":RecordAssessmentResult.LATEST_ATTEMPT,"require-policy-acceptance":!1,"sequential-pages":!1,"sequential-sections":!1,"services-url":"https://services.elumos.net/api/v2","show-all-assessment-questions":!1,"show-exit-button":!0,"strict-page-completion":!1,"use-local-custom":!1,"video-enabled":!0,"video-subtitles":!1};return $.extend(o,t),n(Path.DATA+"config.json.js",i)}function n(e,t){var n=new JSONLoader;return n.addEventListener(LoadEvent.LOADED,t),n.load(e)}function r(e){$.extend(o,e)}function i(e){e.success&&r(e.data),a.dispatchEvent({type:ClassEvent.INIT})}var a=this;EventDispatcher.apply(a,[]),Object.defineProperty(a,"data",{get:e});var o={};Object.defineProperty(a,"init",{value:t}),Object.defineProperty(a,"load",{value:n}),Object.defineProperty(a,"update",{value:r})}function Core(){function e(){return Ne}function t(){return Le}function n(){return _e}function r(){return Ye.data}function i(){return De}function a(){return Re}function o(){return Me}function s(){return xe}function l(){return Ve}function c(){return we}function u(){return je}function d(){return Be}function f(){return ke}function p(){return Fe}function g(){return Ge}function E(){return $e.call("getScale")}function m(){return He}function v(){return $e}function S(){var e=function(){switch(je.lessonStatus){case ScormLessonStatus.COMPLETED:case ScormLessonStatus.PASSED:return!0}return!1};if(qe=!Ae.config["allow-revisit"]&&e()){z(!1,!0);var t=core.manifest.player["message-box"].completed,n=[Button.EXIT],r=t["text-no-certificate"];Ae.config["has-certificate"]&&(n=[Button.PRINT,Button.EXIT],r=t["text-certificate"]);var i={buttons:n,closeDialog:{print:!1},cssClass:"dialog completed-dialog",icon:MessageBoxIcon.INFORMATION,text:r,title:t.title},a=MessageBox.generate(i);a.on(DialogEvent.RESPONSE,ce),a.appendTo($e)}return qe}function h(e){A(!1);var t=Ke;Util.isSet($e)&&(z(!1,!0),t=$e),We.remove();var n=Util.nullValue(e,{}),r=StringUtil.empty(n.manifestId,"error"),i=core.manifest.player["message-box"][r],a={},o=[];o.push(Util.nullValue(n.critical,!0)?Button.CLOSE:Button.OK);var s={buttons:o,closeDialog:a,cssClass:n.cssClass,icon:MessageBoxIcon.ERROR,param:{errorCode:n.errorCode},text:StringUtil.empty(n.text,i.text),title:StringUtil.empty(n.title,i.title)};Util.isSet(n.errorCode)&&(s.text+="<br/><br/>[${errorCode}]");var l=MessageBox.generate(s);l.on(DialogEvent.RESPONSE,pe),l.appendTo(t)}function b(){if(!qe){_e.call("stop"),z(!1,!0);var e=core.manifest.player["message-box"].exit,t={buttons:[MessageBoxButton.YES,MessageBoxButton.NO],cssClass:"dialog exit-dialog",icon:MessageBoxIcon.QUESTION,text:e.text,title:e.title},n=MessageBox.generate(t);n.on(DialogEvent.RESPONSE,ge),n.appendTo($e)}}function O(e){return Ae.urlParameters.hasOwnProperty(e)?Ae.urlParameters[e]:Ae.config[e]}function y(e){var t=Util.nullValue(e,{});return Util.isSet(t.errors)&&t.errors.length>0?ObjectUtil.copy({},t.errors[0],[["code","errorCode"],["detail","text"],"title"]):ObjectUtil.copy({},t,["errorCode",["msg","text"],"title"])}function T(){ze=$(window),ze.on(LoadEvent.BEFORE_UNLOAD,Ce),ze.on(LoadEvent.UNLOAD,Ie),Ke=$("body"),Ke.addClass("loading"),We=$("#loading-status"),te(),He=StringUtil.getUrlParameters(window.location.search.slice(1)),V()?($.ajaxTransport("+binary",D),Ye=new Configuration,Ye.addEventListener(ClassEvent.INIT,ue),Ye.init()):(A(!1),We.html("Oh dear, it appears that the course is not compatible with your web browser."))}function U(e){if(Ae.config["enable-log"]){var t=function(e,t){n.push(t+"="+e[t])},n=[],r=new Date,i=r.getTime();e.t=i.toString(36),ObjectUtil.forEachItem(e,t);var a=new JSONLoader;a.load(Path.ASSETS+"log.json.js?"+n.join("&"))}}function C(){var e={date:DateUtil.toString(je.assessmentDate),score:je.assessmentScore,studentName:je.studentName},t=new Certificate(e);t.addEventListener(CertificateEvent.CERTIFICATE_ERROR,le),t.generate()}function P(){z(!1);var e=core.manifest.player["message-box"].resume,t={buttons:[MessageBoxButton.YES,MessageBoxButton.NO],cssClass:"dialog resume-dialog",icon:MessageBoxIcon.QUESTION,text:e.text,title:e.title},n=MessageBox.generate(t);n.on(DialogEvent.RESPONSE,ye),n.appendTo($e)}function I(e,t,n){Me[e]=t,Util.nullValue(n,!0)&&Ae.dispatchEvent({type:CoreEvent.DATA,property:e,value:t})}function A(e){Ke.toggleClass("loading",e)}function N(e,t){var n=t;"high-contrast"===e&&(n=t?2:0),Ae.config[e]!==n&&("audio-enabled"===e?(_e.call("setEnabled",n),n||N("video-subtitles",!0)):"focus-outline"===e?Z(n):"high-contrast"===e&&ee(n),Ae.config[e]=n,Ae.dispatchEvent({type:CoreEvent.SETTING,property:e,value:n}))}function L(){var e=!1;if(""===Ve.location)Y(Navigation.NEXT_PAGE);else if("course-menu"===Ve.location)Y(Navigation.HOME_PAGE);else{var t=De.findPage(Ve.location);e=Util.isSet(t)&&t.visible,e||Y(Navigation.HOME_PAGE)}return e}function _(e){var t=je.none&&""===je.studentName;if(t){z(!1,!0);var n=StudentNameDialog.generate();n.on(DialogEvent.RESPONSE,Te),n.appendTo($e)}return t}function D(e,t,n){var r=function(){n.abort()},i=function(t,n){var r=function(){var t={};t[e.dataType]=d.response,n(d.status,d.statusText,t,d.getAllResponseHeaders())},i=e.url,a=e.type,o=e.async||!0,s=e.responseType||"blob",l=e.data||null,c=e.username||null,u=e.password||null,d=new XMLHttpRequest;d.addEventListener(LoadEvent.LOAD,r),d.open(a,i,o,c,u);for(var f in t)t.hasOwnProperty(f)&&d.setRequestHeader(f,t[f]);d.responseType=s,d.send(l)};return{send:i,abort:r}}function R(){window.top.close()}function M(e,t){var n=Util.nullValue(ke.global,{}),r=n[e];ObjectUtil.is(r,Function)&&r.apply(null,t)}function x(){A(!0),j();var e=Util.isSet(window.top.opener)?R:W;Util.isSet($e)?$e.animate({opacity:0},"slow",e):e()}function V(){var e=navigator.userAgent.match(/MSIE (\d+)/),t=null!==e&&parseInt(e[1])>=10&&(document.documentMode>=10||void 0===document.documentMode);return console.log("UA: "+navigator.userAgent),null!==e&&console.log("IE: "+e[1]),document.documentMode&&console.log("documentMode: "+document.documentMode),null===e||t}function w(e,t){var n=Util.nullValue(t,{});n.critical=!0,n.errorCode=e,h(n)}function j(){Qe||(Util.isSet(je)&&(ObjectUtil.is(De.currentPage,PageNode)&&De.currentPage.overrideCompleted(),je.finish()),Qe=!0)}function B(){var e=new JSONLoader;e.addEventListener(LoadEvent.LOADED,ie),e.load(Path.DATA+"assets.json.js")}function k(){Re.loaded?(te(),je=new Lms,je.addEventListener(LmsEvent.INCOMPATIBLE_DATA,ve),je.addEventListener(LmsEvent.INITIALIZATION_FAILED,Se),je.addEventListener(LmsEvent.UNEXPECTED_ERROR,he),je.init()&&(Q(De.assessment.completion),$.extend(Me,je.courseData),Me["policy-accepted"]=StringUtil.toBoolean(je.policyAccepted),Ae.config["focus-outline"]=StringUtil.isEmpty(je.focusOutline)?Ae.config["focus-outline"]:StringUtil.toBoolean(je.focusOutline),Z(Ae.config["focus-outline"]),Ae.config["high-contrast"]=StringUtil.isEmpty(je.highContrast)?Ae.config["high-contrast"]:NumberUtil.nanValue(Number(je.highContrast),0),ee(Ae.config["high-contrast"]),Ae.config["audio-enabled"]=StringUtil.isEmpty(je.audioEnabled)?Ae.config["audio-enabled"]:StringUtil.toBoolean(je.audioEnabled),_e=Audio.generate({enabled:Ae.config["audio-enabled"],playbackRate:Ae.config["audio-playback-rate"]}),_e.appendTo(Ke),Ae.config["video-subtitles"]=StringUtil.isEmpty(je.videoSubtitles)?Ae.config["video-subtitles"]:StringUtil.toBoolean(je.videoSubtitles),Ve={status:je.lessonStatus,location:je.lessonLocation},We.animate({opacity:0},"slow",function(){$(this).remove()}),$e=View.generate({title:De.title}),$e.on(CourseEvent.NAVIGATE,Ue),$e.appendTo(Ke),Ae.config["fit-to-window"]&&(Ke.addClass("fit-to-window"),ze.on(WindowEvent.RESIZE,Pe),q()),Ke.on(FocusEvent.FOCUS_OUT,oe),Ke.on(KeyboardEvent.KEY_DOWN,se),K(),M("playerReady"),StringUtil.isEmpty(Ae.config.page)?De.goFirstPage():De.goPage(Ae.config.page))):X("customisation-error",Re.data)}function F(){var e=new JSONLoader;e.addEventListener(LoadEvent.LOADED,fe),e.load(Path.DATA+"definition.json.js")}function G(){var e=new JSONLoader;e.addEventListener(LoadEvent.LOADED,be),e.load(Path.DATA+"manifest.json.js")}function H(){var e=new JSONLoader;e.addEventListener(LoadEvent.LOADED,Oe),e.load(Path.DATA+"release.json.js")}function Y(e,t){switch(e){case Navigation.CHILD_PAGE:De.goChildPage(t);break;case Navigation.HOME_PAGE:De.goHomePage();break;case Navigation.NEXT_PAGE:De.goNextPage();break;case Navigation.NEXT_SECTION:De.goNextSection();break;case Navigation.PAGE_BY_ID:De.goPage(t);break;case Navigation.PREVIOUS_PAGE:De.goPreviousPage();break;case Navigation.REPLAY_PAGE:De.replayPage()}}function K(){Util.isSet($e)&&$e.focus()}function q(){$e.call("resize")}function X(e,t){var n={cssClass:e+"-dialog dialog",manifestId:e,text:t.msg};h($.extend(n,t))}function W(){$e.remove(),A(!1);var e=core.manifest.player["message-box"]["session-ended"],t=je.dataLocale===LmsScormProxy.REMOTE?e["text-lms"]:e.text,n={cssClass:"dialog session-ended-dialog",icon:MessageBoxIcon.INFORMATION,text:t,title:e.title};Ke.append(MessageBox.generate(n))}function Q(e){I("assessment-completion",e,!1)}function z(e,t){$e.call("setEnabled",e,t)}function Z(e){Ke.toggleClass("focus-outline",e)}function J(e,t){var n=function(){var e="https://fonts.googleapis.com/css?family=";return e+=r.split(" ").join("+"),e+=":"+t.join(",")},r=decodeURI(e);$("#google-font").attr("href",n()),Ke.css("font-family",'"'+r+'", sans-serif')}function ee(e){Ke.toggleClass("no-high-contrast",0===e),Ke.toggleClass("high-contrast",1===e),Ke.toggleClass("high-contrast-inverse",2===e)}function te(){Xe.index++;var e=Math.round(Xe.index/Xe.count*100);$("#loading-progress").html(e+"%")}function ne(){we=new Licence,we.addEventListener(LicenceEvent.VALIDATION_COMPLETED,Ee),we.addEventListener(LicenceEvent.VALIDATION_FAILED,me),we.validate()}function re(e){Q(e.target.completion)}function ie(e){e.success?(te(),Ne=new AskTheExpertEntries,Ne.init(),xe=new GlossaryEntries,xe.init(),Ge=new ResourceEntries,Ge.init(),De.init(),De.assessment.addEventListener(AssessmentEvent.COMPLETED,re),Le=new Assets,Le.addEventListener(LoadEvent.LOADED,ae),Le.init(e.data)):k()}function ae(e){ne()}function oe(e){var t=function(){var t=$(e.target);if("view"!==t.attr("id"))if(Util.isSet(t.attr("tabindex"))){var n=t.parents(),r=n.length-1;if(r>-1){var i=n[r],a=i.nodeName.toLowerCase();"html"!==a&&K()}else K()}else K()};setTimeout(t,0)}function se(e){191===e.which&&e.ctrlKey&&$e.append(InfoDialog.generate())}function le(e){X(e.type,$.extend({critical:!1},e.response))}function ce(e,t){t.id===Button.PRINT?C():x()}function ue(e){te(),Re=new Customisation,Re.addEventListener(ClassEvent.INIT,de),Re.init()}function de(e){e.loaded&&(te(),Util.isSet(e.data.config)&&Ye.update(e.data.config)),Ye.update(He),NumberUtil.inRange(Ae.config["assessment-pass-mark"],0,100)||(Ae.config["has-assessment-pass-mark"]=!1),Debugger.ACTIVE=Ae.config["debug-mode"],Q(!Ae.config["has-assessment"]),J(Ae.config.font,Ae.config["font-styles"]),M("updateConfig",[Ae.config]),G()}function fe(e){if(e.success){te();var t=e.data;Util.isSet(Re.data.definition)&&ObjectUtil.extend(t,Re.data.definition),De=new Course(t),H()}}function pe(e,t){t.id===Button.CLOSE?x():t.id===Button.OK&&z(!0)}function ge(e,t){t.id===MessageBoxButton.YES?x():z(!0)}function Ee(e){k()}function me(e){X("licence-error",e.response)}function ve(e){var t={cssClass:"dialog incompatible-data-dialog"};w(ErrorCode.LMS_INCOMPATIBLE_DATA,t)}function Se(e){w(ErrorCode.LMS_INITIALIZATION_FAILED)}function he(e){w(e.errorCode)}function be(e){e.success&&(te(),$.extend(!0,Be,e.data),Util.isSet(Re.data.manifest)&&$.extend(!0,Be,Re.data.manifest),M("updateManifest",[Be]),F())}function Oe(e){e.success&&(te(),Fe=e.data,B())}function ye(e,t){var n=t.id===MessageBoxButton.NO?Navigation.HOME_PAGE:Navigation.PAGE_BY_ID;Y(n,Ve.location)}function Te(e,t){if(t.id===MessageBoxButton.OK){var n=$(e.target).call("getStudentName");je.studentName=StringUtil.trim(n),C()}z(!0)}function Ue(e,t){_e.call("stop"),Y(t.navigation,t.target)}function Ce(){j()}function Pe(){q()}function Ie(){j()}var Ae=this;EventDispatcher.apply(Ae,[]),Object.defineProperty(Ae,"askTheExpert",{get:e});var Ne=null;Object.defineProperty(Ae,"assets",{get:t});var Le=null;Object.defineProperty(Ae,"audio",{get:n});var _e=null;Object.defineProperty(Ae,"config",{get:r}),Object.defineProperty(Ae,"course",{get:i});var De=null;Object.defineProperty(Ae,"customisation",{get:a});var Re=null;Object.defineProperty(Ae,"data",{get:o});var Me={};Object.defineProperty(Ae,"glossary",{get:s});var xe=null;Object.defineProperty(Ae,"lesson",{get:l});var Ve=null;Object.defineProperty(Ae,"licence",{get:c});var we=null;Object.defineProperty(Ae,"lms",{get:u});var je=null;Object.defineProperty(Ae,"manifest",{get:d});var Be={};Object.defineProperty(Ae,"pageScript",{get:f});var ke={};Object.defineProperty(Ae,"release",{get:p});var Fe=null;Object.defineProperty(Ae,"resources",{get:g});var Ge=null;Object.defineProperty(Ae,"scale",{get:E}),Object.defineProperty(Ae,"urlParameters",{get:m});var He={};Object.defineProperty(Ae,"view",{get:v});var $e=null;Object.defineProperty(Ae,"completed",{value:S}),Object.defineProperty(Ae,"error",{value:h}),Object.defineProperty(Ae,"exit",{value:b}),Object.defineProperty(Ae,"getConfigValue",{value:O}),Object.defineProperty(Ae,"getError",{value:y}),Object.defineProperty(Ae,"init",{value:T}),Object.defineProperty(Ae,"log",{value:U}),Object.defineProperty(Ae,"printCertificate",{value:C}),Object.defineProperty(Ae,"resume",{value:P}),Object.defineProperty(Ae,"setData",{value:I}),Object.defineProperty(Ae,"setLoading",{value:A}),Object.defineProperty(Ae,"setSetting",{value:N}),Object.defineProperty(Ae,"start",{value:L}),Object.defineProperty(Ae,"showStudentNameDialog",{value:_});var Ye=null,Ke=null,qe=!1,Xe={index:0,count:8},We=null,Qe=!1,ze=null}function CourseNavigator(e){function t(){return R}function n(){return M}function r(e){return C(M,e)}function i(){return Util.isSet(O(R))}function a(){return Util.isSet(I(R))}function o(){var e=y(R);return!Util.isSet(e)||e.assessment}function s(){return R.isDescendantOf(core.course.homePage)&&core.course.isHomePage(O(R))}function l(e){return N(S(R,e,D))}function c(){return N(h(R))}function u(){return N(core.course.homePage)}function d(){return N(b(R))}function f(){return N(O(R))}function p(){return N(y(R))}function g(e){return N(r(e))}function E(){return N(P(R))}function m(){return N(I(R))}function v(e,t){if(Util.isSet(e))switch(t.constructor){case Number:return e.getChildByIndex(t);case String:return e.getChildById(t)}return null}function S(e,t,n){var r=Util.nullValue(n,D),i=v(e,t);return Util.isSet(i)?i.enabled&&i.visible?i.isPageNode?i:r>0?h(i):b(i):r>0?O(i):I(i):null}function h(e){return S(e,0,D)}function b(e){return S(e,e.childCount-1,_)}function O(e){var t=e.parent;if(!Util.isSet(t)||!t.isPageNode){var n=U(e,!0);return Util.isSet(n)||!Util.isSet(t)?n:O(t)}return t}function y(e){var t=core.course.getSection(e);return Util.isSet(t)?U(t,!0):null}function T(e){return v(e.parent,e.index+1)}function U(e,t){var n=T(e);return Util.isSet(n)?n.enabled&&n.visible?n.isPageNode?n:t?h(n):U(n,t):U(n,t):null}function C(e,t){if(e.id===t)return e.isPageNode?e:h(e);for(var n=e.selectChildren(),r=n.moveFirst();Util.isSet(r);){if(r=C(r,t),Util.isSet(r))return r;r=n.moveNext()}return null}function P(e){var t=e.parent;return Util.isSet(t)?t.isPageNode?t:P(t):null}function I(e){var t=e.parent;if(!Util.isSet(t)||!t.isPageNode){var n=A(e);if(Util.isSet(n))return n.enabled&&n.visible?n.isPageNode?n:b(n):I(n);if(Util.isSet(t))return I(t)}return t}function A(e){return v(e.parent,e.index-1)}function N(e){return Util.isSet(e)&&(R=e),e}var L=this,_=-1,D=1;Object.defineProperty(L,"currentPage",{get:t});var R=e;Object.defineProperty(L,"root",{get:n});var M=e;Object.defineProperty(L,"findPage",{value:r}),Object.defineProperty(L,"hasNextPage",{value:i}),Object.defineProperty(L,"hasPreviousPage",{value:a}),Object.defineProperty(L,"isCourseEnd",{value:o}),Object.defineProperty(L,"isSectionEnd",{value:s}),Object.defineProperty(L,"setChildPage",{value:l}),Object.defineProperty(L,"setFirstPage",{value:c}),Object.defineProperty(L,"setHomePage",{value:u}),Object.defineProperty(L,"setLastPage",{value:d}),Object.defineProperty(L,"setNextPage",{value:f}),Object.defineProperty(L,"setNextSection",{value:p}),Object.defineProperty(L,"setPageById",{value:g}),Object.defineProperty(L,"setParentPage",{value:E}),Object.defineProperty(L,"setPreviousPage",{value:m})}function CourseNode(e){function t(){return r}var n=this;PageGroupNode.apply(n,arguments),Object.defineProperty(n,"version",{enumerable:!0,get:t});var r=new Version(e.version)}function Course(e){function t(){return F}function n(){return K.currentPage}function r(){return G}function i(){return H}function a(){return k.root.id}function o(){return Y}function s(){return F.active?F.questionId:k.currentPage.id}function l(){return core.lms.assessmentScore>=F.passMark}function c(){return K.root}function u(){return core.manifest[k.id].title}function d(){var e=core.manifest[k.id].title2;return Util.nullValue(e,k.title)}function f(e){return K.findPage(e)}function p(e){if(Util.isSet(e)){var t=core.manifest[e.id];if(Util.isSet(t)&&Util.isSet(t.title))return StringUtil.parseVars(t.title)}return""}function g(e){var t=e.parent;return Util.isSet(t)?C(t)?e:g(t):null}function E(e){_(K.setChildPage(e))}function m(){_(K.setFirstPage())}function v(){_(K.setHomePage())}function S(){_(K.setNextPage())}function h(){_(K.setNextSection())}function b(e){_(K.setPageById(e))}function O(){_(K.setPreviousPage())}function y(){return K.hasNextPage()}function T(){return K.hasPreviousPage()}function U(){Util.isSet(G)&&(Y=x(),K=M(),F=R())}function C(e){return Util.isSet(e)&&e===H}function P(){return K.isCourseEnd()}function I(){return K.isSectionEnd()}function A(){_(k.currentPage)}function N(){var e=function(e){e.isPageNode&&(e.recommended=!1)};k.root.forEachChild(e)}function L(){var e=core.lms.serializedBookmarkedPages.split(""),t=core.lms.serializedCompletedPages.split(""),n=core.lms.serializedRecommendedPages.split(""),r=function(r){r.isPageNode&&(r.bookmarked=StringUtil.toBoolean(e.shift()),r.completed=StringUtil.toBoolean(t.shift()),r.recommended=StringUtil.toBoolean(n.shift()))};k.root.forEachChild(r)}function _(e){core.view.call("changePage",e)}function D(e){if(Util.isSet(e))switch(e.constructor){case String:return""===e||StringUtil.evaluate(StringUtil.parseVars(e));case Boolean:return e}return null}function R(){var e=function(n,a){var o=null;if(Util.isSet(r.resources)){var s=Util.nullValue(r.resources[n],{}),l=Util.isSet(a),c=$.extend({assessment:!0,id:n,relative:[]},s),u=D(c.visible);if(Util.nullValue(u,!0)){if(l&&ObjectUtil.is(c.relative,Array)&&(c.relative=ArrayUtil.removeDuplicates(c.relative.concat(a.relative))),ObjectUtil.is(s.children,Array)){c.randomize=t(c.randomize),o=new AssessmentGroupNode(c);for(var d=s.children.length,f=0;d>f;f++)e(s.children[f],o)}else{var p=V(n,i,{});c.pageNode=new PageNode($.extend(c,p)),o=new AssessmentQuestionNode(c)}l&&a.addChild(o)}}return o},t=function(e){var t=core.config["randomize-assessment"];return Util.isSet(t)?t:e},n={};if(core.config["has-assessment"]){var r=G.assessment,i=G.page,a=core.config["assessment-resource-id"];StringUtil.isEmpty(a)&&(a=StringUtil.empty(r.resourceId,k.id+"-quiz")),n.randomize=t(r.randomize),n.rootNode=e(a)}return new Assessment(n)}function M(){var e=G.course,t=G.page,n=B(new CourseNode(e),e,t,j);return new CourseNavigator(n)}function x(){var e=Util.nullValue(G.course.orphans,[]),t={},n=function(e,n,r){var i=G.page[e];if(Util.isSet(i)){var a={id:e};core.data.toolkit[e]=!0,t[e]=new PageNode($.extend(a,i))}else console.warn("The page definition for '%s' does not exist.",e)};return core.data.toolkit={"ask-the-expert":!1,bookmarks:!1,glossary:!1,resources:!1},e.forEach(n),t}function V(e,t,n){var r=function(e){if(Util.isSet(e))switch(e.constructor){case Array:return e;case String:return e.split(",")}return[]},i=function(e){StringUtil.isEmpty(e)||V(e,t,n)},a=t[e];if(Util.isSet(a)){var o=r(a["extends"]);o.forEach(i),ObjectUtil.extend(n,a)}else console.warn("The page definition for '%s' does not exist.",e),n.visible=!1;return n}function w(e,t){if(Util.isSet(t)){var n=function(t){return t===e},r=Util.isSet(t.visibleDescendants)?t.visibleDescendants.some(n):!1;return r||w(e,t.parent)}return null}function j(e,t,n,r){var i=e[t],a=null;if(!StringUtil.isEmpty(i.id)){var o=w(i.id,n);Util.isSet(o)||(o=D(i.visible));var s={allowBookmark:n.allowBookmark,assessment:n.assessment,enabled:n.enabled,mandatory:n.mandatory,showPageIcons:n.showPageIcons,visible:n.visible},l=Util.nullValue(i["abstract"],!1);if(l)i.enabled=D(i.enabled),i.visible=o,a=new PageGroupNode($.extend(s,i));else{var c=Util.nullValue(i.resourceId,i.id),u=V(c,r,{});$.extend(i,u),i.enabled=D(i.enabled),i.visible=Util.nullValue(u.visible,o),a=new PageNode($.extend(s,i)),!Util.isSet(H)&&i.home&&(H=a)}Util.isSet(a)&&(n.addChild(a),B(a,i,r,j))}}function B(e,t,n,r){var i=Util.nullValue(t.children,[]);return ArrayUtil.forEachItem(i,r,[e,n]),e}var k=this;EventDispatcher.apply(k,[]),Object.defineProperty(k,"assessment",{get:t});var F=null;Object.defineProperty(k,"currentPage",{get:n}),Object.defineProperty(k,"definition",{get:r});var G=Util.nullValue(e,{});Object.defineProperty(k,"homePage",{
get:i});var H=null;Object.defineProperty(k,"id",{get:a}),Object.defineProperty(k,"orphans",{get:o});var Y=null;Object.defineProperty(k,"pageId",{get:s}),Object.defineProperty(k,"passed",{get:l}),Object.defineProperty(k,"root",{get:c}),Object.defineProperty(k,"title",{get:u}),Object.defineProperty(k,"title2",{get:d}),Object.defineProperty(k,"findPage",{value:f}),Object.defineProperty(k,"getNodeTitle",{value:p}),Object.defineProperty(k,"getSection",{value:g}),Object.defineProperty(k,"goChildPage",{value:E}),Object.defineProperty(k,"goFirstPage",{value:m}),Object.defineProperty(k,"goHomePage",{value:v}),Object.defineProperty(k,"goNextPage",{value:S}),Object.defineProperty(k,"goNextSection",{value:h}),Object.defineProperty(k,"goPage",{value:b}),Object.defineProperty(k,"goPreviousPage",{value:O}),Object.defineProperty(k,"hasNextPage",{value:y}),Object.defineProperty(k,"hasPreviousPage",{value:T}),Object.defineProperty(k,"init",{value:U}),Object.defineProperty(k,"isHomePage",{value:C}),Object.defineProperty(k,"isCourseEnd",{value:P}),Object.defineProperty(k,"isSectionEnd",{value:I}),Object.defineProperty(k,"replayPage",{value:A}),Object.defineProperty(k,"resetRecommended",{value:N}),Object.defineProperty(k,"restoreState",{value:L});var K=null}function Customisation(e){function t(){return l}function n(){return c}function r(){return u}function i(){if(core.getConfigValue("use-local-custom"))a(Path.DATA+"customisation.json.js",{});else{var e=function(e){return Util.isSet(core.config[e])};if(["required-customisation-version","licence"].every(e)){var t=core.getConfigValue("services-url");if(!StringUtil.isEmpty(t)){var n={licence:core.config.licence,requiredCustomisationVersion:core.config["required-customisation-version"],includeBeta:core.getConfigValue("include-beta-custom")};a(t+"/customisations",n)}}}}function a(e,t){var n=new JSONLoader;return n.addEventListener(LoadEvent.LOADED,o),n.load(e,t)}function o(e){c=e.success,l=c?e.data:core.getError(e.jqxhr.responseJSON),u=Util.nullValue(l.version,"0"),s.dispatchEvent({type:ClassEvent.INIT,loaded:c,data:l})}var s=this;EventDispatcher.apply(s,[]),Object.defineProperty(s,"data",{get:t});var l={};Object.defineProperty(s,"loaded",{get:n});var c=!1;Object.defineProperty(s,"version",{get:r});var u="";Object.defineProperty(s,"init",{value:i}),Object.defineProperty(s,"load",{value:a})}function Licence(){function e(){return f}function t(){return p}function n(){return g}function r(){return E}function i(){E=!core.getConfigValue("use-local-custom");var e=E?o():a();e.valid?E||s():l(e)}function a(){var e=core.config.licence2,t={code:ErrorCode.INVALID_LICENCE,valid:!1};if(!StringUtil.isEmpty(e)){var n=Util.nullValue(core.config["rsa-public-key"],{}),r=Util.nullValue(n.n,"");if(!StringUtil.isEmpty(r)){var i=16;if(r.length>=i)try{var a=JSON.parse(Aes.Ctr.decrypt(e,r.substr(0,i),256));if(f=Util.nullValue(a.cName,""),"perpetual"!==a.exp){var o=StringUtil.toDate(a.exp);Util.isSet(o)&&(p=DateUtil.format(o),o.setDate(o.getDate()+1),t.valid=(new Date).getTime()<o.getTime(),t.code=t.valid?ErrorCode.NO_ERROR:ErrorCode.LICENCE_EXPIRED)}else t.valid=!0,t.code=ErrorCode.NO_ERROR}catch(s){}}}return t}function o(){var e=core.config.licence,t={code:ErrorCode.INVALID_LICENCE,valid:!1};if(!StringUtil.isEmpty(e)){var n=core.config["services-url"];if(!StringUtil.isEmpty(n)){var r={data:{licence:e},dataType:"json",method:"POST",timeout:Licence.REMOTE_TIMEOUT,url:n+"/licences"};if(core.config["use-dev-licence"]===!0){var i=localStorage.getItem("devLicence");StringUtil.isEmpty(i)||(r.headers={Authorization:"Bearer "+i})}t.valid=!0,t.code=ErrorCode.NO_ERROR;var a=$.ajax(r);a.done(c),a.fail(u)}}return t}function s(){var e=core.manifest.player.licence;g=StringUtil.parseVars(StringUtil.isEmpty(p)?e.licence1:e.licence2),d.dispatchEvent({type:LicenceEvent.VALIDATION_COMPLETED})}function l(e){d.dispatchEvent({type:LicenceEvent.VALIDATION_FAILED,response:e})}function c(e){if(f=e.cName,e.valid){if("perpetual"!==e.exp){var t=StringUtil.toDate(e.exp);Util.isSet(t)&&(p=DateUtil.format(t))}s()}else l(core.getError(e))}function u(e){l(core.getError(e.responseJSON))}var d=this;EventDispatcher.apply(d,[]),Object.defineProperty(d,"customerName",{get:e});var f="";Object.defineProperty(d,"expiryDate",{get:t});var p="";Object.defineProperty(d,"licenceText",{get:n});var g="";Object.defineProperty(d,"remote",{get:r});var E=!0;Object.defineProperty(d,"validate",{value:i})}function PageFilter(e){function t(t){var n=function(e,n){return t[n]===e[n]};return t.isPageNode&&ObjectUtil.every(e,n)}var n=this;Object.defineProperty(n,"select",{value:t})}function PageGroupNode(e){function t(){return E}function n(){return m}function r(){return v}function i(){return S}function a(){return ObjectUtil.is(g,PageNode)}function o(){return h&&O}function s(){return b}function l(){var e=core.manifest[g.id];return Util.isSet(e)?Util.nullValue(e.title,""):""}function c(){return O}function u(){return y}function d(){var e=function(e){e.visible&&(t+=e.duration)},t=0;return e(g),g.forEachChild(e),t}function f(e){var t=function(e){e.isPageNode&&e.mandatory&&(n.count+=e.completed?1:0,n.total++)},n={count:0,total:0};return Util.nullValue(e,!0)&&t(g),g.forEachChild(t),n.total>0?n.count/n.total:0}function p(e){var t=e;return ObjectUtil.is(t,String)&&(t=StringUtil.evaluate(StringUtil.parseVars(e))),ObjectUtil.is(t,Array)?t:[]}var g=this;Node.apply(g,[e.id]),Object.defineProperty(g,"assessment",{enumerable:!0,get:t});var E=Util.nullValue(e.assessment,!1);Object.defineProperty(g,"allowBookmark",{enumerable:!0,get:n});var m=Util.nullValue(e.allowBookmark,!0);Object.defineProperty(g,"duration",{enumerable:!0,get:r});var v=Util.nullValue(e.duration,0);Object.defineProperty(g,"enabled",{enumerable:!0,get:i});var S=Util.nullValue(e.enabled,!0);Object.defineProperty(g,"isPageNode",{get:a}),Object.defineProperty(g,"mandatory",{enumerable:!0,get:o});var h=Util.nullValue(e.mandatory,!0);Object.defineProperty(g,"showPageIcons",{get:s});var b=Util.nullValue(e.showPageIcons,!0);Object.defineProperty(g,"title",{get:l}),Object.defineProperty(g,"visible",{enumerable:!0,get:c});var O=Util.nullValue(e.visible,!0);Object.defineProperty(g,"visibleDescendants",{enumerable:!0,get:u});var y=p(e.visibleDescendants);Object.defineProperty(g,"calculateDuration",{value:d}),Object.defineProperty(g,"getProgress",{value:f})}function PageNode(e){function t(){return N}function n(e){var t=A.allowBookmark&&e;N!==t&&(N=t,A.dispatchEvent({type:PageNodeEvent.BOOKMARKED}))}function r(){return L}function i(e){L=e}function a(){return _}function o(e){_=e}function s(){return D}function l(){return R}function c(){return M}function u(){return x}function d(){return V}function f(){return w}function p(){return!Util.isSet(A.parent)}function g(){return j}function E(){return B}function m(){return k}function v(){return F}function S(e){F=e}function h(){return G}function b(){return H}function O(){return $}function y(){return Y}function T(){return K}function U(){return q}function C(e){q=e}function P(e){var t=M[e];return Util.isSet(t)&&(StringUtil.isEmpty(t.extend)||(t=ObjectUtil.extend({},[P(t.extend),t]))),t}function I(){i(Util.nullValue(D.completed,!0))}var A=this;PageGroupNode.apply(A,arguments),Object.defineProperty(A,"bookmarked",{get:t,set:n});var N=!1;Object.defineProperty(A,"completed",{get:r,set:i});var L=!1;Object.defineProperty(A,"cssClass",{get:a,set:o});var _=Util.nullValue(e.cssClass,"");Object.defineProperty(A,"data",{get:s});var D={};Object.defineProperty(A,"discreet",{get:l});var R=Util.nullValue(e.discreet,!1);Object.defineProperty(A,"elements",{get:c});var M=Util.nullValue(e.elements,{});Object.defineProperty(A,"enableHeaderBar",{get:u});var x=Util.nullValue(e.enableHeaderBar,!0);Object.defineProperty(A,"enableNextPage",{get:d});var V=Util.nullValue(e.enableNextPage,!0);Object.defineProperty(A,"enablePreviousPage",{get:f});var w=Util.nullValue(e.enablePreviousPage,!0);Object.defineProperty(A,"isOrphan",{get:p}),Object.defineProperty(A,"param",{enumerable:!0,get:g});var j=Util.nullValue(e.param,{});Object.defineProperty(A,"preload",{get:E});var B=Util.nullValue(e.preload,[]);Object.defineProperty(A,"preloadAssetData",{get:m});var k=e.preloadAssetData;Object.defineProperty(A,"recommended",{get:v,set:S});var F=!1;Object.defineProperty(A,"resourceId",{enumerable:!0,get:h});var G=Util.nullValue(e.resourceId,A.id);Object.defineProperty(A,"resourcePath",{enumerable:!0,get:b});var H=Util.nullValue(e.resourcePath,A.id);Object.defineProperty(A,"script",{get:O});var $=Util.nullValue(e.script,{});Object.defineProperty(A,"showFooterBar",{get:y});var Y=Util.nullValue(e.showFooterBar,!0);Object.defineProperty(A,"showHeaderBar",{get:T});var K=Util.nullValue(e.showHeaderBar,!0);Object.defineProperty(A,"target",{get:U,set:C});var q=null;Object.defineProperty(A,"getElementProperties",{value:P}),Object.defineProperty(A,"overrideCompleted",{value:I})}function Preloader(e){function t(){return Util.isSet(c)?c.url:""}function n(){return d>0?f/d:0}function r(){Util.isSet(c)&&(c.cancel(),c=null,u=[])}function i(){return o()}function a(e){var t=e.slice(e.lastIndexOf(".")+1);switch(t.toLowerCase()){case"gif":case"jpg":case"png":return new ImageLoader}return new BinaryLoader}function o(){var e=d>f;if(e){var t=u[f];c=a(t),c.addEventListener(LoadEvent.LOADED,s),c.load(t)}return e}function s(e){f++,l.dispatchEvent({type:LoadEvent.PROGRESS}),o()||(c=null,l.dispatchEvent({type:LoadEvent.LOADED}))}var l=this;EventDispatcher.apply(l,arguments),Object.defineProperty(l,"url",{get:t}),Object.defineProperty(l,"progress",{get:n}),Object.defineProperty(l,"cancel",{value:r}),Object.defineProperty(l,"start",{value:i});var c=null,u=Util.nullValue(e,[]),d=u.length,f=0}function ResourceEntries(){function e(e){return o.selectItems(ResourceEntryList.SORT_BY_ID,e)}function t(e){return o.getItemById(e)}function n(){o=r(),o.sort(ResourceEntryList.SORT_BY_ID)}function r(){var e=core.manifest.resources,t=new ResourceEntryList;if(Util.isSet(e)){var n=e.entries;if(Util.isSet(n)){var r=null;for(var a in n)n.hasOwnProperty(a)&&(r=$.extend({id:a},n[a]),r.visible=i(r.visible),t.addItem(new ResourceEntryListItem(r)))}}return t}function i(e){if(Util.isSet(e))switch(e.constructor){case Boolean:return e;case String:return""===e||StringUtil.evaluate(StringUtil.parseVars(e))===!0}return!0}var a=this;Object.defineProperty(a,"getEntries",{value:e}),Object.defineProperty(a,"getEntry",{value:t}),Object.defineProperty(a,"init",{value:n});var o=null}function ResourceEntryListFilter(e){function t(e){return e.visible&&(StringUtil.isEmpty(r)?i===e.root:StringUtil.compare(e.id,r))}var n=this;Object.defineProperty(n,"select",{value:t});var r=Util.nullValue(e.id,""),i=Util.nullValue(e.root,!1)}function ResourceEntryListItem(e){function t(){return d}function n(){return f}function r(){return p||m}function i(){return g}function a(){return E}function o(){return m}function s(){return v}function l(){return S}function c(){return h}var u=this;ListItem.apply(u,[e.id]),Object.defineProperty(u,"description",{enumerable:!0,get:t});var d=Util.nullValue(e.description,"");Object.defineProperty(u,"email",{enumerable:!0,get:n});var f=Util.nullValue(e.email,"");Object.defineProperty(u,"group",{get:r});var p=Util.nullValue(e.group,!1);Object.defineProperty(u,"name",{enumerable:!0,get:i});var g=Util.nullValue(e.name,"");Object.defineProperty(u,"phone",{enumerable:!0,get:a});var E=Util.nullValue(e.phone,"");Object.defineProperty(u,"root",{get:o});var m=Util.nullValue(e.root,!1);Object.defineProperty(u,"resources",{get:s});var v=Util.nullValue(e.resources,[]);Object.defineProperty(u,"url",{enumerable:!0,get:l});var S=Util.nullValue(e.url,"");Object.defineProperty(u,"visible",{enumerable:!0,get:c});var h=Util.nullValue(e.visible,!0)}function ResourceEntryList(){function e(){a=[],i.clear()}function t(e,t){return e>=0&&e<r.count?t===ResourceEntryList.SORT_BY_NAME?r.items[a[e]]:r.items[e]:i.getItemByIndex(e,t)}function n(e){e===ResourceEntryList.SORT_BY_NAME?a=ArrayUtil.sortItemsOn(r.items,"name",ArrayUtil.CASE_INSENSITIVE|ArrayUtil.RETURN_INDEXED_ARRAY):i.sort(e)}var r=this,i={};List.apply(r,[]),i.clear=r.clear,Object.defineProperty(r,"clear",{value:e}),i.getItemByIndex=r.getItemByIndex,Object.defineProperty(r,"getItemByIndex",{value:t}),i.sort=r.sort,Object.defineProperty(r,"sort",{value:n});var a=[]}function ScriptEase(p_oPage){function addElements(e,t,n,r){var i=function(t){return addElement(e,t,n,r)};return ObjectUtil.is(t,Array)?t.map(i):i(t)}function event(e,t){applyActions(getActions(t),t,e)}function error(e){console.warn("ScriptEase: "+e)}function addElement(e,t,n,r){var i=function(e,t){var i=$.extend({param:e.getVal("data")},t),a=null;return Util.condition(i.visible,r,!0)&&(a=createElement(i),Util.isSet(a)&&(e.call("add",a,n),a.call("init"),addElements(a,i.children,!1,r),a.call("ready"))),a},a=m_oPage,o=null;return ObjectUtil.is(e,String)?"page"!==e&&(a=getElements(e),Util.isSet(a)||(a=addElement("page",e))):e.length>0&&(a=e),Util.isSet(a)?ObjectUtil.is(t,String)?(o=getElements(t),Util.isSet(o)?a.call("add",o):o=i(a,getElementProperties(t))):ObjectUtil.is(t,Object)&&(o=i(a,t)):error("The element '"+e+"' is invalid."),o}function align(e,t){var n=function(e,t,n){var r=t.split("."),i=getElements(r.shift());if(Util.isSet(i)){var a={x:0,y:0};r.length>0&&(Util.nullValue(n,!0)&&r.push(e.attr("id")),a=i.call("getClipInfo",r.join("."))),Util.isSet(a)&&e.call("align",i,a)}},r=function(e,r){n(r,t[0],t[1])},i=function(e,t,n){align(e[t],n)},a=getElements(e);if(Util.isSet(a))a.length>1?a.each(r):n(a,t[0],t[1]);else{var o=t.shift();o.constructor===String?align(o,t):o.constructor===Array&&ArrayUtil.forEachItem(o,i,[t])}}function animate(e,t){var n=function(e){var n=getElements(e);Util.isSet(n)&&n.animate(o,t[1],t[2],r)},r=function(){$(this).trigger(AnimationEvent.COMPLETE)},i=function(e,t,n){var r=e.split("=");r.length>1&&""!==r[0]&&""!==r[1]&&(o[r[0]]=StringUtil.typeCast(r[1]))},a=StringUtil.isEmpty(e)?t.shift():e,o={},s=t[0].split(";");s.forEach(i),ObjectUtil.is(a,String)?n(a):ObjectUtil.is(a,Array)&&a.forEach(n)}function applyAction(e,t,n){var r=ObjectUtil.is(e,String)?parseAction(e):e;if(ObjectUtil.is(r,Object)){var i=r.command.toLowerCase();switch(i){case ScriptEase.ADD:addElements(r.elementId,r.parameters[0],r.parameters[1],t);break;case ScriptEase.ALIGN:align(r.elementId,r.parameters);break;case ScriptEase.ANIMATE:animate(r.elementId,r.parameters);break;case ScriptEase.ARIA:aria(r.elementId,r.parameters[0],r.parameters[1]);break;case ScriptEase.ATTACH:attachElements(r.elementId,r.parameters);break;case ScriptEase.AUDIO:playAudio(r.parameters[0]);break;case ScriptEase.BRANCH:branch(r.parameters[0],n);break;case ScriptEase.CALC:return calc(r.parameters[0],r.parameters[1]);case ScriptEase.CALL:return elementCall(r.elementId,r.target,r.parameters);case ScriptEase.CLEAR:clear(r.elementId);break;case ScriptEase.CLONE:cloneElement(r.elementId,r.parameters);break;case ScriptEase.ENABLE:setEnabled(r.elementId,r.parameters[0]);break;case ScriptEase.EVALUATE:return evaluate(r.parameters[0],r.parameters[1]);case ScriptEase.EXECUTE:return execute(r,n);case ScriptEase.EXTEND:extend(r.elementId,r.parameters[0]);break;case ScriptEase.FINISH:m_oPage.trigger(PageEvent.FINISH);break;case ScriptEase.FIT:fit(r.elementId,r.parameters);break;case ScriptEase.FORMAT:return format(r.parameters[0],r.parameters[1],r.parameters[2]);case ScriptEase.GET:return getValue(r.elementId,r.parameters[0],r.parameters[1]);case ScriptEase.HIDE:show(StringUtil.isEmpty(r.elementId)?r.parameters:r.elementId,!1);break;case ScriptEase.HIGHLIGHT:highlight(r.elementId,r.parameters);break;case ScriptEase.JS_CALL:return jsCall(r.elementId,r.parameters);case ScriptEase.LOAD:return loadValue(r.elementId,r.parameters[0],r.parameters[1],t);case ScriptEase.NAVIGATE:m_oPage.call("navigate",r.parameters[0],r.parameters[1]);break;case ScriptEase.PLAY:mediaPlay(r.elementId,r.target,r.parameters[0]);break;case ScriptEase.PROP:return prop(r.parameters[0],r.parameters[1],r.parameters[2],t);case ScriptEase.REMOVE:StringUtil.isEmpty(r.elementId)?removeElements(r.parameters):removeElement(r.elementId,r.parameters[0]);break;case ScriptEase.REPLACE:replaceElements(r.elementId,r.parameters[0],t);break;case ScriptEase.RESOURCE:resource(r.parameters[0]);break;case ScriptEase.SAVE:saveValue(r.elementId,r.parameters[0],r.parameters[1],r.parameters[2]);break;case ScriptEase.SELECT:setSelected(r.elementId,r.parameters[0]);break;case ScriptEase.SET:setValue(r.elementId,r.parameters[0],r.parameters[1],r.parameters[2]);break;case ScriptEase.SHOW:show(StringUtil.isEmpty(r.elementId)?r.parameters:r.elementId,!0);break;case ScriptEase.START:start();break;case ScriptEase.STOP:mediaStop(r.elementId,r.target,r.parameters[0]);break;case ScriptEase.STYLE:style(r.elementId,r.parameters);break;case ScriptEase.TRACE:Util.trace.apply(null,r.parameters);break;default:error("The command '"+i+"' is invalid.")}}return{}}function applyActions(e,t,n){var r=function(e,r,i){if(ObjectUtil.is(e,String)){if(!Util.isSet(e.match(/^\s*\/\//))){var a=StringUtil.parseVars(e,t),o=applyAction(a,t,n);ObjectUtil.is(o,Object)&&$.extend(t.prop,o)}}else{var s=Util.nullValue(ScriptEaseBranch.getActions(e,t),[]);applyActions(s,t,n)}},i=ObjectUtil.is(e,Array)?e:[e];return i.forEach(r),t.prop}function aria(e,t,n){var r=getElements(e);if(Util.isSet(r)){var i="role"===t?t:"aria-"+t,a=Util.nullValue(n,"");""===a?r.removeAttr(i):r.attr(i,a)}}function attachElement(e,t,n,r){var i=e[t];if(ObjectUtil.is(i,Array))ArrayUtil.forEachItem(i,attachElement,[n,r]);else{var a=getElements(i);a.call("align",n,r)}}function attachElements(e,t){var n=e.split("."),r=getElements(n.shift());if(Util.isSet(r)){var i=n.join(".");ArrayUtil.forEachItem(t,attachElement,[r,i])}}function branch(e,t){applyAction(select(e),t)}function calc(e,t){var n={};return n[e]=StringUtil.evaluate(t),n}function clear(e){var t=getElements(e);Util.isSet(t)&&t.call("clear")}function cloneElement(e,t){var n=getElements(e),r=null;return Util.isSet(n)&&(r=getElements(t),Util.isSet(r)&&(r=addElement("page",t)),Util.isSet(r)&&n.clone().appendTo(r)),n}function compareParameters(e,t){var n=function(e,n){var i=StringUtil.resolve(n,t);if(Util.isSet(i)){var a=e[n],o=a.constructor;if(o===String&&o===i.constructor){var s=[],l=StringUtil.parseVars(a,t),c=StringUtil.compare(i,l,s);return r[n.replace(".","_")]=s.slice(1),c}return a===i}return!1},r={},i=!Util.isSet(e.parameters)||ObjectUtil.some(e.parameters,n);return i&&(Util.isSet(e.index)?t.match[e.index]=r:t.match=r),i}function concatenateActions(e,t){var n=function(e,n,i){e.index=n,compareParameters(e,t)&&(r=r.concat(e.actions))},r=[];return e.forEach(n),r}function createElement(e){var t=null;if(Util.isSet(e)){var n=Util.nullValue(e.elementType,"Element");if(""!==n){var r=StringUtil.evaluate(n);if(Util.isSet(r)&&r.hasOwnProperty("generate")){var i={resourcePath:m_oPageNode.id+"."+e.id,resourceId:m_oPageNode.id+"-"+e.id};t=r.generate($.extend(i,e))}}}return t}function elementCall(e,t,n){var r=getElements(e),i={};if(Util.isSet(r)&&n.length>0){var a=n[0].toLowerCase(),o=n.slice(1);r.call("scriptAction",a,t,o,i)}return i}function evaluate(e,t){var n={};return n[e]=select(t),n}function execute(e,t){var n=function(e){if(!StringUtil.isEmpty(e)){var n=r[e];Util.isSet(n)?$.extend(i,applyActions(n.actions,a,t)):error("The script function '"+e+"' has not been declared.")}},r=m_oPageNode.script.functions,i={};if(Util.isSet(r)){var a={config:core.config,core:core.data,element:t.getVal("data"),param:e.parameters,page:m_oPage.getVal("data"),prop:{}},o=e.elementId,s=o.match(/\[([^\]]*)\]/);if(Util.isSet(s)){var l=s[1].split(",");l.forEach(n)}else n(o)}else error("No script functions have been declared.");return i}function extend(e,t){var n=getElementProperties(e);if(Util.isSet(n)){var r=getElementProperties(t);Util.isSet(r)&&$.extend(n,r,{id:n.id})}}function fit(e,t){var n=function(e,t,n){var r=t.split("."),i=getElements(r.shift());if(Util.isSet(i)){var o={width:i.outerWidth(),height:i.outerHeight()};r.length>0&&(Util.nullValue(n,!0)&&r.push(e.attr("id")),o=i.call("getClipInfo",r.join("."))),Util.isSet(o)&&(e.outerWidth(o.width*a),e.outerHeight(o.height*a))}},r=function(e,r){n(r,t[0],t[1])},i=function(e,t,n){fit(e[t],n)},a=1/core.scale,o=getElements(e);if(Util.isSet(o))o.length>1?o.each(r):n(o,t[0],t[1]);else{var s=t.shift();Util.isSet(s)&&(s.constructor===String?fit(s,t):s.constructor===Array&&ArrayUtil.forEachItem(s,i,[t]))}}function format(e,t,n){var r=function(e,t){var n=e.length;return n>t?e.substr(0,t):t>n?e+i(t-n):e},i=function(e){return String(Math.pow(10,e)).slice(1)},a=function(e){for(var t=e.length,n=3,r=t%n,i=r>0?[e.substr(0,r)]:[];t>r;)i.push(e.substr(r,n)),r+=n;return i.join(",")},o=ObjectUtil.is(t,String)?Number(t):t,s={};if(ObjectUtil.is(o,Number)&&!isNaN(o)){var l=String(o),c=l.split(".");if(n.indexOf("k")>-1&&(c[0]=a(c[0])),n.indexOf("i")>-1)c=c.slice(0,1);else{var u=n.match(/f(\d+)/);if(Util.isSet(u)){var d=Number(u[1]);d>0?c[1]=r(c[1],d):c=c.slice(0,1)}}s[e]=c.join(".")}else s[e]=o;return s}function getActions(e){var t=m_oPageNode.script.events,n=[];if(Util.isSet(t)){var r=ObjectUtil.findProperties(t,e.event.elementId);if(r.length>0){var i=r[0].value;if(Util.isSet(i)){e.regex=r[0].match.slice(1),e.match={};var a=Util.nullValue(e.event.eventType,""),o=i[a];if(Util.isSet(o))if(o.constructor===Object){if(compareParameters(o,e))return o.actions}else if(o.constructor===Array)return concatenateActions(o,e)}}}return n}function getElements(e){var t=Util.nullValue(e,"");if("audio"===t)return core.audio;if("page"===t)return m_oPage;if(""!==t){var n=m_oPage.getElementsById(t);return n.length>0?n:null}return null}function getElementProperties(e){var t="page"===e?m_oPageNode:m_oPageNode.elements[e];return Util.isSet(t)||(t=core.course.findPage(e),Util.isSet(t)||error("The element '"+e+"' has not been declared.")),t}function getValue(e,t,n){var r=Util.nullValue(n,t),i=getElements(e),a={},o=null;if(Util.isSet(i))o=i.getVal(t);else{var s=getElementProperties(e);Util.isSet(s)&&(o=s[t])}return Util.isSet(o)&&(a[r]=o),a}function highlight(e,t){var n=function(e,t,n){e.constructor===Boolean?i.call("highlight",e):e.constructor===Array&&r(e[0],e[1])},r=function(e,t){if(e.constructor===String)i.call("highlightOption",e,t);else if(e.constructor===Array)for(var n=e.length,r=0;n>r;r++)i.call("highlightOption",e[r],t)},i=getElements(e);Util.isSet(i)&&t.forEach(n)}function jsCall(e,t){var n=t.shift();if(Util.isSet(e)){var r=getElements(e);if(Util.isSet(r))return r.call("jsCall",n,t)}else{var i=core.pageScript.global;if(Util.isSet(i)){var a=i[n];if(ObjectUtil.is(a,Function))return Util.nullValue(a.apply(null,t),{})}}return{}}function loadValue(e,t,n,r){var i=getElements(e),a={},o=null;if(Util.isSet(i))o=i.call("getVal",t);else{var s=getElementProperties(e);if(Util.isSet(s)){var l=$.extend({},s.data,s.param);o=l[t]}}return Util.isSet(o)?a[t]=o.constructor===String?StringUtil.parseVars(o,r):o:a[t]=n,a}function mediaPlay(e,t,n){var r=getElements(e);if(Util.isSet(r)){var i=r.getVal("elementType");"SvgAnimator"===i?r.call("play",n,t):r.call("play",Number(n))}}function mediaStop(e,t,n){var r=getElements(e);if(Util.isSet(r)){var i=r.getVal("elementType");if("SvgAnimator"===i)r.call("stop",n,t);else{var a=Number(n);r.call("stop",isNaN(a)?0:a)}}}function parseAction(e){if(!StringUtil.isEmpty(e)){var t=e.match(/([^:\s]+)\s*(?::(.*))?/),n={};if(Util.isSet(t)){var r=t[1],i=Util.nullValue(t[2],"");if(!StringUtil.isEmpty(r)){var a=r.split(".");n.command=a.pop(),n.elementId=a.shift(),n.target=a.join(".")}n.parameters=StringUtil.isEmpty(i)?[]:Evaluator.parse("["+i+"]")}return n}return null}function playAudio(e){core.audio.call("stop");var t=[m_oPage.getVal("id"),e];m_oPage.call("playAudio",t.join("-"),e)}function prop(p_sProperty,p_sExpression,p_sRegExp,p_oData){var oProperties={},sExpression=Util.nullValue(p_sExpression,""),oValue=null;if(StringUtil.isEmpty(p_sRegExp))try{oValue=eval(sExpression)}catch(p_oError){oValue=StringUtil.typeCast(sExpression)}else oValue=StringUtil.typeCast(StringUtil.getRegExpGroups(sExpression,p_sRegExp));return oProperties[p_sProperty]=oValue,oProperties}function removeElement(e,t){var n=getElements(e);Util.isSet(n)&&n.call("remove",t)}function removeElements(e){for(var t=e.length,n=0;t>n;n++)removeElement(e[n],!1)}function replaceElement(e,t,n){var r=function(e,t){var r=createElement(t);return Util.isSet(r)&&(e.replaceWith(r),r.call("init"),addElements(r,t.children,!1,n),r.call("ready")),r},i=null,a=null;return ObjectUtil.is(e,String)?i=getElements(e):e.length>0&&(i=e),Util.isSet(i)?ObjectUtil.is(t,String)?(a=getElements(t),Util.isSet(a)?i.replaceWith(a):a=r(i,getElementProperties(t))):ObjectUtil.is(t,Object)&&(a=r(i,t)):error("The element '"+e+"' is invalid."),a}function replaceElements(e,t,n){var r=function(t){replaceElement(e,t,n)};ObjectUtil.is(t,Array)?t.forEach(r):r(t)}function resource(e){if(!StringUtil.isEmpty(e)){var t=core.resources.getEntry(e);Util.isSet(t)&&(StringUtil.isEmpty(t.url)||window.open(t.url))}}function saveValue(e,t,n,r){if(Util.isSet(t)&&Util.isSet(n)){var i=StringUtil.typeCast(n),a=getElementProperties(e);if(Util.isSet(a)){var o=Util.nullValue(r,!1),s=o?"param":"data",l=Util.nullValue(a[s],{});l[t]=i,a[s]=l;var c=getElements(e);Util.isSet(c)&&c.call("setVal",t,i)}}else error("Invalid call to action '"+ScriptEase.SAVE+"'.")}function select(e){var t=e.split("?"),n=t.shift(),r=StringUtil.evaluate(n);if(t.length>0){var i=t[0].split(";");return r.constructor===Boolean?r?i[0]:Util.nullValue(i[1],""):selectValue(n,i)}return r}function selectValue(e,t){var n=function(t,n,i){var a=t.split("|"),o=!1;if(a.length>1){var s=(Util.isSet(a[0].match(/^(?:[!=]=|[<>]=?)[^!=<>]+/))?"":"==")+a[0];o=StringUtil.evaluate(e+s),o&&(r=a[1])}else r=a[0];return o},r=null;return t.some(n),r}function setEnabled(e,t){var n=getElements(e);if(Util.isSet(n)){var r=Util.nullValue(t,!0);n.call("setEnabled",r)}}function setSelected(e,t){var n=getElements(e);if(Util.isSet(n)){var r=Util.nullValue(t,!0);n.call("setSelected",r)}}function setValue(p_sElementId,p_sProperty,p_sExpression,p_bPersist){var oElementProperties=getElementProperties(p_sElementId);if(Util.isSet(oElementProperties)){var oValue=null;try{oValue=eval(p_sExpression)}catch(p_oError){oValue=StringUtil.typeCast(p_sExpression)}p_bPersist&&(oElementProperties[p_sProperty]=oValue);var oElement=getElements(p_sElementId);Util.isSet(oElement)&&oElement.setVal(p_sProperty,oValue)}}function show(e,t){var n=function(e){m_oPage.getElementsById(e).visible(t)};e.constructor===String?n(e):e.constructor===Array&&e.forEach(n)}function start(){core.audio.call("stop"),m_oPage.trigger(PageEvent.START)}function style(e,t){var n=function(e,t,n){if(Util.isSet(e)){var i=!0;Util.isSet(n)&&(i=n.constructor===String?StringUtil.evaluate(n):n===!0),t.constructor===String?e.toggleClass(t,i):t.constructor===Array&&ArrayUtil.forEachItem(t,r,[e,i])}},r=function(e,t,r,i){n(r,e[t],i)},i=function(e,t,n){style(e[t],n)};if(StringUtil.isEmpty(e)){var a=t.shift();a.constructor===String?style(a,t):a.constructor===Array&&ArrayUtil.forEachItem(a,i,[t])}else n(getElements(e),t[0],t[1])}var _this=this;EventDispatcher.apply(_this,[]),Object.defineProperty(_this,"addElements",{value:addElements}),Object.defineProperty(_this,"event",{value:event}),Object.defineProperty(_this,"error",{value:error});var m_oPage=p_oPage,m_oPageNode=m_oPage.getVal("pageNode")}function ListFilter(){function e(e){return!0}var t=this;Object.defineProperty(t,"select",{value:e})}function ListItem(e){function t(){return i}function n(e){return i===e}var r=this;EventDispatcher.apply(r,[]),Object.defineProperty(r,"id",{enumerable:!0,get:t});var i=Util.nullValue(e,"");Object.defineProperty(r,"selectById",{value:n})}function ListIterator(e,t,n){function r(){for(var e=0,t=v.clone(),n=t.moveFirst();Util.isSet(n);)e++,n=t.moveNext();return e}function i(){return h.getItemByIndex(S,b)}function a(){return S}function o(){return new ListIterator(h,b,O)}function s(){return E(S+1)!==List.ITEM_NOT_FOUND}function l(){return m(S-1)!==List.ITEM_NOT_FOUND}function c(){return Util.isSet(v.currentItem)}function u(){return S=E(0),v.currentItem}function d(){return S=m(h.count-1),v.currentItem}function f(){return S=E(S+1),v.currentItem}function p(){return S=m(S-1),v.currentItem}function g(e){for(var t=Util.nullValue(e,""),n=v.clone(),r=n.moveFirst(),i=null,a=[];Util.isSet(r);)i=n.currentItem,a.push(""!==t?i[t]:i),r=n.moveNext();return a}function E(e){var t=h.getItemByIndex(e,b);return Util.isSet(t)?O.select(t)?e:E(e+1):List.ITEM_NOT_FOUND}function m(e){var t=h.getItemByIndex(e,b);return Util.isSet(t)?O.select(t)?e:m(e-1):List.ITEM_NOT_FOUND}var v=this;Object.defineProperty(v,"count",{get:r}),Object.defineProperty(v,"currentItem",{get:i}),Object.defineProperty(v,"currentIndex",{get:a});var S=0;Object.defineProperty(v,"clone",{value:o}),Object.defineProperty(v,"hasNext",{value:s}),Object.defineProperty(v,"hasPrevious",{value:l}),Object.defineProperty(v,"isValid",{value:c}),Object.defineProperty(v,"moveFirst",{value:u}),Object.defineProperty(v,"moveLast",{value:d}),Object.defineProperty(v,"moveNext",{value:f}),Object.defineProperty(v,"movePrevious",{value:p}),Object.defineProperty(v,"toArray",{value:g});var h=e,b=Util.nullValue(t,""),O=Util.nullValue(n,new ListFilter)}function List(){function e(){return E}function t(){return E.length}function n(e){var t=i(e.id);return t===List.ITEM_NOT_FOUND?(E.push(e),e.dispatchEvent({type:ListEvent.ADDED_TO_LIST,list:g}),g.dispatchEvent({type:ListEvent.ITEM_ADDED,item:e}),e):null}function r(){E=[],m=[],v=[]}function i(e){for(var t=e.toLowerCase(),n=g.count,r=null,i=0;n>i;i++)if(r=E[i],Util.isSet(r)&&r.id.toLowerCase()===t)return i;return List.ITEM_NOT_FOUND}function a(e){var t=g.getIndexById(e);return t===List.ITEM_NOT_FOUND?null:E[t]}function o(e,t){var n=p(e,t);return n===List.ITEM_NOT_FOUND?null:E[n]}function s(e){return Util.isSet(g.getItemById(e.id))}function l(e){return g.removeItemById(e.id)}function c(e){var t=g.getIndexById(e);return g.removeItemByIndex(t)}function u(e,t){var n=p(e,t),r=n!==List.ITEM_NOT_FOUND;return r&&E.splice(n,1),r}function d(e,t){return g.sort(e),new ListIterator(g,e,t)}function f(e){var t=ArrayUtil.CASE_INSENSITIVE|ArrayUtil.RETURN_INDEXED_ARRAY;e===List.SORT_BY_ID?m=ArrayUtil.sortItemsOn(E,"id",t):e===List.SORT_RANDOMLY&&(v=ArrayUtil.sortItems(E,t,ArrayUtil.randomized))}function p(e,n){if(e>=0&&e<t()){switch(n){case List.SORT_BY_ID:return m[e];case List.SORT_RANDOMLY:return v[e];case List.UNSORTED:}return e}return List.ITEM_NOT_FOUND}var g=this;EventDispatcher.apply(g,[]),Object.defineProperty(g,"items",{get:e});var E=[];Object.defineProperty(g,"count",{get:t}),Object.defineProperty(g,"addItem",{value:n}),Object.defineProperty(g,"clear",{configurable:!0,value:r}),Object.defineProperty(g,"getIndexById",{value:i}),Object.defineProperty(g,"getItemById",{value:a}),Object.defineProperty(g,"getItemByIndex",{configurable:!0,value:o}),Object.defineProperty(g,"hasItem",{value:s}),Object.defineProperty(g,"removeItem",{value:l}),Object.defineProperty(g,"removeItemById",{value:c}),Object.defineProperty(g,"removeItemByIndex",{value:u}),Object.defineProperty(g,"selectItems",{value:d}),Object.defineProperty(g,"sort",{configurable:!0,value:f});var m=[],v=[]}function NodeList(e){function t(){return r}var n=this;List.apply(n,[]),Object.defineProperty(n,"parent",{get:t});var r=e}function Node(e){function t(){return h.count}function n(){return h}function r(){return S.childCount>0}function i(){return Util.isSet(b)?b.getChildIndexById(S.id):List.ITEM_NOT_FOUND}function a(){return!Util.isSet(b)}function o(){return b}function s(){return S.isRoot?S:b.root}function l(e){return h.addItem(e)}function c(){var e=function(e){t.addItem(e)},t=new List;return e(S),S.forEachChild(e),t}function u(e){return h.getItemById(e)}function d(e){return h.getItemByIndex(e)}function f(e){return h.getIndexById(e)}function p(e){return b===e;
}function g(e){return p(e)||Util.isSet(b)&&b.isDescendantOf(e)}function E(e,t){return h.selectItems(e,t)}function m(e,t){for(var n=Util.nullValue(t,[]),r=S.selectChildren(),i=r.moveFirst(),a=0;Util.isSet(i)&&2>a;)a=Util.nullValue(e.apply(null,[i].concat(n)),0),1>a&&(a=i.forEachChild(e,n)),i=r.moveNext();return a}function v(e){b=e.list.parent}var S=this;ListItem.apply(S,[e]),Object.defineProperty(S,"childCount",{get:t}),Object.defineProperty(S,"children",{get:n});var h=new NodeList(S);Object.defineProperty(S,"hasChildren",{get:r}),Object.defineProperty(S,"index",{get:i}),Object.defineProperty(S,"isRoot",{get:a}),Object.defineProperty(S,"parent",{get:o});var b=null;Object.defineProperty(S,"root",{get:s}),Object.defineProperty(S,"addChild",{value:l}),Object.defineProperty(S,"flatten",{value:c}),Object.defineProperty(S,"getChildById",{value:u}),Object.defineProperty(S,"getChildByIndex",{value:d}),Object.defineProperty(S,"getChildIndexById",{value:f}),Object.defineProperty(S,"isChildOf",{value:p}),Object.defineProperty(S,"isDescendantOf",{value:g}),Object.defineProperty(S,"selectChildren",{value:E}),Object.defineProperty(S,"forEachChild",{value:m}),this.addEventListener(ListEvent.ADDED_TO_LIST,v)}function CTreeWalker(e,t,n){function r(){return E.length>0?E[0].currentItem:g}function i(){return g}function a(){var e=currentNode.children.selectItems(m,v),t=e.moveFirst();return Util.isSet(t)&&E.unshift(e),t}function o(){var e=currentNode.children.selectItems(m,v),t=e.moveLast();return Util.isSet(t)&&E.unshift(e),t}function s(){var e=a();if(!Util.isSet(e)){var t=null;do e=l(),t=c();while(!Util.isSet(e)&&Util.isSet(t))}return e}function l(){return E.length>0?E[0].moveNext():null}function c(){var e=currentNode.parent;return Util.isSet(e)&&E.shift(),e}function u(){var e=d();if(Util.isSet(e))for(var t=o();Util.isSet(t);)e=t,t=o();else e=c();return e}function d(){return E.length>0?E[0].movePrevious():null}function f(){E=[]}var p=this;Object.defineProperty(p,"currentNode",{get:r}),Object.defineProperty(p,"rootNode",{get:i});var g=e;Object.defineProperty(p,"firstChild",{value:a}),Object.defineProperty(p,"lastChild",{value:o}),Object.defineProperty(p,"nextNode",{value:s}),Object.defineProperty(p,"nextSibling",{value:l}),Object.defineProperty(p,"parentNode",{value:c}),Object.defineProperty(p,"previousNode",{value:u}),Object.defineProperty(p,"previousSibling",{value:d}),Object.defineProperty(p,"reset",{value:f});var E=[],m=Util.nullValue(t,""),v=Util.nullValue(n,new ListFilter)}function AjaxLoader(e){function t(t){if(a=Util.nullValue(t,""),""!==a){Debugger.write("Loading ("+a+").");var i=$.ajax({url:a,dataType:e});i.done(n),i.fail(r)}}function n(e){Debugger.write("Load succeeded ("+a+").",1),i.dispatchEvent({type:LoadEvent.LOADED,success:!0,url:a,data:e})}function r(){Debugger.write("Load failed ("+a+").",2),i.dispatchEvent({type:LoadEvent.LOADED,success:!1,url:a})}var i=this;EventDispatcher.apply(i,arguments),Object.defineProperty(i,"load",{value:t});var a=""}function BinaryLoader(){function e(){return s}function t(){Util.isSet(l)&&(l.abort(),l=null)}function n(e){t(),s=Util.nullValue(e,""),StringUtil.isEmpty(s)||(Debugger.write("Loading ("+s+")."),l=$.ajax({url:s,type:"GET",dataType:"binary",processData:!1,contentType:r(s)}),l.done(i),l.fail(a))}function r(e){var t=e.slice(e.lastIndexOf(".")+1);return Util.nullValue(ContentType[t],"")}function i(e){l=null,Debugger.write("Load succeeded ("+s+").",1),o.dispatchEvent({type:LoadEvent.LOADED,success:!0,url:s,data:e})}function a(){l=null,Debugger.write("Load failed ("+s+").",2),o.dispatchEvent({type:LoadEvent.LOADED,success:!1,url:s})}var o=this;EventDispatcher.apply(o,arguments),Object.defineProperty(o,"url",{get:e});var s="";Object.defineProperty(o,"cancel",{value:t}),Object.defineProperty(o,"load",{value:n});var l=null}function History(e){function t(){return l[s]}function n(e){l=l.slice(0,s+1);var t=l.push(e);t>o&&(l.shift(),t--),s=t-1}function r(){return s=Math.min(l.length-1,s+1),t()}function i(){return s=Math.max(0,s-1),t()}var a=this;Object.defineProperty(a,"currentItem",{get:t}),Object.defineProperty(a,"addItem",{value:n}),Object.defineProperty(a,"moveNext",{value:r}),Object.defineProperty(a,"movePrevious",{value:i});var o=e,s=0,l=[]}function HtmlLoader(){var e=this;AjaxLoader.apply(e,["html"])}function ImageLoader(){function e(){return o}function t(){Util.isSet(s)&&(s.src="",s=null)}function n(e){t(),o=Util.nullValue(e,""),StringUtil.isEmpty(o)||(Debugger.write("Loading ("+o+")."),s=new Image,s.addEventListener(LoadEvent.LOAD,r),s.addEventListener(LoadEvent.ERROR,i),s.src=o)}function r(e){Debugger.write("Load succeeded ("+o+").",1),a.dispatchEvent({type:LoadEvent.LOADED,success:!0,url:o,data:e.target})}function i(e){Debugger.write("Load failed ("+o+").",2),a.dispatchEvent({type:LoadEvent.LOADED,success:!1,url:o})}var a=this;EventDispatcher.apply(a,arguments),Object.defineProperty(a,"url",{get:e});var o="";Object.defineProperty(a,"cancel",{value:t}),Object.defineProperty(a,"load",{value:n});var s=null}function JSONLoader(){function e(e,r){if(i=e,!StringUtil.isEmpty(i)){Debugger.write("Loading ("+i+").");var a=$.getJSON(i,r);return a.done(t),a.fail(n),!0}return!1}function t(e,t,n){Debugger.write("Load succeeded ("+i+").",1),r.dispatchEvent({type:LoadEvent.LOADED,success:!0,url:i,data:e,jqxhr:n})}function n(e){Debugger.write("Load failed ("+i+").",2),r.dispatchEvent({type:LoadEvent.LOADED,success:!1,url:i,jqxhr:e})}var r=this;EventDispatcher.apply(r,arguments),Object.defineProperty(r,"load",{value:e});var i=""}function JSONMergeLoader(){function e(){if(r.length>0){var e=new JSONLoader;e.addEventListener(LoadEvent.LOADED,t),e.load(r.shift())}else n.dispatchEvent({type:LoadEvent.LOADED,success:!0,data:a})}function t(t){t.success?(i?$.extend(a,t.data):$.extend(!0,a,t.data),e()):n.dispatchEvent({type:LoadEvent.LOADED,success:!1})}var n=this;EventDispatcher.apply(this,arguments);var r=null,i=!1,a=null;this.load=function(t,n){r=t,i=Util.nullValue(n,!1),a={},e()}}function SvgLoader(){function e(e){var n=new TextLoader;n.addEventListener(LoadEvent.LOADED,t),n.load(e)}function t(e){n.dispatchEvent({type:LoadEvent.LOADED,success:!0,url:e.url,data:$(e.data)})}var n=this;EventDispatcher.apply(n,arguments),Object.defineProperty(n,"load",{value:e})}function TextLoader(){var e=this;AjaxLoader.apply(e,["text"])}function Version(){function e(){return u}function t(e){for(var t=e.toArray(),n=Math.max(u.length,t.length),r={},i=0;n>i;i++){if(r.left=Util.nullValue(u[i],0),r.right=Util.nullValue(t[i],0),r.left>r.right)return 1;if(r.left<r.right)return-1}return 0}function n(e){return-1===t(e)}function r(e){return 1===t(e)}function i(e){return 0===t(e)}function a(){return u.slice()}function o(){return u.join(".")}function s(e){var t=["0"],n=e.length;if(n>0){var r=function(){for(var r=[],i=0,a=0;n>a&&(i=e[a],i.constructor===Number);a++)r.push(String(i));return r.length>0?r:t};if(Util.isSet(e[0])){switch(e[0].constructor){case Array:return e[0];case String:return e[0].split(".")}return r()}}return t}function l(e){var t=[],n=0;for(var r in e)e.hasOwnProperty(r)&&(n=Number(e[r]),t.push(isNaN(n)?0:n));return t.length>0?t:[0]}var c=this;Object.defineProperty(c,"value",{get:e});var u=l(s(arguments));Object.defineProperty(c,"compare",{value:t}),Object.defineProperty(c,"isEarlierThan",{value:n}),Object.defineProperty(c,"isLaterThan",{value:r}),Object.defineProperty(c,"isSameAs",{value:i}),Object.defineProperty(c,"toArray",{value:a}),Object.defineProperty(c,"toString",{value:o})}function XMLLoader(){var e=this;AjaxLoader.apply(e,["xml"])}AskTheExpertEntryList.SORT_BY_QUESTION="sortByQuestion";var AnimationEvent={COMPLETE:"animcomplete"},AssessmentEvent={COMPLETED:"completed",NEXT_QUESTION:"next-question",SHOW_QUESTION:"show-question"},CertificateEvent={CERTIFICATE_ERROR:"certificate-error"},ClassEvent={INIT:"init"},ConfigEvent={CHANGE:"change"},CoreEvent={DATA:"data",SETTING:"setting"},CourseEvent={NAVIGATE:"navigate"},DialogEvent={RESPONSE:"response"},DragEvent={DRAG:"drag",DROP:"drop",END:"dragend",ENTER:"dragenter",EXIT:"dragexit",FINISH:"dragfinish",LEAVE:"dragleave",OVER:"dragover",START:"dragstart"},ElementEvent={ADDED:"added",CHANGE:"change",ENABLED:"enabled",HOVER:"hover",INIT:"init",JS_ECHO:"jsecho",READY:"ready",REMOVED:"removed",RESELECT:"reselect",SELECT:"select",STATE:"state"},FocusEvent={BLUR:"blur",FOCUS:"focus",FOCUS_IN:"focusin",FOCUS_OUT:"focusout"},GestureEvent={SWIPE:"swipe"},KeyboardEvent={KEY_DOWN:"keydown"},LicenceEvent={VALIDATION_COMPLETED:"validationcompleted",VALIDATION_FAILED:"validationfailed"},ListEvent={ADDED_TO_LIST:"addedtolist",ITEM_ADDED:"itemadded"},LmsEvent={INCOMPATIBLE_DATA:"incompatibledata",INITIALIZATION_SUCCEEDED:"initializationsucceeded",INITIALIZATION_FAILED:"initializationfailed",INVALID_SCORM_VERSION:"invalidscormversion",UNEXPECTED_ERROR:"unexpectederror"},LoadEvent={BEFORE_UNLOAD:"beforeunload",ERROR:"error",LOAD:"load",LOADED:"loaded",PROGRESS:"progress",UNLOAD:"unload"},MediaEvent={ADD_TRACK:"addtrack",CAN_PLAY:"canplay",CUE_CHANGE:"cuechange",DISABLED:"disabled",ENDED:"ended",FRAME:"frame",PAUSE:"pause",PLAY:"play",SEEKED:"seeked",SEEKING:"seeking",TIME_UPDATE:"timeupdate"},MouseEvent={CLICK:"click",DOWN:"mousedown",ENTER:"mouseenter",LEAVE:"mouseleave",MOVE:"mousemove",OUT:"mouseout",OVER:"mouseover",UP:"mouseup"},PageEvent={BOOKMARK:"bookmark",FINISH:"finish",START:"start"},PageNodeEvent={BOOKMARKED:"bookmarked"},ProgressEvent={CONTINUE:"continue",SET_CONTINUE:"setcontinue"},QuestionEvent={CONFIRM:"confirm",RESET:"reset"},SearchEvent={CLEAR_FILTER:"clearfilter",FIND:"find"},ServiceEvent={COMPLETED:"completed"},TextEvent={PARAGRAPH:"paragraph"},TimerEvent={CUE:"cue",TIMEOUT:"timeout"},TouchEvent={CANCEL:"touchcancel",END:"touchend",MOVE:"touchmove",START:"touchstart"},WindowEvent={ORIENTATION_CHANGE:"orientationchange",RESIZE:"resize"},Align={BOTTOM:"bottom",CENTER:"center",LEFT:"left",MIDDLE:"middle",RIGHT:"right",TOP:"top"};GlossaryEntryList.SORT_BY_TERM="sortByTerm",LmsScorm12.ENTRY="cmi.core.entry",LmsScorm12.LESSON_LOCATION="cmi.core.lesson_location",LmsScorm12.LESSON_MODE="cmi.core.lesson_mode",LmsScorm12.LESSON_STATUS="cmi.core.lesson_status",LmsScorm12.SCORE_MAX="cmi.core.score.max",LmsScorm12.SCORE_MIN="cmi.core.score.min",LmsScorm12.SCORE_RAW="cmi.core.score.raw",LmsScorm12.SESSION_TIME="cmi.core.session_time",LmsScorm12.STUDENT_ID="cmi.core.student_id",LmsScorm12.STUDENT_NAME="cmi.core.student_name",LmsScorm12.SUSPEND_DATA="cmi.suspend_data",LmsScorm2004.COMPLETION_STATUS="cmi.completion_status",LmsScorm2004.ENTRY="cmi.entry",LmsScorm2004.LESSON_LOCATION="cmi.location",LmsScorm2004.LESSON_MODE="cmi.mode",LmsScorm2004.SCORE_MAX="cmi.score.max",LmsScorm2004.SCORE_MIN="cmi.score.min",LmsScorm2004.SCORE_RAW="cmi.score.raw",LmsScorm2004.SESSION_TIME="cmi.session_time",LmsScorm2004.STUDENT_ID="cmi.learner_id",LmsScorm2004.STUDENT_NAME="cmi.learner_name",LmsScorm2004.SUCCESS_STATUS="cmi.success_status",LmsScorm2004.SUSPEND_DATA="cmi.suspend_data",LmsScormProxy.NONE=0,LmsScormProxy.LOCAL=1,LmsScormProxy.REMOTE=2,LmsSettings.AUDIO_ENABLED=0,LmsSettings.FOCUS_OUTLINE=1,LmsSettings.HIGH_CONTRAST=2,LmsSettings.VIDEO_SUBTITLES=3,Lms.COMPRESSION_RADIX=36,Lms.RECORD_DELIMITER=";",Lms.FIELD_DELIMITER=",",Lms.deflate=function(e){return StringUtil.binToHex("1"+e)},Lms.inflate=function(e){return StringUtil.hexToBin(e).substr(1)},ScormCompletionStatus.NOT_ATTEMPTED="not attempted",ScormCompletionStatus.INCOMPLETE="incomplete",ScormCompletionStatus.COMPLETED="completed",ScormCompletionStatus.UNKNOWN="unknown",ScormEntry.AB_INITIO="ab-initio",ScormEntry.RESUME="resume";var ScormErrorCode12={NO_ERROR:0,GENERAL_EXCEPTION:101,INVALID_ARGUMENT:201,CANNOT_HAVE_CHILDREN:202,NOT_AN_ARRAY:203,NOT_INITIALIZED:301,NOT_IMPLEMENTED:401,INVALID_SET_VALUE:402,READ_ONLY:403,WRITE_ONLY:404,INCORRECT_DATA_TYPE:405,toString:function(e){switch(e){case ScormErrorCode12.GENERAL_EXCEPTION:return"scorm-general-exception";case ScormErrorCode12.INVALID_ARGUMENT:return"scorm-invalid-argument";case ScormErrorCode12.CANNOT_HAVE_CHILDREN:return"scorm-cannot-have-children";case ScormErrorCode12.NOT_AN_ARRAY:return"scorm-not-an-array";case ScormErrorCode12.NOT_INITIALIZED:return"scorm-not-initialized";case ScormErrorCode12.NOT_IMPLEMENTED:return"scorm-not-implemented";case ScormErrorCode12.INVALID_SET_VALUE:return"scorm-invalid-set-value";case ScormErrorCode12.READ_ONLY:return"scorm-read-only";case ScormErrorCode12.WRITE_ONLY:return"scorm-write-only";case ScormErrorCode12.INCORRECT_DATA_TYPE:return"scorm-incorrect-data-type"}return"scorm-no-error"}},ScormErrorCode2004={NO_ERROR:0,GENERAL_EXCEPTION:101,GENERAL_INITIALIZATION_FAILURE:102,ALREADY_INITIALIZED:103,INSTANCE_TERMINATED:104,TERMINATION_FAILURE:111,TERMINATION_BEFORE_INITIALIZATION:112,TERMINATION_AFTER_TERMINATION:113,GET_BEFORE_INITIALIZATION:122,GET_AFTER_TERMINATION:123,SET_BEFORE_INITIALIZATION:132,SET_AFTER_TERMINATION:133,COMMIT_BEFORE_INITIALIZATION:142,COMMIT_AFTER_TERMINATION:143,ARGUMENT_ERROR:201,GET_FAILURE:301,SET_FAILURE:351,COMMIT_FAILURE:391,UNDEFINED_ELEMENT:401,NOT_IMPLEMENTED:402,VALUE_NOT_INITIALIZED:403,READ_ONLY:404,WRITE_ONLY:405,TYPE_MISMATCH:406,VALUE_OUT_OF_RANGE:407,DEPENDENCY_NOT_ESTABLISHED:408,toString:function(e){switch(e){case ScormErrorCode2004.GENERAL_EXCEPTION:return"scorm-general-exception";case ScormErrorCode2004.GENERAL_INITIALIZATION_FAILURE:return"scorm-general-initialization-failure";case ScormErrorCode2004.ALREADY_INITIALIZED:return"scorm-already-initialized";case ScormErrorCode2004.INSTANCE_TERMINATED:return"scorm-instance-terminated";case ScormErrorCode2004.TERMINATION_FAILURE:return"scorm-termination-failure";case ScormErrorCode2004.TERMINATION_BEFORE_INITIALIZATION:return"scorm-termination-before-initialization";case ScormErrorCode2004.TERMINATION_AFTER_TERMINATION:return"scorm-termination-after-termination";case ScormErrorCode2004.GET_BEFORE_INITIALIZATION:return"scorm-get-before-initialization";case ScormErrorCode2004.GET_AFTER_TERMINATION:return"scorm-get-after-termination";case ScormErrorCode2004.SET_BEFORE_INITIALIZATION:return"scorm-set-before-initialization";case ScormErrorCode2004.SET_AFTER_TERMINATION:return"scorm-set-after-termination";case ScormErrorCode2004.COMMIT_BEFORE_INITIALIZATION:return"scorm-commit-before-initialization";case ScormErrorCode2004.COMMIT_AFTER_TERMINATION:return"scorm-commit-after-termination";case ScormErrorCode2004.ARGUMENT_ERROR:return"scorm-argument-error";case ScormErrorCode2004.GET_FAILURE:return"scorm-get-failure";case ScormErrorCode2004.SET_FAILURE:return"scorm-set-failure";case ScormErrorCode2004.COMMIT_FAILURE:return"scorm-commit-failure";case ScormErrorCode2004.UNDEFINED_ELEMENT:return"scorm-undefined-element";case ScormErrorCode2004.NOT_IMPLEMENTED:return"scorm-not-implemented";case ScormErrorCode2004.VALUE_NOT_INITIALIZED:return"scorm-value-not-initialized";case ScormErrorCode2004.READ_ONLY:return"scorm-read-only";case ScormErrorCode2004.WRITE_ONLY:return"scorm-write-only";case ScormErrorCode2004.TYPE_MISMATCH:return"scorm-type-mismatch";case ScormErrorCode2004.VALUE_OUT_OF_RANGE:return"scorm-value-out-of-range";case ScormErrorCode2004.DEPENDENCY_NOT_ESTABLISHED:return"scorm-dependency-not-established"}return"scorm-no-error"}},ScormErrorCode={NO_ERROR:0,GENERAL_EXCEPTION:101,INVALID_ARGUMENT:201,CANNOT_HAVE_CHILDREN:202,NOT_AN_ARRAY:203,NOT_INITIALIZED:301,NOT_IMPLEMENTED:401,INVALID_SET_VALUE:402,READ_ONLY:403,WRITE_ONLY:404,INCORRECT_DATA_TYPE:405,toString:function(e){switch(e){case ScormErrorCode.GENERAL_EXCEPTION:return"scorm-general-exception";case ScormErrorCode.INVALID_ARGUMENT:return"scorm-invalid-argument";case ScormErrorCode.CANNOT_HAVE_CHILDREN:return"scorm-cannot-have-children";case ScormErrorCode.NOT_AN_ARRAY:return"scorm-not-an-array";case ScormErrorCode.NOT_INITIALIZED:return"scorm-not-initialized";case ScormErrorCode.NOT_IMPLEMENTED:return"scorm-not-implemented";case ScormErrorCode.INVALID_SET_VALUE:return"scorm-invalid-set-value";case ScormErrorCode.READ_ONLY:return"scorm-read-only";case ScormErrorCode.WRITE_ONLY:return"scorm-write-only";case ScormErrorCode.INCORRECT_DATA_TYPE:return"scorm-incorrect-data-type"}return"scorm-no-error"}},ScormLessonMode={BROWSE:"browse",NORMAL:"normal",REVIEW:"review"};ScormLessonStatus.NOT_ATTEMPTED="not attempted",ScormLessonStatus.BROWSED="browsed",ScormLessonStatus.INCOMPLETE="incomplete",ScormLessonStatus.COMPLETED="completed",ScormLessonStatus.FAILED="failed",ScormLessonStatus.PASSED="passed",ScormSessionTime12.HOURS_DIGITS=4,ScormSessionTime12.MINUTES_DIGITS=2,ScormSessionTime12.SECONDS_DIGITS=2,ScormSessionTime12.DECIMAL_DIGITS=2,ScormSuccessStatus.PASSED="passed",ScormSuccessStatus.FAILED="failed",ScormSuccessStatus.UNKNOWN="unknown",ScormSuspendData.SESSION_ID=0,ScormSuspendData.TIME_STAMP=1,ScormSuspendData.COMPATIBILITY_VERSION=2,ScormSuspendData.SETTINGS=3,ScormSuspendData.COURSE_DATA=4,ScormSuspendData.COMPLETED_PAGES=5,ScormSuspendData.BOOKMARKED_PAGES=6,ScormSuspendData.RECOMMENDED_PAGES=7,ScormSuspendData.ASSESSMENT_DATE=8,ScormSuspendData.POLICY_ACCEPTED=9,ScormSuspendData.FRAMEWORK=10,ScormSuspendData.ASSESSMENT_SCORE=11;var AssessmentReattempt={ALWAYS:"always",FAIL:"fail",NEVER:"never"};Assessment.DEFAULT_PASS_MARK=80,Assessment.MAXIMUM_SCORE=100,Assessment.MINIMUM_SCORE=0,Core.FRAMEWORK="fw3";var ErrorCode={CUSTOMISATION_FAILED:"customisationRequirementsFailed",INVALID_CUSTOMIZATION:"invalidCustomization",INVALID_CERTIFICATE:"invalidCertificate",INVALID_LICENCE:"invalidLicence",INVALID_URL:"invalidURL",LICENCE_EXPIRED:"licenceExpired",LMS_INCOMPATIBLE_DATA:"lmsIncompatibleData",LMS_INITIALIZATION_FAILED:"lmsInitializationFailed",LMS_SAVE_FAILED:"lmsSaveFailed",NO_CONTENT:"noContent",NO_ERROR:"noError",SERVICES_COMMUNICATION_ERROR:"servicesCommunicationError"};Licence.REMOTE_TIMEOUT=1e4;var Navigation={ADVANCE:"advance",CHILD_PAGE:"child-page",HOME_PAGE:"home-page",NEXT_PAGE:"next-page",NEXT_SECTION:"next-section",PAGE_BY_ID:"page-by-id",PREVIOUS_PAGE:"previous-page",REPLAY_PAGE:"replay-page"},Path={ASSETS:"assets/",DATA:"data/",course:""},RecordAssessmentResult={HIGHEST_SCORE:"highest-score",LATEST_ATTEMPT:"latest-attempt"},SelectionMode={BUTTON:"button",SWITCH:"switch"},TabOrder={VIEW:1,PAGE_CONTENT:2,FOOTER_BAR_BUTTONS:3,HEADER_BAR_BUTTONS:4,TOOLKIT_BUTTONS:5,PAGE_ICONS:6};ResourceEntryList.SORT_BY_NAME="sortByName";var ScriptEaseBranch={getActions:function(e,t){var n=function(e){var t=e.match(/^\s*compare:(.*)/);return Util.isSet(t)&&(t=t[1].match(/([^,]*),(.*)/),Util.isSet(t))?StringUtil.compare(t[1],t[2]):null},r=function(e){var r="",i=null;for(var a in e)if(e.hasOwnProperty(a))return r=StringUtil.parseVars(a,t),i=n(r),Util.isSet(i)||(i=StringUtil.evaluate(r)),i.constructor===Boolean&&i?e[a]:null;return null},i=function(e){var t=e.constructor;return t===Array?o=e:t===Object&&(o=r(e)),null!=o},a=e.constructor,o=null;return a===Array?e.some(i):a===Object&&(o=r(e)),o}};ScriptEase.ADD="add",ScriptEase.ALIGN="align",ScriptEase.ANIMATE="animate",ScriptEase.ARIA="aria",ScriptEase.ATTACH="attach",ScriptEase.AUDIO="audio",ScriptEase.BRANCH="branch",ScriptEase.CALC="calc",ScriptEase.CALL="call",ScriptEase.CLEAR="clear",ScriptEase.CLONE="clone",ScriptEase.ENABLE="enable",ScriptEase.EVALUATE="evaluate",ScriptEase.EXECUTE="execute",ScriptEase.EXTEND="extend",ScriptEase.FINISH="finish",ScriptEase.FIT="fit",ScriptEase.FORMAT="format",ScriptEase.GET="get",ScriptEase.HIDE="hide",ScriptEase.HIGHLIGHT="highlight",ScriptEase.JS_CALL="jscall",ScriptEase.LOAD="load",ScriptEase.NAVIGATE="navigate",ScriptEase.PLAY="play",ScriptEase.PROP="prop",ScriptEase.REMOVE="remove",ScriptEase.REPLACE="replace",ScriptEase.RESOURCE="resource",ScriptEase.SAVE="save",ScriptEase.SET="set",ScriptEase.SHOW="show",ScriptEase.START="start",ScriptEase.STOP="stop",ScriptEase.STYLE="style",ScriptEase.TRACE="trace",List.ITEM_NOT_FOUND=-1,List.SORT_BY_ID="sortById",List.SORT_RANDOMLY="sortRandomly",List.UNSORTED="unsorted";var ArrayUtil={CASE_INSENSITIVE:1,DESCENDING:2,UNIQUE_SORT:4,RETURN_INDEXED_ARRAY:8,NUMERIC:16,every:function(e,t,n){for(var r=e.length,i=0;r>i;i++)if(t.apply(null,[e,i].concat(n))===!1)return!1;return!0},forEachItem:function(e,t,n){for(var r=e.length,i=0;r>i;i++)t.apply(null,[e,i].concat(n))},getFieldValues:function(e,t){for(var n=e.length,r=[],i=0;n>i;i++)r.push(e[i][t]);return r},getItem:function(e,t,n){var r=ArrayUtil.getItemIndex(e,t,n);return r>-1?e[r]:null},getItemIndex:function(e,t,n){for(var r=e.length,i=0;r>i;i++)if(t.apply(null,[e,i].concat(n)))return i;return-1},exists:function(e,t){var n=function(e,n){return e[n]===t};return ArrayUtil.getItemIndex(e,n)>-1},merge:function(e){for(var t=function(t){e.push(t)},n=arguments.length,r=1;n>r;r++)arguments[r].forEach(t);return e},ordered:function(e,t){return e>t?1:t>e?-1:0},orderedLocale:function(e,t){var n=Util.nullValue(core.config.locale,"en-gb"),r=e.localeCompare(t,n);return r>0?1:0>r?-1:0},randomized:function(){var e=10;return Math.round(Math.random()*e*2-e)},removeDuplicates:function(e){var t=function(e){return e===i},n=function(e){i=e,r.some(t)||r.push(e)},r=[],i=null;return e.forEach(n),r},search:function(e,t,n){var r=function(e,n,r){var i=e.constructor;i===s?l(e)&&o.push(e):c&&(i===Array?o=o.concat(ArrayUtil.search(oValue,t)):i===Object&&(o=o.concat(ObjectUtil.search(oValue,t))))},i=function(e){return e===t},a=function(e){return StringUtil.compare(e,t)},o=[],s=t.constructor,l=s===String?a:i,c=Util.nullValue(n,!0);return e.forEach(r),o},some:function(e,t,n){for(var r=e.length,i=0;r>i;i++)if(t.apply(null,[e,i].concat(n))===!0)return!0;return!1},sortItems:function(e,t,n){return ArrayUtil.sortItemsOn(e,"",t,n)},sortItemsOn:function(e,t,n,r){function i(){for(var t=e.length,n=null,r=[],i=0;t>i;i++)n=StringUtil.isEmpty(o)?e[i]:e[i][o],r.push({index:i,value:n});return r}function a(e,t){var n=e,r=t;return StringUtil.isEmpty(o)||(n=n[o],r=r[o]),c&&(n.constructor===String&&(n=n.toLowerCase()),r.constructor===String&&(r=r.toLowerCase())),l(n,r)*f}var o=Util.nullValue(t,""),s=Util.nullValue(n,0),l=Util.nullValue(r,ArrayUtil.ordered),c=Boolean(s&ArrayUtil.CASE_INSENSITIVE),u=Boolean(s&ArrayUtil.RETURN_INDEXED_ARRAY),d=s&ArrayUtil.DESCENDING,f=-2*d+1;if(u){s=(s|ArrayUtil.RETURN_INDEXED_ARRAY)^ArrayUtil.RETURN_INDEXED_ARRAY;var p=ArrayUtil.sortItemsOn(i(),"value",s,l);return ArrayUtil.getFieldValues(p,"index")}return e.slice().sort(a)},toBinStr:function(e){var t=function(e){n+=BooleanUtil.toBinStr(e)},n="";return e.forEach(t),n},toInt:function(e){return parseInt(ArrayUtil.toBinStr(e),2)},toObj:function(e){var t=function(e,t){n[t]=e},n={};return e.forEach(t),n},transpose2D:function(e){var t=function(t,n){var r=function(e){return e[n]};return e.map(r)};return e[0].map(t)}},BooleanUtil={toBinStr:function(e){return e===!0?"1":"0"},xor:function(e,t){return e!==t}},ContentType={gif:"image/gif",jpg:"image/jpeg",pdf:"application/pdf",png:"image/png"},Crypto={encrypt:function(e){var t=core.config["rsa-public-key"];if(Util.isSet(t)){var n=new RSAKey;return n.setPublic(t.n,t.e),n.encrypt(e)}return""}},DateUtil={format:function(e){var t=Util.nullValue(core.config.locale,"en-gb");return e.toLocaleDateString(t)},toString:function(e){var t=e.getDate(),n=e.getMonth()+1,r=[e.getFullYear()];return r.push((10>n?"0":"")+n),r.push((10>t?"0":"")+t),r.join("-")}},Debugger={ACTIVE:!1,write:function(e,t){Debugger.ACTIVE&&console.log("DEBUG: "+e)}},DragAxis={HORIZONTAL:1,VERTICAL:2,BOTH:3},Evaluator={parse:function(e){var t=function(e,t,n){n.push(a(e[t]))},n=function(e,t,n){var r=e[t].split(":");n[r[0]]=a(r[1])},r=function(e){var n=[];return StringUtil.isEmpty(e)||ArrayUtil.forEachItem(e.split(","),t,[n]),n},i=function(e){var t={};return StringUtil.isEmpty(e)||ArrayUtil.forEachItem(e.split(","),n,[t]),t},a=function(e){var t=e.match(/\$(\d+)/);return Util.isSet(t)?f[Number(t[1])]:StringUtil.typeCast(e)},o=function(e,t){do d=!1,p=p.replace(e,t);while(d)},s=function(){return u(r(arguments[1]))},l=function(){return u(i(arguments[1]))},c=function(){return u(arguments[2])},u=function(e){d=!0;var t=f.push(e)-1;return"$"+t};if(!StringUtil.isEmpty(e)){var d=!1,f=[],p=e.replace(/('|")((?:\\\1|.)*?)\1/g,c);p=p.replace(/\s*/g,""),o(/\[([^\[]*?)\]/g,s),o(/{([^{]*?)}/g,l);var g=f.length;return g>0?f[g-1]:StringUtil.typeCast(p)}return null},stringify:function(e){var t=function(e){var t=[];if(ObjectUtil.is(e,Array)){for(var n=e.length,r=0;n>r;r++)t.push(Evaluator.stringify(e[r]));return"["+t.join(",")+"]"}for(var i in e)e.hasOwnProperty(i)&&t.push(i+":"+Evaluator.stringify(e[i]));return"{"+t.join(",")+"}"};switch(typeof e){case"object":return t(e);case"string":return'"'+e+'"'}return String(e)}},Key={BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,CONTROL:17,CAPS_LOCK:20,ESCAPE:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,INSERT:45,DELETE:46,NUMBER_0:48,NUMBER_1:49,NUMBER_2:50,NUMBER_3:51,NUMBER_4:52,NUMBER_5:53,NUMBER_6:54,NUMBER_7:55,NUMBER_8:56,NUMBER_9:57,A:65,B:66,C:67,D:68,E:69,F:70,G:71,H:72,I:73,J:74,K:75,L:76,M:77,N:78,O:79,P:80,Q:81,R:82,S:83,T:84,U:85,V:86,W:87,X:88,Y:89,Z:90,KEYPAD_0:96,KEYPAD_1:97,KEYPAD_2:98,KEYPAD_3:99,KEYPAD_4:100,KEYPAD_5:101,KEYPAD_6:102,KEYPAD_7:103,KEYPAD_8:104,KEYPAD_9:105,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,NUM_LOCK:144,COMMA:188,PERIOD:190},KeyboardShortcut={getKeyFunction:function(e){var t=function(e,t){var r=e[t],a=ObjectUtil.is(r,Array)?r.some(n):n(r);return a&&(i=t),a},n=function(e){var t=e;if(ObjectUtil.is(e,String)){var n=e.toUpperCase();t=Key[n]}return r(t)},r=function(t){return t===e},i="";return e===Key.ENTER?i="select":ObjectUtil.some(core.config["keyboard-shortcuts"],t),i}},Layout={getCoordinates:function(e){function t(e){var t={h:!1,v:!1};if(Util.isSet(e)){var n=e.constructor;n===Boolean?(t.h=e,t.v=e):n===Object&&(t.h=Util.nullValue(e.h,!1),t.v=Util.nullValue(e.v,!1))}return t}function n(e){return[]}function r(e){var n=i(e.origin),r=i(e.delta),a=i(e.init),s=t(e.distribute),l=o(e.range),c=Util.nullValue(e.count,0),u=c-1,d=[];s.h?(r.x=Util.nullValue(l.h,0)/u,a.x=n.x):a.x+=n.x,s.v?(r.y=Util.nullValue(l.v,0)/u,a.y=n.y):a.y+=n.y;for(var f=0;c>f;f++)d.push({left:a.x,top:a.y}),a.x+=r.x,a.y+=r.y;return d}function i(e){var t={x:0,y:0};if(Util.isSet(e)){var n=e.constructor;n===Number?(t.x=e,t.y=e):n===Object&&(t.x=Util.nullValue(e.x,0),t.y=Util.nullValue(e.y,0))}return t}function a(e){var t=i(e.origin),n=Util.nullValue(e.delta,0),r=Util.nullValue(e.init,0),a=Util.nullValue(e.radius,0),o=Util.nullValue(e.distribute,!1),s=Util.nullValue(e.range,360),l=Util.nullValue(e.count,0),c=Math.PI/180,u=0,d=null,f=[];o&&(n=s/l);for(var p=0;l>p;p++)u=r*c,d={left:Math.round(Math.cos(u)*a+t.x),top:Math.round(Math.sin(u)*a+t.y)},f.push(d),r+=n;return f}function o(e){var t={h:0,v:0};if(Util.isSet(e)){var n=e.constructor;n===Number?(t.h=e,t.v=e):n===Object&&(t.h=Util.nullValue(e.x,0),t.v=Util.nullValue(e.y,0))}return t}switch(e.type){case"grid":return n(e);case"linear":return r(e);case"radial":return a(e)}return[]}},NumberUtil={bitCount:function(e){for(var t=0;e>0;)t+=1&e,e>>=1;return t},constrain:function(e,t,n){var r=Math.max(t,e),i=isNaN(r)?e:r,a=Math.min(i,n);return isNaN(a)?i:a},divide:function(e,t){return{quotient:Math.floor(e/t),remainder:e%t}},fix:function(e,t){var n=Math.pow(10,t);return Math.round(e*n)/n},getBit:function(e,t){return Boolean(e&1<<t)},inRange:function(e,t,n){return e>=t&&n>=e},isEven:function(e){return Boolean(0&e)},isOdd:function(e){return Boolean(1&e)},nanValue:function(e,t){return isNaN(e)?t:e},setBit:function(e,t,n){var r=Util.nullValue(n,!0);return r?e|1<<t:e&~(1<<t)},kDelimit:function(e){return StringUtil.delimit(String(e),3,",")},toBinArray:function(e){for(var t=e,n=[];t>0;)n.unshift(1&t),t>>>=1;return n},toggleBit:function(e,t){return e^=1<<t}},ObjectUtil={copy:function(e,t,n){var r=function(n,r){var i=Util.nullValue(r,n);e[i]=t[n]},i=function(e){e.constructor===Array?r(e[0],e[1]):e.constructor===String&&r(e)};return n.forEach(i),e},count:function(e){var t=function(){n++},n=0;return ObjectUtil.forEachItem(e,t),n},every:function(e,t,n){for(var r in e)if(e.hasOwnProperty(r)&&t.apply(null,[e,r].concat(n))===!1)return!1;return!0},extend:function(e,t,n){var r=function(e,t,n){var r=e[t],i=n[t];if(ObjectUtil.is(r,Object))n[t]=a(ObjectUtil.is(i,Object)?i:{},r);else if(ObjectUtil.is(r,Array)){var s=!0;ObjectUtil.is(i,Array)&&("join"===o.processArray?(n[t]=i.concat(r),s=!1):"merge"===o.processArray&&(n[t]=r.concat(i.slice(r.length)),s=!1)),s&&"ignore"!==o.processArray&&(n[t]=r.slice())}else n[t]=r},i=function(t){a(e,t)},a=function(e,t){return ObjectUtil.forEachItem(t,r,[e]),e},o=Util.nullValue(n,{});return ObjectUtil.is(t,Object)?i(t):ObjectUtil.is(t,Array)&&t.forEach(i),e},findProperties:function(e,t){var n=function(e,n){var i=[];(StringUtil.compare(n,t,i)||StringUtil.compare(t,n,i))&&r.push({value:e[n],match:i})},r=[];return ObjectUtil.forEachItem(e,n),r},forEachItem:function(e,t,n){for(var r in e)e.hasOwnProperty(r)&&t.apply(null,[e,r].concat(n))},is:function(e,t){return Util.isSet(e)&&e.constructor===t},map:function(e,t,n){var r={};for(var i in e)e.hasOwnProperty(i)&&(r[i]=t.apply(null,[e,i].concat(n)));return r},search:function(e,t,n){var r=function(e,n){var r=e[n],i=r.constructor;i===s?l(r)&&o.push(r):c&&(i===Array?o=o.concat(ArrayUtil.search(r,t)):i===Object&&(o=o.concat(ObjectUtil.search(r,t))))},i=function(e){return e===e},a=function(e){return StringUtil.compare(e,e)},o=[],s=t.constructor,l=s===String?a:i,c=Util.nullValue(n,!0);return ObjectUtil.forEachItem(e,r),o},some:function(e,t,n){for(var r in e)if(e.hasOwnProperty(r)&&t.apply(null,[e,r].concat(n))===!0)return!0;return!1},toArray:function(e){var t=function(e,t){n.push({property:t,value:e[t]})},n=[];return ObjectUtil.forEachItem(e,t),n},toKVP:function(e){var t=function(e,t){n.push(t+"="+e[t])},n=[];return ObjectUtil.forEachItem(e,t),n.join(",")},toQuery:function(e){var t=function(e,t){n.push(t+"="+encodeURIComponent(e[t]))},n=[];return ObjectUtil.forEachItem(e,t),n.join("&")}},ScaleMode={CUSTOM:"custom",FIT_MIN:"fitMin",FIT_MAX:"fitMax",FIT_HEIGHT:"fitHeight",FIT_WIDTH:"fitWidth",NO_SCALE:"noScale"},Search={find:function(e,t){function n(e){return StringUtil.compare(s,e)}function r(e){return s=e,o.some(n)}function i(e){for(var t=/(?:("|')(.+?)\1)|(?:[^"'\s]+)/g,n=t.exec(e),r=[];Util.isSet(n);)r.push(Util.nullValue(n[2],n[0])),n=t.exec(e);return r}var a=i(e),o=i(t),s="";return a.some(r)}},StageAlign={BOTTOM:"B",BOTTOM_LEFT:"BL",BOTTOM_RIGHT:"BR",LEFT:"L",RIGHT:"R",TOP:"T",TOP_LEFT:"TL",TOP_RIGHT:"TR"},StageScaleMode={EXACT_FIT:"exactFit",NO_BORDER:"noBorder",NO_SCALE:"noScale",SHOW_ALL:"showAll"},StringUtil={binToHex:function(e){var t=e.length,n="";if(t>0){var r=4,i=Math.pow(2,r),a=t%r,o=0;a>0&&(o=parseInt(e.substr(0,a),2),o>0&&(n+=o.toString(i)));for(var s=a;t>s;s+=r)o=parseInt(e.substr(s,r),2),n+=o.toString(i)}return n},compare:function(e,t,n){var r=Util.nullValue(e,""),i=r.match(t);return Util.isSet(i)?(ObjectUtil.is(n,Array)&&ArrayUtil.merge(n,i),i[0]===r):!1},delimit:function(e,t,n){var r=e.length,i=r%t,a=[];for(i>0&&a.push(e.substr(0,i));r>i;)a.push(e.substr(i,t)),i+=t;return a.join(n)},empty:function(e,t){return StringUtil.isEmpty(e)?t:e},evaluate:function(p_sExpression,p_bSuppressError){try{return eval(p_sExpression)}catch(p_oError){var bSuppressError=Util.nullValue(p_bSuppressError,!1);bSuppressError||console.error("Cannot evaluate '"+p_sExpression+"'.")}return p_sExpression},getRegExpGroups:function(p_sValue,p_oRegExp){var fGetRegExp=function(p_sRegExp){if(ObjectUtil.is(p_sRegExp,String)){try{var oRegExp=eval(p_sRegExp);if(ObjectUtil.is(oRegExp,RegExp))return oRegExp}catch(oError){}return new RegExp(p_sRegExp)}return null},fGetRegExpGroups=function(e){var t=e.match(oRegExp);return oRegExp.global?(oRegExp=new RegExp(oRegExp.source),t.map(fGetRegExpGroups)):t.slice(1)},oRegExp=ObjectUtil.is(p_oRegExp,RegExp)?p_oRegExp:fGetRegExp(p_oRegExp);return Util.isSet(oRegExp)?fGetRegExpGroups(p_sValue):[];
},getUrlParameters:function(e){var t={};if(!StringUtil.isEmpty(e))for(var n=decodeURIComponent(e).split("&"),r=n.length,i=null,a=0;r>a;a++)i=n[a].split("="),t[i[0]]=StringUtil.typeCast(i[1]);return t},hexToBin:function(e){var t=e.length,n="";if(t>0){var r=4,i=Math.pow(2,r),a=parseInt(e.charAt(0),i);a>0&&(n+=a.toString(2));for(var o=1;t>o;o++)a=parseInt(e.charAt(o),i)|i,n+=a.toString(2).substr(1)}return n},isEmpty:function(e){return!Util.isSet(e)||""===e},ltrim:function(e){return" "===e.charAt(0)?StringUtil.ltrim(e.slice(1)):e},parseKVP:function(e){var t=function(e){var t=e.split("=");n[t[0]]=StringUtil.typeCast(t[1])},n={};if(!StringUtil.isEmpty(e)){var r=e.split(",");r.forEach(t)}return n},parseVars:function(e,t){var n=function(e,n){var r=StringUtil.resolve(n,t);if(Util.isSet(r)){var i=r.constructor;if(i===Array||i===Object)return JSON.stringify(r);if(r!==n)return String(r)}return e};if(ObjectUtil.is(e,String)){var r=e.replace(/\${([^${|}]+)}/,n);return r===e?r:StringUtil.parseVars(r,t)}return e},resolve:function(e,t){var n=Util.nullValue(e,""),r=null;if(!StringUtil.isEmpty(n)){var i=n.split("."),a=i.shift(),o=Util.isSet(t);for(o&&(r=t[a]),Util.isSet(r)||(r=StringUtil.evaluate(a,o));Util.isSet(r)&&i.length>0;)r=r[i.shift()]}return r},rtrim:function(e){return" "===e.charAt(e.length-1)?StringUtil.rtrim(e.slice(0,-1)):e},toArray:function(e){var t=e.match(/\[([^[]*?)\]/);return Util.isSet(t)?t[1].split(","):null},toBoolean:function(e){return ObjectUtil.is(e,String)?"1"===e||"true"===e.toLowerCase():!1},toDate:function(e){function t(e,t){var r=parseInt(e,10),i=!isNaN(r);return i&&(0===t?n.setFullYear(r):1===t?n.setMonth(r-1):2===t&&n.setDate(r)),i}var n=new Date(0),r=e.split("-");return r.every(t)?n:null},tokenize:function(e){var t=function(e,t){for(var i=n.match(e),a=0;Util.isSet(i);)a=r.unshift(i[t])-1,n=n.replace(i[0],"$"+a),i=n.match(e)},n=e,r=[];return t(/('|")(.*?)\1/,2),t(/\[[^\[\]]+\]/,0),t(/\{[^\{\}]+\}/,0),r},trim:function(e){return StringUtil.ltrim(StringUtil.rtrim(e))},typeCast:function(e){if(ObjectUtil.is(e,String)){var t=Number(e);if(!isNaN(t))return t;var n=e.toLowerCase(),r="true"===n;if(r||"false"===n)return r}return e}},Tokenizer={REG_EXP_ARRAY:/\[[^\[]*?\]/g,REG_EXP_OBJECT:/{[^{]*?}/g,REG_EXP_QUOTED_STRING:/('|")(?:\\\1|.)*?\1/g,REG_EXP_UNQUOTED_STRING:/[^,]+/g,REG_EXP_WHITESPACE:/\s*/g,parse:function(e){var t=function(e){do r=!1,o=o.replace(e,n);while(r)},n=function(){return r=!0,i.push(arguments[0]),"$"+a++},r=!1,i=[],a=0,o=e.replace(Tokenizer.REG_EXP_QUOTED_STRING,n);return o=o.replace(Tokenizer.REG_EXP_WHITESPACE,""),t(Tokenizer.REG_EXP_ARRAY),t(Tokenizer.REG_EXP_OBJECT),o=o.replace(Tokenizer.REG_EXP_UNQUOTED_STRING,n),i.push(o),i},stringify:function(e,t){var n=e.length;if(n>0){var r=function(){return i=!0,e[Number(arguments[1])]},i=!1,a=Util.nullValue(t,e[n-1]);do i=!1,a=a.replace(/\$(\d+)/g,r);while(i);return a}return t}},Util={condition:function(e,t,n){var r=function(e){return ObjectUtil.is(e,Boolean)?e:null},i=r(e);return Util.isSet(i)||ObjectUtil.is(e,String)&&""!==e&&(i=r(StringUtil.evaluate(StringUtil.parseVars(e,t)))),Util.isSet(i)?i:Util.nullValue(n,!1)},invScale:function(e,t){return Util.scale(e,1/t)},isSet:function(e){return null!==e&&void 0!==e},nullValue:function(e,t){return Util.isSet(e)?e:t},scale:function(e,t){var n=function(e){return i(e)},r=function(e,t){return i(e[t])},i=function(e){return e*t};switch(e.constructor){case Number:return i(e);case Array:return e.map(n);case Object:return ObjectUtil.map(e,r)}return e},trace:function(){for(var e=arguments.length,t=0;e>t;t++)console.log(arguments[t])}},core=new Core,AskTheExpertElementEntry={generate:function(e){function t(){var e=$("<a/>");return e.attr("aria-hidden",!0),e.attr("name",l.entryId),e}function n(){var e=function(e){return StringUtil.evaluate(StringUtil.parseVars(e))},t={cssClass:"ask-the-expert-element-entry-answer",highContrast:!0,id:l.id+"-answer"},n=Element.generate(t);return n.toggleClass("hide",!l.expanded),n.append(l.answer),n.visibilityFilter(e),o(n),n}function r(){var e={cssClass:"ask-the-expert-element-entry-question",highContrast:!0,id:l.id+"-question"},t=InteractiveElement.generate(e);return t.append(l.question),t}function i(e){var t=Util.nullValue(e,!0),n=function(){l.expanded=t,d.attr("aria-expanded",l.expanded),l.expanded?c.height("auto"):c.addClass("hide")};if(t!==l.expanded){var r={height:0,opacity:0};t&&(c.css("height","auto"),c.removeClass("hide"),r={height:c.outerHeight(),opacity:1},c.height(0)),c.animate(r,200,"easeInOutQuad",n).css("overflow","visible")}}function a(e){i(e?!0:!l.expanded)}function o(e){var t=function(e){var n=e.parent();n.children().length>1?e.remove():t(n)},n=function(e){var n=$(this),i=n.attr("class"),a="";if("ask-the-expert"===i){a=n.data("id");var o=l.entries.getEntryListItem(a);Util.isSet(o)&&Util.nullValue(o.visible,!0)?(n.attr("href","#"+a),""===n.text()&&n.append(o.question)):t(n)}else"glossary"===i&&(o=core.glossary.getEntryListItem(n.data("id")),Util.isSet(o)&&Util.nullValue(o.visible,!0)?n.attr("aria-label",n.html()+". "+core.manifest.player.acc.links[i]):r(n))},r=function(e){var t=$("<span/>");t.append(e.html()),e.replaceWith(t)},i=e.find("a[data-id]");i.attr("tabindex",TabOrder.PAGE_CONTENT),i.each(n)}var s={expand:i,select:a},l={answer:"",cssClass:"ask-the-expert-element-entry",enabled:!0,entryId:"",expanded:!1,id:"ask-the-expert-element-entry",index:0,question:"",role:"listitem"};l=Element.extend(l,e);var c=n(),u=r(),d=Element.generate(l);return d.publicProperties(l),d.publicMethods(s),d.attr("aria-expanded",l.expanded),d.append(t()),d.append(u),d.append(c),d}},AskTheExpertElement={generate:function(e){function t(){var e=function(e){var t=-10,n=e.offset();n.left+=t,e.offset(n),e.animate({left:"-="+t,opacity:1},250,"easeOutQuart",r)},t=function(t,n,r){var i=25;setTimeout(e,i*n,t)},n=function(){o($(this),!0)},r=1===S.length?n:null;S.forEach(t)}function n(){var e={acc:!1,cssClass:"ask-the-expert-element-background",highContrast:!0,id:E.id+"-background"};return Element.generate(e)}function r(){var e={accName:v.acc.entries,cssClass:"ask-the-expert-element-entries scrollable",id:E.id+"-entries",role:"list"},t=Element.generate(e);return t.on(MouseEvent.CLICK,"a.ask-the-expert",u),t.on(KeyboardEvent.KEY_DOWN,"a",d),t.on(ElementEvent.SELECT,f),t}function i(e,t){var n={answer:t.answer,cssClass:"ask-the-expert-element-entry",entries:h,entryId:t.id,id:E.id+"-entry-"+t.id,index:e,question:t.question,elementEntries:T};return AskTheExpertElementEntry.generate(n)}function a(){var e={id:E.id+"-search-bar"};return SearchBar.generate(e)}function o(e,t){if(e.length>0){if(t||!e.getVal("expanded")){var n=(e.getVal("entryId"),Util.invScale(e.offset().top-T.offset().top,core.scale)+T.scrollTop());T.animate({scrollTop:n})}e.call("select",t)}}function s(){b=Util.nullValue(E.param.entryId,""),y.call("setState",StringUtil.isEmpty(b)?"search":"showall"),l(),U.trigger(ElementEvent.INIT)}function l(e,n){S=[],T.animate({scrollTop:0});var r=null;StringUtil.isEmpty(b)?r=h.getEntries(e):(r=h.getEntriesByIds(b),b="");for(var a=r.moveFirst(),s=null;null!==a;)s=i(r.index,a),T.append(s),S.push(s),a=r.moveNext();void 0!==n&&T.promise().done(function(){var e=U.find("#"+n);o(e,!0)}),t()}function c(e){var t=Util.nullValue(e,""),n=!StringUtil.isEmpty(t);if(n){var r=E.id+"-entry-"+t,a=U.find("#"+r);if(a.length>0)o(a,!0);else{var s=h.getEntryListItem(t);Util.isSet(s)&&(a=i(S.length,s),a.animate({opacity:1},"fast"),T.append(a),S.push(a),o(a,!0))}}return n}function u(e){var t=$(e.target);c(t.data("id"))&&e.stopPropagation()}function d(e){if(e.which===Key.ENTER){var t=$(e.target);c(t.data("id"))&&e.stopPropagation()}}function f(e){var t=$(e.target);o(t.parent(),!1)}function p(e){e.stopPropagation(),T.empty(),l()}function g(e,t){e.stopPropagation(),T.empty(),l(t)}var E={cssClass:"ask-the-expert-element",highContrast:!0,id:"ask-the-expert-element"},m={init:s};E=Element.extend(E,e);var v=core.manifest["ask-the-expert"],S=[],h=core.askTheExpert,b="",O=n(),y=a();y.on(SearchEvent.CLEAR_FILTER,p),y.on(SearchEvent.FIND,g);var T=r(),U=Element.generate(E);return U.publicProperties(E),U.publicMethods(m),U.append(O),U.append(y),U.append(T),U}},AssessmentElement={generate:function(e){function t(){S.finish(),y.trigger(AssessmentEvent.COMPLETED)}function n(e){var t=e.pageNode;t.param.questionNode=e;var n=Page.generate($.extend({pageNode:t},t));return n.hide(),n.on(QuestionEvent.CONFIRM,d),n.on(PageEvent.FINISH,f),n.on(ElementEvent.INIT,p),n.on(PageEvent.START,g),n.appendTo(y),n}function r(e){var t={resourcePath:m.resourcePath,resourceId:m.resourceId,score:O},n=AssessmentScoreIndicator.generate($.extend(t,e));return n.on(ProgressEvent.CONTINUE,E),n}function i(){if(S.score<100){var e=core.config["has-assessment-pass-mark"],t=e?S.passMark:80,n=3;return S.score>=t?n=1:S.score>=.65*t&&(n=2),n+(e?1:4)}return 1}function a(){O={currentQuestionMarks:0,availableQuestionMarks:0,currentAssessmentMarks:0,availableAssessmentMarks:0};var e=S.start();y["super"]("init"),o(e)||t()}function o(e){var t=Util.isSet(e);if(t){var r=n(e);y.trigger(AssessmentEvent.NEXT_QUESTION,{questionNode:e}),r.call("init")}return t}function s(e){var t=function(t,r,a){var o=t>e;return o&&(n[0]=i-r),o},n=[1],r=[2,2,1,2],i=r.length,a=[.5,.8,1];a.some(t),n.push(S.questionNumber%2===0?1:2),n.push(Math.floor(Math.random()*r[n[0]-1])+1),h.call("playAudio","assessment-questions-feedback-"+n.join(""))}function l(e,n){var i=h.call("getVal","questionNode");if(i.marks<0&&e>-1){i.marks=e,i.availableMarks=n,O.currentQuestionMarks=i.marks,O.availableQuestionMarks=i.availableMarks,O.currentAssessmentMarks+=O.currentQuestionMarks,O.availableAssessmentMarks+=O.availableQuestionMarks;var a=S.completed;b=r({footerBarState:a?FooterBarState.UNCHANGED:FooterBarState.CONTINUE}),b.appendTo(y);var o=b.css("bottom");b.css({bottom:0,opacity:0}).animate({bottom:o,opacity:1},"fast"),y.trigger(ElementEvent.ADDED,[b]),s(i.score),a&&t()}}function c(e,t,n,r){n.length;"feedback"===e?r.feedback=i():"score"===e?r.score=S.score:"passmark"===e&&(r.passMark=S.passMark)}function u(){S.cancel()}function d(e){var t=$(e.target),n=Util.nullValue(t.call("getAvailableMarks"),0),r=n>0?Util.nullValue(t.call("getMarks"),-1):-1;l(r,n)}function f(e){e.stopPropagation();var t=Util.nullValue(h.call("getVal","availableMarks"),0),n=t>0?Util.nullValue(h.call("getVal","marks"),-1):-1;l(n,t)}function p(e){e.stopPropagation()}function g(e){e.stopPropagation(),S.questionNumber>1&&(core.setLoading(!1),b.remove(),h.remove()),h=$(e.target),h.show();var t={questionPage:h,questionNumber:S.questionNumber,questionCount:S.questionCount};y.trigger(AssessmentEvent.SHOW_QUESTION,t)}function E(e){h.call("unload"),core.setLoading(!0),o(S.nextQuestion())}var m={cssClass:"assessment-element",elementType:"AssessmentElement",id:"assessment-element"},v={init:a,scriptAction:c,unload:u};m=Element.extend(m,e);var S=core.course.assessment,h=null,b=null,O=null,y=Element.generate(m);return y.publicProperties(m),y.publicMethods(v),y}},AssessmentScoreIndicator={generate:function(e){function t(){return o.trigger(ProgressEvent.CONTINUE,{stopAudio:!1}),!0}function n(){var e={cssClass:"assessment-score-indicator-running-score",id:a.id+"-assessment-score",resourcePath:a.resourcePath+".assessment",resourceId:a.resourceId+"-assessment"},t=StringUtil.resolve(e.resourcePath,core.manifest),n=Element.generate(e);return n.append(StringUtil.parseVars(t,a.score)),n}function r(){var e={cssClass:"assessment-score-indicator-running-score",id:a.id+"-question-score",resourcePath:a.resourcePath+".question",resourceId:a.resourceId+"-question"},t=StringUtil.resolve(e.resourcePath,core.manifest),n=Element.generate(e);return n.append(StringUtil.parseVars(t,a.score)),n}var i={advance:t},a={cssClass:"assessment-score-indicator",elementType:"AssessmentScoreIndicator",footerBarState:FooterBarState.CONTINUE,highContrast:!0,id:"assessment-score-indicator",score:{}};a=Element.extend(a,e),a.resourcePath=a.resourcePath+"."+a.id,a.resourceId=a.resourceId+"-"+a.id;var o=Element.generate(a);return o.publicProperties(a),o.publicMethods(i),o.append(r()),o.append(n()),o}},Audio={generate:function(e){function t(){if(l){var e=o.enabled;o.enabled=!0,u.call("load","assets/blank.mp3"),o.enabled=e}}function n(e){l&&(c.push(e),u.prop("paused")&&0===u.prop("currentTime")&&r())}function r(){c.length>0&&(u["super"]("load",c.shift()),u.call("play"))}function i(){l&&(u["super"]("stop"),c=[])}function a(e){r()}var o={element:"<audio/>",elementType:"Audio",id:"audio"},s={init:t,load:n,stop:i};o=Element.extend(o,e);var l=Util.nullValue(core.config["has-audio"],!0),c=[],u=MediaWrapper.generate(o);return u.publicMethods(s),u.on(MediaEvent.ENDED,a),u}},Bitmap={generate:function(e){function t(){i.attr("src",n.src)}var n={cssClass:"bitmap",element:"<img/>",elementType:"Bitmap",height:0,id:"bitmap",src:"",width:0},r={init:t};n=Element.extend(n,e);var i=Element.generate(n);return i.publicProperties(n),i.publicMethods(r),i.attr("alt",n.accName),i.attr("draggable",!1),i.attr("width",n.width),i.attr("height",n.height),i}},ButtonGroup={generate:function(e){function t(e){var t=Util.nullValue(e,"");if(!StringUtil.isEmpty(t)){var n=u.children("#"+t);if(n.length>0)return n[0].click(),!0}return!1}function n(){var e=function(e,t,n){e.cssClass=r(e.cssClass,t),e.enabled=e.enabled!==!1&&l.enabled,e.tabIndex=l.tabIndexOffset,u.append(Button.generate(e))};l.buttons.forEach(e)}function r(e,t){var n=Util.nullValue(e,""),r=["button",n,"group"];return r.join(" ")}function i(e){var t=u.children("#"+e);return t.getVal("enabled")}function a(){var e=function(){var e=$(this),n=e.attr("id");t[n]=e.getVal("enabled")},t={},n=u.children();return n.each(e),t}function o(e){var t=u.children();t.call("setEnabled",e)}function s(e){var t=function(){var t=$(this),n=t.attr("id");e.hasOwnProperty(n)&&t.call("setEnabled",e[n])},n=u.children();n.each(t)}var l={buttons:[],cssClass:"button-group",elementType:"ButtonGroup",enabled:!0,tabIndexOffset:TabOrder.PAGE_CONTENT},c={activate:t,getEnabledButton:i,getEnabledButtons:a,setEnabled:o,setEnabledButtons:s};l=Element.extend(l,e);var u=Element.generate(l);return u.publicProperties(l),u.publicMethods(c),n(),u}},Button={ACCEPT_POLICY:"accept-policy",ASK_THE_EXPERT:"ask-the-expert",BOOKMARK_PAGE:"bookmark-page",BOOKMARKS:"bookmarks",CANCEL:"cancel",CLOSE:"close",CONFIRM:"confirm",CONTINUE:"continue",CONTINUE_NEXT_PAGE:"continue-next-page",CONTINUE_NEXT_SECTION:"continue-next-section",COURSE_SUMMARY:"course-summary",EXIT:"exit",GLOSSARY:"glossary",HELP:"help",HINT:"hint",HOME_PAGE:"home-page",NEXT_PAGE:"next-page",NEXT_TAB:"next-tab",NO:"no",OK:"ok",PAUSE:"pause",PLAY:"play",PREVIOUS_PAGE:"previous-page",PREVIOUS_TAB:"previous-tab",PRINT:"print",REPLAY_PAGE:"replay-page",RESET:"reset",RESOURCES:"resources",RETRY:"retry",SETTINGS:"settings",SKIP:"skip",START_COURSE:"start-course",STOP:"stop",SUBMIT:"submit",SUBTITLES_OFF:"subtitles-off",SUBTITLES_ON:"subtitles-on",TOOLKIT:"toolkit",UNSURE:"unsure",YES:"yes",generate:function(e){function t(){var e=["button-content"];""!==c.icon&&(e=e.concat(["button-icon",c.icon])),e.push(c.showLabel?c.iconPosition:"no-label");var t={cssClass:e.join(" "),id:c.id+"-content"},r=Element.generate(t);return r.append(n()),r}function n(){var e={cssClass:"button-label",id:c.id+"-label"},t=Element.generate(e);return t.append(c.label),t}function r(e){d.toggleClass("hover",e)}function i(e){c.enabled=e,d.prop("disabled",!e),d.call("setAcc",c.enabled),e||r(!1)}function a(e){e.stopPropagation(),d.trigger(ElementEvent.SELECT)}function o(e){r(!0)}function s(e){r(!1)}function l(e){e.stopPropagation(),d.addClass("touch"),r(!1)}var c={cssClass:"button",element:"<button/>",elementType:"Button",enabled:!0,highContrast:!0,icon:"",iconPosition:Align.LEFT,id:"button",label:"",showLabel:!0,tabIndex:0,transparent:!1},u={setEnabled:i};c=Element.extend(c,e),Element.manifestValue(c,"label"),c.accName=c.label;var d=Element.generate(c);return d.publicProperties(c),d.publicMethods(u),d.attr("title",c.showLabel?null:c.label),d.attr("tabindex",c.tabIndex),d.prop("disabled",!c.enabled),d.toggleClass("transparent",c.transparent),d.append(t()),d.on(MouseEvent.CLICK,a),d.on(MouseEvent.ENTER,o),d.on(MouseEvent.LEAVE,s),d.on(TouchEvent.START,l),d}},Cell={generate:function(e){function t(){var e={cssClass:"cell-container "+n.vAlign,id:n.id+"-container"};return Element.generate(e)}var n={cssClass:"cell",elementType:"Cell",id:"cell",vAlign:Align.TOP};n=Element.extend(n,e);var r=t(),i=Element.generate(n);return i.publicProperties(n),i.append(r),i.call("setContainer",r),i}},Checkbox={generate:function(e){function t(){var e={cssClass:"checkbox-selected",id:r.id+"-selected"},t=Element.generate(e);return t.toggleClass("hide",!r.selected),t}function n(e,t){i.toggleClass("hide",!a.call("isSelected"))}var r={cssClass:"checkbox",elementType:"Checkbox",id:"checkbox",role:"checkbox",selected:!1};r=Element.extend(r,e);var i=t(),a=DualStateElement.generate(r);return a.publicProperties(r),a.append(i),a.on(ElementEvent.CHANGE,n),a}},Countdown={generate:function(e){function t(e){if(d.showMinutes){var t=NumberUtil.divide(e,60);return t.quotient+(t.remainder<10?":0":":")+t.remainder}return e}function n(){i(),o(),d.autoStart&&s()}function r(){clearInterval(p)}function i(){g=d.seconds}function a(e,t,n,a){"pause"===e?r():"reset"===e?i():"start"===e?s():"stop"===e&&l()}function o(){E.html(t(g))}function s(){p=setInterval(c,1e3)}function l(){r(),i()}function c(){g>0&&(g--,o(),0===g&&(l(),E.trigger(TimerEvent.TIMEOUT)))}function u(){l()}var d={autoStart:!1,elementType:"Countdown",id:"countdown",role:"timer",seconds:60,showMinutes:!0},f={init:n,pause:r,reset:i,scriptAction:a,start:s,stop:l,unload:u};d=Element.extend(d,e);var p=0,g=0,E=Element.generate(d);return E.publicProperties(d),E.publicMethods(f),E}},CourseMenuElementOption={generate:function(e){function t(){var e=u.duration,t=Math.floor(c.groupNode.calculateDuration()),n=StringUtil.parseVars(e.label,{duration:t}),r={acc:!1,accName:StringUtil.parseVars(e.accName,{duration:n}),cssClass:"course-menu-element-option-duration",id:c.id+"-duration"},i=Element.generate(r);return i.append("("+n+")"),i}function n(e){var t={acc:!1,cssClass:"course-menu-element-option-icon",id:e+"-icon",symbol:"symbols."+e};return Sprite.generate(t)}function r(){var e={acc:!1,cssClass:"course-menu-element-option-label",id:c.id+"-label"},t=Element.generate(e);return t.append(c.label),t}function i(){var e=c.groupNode.getProgress(),t=u["progress-indicator"],n=t.accName,r={};e>0?1>e?(r.progress=Math.round(100*e),r.status=t.started):r.status=t.completed:r.status=t["not-started"];var i={accName:n,cssClass:"course-menu-element-option-progress",id:c.id+"-progress",param:r,progress:e,role:"status"};return RadialProgressIndicator.generate(i)}function a(){var e=u.recommended,t={accName:e,cssClass:"course-menu-element-option-recommended",id:c.id+"-recommended",symbol:"symbols.recommended",title:e},n=Sprite.generate(t);return n.visible(l(c.groupNode)),n}function o(){var e={cssClass:"course-menu-element-option-right-group",id:c.id+"-right-group"},t=Element.generate(e);return t.append(c.groupNode.assessment?s():a()),t}function s(){var e=["course-menu-element-option-score"],t=Util.isSet(core.course.assessment.date)?core.course.assessment.score:-1,n="";t>-1&&(n=t+"%",e.push(core.course.assessment.passed?"passed":"failed"));var r={cssClass:e.join(" "),highContrast:!0,id:c.id+"-score"},i=Element.generate(r);return i.append(n),i}function l(e){var t=function(e){return e.isPageNode&&e.recommended?2:0};return 2===e.forEachChild(t)}var c={cssClass:"course-menu-element-option",description:"",elementType:"CourseMenuElementOption",groupNode:null,id:"course-menu-element-option",index:0,label:"",role:"listitem"};c=Element.extend(c,e),Element.manifestValue(c,"label");var u=core.manifest["course-menu"],d=r(),f=[d.attr("id")],p=InteractiveElement.generate(c);if(p.publicProperties(c),Util.isSet(c.groupNode)){var g=t();f.push(g.attr("id")),c.groupNode.assessment?p.append(n("question-mark")):p.append(i()),p.append(d),p.append(g),p.append(o())}else p.append(n("rosette")),p.append(d);return p.attr("aria-labelledby",f.join(" ")),p}},CourseMenuElement={generate:function(e){function t(){var e={cssClass:"course-menu-element-option",enabled:core.course.passed,highContrast:!0,id:u.id+"-certificate",index:v,resourcePath:u.resourcePath+".certificate"},t=CourseMenuElementOption.generate(e);return t.on(ElementEvent.SELECT,l),t}function n(e){var t=m.getChildByIndex(e),n=null;if(t.visible){var r=t.id,a=core.manifest[r],o={cssClass:"course-menu-element-option",description:a.description,enabled:t.enabled&&t.childCount>0,highContrast:!0,id:u.id+"-"+r,index:e,label:a.title,groupNode:t,resourcePath:u.resourcePath+"."+r};o.enabled&&(t.assessment?o.enabled=i():f&&(o.enabled=g),g=1===t.getProgress(),E=E&&g),n=CourseMenuElementOption.generate(o),n.on(ElementEvent.SELECT,c)}return n}function r(){var e={cssClass:"course-menu-element-options-base hide",id:u.id+"-base",role:"list"},r=Element.generate(e);r.attr("aria-labelledby","instruction");for(var i=null,a=0;v>a;a++)i=n(a),Util.isSet(i)&&(S.push(i),i.appendTo(r));return p&&(i=t(),S.push(i),i.appendTo(r)),r}function i(){var e=core.config["enable-assessment"],t=e||E;if(t){var n=core.config["allow-assessment-reattempt"];n===AssessmentReattempt.FAIL?t=!core.course.assessment.passed:n===AssessmentReattempt.NEVER&&(t=!core.course.assessment.attempted)}return t}function a(e){var t=e-49;if(t>=0&&v>t){var n=S[t];Util.isSet(n)&&n.getVal("enabled")&&n.call("select")}}function o(e,t,n,r){"show"===e&&s()}function s(){var e=function(e){var t=e.getVal("enabled")?.9:.4,n=-20,r=e.offset();r.left+=n,e.offset(r),e.animate({left:"-="+n,opacity:t},"slow","easeOutQuart")},t=function(t,n,r){var i=50;setTimeout(e,i*n,t)},n=function(){S.forEach(t)},r=h.outerWidth();h.css("left",-r),h.removeClass("hide"),h.animate({left:0},"slow","easeOutQuart",n)}function l(e){core.showStudentNameDialog()||core.printCertificate()}function c(e){e.stopPropagation();var t=$(e.target),n={navigation:Navigation.CHILD_PAGE,target:t.getVal("index")};b.trigger(CourseEvent.NAVIGATE,n)}var u={cssClass:"course-menu-element",elementType:"CourseMenuElement",footerBarState:FooterBarState.QUESTION,id:"course-menu-element"},d={keyPress:a,scriptAction:o};u=Element.extend(u,e);var f=core.config["sequential-sections"],p=core.config["has-certificate"],g=!0,E=!0,m=core.course.currentPage,v=m.childCount,S=[],h=r(),b=Element.generate(u);return b.publicProperties(u),b.publicMethods(d),b.append(h),b}},Dialog={generate:function(e){function t(){var e={buttons:i(s.buttons),id:s.id+"-buttons"},t=ButtonGroup.generate(e);return t.on(ElementEvent.SELECT,o),t}function n(){var e={cssClass:"dialog-footer",id:s.id+"-footer"},n=Element.generate(e);return n.append(t()),n}function r(){var e={acc:!1,cssClass:"dialog-title-bar",id:s.id+"-title-bar"},t=Element.generate(e);return t.append(s.title),t}function i(e){for(var t=e.length,n=null,r=[],i=0;t>i;i++)n={},n.id=e[i],n.label=core.manifest.player.button.label[n.id],r.push(n);return r}function a(e){l.trigger(DialogEvent.RESPONSE,{id:e})}function o(e){var t=e.target.id,n=Util.nullValue(s.closeDialog[t],!0);n?(l.hide(),a(t),l.remove()):a(t)}var s={buttons:[],closeDialog:{},content:"",cssClass:"dialog",highContrast:!0,id:"dialog",role:"dialog",title:""};s=Element.extend(s,e),s.accName=s.title,Element.manifestValue(s,"title");var l=$("#"+s.id);return 0===l.length&&(l=Element.generate(s),l.publicProperties(s),l.append(r()),l.append(s.content),l.append(n())),l}},DisplayBox={generate:function(e){function t(){return a.trigger(ProgressEvent.CONTINUE),!0}var n={advance:t},r={content:"",cssClass:"display-box",elementType:"DisplayBox",highContrast:!0,id:"display-box",footerBarState:FooterBarState.CONTINUE};r=Element.extend(r,e);var i=Element.generate({cssClass:"display-box-border scrollable",id:r.id+"-border"});i.append(r.content);var a=Element.generate(r);return a.publicProperties(r),a.publicMethods(n),a.append(i),a.call("setContainer",i),a}},DragAndDrop={generate:function(e){function t(){var e=function(){return w["super"]("advance")},t=!1;if(D)t=e();else{var n=$("#"+N.questionFooter);t=n.length>0?n.call("confirm"):e()}return t&&S(!1),t}function n(){var e=function(e,t){var r=$(t);if(r.call("isValid")){var i=r.getVal("groupId");if(!StringUtil.isEmpty(i)){var a=r.call("getTargetArea");if(Util.isSet(a)){var o=a.attr("id"),s=Util.nullValue(n[i],{});s.max=Util.nullValue(s.max,0);var l=Util.nullValue(s[o],0)+1;l>s.max&&(s.max=l,s.targetArea=a),s[o]=l,n[i]=s}}}},t=function(e,t){var r=$(t),i=r.getVal("groupId");StringUtil.isEmpty(i)||r.data("_targetArea",n[i].targetArea),r.call("confirm",N.showMarking)};N.enabled=!1;var n={},r=w.call("getElementsByType","DragItem");r.each(e),r.each(t),w.trigger(QuestionEvent.CONFIRM)}function r(e){Util.isSet(R)&&(R.call("drop",e),R=null,i("DropArea",!1))}function i(e,t){var n=function(e,n){$(n).call("setEnabled",t)};w.call("getElementsByType",e).each(n)}function a(){return x}function o(){return M===N.numToMatch}function s(e){var t=function(e,t){n+=Number(p($(t)))},n=0;return e.each(t),n}function l(){var e=c();return Math.floor(e*x)}function c(){var e=w.call("getElementsByType","DragItem"),t=e.length;return t>0?s(e)/t:0}function u(e){var t=function(){$(this).call("highlight",e)};w.call("getElementsByType","DragItem").each(t),w.call("getElementsByType","DropArea").each(t)}function d(e,t){var n=w.find("#"+e);Util.isSet(n[0])&&(n.call("isElement","DragItem")||n.call("isElement","DropArea"))&&n.call("highlight",t)}function f(){return 1===c()}function p(e){return e.call("isCorrect")}function g(){var e=function(e){var t=$(this);r+=t.getVal("numToMatch")};S(N.enabled);var t=(core.manifest.player.acc["drag-and-drop"],w.call("getElementsByType","DragItem")),n=t.length,r=0,i=w.call("getElementsByType","DropArea");i.each(e),r=Math.min(r,n),N.numToMatch=N.numToMatch<0?r:Math.min(N.numToMatch,r),x=N.numToMatch*N.weighting,w["super"]("ready")}function E(){var e=function(e,t){$(t).call("reset")};w.call("getElementsByType","DragItem").each(e)}function m(e,t,r,i){var a=r.length;"availablemarks"===e?i.availableMarks=x:"confirm"===e?n():"iscorrect"===e?i.isCorrect=f():"score"===e?0===a&&(i.score=c()):"setcontinue"===e?v(!0,o()):"showcorrect"===e&&h(r[0],r[1])}function v(e,t){_&&e&&w.trigger(ProgressEvent.SET_CONTINUE,{enabled:t,visible:D&&t})}function S(e){N.enabled=e,i("DragItem",e),i("DropArea",e&&Util.isSet(R))}function h(e,t){var n=function(n,r){$(r).call("showCorrect",e,t)};w.call("getElementsByType","DragItem").each(n)}function b(e,t){if(N.allowSwap){var n=e.call("getTargetArea");if(Util.isSet(n)&&Util.isSet(t)){var r=t.call("getTargetArea");return t.call("drop",n),e.call("drop",r),!0}}return!1}function O(){V.off(MouseEvent.CLICK,y),V.off(DragEvent.OVER,T),V.off(DragEvent.DROP,U)}function y(e){var t=$(e.target);"DragItem"!==t.data("element-type")&&r()}function T(e){e.preventDefault()}function U(e){e.preventDefault();var t=e.originalEvent,n=t.dataTransfer.getData("text"),r=$("#"+n);r.call("drop")}function C(e,t){e.stopPropagation();var n=e.target.id,r=Util.isSet(t.newDropArea),i=r?t.newDropArea.attr("id"):"",a=Util.isSet(t.oldDropArea),s=a?t.oldDropArea.attr("id"):"",l=!1;i!==s&&(r!==a&&(M+=r?1:-1),l=o(),w.trigger(ElementEvent.CHANGE,{targetId:n,completed:l,oldDropArea:s,newDropArea:i})),R=null,S(N.enabled),v(!N.overrideCompletion,l)}function P(e){e.target===e.delegateTarget&&v(!0,!N.overrideCompletion&&o())}function I(e){r()}function A(e){var t=function(e,t){t!==R[0]&&$(t).call("setSelected",!1)},n=$(e.target),a=n.getVal("elementType");if("DragItem"===a){var o=n.getVal("selected");o?(o=!b(n,R),o?(R=n,w.call("getElementsByType",a).each(t)):R=null):R=null,i("DropArea",o)}else"DropArea"===a&&r(n)}var N={allowSwap:!1,elementType:"DragAndDrop",enabled:!0,footerBarState:FooterBarState.QUESTION,numToMatch:-1,overrideCompletion:!1,questionFooter:"",role:"menu",showMarking:!0,weighting:1},L={advance:t,confirm:n,getAvailableMarks:a,getMarks:l,getScore:c,highlight:u,highlightOption:d,scriptAction:m,ready:g,reset:E,setEnabled:S,unload:O};N=Element.extend(N,e);var _=N.footerBarState===FooterBarState.QUESTION,D=StringUtil.isEmpty(N.questionFooter),R=null,M=0,x=0,V=$("body");V.on(MouseEvent.CLICK,y),V.on(DragEvent.OVER,T),V.on(DragEvent.DROP,U);var w=Element.generate(N);return w.publicProperties(N),w.publicMethods(L),w.on(DragEvent.FINISH,C),w.on(ElementEvent.READY,P),w.on(DragEvent.START,I),w.on(ElementEvent.SELECT,A),w}},DragItem={generate:function(e){function t(e){p(!1),U.call("setCorrect",l()),m(e)}function n(){var e={acc:!1,cssClass:"drag-item-label",id:b.id+"-label"},t=b.showLabel&&!StringUtil.isEmpty(b.label),n=Element.generate(e);return n.toggleClass("hide",!t),n.append(b.label),n}function r(){var e={cssClass:"drag-item-marking hide",id:b.id+"-marking"};return MarkingSymbol.generate(e)}function i(e){var t=function(e){Util.isSet(e)&&e.call("setActive")};g(!1);var n=T!==e;if(n){var r=Util.nullValue(e,y);r.call("add",C),t(T);var i=T;T=e,C.trigger(DragEvent.FINISH,{newDropArea:T,oldDropArea:i})}else t(e);return n}function a(){return T}function o(e){var t={visible:e,which:"highlight"};C.toggleClass("highlight",Util.nullValue(e,!0)),C.trigger(ElementEvent.STATE,t)}function s(){y=C.parent()}function l(){var e=C.data("_targetArea");return Util.isSet(e)?e[0]===T[0]:C.data("_isValid")||c()}function c(){if(Util.isSet(T)){var e=function(e){return e===t},t=T.attr("id");return b.validDropAreas.some(e)}return 0===b.validDropAreas.length}function u(){m(!1),T=null,y.call("add",C)}function d(e,t,n,r){"iscorrect"===e?r.isCorrect=l():"droparea"===e?r.dropArea=Util.isSet(T)?T.attr("id"):"":"reset"===e&&u()}function f(){g(!b.selected)}function p(e){var t=!b["static"]&&e;C.attr("draggable",t),C["super"]("setEnabled",t)}function g(e){b.selected=e,C.toggleClass("selected",b.selected),C.attr("aria-grabbed",b.selected)}function E(e,t){m(Util.nullValue(e,!1));var n=Util.nullValue(t,!0),r=C.data("_targetArea");if(!Util.isSet(r))if(b.validDropAreas.length>0){var i=$("#"+b.validDropAreas[0]);i.length>0&&(r=i.call("getDropTarget"))}else r=y;if(Util.isSet(r)){var a=Util.isSet(T)?T.call("getDropTarget"):y;if(r!==a)if(n){var o=function(){C.css({left:"",top:""}),r.call("add",C)},s=Util.invScale(C.offset(),core.scale),l=Util.invScale(r.offset(),core.scale),c={left:parseInt(r.css("borderLeftWidth"),10),top:parseInt(r.css("borderTopWidth"),10)},u={left:l.left+c.left-s.left,top:l.top+c.top-s.top};C.animate(u,"slow","easeOutQuart",o)}else r.call("add",C)}}function m(e){U.toggleClass("hide",!e)}function v(e){var t=$(e.target);t.removeClass("drag")}function S(e){Util.isSet(T)&&T.call("drag"),g(!1);var t=e.originalEvent;t.dataTransfer.setData("text",C.attr("id")),C.addClass("drag")}function h(e){f()}var b={cssClass:"drag-item",elementType:"DragItem",enabled:!0,groupId:"",id:"drag-item",label:"",role:"option",selected:!1,showLabel:!0,"static":!1,validDropAreas:[]},O={confirm:t,drop:i,getTargetArea:a,highlight:o,init:s,isCorrect:l,isValid:c,reset:u,scriptAction:d,select:f,setEnabled:p,setSelected:g,showCorrect:E};b=Element.extend(b,e),Element.manifestValue(b,"label"),b.label=StringUtil.parseVars(b.label);var y=null,T=null,U=r(),C=InteractiveElement.generate(b);return C.publicProperties(b),C.publicMethods(O),C.attr("aria-grabbed",!1),C.attr("aria-label",b.label),C.attr("draggable",b.enabled),C.append(n()),C.append(U),C.on(DragEvent.END,v),C.on(DragEvent.START,S),C.on(ElementEvent.SELECT,h),C}},DropArea={generate:function(e){function t(e){Util.isSet(b)?b.call("add",e):O["super"]("add",e),c()}function n(){h=!0}function r(){var e=O.call("getElementsByType","DragItem");return e.length<v.maxDragItems}function i(e){if(!StringUtil.isEmpty(e)){var t=O.find("#"+e);if(t.length>0)return t}return null}function a(){return Util.nullValue(b,O)}function o(e){var t={visible:e,which:"highlight"};O.toggleClass("highlight",Util.nullValue(e,!0)),O.trigger(ElementEvent.STATE,t)}function s(){v.maxDragItems=Math.max(1,v.maxDragItems),
v.numToMatch=v.numToMatch<0?v.maxDragItems:Math.min(v.numToMatch,v.maxDragItems),O["super"](ElementEvent.INIT)}function l(){b=i(v.dropRegion),O["super"](ElementEvent.READY)}function c(e){h=Util.isSet(e)?e:r(),u(v.enabled)}function u(e){v.enabled=e;var t=v.enabled&&h;O.attr("aria-dropeffect",t?"move":"none"),O.removeClass("over"),O["super"]("setEnabled",t)}function d(e){h&&O.addClass("over")}function f(e){h&&O.removeClass("over")}function p(e){e.preventDefault()}function g(e){if(e.preventDefault(),h){e.stopPropagation(),O.removeClass("over");var t=e.originalEvent,n=t.dataTransfer.getData("text"),r=$("#"+n);r.call("drop",O)}}function E(e){v.enabled&&h&&O.addClass("over")}function m(e){v.enabled&&h&&O.removeClass("over")}var v={cssClass:"drop-area",dropRegion:"",elementType:"DropArea",enabled:!1,id:"drop-area",maxDragItems:1,numToMatch:-1,role:"option",selected:!1},S={add:t,drag:n,getDropTarget:a,highlight:o,init:s,ready:l,setActive:c,setEnabled:u};v=Element.extend(v,e);var h=!0,b=null,O=InteractiveElement.generate(v);return O.publicProperties(v),O.publicMethods(S),O.on(MouseEvent.ENTER,E),O.on(MouseEvent.LEAVE,m),O.on(DragEvent.ENTER,d),O.on(DragEvent.LEAVE,f),O.on(DragEvent.OVER,p),O.on(DragEvent.DROP,g),O}},DualStateElement={NEUTRAL:0,UNSELECTED:1,SELECTED:2,generate:function(e){function t(e){return Util.isSet(e)?e?DualStateElement.SELECTED:DualStateElement.UNSELECTED:DualStateElement.NEUTRAL}function n(){return s.currentState===DualStateElement.SELECTED}function r(){return s.validState===DualStateElement.SELECTED}function i(e,t,r,i){"selected"===e?Util.isSet(r[0])?a(r[0]):i.selected=n():c["super"]("scriptAction",e,t,r,i)}function a(e){c.call("setState",t(e)),c.attr("aria-checked",n())}function o(e){a(s.cycle?!n():!0)}var s={elementType:"DualStateElement",id:"dual-state-element"},l={isSelected:n,isValid:r,scriptAction:i,setSelected:a};s=Element.extend(s,e),s.currentState=t(s.selected),s.stateCount=2;var c=MultipleStateElement.generate(s);return c.publicProperties(s),c.publicMethods(l),c.attr("aria-checked",n()),c.off(ElementEvent.SELECT),c.on(ElementEvent.SELECT,o),c}},Element={generate:function(e){function t(e,t){if(Util.isSet(e)){var n=Util.nullValue(t,!1);n?y.prepend(e):y.append(e),y.trigger(ElementEvent.ADDED,[e])}}function n(){return U.trigger(ProgressEvent.CONTINUE),!0}function r(e,t){if(Util.isSet(e)){var n=Util.nullValue(b.alignment,{}),r=new Point(n.xOffset,n.yOffset);r.offset(t);var i={target:e,sourceAlign:new Alignment(n.vAlign,n.hAlign),targetAlign:new Alignment(n.vAnchor,n.hAnchor),offset:r};U.alignTo(i)}}function i(){var e=function(e,t){var n=$(t);n.call("clear"),n.call("remove")},t=Util.nullValue(y,U),n=t.children();n.each(e)}function a(e){if(Util.isSet(e)){var t=function(e,t){n(e[t])},n=function(e){r.push(a(e))},r=[];switch(e.constructor){case Object:return ObjectUtil.forEachItem(e,t),r.join(" ");case Array:return e.forEach(n),r.join(" ");case String:return e}}return""}function o(e){var t=function(t,n){return $(n).isVal("elementType",e)};return U.find("*").filter(t)}function s(e){return b.data[e]}function l(e){var t=Util.nullValue(e,!0);U.toggleClass("hide",t)}function c(){U.trigger(ElementEvent.INIT)}function u(e){return e.toLowerCase()===b.elementType.toLowerCase()}function d(e,t){if(Util.isSet(T)){var n=T[e];if(ObjectUtil.is(n,Function)){var r=Util.nullValue(t,{});return Util.nullValue(n(U,r),{})}}return{}}function f(){U.trigger(ElementEvent.READY)}function p(e){var t=Util.nullValue(e,!1),n=function(){var e=U.parent();U.remove(),e.trigger(ElementEvent.REMOVED,[U])};t?U.slideUp("fast",n):n()}function g(e){b.acc=Util.nullValue(e,!0),U.setAcc(b.acc)}function E(e){var t=function(e){"#"===e.charAt(0)&&n.push(e.slice(1))},n=[];Util.isSet(e)&&(e.constructor===Array?e.forEach(t):e.constructor===String&&t(e)),n.length>0?(b.accDesc=n.join(" "),U.attr("aria-describedby",b.accDesc)):U.removeAttr("aria-describedby")}function m(e){var t=function(e){"#"===e.charAt(0)?r.push(e.slice(1)):n=e},n="",r=[];Util.isSet(e)&&(e.constructor===Array?e.forEach(t):e.constructor===String&&t(e)),""!==n?(b.accName=n,U.attr("aria-label",b.accName),U.removeAttr("aria-labelledby")):r.length>0?(b.accName=r.join(" "),U.attr("aria-labelledby",b.accName),U.removeAttr("aria-label")):(U.removeAttr("aria-label"),U.removeAttr("aria-labelledby"))}function v(e){y=e}function S(e){var t="role";b.role=Util.nullValue(e,""),""===b.role?U.removeAttr(t):U.attr(t,b.role)}function h(e,t){b.data[e]=t}var b={accDesc:"",accName:"",alignment:{},cssClass:"",data:{},element:"<div/>",elementType:"Element",footerBarState:FooterBarState.UNCHANGED,hasAudio:!1,highContrast:!1,id:"element",param:{},relative:"",resourceId:"",resourcePath:"",role:"",style:{},title:""},O={add:t,advance:n,clear:i,align:r,getElementsByType:o,getVal:s,hide:l,init:c,isElement:u,jsCall:d,ready:f,remove:p,setAcc:g,setAccDesc:E,setAccName:m,setContainer:v,setVal:h};b=Element.extend(b,e),$.extend(b.data,b.param),Element.manifestValue(b,"accName",{element:b.data},!0);var y=null,T=StringUtil.resolve(b.resourcePath,core.pageScript),U=$(b.element);return U.publicProperties(b),U.publicMethods(O),U.attr("id",b.id),U.attr("data-element-type",b.elementType),U.attr("data-high-contrast",b.highContrast),U.addClass(a(b.cssClass)),U.addClass(b.resourceId),U.css(b.style),S(b.role),g(b.acc),m(b.accName),E(b.accDesc),v(U),U},extend:function(e,t){return Util.isSet(t)?($.extend(e,t),$.extend(t,e)):e},manifestValue:function(e,t,n,r){var i=null;if(e.hasOwnProperty(t)){var a=e[t];if(StringUtil.isEmpty(a)&&(i=StringUtil.resolve(e.resourcePath,core.manifest),Util.isSet(i)))if(i.constructor===Object)a=i[t];else{var o=Util.nullValue(r,!1),s=e.resourcePath.split(".").pop();o&&s!==t||(a=i)}if(ObjectUtil.is(a,String)){var l=$.extend({config:core.config,core:core.data,manifest:core.manifest},n);e[t]=StringUtil.parseVars(a,l)}}return i}},Flow={NAV_BUTTON_NEXT:"&#9658;",NAV_BUTTON_PREVIOUS:"&#9664;",generate:function(e){function t(e){var t={cssClass:"flow-nav-button",enabled:!0,highContrast:O.highContrast,role:"button"},n=Element.generate({acc:!1,id:e.id+"-icon",cssClass:"tabbed-view-button-icon"});n.append(e.icon);var r=InteractiveElement.generate($.extend(t,e));return r.addClass(e.nav),r.append(n),r.on(ElementEvent.HOVER,h),r}function n(e,t){var n=e.id,i={cssClass:"flow-item",dynamic:Util.nullValue(e.dynamic,""),id:n},a=r(n),o=Util.nullValue(e["static"],n+"-static");L.call("addElements",a,o);var s=Element.generate(i);return s.append(a),s}function r(e){var t={cssClass:"flow-item-content",highContrast:!0,id:e+"-content"};return Element.generate(t)}function i(){var e=function(e,t){e.target=n(e,t),r.append(e.target)},t={cssClass:"flow-items",id:O.id+"-items"},r=Element.generate(t),i=d(T);return i.forEach(e),r}function a(){var e={cssClass:"flow-nav",id:O.id+"-nav"},t=Element.generate(e);return t.append(M),t.append(s()),t.append(R),t.on(ElementEvent.SELECT,b),t}function o(e){var t={acc:!1,cssClass:"flow-nav-item",highContrast:!0,id:O.id+"-nav-item"+(e+1),nav:e};return InteractiveElement.generate(t)}function s(){var e=function(e,t){"cover"!==e.id&&(e.navItem=o(t),n.append(e.navItem))},t={cssClass:"flow-nav-items",id:O.id+"-nav-items",role:"status"},n=Element.generate(t);return U.forEach(e),n}function l(){var e={icon:Flow.NAV_BUTTON_NEXT,id:O.id+"-next-button",nav:"next"};return t(e)}function c(){var e={icon:TabbedView.BUTTON_PREVIOUS,id:O.id+"-previous-button",nav:"previous"};return t(e)}function u(){var e={cssClass:"flow-window",id:O.id+"-window"};return Element.generate(e)}function d(e){var t=function(t){return Util.condition(t.visible,e,!0)};return O.items.filter(t)}function f(){var e=function(e){return Util.nullValue(e.visited,!1)};U.every(e)}function p(){return{config:core.config,core:core.data,element:O.data,page:Util.isSet(L)?L.getVal("data"):{}}}function g(){I=D.width(),S(0)}function E(){P>0&&S(P-1)}function m(){C-1>P&&S(P+1)}function v(e,t){var n=U[e];n.visited=!0;var r=n.navItem;Util.isSet(r)&&r.toggleClass("current",t)}function S(e){var t=function(){var e=$(l.children()[0]),t=l.getVal("dynamic"),n=N.elements[t];Util.isSet(n)&&(core.audio.call("stop"),l.data("dynamic",L.call("addElements",e,n)),V.trigger(ElementEvent.CHANGE,{completed:f()}))},n=function(){l=U[P].target;var e=l.data("dynamic");Util.isSet(e)&&(core.audio.call("stop"),e.remove(),l.removeData("dynamic")),D.animate({width:I},o,s,r)},r=function(){A=!1,l.css("width",""),a()},i=function(){P=e;var n=!StringUtil.isEmpty(U[P].dynamic);O.autoExpand&&n&&(A=!0,l.css("width","100%"),D.animate({width:"100%"},o,s,t))},a=function(){l=U[e].target;var t=-(l.position().left/core.scale);_.animate({left:t},o,s,i)};M.call("setEnabled",e>0&&"cover"!==U[e-1].id),R.call("setEnabled",C-1>e),P>=0&&v(P,!1),v(e,!0);var o=300,s="easeInOutQuad",l=null;D.stop(!0),_.stop(!0),A?n():a()}function h(e,t){var n=$(e.target);n.toggleClass("hover",t.hover)}function b(e){var t=$(e.target),n=t.getVal("nav");"previous"===n?E():"next"===n?m():S(n)}var O={autoExpand:!0,cssClass:"flow",elementType:"Flow",id:"flow",items:[]},y={init:g};O=Element.extend(O,e);var T=p(),U=d(T),C=U.length,P=-1,I=0,A=!1,N=core.course.currentPage,L=N.target,_=i(),D=u();D.append(_);var R=l(),M=c(),x=a(),V=Element.generate(O);return V.publicProperties(O),V.publicMethods(y),V.append(D),V.append(x),V}},FooterBar={generate:function(e){function t(){var e=function(e,t){var n=!1;return t===E.state&&(n=h.call("activate",v[t])),n};return ObjectUtil.some(v,e)}function n(e,t){Util.isSet(e)||g(core.course.currentPage,t)}function r(e){var t=o(e),n={id:E.id+"-buttons",buttons:t,cssClass:"button-group footer-bar-buttons",enabled:E.enabled,tabIndexOffset:TabOrder.FOOTER_BAR_BUTTONS},r=ButtonGroup.generate(n);return r.toggleClass("hide",0===t.length),r}function i(){var e={id:E.id+"-page-icons",tabIndexOffset:TabOrder.PAGE_ICONS};return PageIcons.generate(e)}function a(){var e={};return e[FooterBarState.CONTINUE]=Button.CONTINUE,e[FooterBarState.COURSE_END]=Button.HOME_PAGE,e[FooterBarState.COURSE_START]=Button.START_COURSE,e[FooterBarState.PAGE_END]=Button.CONTINUE_NEXT_PAGE,e[FooterBarState.QUESTION]=Button.CONTINUE,e[FooterBarState.SECTION_END]=Button.CONTINUE_NEXT_SECTION,e}function o(e){var t=function(e,t,r){var i=e===Button.START_COURSE,a={cssClass:"footer-bar-button",icon:i?"":e,id:e,label:core.manifest.player.button.label[e],showLabel:i,transparent:!0};n.push(a)},n=[];return e.forEach(t),n}function s(){return h.call("getEnabledButtons")}function l(e){switch(e){case FooterBarState.CLOSE:return[Button.CLOSE];case FooterBarState.CONTINUE:return[Button.CONTINUE];case FooterBarState.COURSE_START:return[Button.START_COURSE];case FooterBarState.COURSE_END:return[Button.HOME_PAGE];case FooterBarState.NONE:return[];case FooterBarState.PAGE_END:return[Button.CONTINUE_NEXT_PAGE];case FooterBarState.QUESTION:return[Button.CONTINUE];case FooterBarState.SECTION_END:return[Button.HOME_PAGE,Button.CONTINUE_NEXT_SECTION]}return null}function c(e){if(Util.isSet(e)){var t=r(e);h.replaceWith(t),h=t}}function u(e){var t=h.children("#"+Button.CONTINUE);t.length>0&&(t.call("setEnabled",e.enabled),h.toggleClass("hide",!e.visible),e.visible&&(E.state=FooterBarState.CONTINUE))}function d(e){h.call("setEnabledButtons",e)}function f(e){E.enabled=e,S.call("setEnabled",E.enabled),h.call("setEnabled",E.enabled)}function p(e){E.state!==e&&(E.state=e,c(l(E.state)))}function g(e,t){Util.isSet(e)&&(b.toggleClass("hide",!e.showFooterBar),S.call("startPage",e))}var E={cssClass:"footer-bar",enabled:!0,id:"footer-bar",state:FooterBarState.NONE},m={advance:t,changePage:n,getEnabledButtons:s,setButtons:c,setContinue:u,setEnabled:f,setEnabledButtons:d,setState:p,startPage:g};E=Element.extend(E,e);var v=a(),S=i(),h=r([]),b=Element.generate(E);return b.publicProperties(E),b.publicMethods(m),b.append(S),b.append(h),b}},FooterBarState={CLOSE:"close",CONTINUE:"continue",COURSE_END:"course-end",COURSE_START:"course-start",NONE:"none",PAGE_END:"page-end",QUESTION:"question",SECTION_END:"section-end",UNCHANGED:""},GlossaryElement={generate:function(e){function t(){var e={cssClass:"glossary-element-definition-container",id:v.id+"-definition-container"},t=Element.generate(e);return t.append('<p class="glossary-element-definition-initial">'+S+"</p>"),t}function n(){var e={acc:!1,cssClass:"glossary-element-background",highContrast:!0,id:v.id+"-background"};return Element.generate(e)}function r(){var e={acc:!1,cssClass:v.id+"-definition-pane",highContrast:!0,id:v.id+"-definition-pane"};T=t();var n=Element.generate(e);return n.append(T),n}function i(e){var t=function(e){return StringUtil.evaluate(StringUtil.parseVars(e))},n={cssClass:"glossary-element-definition-text",element:"<dfn/>",id:v.id+"-definition-text"},r=Element.generate(n);return r.append(e),r.visibilityFilter(t),g(r),r}function a(e){var t={cssClass:"glossary-element-definition-title",element:"<dt/>",id:v.id+"-definition-title"},n=Element.generate(t);return n.append(e),n}function o(){for(var e=h.getEntries(),t=e.moveFirst(),n=null;Util.isSet(t);)n=l(t),n.appendTo(O),t=e.moveNext()}function s(){var e={accName:S,cssClass:v.id+"-entries-pane scrollable",highContrast:!0,id:v.id+"-entries-pane",role:"listbox"};return Element.generate(e)}function l(e){var t={cssClass:v.id+"-entry",element:"<a/>",id:v.id+"-entry-"+e.id,role:"option"},n=Element.generate(t);return n.attr("href","#"),n.attr("data-id",e.id),n.attr("name",e.id),n.attr("tabindex",TabOrder.PAGE_CONTENT),n.append(e.term),n}function c(e){var t=h.getEntryListItem(e),n=a(t.term);U=i(t.definition),U.attr("aria-labelledby",n.attr("id")),T.empty(),T.append(n),T.append(U)}function u(e,t,n){if(!StringUtil.isEmpty(e)){var r=O.children('[data-id="'+e+'"]');r.length>0&&C!==r&&(c(e),f(r),t&&p(r,n),C=r)}}function d(){h.init(),b=n(),O=s(),y=r(),P.append(b),P.append(O),P.append(y),o(),P.trigger(ElementEvent.INIT),u(v.data.entryId,!0,!1)}function f(e){Util.isSet(C)&&(C.removeClass("selected"),C.removeAttr("aria-describedby")),e.addClass("selected"),e.attr("aria-describedby",U.attr("id"))}function p(e,t){var n=Util.invScale(e.offset().top-O.offset().top,core.scale)+O.scrollTop();t?O.animate({scrollTop:n}):O.scrollTop(n)}function g(e){var t=function(e){var t=$(this),n=t.data("id");if(""===this.innerHTML){var r=h.getItemById(n);t.append(r.term)}},n=e.find("a[data-id]");n.attr("tabindex",TabOrder.PAGE_CONTENT),n.each(t)}function E(e){var t=$(e.target),n=Util.nullValue(t.attr("class"),"");if(Util.isSet(n.match(/^glossary.*/))){e.stopPropagation();var r=Util.isSet(n.match(/glossary-element-entry/));u(t.data("id"),!r,!0)}}var m={init:d},v={cssClass:"glossary-element",elementType:"GlossaryElement",highContrast:!0,id:"glossary-element"};v=Element.extend(v,e);var S=core.manifest.glossary["default-definition"],h=core.glossary,b=null,O=null,y=null,T=null,U=null,C=null,P=Element.generate(v);return P.publicProperties(v),P.publicMethods(m),P.on(MouseEvent.CLICK,"a",E),P}},Graphic={generate:function(e){function t(){return Bitmap.generate(r)}function n(e){i.off(LoadEvent.LOAD,n),i["super"]("init")}var r={cssClass:"graphic",elementType:"Graphic",height:0,id:"graphic",src:"",symbol:"",width:0};r=Element.extend(r,e);var i=t();return i.on(LoadEvent.LOAD,n),i}},GridLayout={generate:function(e){function t(e){var t=n.rows[e],r={id:n.id+"-row-"+e,index:e};return GridLayoutRow.generate($.extend({},t,r))}var n={id:"grid-layout",rows:[]};n=Element.extend(n,e);var r=n.rows.length,i=Element.generate(n);i.publicProperties(n);for(var a=0;r>a;a++)i.append(t(a));return i}},GridLayoutCell={generate:function(e){var t={content:"",id:"grid-layout-cell",style:{display:"inline-block"}};t=Element.extend(t,e);var n=Element.generate(t);return n.publicProperties(t),n.append(t.content),n}},GridLayoutRow={generate:function(e){function t(e){var t=n.cells[e],r={id:n.id+"-cell-"+n.index+"-"+e,index:e};return GridLayoutCell.generate($.extend({},t,r))}var n={cells:[],id:"grid-layout-row",index:0};n=Element.extend(n,e);var r=n.cells.length,i=100/r+"%",a=null,o=Element.generate(n);o.publicProperties(n);for(var s=0;r>s;s++)a=t(s),a.css("width",i),a.appendTo(o);return o}},HeaderBar={generate:function(e){function t(e){y.call("activate",e)||T.call("activate",e)}function n(e,t){t.closeOverlay&&E(core.course.currentPage,t)}function r(){T.call("close")}function i(){var e=[Button.HOME_PAGE,Button.PREVIOUS_PAGE,Button.REPLAY_PAGE,Button.NEXT_PAGE,Button.TOOLKIT];core.config["show-exit-button"]&&e.push(Button.EXIT);var t={buttons:u(e),id:S.id+"-buttons",cssClass:"button-group header-bar-buttons",enabled:S.enabled,role:"toolbar",tabIndexOffset:TabOrder.HEADER_BAR_BUTTONS};return ButtonGroup.generate(t)}function a(){var e={acc:!1,cssClass:"header-bar-course-logo",id:S.id+"-course-logo"},t=Element.generate(e);return t.append(Element.generate({cssClass:e.cssClass+"-icon",id:e.id+"-icon"})),t}function o(){var e={cssClass:"header-bar-title",id:S.id+"-title"};return Element.generate(e)}function s(){var e={cssClass:"header-bar-page-title",id:S.id+"-page-title"};return Element.generate(e)}function l(){var e={acc:!1,cssClass:"header-bar-titles",id:S.id+"-titles"},t=Element.generate(e);return t.append(b),t.append(O),t}function c(e,t){var n={};if(n[Button.EXIT]=!0,n[Button.TOOLKIT]=!0,n[Button.REPLAY_PAGE]=!t.assessmentQuestion,t.assessmentQuestion)n[Button.HOME_PAGE]=!0,n[Button.PREVIOUS_PAGE]=!1,n[Button.NEXT_PAGE]=!1;else{var r=core.course.isHomePage(e);n[Button.HOME_PAGE]=!r,n[Button.PREVIOUS_PAGE]=e.enablePreviousPage&&core.course.hasPreviousPage(),n[Button.NEXT_PAGE]=e.enableNextPage&&t.hasNextPage&&(!S.sequentialPages||e.completed)}return n}function u(e){var t=function(e,t,r){var i={};i.cssClass="header-bar-button",i.id=e,i.icon=e,i.label=core.manifest.player.button.label[e],i.showLabel=!1,i.role="menuitem",n.push(i)},n=[];return e.forEach(t),n}function d(e,t){if(e.length>0&&t.length>0){var n=t.attr("id");e.attr("aria-haspopup",!0),e.attr("aria-controls",n),e.attr("aria-owns",n)}}function f(e){S.enabled=e,y.call("setEnabled",e),y.call("setAcc",e)}function p(e){y.call("setEnabledButtons",e)}function g(e){if(Util.isSet(e)){S.titleText=e;var t=e.course,n=Util.isSet(e.section);n&&!StringUtil.isEmpty(e.section)&&(t+='<span class="section-title"> - '+e.section+"</span>"),b.toggleClass("root-page",!n),b.html(t),O.call("hide",!n),O.html(e.page),h.call("hide",n)}}function E(e,t){!e.isOrphan||t.assessmentQuestion?e.showHeaderBar?(e.enableHeaderBar&&(p(c(e,t)),T.call("startPage",e,t)),t.closeOverlay||g(t.titles),y.call("setAcc",!0),C.show()):C.hide():f(!1)}function m(e){var t=e.target.id;t===Button.TOOLKIT&&(e.stopPropagation(),T.call("toggle"))}var v={activate:t,changePage:n,closeToolkit:r,setEnabled:f,setEnabledButtons:p,setTitles:g,startPage:E},S={cssClass:"header-bar",enabled:!0,id:"header-bar",sequentialPages:!1,titleText:{}};S=Element.extend(S,e);var h=a(),b=o(),O=s(),y=i(),T=ToolkitMenu.generate(),U=l();d(y.find("#toolkit"),T);var C=Element.generate(S);return C.publicProperties(S),C.publicMethods(v),C.on(ElementEvent.SELECT,m),C.append(h),C.append(U),C.append(y),C.append(T),C}},InfoDialog={generate:function(e){function t(){var e=core.course.currentPage,t=["<strong>Page id:</strong>  "+core.course.pageId,"<strong>Page title:</strong>  "+core.course.getNodeTitle(e),"<strong>Course version:</strong>  "+core.course.root.version,"<strong>Design version:</strong>  "+core.config["design-version"],"<strong>Custom version:</strong>  "+core.customisation.version,"<strong>Release id:</strong>  "+core.release.id,"<strong>Licensed to:</strong>  "+core.licence.customerName+(core.licence.remote?"":" *")];return StringUtil.isEmpty(core.licence.expiryDate)||t.push("<strong>Licensed until:</strong>  "+core.licence.expiryDate),t.join("<br/>")}function n(e){e.stopPropagation(),a.off(DialogEvent.RESPONSE),core.view.off(PageEvent.START,r)}function r(e){a.call("setText",t())}var i={buttons:[Button.OK],cssClass:"dialog info-dialog",draggable:!0,icon:MessageBoxIcon.INFORMATION,id:"info-dialog",text:t(),title:"Course information"};i=Element.extend(i,e);var a=MessageBox.generate(i);return a.publicProperties(i),a.on(DialogEvent.RESPONSE,n),core.view.on(PageEvent.START,r),a}},InteractiveElement={generate:function(e){function t(e){E.trigger(ElementEvent.HOVER,{hover:e})}function n(){E.trigger(ElementEvent.SELECT,{})}function r(e){var n=Util.nullValue(E.data("_enabled"),!0)&&e;n||t(!1),p.enabled=n,E.toggleClass("enabled",n),E.toggleClass("disabled",!n),i(p.tabEnabled),E.trigger(ElementEvent.ENABLED,{enabled:p.enabled})}function i(e){p.tabEnabled=e,a(p.tabIndex)}function a(e){p.tabIndex=e;var t="tabindex",n=p.enabled&&p.tabEnabled;n?E.attr(t,p.tabIndex):E.removeAttr(t)}function o(e,t,r,i){"select"===e&&n()}function s(e,t){g=!1,p.enabled&&(Util.isSet(t)||(e.stopPropagation(),n(),E.trigger(MouseEvent.CLICK,{})))}function l(e){!g&&p.enabled&&t(!0)}function c(e){if(p.enabled){var t=e.which;(t===Key.ENTER||t===Key.SPACE)&&(e.stopPropagation(),n())}}function u(e){!g&&p.enabled&&t(!1)}function d(e){e.stopPropagation(),g=!0,E.addClass("touch")}var f={select:n,setEnabled:r,setTabEnabled:i,setTabIndex:a,scriptAction:o},p={elementType:"InteractiveElement",enabled:!0,id:"interactive-element",role:"button",tabEnabled:!0,tabIndex:TabOrder.PAGE_CONTENT};p=Element.extend(p,e);var g=!1,E=Element.generate(p);return E.publicProperties(p),E.publicMethods(f),E.on(MouseEvent.CLICK,s),E.on(MouseEvent.ENTER,l),E.on(KeyboardEvent.KEY_DOWN,c),E.on(MouseEvent.LEAVE,u),E.on(TouchEvent.START,d),r(p.enabled),E}},LinearProgressIndicator={generate:function(e){function t(){var e={cssClass:"linear-progress-indicator-progress",id:i.id+"-progress"};return Element.generate(e)}function n(e,t,n,i){"progress"===e&&r(Util.nullValue(n[0],0))}function r(e){i.progress=NumberUtil.constrain(e,0,1);var t=Math.round(100*i.progress);o.width(t+"%")}var i={cssClass:"linear-progress-indicator",elementType:"LinearProgressIndicator",id:"linear-progress-indicator",progress:0},a={scriptAction:n,setProgress:r};i=Element.extend(i,e);var o=t(),s=Element.generate(i);return s.publicProperties(i),s.publicMethods(a),s.append(o),r(i.progress),s}},MarkingSymbol={generate:function(e){function t(e){var t=e?"correct":"incorrect";return"symbols."+t}function n(e,t,n,i){"setcorrect"===e&&r(Util.nullValue(n[0],!0))}function r(e){a.correct=e,s.call("setSymbol",t(a.correct)),s.attr("aria-label",o[e?"correct":"incorrect"])}var i={scriptAction:n,setCorrect:r},a={correct:!1,id:"marking-symbol"};a=Element.extend(a,e),a.symbol=t(a.correct);var o=core.manifest.player["marking-symbol"],s=Sprite.generate(a);return s.publicProperties(a),s.publicMethods(i),s}},MediaWrapper={VOLUME_DELTA:.1,generate:function(e){function t(){var e=m.prop("volume");u(e-Audio.VOLUME_DELTA)}function n(){var e=m.prop("volume");u(e+Audio.VOLUME_DELTA)}function r(e){g.enabled&&(g.src=e,m.attr("src",g.src),m.prop("autoplay",g.autoPlay),m.prop("loop",g.loop),m.prop("muted",g.muted),m[0].load())}function i(){g.enabled&&m[0].pause()}function a(e){if(g.enabled){Util.isSet(e)&&c(e);var t=m[0].play();Util.isSet(t)&&t["catch"](function(e){})}else m.trigger(MediaEvent.DISABLED)}function o(e,t,n,r){"play"===e?a(n[0]):"pause"===e?i():"stop"===e&&d(n[0])}function s(e){m.call("stop"),g.enabled=e,m.trigger(ElementEvent.ENABLED,{enabled:g.enabled})}function l(e){g.muted=e,m.prop("muted",g.muted)}function c(e){m.prop("readyState")>0&&m.prop("currentTime",e)}function u(e){g.volume=NumberUtil.constrain(e,0,1),m.prop("volume",g.volume)}function d(e){i(),c(Util.nullValue(e,0))}function f(){var e=m.prop("muted");l(!e)}function p(){var e=m.prop("paused");e?a():i()}var g={autoPlay:!1,enabled:!1,loop:!1,muted:!1,volume:1},E={decreaseVolume:t,increaseVolume:n,load:r,pause:i,play:a,scriptAction:o,setEnabled:s,setMute:l,setVolume:u,stop:d,toggleMute:f,togglePause:p};g=Element.extend(g,e);var m=Element.generate(g);return m.publicProperties(g),m.publicMethods(E),m}},MessageBox={generate:function(e){function t(){var e={cssClass:"message-box-content",id:s},t=Element.generate(e);return t.append(n()),t.append(l),t}function n(){var e={acc:!1,cssClass:"message-box-icon",id:s+"-icon",symbol:"symbols."+o.icon};return Sprite.generate(e)}function r(){var e={acc:!1,cssClass:"message-box-text",element:"<p/>",id:s+"-text"};return Element.generate(e)}function i(e){o.text=StringUtil.parseVars(e,o.param),l.empty(),l.append(o.text)}var a={setText:i},o={icon:"",id:"message-box",role:"alertdialog",text:""};o=Element.extend(o,e),Element.manifestValue(o,"text");var s=o.id+"-content",l=r();o.content=t();var c=Dialog.generate(o);return c.publicProperties(o),c.publicMethods(a),c.attr("aria-describedby",l.attr("id")),i(o.text),c}},MessageBoxButton={CANCEL:"cancel",NO:"no",OK:"ok",YES:"yes"},MessageBoxIcon={ERROR:"error",INFORMATION:"information",QUESTION:"question",WARNING:"warning"},MultipleChoiceQuestionOptionChoice={generate:function(e){function t(){h=!1,u(!1)}function n(){var e={cssClass:"multiple-choice-question-marking multiple-choice-question-option-choice-marking hide",id:v.id+"-marking"};return MarkingSymbol.generate(e)}function r(){var e={acc:!1,id:v.id+"-toggle-button",enabled:v.enabled,label:v.label,tabEnabled:!1,validState:v.validState};return v["switch"]?(v.selectSingle&&(e.currentState=0,e.cycle=!1),Switch.generate(e)):v.selectSingle?RadioButton.generate(e):Checkbox.generate(e)}function i(){return O.getVal("currentState")}function a(){return O.call("isCorrect")}function o(){return O.call("isSelected")}function s(){return O.call("isValid")}function l(){O.call("reset")}function c(){O.call("select")}function u(e){var t=h&&e;b["super"]("setEnabled",t),O.call("setEnabled",t)}function d(){y.call("setCorrect",a())}function f(e){O.call("setSelected",e),b.attr("aria-selected",e)}function p(){O.call("setValidState"),b.attr("aria-selected",o())}function g(e){var t=e&&(v.markAll||o());y.toggleClass("hide",!t)}function E(e){e.target===b[0]&&c()}function m(e,t){t.choiceIndex=v.index,v.selectSingle&&u(t.currentState<2)}var v={cssClass:"multiple-choice-question-option-choice",enabled:!0,id:"multiple-choice-question-option-choice",index:0,label:"",markAll:!1,role:"option",selectSingle:!1,"switch":!1,tabEnabled:!1,validState:0},S={confirm:t,getCurrentState:i,isCorrect:a,isSelected:o,isValid:s,reset:l,select:c,setEnabled:u,setMarking:d,setSelected:f,setValidState:p,showMarking:g};v=Element.extend(v,e),v.label=StringUtil.parseVars(v.label,core.manifest),v.accName=v.label;var h=!0,b=InteractiveElement.generate(v);b.publicProperties(v),b.publicMethods(S),b.attr("aria-selected",!1),b.on(ElementEvent.SELECT,E);var O=r();O.addClass("center"),O.on(ElementEvent.CHANGE,m),O.appendTo(b);var y=n();return y.appendTo(O),b}},MultipleChoiceQuestionOption={generate:function(e){function t(){var e=function(e){e.call("confirm")};j=!1,P(!1),Y.forEach(e),I()}function n(e){var t=w.choices[e],n=Util.nullValue(k[e],""),r=["multiple-choice-question-option-choice",e%2?"background1":"background2"];e+1===B&&r.push("last");var i={acc:B>1,cssClass:r.join(" "),enabled:w.enabled,id:w.id+"-choice"+e,index:e,label:Util.nullValue(t.label,n),markAll:w.markAll,selectSingle:1===w.numToSelect,"switch":w["switch"]};return MultipleChoiceQuestionOptionChoice.generate($.extend({},t,i))}function r(){for(var e=[],t=null,r=0;B>r;r++)t=n(r),t.appendTo(G),e.push(t);return e}function i(){var e={cssClass:"multiple-choice-question-marking multiple-choice-question-option-marking hide",id:w.id+"-marking"};return MarkingSymbol.generate(e)}function a(){var e=function(e){return StringUtil.evaluate(e)},t={acc:!1,cssClass:"multiple-choice-question-option-text",enabled:w.selectByChoice||1===B,id:w.id+"-text"},n=InteractiveElement.generate(t);return n.append(StringUtil.parseVars(w.text,{element:w.data})),n.visibilityFilter(e),n}function o(e){if(e.constructor===Array)return e;if(e.constructor===String&&!StringUtil.isEmpty(e))return e.split(",");var t=core.manifest.player.question.option;return w["switch"]||B>1?[t["choice-label-yes"],t["choice-label-no"]]:[t["choice-label-selected"]]}function s(){var e=function(e){(0===w.numToSelect||e.call("isSelected"))&&(t+=e.call("isCorrect"))},t=0;return Y.forEach(e),t}function l(e){return Y[e].call("getCurrentState")}function c(){return s()/d()}function u(){var e=function(e){return e.call("isSelected")};return Y.map(e)}function d(){return w.numToSelect>0?Math.min(w.numToSelect,B):B}function f(){var e=function(e,n){t=NumberUtil.setBit(t,n,e.call("isSelected"))},t=0;return Y.forEach(e),t}function p(){var e=function(e){return e.call("isValid")};return Y.map(e)}function g(e){G.toggleClass("highlight",Util.nullValue(e,!0))}function E(){var e={current:0,min:1===w.numToSelect?1:0,max:Math.pow(2,B)-1};return w.selectByChoice&&(e.min=Math.pow(2,w.numToSelect)-1,e.max-=e.min),e}function m(){return s()===d()}function v(){var e=function(e){return e.call("isSelected")};return Y.some(e)}function S(e){return Y[e].call("isCorrect")}function h(e){return Y[e].call("isSelected")}function b(e){var t=function(e){if(w.numToSelect>0){var t=e.toString(2),n=t.split("1").length-1;return n===w.numToSelect}return!0};if(e<F.max){var n=e+1;return t(n)?n:b(n)}return F.min}function O(e){G.toggleClass("knockback",Util.nullValue(e,!0))}function y(){var e=function(e){e.call("reset")};Y.forEach(e),K.addClass("hide"),F.current=0}function T(){w.selectByChoice?N(b(F.current)):1===B&&N(1===w.numToSelect?1:1-F.current)}function U(e,t){B>e&&(H.call("setEnabled",1===B&&t),Y[e].call("setEnabled",t))}function C(e,t){Y[e].call("setSelected",t)}function P(e){var t=function(e){e.call("setEnabled",n)},n=j&&e;w.enabled=e,H.call("setEnabled",n),Y.forEach(t)}function I(){if(B>1){var e=function(e){e.call("setMarking")};Y.forEach(e)}else K.call("setCorrect",m());D(w.showMarking)}function A(e){var t=function(t,n){t.call("setSelected",e[n])};Y.forEach(t)}function N(e){var t=function(t,n){t.call("setSelected",NumberUtil.getBit(e,n))};Y.forEach(t)}function L(){var e=function(e){e.call("setValidState")};Y.forEach(e)}function _(e){var t=Util.nullValue(e,!1);D(w.showMarking&&t),L()}function D(e){if(B>1){var t=function(t){t.call("showMarking",e)};Y.forEach(t)}else{var n=w.markAll||0===w.numToSelect,r=e&&(n||v());K.toggleClass("hide",!r)}}function R(){var e=function(e){e.call("isSelected")&&t.push(e.attr("id"))},t=[];Y.forEach(e),G.attr("aria-describedby",t.join(" "))}function M(e,t){var n=function(e,t,n){return e.call("getCurrentState")>0},r=function(e,t,n){return o+=e.call("isSelected")?1:0,o===w.numToSelect},i=function(e){e.call("setEnabled",!s||e.call("isSelected"))},a=function(e,n){e.call("setSelected",n===t.choiceIndex)},o=0,s=!1;w.selectByChoice&&(0===w.numToSelect?s=Y.every(n):(o=0,s=Y.some(r),1===w.numToSelect?t.currentState>t.previousState&&Y.forEach(a):w.numToSelect>1&&Y.forEach(i))),t.optionIndex=w.index,t.choiceCount=B,t.complete=s,F.current=f(),R()}function x(e){T()}var V={confirm:t,getCurrentState:l,getScore:c,getSelected:u,getValid:p,highlight:g,isCorrect:m,isSelected:v,isChoiceCorrect:S,isChoiceSelected:h,knockback:O,reset:y,select:T,setChoiceEnabled:U,setChoiceSelected:C,setEnabled:P,setSelected:A,setState:N,setValidStates:L,showCorrect:_},w={choiceLabels:"",choices:[],cssClass:"multiple-choice-question-option",enabled:!0,highContrast:!0,id:"option",index:0,markAll:!1,numToSelect:0,role:"listbox",selectByChoice:!1,showMarking:!0,"switch":!1,text:""};w=Element.extend(w,e),Element.manifestValue(w,"text");var j=!0,B=w.choices.length,k=o(w.choiceLabels),F=E(),G=Element.generate(w);G.publicProperties(w),G.publicMethods(V),G.on(ElementEvent.CHANGE,M);var H=a();H.on(ElementEvent.SELECT,x),H.appendTo(G);var Y=r(),K=i();return K.appendTo(G),G.attr("aria-labelledby",H.attr("id")),G.attr("aria-multiselectable",1!==w.numToSelect),G}},MultipleChoiceQuestion={SELECT_BY_OPTION:"option",SELECT_BY_CHOICE:"choice",generate:function(e){function t(){return ie.call("confirm")}function n(e,t,n){var r=t;return K.selectBy===MultipleChoiceQuestion.SELECT_BY_OPTION&&(1===e?r=Math.floor(t/2):e>1&&(r=e-(2*e-t))),Math.round(r*n)}function r(){var e=function(){$(this).remove()},t=function(e){e.call("confirm")};Q=!1,
x(!1),ie.slideUp("fast",e),re.forEach(t),te.trigger(QuestionEvent.CONFIRM)}function i(){var e={buttons:[{enabled:!1,id:Button.CONFIRM,label:core.manifest.player.button.label[Button.CONFIRM]}],id:K.id+"-footer",resourcePath:K.resourcePath+".instruction",resourceId:K.resourceId+"-instruction",text:K.instruction},t=QuestionFooter.generate(e);return t.addClass("multiple-choice-question"),t.on(QuestionEvent.CONFIRM,Y),t}function a(){var e={acc:!1,assessment:K.assessment,availableMarks:ee,id:K.id+"-header",resourcePath:K.resourcePath+".question",resourceId:K.resourceId+"-question",text:K.question};return QuestionHeader.generate(e)}function o(e){var t=W[e],n=K.id+"-option",r=Util.nullValue(t.id,n+e),i={choiceLabels:K.choiceLabels,data:K.data,enabled:K.enabled,id:r,index:e,resourcePath:K.resourcePath+"."+r,markAll:K.markAll,numToSelect:K.numToSelect,resourceId:K.resourceId+"-"+r,selectByChoice:K.selectBy===MultipleChoiceQuestion.SELECT_BY_CHOICE,showMarking:K.showMarking,"switch":K["switch"],tabEnabled:!1};return MultipleChoiceQuestionOption.generate($.extend({},t,i))}function s(e){var t=(""===K.question&&0===e,{cssClass:"multiple-choice-question-options-row",id:K.id+"-row"+e});return Element.generate(t)}function l(){for(var e=[],t=null,n=null,r=0,i=0;z>i;i++)r=i%K.columns,0===r?(t=s(Math.floor(i/K.columns)),t.appendTo(te)):t.append(Element.generate({cssClass:"multiple-choice-question-option-spacer"})),n=o(i),n.css("width",J+"%"),n.appendTo(t),e.push(n);return e}function c(e){var t=function(t){return Util.condition(t.visible,e,!0)};return K.options.filter(t)}function u(){return ee}function d(){var e=core.course.currentPage,t=Util.isSet(e)?e.target:null;return{config:core.config,core:core.data,element:K.data,page:Util.isSet(t)?t.getVal("data"):{}}}function f(e,t,n){var r=e[t];return r.id===n}function p(){var e=v();return Math.floor(e*ee)}function g(e){return e.constructor===Number?e:e.constructor===String?ArrayUtil.getItemIndex(W,f,[e]):-1}function E(e){return re[e].call("getScore")}function m(){return 0===K.numToSelect||K.selectBy===MultipleChoiceQuestion.SELECT_BY_CHOICE?z:K.numToSelect}function v(){var e=function(e){t+=e.call("getScore")},t=0;return re.forEach(e),t/m()}function S(){var e=function(e){return e.call("getSelected")};return re.map(e)}function h(){var e=function(e){return e.call("getValid")};return re.map(e)}function b(e){var t=function(t){t.call("highlight",e)};re.forEach(t)}function O(e,t){var n=g(e);n>-1&&re[n].call("highlight",t)}function y(){Util.nullValue(core.config["autonomous-mode"],!1)&&j(),te.hide(),te.fadeIn("fast"),te["super"]("init")}function T(e,t){var n=Util.nullValue(t,!1);if(n){var r=k(S(),!0);if(e<r.length)return r[e]===Math.pow(2,z)-1}else if(z>e)return re[e].call("isAllSelected");return!1}function U(){return 1===v()}function C(e){return re[e].call("isCorrect")}function P(e){return re[e].call("isSelected")}function I(){var e=function(e,t,n){return e.call("isSelected")};return re.some(e)}function A(e,t){return re[e].call("isChoiceCorrect",t)}function N(e,t){return re[e].call("isChoiceSelected",t)}function L(e){if(K.enabled){var t=e-49;-1===t&&(t=9),t>=0&&z>t&&re[t].call("select")}}function _(e){var t=function(t){t.call("knockback",e)};re.forEach(t)}function D(e,t){var n=g(e);return re[n].call("knockback",t)}function R(){var e=function(e){e.call("reset")};re.forEach(e),ie.call("setEnabled",!1)}function M(e,t,n,i){var a=n.length,o=K.selectBy===MultipleChoiceQuestion.SELECT_BY_OPTION;if("availablemarks"===e)i.availableMarks=ee;else if("confirm"===e)r();else if("iscorrect"===e)0===a?i.isCorrect=U():1===a?i.isCorrect=C(Number(n[0])):2===a&&(i.isCorrect=A(Number(n[0]),Number(n[1])));else if("isallselected"===e)a>0&&(i.isAllSelected=T(n[0],Util.nullValue(n[1],o)));else if("isselected"===e)0===a?i.isSelected=I():1===a?i.isSelected=P(Number(n[0])):2===a&&(i.isSelected=N(Number(n[0]),Number(n[1])));else if("knockback"===e)1===a?_(n[0]):2===a&&D(n[0],n[1]);else if("marks"===e)i.marks=p();else if("score"===e)0===a?i.score=v():1===a&&(i.score=E(Number(n[0])));else if("selected"===e){if(0===a)i.selected=k(S(),o);else if(Util.isSet(n[0])){var s=n[0].constructor;if(s===Boolean)i.selected=k(S(),n[0]);else if(s===Array){var l=function(e,t){var n=e|Math.pow(2,z),r=NumberUtil.toBinArray(n);return r.shift(),r},c=Util.isSet(n[1])&&n[1]===!0,u=c?ArrayUtil.transpose2D(n[0].map(l)):n[0];w(u)}}}else"showcorrect"===e?B(n[0]):"valid"===e&&(i.valid=k(h(),o))}function x(e){var t=function(e){e.call("setEnabled",n)},n=Q&&e;K.enabled=e,re.forEach(t)}function V(e,t){re[e].call("setSelected",t)}function w(e){if(Util.isSet(e))for(var t=Math.min(z,e.length),n=0;t>n;n++)V(n,e[n])}function j(){var e=function(e){e.call("setValidStates")};re.forEach(e)}function B(e){var t=function(t){t.call("showCorrect",e)};re.forEach(t)}function k(e,t){var n=function(e){return ArrayUtil.toInt(e)},r=t?ArrayUtil.transpose2D(e):e;return r.map(n)}function F(){var e=function(e){var t=$(this).height()-2;$(this).find(".multiple-choice-question-option-choice").css({height:t+"px"})},t=te.children(".multiple-choice-question-options-row");t.each(e)}function G(e,t){if(e.target!==e.delegateTarget){var n=function(e,n,r){return e.call("getCurrentState",t.choiceIndex)>0},r=function(e,n,r){return o+=e.call("isChoiceSelected",t.choiceIndex)?1:0,o===K.numToSelect},i=function(e,t){return Util.nullValue(e[t],!1)},a=function(e,n){n!==t.optionIndex&&e.call("setChoiceSelected",t.choiceIndex,!1)},o=0,s=0;if(K.selectBy===MultipleChoiceQuestion.SELECT_BY_OPTION){var l=function(e){var n=t.choiceIndex;e.call("setChoiceEnabled",n,!c||e.call("isChoiceSelected",n))},c=!1;0===K.numToSelect?c=re.every(n):(o=0,c=re.some(r),1===K.numToSelect?t.currentState>t.previousState&&re.forEach(a):re.forEach(l)),Z[t.choiceIndex]=c,s=t.choiceCount}else Z[t.optionIndex]=t.complete,s=z;var u=Z.length===s&&ArrayUtil.every(Z,i);ie.call("setEnabledButtons",{confirm:u}),te.trigger(ElementEvent.CHANGE,$.extend({completed:u,targetId:e.target.id},t))}}function H(e){e.target===e.delegateTarget&&(F(),te.trigger(ProgressEvent.SET_CONTINUE,{enabled:!0,visible:!1}))}function Y(e){e.stopPropagation(),r()}var K={assessment:!1,choiceLabels:"",columns:1,cssClass:"multiple-choice-question",enabled:!0,footerBarState:FooterBarState.QUESTION,hasAudio:!0,id:"question",instruction:"",markAll:!1,numToSelect:0,options:[],question:"",randomizeOptions:!1,role:"form",selectBy:MultipleChoiceQuestion.SELECT_BY_OPTION,showFooter:!0,showMarking:!0,weighting:1},q={advance:t,confirm:r,getAvailableMarks:u,getMarks:p,getOptionScore:E,getScore:v,getSelected:S,highlight:b,highlightOption:O,init:y,isCorrect:U,isOptionCorrect:C,isOptionSelected:P,isSelected:I,isChoiceCorrect:A,isChoiceSelected:N,keyPress:L,knockback:_,reset:R,scriptAction:M,setEnabled:x,setValidStates:j};K=Element.extend(K,e),Element.manifestValue(K,"choiceLabels"),Element.manifestValue(K,"question"),Element.manifestValue(K,"instruction"),K["switch"]=Util.nullValue(K["switch"],1!==K.numToSelect);var X=d(),W=c(X);K.randomizeOptions&&(W=ArrayUtil.sortItems(W,0,ArrayUtil.randomized));var Q=!0,z=W.length,Z=[],J=100/K.columns,ee=n(K.numToSelect,z,K.weighting),te=Element.generate(K);te.publicProperties(K),te.publicMethods(q),te.on(ElementEvent.CHANGE,G),te.on(ElementEvent.READY,H);var ne=a();ne.call("hide",StringUtil.isEmpty(K.question)),ne.appendTo(te);var re=l(),ie=i();return ie.toggleClass("hide",!K.showFooter),ie.appendTo(te),te.attr("aria-labelledby",ne.attr("id")),te.attr("aria-describedby",ie.attr("id")+"-text"),te}},MultipleStateElement={generate:function(e){function t(e){var t={visible:e,which:"highlight"};f.trigger(ElementEvent.STATE,t)}function n(){var e=Util.nullValue(u.validState,0);return e.constructor===Array?ArrayUtil.exists(e,u.currentState):0===e||u.currentState===e}function r(){return!u.mandatory||u.currentState>p}function i(){f.removeData("_enabled"),o(p)}function a(e,t,n,i){if("isselected"===e)i.isSelected=r();else if("setstate"===e){var a=Number(n[0]);isNaN(a)||o(a)}}function o(e){var t=NumberUtil.constrain(e,0,u.stateCount);if(u.currentState!==t){var n={currentState:t,previousState:u.currentState};u.currentState=t,f.trigger(ElementEvent.CHANGE,n)}}function s(e){var t=Util.nullValue(u.validState,0),n=t.constructor===Array&&t.length>0?t[0]:t,r={currentState:u.currentState,validState:n,which:"valid"};o(n),f.trigger(ElementEvent.STATE,r),Util.nullValue(e,!0)&&l(!1)}function l(e,t){var i=!t||r(),a={isCorrect:n(),visible:e&&i,which:"marking"};f.trigger(ElementEvent.STATE,a)}function c(e){o(u.cycle?u.currentState%u.stateCount+1:u.currentState+1)}var u={currentState:1,cycle:!0,elementType:"MultipleStateElement",id:"multiple-state-element",mandatory:!0,stateCount:1,validState:0},d={highlight:t,isCorrect:n,isSelected:r,reset:i,scriptAction:a,setState:o,setValidState:s,showMarking:l};u=Element.extend(u,e),u.stateCount=Math.max(1,u.stateCount);var f=InteractiveElement.generate(u);f.publicProperties(u),f.publicMethods(d),f.on(ElementEvent.SELECT,c),o(u.currentState);var p=u.currentState;return f}},PageIcon={generate:function(e){function t(e){var t={acc:!1,cssClass:"page-icon-index",id:a.id+"-index"},n=Element.generate(t);return n.call("hide",a.subPage),n.append(e),n}function n(){var e={accName:core.manifest.player.acc.recommended,cssClass:"page-icon-recommended",id:a.id+"-recommended",symbol:"symbols.recommended"};return Sprite.generate(e)}function r(){var e=a.pageNode,t="";if(Util.isSet(e)){var n=Util.nullValue(core.manifest[e.id],{});t=Util.nullValue(n.title,"")}return t}function i(){u.call("setEnabled",u.data("_enabled")),u.toggleClass("completed",a.pageNode.completed),l.toggleClass("completed",a.pageNode.completed),c.toggleClass("hide",!a.pageNode.recommended)}var a={cssClass:"page-icon",elementType:"PageIcon",enabled:!0,id:"page-icon",index:0,pageNode:null,role:"option",subPage:!1},o={update:i};a=Element.extend(a,e);var s=r(),l=t(a.index+1),c=n(),u=InteractiveElement.generate(a);return u.publicProperties(a),u.publicMethods(o),u.toggleClass("sub-page",a.subPage),u.attr("aria-label",s),u.attr("title",s),u.append(l),u.append(c),u}},PageIcons={generate:function(e){function t(e,n,r,i){for(var a=n.length,o=e.selectChildren(),s=o.moveFirst(),l=null,u=null;Util.isSet(s);)s.visible&&(s.isPageNode?s.discreet||(l={enabled:!1,index:i++,id:"page-icon-"+a,pageNode:s,subPage:r,tabIndex:c.tabIndexOffset},u=PageIcon.generate(l),u.appendTo(p),n.push(u),t(s,n,!0,0),a=n.length):i=t(s,n,r,i)),s=o.moveNext();return i}function n(){p.empty(),f=[]}function r(e){var t=function(e){var t=e.data("_enabled");e.call("setEnabled",t&&c.enabled)};c.enabled=e,p.toggleClass("disabled",!c.enabled),f.forEach(t)}function i(e){e<f.length&&(f[e].animate({opacity:1},"slow"),setTimeout(i,40,e+1))}function a(e){if(Util.isSet(e))if(e.showPageIcons&&Util.isSet(e.parent)){var r=core.course.getSection(e);Util.isSet(r)?(d!==r&&(d=r,n()),p.call("hide",!1),0===f.length?(t(d,f,!1,0),o(e),i(0)):o(e)):(p.call("hide",!0),d=null,n())}else p.call("hide",!0);else p.call("hide",!Util.isSet(d))}function o(e){var t=function(t){var r=t.getVal("subPage"),i=t.getVal("pageNode"),a=i===e;t.attr("aria-selected",a),t.toggleClass("current",a),t.data("_enabled",r?!u||i.completed:n),t.call("update"),r||(n=!u||i.completed)},n=!0;e.discreet||f.forEach(t)}function s(e){e.stopPropagation();var t=$(e.target),n=t.getVal("pageNode"),r={navigation:Navigation.PAGE_BY_ID,target:n.id};p.trigger(CourseEvent.NAVIGATE,r)}var l={setEnabled:r,startPage:a},c={accName:"Navigate to page.",cssClass:"page-icons",elementType:"PageIcons",enabled:!0,id:"page-icons",role:"menu",tabIndexOffset:0};c=Element.extend(c,e);var u=core.config["sequential-pages"],d=(core.config["strict-page-completion"],null),f=[],p=Element.generate(c);return p.publicProperties(c),p.publicMethods(l),p.on(ElementEvent.SELECT,s),p}},PageManager={generate:function(e){function t(e,t){var i=null;t.closeOverlay?(n(),E=0,i=g[E],Util.isSet(i)&&(l(i.getVal("pageNode"),t),i.show())):(i=g[e.isOrphan?1:0],Util.isSet(i)&&i.call("unload"),r(e,t))}function n(){Util.isSet(g[1])&&(g[1].remove(),g[1]=null)}function r(e,t){var n=Page.generate($.extend({pageNode:e},t,e));return n.hide(),n.on(PageEvent.START,u),n.appendTo(v),n.call("init"),n}function i(){return m?a():null}function a(){return g[E]}function o(){return m}function s(e,t){var n=g[E];n.off(),m=!1}function l(e,t){var n=t.titles,r=core.manifest.player.acc.titles,i=Util.isSet(n.section)&&!StringUtil.isEmpty(n.section)?r.section:r.page;v.call("setAccName",StringUtil.parseVars(i,{core:core,titles:n})),v.toggleClass("no-footer",!e.showFooterBar),v.toggleClass("no-header",!e.showHeaderBar)}function c(e){var t=i();Util.isSet(t)&&t.trigger(e.type,{property:e.property,value:e.value})}function u(e){var t=$(e.target),r=t.getVal("pageNode"),i=r.isOrphan;Util.isSet(g[0])&&(i?g[0].hide():g[0].remove()),n(),core.audio.stop(),E=i?1:0,g[E]=t,t.show(),m=!0}function d(e){var t=$(e.target),n=t.getVal("pageNode");$.extend(n.data,t.getVal("data"))}var f={cssClass:"page-manager",elementType:"PageManager",highContrast:!0,id:"page-manager",role:"group"},p={changePage:t,isPageActive:o,navigate:s,startPage:l};f=Element.extend(f,e);var g=[],E=0,m=!1;core.addEventListener(CoreEvent.SETTING,c);var v=Element.generate(f);return v.publicProperties(f),v.publicMethods(p),v.on(PageEvent.FINISH,d),v}},PageMenuElement={generate:function(e){function t(e,n){var r=function(n){a.append(t(e,n))},i=e.getElementProperties(n),a=null;if(Util.isSet(i)){var o=StringUtil.empty(i.elementType,"Element"),s=StringUtil.evaluate(o);Util.isSet(s)&&ObjectUtil.is(s.generate,Function)&&(a=s.generate(i),ObjectUtil.is(i.children,Array)&&i.children.forEach(r))}return a}function n(e,t){var n={cssClass:l.resourceId+"-option-label",highContrast:!0,id:e+"-label",text:t};return Paragraph.generate(n)}function r(e){for(var t=Selector.generate(e),n=core.course.currentPage,r=n.selectChildren("",new PageFilter({visible:!0})),o=r.count,s=Math.ceil(o/c),l=Math.ceil(o/s),u=0,d=0,f=r.moveFirst(),p=null,g=null;Util.isSet(f);)u%l===0&&(p=a(d++),p.appendTo(t)),g=i(n,f),g.appendTo(p),u++,f=r.moveNext();return t}function i(e,r){var i=r.id,a=i.replace(/\D+/g,""),s=StringUtil.isEmpty(l.resourceId)?l.id+"-option":l.resourceId+"-option",c=["page-menu-element-option",s],u={cssClass:c.join(" "),id:l.id+"-option-"+a,relative:l.id,resourceId:s},d=n(u.id,r.title),f=InteractiveElement.generate(u);return f.attr("role","menuitem"),f.data("page-id",i),f.attr("aria-labelledby",d[0].id),f.append(t(e,a)),f.append(d),f.append(o(u.id,r.getProgress())),f}function a(e){var t={cssClass:"page-menu-element-row",id:l.id+"-row"+e};return Element.generate(t)}function o(e,t){var n={cssClass:l.resourceId+"-option-status",id:e+"-status",progress:t};return RadialProgressIndicator.generate(n)}function s(e){var t=$(e.target);u.call("setEnabled",!1),u.trigger(CourseEvent.NAVIGATE,{navigation:Navigation.PAGE_BY_ID,target:t.data("page-id")})}var l={cssClass:"page-menu-element",elementType:"PageMenuElement",id:"page-menu-element"};l=Element.extend(l,e),l.numToSelect=0,l.once=!1,l.sequential=!1;var c=4,u=r(l);return u.publicProperties(l),u.attr("role","menu"),u.on(ElementEvent.SELECT,s),u}},Page={generate:function(e){function t(e,t,n){return V.addElements(e,t,n)}function n(e){var t=_.pageNode.elements,n=null,r="",i=null;for(var a in t)t.hasOwnProperty(a)&&(n=t[a],r=StringUtil.empty(n.dataId,a),i=e[r],Util.isSet(i)||(i=StringUtil.resolve(r,core.assets.data)),Util.isSet(i)&&(n.imageData=i))}function r(){var e=_.pageNode.elements,t=null;for(var n in e)e.hasOwnProperty(n)&&(t=e[n],Util.isSet(t.data)&&delete t.data)}function i(e,t){var n=$(e.target),r=n.attr("id");r===x.attr("id")&&(r="page");var i=Util.nullValue(t,{});$.extend(i,{elementId:r,eventType:e.type}),V.event(n,s(n,i))}function a(e){var t=Util.nullValue(e["extends"],"");if(!StringUtil.isEmpty(t))if(t!==e.id){var n=_.pageNode.elements,r=n[t];if(Util.isSet(r))return r=a(r),$.extend(!0,{},r,e)}else V.error("Element '"+e.id+"' cannot extend itself.");return e}function o(){return M}function s(e,t){var n=function(e){var t=$.extend({},e.getVal("data")),n=e.data("publicProperties");if(Util.isSet(n)){var r="Page"===n.elementType?R:Util.nullValue(R[n.id],{});$.extend(t,{manifest:r,prop:n})}return t},r=Util.nullValue(e,x),i=n(x),a="continue"===t.eventType?"advance":t.eventType,o={config:core.config,core:core.data,event:t};return o.element=Util.isSet(e)?n(e):i,o.page=i,o.prop=Util.nullValue(r.call("jsCall",a,t),{}),o}function l(e,t){var n=_.pageNode;if(Util.isSet(e)){var r=Number(e);isNaN(r)?n=n.getChildById(e):r>-1&&(n=n.getChildByIndex(r))}return Util.isSet(n)?n.getProgress(t):0}function c(){u(),m()||E()||(n({}),d())}function u(){var e=_.pageNode.elements,t=null;for(var n in e)e.hasOwnProperty(n)&&(t=e[n],Util.isSet(t.id)||(t.id=n),e[n]=a(t))}function d(){x["super"]("init"),V.event(x,s(x,{elementId:"page",eventType:"init"})),core.audio.on(MediaEvent.DISABLED,O),core.audio.on(MediaEvent.ENDED,y)}function f(e){var t=new JSONLoader;t.addEventListener(LoadEvent.LOADED,b),t.load(e)}function p(e,t){x.trigger(CourseEvent.NAVIGATE,{navigation:e,target:t})}function g(e,t){if(!StringUtil.isEmpty(e)){var n=e+".mp3",r=Path.ASSETS+n,i=core.audio.getVal("data");i.targetId=Util.nullValue(t,e),core.audio.call("load",r)}}function E(){var e=core.config["preload-page-asset-data"],t=_.pageNode.preloadAssetData,n=_.resourceId;if(Util.isSet(t))switch(t.constructor){case String:n=t;break;case Boolean:e=t}if(e&&!StringUtil.isEmpty(n)){var r=n+".json.js";f(Path.ASSETS+r)}return e}function m(){var e=new Preloader(_.pageNode.preload);return e.addEventListener(LoadEvent.LOADED,L),e.start()}function v(e,t,n,r){if("bookmarked"===e||"completed"===e||"recommended"===e)r[e]=_.pageNode[e];else if("progress"===e)r[e]=l(n[0],n[1]);else if("active"===e)r[e]=o();else if("pageid"===e){var i=_.pageNode;Util.isSet(n[0])&&(i=i.children.getItemByIndex(n[0])),r.pageId=i.id}}function S(e){var t=function(t){e||$(this).call("stop")},n=x.find("audio");n.each(t)}function h(){var e=function(e,t){$(t).call("unload")},t=_.pageNode,n=t.data.completed;Util.isSet(n)&&(t.completed=n),core.audio.off(MediaEvent.ENDED,y),x.off(),x.find("[data-element-type]").each(e),r()}function b(e){e.success&&(n(e.data),d())}function O(e){i(e,$(e.target).getVal("data"))}function y(e){i(e,$(e.target).getVal("data"))}function T(e,t){e.stopPropagation();var n=Util.nullValue(t,{});$.extend(n,{elementId:"page",eventType:e.type}),n.property===ToolkitMenu.AUDIO_ENABLED&&S(n.value),V.event(x,s(x,n))}function U(e,t){i(e,t)}function C(e){M?M=!1:e.stopImmediatePropagation()}function P(e,t){if(e.target!==x[0]){var n=$(e.target);if(n.getVal("hasAudio")){var r=n.getVal("id"),a=n.getVal("resourceId");g(a,r)}i(e,t)}}function I(e,t){e.stopPropagation();var n=Util.nullValue(t,{stopAudio:!0});n.stopAudio!==!1&&core.audio.call("stop"),i(e,t)}function A(e){M=!0,i(e)}function N(e){x.trigger(PageEvent.BOOKMARK)}function L(e){E()||(n({}),d())}var _={cssClass:"page",elementType:"Page",id:"page",pageNode:null},D={addElements:t,init:c,navigate:p,playAudio:g,scriptAction:v,unload:h};_=Element.extend(_,e),_.pageNode.addEventListener(PageNodeEvent.BOOKMARKED,N);var R=Util.nullValue(core.manifest[_.id],{}),M=!1,x=Element.generate(_);x.publicProperties(_),x.publicMethods(D),x.addClass(_.pageNode.cssClass),x.touchSwipe(),x.on(MediaEvent.CAN_PLAY,U),x.on(AnimationEvent.COMPLETE,U),x.on(ElementEvent.CHANGE,U),x.on(AssessmentEvent.COMPLETED,U),x.on(QuestionEvent.CONFIRM,I),x.on(ProgressEvent.CONTINUE,I),x.on(TimerEvent.CUE,U),x.on(TimerEvent.TIMEOUT,U),x.on(MediaEvent.DISABLED,U),x.on(ElementEvent.ENABLED,U),x.on(MediaEvent.ENDED,U),x.on(PageEvent.FINISH,C),x.on(MediaEvent.FRAME,U),x.on(ElementEvent.HOVER,U),x.on(ElementEvent.INIT,P),x.on(ElementEvent.JS_ECHO,U),x.on(TextEvent.PARAGRAPH,U),x.on(ElementEvent.READY,U),x.on(ElementEvent.RESELECT,U),x.on(DialogEvent.RESPONSE,U),x.on(ElementEvent.SELECT,U),x.on(PageEvent.START,A),x.on(ElementEvent.STATE,U),x.on(CoreEvent.SETTING,T),x.on(AssessmentEvent.SHOW_QUESTION,U);var V=new ScriptEase(x);return _.pageNode.target=x,x}},Panel={generate:function(e){function t(){var e={buttons:r.buttons,cssClass:"panel-buttons",id:r.id+"-buttons"},t=ButtonGroup.generate(e);return t.toggleClass("hide",0===e.buttons.length),t}function n(e){e.stopPropagation(),i.trigger(ElementEvent.SELECT,{id:e.target.id})}var r={buttons:[],content:"",cssClass:"panel",elementType:"Panel",id:"panel"};r=Element.extend(r,e);var i=Element.generate(r);i.publicProperties(r);var a=Element.generate({cssClass:"panel-container",id:r.id+"-container"});a.append(r.content),a.appendTo(i);var o=t();return o.appendTo(i),o.on(ElementEvent.SELECT,n),i.call("setContainer",a),i}},ParagraphListItem={generate:function(e){function t(){var e={cssClass:"",id:n.id+"-text"},t=Element.generate(e);return t.append(StringUtil.parseVars(n.text)),t}var n={cssClass:"paragraph-list-item",element:"<li/>",hasAudio:!1,id:"paragraph-list-item",replace:0,text:""};n=Element.extend(n,e),Element.manifestValue(n,"text");var r=Element.generate(n);return r.publicProperties(n),r.append(t()),r}},ParagraphText={generate:function(e){function t(){return U&&(I.trigger(ProgressEvent.CONTINUE,T),U=E()),!U}function n(e,t){var n=function(){switch(t){case"A":case"a":case"I":case"i":return t}return"1"},r=function(){switch(t.toLowerCase()){case"n":return"type-none";case"c":return"type-circle";case"s":return"type-square"}return"type-disc"},i="#"===e,a={cssClass:"paragraph-text-list",element:i?"<ol/>":"<ul/>"},o=Element.generate(a);return i?o.attr("type",n()):o.addClass(r()),o.data("listItem",e),o.data("listType",t),o}function r(e,t,n){var r=!StringUtil.isEmpty(n.item),i=Util.nullValue(t.id,m.id+"-paragraph"+e),o=i,s=i,l=[r?"list-item":"paragraph"],c=e===O-1;StringUtil.isEmpty(t.resourceId)?StringUtil.isEmpty(m.resourceId)||(o=m.resourceId+"-"+i,l.push(o)):(o=t.resourceId,l.push(o)),StringUtil.isEmpty(t.resourcePath)?StringUtil.isEmpty(m.resourcePath)||(s=m.resourcePath+"."+i):s=t.resourcePath,m.data=$.extend({},P);var u={cssClass:l.join(" "),data:m.data,hasAudio:m.paragraphAudio,highContrast:m.highContrast,replaceInitial:m.replaceInitial};return T={"continue":a(t["continue"],c,S),id:i,index:e,isFirst:0===e,isLast:e===O-1,resourceId:StringUtil.parseVars(o),resourcePath:StringUtil.parseVars(s)},f(t.replace,t.replaceInitial),$.extend(u,t,T),r?ParagraphListItem.generate(u):Paragraph.generate(u)}function i(e){var t=function(t){return Util.condition(t.visible,e,!0)};return m.paragraphs.filter(t)}function a(e,t,n){var r=!m.build;return r=t?Util.condition(m["continue"],n,r):r,Util.condition(e,n,r)}function o(){var e=core.course.currentPage,t=Util.isSet(e)?e.target:null;return{config:core.config,core:core.data,element:m.data,page:Util.isSet(t)?t.getVal("data"):{}}}function s(e){var t=function(e,t){var r=n(e,t);return i=C.push(r)-1,r.appendTo(i>0?C[i-1]:I),r},r=null,i=0;if(StringUtil.isEmpty(e.item))C=[];else if(e.index<C.length){C=C.slice(0,e.index+1),r=C[e.index];var a=Util.nullValue(r.data("listType"),"");e.type=StringUtil.empty(e.type,a),(r.data("listItem")!==e.item||a!==e.type)&&(C.pop(),r=t(e.item,e.type))}else r=t(e.item,e.type);return r}function l(){m.hasAudio=Util.condition(m.hasAudio,S,!1),m.paragraphAudio=Util.condition(m.paragraphAudio,S,!0),P=$.extend({},m.data),I.trigger(ElementEvent.INIT),U=E()}function c(e){m.paragraphFade&&(e.css({opacity:0}),e.animate({opacity:1},"fast")),e.call("init"),p(e)}function u(){if(y++,O>y){var e=b[y],t=d(e.list),n=r(y,e,t);if(!StringUtil.isEmpty(n.getVal("text")))return n.appendTo(Util.nullValue(s(t),I)),c(n),h.push(n),I.trigger(TextEvent.PARAGRAPH,T),n}return null}function d(e){var t={index:0,item:"",type:""};if(Util.isSet(e)){var n=e.match(/(-*)([*|#]?)(\S?)/);Util.isSet(n)&&(t={index:n[1].length,item:n[2],type:n[3]})}return t}function f(e,t){var n=h.length;if(n>0){var r=Math.min(Util.nullValue(e,0),n),i=null,a=null;for(0>r&&(r=n);r>0;)i=t?h.shift():h.pop(),a=i.parent(),i.remove(),0===a.children().length&&a[0]!==I[0]&&a.remove(),r--}}function p(e){var t=function(){var e=$(this),t=e.attr("class"),r=null;"glossary"===t&&(r=core.glossary.getEntryListItem(e.data("id")),Util.isSet(r)&&Util.nullValue(r.visible,!0)?e.attr("aria-label",e.html()+". "+core.manifest.player.acc.links[t]):n(e))},n=function(e){var t=$("<span/>");t.append(e.html()),e.replaceWith(t)},r=e.find("a[data-id]");r.attr("role","link"),r.attr("tabindex",TabOrder.PAGE_CONTENT),r.each(t)}function g(e,t){P[e]=t,I["super"]("setVal",e,t)}function E(){for(var e=!0,t=null,n=!1;e;)t=u(),n=Util.isSet(t),e=n&&t.getVal("continue");return n}var m={build:!0,cssClass:"paragraph-text",footerBarState:FooterBarState.CONTINUE,id:"paragraph-text",paragraphAudio:!0,paragraphFade:!0,paragraphs:[],replaceInitial:!1},v={advance:t,init:l,setVal:g};m=Element.extend(m,e);var S=o(),h=[],b=i(S),O=b.length,y=-1,T=null,U=!0,C=[],P=null,I=Element.generate(m);return I.publicProperties(m),I.publicMethods(v),I}},Paragraph={generate:function(e){function t(){var e={cssClass:"paragraph-txt",id:s.id+"-text"};return Element.generate(e)}function n(){s.text="",Element.manifestValue(s,"text",{element:s.data}),o()}function r(e){s.resourceId=e,Util.isSet(u)&&i(u[s.resourceId])}function i(e){ObjectUtil.is(e,String)&&(s.text=StringUtil.parseVars(e),d.empty(),d.append(s.text))}function a(e,t,a,o){"refresh"===e?n():"text"===e?i(Util.nullValue(a[0],"")):"resourceid"===e&&r(Util.nullValue(a[0],""))}function o(){StringUtil.isEmpty(s.text)?r(s.resourceId):i(s.text)}var s={cssClass:"paragraph",elementType:"Paragraph",hasAudio:!1,id:"paragraph",text:""},l={refresh:n,setResourceId:r,setText:i,scriptAction:a};s=Element.extend(s,e);var c=Element.generate(s),u=Element.manifestValue(s,"text",{element:s.data}),d=t();return c.publicProperties(s),c.publicMethods(l),c.append(d),o(),c}},QuestionFooter={generate:function(e){function t(){return n()}function n(){var e=E.call("getEnabledButton",p[Button.CONFIRM]);return e&&v.trigger(QuestionEvent.CONFIRM),e}function r(){var e=f.id+"-buttons",t={buttons:a(e),cssClass:"button-group question-footer-buttons",enabled:f.enabled,id:e},n=ButtonGroup.generate(t);return n.on(ElementEvent.SELECT,c),n}function i(){var e={acc:!1,cssClass:"question-footer-text",id:f.id+"-text"},t=Element.generate(e);return t.append(f.text),t}function a(e){var t=function(t){var n={},r="";return Util.isSet(t)&&(t.constructor===String?(r=t,n={id:e+"-"+r,label:core.manifest.player.button.label[r]}):t.constructor===Object&&(n=t,r=n.id)),r===Button.CONFIRM&&(p[Button.CONFIRM]=n.id),n};return f.buttons.map(t)}function o(e){m&&v.trigger(ProgressEvent.SET_CONTINUE,{enabled:e,visible:!1})}function s(e){f.enabled=e,E.call("setEnabled",e),o(f.enabled)}function l(e){E.call("setEnabledButtons",e)}function c(e){var t=e.target.id;t===p[Button.CONFIRM]&&(e.stopPropagation(),n())}function u(e){e.target===e.delegateTarget&&o(f.enabled)}var d={advance:t,confirm:n,setEnabled:s,setEnabledButtons:l},f={id:"question-footer",buttons:[],cssClass:"question-bar question-footer",elementType:"QuestionFooter",enabled:!0,highContrast:!0,role:"group",text:""};f=Element.extend(f,e),Element.manifestValue(f,"text");var p={},g=i(),E=r(),m=f.footerBarState===FooterBarState.QUESTION,v=Element.generate(f);return v.publicProperties(f),v.publicMethods(d),v.append(g),v.append(E),v.on(ElementEvent.READY,u),v}},QuestionHeader={generate:function(e){function t(){var e={cssClass:"question-header-available-marks",id:a.id+"-available-marks"};return Element.generate(e)}function n(){var e={cssClass:"question-header-text",id:a.id+"-text"},t=Element.generate(e);return t.append(a.text),t}function r(e,t,n,r){var o=n.length;"availablemarks"===e&&(0===o?r.availableMarks=a.availableMarks:i(n[0]))}function i(e){a.availableMarks=e,a.assessment&&l.html(a.availableMarks+" "+(1===a.availableMarks?core.manifest.player.question.header["available-mark"]:core.manifest.player.question.header["available-marks"])),s.toggleClass("assessment",a.assessment),l.toggleClass("hide",!a.assessment)}var a={assessment:!1,availableMarks:-1,cssClass:"question-bar question-header",elementType:"QuestionHeader",highContrast:!0,id:"question-header",text:""},o={scriptAction:r};a=Element.extend(a,e),Element.manifestValue(a,"text");var s=n(),l=t(),c=Element.generate(a);return c.publicProperties(a),c.publicMethods(o),c.append(s),c.append(l),i(a.availableMarks),c}},QuestionOption={generate:function(e){function t(){var e=Util.nullValue(i.validState,0),t=e.constructor===Array&&e.length>0?e[0]:e;a.call("setState",t)}function n(){var e=Util.nullValue(i.validState,0);return e.constructor===Array?ArrayUtil.exists(e,i.state):i.state===e}var r={complete:t,isCorrect:n},i={selectionGroup:"",validState:0};i=Element.extend(i,e);var a=InteractiveElement.generate(i);return a.publicProperties(i),a.publicMethods(r),a}},QuoteBox={generate:function(e){function t(){var e={acc:!1,cssClass:"quote-box-content",id:n.id+"-content",text:n.text};return Paragraph.generate(e)}var n={cssClass:"quote-box",elementType:"QuoteBox",highContrast:!0,id:"quote-box",role:"note",text:""};n=Element.extend(n,e),Element.manifestValue(n,"text",{element:n.data});var r=t(),i=Element.generate(n);return i.publicProperties(n),i.attr("aria-labelledby",r.attr("id")),i.append(r),i}},RadialProgressIndicator={generate:function(e){function t(e,t){var n=document.createElementNS("http://www.w3.org/2000/svg",e),r=Util.nullValue(t,{});for(var i in r)r.hasOwnProperty(i)&&n.setAttribute(i,r[i]);return n}function n(){var e={"class":"radial-progress-indicator-base",id:o.id+"-base",preserveAspectRatio:"xMinYMin meet",viewBox:f.join(" ")},n=$(t("svg",e));return n.attr("aria-hidden",!0),n}function r(){var e={"class":"radial-progress-indicator-progress",cx:u,cy:u,id:o.id+"-progress",r:d};return $(t("circle",e))}function i(e,t,n,r){"progress"===e&&a(Util.nullValue(n[0],0))}function a(e){o.progress=NumberUtil.constrain(e,0,1),p[0]=Math.round(p[1]*o.progress),g.css("stroke-dasharray",p.join(" ")),g.attr("visibility",o.progress>0?"visible":"hidden");var t={progressPercent:Math.round(100*o.progress)},n=StringUtil.parseVars(l.accName,t);m.attr("aria-label",n)}var o={cssClass:"radial-progress-indicator",elementType:"RadialProgressIndicator",id:"radial-progress-indicator",progress:0,role:"status"},s={scriptAction:i,setProgress:a};o=Element.extend(o,e);var l=core.manifest.player["radial-progress-indicator"],c=100,u=c/2,d=23,f=[0,0,c,c],p=[0,Math.ceil(2*Math.PI*d)],g=r(),E=n();E.append(g);var m=Element.generate(o);return m.publicProperties(o),m.publicMethods(s),m.append(E),a(o.progress),m}},RadioButton={generate:function(e){function t(){var e={cssClass:"radio-button-selected",id:r.id+"-selected"},t=Element.generate(e);return t.toggleClass("hide",!r.selected),t}function n(e,t){i.toggleClass("hide",!a.call("isSelected"))}var r={cssClass:"radio-button",elementType:"RadioButton",id:"radio-button",role:"radio",selected:!1};r=Element.extend(r,e),r.cycle=!1;var i=t(),a=DualStateElement.generate(r);return a.publicProperties(r),a.append(i),a.on(ElementEvent.CHANGE,n),a}},ResourceEntry={generate:function(e){function t(e,t){var n=StringUtil.parseVars(t[e]);if(!StringUtil.isEmpty(n)){var r="name"!==e&&"description"!==e,a={acc:r,id:i.id+"-"+e},o="email"===e;if("url"===e||o)return a.entryId=t.id,a.label=t.name,o?(a.icon="email",a.url="mailto:"+n):a.url=n,WebLink.generate(a);var s=Element.generate($.extend(a,{cssClass:"resource-entry-"+e}));return s.toggleClass("group",t.group),s.append(n),s}return null}function n(){var e=function(e){var r=t(e,o);Util.isSet(r)&&(s+=Number(r.call("isElement","WebLink")),n.append(r))},n=Element.generate(i);n.publicProperties(i);var o=i.entry,s=0,l=["name","description","phone","email","url"];l.forEach(e);var c=n.children();if(2===c.length&&1===s&&$(c[0]).remove(),o.resources.length>0){var u=r(o.resources);n.append(u),a=o.group&&u.call("isEmpty")}return n.toggleClass("hide",a),n.attr("aria-labelledby",i.id+"-name"),n.attr("aria-describedby",i.id+"-description"),n}function r(e){var t={id:i.id+"-group",resources:e};return ResourceGroup.generate(t);
}var i={cssClass:"resource-entry",elementType:"ResourceEntry",id:"resource-entry",role:"group"},a=!1;return i=Element.extend(i,e),n()}},ResourceGroup={generate:function(e){function t(e,t){var n={entry:e,id:i.id+"-"+t};return ResourceEntry.generate(n)}function n(){var e=function(e){var i=core.resources.getEntries(new ResourceEntryListFilter({id:e})),a=i.moveFirst();for(o=o&&!Util.isSet(a);Util.isSet(a);)n.append(t(a,r++)),a=i.moveNext()},n=Element.generate(i);n.publicProperties(i),n.publicMethods(a);var r=1;return i.resources.forEach(e),n}function r(){return o}var i={cssClass:"resource-group",elementType:"ResourceGroup",id:"resource-group",resources:[]},a={isEmpty:r},o=!0;return i=Element.extend(i,e),n()}},ResourcesElement={generate:function(e){function t(){var e={acc:!1,cssClass:"resources-element-background",highContrast:!0,id:o.id+"-background"};return Element.generate(e)}function n(){var e={cssClass:"resources-element-entries-pane",id:o.id+"-entries-pane"};return Element.generate(e)}function r(e,t){var n={cssClass:"resource-entry",entry:e,id:"resource-"+t};return ResourceEntry.generate(n)}function i(e){for(var t=new ResourceEntryListFilter({id:o.data.entryId,root:!0}),n=core.resources.getEntries(t),i=n.moveFirst(),a=1;Util.isSet(i);)c.append(r(i,a++)),i=n.moveNext()}function a(){i(c),u.trigger(ElementEvent.INIT)}var o={cssClass:"resources-element",elementType:"ResourcesElement",highContrast:!0,id:"resources-element"},s={init:a};o=Element.extend(o,e);var l=t(),c=n(),u=Element.generate(o);return u.publicProperties(o),u.publicMethods(s),u.append(l),u.append(c),u}},SearchBar={SEARCH_DELAY:3e3,generate:function(e){function t(){h.prop("value",""),y.prop("disabled",!0),b.addClass("hide")}function n(){var e={cssClass:"search-bar-entry",id:E.id+"-entry"};return Element.generate(e)}function r(){S&&(S=!1,U.trigger(SearchEvent.CLEAR_FILTER)),t()}function i(){var e=E.id+"-clear-search",t={cssClass:"search-bar-clear-search",id:e,tabIndex:TabOrder.PAGE_CONTENT},n=InteractiveElement.generate(t);return n.attr("title",v["clear-search"]),n.append(Sprite.generate({id:e+"-icon",symbol:"symbols.cancel-circle",cssClass:"search-bar-clear-search-icon"})),n.on(ElementEvent.SELECT,u),n}function a(){var e={cssClass:"search-bar-input",element:"<input/>",highContrast:!0,id:E.id+"-input",role:"textbox"},t=Element.generate(e);return t.attr("type","search"),t.attr("placeholder",v["placeholder-text"]),t.css("box-sizing","border-box"),t.on(KeyboardEvent.KEY_DOWN,f),t.on("change input textInput",d),t}function o(){var e={cssClass:"button search-bar-search-button",enabled:!1,id:E.id+"-search-button",resourcePath:"player.button.label.search"};return Button.generate(e)}function s(){var e={cssClass:"button search-bar-show-all-button",id:E.id+"-show-all-button",resourcePath:"player.button.label.show-all-questions",tabIndex:TabOrder.PAGE_CONTENT};return Button.generate(e)}function l(e){"search"===e?(h.removeClass("hide"),y.removeClass("hide"),T.addClass("hide")):"showall"===e&&(S=!0,T.removeClass("hide"),h.addClass("hide"),y.addClass("hide")),b.addClass("hide")}function c(){var e=h.prop("value");return S=!StringUtil.isEmpty(e),S&&(U.trigger(SearchEvent.FIND,[e]),h.blur(),y.call("setEnabled",!0)),S}function u(e){e.stopPropagation(),r()}function d(e){e.stopPropagation();var t=h.prop("value"),n=t.length>0;y.call("setEnabled",n),b.toggleClass("hide",!n)}function f(e){E.enabled&&e.which===Key.ENTER&&c()&&e.stopPropagation()}function p(e){c()&&e.stopPropagation()}function g(e){e.stopPropagation(),r(),l("search")}var E={cssClass:"search-bar",enabled:!0,highContrast:!0,id:"search-bar",role:"search"},m={clear:t,setState:l};E=Element.extend(E,e);var v=core.manifest.player["search-bar"],S=!1,h=a(),b=i(),O=n();O.append(h),O.append(b);var y=o();y.on(ElementEvent.SELECT,p);var T=s();T.on(ElementEvent.SELECT,g);var U=Element.generate(E);return U.publicProperties(E),U.publicMethods(m),U.append(O),U.append(y),U.append(T),U}},Selector={generate:function(e){function t(){var e=function(){return k["super"]("advance")};C(!1);var t=!1;if(j)t=e();else{var n=$("#"+_.questionFooter);t=n.length>0?n.call("confirm"):e()}return t}function n(e,t,n){var r=t;return 1===e?r=Math.floor(t/2):e>1&&(r=e-(2*e-t)),Math.round(r*n)}function r(){var e=function(e){e.call("complete")};R.forEach(e)}function i(){C(!1),I(!0),k.trigger(QuestionEvent.CONFIRM)}function a(e){var t=function(t,n){var r=_.enabled&&!e&&x>=n||t.getVal("currentState")>1;t.call("setEnabled",r)};R.forEach(t)}function o(e){var t=function(t,n){var r=t.attr("id"),i=r===e,a=x>=n;i?t.attr("aria-selected",!0):(t.call("setState",Math.min(t.getVal("currentState"),1)),t.removeAttr("aria-selected"),t.removeAttr("aria-owns")),t.call("setEnabled",_.enabled&&!i&&a)};R.forEach(t)}function s(){return V}function l(){var e=function(e){return n+=Number(t(e)),n>=_.numToSelect},t=function(e){var t=Util.nullValue(e.call("getVal","_active"),!0);return!t||e.call("isSelected")},n=0;return _.numToSelect<0?R.every(t):_.numToSelect>0?R.some(1===_.numToSelect?t:e):!0}function c(){var e=function(e){(!B||e.call("isSelected"))&&(t+=Number(h(e)))},t=0;return R.forEach(e),t}function u(){var e=function(e){t.push(e.getVal("currentState"))},t=[];return R.forEach(e),t}function d(){var e=p();return Math.floor(e*V)}function f(){var e=function(e,n){var r=$(n);if(b(r)){r.call("setEnabled",_.enabled);var i=t.push(r)-1;r.call("setVal","relativeIndex",i)}},t=[];return k.find("*").each(e),t}function p(){var e=B?_.numToSelect:R.length;return e>0?c()/e:0}function g(){var e=function(e){t.push(e.call("isSelected"))},t=[];return R.forEach(e),t}function E(){var e=function(e,t){return e+Number(t.getVal("currentState")>1)};return R.reduce(e,0)}function m(e){var t=function(t){t.call("highlight",e)};R.forEach(t)}function v(e,t){var n=function(n){var r=n.attr("id")===e;return r&&n.call("highlight",t),r};R.some(n)}function S(){var e=B?_.numToSelect:R.length;return c()===e}function h(e){return e.call("isCorrect")}function b(e){return e.isVal("relative",_.id)}function O(e){var t=R.length,n=e-49;if(n>=0&&t>n){var r=R[n];r.getVal("enabled")?r.call("select"):r.trigger(ElementEvent.RESELECT)}}function y(){var e=function(e){e.call("reset"),e.call("setEnabled",_.enabled)};return R.forEach(e),!1}function T(e,t,n,a){var o=n.length;if("availablemarks"===e)a.availableMarks=V;else if("complete"===e)r();else if("confirm"===e)i();else if("continue"===e)a["continue"]=j;else if("currentstate"===e)a.currentState=u();else if("iscompleted"===e)a.isCompleted=l();else if("iscorrect"===e){if(0===o)a.isCorrect=S();else if(1===o){var s=Number(n[0]),c=R[s];a.isCorrect=h(c)}}else"reset"===e?y():"score"===e?0===o&&(a.score=p()):"selected"===e?0===o&&(a.selected=g()):"selectioncount"===e?a.selectionCount=E():"setcontinue"===e?U(!0,l()):"showcorrect"===e?P(n[0]):"showmarking"===e&&I(Util.nullValue(n[0],!0))}function U(e,t){w&&e&&k.trigger(ProgressEvent.SET_CONTINUE,{enabled:t,visible:j&&t})}function C(e){var t=function(e){e.call("setEnabled",_.enabled)};_.enabled=e,R.forEach(t)}function P(e){var t=function(t){t.call("setValidState",e)};R.forEach(t)}function I(e){var t=function(e){e.call("showMarking",n,_.numToSelect>0)},n=_.showMarking&&e;R.forEach(t)}function A(e,t){"footerBarState"===e?w=t===FooterBarState.QUESTION:"numToSelect"===e?B=t>0:"questionFooter"===e&&(j=StringUtil.isEmpty(t))}function N(e){if(e.target===e.delegateTarget){var t=function(e,t){e.attr("role","option"),_.sequential&&e.call("setEnabled",0===t)};R=f(),R.forEach(t),M=R.length,x=_.sequential?0:M,V=n(_.numToSelect,M,_.weighting),U(!0,!_.overrideCompletion&&l())}}function L(e){var t=$(e.target);if(b(t)){var n=t.call("getVal","relativeIndex"),r=t.attr("id"),i=l(),s=E();_.once&&t.data("_enabled",!1),x=Math.max(x,n+1),_.numToSelect<0||1===_.numToSelect?o(r):_.numToSelect>1&&a(i);var c={completed:i,"continue":j,targetId:r,relativeIndex:n,selectionCount:s};k.trigger(ElementEvent.CHANGE,c),U(!_.overrideCompletion,i)}}var _={acc:!0,cssClass:"",enabled:!0,footerBarState:FooterBarState.QUESTION,numToSelect:0,once:!1,overrideCompletion:!1,questionFooter:"",role:"menu",sequential:!1,showMarking:!0,weighting:1,visible:!0},D={advance:t,confirm:i,getAvailableMarks:s,getMarks:d,highlight:m,highlightOption:v,keyPress:O,reset:y,scriptAction:T,setEnabled:C,showCorrect:P,showMarking:I,setPropertyValue:A};_=Element.extend(_,e);var R=[],M=0,x=0,V=0,w=_.footerBarState===FooterBarState.QUESTION,j=StringUtil.isEmpty(_.questionFooter),B=_.numToSelect>0,k=Element.generate(_);return k.publicProperties(_),k.publicMethods(D),k.on(ElementEvent.READY,N),k.on(ElementEvent.SELECT,L),k}},SFX={generate:function(e){function t(){var e=Util.nullValue(core.config["has-audio"],!0),t=Util.nullValue(core.config["audio-enabled"],!0);i["super"]("setEnabled",e&&t),i["super"]("load",n.src)}var n={element:"<audio/>",elementType:"SFX",id:"sfx",src:""},r={init:t};n=Element.extend(n,e);var i=MediaWrapper.generate(n);return i.publicMethods(r),i}},SliderBarTrackMarker={generate:function(e){function t(){var e={cssClass:"slider-bar-track-marker-line",id:r.id+"-line"};return Element.generate(e)}function n(){var e={cssClass:"slider-bar-track-marker-value",id:r.id+"-value"},t=Element.generate(e);return t.toggleClass("hide",!r.showValue),t.append(r.value),t}var r={cssClass:"slider-bar-track-marker",elementType:"SliderBarTrackMarker",id:"slider-bar-track-marker",showValue:!0,value:""};r=Element.extend(r,e);var i=Element.generate(r);return i.publicProperties(r),i.append(t()),i.append(n()),i}},SliderBar={generate:function(e){function t(){var e=function(){return k["super"]("advance")},t=!1;if(D)t=e();else{var n=$("#"+L.questionFooter);t=n.length>0?n.call("confirm"):e()}return t&&S(!1),t}function n(e,t){return Math.round(e/2)*t}function r(){S(!1),L.showCorrect&&y(),k.trigger(QuestionEvent.CONFIRM)}function i(){var e={acc:!1,cssClass:"slider-bar-thumb",height:42,id:L.id+"-thumb",src:"assets/slider-bar-thumb.svg",width:30},t=Graphic.generate(e);return t.on(MouseEvent.DOWN,A),t.call("init"),t}function a(){var e={cssClass:"slider-bar-track",id:L.id+"-track"},t=Element.generate(e);return t.append(o()),t.append(j),t}function o(){var e={cssClass:"slider-bar-track-base",id:L.id+"-track-base"};return Element.generate(e)}function s(e){var t={cssClass:"slider-bar-track-marker",id:L.id+"-track-marker"+e,showValue:R[e].visible,value:R[e].value},n=SliderBarTrackMarker.generate(t);return n.attr("data-value",e),n}function l(){for(var e={cssClass:"slider-bar-track-markers",id:L.id+"-track-markers"},t=Element.generate(e),n=0;M>n;n++)t.append(s(n));return t}function c(){return x}function u(e){var t=Util.nullValue(e.format,"*"),n=[],r=0,i=null;if(Util.isSet(e.max))for(var a=Util.nullValue(e.min,0),o=Util.nullValue(e.step,1),s=a;s<=e.max;s+=o)i={value:t.replace("*",String(s)),visible:!0},r=n.push(i);else r=Util.nullValue(e.count,0);for(var l=0;r>l;l++)i=Util.nullValue(n[l],{visible:!0}),Util.isSet(e[l])?StringUtil.isEmpty(e[l])?i.visible=!1:i.value=e[l]:Util.isSet(i.value)||(i.value=t.replace("*",String(l))),n[l]=i;return n}function d(){var e=f();return Math.floor(e*x)}function f(){return E()?1:0}function p(e){var t=j.children()[e];return Util.isSet(t)?$(t):null}function g(){var e=p(L.value);T(e,!1),v(L.value),k["super"]("init")}function E(){return L.value===L.correctValue}function m(e,t,n,i){if("availablemarks"===e)i.availableMarks=x;else if("confirm"===e)r();else if("iscorrect"===e)i.isCorrect=E();else if("marker"===e){var a=Util.nullValue(n[0],L.value);i.marker=R[a].value}else"score"===e?i.score=f():"showcorrect"===e&&y()}function v(e){k.attr("aria-valuenow",e),k.attr("aria-valuetext",R[e].value)}function S(e){L.enabled=e,w.toggleClass("enabled",e),j.toggleClass("enabled",e),j.toggleClass("disabled",!e),h(L.tabEnabled)}function h(e){L.tabEnabled=e,b(L.tabIndex)}function b(e){L.tabIndex=e,L.enabled&&L.tabEnabled?k.attr("tabindex",L.tabIndex):k.removeAttr("tabindex")}function O(e,t){var n=NumberUtil.constrain(e,0,M-1);L.value!==n&&(L.value=n,v(L.value),k.trigger(ElementEvent.CHANGE,{value:n}))}function y(){if(!E()){var e=w.attr("id"),t=w.clone();t.attr("id",e+"-clone"),t.addClass("clone"),t.appendTo(w.parent()),T(p(L.correctValue),!0)}}function T(e,t){if(Util.isSet(e)){var n=Util.invScale(e.position().left,core.scale);n+=e.width()/2,n-=w.width()/2,t?w.animate({left:n},"fast"):w.css("left",n+"px")}}function U(e){var t=Util.invScale(e.pageX,core.scale),n=NumberUtil.constrain(t-V.leftOffset,V.min,V.max)-V.min;w.css("left",n+"px")}function C(e){var t=function(e,t){var i=$(t),a=Util.invScale(i.position().left,n);return r+V.min<a+i.width()?(O(i.data("value")),T(i,!0),!1):void 0},n=core.scale,r=Util.invScale(w.position().left,n),i=j.children();i.each(t);var a=$("body");a.off(MouseEvent.MOVE,U),a.off(MouseEvent.UP,C)}function P(e){if(L.enabled){var t=e.which,n=t===Key.LEFT;(n||t===Key.RIGHT)&&(O(L.value+(n?-1:1)),T(p(L.value),!0))}}function I(e){x=n(M,L.weighting)}function A(e){if(e.preventDefault(),L.enabled){V.leftOffset=Util.invScale(k.offset().left,core.scale),V.min=w.width()/2,V.max=k.width()-V.min;var t=$("body");t.on(MouseEvent.MOVE,U),t.on(MouseEvent.UP,C)}}function N(e){if(L.enabled){var t=$(e.currentTarget);O(t.data("value")),T(t,!0)}}var L={correctValue:-1,cssClass:"slider-bar",elementType:"SliderBar",enabled:!0,footerBarState:FooterBarState.QUESTION,id:"slider-bar",labels:{},questionFooter:"",role:"slider",showCorrect:!0,showMarkerValues:!0,tabEnabled:!0,tabIndex:TabOrder.PAGE_CONTENT,value:0,weighting:1},_={advance:t,confirm:r,getAvailableMarks:c,getMarks:d,init:g,isCorrect:E,scriptAction:m,setEnabled:S};L=Element.extend(L,e);var D=StringUtil.isEmpty(L.questionFooter),R=u(L.labels),M=R.length,x=0,V={},w=i(),j=l();j.on(MouseEvent.CLICK,"[data-value]",N);var B=a(),k=Element.generate(L);return k.publicProperties(L),k.publicMethods(_),k.append(w),k.append(B),k.on(KeyboardEvent.KEY_DOWN,P),k.on(ElementEvent.READY,I),S(L.enabled),k}},SpeechBubble={ANCHOR_LEFT:"left",ANCHOR_RIGHT:"right",ANCHOR_TOP:"top",ANCHOR_BOTTOM:"bottom",generate:function(e){function t(){var e={cssClass:i(),id:o.id+"-anchor"},t=Element.generate(e);return t.append(n()),t}function n(){var e={cssClass:"speech-bubble-anchor-inner",id:o.id+"-anchor-inner"};return Element.generate(e)}function r(){var e={cssClass:"speech-bubble-container",id:o.id+"-container"};return Element.generate(e)}function i(){var e=function(){var e=o.anchorLocation.toLowerCase();switch(e){case SpeechBubble.ANCHOR_LEFT:case SpeechBubble.ANCHOR_RIGHT:case SpeechBubble.ANCHOR_TOP:case SpeechBubble.ANCHOR_BOTTOM:return e}return SpeechBubble.ANCHOR_LEFT},t=function(e){var t=a().replace("/","-");switch(e){case SpeechBubble.ANCHOR_LEFT:case SpeechBubble.ANCHOR_RIGHT:return"top-"+t}return"left-"+t},n=e(),r=["speech-bubble-anchor",n,t(n)];return r.join(" ")}function a(){var e=function(e){var t=e[0].indexOf(o.anchorPosition),r=t>-1;return r&&(n="*"===e[1]?e[0][t]:e[1]),r},t=[[["1/4","2/8"],"1/4"],[["3/4","6/8"],"3/4"],[["1/2","2/4","4/8"],"1/2"],[["1/10","1/8","2/10","3/10","3/8","4/10","6/10","5/8","7/10","8/10","7/8","9/10"],"*"]],n="1/10";return t.some(e),n}var o={anchorLocation:"left",anchorPosition:"1/10",cssClass:"speech-bubble",elementType:"SpeechBubble",id:"speech-bubble"};o=Element.extend(o,e);var s=t(),l=r(),c=Element.generate(o);return c.publicProperties(o),c.append(s),c.append(l),c.call("setContainer",l),c}},Sprite={XMLNS_SVG:"http://www.w3.org/2000/svg",XMLNS_XLINK:"http://www.w3.org/1999/xlink",generate:function(e){function t(e,n){var r=function(e,t){a.setAttribute(t.name,t.value)},i=function(n){a.appendChild(t(e,$(this)))},a=document.createElementNS(e,n[0].nodeName.toLowerCase());return $.each(n[0].attributes,r),n.children().each(i),a}function n(e){var n=function(e,t){var n=o.find("#"+t);if(n.length>0){var r=s.id+"-"+t;return n.attr("id",r),i.defs.appendChild(n[0]),e.replace(t,r)}return e},i={defs:document.createElementNS(Sprite.XMLNS_SVG,"defs")},a=/url\(#([^\)]+)\)/g,o=c.find("defs");return i.symbol=t(Sprite.XMLNS_SVG,$(r(e).replace(a,n))),i.symbol.removeAttribute("id"),i}function r(e){return $("<div/>").append(e)[0].innerHTML}function i(e){var t=n(e),r=document.createElementNS(Sprite.XMLNS_SVG,"svg");return r.setAttribute("aria-hidden",!0),r.setAttribute("xmlns",Sprite.XMLNS_SVG),r.setAttribute("xmlns:xlink",Sprite.XMLNS_XLINK),r.setAttribute("viewBox",s.viewBox),r.appendChild(t.defs),r.appendChild(t.symbol),$(r)}function a(e){var t=Util.nullValue(e,"");if(!StringUtil.isEmpty(t)){var n=t.lastIndexOf(".");if(n>-1&&(c=$(core.assets.data[t.slice(0,n)]),c.length>0)){var r=c.children("#"+t.slice(n+1));if(r.length>0)return r}}return null}function o(e){var t=a(e);Util.isSet(t)?(s.symbol=e,u.empty(),u.append(i(t))):console.warn('The sprite symbol "'+e+'" does not exist.')}var s={elementType:"Sprite",id:"sprite",role:"img",symbol:"",viewBox:"0 0 64 64"},l={setSymbol:o};s=Element.extend(s,e);var c=null,u=Element.generate(s);return u.publicProperties(s),u.publicMethods(l),o(s.symbol),u}},Stopwatch={generate:function(e){function t(e){var t=new Date(e);return t.getMinutes()+":"+a(t.getSeconds(),2)+"."+a(t.getMilliseconds(),3)}function n(){return h}function r(){s(),g.autoStart&&u()}function i(e){S+=e}function a(e,t){return String(Math.pow(10,t)+e).slice(1)}function o(){clearInterval(m)}function s(){S=0,h=0,c()}function l(e,t,n,r){if("reset"===e)s();else if("start"===e)u();else if("stop"===e)d();else if("time"===e)return{time:h}}function c(){b.html(t(h))}function u(){v=Date.now(),m=setInterval(f,20)}function d(){o(),f(),S=h}function f(){h=S+(Date.now()-v),c()}function p(){o()}var g={autoStart:!1,elementType:"Stopwatch",id:"stopwatch",role:"timer"},E={getTime:n,init:r,offset:i,reset:s,scriptAction:l,start:u,stop:d,unload:p};g=Element.extend(g,e);var m=0,v=0,S=0,h=0,b=Element.generate(g);return b.publicProperties(g),b.publicMethods(E),b}},StudentNameDialog={generate:function(e){function t(){var e={cssClass:"student-name-dialog-content",id:a.id+"-content"};return Element.generate(e)}function n(){var e={cssClass:"student-name-dialog-entry",id:a.id+"-entry",maxChars:40,multiline:!1,rows:1};return TextEntry.generate(e)}function r(){var e={cssClass:"student-name-dialog-text",id:a.id+"-text",text:a.text};return Paragraph.generate(e)}function i(){return c.call("getText")}var a={buttons:[Button.OK,Button.CANCEL],cssClass:"dialog student-name-dialog",id:"student-name-dialog"},o={getStudentName:i},s=core.manifest.player["message-box"]["student-name"];a=Element.extend(a,e),a.content=t(),a.text=s.text,a.title=s.title;var l=r();l.appendTo(a.content);var c=n();c.appendTo(a.content);var u=Dialog.generate(a);return u.publicProperties(a),u.publicMethods(o),u}},SvgAnimator={FRAME_EVENT:"frameEvent",UPDATE_ACC:"updateAcc",frameEvent:function(e,t){var n={tag:Util.nullValue(t,""),target:e};$(e.el.node).trigger(SvgAnimator.FRAME_EVENT,n)},updateAcc:function(e,t){var n={id:Util.nullValue(t,""),target:e};$(e.el.node).trigger(SvgAnimator.UPDATE_ACC,n)},generate:function(e){function t(e,t,n){var r=a(e);if(Util.isSet(r)){var i=r[t];if(Util.isSet(i))return i.apply(r,n)}return null}function n(){var e={cssClass:"svg-animator-container",id:h.id+"-container"};return Element.generate(e)}function r(e){var t=StringUtil.resolve(e,T.mc);if(Util.isSet(t)){Util.isSet(t.boundingBox)&&(t=t.boundingBox);var n={x:0,y:0,width:0,height:0},r=t.el.node,i=Util.scale(t.bBox,core.scale),a=$.extend({},r.getBoundingClientRect(),i),o=C.offset();return n.x=a.left+window.pageXOffset-o.left,n.y=a.top+window.pageYOffset-o.top,n=Util.invScale(n,core.scale),n.width=a.width,n.height=a.height,n}return null}function i(e,t){var n=function(e){var n=Number(e.frameNum)===t-1;return n&&(r=e.name),n},r="",i=e.getFrameLabels();return i.some(n),r}function a(e){return Util.isSet(T)?StringUtil.resolve(e,T.mc):null}function o(){if(Util.isSet(h.imageData))c()||f();else if(!s(h.src)){var e=h.resourceId+".json.js";h.src=Path.ASSETS+e,s(h.src)}}function s(e){h.src=Util.nullValue(e,"");var t=!StringUtil.isEmpty(h.src);if(t){var n=new JSONLoader;n.addEventListener(LoadEvent.LOADED,S),n.load(e)}return t}function l(e,t){if(Util.isSet(T)){var n=T.mc,r=StringUtil.resolve(t,n)||n;Util.isSet(e)?r.gotoAndPlay(e):r.gotoAndPlay(r.m_currentFrameNo+2)}}function c(){if(h.preloadBitmaps){var e=h.imageData.DOMDocument.Bitmaps;if(Util.isSet(e)){var t=function(e){n.push(e.bitmapPath)},n=[];return e.forEach(t),y=new Preloader(n),y.addEventListener(LoadEvent.LOADED,E),y.start()}}return!1}function u(e,n,r,i){if("opacity"===e)d(e,r[0],n);else if("visibility"===e){var a=r[0]?"visible":"hidden";d(e,a,n)}else{var o=t(n,e,r);Util.isSet(o)&&(o.constructor===Object?$.extend(i,o):i[e]=o)}}function d(e,t,n){var r=a(n);if(Util.isSet(r)){var i={};i[e]=t,r.el.attr(i)}}function f(){var e={autoplay:h.autoplay};void 0!==h.viewBox&&(e.viewBox=h.viewBox),void 0!==h.preserveAspectRatio&&(e.preserveAspectRatio=h.preserveAspectRatio),T=new SVGAnim(h.imageData,h.width,h.height,h.fps,e);var t=$(T.s.node);t.attr("aria-hidden","true"),t.attr("id",h.id+"-svg"),t.on(SvgAnimator.FRAME_EVENT,m),t.on(SvgAnimator.UPDATE_ACC,v),C.append(t),C.width(h.width),C.height(h.height),C["super"]("init")}function p(e,t){if(Util.isSet(T)){var n=T.mc,r=StringUtil.resolve(t,n)||n;Util.isSet(e)?r.gotoAndStop(e):r.stop()}}function g(){Util.isSet(y)&&(y.cancel(),y=null),Util.isSet(T)&&(T.stop(),T=null)}function E(e){y=null,f()}function m(e,t){var n=function(e){return h.id+e.slice(e.indexOf("."),e.lastIndexOf("."))};e.stopPropagation();var r=t.target.m_currentFrameNo;t.frameLabel=i(t.target,r),t.frameNumber=r,t.id=t.target.name,t.resourceId=h.resourceId,t.targetPath=n(t.target.getPath()),C.trigger(MediaEvent.FRAME,t)}function v(e,t){e.stopPropagation(),C.call("setAccName",Util.nullValue(O[t.id],""))}function S(e){e.success&&(h.imageData=e.data,c()||f())}var h={acc:!1,autoplay:!0,cssClass:"svg-animator",elementType:"SvgAnimator",enabled:!0,fps:25,height:0,id:"svg-animator",preloadBitmaps:!0,role:"img",src:"",width:0},b={getClipInfo:r,init:o,load:s,play:l,scriptAction:u,stop:p,unload:g};h=Element.extend(h,e);var O=Util.nullValue(StringUtil.resolve(h.resourcePath+".acc",core.manifest),{}),y=null,T=null,U=n(),C=Element.generate(h);return C.publicProperties(h),C.publicMethods(b),C.append(U),C.call("setContainer",U),C}},Switch={generate:function(e){function t(e,t){var i=r.call("isSelected");r.toggleClass("selected",i),r.toggleClass("unselected",!i),n.cycle||i||e.stopPropagation()}var n={cssClass:"switch",elementType:"Switch",highContrast:!0,id:"switch",label:""};n=Element.extend(n,e),n.currentState=Util.nullValue(n.currentState,0),n.accName=n.label;var r=DualStateElement.generate(n);return r.publicProperties(n),r.append(n.label),r.on(ElementEvent.CHANGE,t),r}},TabbedView={TAB_DEFAULT:"&#9679;",BUTTON_NEXT:"&#9658;",BUTTON_PREVIOUS:"&#9664;",generate:function(e){function t(e){O.target.call("addElements",P,y[e].children)}function n(e){var t={cssClass:"tabbed-view-button",enabled:!0,highContrast:h.highContrast,role:"button"},n=Element.generate({acc:!1,id:e.id+"-icon",cssClass:"tabbed-view-button-icon"});n.append(e.icon);var r=InteractiveElement.generate($.extend(t,e));return r.attr("title",core.manifest.player.button.label[e.shortId]),r.addClass(e.shortId),r.append(n),r}function r(){var e={cssClass:"tabbed-view-container",id:h.id+"-container"},t=Element.generate(e);return t.toggleClass("tabbed",U),t}function i(e){var t={cssClass:"tabbed-view-nav",id:h.id+"-nav"},n=Element.generate(t);return n.toggleClass("hide",!U),n.append(I),n.append(N),n.append(A),n.on(ElementEvent.HOVER,v),n.on(ElementEvent.SELECT,S),n}function a(){var e={icon:TabbedView.BUTTON_NEXT,id:h.id+"-next-button",delta:1,shortId:Button.NEXT_TAB};return n(e)}function o(){var e={icon:TabbedView.BUTTON_PREVIOUS,id:h.id+"-previous-button",delta:-1,shortId:Button.PREVIOUS_TAB};return n(e)}function s(e){var t={acc:!1,cssClass:"tabbed-view-tab",id:h.id+"-tab"+e},n=Element.generate(t);return n.append(TabbedView.TAB_DEFAULT),n}function l(e){var t=function(e,t){r.append(e.tab)},n={cssClass:"tabbed-view-tabs",highContrast:h.highContrast,id:h.id+"-tabs",role:"status"},r=Element.generate(n);return e.forEach(t),r}function c(){return 1===u()}function u(){var e=function(e){t+=Number(e.visited)},t=0;return y.forEach(e),T>0?t/T:0}function d(e){var t=function(e,t){Util.condition(e.visible,n,!0)&&Util.isSet(e.children)&&r.push({children:e.children,tab:s(t),visited:!1})},n=f(),r=[];return e.forEach(t),r}function f(){var e=Util.isSet(O)?O.target:null;return{config:core.config,core:core.data,element:h.data,page:Util.isSet(e)?e.getVal("data"):{}}}function p(){L.trigger(ElementEvent.INIT),E(0)}function g(e,t,n,r){"iscompleted"===e?r.isCompleted=c():"progress"===e?r.progress=u():"toggle"===e&&m()}function E(e){C!==e&&e>=0&&T>e&&(core.audio.call("stop"),P.empty(),-1!==C&&y[C].tab.toggleClass("current",!1),C=e,I.call("setEnabled",C>0),A.call("setEnabled",T-1>C),y[C].tab.toggleClass("current",!0),y[C].visited=!0,t(C),N.attr("aria-label",StringUtil.parseVars(core.manifest.player.acc.tabs,{tabNum:C+1,tabCount:T})),L.trigger(ElementEvent.CHANGE,{progress:u()}))}function m(){var e=C+1;E(T>e?e:0)}function v(e,t){$(e.target).toggleClass("hover",t.hover)}function S(e){var t=$(e.target).getVal("delta");E(C+t)}var h={content:[],cssClass:"tabbed-view",elementType:"TabbedView",enabled:!0,highContrast:!0,id:"tabbed-view"},b={init:p,scriptAction:g};h=Element.extend(h,e);var O=core.course.currentPage,y=d(h.content),T=y.length,U=T>1,C=-1,P=r(),I=o(),A=a(),N=l(y),L=Element.generate(h);return L.publicProperties(h),L.publicMethods(b),L.append(P),L.append(i(y)),L}},TextEntry={generate:function(e){function t(){f.prop("value","")}function n(){p.trigger(QuestionEvent.CONFIRM,{text:o()})}function r(){var e={cssClass:"text-entry-input",highContrast:!0,id:u.id+"-input"},t=u.multiline?i(e):a(e);return t.attr("aria-labelledby",u.id),t.attr("tabindex",u.tabIndex),t.prop("autofocus",u.autoFocus),t.prop("value",u.text),t.on(KeyboardEvent.KEY_DOWN,c),u.maxChars>-1&&t.attr("maxlength",u.maxChars),t}function i(e){var t=$.extend({element:"<textarea/>"},e),n=Element.generate(t);return n.attr("rows",u.rows),n.attr("wrap",u.wrap?"soft":"off"),n}function a(e){var t=$.extend({element:"<input/>"},e),n=Element.generate(t);return n.attr("type","text"),n}function o(){return f.prop("value")}function s(e,r,i,a){"clear"===e?t():"confirm"===e&&n()}function l(e){u.enabled=e,f.attr("readonly",!e)}function c(e){e.stopPropagation(),u.multiline||e.keyCode!==Key.ENTER||n()}var u={autoFocus:!0,cssClass:"text-entry",elementType:"TextEntry",enabled:!0,highContrast:!0,id:"text-entry",rows:3,maxChars:-1,multiline:!0,tabIndex:TabOrder.PAGE_CONTENT,text:"",wrap:!0},d={confirm:n,getText:o,scriptAction:s,setEnabled:l};u=Element.extend(u,e),Element.manifestValue(u,"text");var f=r(),p=Element.generate(u);return p.publicProperties(u),p.publicMethods(d),p.append(f),p}},Timer={generate:function(e){function t(){var e=s.length>0;if(e){var t=s.shift();l=setTimeout(i,t.time,t.id)}return e}function n(){return s=ArrayUtil.sortItemsOn(a.cues,"time"),t()}function r(){clearInterval(l),s=null}function i(e){c.trigger(TimerEvent.CUE,{id:e}),t()}var a={autoStart:!1,cues:[],id:"timer"},o={start:n,stop:r};a=Element.extend(a,e);var s=null,l=0,c=Element.generate(a);return c.publicProperties(a),c.publicMethods(o),a.autoStart&&n(),c}},ToolTip={generate:function(e){function t(){var e=Element.generate(i);return e.publicProperties(i),e.publicMethods(a),e.append(StringUtil.parseVars(i.text)),e.visibilityFilter(r),o=e.condense(i.filter),e.removeLinks(),e}function n(){return o}function r(e){return StringUtil.evaluate(StringUtil.parseVars(e))}var i={acc:!1,cssClass:"tool-tip",elementType:"ToolTip",filter:"min",highContrast:!0,id:"tool-tip",role:"tooltip",text:""},a={isCondensed:n};i=Element.extend(i,e),Element.manifestValue(i,"text");var o=!1;return t()}},ToolkitMenuOption={generate:function(e){function t(){var e={acc:!1,cssClass:"toolkit-menu-option-icon",id:o.id+"-icon",symbol:"symbols."+o.icon};return Sprite.generate(e)}function n(){var e={acc:!1,cssClass:"toolkit-menu-option-label",id:o.id+"-label"},t=Element.generate(e);return t.append(o.label),t}function r(){var e=null;if(o["switch"]){var t={acc:!1,cssClass:"checkbox toolkit-menu-option-checkbox",id:o.id+"-checkbox",selected:o.selected};e=Checkbox.generate(t),e.call("init")}return e}function i(e){o["switch"]&&(o.selected=e,l.call("setSelected",e),u.attr("aria-checked",o.selected))}function a(e){o["switch"]&&(e.target===e.delegateTarget&&l.call("select"),e.stopPropagation())}var o={cssClass:"toolkit-menu-option",elementType:"ToolkitMenuOption",icon:"",id:"toolkit-menu-option",label:"",selected:!1,"switch":!1},s={setSelected:i};o=Element.extend(o,e),o.role=o["switch"]?"menuitemcheckbox":"menuitem";var l=r(),c=n(),u=InteractiveElement.generate(o);return u.publicProperties(o),u.publicMethods(s),u.attr("aria-checked",o.selected),u.attr("aria-labelledby",c[0].id),u.append(l),u.append(t()),u.append(c),u.on(ElementEvent.SELECT,a),u}},ToolkitMenu={ASK_THE_EXPERT:"ask-the-expert",AUDIO_ENABLED:"audio-enabled",BOOKMARKS:"bookmarks",COURSE_SUMMARY:"course-summary",FOCUS_OUTLINE:"focus-outline",GLOSSARY:"glossary",HIGH_CONTRAST:"high-contrast",RESOURCES:"resources",SETTINGS:"settings",VIDEO_SUBTITLES:"video-subtitles",generate:function(e){function t(e){var t=Util.nullValue(e,"");if(!StringUtil.isEmpty(t)){var n=S.children("#"+t);if(n.length>0)return n[0].click(),!0}return!1}function n(){var e=function(){v=!1,S.call("hide"),S.attr("aria-expanded",v)};v&&S.animate({right:-S.outerWidth()},"fast",e)}function r(e){var t=function(e){var t=["toolkit-menu-option"];Util.nullValue(e.visible,!0)||t.push("hide");var n={cssClass:t.join(" "),icon:e.id,label:core.manifest.player.button.label[e.id],tabIndex:TabOrder.TOOLKIT_BUTTONS};S.append(ToolkitMenuOption.generate($.extend(n,e)))};e.forEach(t)}function i(e){var t=$("#"+e);return t.length>0?t:null}function a(){var e=[];for(var t in core.course.orphans)if(core.course.orphans.hasOwnProperty(t))switch(t){case ToolkitMenu.ASK_THE_EXPERT:case ToolkitMenu.BOOKMARKS:case ToolkitMenu.GLOSSARY:case ToolkitMenu.RESOURCES:e.push({id:t})}return e.push({id:ToolkitMenu.COURSE_SUMMARY,enabled:m,visible:m}),e.push({id:ToolkitMenu.AUDIO_ENABLED,selected:core.config[ToolkitMenu.AUDIO_ENABLED],"switch":!0,visible:core.config["has-audio"]}),e.push({id:ToolkitMenu.VIDEO_SUBTITLES,selected:core.config[ToolkitMenu.VIDEO_SUBTITLES],"switch":!0}),e.push({id:ToolkitMenu.FOCUS_OUTLINE,selected:core.config[ToolkitMenu.FOCUS_OUTLINE],"switch":!0}),e.push({id:ToolkitMenu.HIGH_CONTRAST,selected:core.config[ToolkitMenu.HIGH_CONTRAST],"switch":!0}),e}function o(e){var t=!e,n={};return n[ToolkitMenu.ASK_THE_EXPERT]=t,n[ToolkitMenu.GLOSSARY]=t,n[ToolkitMenu.RESOURCES]=t,n[ToolkitMenu.COURSE_SUMMARY]=m&&t,n[ToolkitMenu.AUDIO_ENABLED]=!0,n[ToolkitMenu.VIDEO_SUBTITLES]=!0,n[ToolkitMenu.FOCUS_OUTLINE]=!0,n[ToolkitMenu.HIGH_CONTRAST]=!0,n}function s(){v||(v=!0,S.call("hide",!1),S.animate({right:0},"fast"),S.attr("aria-expanded",v))}function l(e){var t=null;for(var n in e)e.hasOwnProperty(n)&&(t=i(n),Util.isSet(t)&&t.call("setEnabled",e[n]))}function c(e,t){l(o(t.assessmentQuestion))}function u(){v?n():s()}function d(e){var t=S.children("#"+e.property);t.length>0&&t.call("setSelected",e.value)}function f(e){var t=$(e.target);core.setSetting(e.currentTarget.id,t.call("isSelected"))}function p(e){var t=$(e.currentTarget);t.getVal("switch")&&e.stopPropagation()}var g={accName:core.manifest.player.acc["toolkit-menu"],cssClass:"toolkit-menu",elementType:"ToolkitMenu",enabled:!0,highContrast:!0,id:"toolkit-menu",role:"menu"},E={activate:t,close:n,open:s,startPage:c,toggle:u};g=Element.extend(g,e);var m=core.config["has-course-summary"],v=!1,S=Element.generate(g);return S.publicProperties(g),S.publicMethods(E),S.call("hide"),S.on(ElementEvent.CHANGE,'[data-element-type="ToolkitMenuOption"]',f),S.on(MouseEvent.CLICK,'[data-element-type="ToolkitMenuOption"]',p),r(a()),core.addEventListener(CoreEvent.SETTING,d),S}},Vector={generate:function(e){
function t(){var e=r.src;StringUtil.isEmpty(r.symbol)||(e+="#"+r.symbol),a.attr("data",e)}function n(e){$(e.target).contents()}var r={cssClass:"vector",element:"<object/>",elementType:"Vector",height:0,id:"vector",src:"",symbol:"",width:0},i={init:t};r=Element.extend(r,e);var a=Element.generate(r);return a.publicProperties(r),a.publicMethods(i),a.attr("type","image/svg+xml"),a.attr("width",r.width),a.attr("height",r.height),a.on(LoadEvent.LOAD,n),a}},VideoControls={generate:function(e){function t(e){var t={cssClass:"button video-controls-button",enabled:h.enabled,icon:e,id:e,label:core.manifest.player.button.label[e],showLabel:!1,tabIndex:TabOrder.PAGE_CONTENT};return Button.generate(t)}function n(){var e={cssClass:"video-controls-play-pause-button",id:h.id+"-play-pause-button"},n=Element.generate(e);return n.append(t(Button.PLAY)),n.append(t(Button.PAUSE)),n}function r(){var e={cssClass:"linear-progress-indicator video-controls-seek-bar",id:h.id+"-seek-bar",role:"slider",tabIndex:TabOrder.PAGE_CONTENT},t=LinearProgressIndicator.generate(e);return t.attr("data-seek-bar",""),t.attr("aria-valuemin",T),t.attr("aria-valuemax",U),t.attr("aria-valuenow",T),t.on(MouseEvent.DOWN,S),t}function i(){var e={cssClass:"video-controls-seek-bar-container",id:h.id+"-seek-bar-container"},t=Element.generate(e);return t.toggleClass("subtitles",h.hasSubtitles),t}function a(){var e={cssClass:"video-controls-subtitles-button",id:h.id+"-subtitles-button"},n=Element.generate(e);return n.toggleClass("hide",!h.hasSubtitles),n.append(t(Button.SUBTITLES_ON)),n.append(t(Button.SUBTITLES_OFF)),n}function o(e){return NumberUtil.constrain(e-O,0,y)}function s(e){var t=core.manifest.player.acc.time,n={};return e>=3600?(n.h=Math.floor(e/3600),n.minutes=s(e%3600),StringUtil.parseVars(t[1===n.h?"hours1":"hours2"],n)):e>=60?(n.m=Math.floor(e/60),n.seconds=s(e%60),StringUtil.parseVars(t[1===n.m?"minutes1":"minutes2"],n)):(n.s=e,StringUtil.parseVars(t[1===n.s?"seconds1":"seconds2"],n))}function l(e){var t=function(){$(this).addClass("hide")},n={opacity:0,bottom:-N.height()};e?N.animate(n,"fast",t):N.css(n)}function c(e){U=Math.round(e),P.attr("aria-valuemax",U)}function u(e){C.children("#"+Button.PLAY).toggleClass("hide",e),C.children("#"+Button.PAUSE).toggleClass("hide",!e)}function d(e){var t=Math.round(e*U);P.call("setProgress",e),P.attr("aria-valuenow",t),P.attr("aria-valuetext",s(t))}function f(e){I.children("#"+Button.SUBTITLES_ON).toggleClass("hide",e),I.children("#"+Button.SUBTITLES_OFF).toggleClass("hide",!e)}function p(e,t){if(h.visible!==e){var n=Util.nullValue(t,!0);h.visible=e,h.visible?g(n):l(n)}}function g(e){var t={opacity:1,bottom:0};N.removeClass("hide"),e?N.animate(t,"fast"):N.css(t)}function E(){p(!h.visible)}function m(e){d(o(e.clientX)/y)}function v(e){var t=$(e.delegateTarget);t.off(MouseEvent.MOVE,m),t.off(MouseEvent.UP,v),d(o(e.clientX)/y),P.trigger(ElementEvent.CHANGE)}function S(e){var t=$(e.delegateTarget);O=e.clientX-e.offsetX,y=t.outerWidth();var n=$("body");n.on(MouseEvent.MOVE,m),n.on(MouseEvent.UP,v)}var h={cssClass:"video-controls",element:"<div/>",elementType:"VideoControls",enabled:!0,hasSubtitles:!1,id:"video-controls",subtitles:!1,visible:!1},b={setDuration:c,setPlaying:u,setProgress:d,setSubtitles:f,setVisibility:p,toggleVisibility:E};h=Element.extend(h,e);var O=0,y=0,T=0,U=1,C=n(),P=r(),I=a(),A=i();A.append(P);var N=Element.generate(h);return N.toggleClass("hide",!h.visible),N.publicProperties(h),N.publicMethods(b),N.append(C),N.append(A),N.append(I),u(!1),f(h.subtitles),N}},VideoPlayer={generate:function(e){function t(){return m(),F["super"]("advance")}function n(){var e={cssClass:"video-player-container",id:L.id+"-player-container"};return Element.generate(e)}function r(){var e={cssClass:"video-controls",hasSubtitles:L.useLocale,id:L.id+"-controls",subtitles:D},t=VideoControls.generate(e);return t.on(ElementEvent.CHANGE,"[data-seek-bar]",S),t.on(MouseEvent.DOWN,"[data-seek-bar]",h),t.on(ElementEvent.SELECT,b),t}function i(){var e={cssClass:"video-footer",id:L.id+"-footer"};return Element.generate(e)}function a(){var e={cssClass:"video-subtitles",highContrast:!0,id:L.id+"-subtitles"},t=Element.generate(e);return t.toggleClass("hide",!D),t}function o(){var e={autoPlay:L.autoPlay,hasSubtitles:L.useLocale,poster:L.poster,subtitles:D},t=Video.generate(e);return t.on(MediaEvent.CAN_PLAY,y),t.on(MouseEvent.CLICK,T),t.on(MediaEvent.CUE_CHANGE,U),t.on(MediaEvent.ENDED,C),t.on(LoadEvent.ERROR,P),t.on(MediaEvent.PAUSE,I),t.on(MediaEvent.PLAY,A),t.on(MediaEvent.TIME_UPDATE,N),t}function s(){return R&&L.enabled}function l(){u(L.useResource?L.resourceId+".mp4":L.src),F.trigger(ElementEvent.INIT)}function c(){return V.prop("paused")}function u(e){L.src=Util.nullValue(e,""),StringUtil.isEmpty(L.src)||(L.useAssetPath&&(L.src=Path.ASSETS+L.src),V.call("setPoster",L.poster),V.call("load",L.src))}function d(){j.call("setPlaying",!1),V.call("pause")}function f(e){V.call("play",e)}function p(e,t,n,r){"load"===e&&u(n[0])}function g(e){D=e,w.toggleClass("hide",!D),j.call("setSubtitles",D),core.setSetting("video-subtitles",D)}function E(e){var t=Util.nullValue(e,!0);j.call("setVisibility",t&&s())}function m(){V.call("stop")}function v(e,t){t.enabled||g(!0)}function S(e){var t=$(e.target),n=t.getVal("progress"),r=n*M;x?V.call("stop",r):V.call("play",r)}function h(e){x=c(),x||V.call("pause")}function b(e){var t=e.target;switch(t.id){case Button.PLAY:f();break;case Button.PAUSE:d();break;case Button.SUBTITLES_OFF:g(!1),E(c());break;case Button.SUBTITLES_ON:g(!0),E(c())}}function O(e){"video-subtitles"===e.property&&g(e.value)}function y(e){M=e.target.duration,R=!0,j.call("setDuration",M),E(1===(1&L.displayControls)),F.trigger(MediaEvent.CAN_PLAY)}function T(){s()&&j.call("toggleVisibility")}function U(e,t){var n=t.activeCues,r=n.length;w.empty();for(var i=0;r>i;i++)w.append("<p>"+n[i].text+"</p>")}function C(){j.call("setPlaying",!1),F.trigger(MediaEvent.ENDED),E(2===(2&L.displayControls))}function P(){F.trigger(MediaEvent.DISABLED)}function I(){j.call("setPlaying",!1)}function A(){core.audio.call("stop"),j.call("setPlaying",!0),L.autoHideControls&&E(!1)}function N(e){j.call("setProgress",e.target.currentTime/M)}var L={accName:core.manifest.player["video-player"].accName,autoHideControls:!0,autoPlay:!1,cssClass:"video-player",displayControls:3,elementType:"VideoPlayer",enabled:!0,framed:!0,id:"video-player",poster:"",role:"group",src:"",footerBarState:FooterBarState.CONTINUE,useAssetPath:!0,useLocale:!0,useResource:!0},_={advance:t,init:l,load:u,play:f,scriptAction:p};L=Element.extend(L,e);var D=Util.nullValue(L.subtitles,core.config["video-subtitles"]),R=!1,M=0,x=!1,V=o(),w=a(),j=r(),B=i();B.append(w),B.append(j);var k=n();k.append(V),k.append(B);var F=Element.generate(L);return F.publicProperties(L),F.publicMethods(_),F.toggleClass("frame",L.framed),F.append(k),core.audio.on(ElementEvent.ENABLED,v),core.addEventListener(CoreEvent.SETTING,O),F}},Video={generate:function(e){function t(e){var t={element:"<track/>",elementType:"Track",id:c.id+"-track"},n=Element.generate(t);return n.attr("kind","subtitles"),n.attr("label","Subtitles"),n.attr("src",e),n.attr("srclang",core.config.locale),n.attr("default",""),n}function n(){return!(d&&f)}function r(e){if(p.empty(),p.attr("poster",c.poster),c.hasSubtitles){var n=t(e.slice(0,e.lastIndexOf("."))+".vtt");n.appendTo(p)}p["super"]("load",e)}function i(e){c.poster!==e&&(c.poster=Util.nullValue(e,""),p.attr("poster",c.poster))}function a(){g.length>0&&(g[0].mode=Util.nullValue(g[0].HIDDEN,"hidden"),g[0].oncuechange=s)}function o(e,t){f=t.enabled,p.call("setMute",n())}function s(e){var t=e.target;p.trigger(MediaEvent.CUE_CHANGE,{activeCues:t.activeCues})}function l(){a()}var c={acc:!1,subtitles:!1,cssClass:"video",element:"<video/>",elementType:"Video",hasSubtitles:!0,id:"video",poster:"",src:""},u={load:r,setPoster:i};core.audio.on(ElementEvent.ENABLED,o);var d=core.config["has-audio"],f=core.config["audio-enabled"];c=Element.extend(c,e),c.enabled=core.config["video-enabled"],c.muted=n()||c.muted;var p=MediaWrapper.generate(c);p.publicProperties(c),p.publicMethods(u),p.attr("poster",c.poster),p.attr("controls",!1),p.bind("contextmenu",function(){return!1}),p.on(MediaEvent.CAN_PLAY,l);var g=p.prop("textTracks");return p}},View={WIDTH:1024,HEIGHT:768,generate:function(e){function t(e,t){core.audio.call("stop");var n=Util.isSet(e);re=Util.nullValue(t,{}),re.closeOverlay=!n,re.hasNextPage=core.course.hasNextPage(),re.titles=f(n?e:core.course.currentPage),h(!n),core.setLoading(n),n&&!e.isOrphan&&(e.completed=e.completed||!K),se.call("changePage",e,re),le.call("changePage",e,re),oe.call("changePage",e,re)}function n(){X[W]=[]}function r(){var e={cssClass:"view-cover",id:G.id+"-cover"};return Element.generate(e)}function i(){var e={sequentialPages:Y};return HeaderBar.generate(e)}function a(){var e={cssClass:"view-mailto",element:"<iframe/>"};return Element.generate(e)}function o(e,t){var n=[e,"entries",t,"definition"],r={resourcePath:n.join(".")},i=ToolTip.generate(r);return i.data("id",t),i.call("isCondensed")&&(i.append(u(e,t)),i.on(MouseEvent.CLICK,"a",V)),i}function s(){var e=X[W];if(e.length>0){var t=e.shift();t.call.apply(t,arguments)?!y()&&z&&le.call("setState",FooterBarState.NONE):e.unshift(t)}}function l(){return Util.nullValue(window.devicePixelRatio,1)}function c(e){return e.footerBarState!==FooterBarState.UNCHANGED?core.course.isSectionEnd()?core.course.isCourseEnd()?FooterBarState.COURSE_END:FooterBarState.SECTION_END:FooterBarState.PAGE_END:e.footerBarState}function u(e,t){var n=$("<a/>");n.attr("data-id",t),n.data("resource",e),n.append(core.manifest.player.button.label.more);var r=$("<p/>");return r.append(n),r}function d(){return J}function f(e){var t={course:core.course.title};if(Util.isSet(e)){var n=core.course.getSection(e);t.page=core.course.getNodeTitle(e),t.section=Util.isSet(n)?core.course.getNodeTitle(n):null}return t}function p(e){ae.attr("src","mailto:"+e)}function g(e,t){le.call("setState",FooterBarState.NONE),oe.call("navigate",e,t),ie.trigger(CourseEvent.NAVIGATE,{navigation:e,target:t})}function E(e){switch(e){case Button.CONTINUE_NEXT_PAGE:return g(Navigation.NEXT_PAGE),!0;case Button.CONTINUE_NEXT_SECTION:return g(Navigation.NEXT_SECTION),!0;case Button.HOME_PAGE:case Button.NEXT_PAGE:case Button.PREVIOUS_PAGE:case Button.REPLAY_PAGE:return g(e),!0}return!1}function m(e){var t=!1;return Util.isSet(Q)&&(t=Q.data("id")===e,Q.remove(),Q=null),t}function v(){var e=l()/H,t={width:window.innerWidth,height:window.innerHeight},n=t.width/t.height,r=n>te?t.height/ee.height:t.width/ee.width;O(t.width),T(r*e),ue.css("overflow",e>1?"auto":"hidden")}function S(e){var t=e[0].nodeName.toLowerCase();se.call("closeToolkit");var n=Util.nullValue(e.data("id"),""),r=m(n);if("a"===t){var i=Util.nullValue(e.attr("class"),"");if("glossary"===i){if(StringUtil.isEmpty(n))C(i);else if(!r){Q=o(i,n),Q.appendTo(ie);var a=Util.invScale(e.relativePosition(ie),core.scale);a.left=Math.min(a.left-10,ie.width()-Q.outerWidth());var s=a.top+e.height()+4;s>ie.height()-Q.outerHeight()&&(s=a.top-Q.outerHeight()-4),a.top=s,Q.css({left:a.left+"px",top:a.top+"px"}),e.attr("aria-describedby",Q.attr("id"))}}else if("ask-the-expert"===i)C(i,n);else{var l=i.split("-");if("resources"===l[0]){var c=l[1];if("email"===c||"url"===c){var u=core.resources.getEntry(n);if(Util.isSet(u)){var d=u[c];"email"===c?p(d):window.open(d)}}else C(l[0],n)}}}}function h(e,t){Z=e,ie.tabChildren(e),ce.toggleClass("view-cover-modal",Util.nullValue(t,!1)),e?ce.hide():ce.show()}function b(e){var t=!1;if(Util.isSet(e)){var n=Util.nullValue(e.getVal("footerBarState"),FooterBarState.UNCHANGED);t=n!==FooterBarState.UNCHANGED,t&&le.call("setState",n)}return t&&n!==FooterBarState.NONE}function O(e){var t=e<ee.width;ne!==t&&(ne=t,ie.toggleClass("origin-left",ne),ue.width(ne?e:""))}function y(){var e=function(e,t,n){var r=!1;return oe.has(e).length>0&&(r=b(e),r&&t>0&&(n=n.slice(t))),r};return X[W].some(e)}function T(e){J!==e&&(J=e,ie.css("transform","scale("+J+")"))}function U(e,t){h(!0),Util.isSet(e)&&(re.assessmentQuestion=Util.isSet(e.param.questionNode),re.assessmentQuestion&&(re.titles.page=core.course.getNodeTitle(core.course.currentPage)),$.extend(re,Util.nullValue(t,{})),se.call("startPage",e,re),le.call("startPage",e,re),oe.call("startPage",e,re))}function C(e,n){var r=!0;if(e===Button.COURSE_SUMMARY){var i=Util.nullValue(core.config["has-course-summary"],!1);if(i){var a="course-summary.pdf",o=core.pageScript.global;if(Util.isSet(o)){var s=o.getCourseSummaryFilename;Util.isSet(s)&&(a=s())}window.open(Path.ASSETS+a)}}else{var l=core.course.orphans[e];Util.isSet(l)?(l.param.entryId=Util.nullValue(n,""),t(l)):r=!1}return r}function P(e){if(Z){var t=$("input:focus");if(0===t.length&&!e.shiftKey&&!e.ctrlKey&&!e.altKey){var n=KeyboardShortcut.getKeyFunction(e.which);"select"===n?S($(e.target)):"continue"===n?le.call("advance"):StringUtil.isEmpty(n)?s("keyPress",e.which):se.call("activate",n)}}}function I(e,t){e.stopPropagation(),b(t)&&X[W].unshift(t)}function A(e){z=!1;var t=FooterBarState.CLOSE;if(0===W){var r=core.course.currentPage;if(r.overrideCompleted(),r.showHeaderBar&&r.enableHeaderBar){var i={};i[Button.NEXT_PAGE]=re.hasNextPage,se.call("setEnabledButtons",i)}t=c(e.target)}le.call("setState",t),n()}function N(e){var t=$(e.target),r=t.getVal("elementType");if("Page"===r){var i=t.getVal("pageNode"),a=!Util.isSet(i.parent),o=le.getVal("state");o!==FooterBarState.CLOSE&&(q=a?o:FooterBarState.UNCHANGED),W=a?1:0,n()}}function L(e,t){h(!1),n()}function _(e,t){if(t.isLast&&t["continue"]){var n=X[W];if(n.length>0){var r=n.shift();r[0]===e.target?!y()&&z&&le.call("setState",FooterBarState.NONE):n.unshift(r)}}}function D(e,t){e.stopPropagation(),y()}function R(e,t){le.call("setContinue",t)}function M(e,t){var n=$(t.questionPage);U(n.getVal("pageNode"))}function x(e){z=!0;var t=$(e.target);core.setLoading(!1),U(t.getVal("pageNode"))}function V(e){var t=$(e.target),n=t.data();C(n.resource,n.id)}function w(e){S($(e.target))}function j(e,t){le.call("setState",FooterBarState.NONE)}function B(e){var n=e.target.id;if(se.call("closeToolkit"),m(),E(n)||C(n))e.stopPropagation();else if(n===Button.EXIT)core.exit();else if(n===Button.CLOSE){t(),W=0;X[W];le.call("setState",q)}else if(n===Button.BOOKMARK_PAGE){var r=core.course.currentPage;r.bookmarked=!r.bookmarked}else if(n===Button.ACCEPT_POLICY)core.setData("policy-accepted",!0);else{var i=!1;switch(n){case Button.CONFIRM:case Button.CONTINUE:case Button.START_COURSE:i=!0}var a=i?"advance":n;s(a)}}function k(e){e.stopPropagation()}var F={changePage:t,getScale:d,resize:v,setEnabled:h},G={cssClass:"view",elementType:"View",id:"view",role:"group"};G=Element.extend(G,e);var H=l(),Y=core.config["sequential-pages"],K=core.config["strict-page-completion"],q=FooterBarState.UNCHANGED,X=[[],[]],W=0,Q=null,z=!0,Z=!0,J=1,ee={width:View.WIDTH,height:View.HEIGHT},te=ee.width/ee.height,ne=!1,re=null,ie=Element.generate(G);ie.publicProperties(G),ie.publicMethods(F),ie.attr("tabindex",TabOrder.VIEW),ie.on(MouseEvent.CLICK,w),ie.on(CourseEvent.NAVIGATE,j),ie.on(ElementEvent.SELECT,B),ie.on(TouchEvent.MOVE,".scrollable",k);var ae=a();ae.appendTo(ie);var oe=PageManager.generate();oe.on(ElementEvent.ADDED,I),oe.on(PageEvent.FINISH,A),oe.on(ElementEvent.INIT,N),oe.on(AssessmentEvent.NEXT_QUESTION,L),oe.on(TextEvent.PARAGRAPH,_),oe.on(ElementEvent.REMOVED,D),oe.on(AssessmentEvent.SHOW_QUESTION,M),oe.on(PageEvent.START,x),oe.on(ProgressEvent.SET_CONTINUE,R),oe.appendTo(ie);var se=i();se.appendTo(ie);var le=FooterBar.generate();le.appendTo(ie);var ce=r();ce.hide(),ce.appendTo(ie);var ue=$("body");return ue.on(KeyboardEvent.KEY_DOWN,P),ie}},WebLink={generate:function(e){function t(){var e={acc:!1,cssClass:"web-link-icon",id:a.id+"-icon",symbol:"symbols."+a.icon};return Sprite.generate(e)}function n(){var e={acc:!1,cssClass:"web-link-label",id:a.id+"-label"},t=Element.generate(e);return t.append(StringUtil.isEmpty(a.label)?a.url:a.label),t}function r(e){if(StringUtil.isEmpty(a.url)&&!StringUtil.isEmpty(e)){var t=core.resources.getEntry(e);Util.isSet(t)&&(a.label=t.name,a.url=t.url)}}function i(e){window.open(a.url,a.entryId)}var a={cssClass:"web-link",elementType:"WebLink",entryId:"",icon:"web-link",id:"web-link",label:"",role:"link",url:""};a=Element.extend(a,e),r(a.entryId);var o=n(),s=InteractiveElement.generate(a);return s.publicProperties(a),s.attr("aria-labelledby",o.attr("id")),s.append(t()),s.append(o),s.on(ElementEvent.SELECT,i),s}};