var elementID = "slideshow";

var imageWidth = 314;
var containerWidth = 950;
var leftStart = containerWidth - imageWidth;

var divWidth = imageWidth*(imageArray.length+1);
// +1 perche' una immagine e` gia` nel div, per chi non ha javascript attivo

var elem = 1;

/* Fine variabili globali */

function prima() {
 	if (!document.getElementById) return false;
 	if (!document.getElementById(elementID)) return false;
 	prepareDiv(elementID, leftStart);
 	populateDiv();
 	return mSlideshow(elementID);
}

function prepareDiv(elementID, leftStart) { // posiziona il div alla partenza
    elem = document.getElementById(elementID);
    elem.style.position = "absolute";
    elem.style.left = leftStart+"px";
    elem.style.top = "125px";
    elem.style.width = divWidth+"px";
}

function populateDiv() { // riempie il div con le immagini dell'array
    var x = 0;
    for (x=0; x<imageArray.length; x++) {
        var immagine = document.createElement('img');
        immagine.setAttribute("src", imageArray[x]); 
        elem.appendChild(immagine);
    }
 }

function mSlideshow(elementID) {
    moveElement(elementID, -divWidth, 1);
}

function moveElement(elementID,final_x,interval) {
 	var elem = document.getElementById(elementID);
 	var xpos = parseInt(elem.style.left);

 	if (xpos == final_x) { // Non si vede piu`, io lo distruggo.
 	elem.parentNode.removeChild(elem);
 	return false;
 	}
	
 	if (xpos < final_x) {
 		xpos++;
 	}
 	
 	if (xpos > final_x) {
 		xpos--;
 	}
 	
    if (xpos == containerWidth-divWidth) { // devo clonare il div e posizionarlo all'inizio
        var newDiv = document.getElementById(elementID).cloneNode(true);
        newDiv.id = elementID+1;
        var parent  = document.getElementById(elementID).parentNode;
        parent.appendChild(newDiv);
        prepareDiv(elementID+1, containerWidth-9); //lo posiziono un po' piu`  a sinistra cosi` non rischio gap dovuti allo sfasamento del movimento
        var newSlideshow = mSlideshow(elementID+1);
    }
 	
 	elem.style.left = xpos + "px";
 	var repeat = "moveElement('"+elementID+"',"+final_x+","+interval+")";
 	var movement = setTimeout(repeat,interval);
 	return repeat;
 }

addLoadEvent(prima);

function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}

