- _self.getCurrentSlide = function () { return current_slide; };
- _self.setCurrentSlide = function (i) { _current_slide = i; };
-
- };
- _self.firstSlide = function () { return 0; };
- _self.lastSlide = function () { return _self.getNumSlides() - 1; };
- _self.refresh = function () {
- var cur = _self.getCurrentSlide();
- $(".canvas").each (function (i) {
- if (i == cur){
- $(this).removeClass("other_slides").addClass("current_slide");
- var info = $(this).data("frames");
- var frames = info.frames;
- var upto = info.current;
- var custom = info.custom;
- for(var j = 0; j < Math.max(frames.length, custom.length); j++) {
- for (var k = 0; k < frames[j].length; k++) {
- if (j < upto || frames[j][k].hasClass("footer")){
-
- frames[j][k].removeClass("inactive_frame").addClass("active_frame");
-
- } else if (j == upto) {
-
- frames[j][k].removeClass("inactive_frame").addClass("current_frame");
-
- } else {
- frames[j][k].removeClass("active_frame").removeClass("current_frame").addClass("inactive_frame");
- };
- };
- var callbacks;
- if (j == upto && (callbacks = custom[j])) {
- for (var k = 0; k < callbacks.length; k++)
- callbacks[k]($(this));
- };
+ self.getCurrentSlide = function () { return current_slide; };
+ self.setCurrentSlide = function (i) { _current_slide = i; };
+
+ };
+ self.firstSlide = function () { return 0; };
+ self.lastSlide = function () { return self.getNumSlides() - 1; };
+
+ self.refresh = function () {
+ var to_slide = $(".sws-canvas")[self.getCurrentSlide()];
+ var from_slide = $(".sws-active-slide")[0];
+
+ if (!(to_slide === from_slide)) {
+ templates['sws-template-slide-deactivate'](
+ $(from_slide),
+ function (o){
+ o.removeClass("sws-active-slide")
+ .addClass("sws-inactive-slide");
+ templates['sws-template-slide-activate'](
+ $(to_slide).removeClass("sws-inactive-slide")
+ .addClass("sws-active-slide"),
+ function (_){
+ });
+ });
+
+ };
+ var info = $(to_slide).data("sws-frame-info");
+ var cur = info.current;
+ var custom = info.custom;
+
+ $(to_slide).find("*").each (function (i) {
+ var fcur = "f" + cur;
+ var frameset = $(this).data("sws-frame-set") || {};
+ if (frameset[fcur]) {
+ if (!($(this).hasClass("sws-active-frame"))) {
+ templates['sws-template-frame-activate'](
+ $(this).removeClass("sws-inactive-frame")
+ .addClass("sws-active-frame"),
+ function (_){ });
+
+ };
+
+ } else {
+ if (!($(this).hasClass("sws-inactive-frame"))) {
+ templates['sws-template-frame-deactivate'](
+ $(this),
+ function (o){
+ o.removeClass("sws-active-frame")
+ .addClass("sws-inactive-frame");
+ });
+