var slides = {1:["images/client/home_screen_tactile_ipad.jpg", "images/client/home_screen_dstv_epg.jpg", "images/client/home_screen_johnny_walker.jpg", "images/client/home_screen_at_home.jpg", "images/client/home_screen_global_moguls.jpg"]};
var anchors = {1:["tactile_ipad", "dstv_epg", "jw", "at_home", "global_moguls"]};
var prepared = {};
var slidesIndex = {1:-1};
var timers = {};
var disabled = {};
var hasTimer = {};
var holderWidth = 738;
var animateTime = 700;
var slideTime = 5000;
$(
    function () {
      prepareSlides(1, true);
    }
 );
function prepareSlides(n, usesTimer) {
  var urls = slides[n];
  slidesIndex[n] = -1;
  disabled[n] = false;
  var holder = $("#slide_holder_" + n);
  var html = "";
  var i;
  var url;
  var imgHtml;
  for(i=0; i<urls.length; i++) {
    url = urls[i];
    j = i + 1;
    imgHtml = "<img alt='Slide image " + j + " for slideshow " + n + "' id='slide_image_" + n + "_" + i + "' class='slide_image' src='" + url + "' border='0' onclick='onSlideImageClick(" + n + ", " + i + ");' />";
    html += imgHtml;
  }
  holder.html(html);
  prepared[n] = true;
  firstSlide(n);
}
function startSlideTimer(n) {
  timers[n] = setTimeout("nextSlide(" + n + ");", slideTime); 
}
function showIndicator(n, i) {
	for(var ii=0; ii<slides[n].length; ii++) {
	    $("#slide_indicator_" + n + "_" + ii).attr("src", ii == i ? "images/slideshow_dot_on.jpg" : "images/slideshow_dot_off.jpg");
	}
}
function firstSlide(n) {
  if(!prepared[n]) {
      return;
    }
    var slidesArray = slides[n];
    slidesIndex[n] = 0;
    var currentImage = $("#slide_image_" + n + "_0");
    currentImage.css("display", "block");
    currentImage.css("left", 0);
    clearTimeout(timers[n]);
    startSlideTimer(n);
    showIndicator(n, 0);
}
function prevSlide(n) {
    if(!prepared[n] || disabled[n]) {
      return;
    }
    disabled[n] = true;
    var slidesArray = slides[n];
    var currentIndex = slidesIndex[n];
    if(currentIndex != -1) {
      var currentImage = $("#slide_image_" + n + "_" + currentIndex);
      currentImage.css("left", 0);
      currentImage.animate({left:(holderWidth).toString() + "px"}, animateTime);
    }
    slidesIndex[n] = (slidesArray.length + currentIndex - 1) % slidesArray.length;
    var prevIndex = slidesIndex[n];
    var prevImage = $("#slide_image_" + n + "_" + prevIndex);
    prevImage.css("display", "block");
    //nextImage.css("left", (currentImage ? currentImage.width() - 15 : holderWidth).toString() + "px");
    prevImage.css("left", -holderWidth.toString() + "px");
    prevImage.animate({left:"0"}, animateTime);
    clearTimeout(timers[n]);
    startSlideTimer(n);
    setTimeout("disabled[" + n + "] = false;", animateTime);
    showIndicator(n, prevIndex);
  }
function nextSlide(n) {
  if(!prepared[n] || disabled[n]) {
    return;
  }
  disabled[n] = true;
  var slidesArray = slides[n];
  var currentIndex = slidesIndex[n];
  if(currentIndex != -1) {
    var currentImage = $("#slide_image_" + n + "_" + currentIndex);
    currentImage.css("left", 0);
    var cw = currentImage.width();
    currentImage.animate({left:(cw ? -cw : -holderWidth).toString() + "px"}, animateTime);
  }
  slidesIndex[n] = (currentIndex + 1) % slidesArray.length;
  var nextIndex = slidesIndex[n];
  var nextImage = $("#slide_image_" + n + "_" + nextIndex);
  nextImage.css("display", "block");
  //nextImage.css("left", (currentImage ? currentImage.width() - 15 : holderWidth).toString() + "px");
  nextImage.css("left", holderWidth.toString() + "px");
  nextImage.animate({left:"0"}, animateTime);
  clearTimeout(timers[n]);
  startSlideTimer(n);
  setTimeout("disabled[" + n + "] = false;", animateTime);
  showIndicator(n, nextIndex);
}
function showSlide(n, i) {
  if(!prepared[n] || disabled[n]) {
    return;
  }
  var slidesArray = slides[n];
  var currentIndex = slidesIndex[n];
  i = i % slidesArray.length;
  if(currentIndex == i) {
	  return;
  }
  clearTimeout(timers[n]);
  disabled[n] = true;
  if(currentIndex != -1) {
    var currentImage = $("#slide_image_" + n + "_" + currentIndex);
    currentImage.css("left", 0);
    var cw = currentImage.width();
    if(currentIndex > i) {
    	// slide to right
    	currentImage.animate({left:(holderWidth).toString() + "px"}, animateTime);
    }else{
    	// slide to left
    	currentImage.animate({left:(cw ? -cw : -holderWidth).toString() + "px"}, animateTime);
    }
  }
  slidesIndex[n] = i;
  var nextIndex = slidesIndex[n];
  var nextImage = $("#slide_image_" + n + "_" + nextIndex);
  var nw = nextImage.width();
  nextImage.css("display", "block");
  //nextImage.css("left", (currentImage ? currentImage.width() - 15 : holderWidth).toString() + "px");
  if(currentIndex > i) {
  	// slide to right
	  nextImage.css("left", (nw ? -nw : -holderWidth).toString() + "px");
	  nextImage.animate({left:"0"}, animateTime);
  }else{
	  	// slide to left
	  nextImage.css("left", holderWidth.toString() + "px");
	  nextImage.animate({left:"0"}, animateTime);
  }
  startSlideTimer(n);
  setTimeout("disabled[" + n + "] = false;", animateTime);
  showIndicator(n, nextIndex);
}

function onSlideImageClick(n, i) {
 var anchor = anchors[n][i];
 document.location = "portfolio#" + anchor;
}
