File: /home/dronicaehy/www/HTML_Tecnicas_Reunidas_V2020/scorm.js
(function ()
{
function findAPI(win)
{
var depth = 0,
depthLimit = 500;
while ((!win.API) && (!win.API_1484_11) && win.parent && (win.parent != win) && (depth <= depthLimit))
{
depth++;
win = win.parent;
}
return win.API_1484_11 || win.API || null;
}
function getAPI(win)
{
var API = findAPI(win);
if(!API && win.parent && (win.parent != win))
API = findAPI(win.parent);
if (!API && win.top && win.top.opener)
API = findAPI(win.top.opener);
if (!API && win.top && win.top.opener && win.top.opener.document)
API = findAPI(win.top.opener.document);
return API;
}
function getCall(lms, name)
{
if (lms && lms[name])
return lms[name].bind(lms);
return function() {};
}
function initAPI()
{
var SCORM = {
initialize: getCall(api, 'LMSInitialize'),
getValue: getCall(api, 'LMSGetValue'),
setValue: getCall(api, 'LMSSetValue'),
commit: getCall(api, 'LMSCommit'),
terminate: getCall(api, 'LMSFinish'),
setLessonComplete: function(score)
{
this.setValue('cmi.core.score.raw', score === undefined? 100 : score);
this.setValue('cmi.core.lesson_status', 'completed');
this.commit('');
}
};
SCORM.initialize('');
window.addEventListener('unload', function()
{
SCORM.terminate('');
});
window.SCORM = SCORM;
}
function tryGetAPI()
{
api = getAPI(window);
if(api)
initAPI();
else if(--maxTries > 0)
setTimeout(tryGetAPI, 1000);
}
var api = null;
var maxTries = 10;
tryGetAPI();
})();