var ssData = new Array();

function sb_get_ss(count) {
 var ss;
 if(!ssData[count]) {
  ss = new Object();
  ssData[count] = ss;
  ss.count = count;
  ss.counter = 1;
  ss.speed = 3000;
 }
 else {
  ss = ssData[count];
 }
 return ss;
}

function sb_register_slide(count, src, title, description, url) {
 var ss = sb_get_ss(count);
 if(!ss.slides) {
   ss.slides = new Array();
 }
 ss.slides[ss.slides.length] = this;
 this.src = src;
 this.title = title;
 this.url = url;
 this.description = description;
 this.ss = ss;

 this.slide = sb_set_slide;

 if(src) {
  var img = new Image();
  img.src = src;
 }
}


function sb_load_slideshow(count, speed) {
 var ss = sb_get_ss(count);
 ss.speed = parseInt(speed);
 sb_slideshow_start(count);
}
function sb_slideshow_start(count) {
 var ss = sb_get_ss(count);

 var play;
 if(play = document.getElementById('slideshow_play_'+count)) {
  play.style.display = 'none';
  document.getElementById('slideshow_pause_'+count).style.display = '';
 }

 if(ss.interval) {
  clearInterval(ss.interval);
  ss.interval  = null;
 }

 ss.interval = setInterval(function() {sb_slideshow_next(count)}, ss.speed+(parseInt(count) * 25));
}


function sb_slideshow_pause(count) {
 var ss = ssData[count];
 var play;

 if(play =  document.getElementById('slideshow_play_'+count)) {
  play.style.display = '';
  document.getElementById('slideshow_pause_'+count).style.display = 'none';
 }
 clearInterval(ss.interval);
}

function sb_slideshow_prev(count) {
 var ss = ssData[count];
 if(!ss.slides[ss.counter]) {
  ss.counter = ss.slides.length - 1;
 }
 var slide = ss.slides[ss.counter];
 slide.slide();

 ss.counter--;

}

function sb_slideshow_play(count) {
 sb_slideshow_next(count);
 sb_slideshow_start(count);
}

function sb_slideshow_next(count) {
 var ss = ssData[count];

 if(!ss.slides[ss.counter]) {
  ss.counter = 0;
 }

 var slide = ss.slides[ss.counter];
 slide.slide()
 ss.counter++;
}

function sb_set_slide() {
 var img         = document.getElementById('slideshow_img_'+this.ss.count);
 var title       = document.getElementById('slideshow_title_'+this.ss.count);
 var description = document.getElementById('slideshow_description_'+this.ss.count);


 if(this.src) {
  img.src = this.src;
  if(this.url) {
   img.onclick = new Function("window.location.href='"+this.url+"'");
   img.style.cursor = 'pointer';
   img.onmouseover = new Function("sb_slideshow_pause("+this.ss.count+")");;
   img.onmouseout = new Function("sb_slideshow_play("+this.ss.count+")");;
  }
  else {
   img.onclick = img.onmouseover = img.onmouseout = null;
   img.style.cursor = '';
  }
  img.style.display = '';
 } 
 else {
  img.style.display = 'none';
 }
 if(title) {
  title.innerHTML = this.title;
 }
 if(description) {
  description.innerHTML = this.description;
 }
}
