Namespace object.
*/
-var SWS = {};
+var SWS = SWS || {};
SWS.Templates = new function () {
var self = this;
+ self.controlPanel = "<div id='sws-control-panel'>\
+<a onclick='SWS.Presentation.goToSlide(SWS.Presentation.firstSlide());'>◀◀◀</a>\
+<a onclick='SWS.Presentation.previousSlide();SWS.Presentation.refresh();'>◀◀ </a>\
+<a onclick='SWS.Presentation.previous();SWS.Presentation.refresh();'>◀</a>\
+<a onclick='SWS.Presentation.next();SWS.Presentation.refresh();'>▶</a>\
+<a onclick='SWS.Presentation.nextSlide();SWS.Presentation.refresh();'>▶▶</a>\
+<a rel='Last slide' onclick='SWS.Presentation.goToSlide(SWS.Presentation.lastSlide());'>▶▶▶</a>\
+</div>";
self.slideActivate = function (o) {
if (!(o.hasClass("sws-active-slide"))){
o.removeClass("sws-inactive-slide").addClass("sws-active-slide");
+ (i + 1)
+"</span>");
var sep = $( "<span class='sws-slide-num-sep' />");
- var tot = $( "<span class='sws-current-slide-number'>"
+ var tot = $( "<span class='sws-last-slide-number'>"
+ (SWS.Presentation.getNumSlides())
+"</span>");
footer.append(cur).append(sep).append(tot);
var self = this;
self.objectDeactivateFadeOut = function (o) {
- o.animate({'opacity': '0'}, 150,
+ o.animate({'opacity': '0'}, 200,
function () { SWS.Templates.objectDeactivate(o)});
};
self.objectActivateFadeIn = function (o) {
if (SWS.Templates.objectActivate(o)){
- o.animate({'opacity': '1' }, 150);
+ o.animate({'opacity': '1' }, 200);
};
};
if (typeof(Storage)!=="undefined"){
self.getCurrentSlide = function () {
//unary + casts to integer
- var i = +(sessionStorage.current_slide);
+ var i = +(sessionStorage.getItem("current_slide"));
if (!(i >= 0 && i < self.getNumSlides())){
return 0;
} else {
};
self.setCurrentSlide = function (i) {
- sessionStorage.current_slide = i;
+ sessionStorage.setItem("current_slide", i);
};
} else {
};
self.firstSlide = function () { return 0; };
self.lastSlide = function () { return self.getNumSlides() - 1; };
-
self.refresh = function () {
/* block upcoming input event until all animations are finished */
_disable_input_events = true;
var slide_change = (from_slide_num != to_slide_num);
var info = to_slide.data("sws-frame-info");
+ SWS.Config['sws-update-header'](to_slide);
+ SWS.Config['sws-update-footer'](to_slide);
+
if (slide_change) {
//Launch a slide transition:
SWS.Config['sws-slide-change'](from_slide_num, to_slide_num);
watch_slide_anim = true;
- SWS.Config['sws-update-header'](to_slide);
- SWS.Config['sws-update-footer'](to_slide);
for (var i = 0; i < info.callbacks.at_slide.length;i++){
info.callbacks.at_slide[i](to_slide);
};
var custom = info.custom;
var real_slide = to_slide.children(".sws-slide");
- to_slide.children(".sws-slide").find("*").andSelf().each(function (i){
+ real_slide.find("*").andSelf().each(function (i){
var frameset = $(this).data("sws-frame-set") || {};
if (frameset[cur])
SWS.Config['sws-object-activate']($(this));
self.nextSlide = function () {
self.setCurrentSlide(Math.min(self.getCurrentSlide()+1,
self.lastSlide()));
+ self.setCurrentFrame(self.firstFrame());
};
self.previousSlide = function () {
self.setCurrentSlide(Math.max(self.getCurrentSlide()-1,
self.firstSlide()));
+ self.setCurrentFrame(self.firstFrame());
};
self.getFrameInfo = function () {
self.next = function () {
var i = self.getCurrentFrame();
- if (i == self.lastFrame())
+ if (i == self.lastFrame()) {
self.nextSlide();
- else
+ self.setCurrentFrame(self.firstFrame());
+ } else
self.nextFrame();
};
self.previousFrame();
};
+ self.goToSlide = function (s, f) {
+ if (SWS.Utils.isUndefined(f))
+ f = 0;
+ if (!(s >= self.firstSlide() && s <= self.lastSlide())) return;
+ self.setCurrentSlide(s);
+ if (!(f >= self.firstFrame() && f <= self.lastFrame())) f = 0;
+ self.setCurrentFrame(f);
+ self.refresh();
+ };
+
+ self.cycleStyle = function() {
+ var styles = $("head").children('link[rel$="stylesheet"][title]');
+ var j = styles.index(styles.filter(':not(:disabled)'));
+ styles[j].disabled = true;
+ if (++j == styles.length) j = 0;
+ styles[j].disabled = false;
+ };
+
self.inputHandler = function (event) {
if (_disable_input_events) return;
switch (event.which) {
case 32: /* space */
case 39: /* -> */
- case 1: /* mouse button 1 */
+
self.next();
break;
case 34: /* PgDown */
case 80: /* p */
self.previousSlide();
break;
+ case 83: /* s */
+ self.cycleStyle();
+ return;
+ case 67: /* c */
+ $("#sws-control-panel").toggle();
default:
return;
};
}
};
- var specials = slide.find('*[class*="sws-onslide-"]').find("*").andSelf();
- specials.each(function(i) {
+ var specials = null;
+
+ slide.find('*[class*="sws-onframe-"]').each(function(_){
var cls = $(this).attr('class');
- var idx = cls.indexOf("sws-onslide-");
+ var idx = cls.indexOf("sws-onframe-");
if (idx >= 0) {
var end = cls.indexOf(" ", idx);
end = (end == -1) ? cls.length : end;
var o = SWS.Utils.parseFrameSpec(spec);
for(var f in o)
if (f > last_frame) last_frame = f;
-
- if (!SWS.Utils.isEmpty(o))
- $(this).data("sws-frame-set", o);
+ $(this).find("*").andSelf().each(function(_){
+ if (!SWS.Utils.isEmpty(o))
+ $(this).data("sws-frame-set", o);
+ if (specials)
+ specials.add($(this));
+ else
+ specials = $(this);
+ });
};
});
};
- function init () {
+ self.init = function () {
+ console.log("inited");
+ $(window).bind('storage', function (e) {
+ console.log(e);
+ });
_total_slides = $(".sws-slide").length;
$(document).keydown(self.inputHandler);
- $(document).mousedown(self.inputHandler);
-
+ $("body").append($(SWS.Templates.controlPanel));
var cur = self.getCurrentSlide();
$(".sws-slide").each (function (i) {
var par = $(this).parent();
if (i == cur) {
canvas
.addClass("sws-active-slide")
- .removeClass("sws-inacitve-slide");
+ .removeClass("sws-inactive-slide");
} else {
canvas
.addClass("sws-inactive-slide")
};
- self.init = function () {
- $(document).ready(init);
- };
-
-
-
-
};