update
This commit is contained in:
+800
@@ -0,0 +1,800 @@
|
||||
var __jsonObject, __spresponse;
|
||||
var __temas = new Array();
|
||||
var __rootxml = 'xml/main.xml';
|
||||
var __curso = new Object();
|
||||
__curso.databasename = "Mapfre_PLD.V10";
|
||||
__curso.modoDesarrollo = false;
|
||||
if(__curso.modoDesarrollo ) { __curso.databasename = __curso.databasename +"."+Math.random(); }
|
||||
__curso.maxAvance = 0;
|
||||
__curso.libre = false;
|
||||
__curso.actual = 0;
|
||||
var __htmlmenu = "";
|
||||
var __auxi = 0;
|
||||
var __currentSound = null;
|
||||
var circleProgressBar;
|
||||
var ___scala = 1;
|
||||
var __click = newSound("audio/click.mp3");
|
||||
|
||||
|
||||
jQuery(document).ready(function($) {
|
||||
$(".wloader").show();
|
||||
var success = pipwerks.SCORM.init();
|
||||
var status = "";
|
||||
startTimer();
|
||||
if (success) {
|
||||
status = pipwerks.SCORM.get("cmi.core.lesson_status");
|
||||
if (!(status.localeCompare("completed") == 0 || status.localeCompare("passed") == 0)) {
|
||||
success = pipwerks.SCORM.set("cmi.core.lesson_status", "incomplete");
|
||||
}
|
||||
}
|
||||
ready();
|
||||
});
|
||||
|
||||
|
||||
function ready() {
|
||||
resizeRutine();
|
||||
window.addEventListener("resize", resizeRutine);
|
||||
$.ajax({
|
||||
url: __rootxml,
|
||||
data: {
|
||||
nochache: 'cache-' + new Date().getTime()
|
||||
},
|
||||
dataType: "xml"
|
||||
})
|
||||
.done(function(response) {
|
||||
__spresponse = response;
|
||||
indexes();
|
||||
__jsonObject = $.xml2json(__spresponse);
|
||||
crearMenu();
|
||||
recuperarSesion();
|
||||
eliminarDuplicadosDelMenu();
|
||||
})
|
||||
.fail(function() {
|
||||
alert("error al leer configuración.");
|
||||
});
|
||||
// eventos de botones de menu
|
||||
$(".btn-close-menu").click(__closemenu);
|
||||
$(".btn__menu").click(__openmenu);
|
||||
$(".btn__siguiente").click(__siguiente);
|
||||
$(".btn__atras").click(__atras);
|
||||
$(".btn__home").click(__home);
|
||||
$(".btn__reload").click(__reload);
|
||||
$(".btn-show-subs").click(__togglesubs);
|
||||
$(".wcontainer").on('click', '.btn_menu_padre', function(event) {
|
||||
$(this).toggleClass("close_menu_items");
|
||||
$(this).parent().find(".btn_menu_tema").toggle("fast");
|
||||
});
|
||||
$(".wcontainer").on('click', '[data-indexmenubtn]', function(event) {
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
if (!$(this).hasClass('disabled')) {
|
||||
__goto(Number($(this).data('indexmenubtn')));
|
||||
__closemenu();
|
||||
} else {
|
||||
Swal.fire({
|
||||
title: '<b>Tema bloqueado</b>',
|
||||
icon: 'info',
|
||||
showCloseButton: false,
|
||||
showCancelButton: false,
|
||||
cancelButtonText: 'No',
|
||||
confirmButtonText: 'Aceptar',
|
||||
height: '100%',
|
||||
showConfirmButton: true,
|
||||
allowOutsideClick: false,
|
||||
allowEscapeKey: false,
|
||||
allowEnterKey: false,
|
||||
target: '.wcontainer',
|
||||
customClass: 'popscoinit',
|
||||
onBeforeOpen: function() {},
|
||||
onOpen: function() {},
|
||||
onRender: function() {},
|
||||
onClose: function() {},
|
||||
onAfterClose: function() {}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
$(".btn-sound-control-sco").click(function(event) {
|
||||
if ($(this).hasClass('mute')) {
|
||||
Howler.volume(1);
|
||||
if ($(".sco").find('video').length > 0) {
|
||||
$(".sco").find('video').each(function(index, el) {
|
||||
el.volume = 1;
|
||||
});
|
||||
}
|
||||
$(this).removeClass('mute');
|
||||
} else {
|
||||
$(this).addClass('mute');
|
||||
Howler.volume(0);
|
||||
if ($(".sco").find('video').length > 0) {
|
||||
$(".sco").find('video').each(function(index, el) {
|
||||
el.volume = 0;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
function eliminarDuplicadosDelMenu() {
|
||||
var cmp = "---";
|
||||
$(".btn_menu_tema").each(function(index, el) {
|
||||
var sco = __curso.temas[index];
|
||||
if (!sco.visitado && !__curso.modoDesarrollo && !__curso.libre) {
|
||||
$(el).addClass('disabled');
|
||||
}
|
||||
if ($(el).html() != cmp) {
|
||||
cmp = $(el).html();
|
||||
} else {
|
||||
$(el).remove();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function __togglesubs() {
|
||||
$(".subtenma").toggleClass("abierto");
|
||||
}
|
||||
|
||||
function indexes() {
|
||||
var _i = 0;
|
||||
$.each($(__spresponse).find('modulo'), function(index, modulo) {
|
||||
var moduloname = $(modulo).find('nombre').text();
|
||||
$.each($(modulo).find('tema'), function(index, val) {
|
||||
|
||||
if (val.childElementCount == 0) {
|
||||
var tema = new Object();
|
||||
tema.index = _i;
|
||||
tema.visitado = false;
|
||||
tema.modulo = moduloname;
|
||||
var element = $(val);
|
||||
$.each(element.get(0).attributes, function(i, attrib) {
|
||||
tema[attrib.name] = attrib.value;
|
||||
});
|
||||
tema.text = $(val).text();
|
||||
__temas.push(tema);
|
||||
$(val).attr("index", _i);
|
||||
$(val).attr("visitado", "false");
|
||||
_i++;
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
function crearMenu() {
|
||||
var nombredelcurso = __jsonObject["#document"].curso.nombre;
|
||||
$(".nombredelcurso").html(nombredelcurso);
|
||||
var menudiv = ".itemsmenu";
|
||||
$(menudiv).parent().prepend("<div class='menu_nombrecurso w-100'>" + nombredelcurso + "</div>");
|
||||
if ($.isArray(__jsonObject["#document"].curso.modulo)) {
|
||||
$.each(__jsonObject["#document"].curso.modulo, function(index, modulo) {
|
||||
$(menudiv).append("<div class='menu_modulo" + index + "'></div>");
|
||||
var modulodiv = '.menu_modulo' + index;
|
||||
$(modulodiv).append("<div class='menu_nombremodulo'>" + modulo.nombre + "</div>");
|
||||
agregaModuloAlMenu(index, modulo);
|
||||
});
|
||||
} else {
|
||||
$(menudiv).append("<div class='menu_modulo" + 0 + "'></div>");
|
||||
var modulodiv = '.menu_modulo' + 0;
|
||||
$(modulodiv).append("<div class='menu_nombremodulo'>" + __jsonObject["#document"].curso.modulo.nombre + "</div>");
|
||||
agregaModuloAlMenu(0, __jsonObject["#document"].curso.modulo);
|
||||
}
|
||||
}
|
||||
|
||||
function agregaModuloAlMenu(index, modulo) {
|
||||
var modulodiv = '.menu_modulo' + index;
|
||||
|
||||
if ($.isArray(modulo.tema)) {
|
||||
$.each(modulo.tema, function(indextema, tema) {
|
||||
agregaTemaAlModulo(indextema, tema, modulodiv, index);
|
||||
});
|
||||
} else {
|
||||
agregaTemaAlModulo(0, tema, modulodiv);
|
||||
}
|
||||
}
|
||||
|
||||
function agregaTemaAlModulo(indextema, tema, modulodiv, indexmodulo) {
|
||||
|
||||
if (tema.hasOwnProperty("tema")) {
|
||||
if (!tema.$.nombre) {
|
||||
alert("curso mal configurado");
|
||||
}
|
||||
var temadiv = '.menu_wtema' + indextema + indexmodulo;
|
||||
$(modulodiv).append('<div class="menu_wtema' + indextema + indexmodulo + '"><div class="btn_menu_padre">' + tema.$.nombre + '</div></div>');
|
||||
agregaTemaAlModulo(indextema, tema.tema, temadiv, indexmodulo);
|
||||
} else if ($.isArray(tema)) {
|
||||
$.each(tema, function(index, subs) {
|
||||
var temadiv = '.menu_wtema' + indextema + indexmodulo;
|
||||
agregaTemaAlModulo(index, subs, temadiv, indexmodulo);
|
||||
});
|
||||
} else {
|
||||
$(modulodiv).append('<div data-indexmenubtn="' + tema.$.index + '" class="btn_menu_tema">' + tema.txt + '</div>');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function cp() {
|
||||
circleProgressBar = new ProgressBar.Circle('.curso-progress', {
|
||||
strokeWidth: 8,
|
||||
color: '#FFF',
|
||||
trailWidth: 8,
|
||||
trailColor: 'rgba(0,0,0,0.125)',
|
||||
text: {
|
||||
autoStyleContainer: false
|
||||
},
|
||||
from: {
|
||||
color: '#DC4D54'
|
||||
},
|
||||
to: {
|
||||
color: '#C3360E'
|
||||
},
|
||||
step: function(state, circle) {
|
||||
circle.path.setAttribute('stroke', state.color);
|
||||
var value = Math.round(circle.value() * 100);
|
||||
if (value === 0) {
|
||||
circle.setText('0%');
|
||||
} else {
|
||||
circle.setText(value + "%");
|
||||
}
|
||||
|
||||
},
|
||||
fill: 'rgba(0,0,0,0.0)'
|
||||
});
|
||||
circleProgressBar.text.style.fontSize = '1rem';
|
||||
}
|
||||
|
||||
function recuperarSesion() {
|
||||
var tmpcur = recuperarAvance();
|
||||
cp();
|
||||
$(".wloader").hide();
|
||||
if (tmpcur == null) {
|
||||
__curso.temas = __temas;
|
||||
__curso.actual = 0;
|
||||
__curso.maxAvance = 0;
|
||||
__loadsco();
|
||||
} else {
|
||||
__curso = tmpcur;
|
||||
$.each(__curso.temas, function(index, val) {
|
||||
if (val.visitado) {
|
||||
$("[data-indexmenubtn='" + val.index + "']").removeClass("noclick");
|
||||
}
|
||||
});
|
||||
//preguntar al usuario si desea recuperar el avance
|
||||
Swal.fire({
|
||||
title: '<b>¿Recuperar el máximo avance en el curso?</b>',
|
||||
icon: 'info',
|
||||
showCloseButton: false,
|
||||
showCancelButton: true,
|
||||
cancelButtonText: 'No',
|
||||
confirmButtonText: 'Sí',
|
||||
showConfirmButton: true,
|
||||
allowOutsideClick: false,
|
||||
allowEscapeKey: false,
|
||||
allowEnterKey: false,
|
||||
target: '.wcontainer',
|
||||
customClass: 'popscoinit',
|
||||
onBeforeOpen: function() {},
|
||||
onOpen: function() {},
|
||||
onRender: function() {},
|
||||
onClose: function() {},
|
||||
onAfterClose: function() {}
|
||||
}).then(function(result) {
|
||||
if (result.value === true) {
|
||||
__curso.actual = __curso.maxAvance;
|
||||
} else {
|
||||
__curso.actual = 0;
|
||||
}
|
||||
__loadsco();
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function __reload() {
|
||||
__loadsco();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Description
|
||||
* @method __closemenu
|
||||
* @return
|
||||
*/
|
||||
function __closemenu() {
|
||||
$(".wmenu").removeClass('open');
|
||||
}
|
||||
|
||||
/**
|
||||
* Description
|
||||
* @method __openmenu
|
||||
* @return
|
||||
*/
|
||||
function __openmenu() {
|
||||
updateProgess();
|
||||
$(".wmenu").addClass('open');
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Description
|
||||
* @method __siguiente
|
||||
* @return
|
||||
*/
|
||||
function __siguiente() {
|
||||
if (!$(".btn__siguiente").hasClass('blocknav')) {
|
||||
__curso.actual++;
|
||||
__loadsco();
|
||||
}
|
||||
}
|
||||
|
||||
function __nextslide() {
|
||||
__curso.actual++;
|
||||
__loadsco();
|
||||
}
|
||||
|
||||
/**
|
||||
* Description
|
||||
* @method __atras
|
||||
* @return
|
||||
*/
|
||||
function __atras() {
|
||||
if (!$(".btn__atras").hasClass('blocknav')) {
|
||||
|
||||
__curso.actual--;
|
||||
__loadsco();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Description
|
||||
* @method __home
|
||||
* @return
|
||||
*/
|
||||
function __home() {
|
||||
__curso.actual = 1;
|
||||
__loadsco();
|
||||
}
|
||||
|
||||
/**
|
||||
* Description
|
||||
* @method __goto
|
||||
* @param {} index
|
||||
* @return
|
||||
*/
|
||||
function __goto(index) {
|
||||
__curso.actual = index;
|
||||
__loadsco();
|
||||
}
|
||||
|
||||
/**
|
||||
* Description
|
||||
* @method resizeRutine
|
||||
* @return
|
||||
*/
|
||||
function resizeRutine() {
|
||||
var selector = ".wcontainer";
|
||||
var width = $(selector).outerWidth();
|
||||
var height = $(selector).outerHeight();
|
||||
___scala = Math.min(((window.innerWidth * 100) / width), ((window.innerHeight * 100) / height)) / 100;
|
||||
var left = window.innerWidth / 2 - ($(selector).outerWidth() * ___scala) / 2;
|
||||
console.log(left);
|
||||
TweenMax.set(selector, {
|
||||
scale: ___scala,
|
||||
transformOrigin: "0% 0%"
|
||||
});
|
||||
$(selector).css('left', left + 'px');
|
||||
}
|
||||
|
||||
function vhToPixels(vh) {
|
||||
return Math.round(window.innerHeight / (100 / vh)) + 'px';
|
||||
}
|
||||
|
||||
function vwToPixels(vw) {
|
||||
return Math.round(window.innerWidth / (100 / vw)) + 'px';
|
||||
}
|
||||
|
||||
/**
|
||||
* Description
|
||||
* @method __loadsco
|
||||
* @return
|
||||
*/
|
||||
function __loadsco() {
|
||||
var sco = __curso.temas[__curso.actual];
|
||||
//ajuste de subtema solo aplica para mapfre responsivo
|
||||
$(".subtematxt").html(sco.text);
|
||||
var toleft = ($(".subtenma").outerWidth() - $(".btn-show-subs").outerWidth()) * -1;
|
||||
$(".subtenma").css("left", toleft);
|
||||
$(".subtenma").removeClass("abierto");
|
||||
$(".sco").removeClass('hasvideo');
|
||||
if (swal.isVisible()) {
|
||||
swal.close();
|
||||
}
|
||||
//
|
||||
if (__curso.actual > __curso.maxAvance) {
|
||||
__curso.maxAvance = __curso.actual;
|
||||
}
|
||||
$(".btn__atras, .btn__home, .btn__siguiente").addClass('noclick');
|
||||
$(".wloader").show();
|
||||
stopAllSounds();
|
||||
instruccion(0);
|
||||
if (sco.fullscreen == "1") {
|
||||
$(".subtenma").removeClass('d-flex');
|
||||
$(".subtenma").hide();
|
||||
$(".subtematxt").hide();
|
||||
$(".sco").addClass('scofullscreen');
|
||||
} else {
|
||||
$(".subtematxt").show();
|
||||
$(".subtenma").addClass('d-flex');
|
||||
$(".subtenma").show();
|
||||
$(".sco").removeClass('scofullscreen');
|
||||
}
|
||||
__currentSound = null;
|
||||
preload();
|
||||
}
|
||||
|
||||
|
||||
function preload() {
|
||||
var sco = __curso.temas[__curso.actual];
|
||||
updateNav();
|
||||
instruccion(0);
|
||||
$.ajax({
|
||||
url: sco.src,
|
||||
data: {
|
||||
nochache: 'cache-' + new Date().getTime()
|
||||
}
|
||||
}).done(function(response) {
|
||||
$(".sco").hide();
|
||||
$(".sco").html(response).show();
|
||||
$(".sco").find(".animated").on($(".sco").whichAnimationEvent(), function() {
|
||||
if ((!$(this).hasClass("pulse") || $(this).hasClass("flash"))) {
|
||||
$(this).removeClass("animated");
|
||||
}
|
||||
});
|
||||
$(".wloader").hide();
|
||||
console.info('file: ' + sco.src);
|
||||
$('.__tema').html(sco.txt);
|
||||
resizeRutine();
|
||||
|
||||
}).fail(function() {
|
||||
alert("Error al leer: " + sco.src);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Description
|
||||
* @method updateNav
|
||||
* @return
|
||||
*/
|
||||
function updateNav() {
|
||||
|
||||
if (__curso.temas.length == 1) {
|
||||
$(".btn__atras").hide();
|
||||
$(".btn__siguiente").hide();
|
||||
} else if (__curso.actual == 0) {
|
||||
$(".btn__atras").hide();
|
||||
$(".btn__siguiente").show();
|
||||
} else if (__curso.actual > 0 && __curso.actual < __curso.temas.length - 1) {
|
||||
$(".btn__atras").show();
|
||||
$(".btn__siguiente").show();
|
||||
} else {
|
||||
$(".btn__atras").show();
|
||||
$(".btn__siguiente").hide();
|
||||
}
|
||||
/*if (__curso.temas[__curso.actual].fullscreen) {
|
||||
$(".btn__siguiente").hide();
|
||||
}*/
|
||||
var slideactual = "";
|
||||
if (Number(__curso.actual + 1) < 10) {
|
||||
slideactual = "0" + Number(__curso.actual + 1);
|
||||
} else {
|
||||
slideactual = Number(__curso.actual + 1);
|
||||
}
|
||||
var totalslides = "";
|
||||
if (__curso.temas.length < 10) {
|
||||
totalslides = "0" + Number(__curso.temas.length);
|
||||
} else {
|
||||
totalslides = __curso.temas.length;
|
||||
}
|
||||
|
||||
$(".__paginacion").html(slideactual + "/" + totalslides);
|
||||
$("[data-indexmenubtn='" + __curso.actual + "']").removeClass("disabled");
|
||||
if ($("[data-indexmenubtn='" + __curso.actual + "']").length > 0) {
|
||||
$(".btn_menu_tema").removeClass("actual");
|
||||
$("[data-indexmenubtn='" + __curso.actual + "']").addClass('actual');
|
||||
}
|
||||
/* Calculo de progreso*/
|
||||
updateProgess();
|
||||
guardarAvance();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Description
|
||||
* @method updateProgess
|
||||
* @return
|
||||
*/
|
||||
function updateProgess() {
|
||||
var totales = __curso.temas.length;
|
||||
var visitados = $.grep(__curso.temas, function(element, index) {
|
||||
return element.visitado == true;
|
||||
});
|
||||
var porcentajeDeAvance = round((visitados.length) / totales);
|
||||
circleProgressBar.set(porcentajeDeAvance);
|
||||
if (porcentajeDeAvance == 1) {
|
||||
setLessonStatus("completed");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Description
|
||||
* @method whichTransitionEvent
|
||||
* @return
|
||||
*/
|
||||
$.fn.whichTransitionEvent = function() {
|
||||
var t,
|
||||
el = document.createElement("fakeelement");
|
||||
|
||||
var transitions = {
|
||||
"transition": "transitionend",
|
||||
"OTransition": "oTransitionEnd",
|
||||
"MozTransition": "transitionend",
|
||||
"WebkitTransition": "webkitTransitionEnd"
|
||||
}
|
||||
|
||||
for (t in transitions) {
|
||||
if (el.style[t] !== undefined) {
|
||||
return transitions[t];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Description
|
||||
* @method whichAnimationEvent
|
||||
* @return
|
||||
*/
|
||||
$.fn.whichAnimationEvent = function() {
|
||||
var t,
|
||||
el = document.createElement("fakeelement");
|
||||
|
||||
var animations = {
|
||||
"animation": "animationend",
|
||||
"OAnimation": "oAnimationEnd",
|
||||
"MozAnimation": "animationend",
|
||||
"WebkitAnimation": "webkitAnimationEnd"
|
||||
}
|
||||
|
||||
for (t in animations) {
|
||||
if (el.style[t] !== undefined) {
|
||||
return animations[t];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Howler.mobileAutoEnable = true;
|
||||
Howler.autoSuspend = false;
|
||||
/**
|
||||
* Description
|
||||
* @method newSoundAuto
|
||||
* @param {} src
|
||||
* @return snd
|
||||
*/
|
||||
function newSoundAuto(src) {
|
||||
var snd = new Howl({
|
||||
src: [src + "?nochache=" + new Date().getTime()],
|
||||
autoplay: true
|
||||
});
|
||||
return snd;
|
||||
}
|
||||
|
||||
/**
|
||||
* Description
|
||||
* @method newSound
|
||||
* @param {} src
|
||||
* @return snd
|
||||
*/
|
||||
function newSound(src) {
|
||||
var snd = new Howl({
|
||||
src: [src],
|
||||
autoplay: false
|
||||
});
|
||||
return snd;
|
||||
}
|
||||
|
||||
/**
|
||||
* Description
|
||||
* @method stopAllSounds
|
||||
* @return
|
||||
*/
|
||||
function stopAllSounds() {
|
||||
if (Array.isArray(Howler._howls)) {
|
||||
$.each(Howler._howls, function(index, sound) {
|
||||
sound.stop();
|
||||
sound.off("end");
|
||||
sound.off("load");
|
||||
sound.off();
|
||||
});
|
||||
}
|
||||
if (__currentSound != null) {
|
||||
__currentSound.stop();
|
||||
__currentSound.off("load");
|
||||
__currentSound.off("end");
|
||||
__currentSound = null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Description
|
||||
* @method stopAllSoundsAndPlay
|
||||
* @param {} audio
|
||||
* @return
|
||||
*/
|
||||
function stopAllSoundsAndPlay(audio) {
|
||||
if (Array.isArray(Howler._howls)) {
|
||||
$.each(Howler._howls, function(index, sound) {
|
||||
sound.stop();
|
||||
});
|
||||
}
|
||||
audio.play();
|
||||
console.info('audio src: ' + audio._src);
|
||||
if (__currentSound != null) {
|
||||
__currentSound.off("end");
|
||||
}
|
||||
__currentSound = audio;
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Description
|
||||
* @method getCurrentSound
|
||||
* @return __currentSound
|
||||
*/
|
||||
function getCurrentSound() {
|
||||
return __currentSound;
|
||||
}
|
||||
|
||||
/**
|
||||
* Description
|
||||
* @method recuperarAvance
|
||||
* @return
|
||||
*/
|
||||
function recuperarAvance() {
|
||||
if (__curso.modoDesarrollo && !pipwerks.SCORM.connection.isActive) {
|
||||
sessionStorage.removeItem(__curso.databasename);
|
||||
//return JSON.parse(sessionStorage.getItem(__curso.databasename));
|
||||
return null;
|
||||
} else if (pipwerks.SCORM.connection.isActive) {
|
||||
var _recuperado = JSON.parse(getSuspendData());
|
||||
|
||||
if (_recuperado != null) {
|
||||
if (_recuperado.temas.length == __temas.length) {
|
||||
__curso.actual = _recuperado.actual;
|
||||
__curso.maxAvance = _recuperado.maxAvance;
|
||||
__curso.modoDesarrollo = _recuperado.modoDesarrollo;
|
||||
$.each(_recuperado.temas, function(index, val) {
|
||||
if (index < __temas.length) {
|
||||
__temas[index].visitado = val.visitado;
|
||||
}
|
||||
});
|
||||
__curso.temas = __temas;
|
||||
return __curso;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
|
||||
} else if (sessionStorage.getItem(__curso.databasename)) {
|
||||
return JSON.parse(sessionStorage.getItem(__curso.databasename));
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Description
|
||||
* @method guardarAvance
|
||||
* @return
|
||||
*/
|
||||
function guardarAvance() {
|
||||
if (pipwerks.SCORM.connection.isActive) {
|
||||
var _tosave = new Object();
|
||||
_tosave.actual = __curso.actual;
|
||||
_tosave.maxAvance = __curso.maxAvance;
|
||||
_tosave.modoDesarrollo = __curso.modoDesarrollo;
|
||||
_tosave.temas = new Array();
|
||||
$.each(__curso.temas, function(index, val) {
|
||||
var _tema = new Object();
|
||||
_tema.visitado = val.visitado;
|
||||
_tosave.temas.push(_tema);
|
||||
|
||||
});
|
||||
setSuspendData(JSON.stringify(_tosave));
|
||||
} else {
|
||||
sessionStorage.setItem(__curso.databasename, JSON.stringify(__curso));
|
||||
}
|
||||
}
|
||||
|
||||
function round(num) {
|
||||
var decimales = 2;
|
||||
var signo = (num >= 0 ? 1 : -1);
|
||||
num = num * signo;
|
||||
if (decimales === 0) //con 0 decimales
|
||||
return signo * Math.round(num);
|
||||
// round(x * 10 ^ decimales)
|
||||
num = num.toString().split('e');
|
||||
num = Math.round(+(num[0] + 'e' + (num[1] ? (+num[1] + decimales) : decimales)));
|
||||
// x * 10 ^ (-decimales)
|
||||
num = num.toString().split('e');
|
||||
return signo * (num[0] + 'e' + (num[1] ? (+num[1] - decimales) : -decimales));
|
||||
}
|
||||
|
||||
|
||||
|
||||
function getRandomInt(min, max) {
|
||||
min = Math.ceil(min);
|
||||
max = Math.floor(max);
|
||||
return Math.floor(Math.random() * (max - min + 1)) + min;
|
||||
}
|
||||
|
||||
$.fn.loadsvg = function(svgUrl) {
|
||||
var div = $(this);
|
||||
$.get(svgUrl, function(data) {
|
||||
var data = new XMLSerializer().serializeToString(data.documentElement)
|
||||
div.html(data);
|
||||
div.trigger("complete", [data]);
|
||||
});
|
||||
}
|
||||
|
||||
function rotateCard(btn) {
|
||||
var $card = $(btn).closest('.card-container');
|
||||
console.log($card);
|
||||
if ($card.hasClass('hover')) {
|
||||
$card.removeClass('hover');
|
||||
} else {
|
||||
$card.addClass('hover');
|
||||
}
|
||||
}
|
||||
|
||||
$.fn.addRandomClassAnimation = function() {
|
||||
var animaciones = ['bounce', 'shake', 'wobble', 'bounceInLeft', 'fadeIn', 'fadeInLeftBig', 'fadeInUpBig', 'rotateIn', 'rotateInUpRight', 'rollIn', 'zoomInLeft', 'flash', 'headShake', 'jello', 'bounceInRight', 'fadeInDown', 'fadeInRight', 'rotateInDownLeft', 'zoomInRight', 'pulse', 'swing', 'bounceIn', 'bounceInUp', 'fadeInDownBig', 'fadeInRightBig', 'flipInX', 'lightSpeedIn', 'rotateInDownRight', 'zoomIn', 'zoomInUp', 'slideInRight', 'rubberBand', 'tada', 'bounceInDown', 'fadeInLeft', 'fadeInUp', 'flipInY', 'rotateInUpLeft', 'jackInTheBox', 'zoomInDown', 'slideInUp'];
|
||||
$(this).addClass('animated');
|
||||
animaciones = animaciones.sort(function() {
|
||||
return 0.5 - Math.random()
|
||||
});
|
||||
var animation = animaciones[0];
|
||||
$(this).addClass(animation);
|
||||
var animationEnd = (function(el) {
|
||||
var animations = {
|
||||
animation: 'animationend',
|
||||
OAnimation: 'oAnimationEnd',
|
||||
MozAnimation: 'mozAnimationEnd',
|
||||
WebkitAnimation: 'webkitAnimationEnd',
|
||||
};
|
||||
|
||||
for (var t in animations) {
|
||||
if (el.style[t] !== undefined) {
|
||||
return animations[t];
|
||||
}
|
||||
}
|
||||
})(document.createElement('div'));
|
||||
$(this).one(animationEnd, resizeRutine);
|
||||
}
|
||||
$.fn.changeOrderOfElements = function() {
|
||||
var parent = $(this);
|
||||
var divs = parent.children();
|
||||
parent.html("");
|
||||
while (divs.length) {
|
||||
parent.append(divs.splice(Math.floor(Math.random() * divs.length), 1)[0]);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user