// http://occidentsystems.com/code/slideshow (c) Occident Systems 2008 / LGPL
// Modified by Art4orm on 2008-05-05 -- Need to re-create simple functionality with in-house code.

SlideShow = Class.create({
  initialize: function(e,a) {
   this.el=$(e);
   this.paused=0;
   this.big=0;
   this.big_type='lightview';
   (this._oiu(a['fade']))?this.fade=1:this.fade=a['fade'];
   (this._oiu(a['direction']))?this.direction=1:this.direction=a['direction'];
   this.slide=0;
   this.slides=a['slides'];
   (this._oiu(a['prefix']))?this.prefix='':this.prefix=a['prefix'];
   (this._oiu(a['suffix']))?this.suffix='':this.suffix=a['suffix'];
   (this._oiu(a['delay']))?this.delay=3:this.delay=a['delay'];
   (this._oiu(a['mousepause']))?this.mp=1:this.mp=a['mousepause'];
   var pl=[];
   for(var i=0;i<this.slides.length;i++){
    pl[i]=new Image(1,1);
    pl[i].src=this.prefix+this.slides[i]+this.suffix;
   }
   
  },
  _oiu:function(x){return Object.isUndefined(x);},
  next: function(){
   if(!this.paused){
    this.slide++;
    this._slide_check();
    this._update();
   }
  },
  prev: function(){
   if(!this.paused){
    this.slide--;
    this._slide_check();
    this._update();
   }
  },
  _slide_check: function() {
   if(this.direction) {
    if(this.slide>=this.slides.length||this.slide<0){ this.slide=0; }
   }
   else {
    if(this.slide<0||this.slide>=this.slides.length) { this.slide=this.slides.length-1; }
   }
  },
  _update: function() { this.el.src=this.prefix+this.slides[this.slide]+this.suffix; },
  
  start: function(){
   this._executor = new PeriodicalExecuter(function(){
    if(this.direction) { this.next(); } else { this.prev(); }
   }.bind(this),this.delay);
  },
  stop: function(){
   if(this._executor) { this._executor.stop(); }
  },
  toggle: function(){
   this.paused=!this.paused;
  },
  pause: function(){
   this.paused=1;
  },
  unpause: function(){
   this.paused=0;
  },
  _pi: function(url) {
   AutoClose=false;
  }
});
