var scrl_container; 			// contenitore in cui inserire le immagini
var scrl_imgh; 					// altezza immagini
var scrl_space;					// spazio tra le immagini
var scrl_auto;					// autoplay
var scrl_speed;					// velocità in px/venticinquiesimo di secondo

var scrl_images = new Array();	// le immagini
var scrl_imgw = new Array();	// larghezza di ogni immagine
var scrl_imgl = new Array();	// link di ogni immagine
var scrl_objs = new Array();	// gli oggetti corrispondenti alle immagini

var scrl_childs = new Array();	// le immagini infilate nel contenitore
var scrl_childsPos = new Array();	// le posizioni delle immagini infilate nel contenitore
var scrl_childIndex = new Array();	// l'indice delle immagini infilate nel contenitore

var scrl_imgcnt = 0;
var scrl_cldcnt = 0;

var scrl_nextLeft = 0;
var scrl_leftmost = 0;
var scrl_rightmost = 0;

function scrl_init(in_container, in_imgh, in_space, in_speed, in_auto) {
	scrl_container = in_container;
	scrl_imgh = in_imgh;
	scrl_space = in_space;
	scrl_speed = in_speed;
	scrl_auto = in_auto;
	
	for (var i = 0; i < scrl_imgcnt; i++) {
		scrl_objs[i] = addElement(scrl_container, "img", "scrl_img_" + i);
		scrl_objs[i].src = scrl_images[i];
		scrl_objs[i].style.position = "absolute";
		scrl_objs[i].style.top = "0px";
		scrl_objs[i].onclick  = scrl_jump;
		scrl_objs[i].style.visibility  = "hidden";
	}
	
	for (scrl_nextLeft = 0; scrl_nextLeft < scrl_container.offsetWidth; scrl_cldcnt += 1) {
		scrl_childs[scrl_cldcnt] = scrl_objs[scrl_cldcnt];
		scrl_childIndex[scrl_cldcnt] = scrl_cldcnt;

		scrl_childsPos[scrl_cldcnt] = scrl_nextLeft;
		scrl_childs[scrl_cldcnt].style.left = scrl_childsPos[scrl_cldcnt] + "px";

		scrl_childs[scrl_cldcnt].style.visibility  = "visible";

		scrl_nextLeft += (scrl_imgw[scrl_cldcnt] + scrl_space);
	}
	
	scrl_rightmost = scrl_cldcnt - 1; 
	
	if (scrl_auto) {
		setInterval(scrl_moveLeft, 40)
	}
}

function scrl_jump(evt){
	theId = this.id;
	theIndex = theId.substring(9, theId.length);
	window.location = scrl_imgl[theIndex];
}

function scrl_addImage(in_imagepath, in_imagew, in_imagelnk) {
	scrl_images[scrl_imgcnt] = in_imagepath;
	scrl_imgw[scrl_imgcnt] = in_imagew;
	scrl_imgl[scrl_imgcnt] = in_imagelnk;
	scrl_objs[scrl_imgcnt] = null;

	scrl_imgcnt += 1;
}

function scrl_moveLeft() {
	for (var i=0; i<scrl_cldcnt; i++) {
		if (scrl_childs[i] != null) {
			scrl_childsPos[i] -= scrl_speed;
			scrl_childs[i].style.left = scrl_childsPos[i] + "px";
		}
	}

	if (scrl_childsPos[scrl_leftmost] + scrl_imgw[scrl_childIndex[scrl_leftmost]] < 0) {
		scrl_childs[scrl_leftmost].style.visibility = "hidden";
		
		scrl_childs[scrl_leftmost] = null;

		var minLeft = scrl_nextLeft;
		
		for (var i = 0; i < scrl_cldcnt; i++) {
			if (scrl_childs[i] != null && scrl_childsPos[i] < minLeft) {
				minLeft = scrl_childsPos[i];
				scrl_leftmost = i;
			}
		}
	}

	if ((scrl_nextLeft -= scrl_speed) < scrl_container.offsetWidth) {
		var nextIndex = scrl_childIndex[scrl_rightmost] + 1;
		if (nextIndex >= scrl_imgcnt) nextIndex = 0;
		
		var nextChild;
	
		for (nextChild = 0; nextChild < scrl_cldcnt; nextChild++) {
			if (scrl_childs[nextChild] == null) break;
		}
		
		if (nextChild == scrl_cldcnt) scrl_cldcnt += 1;
		
		scrl_childs[nextChild] = scrl_objs[nextIndex];

		scrl_childIndex[nextChild] = nextIndex;

		scrl_childsPos[nextChild] = scrl_nextLeft;
		scrl_childs[nextChild].style.left = scrl_childsPos[nextChild] + "px";

		scrl_childs[nextChild].style.visibility  = "visible";

		scrl_nextLeft += (scrl_imgw[nextIndex] + scrl_space);

		scrl_rightmost = nextChild;	
	}
}

function scrl_moveRight() {
}
