//Original code by Bauduin Raphael www.madb.net/slideshow
//Code modified by Maciej Ruckgaber
YAHOO.namespace("gbs");
YAHOO.gbs.slideshow = function (container, o) {
	this.container = YAHOO.util.Dom.get(container);
	this.frames = [];
	//add cached frames
	var collection = YAHOO.util.Dom.getElementsByClassName("content-frame", 'div', this.container);
  var ceffect = o.effect !== undefined ? o.effect : YAHOO.widget.ContainerEffect.FADE;
  var cduration = o.duration ? o.duration : 0.5;	
  
  if(collection.length == 0)
    alert("no photoslides");
  
  var control = collection.length - 1;
  for (var i=0; i<collection.length; i++)
  {
    this.frames[control-i] = new YAHOO.widget.Overlay(collection[i],{visible:false});
    this.frames[control-i].render();
  }

  if (o.interval)
    this.interval = o.interval
  else
    this.interval = 4000

  this.init();
}


YAHOO.gbs.slideshow.prototype = {
	init: function()
		{
			this.active_frame = this.frames[0];
		},
	get_active_frame : function()
		{
			return this.active_frame;
		},
	get_frame_index: function(frame)
		{
			for(var i=0; i<this.frames.length;i++)
			{
				if (this.frames[i]==frame)
					return i;
			}
			return -1;
		},
	shift_frame : function()
		{
			var current_index = this.get_frame_index(this.get_active_frame());
      var last_frame = this.frames.length - 1;

			if (current_index<0 || current_index == last_frame)
      {
				this.active_frame = this.frames[0];
      }
      else
      {
        this.active_frame = this.frames[current_index+1];
      }
		},
	transition: function()
		{
      var oldframe = this.get_active_frame();
      oldframe.hide();
      this.shift_frame();
      var newframe = this.get_active_frame();
 //     newframe.bringToTop();
      newframe.show();
		}
	,
	loop: function()
		{
      if(this.frames.length == 0)
        return;

			var self;
			self =this;
			this.loop_interval = setInterval( function(){ self.transition();}, this.interval );
		}
 }	

