/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

var slideshowImages = {};
var currentImageIndex = 0;
var currentImage = null;
var nextImage = null;
var baseURL = "http://www.bosphoruscymbals.se/";
var slideSpeed = 4000;

function playSlideshow(speed)
{
    if(typeof(speed) != "undefined") {
        slideSpeed = parseInt(parseInt(speed)*1000);
    }
    getImages();
    loadNextImage();
}

function loadNextImage()
{
    if(nextImage == null) {
        currentImage = new Image();
        currentImage.src = baseURL + "images/cymbals/" + slideshowImages[currentImageIndex].image;
    }
    else {
        currentImage = nextImage;
    }
    
    if(currentImage.complete == true) {
        showImage();
    }
    else {
        currentImage.onload = function() {
            showImage();
        };
    }
}

function prepareNextImage()
{
    currentImageIndex = (currentImageIndex + 1)%slideshowImages.length;
    nextImage = new Image();
    nextImage.src = baseURL + "images/cymbals/" + slideshowImages[currentImageIndex].image;
}

function showImage()
{
    var slideshowNode = dojo.byId("slideshow");
    var imageNode = dojo.byId("slideshow_image");
    var headerNode = dojo.byId("slideshow_header");
    var textNode = dojo.byId("slideshow_text");

    dojo.fadeOut({
            node: imageNode,
            duration: 500,
            onEnd: function(){
                    imageNode.src = currentImage.src;
                    dojo.fadeIn({
                            node: imageNode,
                            duration: 500,
                            onEnd: function() {
                                headerNode.innerHTML = slideshowImages[currentImageIndex].name;
                                textNode.innerHTML = dojo.trim(slideshowImages[currentImageIndex].info.substr(0, 150));
                                textNode.innerHTML += '..<br /> <a href="' +
                                                      baseURL +
                                                      'cymbals/series/' +
                                                      slideshowImages[currentImageIndex].id +
                                                      '">&gt; L\u00e4s mer &lt;</a>';
                                prepareNextImage();
                                window.setTimeout(loadNextImage, slideSpeed);
                            }
                    }).play();
            }
    }).play();
}

function getImages()
{
    var url = baseURL + "slideshow/json_cymbals";
    
    dojo.xhrGet({
    url: url,
    load: function(response, ioArgs){
        slideshowImages = response;

      //Dojo recommends that you always return(response); to propagate
      //the response to other callback handlers. Otherwise, the error
      //callbacks may be called in the success case.
      return response;
    },
    error: function(response, ioArgs){
      if(baseURL == "http://www.bosphoruscymbals.se/") {
          baseURL = "http://bosphoruscymbals.se/";
          getImages();
      }
      //dojo.byId(container).innerHTML =
        //"An error occurred, with response: " + response;
      return response;
    },
    handleAs: "json",
    sync: true
  });
}

