function consoleCheck(){window.console&&window.console.log||(window.console={log:function(){},debug:function(){},info:function(){},warn:function(){},error:function(){},profile:function(){},assert:function(){},msIsIndependentlyComposed:function(){return!0},clear:function(){},dir:function(){},profileEnd:function(){},count:function(){},groupEnd:function(){},time:function(){},timeEnd:function(){},trace:function(){},group:function(){},dirxml:function(){},groupCollapsed:function(){},select:function(){}})}var NamespaceManager=function(){function n(){}return n.prototype.namespace=function(n){for(var u=n.split("."),t=window,i="",r=0,f=u.length;r<f;r++)i=u[r],t[i]||(t[i]=t[i]||{}),t=t[i];return t},n.prototype.isDefined=function(n){return n!==undefined&&n!==null},n.prototype.generateUUID=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(n){var t=Math.random()*16|0,i=n=="x"?t:t&3|8;return i.toString(16)})},n}(),_namespaceManager,microsoft,MLX;(function(){"use strict";_namespaceManager=new NamespaceManager;_namespaceManager.namespace("microsoft.learning.mlx");window.NamespaceManager=_namespaceManager})();Array.prototype.remove||(Array.prototype.remove=function(n,t){var i=this.slice((t||n)+1||this.length);return this.length=n<0?this.length+n:n,this.push.apply(this,i)});"indexOf"in Array.prototype||(Array.prototype.indexOf=function(n,t){t===undefined&&(t=0);t<0&&(t+=this.length);t<0&&(t=0);for(var i=this.length;t<i;t++)if(t in this&&this[t]===n)return t;return-1});Array.prototype.clean||(Array.prototype.clean=function(n){for(var t=0;t<this.length;t++)this[t]==n&&(this.splice(t,1),t--);return this});Array.isArray||(Array.isArray=function(n){return Object.prototype.toString.call(n)==="[object Array]"});consoleCheck();String.prototype.format||(String.prototype.format=function(){var n=arguments;return this.replace(/{(\d+)}/g,function(t,i){return typeof n[i]!="undefined"?n[i]:t})});String.prototype.repeat||(String.prototype.repeat=function(n){return new Array(n+1).join(this)});String.prototype.replaceAll||(String.prototype.replaceAll=function(n,t){return this.replace(new RegExp(n,"g"),t)});String.prototype.startsWith||(String.prototype.startsWith=function(n){return this.slice(0,n.length)==n}),function(n){var t=n.Date,i=/^(\d{4}|\+\d{6})(?:-(\d{2})(?:-(\d{2})(?:T(\d{2}):(\d{2}):(\d{2})\.(\d*)(?:Z|([\-+])(\d{2}):(\d{2}))?)?)?)?$/;(t.parse("2013-09-01T05:15:30.5")!==1378001730500||t.parse("2013-09-01T05:15:30.57")!==1378001730570||t.parse("2013-09-01T05:15:30.579")!==1378001730579||t.parse("2013-09-01T05:15:30.5791")!==1378001730579||t.parse("2013-09-01T05:15:30.579Z")!==1378012530579||t.parse("2013-09-01T05:15:30.579+03:00")!==1378001730579||t.parse("2013-09-01")!==13779936e5||t.parse("2013-09")!==13779936e5||t.parse("2013")!==13569984e5)&&(t.__parse=t.parse,t.parse=function(n){var r=i.exec(n);return r?Date.UTC(parseInt(r[1]),(parseInt(r[2])||1)-1,parseInt(r[3])||1,parseInt(r[4])-(parseInt(r[8])?parseInt(r[8])+parseInt(r[9]):0)||0,parseInt(r[5])-(parseInt(r[8])?parseInt(r[8])+parseInt(r[10]):0)||0,parseInt(r[6])||0,parseInt(((r[7]||0)+"00").substr(0,3))):t.__parse.apply(this,arguments)});t.__fromString=t.fromString;t.fromString=function(n){return!t.__fromString||i.test(n)?new t(t.parse(n)):t.__fromString.apply(this,arguments)}}(window),function(n){var t;(function(t){var i;(function(t){var i;(function(t){function f(n){return typeof HTMLElement=="object"?n instanceof HTMLElement:n&&typeof n=="object"&&n!==null&&n.nodeType===1&&typeof n.nodeName=="string"}function e(n){return n&&(Object.prototype.toString.call(n)=="[object Arguments]"||!!n.callee)}function o(n){for(var t in n)if(!$.isNumeric(t))return!1;return!0}function s(t){var r=[],i,u;if(n.learning.mlx.utility.isArguments(t))for(i=0,u=t.length;i<u;i++)r.push(t[i]);return r}function h(n){return u(window.location.search,n)}function u(n,t){var r="",u,i;return t=t.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]"),u=new RegExp("[\\?&]"+t+"=([^&#]*)","gi"),i=u.exec(n),i&&(r=decodeURIComponent(i[1].replace(/\+/g," "))),r}function c(n){var i="",r,t;return n=n.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]"),r=new RegExp("[\\?&]"+n+"=([^&#]*)","gi"),t=r.exec(window.location.search),t&&(i=encodeURIComponent(t[1])),i}function l(n,t,i,r){var f=new RegExp("([?&])"+t+"=.*?(&|#|$)(.*)","gi"),e,u;return f.test(n)?typeof i!="undefined"&&i!=null?n=n.replace(f,"$1"+t+"="+(r?i:encodeURIComponent(i))+"$2$3"):(u=n.split("#"),n=u[0].replace(f,"$1$3").replace(/(&|\?)$/,"")):typeof i!="undefined"&&i!=null&&(e=n.indexOf("?")!==-1?"&":"?",u=n.split("#"),n=u[0]+e+t+"="+(r?i:encodeURIComponent(i)),typeof u[1]!="undefined"&&u[1]!=null&&(n+="#"+u[1])),n}function a(t,i,r){for(var u in i)t=n.learning.mlx.utility.addQueryStringParam(t,u,i[u],r);return t}function v(t,i,r){var u=t.indexOf("#"),o=u>-1?t.substring(0,u):t,f=u>-1?t.substring(u+1,t.length):"",e=n.learning.mlx.utility.getHashParams(f);return e[i]=r,f=n.learning.mlx.utility.createHashStringFromParams(e),o+f}function y(n){for(var r={},u=n!==""?n.split("&"):[],i,t=0,f=u.length;t<f;t++)i=decodeURIComponent(u[t]).split("="),r[i[0]]=i[1];return r}function p(n){var t=n!=={}?"#":"",i;for(i in n)t!=="#"&&(t+="&"),t+=encodeURIComponent(i+"="+n[i]);return t}function w(){return n.learning.mlx.utility.getQueryStringParamValue("courseNumber")}function b(n){var t=n.search(/\/[0-9]+-[0-9]{4}\//),r=n.substring(t).search(/-/),i=t+r+1,u=i+4;return n.substring(i,u).split("").join(".")}function k(){return n.learning.mlx.utility.getQueryStringParamValue("organizationId")}function d(n,t){document.cookie=n+"="+t+"; path=/;"}function g(t,i){if(i===void 0&&(i=!0),t){var r=t.indexOf("/Date")==0?new Date(parseInt(t.replace("/Date(","").replace(")/",""),10)):new Date(t);return n.learning.mlx.utility.getRegionalDate(r,null,i)}return""}function nt(t,i,r,u,f,e,o,s){var h="https://"+i+"/Administration/"+t+"?whr="+n.learning.mlx.utility.getQueryStringParamValue("whr")+"&type="+f+"&id="+r+"&organizationId="+u+"&courseId="+e+"&channelId="+MLX.context.appChannel;return o&&s&&(h=h+"&fromDate="+o+"&toDate="+s),h}function tt(t,i,r,u,f,e,o){return n.learning.mlx.utility.getReportUrl("DownloadActivityReport",t,i,r,u,f,e,o)}function it(t,i,r,u,f,e,o){return n.learning.mlx.utility.getReportUrl("DownloadAssessmentReport",t,i,r,u,f,e,o)}function rt(t,i){return"https://"+t+"/Administration/DownloadCatalogReport?whr="+n.learning.mlx.utility.getQueryStringParamValue("whr")+"&channelId="+MLX.context.appChannel+"&target="+i+"&param="+n.learning.mlx.utility.getQueryStringParamValue("whr")}function ut(n){var t=n.getDate(),u=t<10?"0"+t:t,i=n.getMonth()+1,f=i<10?"0"+i:i,r=n.getYear(),e=r<1e3?r+1900:r;return f+"/"+u+"/"+e}function ft(n){var i,t,r;for(n=n+"=",i=document.cookie.split(";"),t=0;t<i.length;t++)if(r=i[t].indexOf(n),r>=0)return i[t].substring(r+n.length,i[t].length);return""}function et(){var t=n.learning.mlx.utility.getQueryStringParamValue("langId");return t||(t=navigator.userLanguage?navigator.userLanguage:navigator.language?navigator.language:"en"),t}function ot(n,t,i){var r=this;$.getScript(n+t+".js").done(function(){i&&i()}).fail(function(){var u,f;t!="en"&&(u=t.indexOf("-"),u>-1?(f=t.substring(0,u),r.loadStringResources(n,f,i)):r.loadStringResources(n,"en",i))})}function st(n){var o=n.getUTCFullYear(),t=n.getUTCMonth()+1,i=n.getUTCDate(),r=n.getUTCHours(),u=n.getUTCMinutes(),f=n.getUTCSeconds(),e=Math.round(n.getUTCMilliseconds()/10);return t=t<10?"0"+t:t,i=i<10?"0"+i:i,r=r<10?"0"+r:r,u=u<10?"0"+u:u,f=f<10?"0"+f:f,e=e<10?"0"+e:e,o+"-"+t+"-"+i+"T"+r+":"+u+":"+f+"."+e+"Z"}function ht(n,t,i,r){var u=function(f){if(f<n.length){var e=f+i.batchSize,o=n.slice(f,e),s=$.map(o,function(n){return ko.mapping.fromJS(n,i.mapping)}),h=t().concat(s);t(h);setTimeout(function(){u(e)},i.interval)}else r&&r.resolve()};u(0)}function ct(n){return/[!#$%*<>()^/\"?&;]+/.test(n)}function lt(){var t=function(){throw new Error;};try{t()}catch(n){if(n.stack)return n.stack}return"Stack trace not available"}function at(n){var r=3600,f=60,i=Math.floor(n/r),u=Math.floor((n-i*r)/f),e=n-i*r-u*f,t="";return i<10&&(t="0"),t+=i+":",u<10&&(t+="0"),t+=u+":",e<10&&(t+="0"),t+e}function vt(n){var i=0,t=n.split(":");return t&&t.length>=3&&(i=Date.UTC(1970,0,1,t[0],t[1],t[2])/1e3),i}function yt(t,i,r){var u,e;r===void 0&&(r=!0);var o="d MM yy",s=!1,f=o;return i&&(typeof i.dateFormat!="undefined"&&i.dateFormat!=null&&(f=i.dateFormat),typeof i.cultureSpecificShortDate!="undefined"&&i.cultureSpecificShortDate!=null&&(s=i.cultureSpecificShortDate)),u=n.learning.mlx.utility.getCookieValue("_culture"),typeof u!="undefined"&&u!=null&&u!=""&&(e=!1,$.each([{key:"pt-br",value:"pt-BR"},{key:"zh-tw",value:"zh-TW"},{key:"zh-cn",value:"zh-CN"},{key:"en-US",value:""}],function(){this.key.toLowerCase()===u.toLowerCase()&&(u=this.value,e=!0)}),e||(u=u.split("-")[0]),$.datepicker.regional[u]!=undefined&&$.datepicker.regional[u]!=null&&(r?$.datepicker.setDefaults($.datepicker.regional[u]):$.datepicker.setDefaults($.datepicker.regional[""]),f=s?$.datepicker._defaults.dateFormat?$.datepicker._defaults.dateFormat:f:o)),$.datepicker.formatDate(f,t)}function pt(){if(!i){var n=MLX.ajax({url:"/Resources/GetPostalCodeValidationsData",type:"GET",dataType:"json",contentType:"application/json; charset=utf-8"});return n.done(function(t){i=JSON.parse(t).PhonePostalCodeValidations;n.resolve()}).fail(function(){n.reject()}),n}}function wt(n,t){var r=!1,u;return t=t.replace(/\s+/g,""),i&&(u=$.grep(i,function(t){return t.CountryCode==n&&t.RegularExpressionPattern!="(.*)"}),u.length>0&&$(u).each(function(n,i){var u=new RegExp(i.RegularExpressionPattern);if(!r&&u.test(t))return r=!0,!1})),r}function bt(t){var i,u,r;if(t&&t.length)for(i=new Date,i.setDate(i.getDate()-1),u=n.learning.mlx.utility.getRegionalDate(i),r=0;r<t.length;r++)t[r].LastBIRefreshDate=u}var r,i;t.isElement=f;t.isArguments=e;t.isArrayLike=o;t.convertArgumentsToArray=s;r=function(){function n(n){var t=new Date(n);this.hour=t.getUTCHours();this.minute=t.getMinutes();this.second=t.getSeconds()}return n.prototype.toString=function(){var n=this,t=function(n){return n>=10?n:"0"+n};return t(n.hour)+":"+t(n.minute)+":"+t(n.second)},n}();t.TimeSpan=r;t.getQueryStringParamValue=h;t.getQueryStringParamValueFromUrl=u;t.getEncodedQueryStringParamValue=c;t.addQueryStringParam=l;t.addQueryStringParams=a;t.updateUrlHashParamValue=v;t.getHashParams=y;t.createHashStringFromParams=p;t.getCourseNumber=w;t.getVersionFromBaseUrl=b;t.getOrganizationId=k;t.setSessionCookie=d;t.getDisplayDateFromJSON=g;t.getReportUrl=nt;t.getActivityReportDownloadUrl=tt;t.getAssessmentReportDownloadUrl=it;t.getCatalogReportDownloadUrl=rt;t.getDisplayDate=ut;t.getCookieValue=ft;t.getLanguageId=et;t.loadStringResources=ot;t.dateToTimestamp=st;t.batchInsertToObservableArray=ht;t.ContainsSpecialChars=ct;t.stackTrace=lt;t.convertSecondsToHHMMSS=at;t.convertHHMMSSToSeconds=vt;t.getRegionalDate=yt;i=null;t.loadPostalCodeValidationsXML=pt;t.validateCountryPostalCode=wt;t.addBIRefreshDate=bt})(i=t.utility||(t.utility={}))})(i=t.mlx||(t.mlx={}))})(t=n.learning||(n.learning={}))}(microsoft||(microsoft={})),function(n){var t;(function(n){var t;(function(n){function t(){return{key:function(n){return ko.utils.unwrapObservable(n.Id)}}}n.SimpleMappingOptions=t})(t=n.mlx||(n.mlx={}))})(t=n.learning||(n.learning={}))}(microsoft||(microsoft={})),function(n){var t;(function(t){var i;(function(t){var i=function(){function t(n){this.queue=[];this.context={name:"",msgCount:1,scheme:window.location.href.split(":")[0],enableLogging:!0,targetWindow:null,targetHostname:"",receiver:""};$.extend(this.context,n)}return t.prototype.queueMessage=function(n){var t=this.context.msgCount;return this.queue[this.context.name+t]=n,this.context.msgCount++,t},t.prototype.getMessage=function(n){return this.queue[n]},t.prototype.deleteMessage=function(n){delete this.queue[n]},t.prototype.handleMessage=function(n){var i={origin:n.origin,source:n.source,data:n.data},t=new Function("return "+i.data)(),r=t.messageWay,u=t.messageType&&t.messageType.toLowerCase(),f=u&&u.lastIndexOf("ajax",0)===0,e=u&&u.lastIndexOf("proxy",0)===0;t&&t.receiver&&t.receiver!==this.context.name||(r==="request"&&f?this.requestAjax(i,t):r==="request"&&e?this.requestProxy(i,t):r==="response"&&f?this.responseAjax(i,t):r==="response"&&e?this.responseProxy(i,t):this.context.enableLogging&&console.info("[%s] received invalid message %s",this.context.name,i.data))},t.prototype.postBack=function(n,t){if(null==n||null==t||null==t.origin)return"";var i=JSON.stringify(n);return t.source.postMessage(i,t.origin),i},t.prototype.send=function(n){var i=this,r=JSON.stringify(n),t=this.context.targetWindow,u=!1;try{$(t).is("iframe")&&(u=!0)}catch(f){}if(u){if(!t.contentWindow)throw"iframe content is not loaded";t=t.contentWindow}return setTimeout($.proxy(function(){t.postMessage(r,i.context.scheme+"://"+i.context.targetHostname)},i),0),r},t.prototype.requestAjax=function(n,t){var f=this,e=this.context,i=e.enableLogging,r=e.name,u=n.data;i&&console.info("[%s] get ajax request from %s ==> %s",r,n.origin,u.length>500?u.substr(0,500):u);$.ajax({xhrFields:{withCredentials:!0},headers:t.headers,url:t.target,data:t.data,dataType:t.dataType&&t.dataType.toLowerCase()=="xml"?"text":t.dataType,type:t.type?t.type:"GET",cache:t.cache?t.cache:!0,contentType:t.contentType?t.contentType:"application/x-www-form-urlencoded; charset=UTF-8",timeout:3e4,success:function(u,e,o){var h={messageWay:"response",messageType:"AJAX_SUCCESS",messageId:t.messageId,statusText:e,statusCode:o.status,statusMessage:o.statusText,result:u},s=f.postBack(h,n);i&&console.info("[%s] send ajax response to %s ==> %s",r,n.origin,s.length>500?s.substr(0,500):s)},error:function(u,e,o){var h={messageWay:"response",messageType:u.status==403||u.status==401||u.status==12017?"AJAX_AUTH":"AJAX_FAILURE",messageId:t.messageId,statusText:e,statusCode:u.status,statusMessage:u.statusText,responseText:u.responseText,requestId:u.getResponseHeader("X-MLX-RequestId"),error:o},s=f.postBack(h,n);i&&console.info("[%s] send ajax response to %s ==> %s",r,n.origin,s.length>500?s.substr(0,500):s)}})},t.prototype.responseAjax=function(n,t){var f,i,e,r,u;this.context.enableLogging&&console.info("[%s] get ajax response from %s ==> %s",this.context.name,n.origin,n.data.length>500?n.data.substr(0,500):n.data);f=t.messageId;i=this.getMessage(f);i&&(e=i.tunnel.dataType,r=i.promise,t.messageType=="AJAX_SUCCESS"&&(u=undefined,e&&e.toLowerCase()=="xml"&&(u=$.parseXML(t.result)),r.resolve(u?u:t.result)),t.messageType=="AJAX_FAILURE"&&r.reject(t.result),t.messageType=="AJAX_AUTH"&&r.reject(t.result),this.deleteMessage(f))},t.prototype.requestProxy=function(n,t){var v=this,f=this,o=f.context.enableLogging,a,r,e,p,i,l;o&&console.info("[%s] get proxy request from %s ==> %s",f.context.name,n.origin,n.data.length>500?n.data.substr(0,500):n.data);a=!0;try{var s=t.target.split("."),u=window[s[0]],h=1,y=s.length,w=y-2;for(h;h<=w;h++)e=u[s[h]],typeof e=="function"&&(e=e.apply(u)),u=e;p=s[y-1];i=u[p];typeof i=="function"&&(i=t.data?i.apply(u,t.data):i.apply(u));i&&i.done&&i.fail?(a=!1,i.done($.proxy(function(i){r={messageWay:"response",messageType:"PROXY_SUCCESS",messageId:t.messageId,result:i};var u=v.postBack(r,n);o&&console.info("[%s] send proxy response to %s ==> %s",f.context.name,n.origin,u.length>500?u.substr(0,500):u)},this)).fail($.proxy(function(i){r={messageWay:"response",messageType:"PROXY_FAILURE",messageId:t.messageId,result:i};var u=v.postBack(r,n);o&&console.info("[%s] send proxy response to %s ==> %s",f.context.name,n.origin,u.length>500?u.substr(0,500):u)},this))):r={messageWay:"response",messageType:"PROXY_SUCCESS",messageId:t.messageId,result:i}}catch(c){r={messageWay:"response",messageType:"PROXY_FAILURE",messageId:t.messageId,result:{fileName:c.fileName,lineNumber:c.lineNumber,message:c.toString(),stack:c.stack}}}a&&(l=this.postBack(r,n),o&&console.info("[%s] send proxy response to %s ==> %s",f.context.name,n.origin,l.length>500?l.substr(0,500):l))},t.prototype.responseProxy=function(n,t){var r=this.context,o=r.enableLogging,u=n.data,f,e;if(o&&console.info("[%s] get proxy response from %s ==> %s",r.name,n.origin,u.length>500?u.substr(0,500):u),f=t.messageId,e=this.getMessage(f),e){var s=e.promise,h=t.messageType,i=t.result;h=="PROXY_SUCCESS"&&s.resolve(i);h=="PROXY_FAILURE"&&(i&&o&&console.error("[%s] get proxy error response from %s ==> %s",r.name,n.origin,i.message),s.reject(i));this.deleteMessage(f)}},t.prototype.ajax=function(n){var u=$.Deferred(),t=this.context,r=t.name,f=t.msgCount,e={messageWay:"request",messageType:"ajax",messageId:r+f,target:n.url,type:n.type?n.type:"GET",contentType:n.contentType,dataType:n.dataType,cache:undefined==n.cache?!0:n.cache,data:n.data==null?null:n.data,receiver:t.receiver},o={tunnel:e,original:n,messageId:r+f,promise:u,receiver:t.receiver},i;return this.queueMessage(o),i=this.send(e),this.context.enableLogging&&console.info("[%s] send ajax request to %s ==> %s",r,t.targetHostname,i.length>500?i.substr(0,500):i),u.promise()},t.prototype.proxy=function(n){var u=$.Deferred(),o=this.clone(n.data),t=this.context,r=t.name,f=t.msgCount,e={messageWay:"request",messageType:"proxy",messageId:r+f,receiver:t.receiver,target:n.target,data:o},s={tunnel:e,original:n,messageId:r+f,receiver:t.receiver,promise:u},i;return this.queueMessage(s),i=this.send(e),t.enableLogging&&console.info("[%s] send proxy request to %s ==> %s",r,t.targetHostname,i.length>500?i.substr(0,500):i),u.promise()},t.prototype.clone=function(t){var u,i,o,f,s,e,r;if(null==t||"object"!=typeof t)return t;if($.type(t)==="date")return new Date(t.getTime());if($.isArray(t)||n.learning.mlx.utility.isArguments(t)){for(u=[],i=0,o=t.length;i<o;i++)u.push(this.clone(t[i]));return u}if(n.learning.mlx.utility.isArrayLike(t)){f=[];for(s in t)f.push(this.clone(t[s]));return f}if($.type(t)==="object"){e={};for(r in t)t.hasOwnProperty(r)&&(e[r]=this.clone(t[r]));return e}throw new Error('Unable to copy object. "{0}" type isn\'t supported.'.format($.type(t)));},t.prototype.interwindowProxy=function(n,t){return function(){return n.call(t,arguments[0],arguments[1],arguments[2],arguments[3],arguments[4])}},t.prototype.bind=function(n){var i=this,t=this.context;t.targetWindow=n;$(window).on("message",function(n){i.handleMessage(n.originalEvent)});return t.enableLogging&&console.info("[%s] bind",t.name),this},t}();t.MLXTunnel=i})(i=t.mlx||(t.mlx={}))})(t=n.learning||(n.learning={}))}(microsoft||(microsoft={}));MLX=MLX||{};MLX.initializeScoTunnel=function(n){var i=$("#"+n),u=i.get(0),t=$.Deferred(),r;if(typeof ScoTunnel=="undefined")if(ScoTunnel=new microsoft.learning.mlx.MLXTunnel({name:"TunnelToSco",receiver:"TunnelToLms",targetHostname:MLX.context.courseContentDomain,scheme:"https"}),ScoTunnel.bind(u),i.length>0){platformVersion=(new Date).toJSON();r=MLX.context.coursePlayerDriverUrl+"?v="+platformVersion+"&targetHostname="+window.location.host+"&scheme=https";MLX.context.appChannel!=="5"||typeof Configurations=="undefined"||!Configurations.mvaApiTargetHostname||MLX.context.isMVAMigrationCompleted||MLX.context.currentUser.isMVAMigratedUser||(r+="&mvaApiTargetHostname="+Configurations.mvaApiTargetHostname);u.contentWindow.location.replace(r);i.one("load",$.proxy(function(){ScoTunnel.proxy({target:"SCO_Wrapper_API.initializeScoWrapper",data:[]}).done(function(){t.resolve(ScoTunnel)})},self))}else t.reject();else t.resolve(ScoTunnel);return t.promise()};MLX.initializeMvaApiTunnel=function(n,t){var r=$.Deferred(),i;if(typeof MvaApiTunnel=="undefined"){if(MvaApiTunnel=new microsoft.learning.mlx.MLXTunnel({name:"TunnelToMvaApi",targetHostname:n,scheme:t}),i=document.createElement("iframe"),i){i.setAttribute("id","mvaApiFrame");i.setAttribute("style","display: none;");i.setAttribute("src",t+"://"+n+"/mva-api-tunnel.aspx?targetHostname="+window.location.hostname);document.body.appendChild(i);$(i).one("load",$.proxy(function(){MvaApiTunnel.bind(i);r.resolve(MvaApiTunnel)},self))}}else r.resolve(MvaApiTunnel);return r.promise()};microsoft.learning.mlx.MLXClass=function(){var n=function(n){this.MLXQueue=[];this.context={msgCount:1,appId:"",appVersion:"1.0",scheme:"https",apiHost:"sitexamregistrationapi.cloudapp.net",currentUser:{isAuthenticated:!1},errorcallback:"",errorcallbacks:[],reauthenticateCallBack:"",enableLogging:!0,coursePlayerDriverUrl:"",courseContentDomain:"",isAdmin:!1,bubbleError:!0,isMVAMigrationCompleted:!1,platformBuildVersion:"1-0-0-0"};this.MlxSDKInitPromise=undefined;$.extend(this.context,n)},t=localStorage.getItem("retryCount");return(t===null||t.length===0)&&localStorage.setItem("retryCount",0),n.prototype.tunnelLoaded=function(){this.send("INIT")},n.prototype.addTunnel=function(){var n=document.getElementById("APITunnel"),t=this.context.scheme+"://"+this.context.apiHost+"/Partner/Index/"+this.context.appId+"?r="+window.location.host+"&isAdmin="+this.context.isAdmin;t=this.addUrlContextParams(t);n?MLX.tunnelLoaded():(n=document.createElement("IFRAME"),n.setAttribute("src",t),n.setAttribute("id","APITunnel"),n.style.width="0px",n.style.height="0px",n.style.display="none",document.body.appendChild(n));$(n).load(function(){MLX.tunnelLoaded()})},n.prototype.queueMessage=function(n){var t=this.context.msgCount;return this.MLXQueue[t]=n,this.context.msgCount++,t},n.prototype.getMessage=function(n){return this.MLXQueue[n]},n.prototype.deleteMessage=function(n){delete this.MLXQueue[n]},n.prototype.sendCustomMessage=function(n,t,i){var u=$.Deferred(),f=this.context,r,e;return i||(i="BulkUploadUsersSubmit"),t||(t="APITunnel"),r={isCustom:!0,messageType:i,message:n,queueIndex:0,promise:u},r.queueIndex=this.queueMessage(r),e=document.getElementById(t).contentWindow,e.postMessage(JSON.stringify(r),f.scheme+"://"+f.apiHost),u},n.prototype.send=function(n){var t=parseInt(localStorage.getItem("retryCount"))+1;if(this.context.currentUser.isAuthenticated?localStorage.setItem("retryCount",0):localStorage.setItem("retryCount",t),t<7||this.context.currentUser.isAuthenticated){if(!n.sendInProgress){n.sendInProgress=!0;var r=document.getElementById("APITunnel"),u=JSON.stringify(n),i=this.context,f=r.contentWindow;f.postMessage(u,i.scheme+"://"+i.apiHost)}}else{localStorage.setItem("retryCount",0);throw"error";}},n.prototype.ajax=function(n){var i=$.Deferred(),r=n.type,u=n.data,o=this.context,f=o.msgCount,t={target:n.url,type:r?r:"GET",data:u==null?null:u,headers:n.headers?n.headers:"",contentType:n.contentType,dataType:n.dataType,messageId:f,sendInProgress:!1},e;return undefined!=n.cache&&(t.cache=n.cache),e={tunnel:t,original:n,messageId:f,promise:i,retries:0},this.queueMessage(e),this.send(t),i},n.prototype.init=function(n){var r=this,t=this.context,i;if(null==n)throw{error:"appContext can not be null"};if(i=n.appId,null==i||i=="")throw{error:"appId must be provided."};t.appId=i;t.apiHost=n.apiHost;t.isAdmin=n.isAdmin;t.appChannel=n.appChannel;t.orgId=n.orgId||"";t.roleName=n.roleName||"";t.isMVAMigrationCompleted=n.isMVAMigrationCompleted||!1;n.errorcallback&&t.errorcallbacks.push(n.errorcallback);n.reauthenticatecallback&&(t.reauthenticateCallBack=n.reauthenticatecallback);$(window).on("message",function(n){r.receiver(n.originalEvent)});return this.MlxSDKInitPromise||(this.MlxSDKInitPromise=$.Deferred()),this.addTunnel(),this.MlxSDKInitPromise.promise()},n.prototype.signInToO365=function(n,t){var i=this.context,r=i.scheme+"://"+t+"/?"+n;window.location=i.scheme+"://"+i.apiHost+"/FederatedSignIn/SignOut/?r="+r+"&appID="+i.appId+"&channelId="+i.appChannel+"&IsSwitchUser=true"},n.prototype.switchToLiveAccount=function(n,t){var i=this.context,r=i.scheme+"://"+t+"/?whr="+n;window.location=i.scheme+"://"+i.apiHost+"/FederatedSignIn/SignOut/?r="+r+"&appID="+i.appId+"&channelId="+i.appChannel+"&SwitchToMSAccount=true"},n.prototype.signInToAad=function(n){window.location.href=this.context.scheme+"://"+this.context.apiHost+"/accountlinking/v1/Authenticate?returnUrl="+n},n.prototype.signIn=function(n,t,i,r,u){n.location=this.getSignInUrl(n,t,i,r,u)},n.prototype.getSignInUrl=function(n,t,i,r,u){var f,n;if(typeof r=="undefined"&&(r=!1),f="",f=jQuery.type(i)==="string"?i:i.href,r){MLX.silentAuthentication(u,t,f);return}n||(n=window);tail=f.substring(0,f.indexOf("?whr="));tail=tail===""?f.indexOf("?")>-1?f.substring(0,f.indexOf("?"))+"?whr="+t+"&"+f.substring(f.indexOf("?")+1):f+"?whr="+t:f;tail.indexOf("?whr=default")>-1&&tail.indexOf("?whr="+t)==-1&&(tail=tail.replace("?whr=default","?whr="+t));var o=t.length==0?"whr=":"whr="+t,e=this.context,s=e.scheme+"://"+e.apiHost+"/Partner/Permissions/"+e.appId+"/?"+o+"&r="+encodeURI(tail);return this.addUrlContextParams(s)},n.prototype.signOut=function(n){var n,t,i;n||(n=window);t=n.location;i=t.protocol+"//"+t.host+"/";t.protocol=="https:"&&(t.pathname.indexOf("ContentIngestion")>-1?i=i+"ContentIngestion":t.pathname.indexOf("Administration")>-1&&MLX.context.currentUser.role.indexOf("Administrator")>-1&&(i=i+"Administration"));n.location=this.context.scheme+"://"+this.context.apiHost+"/FederatedSignIn/SignOut/?r="+i+"&appID="+this.context.appId+"&channelId="+this.context.appChannel},n.prototype.changeOrg=function(n,t){if(!n)var n=window;n.location=t},n.prototype.receiver=function(n,t){var a=this,i=this.context,t,h,d,r,c,y,l,v,p,u,k,f,e,s;if(t||(t=window,t.parent&&(t=t.parent)),i.enableLogging&&console.info(n.origin+"==>"+(n.data.length>500?n.data.substr(0,500):n.data)),h=!1,d=i.scheme+"://"+i.apiHost,n.origin==d){if(r=new Function("return "+n.data)(),c=r.messageType,c=="INIT"){i.currentUser=r.currentUser;i.coursePlayerDriverUrl=r.coursePlayerDriverUrl;i.courseContentDomain=r.courseContentDomain;i.appChannel=r.appChannel;i.platformBuildVersion=r.platformBuildVersion;this.MlxSDKInitPromise.resolve();return}if(y=r.messageId,u=this.getMessage(y),u){if(l=u.promise,c=="AJAX_SUCCESS"){if(v=undefined,p=u.tunnel.dataType,p&&p.toLowerCase()=="xml"&&(v=$.parseXML(r.result)),i.reauthenticateCallBack&&i.reauthenticateCallBack("CLOSE_LOGIN",""),l.resolve(v?v:r.result),null!=u.original.success)try{u.original.success(r.result)}catch(w){console.info("handler threw exception ==>"+w)}h=!0}else if(c=="AJAX_FAILURE"){if(l.reject(r.result?r.result:r),i.bubbleError){if(f=i.errorcallbacks,f)for(e=0,s=f.length;e<s;e++)f[e](r.statusCode,r.responseText);if(null!=u.original.error)try{u.original.error(r.result)}catch(w){console.info("handler threw exception ==>"+w)}}i.bubbleError=!0;h=!0}else if(c=="AJAX_AUTH"){var g=2,b=microsoft.learning.mlx.utility.getQueryStringParamValue("whr"),o=i.scheme+"://"+i.apiHost+"/Partner/Permissions/"+i.appId+"/?whr="+b;if(o=a.addUrlContextParams(o),o=o+"&r="+i.scheme+"://"+window.location.host+"/Home/RetryAuthentication?whr="+b,r.statusCode==401||r.statusCode==12017)if(i.currentUser.isAuthenticated)if(b&&u.retries<g){u=this.getMessage(r.messageId);i.reauthenticateCallBack&&i.reauthenticateCallBack("SHOW_AUTH","");microsoft.learning.mlx.utility.setSessionCookie("ReauthenticateState","false");$("#logonIframe").attr("src",o);k={value:!1};setTimeout(function(){k.value||($("#logonIframe").off("load."+o),u.retries++,a.send(u.tunnel),i.reauthenticateCallBack&&i.reauthenticateCallBack("CLOSE_BUSYINDICATOR",""))},5e3);$("#logonIframe").on("load."+o,function(){var n,t,r;try{n=$("#logonIframe").attr("src");t=/\/\/([^\/]+)/.exec(n);t!=null&&(r=microsoft.learning.mlx.utility.getCookieValue("ReauthenticateState"),r=="true"&&(i.reauthenticateCallBack&&i.reauthenticateCallBack("CLOSE_BUSYINDICATOR",""),k.value=!0,$("#logonIframe").off("load."+o),u.retries++,a.send(u.tunnel)))}catch(f){}})}else i.reauthenticateCallBack&&i.reauthenticateCallBack("SHOW_LOGIN",o,function(){this.MLX.MLXQueue.forEach(function(n){n.retries>=g&&(n.tunnel.sendInProgress||(n.retries++,a.send(n.tunnel)))})});else t.location=i.scheme+"://"+i.apiHost+"/FederatedSignIn/PartnerSignIn/"+i.appId+"?r="+t.location;else{if(l.reject(r.result?r.result:r),f=i.errorcallbacks,f)for(e=0,s=f.length;e<s;e++)f[e](r.statusCode,r.responseText);if(null!=u.original.error)try{u.original.error(r.result)}catch(w){console.info("handler threw exception ==>"+w)}h=!0}}else if(c=="CUSTOM")l.resolve(r.result),h=!0;else if(c=="AJAX_ERROR"){if(u.original.error(r.result),f=i.errorcallbacks,f)for(e=0,s=f.length;e<s;e++)f[e](r.statusCode,r.responseText);h=!0}h&&this.deleteMessage(y);u.tunnel.sendInProgress=!1}}},n.prototype.silentAuthentication=function(n,t,i){var r=document.getElementById("AuthTunnel"),f=this.context,u=f.scheme+"://"+f.apiHost+"/Partner/Permissions/"+f.appId+"/?whr="+t;u=this.addUrlContextParams(u)+"&r="+i;r?r.src=u:(r=document.createElement("IFRAME"),r.setAttribute("src",u),r.setAttribute("id","AuthTunnel"),r.style.width="0px",r.style.height="0px",r.style.display="none",document.body.appendChild(r));setTimeout(function(){MLX.context.currentUser.isAuthenticated?n():MLX.ReloadTunnel(n)},5e3)},n.prototype.ReloadTunnel=function(n,t){typeof t=="undefined"&&(t=2);var i=document.getElementById("APITunnel");i?(i.src=i.src,$(i).load(function(){MLX.tunnelLoaded()})):MLX.addTunnel();setTimeout(function(){MLX.context.currentUser.isAuthenticated?n():(t--,t>0&&MLX.ReloadTunnel(n,t))},5e3)},n.prototype.addUrlContextParams=function(n){var t=this;return t.context.orgId!=""&&n.toLowerCase().indexOf("orgid")<0&&(n=n+"&orgId="+t.context.orgId),t.context.roleName!=""&&n.toLowerCase().indexOf("rolename")<0&&(n=n+"&roleName="+t.context.roleName),n},n}();MLX=MLX||{};$.extend(MLX,new microsoft.learning.mlx.MLXClass("MLX"))