var language_uid = 0;
var sliderLoading = false;
var sliderHistoryIndex = 0;
var sliderHistory = new Array();
var sliderTimeout = null;
var sliderInterval = 2500;
var sliderNextLoadDirection = 'left';
var sliderItemWidth = 0;
var sliderComplete = false;

function nextSliderItem() {
	if(!sliderLoading) {
		clearTimeout(sliderTimeout);
		if(sliderHistoryIndex<sliderHistory.length || sliderComplete) {
			sliderLoading = true;
			sliderHistoryIndex++;
			if(sliderHistoryIndex>sliderHistory.length) {
				sliderHistoryIndex = 1;
			}
			addSliderItem(sliderHistory[sliderHistoryIndex-1].content, 'left');
		} else {
			loadNextSliderItem(sliderUidString());
		}
	}
}

function previousSliderItem() {
	if(!sliderLoading && sliderHistoryIndex>1 || sliderComplete) {
		sliderLoading = true;
		clearTimeout(sliderTimeout);
		sliderHistoryIndex--;
		if(sliderHistoryIndex<0) {
			sliderHistoryIndex = sliderHistory.length;
		}
		addSliderItem(sliderHistory[sliderHistoryIndex-1].content, 'right');
	} else if(!sliderLoading && sliderHistoryIndex==1) {
		clearTimeout(sliderTimeout);
		sliderNextLoadDirection = 'right';
		loadNextSliderItem(sliderUidString());
	}
}

function sliderPause() {
	clearTimeout(sliderTimeout);
}

function sliderResume() {
	startSliderTimer();
}

function sliderUidString() {
	var i, entry;
	var result = new Array();
	for(i=0; entry=sliderHistory[i]; i++) {
		result.push(entry.uid);
	}
	return result.join(',');
}

function addSliderHistory(uid, content) {
	if(content==undefined) {
		var elm = document.getElementById('employeeSliderContent');
		if(elm) {
			var elms = elm.getElementsByTagName('div');
			content = elms[0];
			sliderItemWidth = content.clientWidth;
		}
	}
	sliderHistory.push({uid: uid, content: content});
	sliderHistoryIndex = sliderHistory.length;
}

function startSliderTimer() {
	sliderTimeout = window.setTimeout(nextSliderItem, sliderInterval);
}

function loadNextSliderItem(uid) {
	sliderLoading = true;
	var url = 'index.php?L='+language_uid+'&eID=tx_pjemployee_slider&lastUid='+uid;
	var myHTMLRequest = new Request.HTML({onSuccess: onLoadNextSliderItemComplete}).get(url);
}

function onLoadNextSliderItemComplete(responseText, bla, responseXML) {
	if(responseText[0].nodeType==3 && responseText[0].nodeValue=='false') {
		sliderComplete = true;
		if(sliderNextLoadDirection=='right') {
			sliderLoading = true;
			sliderHistoryIndex = sliderHistory.length;
			addSliderItem(sliderHistory[sliderHistoryIndex-1].content, 'right');
		} else {
			sliderLoading = false;
			sliderHistoryIndex = 0;
			nextSliderItem();
		}
	} else {
		var div = document.createElement('div');
		div.innerHTML = responseXML;
		var childs = div.firstChild;
		var id = childs.id.split('_');
		addSliderHistory(id[1], childs);
		if(sliderNextLoadDirection=='right') {
			addSliderItem(childs, 'right');
		} else {
			addSliderItem(childs, 'left');
		}
	}
	sliderNextLoadDirection = 'left';
}

function addSliderItem(node, direction) {
	var elm = document.getElementById('employeeSliderContent');
	if(elm) {
		var elms = elm.getElementsByTagName('div');
		switch(direction) {
			case 'left':
				node.style.marginLeft = 0;
				elm.appendChild(node);
				var navigationSlide = new Fx.Tween(elms[0]);
				navigationSlide.addEvents({
			   		'complete': function() {
	   					elm.removeChild(elms[0]);
			   			sliderLoading = false;
			   			startSliderTimer();
    				}
				});
				navigationSlide.start('marginLeft', 0, -1*sliderItemWidth);
				break;
			case 'right':
				var repChild = elms[0];
				elm.insertBefore(node, repChild);
				node.style.marginLeft = (-1*sliderItemWidth)+'px';
				var navigationSlide = new Fx.Tween(node);
				navigationSlide.addEvents({
			   		'complete': function() {
	   					elm.removeChild(repChild);
	   					sliderLoading = false;
	   					startSliderTimer();
    				}
				});
				navigationSlide.start('marginLeft', -1*sliderItemWidth, 0);
				break;
		}
	}
	Slimbox.scanPage();
}
