+ self.objectDeactivate = function (o) {
+ if (!(o.hasClass("sws-inactive-object"))){
+ o.addClass("sws-inactive-object").removeClass("sws-active-object");
+ return true;
+ };
+ return false;
+ };
+
+ self.updateFooter = function (o) {
+ var footer = o.find(".sws-footer");
+ if (footer.length && (footer.children("*").length == 0)) {
+ var i = SWS.Presentation.getCurrentSlide();
+ var cur = $( "<span class='sws-current-slide-number'>"
+ + (i + 1)
+ +"</span>");
+ var sep = $( "<span class='sws-slide-num-sep' />");
+ var tot = $( "<span class='sws-last-slide-number'>"
+ + (SWS.Presentation.getNumSlides())
+ +"</span>");
+ footer.append(cur).append(sep).append(tot);
+ };
+ };
+ self.updateHeader = function (o) {};
+};
+SWS.ConfigBuilder = function () {
+ var self = this;
+ self['sws-object-activate'] = SWS.Templates.objectActivate;
+ self['sws-object-deactivate'] = SWS.Templates.objectDeactivate;
+ self['sws-slide-change'] = SWS.Templates.slideChange;
+ self['sws-update-footer'] = SWS.Templates.updateFooter;
+ self['sws-update-header'] = SWS.Templates.updateHeader;
+};
+
+SWS.Defaults = new SWS.ConfigBuilder ();
+
+SWS.Config = new SWS.ConfigBuilder ();
+
+
+SWS.Effects = new function () {
+ var self = this;
+
+ self.objectDeactivateFadeOut = function (o) {
+ if (o.is("embed")) return;
+ o.animate({'opacity': '0'}, 200,
+ function () {
+
+ SWS.Templates.objectDeactivate(o);
+ });
+ };
+
+ self.objectActivateFadeIn = function (o) {
+
+ if (SWS.Templates.objectActivate(o)){
+ o.animate({'opacity': '1' }, 200);
+ };
+
+ };
+
+ self.slideChangeHorizontalFlip = function (from, to){
+ var f = SWS.Presentation.getSlide(from);
+ var t = SWS.Presentation.getSlide(to);
+ f.animate({ 'left': '50%', 'width': '0pt', 'opacity':'0' }, 150,
+ function () {
+ SWS.Templates.slideDeactivate(f);
+ f.css({'left':'0%', 'width': '100%'});
+ t.css({ 'left': '50%', 'width': '0pt','opacity':'0' });
+ SWS.Templates.slideActivate(t);
+ t.animate({'left':'0%', 'width': '100%','opacity':'1'});
+ });
+ };
+ self.slideChangeFadeOutIn = function (from, to) {
+ var f = SWS.Presentation.getSlide(from);
+ var t = SWS.Presentation.getSlide(to);
+ f.animate({ 'opacity': '0'}, 150,
+ function () { SWS.Templates.slideDeactivate(f);
+ SWS.Templates.slideActivate(t);
+ t.css('opacity', '0');
+ t.animate({ 'opacity': '1'}, 150);
+ });
+ };
+ self.slideChangeHorizontalSlide = function (from, to) {
+ var f = SWS.Presentation.getSlide(from);
+ var t = SWS.Presentation.getSlide(to);
+ if (from < to) {
+ t.css('left', '100%');
+ t.css('opacity', '1');
+ SWS.Templates.slideActivate(t);
+ f.animate({ 'left': '-100%' }, 250, function () { SWS.Templates.slideDeactivate(f);
+ f.css('opacity', '0');
+ t.animate({ 'left': '0%' }, 250);
+ });
+ } else {
+ t.css('left', '-100%');
+ SWS.Templates.slideActivate(t);
+ f.animate({ 'left': '100%' }, 250, function () { SWS.Templates.slideDeactivate(f);
+ f.css('opacity', '0');
+ });
+ t.css('opacity', '1');
+ t.animate({ 'left': '0%' }, 250);
+ };
+ };
+
+
+ self.slideChangeVerticalSlide = function (from, to) {
+ var f = SWS.Presentation.getSlide(from);
+ var t = SWS.Presentation.getSlide(to);
+ if (from < to) {
+ t.css('top', '100%');
+ SWS.Templates.slideActivate(t);
+ f.animate({ 'top': '-100%' }, 250, function () { SWS.Templates.slideDeactivate(f); });
+ t.animate({ 'top': '0%' }, 250);
+ } else {
+ t.css('top', '-100%');
+ SWS.Templates.slideActivate(t);
+ f.animate({ 'top': '100%' }, 250, function () { SWS.Templates.slideDeactivate(f); });
+ t.animate({ 'top': '0%' }, 250);
+ };
+ };
+
+};
+
+SWS.Fullscreen = new function () {
+ var self = this;
+
+ if (SWS.Utils.isUndefined(document.fullScreen)) {
+ if (SWS.Utils.isUndefined(document.mozfullScreen)) {
+ self.status = function () { return document.webkitIsFullScreen; };
+ self.enter = function(e) {
+ e.webkitRequestFullScreen();
+ };
+ self.exit = function () {
+ document.webkitCancelFullScreen();
+ };
+
+ } else {
+ self.status = function () { return document.mozfullScreen; };
+ self.enter = function(e) {
+ e.mozRequestFullScreen();
+ };
+ self.exit = function () {
+ document.mozCancelFullScreen();
+ };
+
+ };
+ } else {
+ self.status = function () { return document.fullScreen; };
+ self.enter = function(e) {
+ e.requestFullScreen();
+ };
+ self.exit = function () {
+ document.cancelFullScreen();
+ };