
/* javascript scrolling */

function getDisplacement() {
	return 160;
}

function defaultScrollDirection() {
	return '-';
}

/**
  *  inital logic
***/
function initScrolling() {
	if ($("slide-store")) {
		var n = $("slide-store").getChildren().length;
		if (n > 0) {
			$("slidestack-1").set("html", $("slideitem-1").get("html"));
			$("slidestack-1").stackPosition = 0;
			$("slide-store").activeItem = 1;
			$("slide-store").leftNull = Number($("slidestack-1").getStyle("left").substr(0, $("slidestack-1").getStyle("left").indexOf("px")));
		}
		if (n > 1) {
			$("slidestack-2").set("html", $("slideitem-2").get("html"));
			$("slidestack-2").setStyle("left", $("slide-store").leftNull + getDisplacement());
			$("slidestack-2").stackPosition = 1;
		}
		$("slide-store").intervalID = setInterval(scrollHighlight, 10000, '-');
	}
}

function restartHighlightInterval() {
	$("slide-store").intervalID = setInterval(scrollHighlight, 10000, '-');
}

function resetHighlightInterval() {
	clearInterval($("slide-store").intervalID);
	setTimeout(restartHighlightInterval, 30000);
}

/**
  *  function
  *		eid:	String element id (fragment) of item(s) to scroll
  *		disp:	Number pixel value to scroll (eg: -160)
  *		pid:	String parent element id (container)
***/
function shiftElements(eid, disp, pid) {
	var e1 = $(eid + "1");
	var e2 = $(eid + "2");
	var p = $(pid);
	var e1Pos = Number(e1.getStyle("left").substr(0, e1.getStyle("left").indexOf("px")));
	var e2Pos = Number(e2.getStyle("left").substr(0, e2.getStyle("left").indexOf("px")));
	var e1Left = p.leftNull;
	var e2Left = p.leftNull;
	if (disp < 0) {
		p.activeItem++;
		if (p.activeItem > p.getChildren().length) {
			p.activeItem = 1;
		}
		e1.stackPosition--;
		e2.stackPosition--;
		if (e1.stackPosition < -1) {
			e1.stackPosition = 0;
			e1.set("html", $("slideitem-" + String(p.activeItem)).get("html"));
			e1.setStyle("left", p.leftNull + Math.abs(disp));
		} else {
			e1Left += e1.stackPosition * Math.abs(disp);
		}
		if (e2.stackPosition < -1) {
			e2.stackPosition = 0;
			e2.set("html", $("slideitem-" + String(p.activeItem)).get("html"));
			e2.setStyle("left", p.leftNull + Math.abs(disp));
		} else {
			e2Left += e2.stackPosition * Math.abs(disp);
		}
	}
	if (disp > 0) {
		p.activeItem--;
		if (p.activeItem < 1) {
			p.activeItem = p.getChildren().length;
		}
		e1.stackPosition++;
		e2.stackPosition++;
		if (e1.stackPosition > 1) {
			e1.stackPosition = 0;
			e1.set("html", $("slideitem-" + String(p.activeItem)).get("html"));
			e1.setStyle("left", p.leftNull - Math.abs(disp));
		} else {
			e1Left += e1.stackPosition * Math.abs(disp);
		}
		if (e2.stackPosition > 1) {
			e2.stackPosition = 0;
			e2.set("html", $("slideitem-" + String(p.activeItem)).get("html"));
			e2.setStyle("left", p.leftNull - Math.abs(disp));
		} else {
			e2Left += e2.stackPosition * Math.abs(disp);
		}
	}
	e1.tween('left', e1Left);
	e2.tween('left', e2Left);
}

/**
  *  function for scroll the whole highlight container
***/
function scrollHighlight(d) {
	//scrollElement('slider-highlight', Number(String(d) + '160'));
	if (d == undefined) { // this is because IE lack of support setInterval third param
		d = defaultScrollDirection();
	}
	shiftElements('slidestack-', Number(String(d) + String(getDisplacement())), 'slide-store');
}

/**
  *  function to scroll an element which has a series of children where they number determines the maximum scroll
***/
function scrollElement(eid, disp) {
	var e = $(eid);
	if (!$defined(e.currentItem)) {
		e.currentItem = 1;
	}
	if (disp > 0) {
		if (e.currentItem == 1) {
			return;
		} else {
			e.currentItem--;
		}
	} else {
		if (e.currentItem == e.getChildren().length) {
			return;
		} else {
			e.currentItem++;
		}
	}
	//var currentml = e.getStyle('margin-left');
	//currentml = Number(currentml.substr(0, currentml.indexOf("px")));
	var dispm = (e.currentItem - 1) * Math.abs(disp) * (-1);
	e.tween('margin-left', dispm);
}

/**
  * JS file end
***/

