/*
 * This script is writen by Michael Buckley.
 * Home page: http://codefisher.org/web_applications/slide_over

 * The code contained in these files are licensed under the
 * Attribution-ShareAlike 3.0 Unported. 

 * Furthermore;
 * You may not claim the works as your own.
 * You must provide a link back to codefisher.org when using on a website.
 * You may not redistribute these as a package as-is..
 * You must seek approval for commercial purposes, and for applications. 
 * 
 * Please don't remove this from this file.
 * if you want to contact me please use my contact page
 * http://codefisher.org/email 
 *
 * If you modify this script please give me credit for the original script.
 *
 * Linking back to me should you use this script is appreicated and required
 */

var images = new Array();
var text = new Array();

/*  Change the array below to your own image and text */

images[0] = 'http://media.codefisher.org/images/design/riverbank.png';
text[0] = 'Codefisher.org - an extension resource';
images[1] = 'http://media.codefisher.org/images/design/codefisher.png';
text[1] = 'Codefisher.org - an extension resource';
images[2] = 'http://media.codefisher.org/images/design/accessfirefox.png';
text[2] = 'Access Firefox Because the internet is for everyone';
images[3] = 'http://media.codefisher.org/images/design/shadow.png';
text[3] = 'Even in the brightest places there is some Shadow';
images[4] = 'http://media.codefisher.org/images/design/sunset.png';
text[4] = 'See the template sparkle in Sunset';

/* don't edit the below unless you know what you are doing */

var slide_image;
var slide_box;
var pre_loaded = new Array();
var img_clone;
var current_image = 0;

var first_image_button;
var next_image_button;
var previous_image_button;
var last_image_button;

// start slider over
function init_slide_over() {
 slide_image = document.getElementById('slide-over');
 if(!slide_image.complete){
  setEventListener(slide_image,'load',init_slide_over,true);
  return;
 }
 pre_loaded[0] = true;
 slide_box = document.getElementById('slide-over-box');
 img_clone = document.createElement('img');
 img_clone.style.display = 'none';

 preload_image(1);
 preload_image(images.length-1);

 first_image_button = document.getElementById('slide-first');
 next_image_button = document.getElementById('slide-next');
 previous_image_button =  document.getElementById('slide-previous');
 last_image_button = document.getElementById('slide-last');

 setEventListener(first_image_button,'click',change_image,true);
 setEventListener(previous_image_button,'click',change_image,true);
 setEventListener(document.getElementById('slide-last'),'click',change_image,true);
 setEventListener(document.getElementById('slide-next'),'click',change_image,true);

 set_button_visability();
}

function preload_image(aNumber){
 if(images[aNumber]){
  var aImage = img_clone.cloneNode(true);
    aImage.src = images[aNumber];
  slide_box.appendChild(aImage);
  pre_loaded[aNumber] = true;
 }
}

function set_button_visability(){
 // make visiable then hide as needed.
 next_image_button.className = '';
 previous_image_button.className = '';

 if(images.length == 1){
  next_image_button.className = 'hidden';
  previous_image_button.className = 'hidden';
  return;
 }
 if(current_image == 0){
  previous_image_button.className = 'hidden';
 }
 if(current_image == images.length-1){
  next_image_button.className = 'hidden';
 }
}

function change_image(aEvent){
 var button = getButton(aEvent);
 switch(button){
  case first_image_button:
   current_image = 0;
  break;
  case next_image_button:
   current_image = current_image + 1;
   if(!pre_loaded[current_image + 1]) {
    preload_image(current_image + 1);
   }
  break;
  case previous_image_button:
   current_image = current_image - 1;
   if(!pre_loaded[current_image - 1]) {
    preload_image(current_image - 1);
   }
  break;
  case last_image_button:
   current_image = images.length - 1;
   if(!pre_loaded[current_image - 1]) {
    preload_image(current_image - 1);
   }
  break;
 }
 slide_image.src = images[current_image];
 if(text[current_image]){
  slide_image.alt = text[current_image];
 }
 set_button_visability();
}

function getButton(aEvent){
 if(aEvent.srcElement){
  var target = aEvent.srcElement;
 } else {
  var target = aEvent.target;
 }
 return target;
}

// corss browser event setter
function setEventListener(item,event,func,bool) {
 if(item.addEventListener){
	item.addEventListener(event,func,bool);
 } else {
	item.attachEvent('on'+event,func,bool);
 }
}

setEventListener(window,'load',init_slide_over,true);
