addLoadListener(enableScrollingContent);
addLoadListener(resortContent);

var itemWidth = 876;
var contentPosition = 0;

function preSort(direction) {
	var contentItems = getElementsByClassName(document, 'div', 'content_item');
	var contentItemsCount = contentItems.length;
	switch (direction) {
		case 'left':
			if (contentPosition == 0) {
				var nextPosition = contentItemsCount - 2;
			} else if (contentPosition == 1) {
				var nextPosition = contentItemsCount - 1;
			} else {
				var nextPosition = contentPosition - 2;
			}
			var nextItem = document.getElementById(contentItems[nextPosition].id);
			nextItem.style.left = 0;
			break;
		case 'right':
			if (contentPosition == contentItemsCount - 2) {
				var nextPosition = 0;
			} else if (contentPosition == contentItemsCount - 1) {
				var nextPosition = 1;
			} else {
				var nextPosition = contentPosition + 2;
			}
			var nextItem = document.getElementById(contentItems[nextPosition].id);
			nextItem.style.left = itemWidth*2 + 'px';
			break;
		case 'double_right':
			//alert(contentPosition);
			if (contentPosition == 0) {
				var nextPosition = 1;
			} else {
				var nextPosition = 0;
			}
			var nextItem = document.getElementById(contentItems[nextPosition].id);
			nextItem.style.left = itemWidth*2 + 'px';
			break;
		case 'double_left':
			//alert(contentPosition);
			if (contentPosition == 0) {
				var nextPosition = 1;
			} else {
				var nextPosition = 0;
			}
			var nextItem = document.getElementById(contentItems[nextPosition].id);
			nextItem.style.left = -(itemWidth) + 'px';
			break;
	}
}

function resortContent() {
	var contentItems = getElementsByClassName(document, 'div', 'content_item');
	var contentItemsCount = contentItems.length;
	
	if (contentItemsCount > 1) {
		var visibleItem = document.getElementById(contentItems[contentPosition].id);
		visibleItem.style.left = itemWidth + 'px';
		
		if (contentPosition == contentItemsCount - 1) {
			var nextItem = document.getElementById(contentItems[0].id);
		} else {
			var nextItem = document.getElementById(contentItems[contentPosition + 1].id);
		}
		nextItem.style.left = (itemWidth*2) + 'px';
		
		
		if (contentPosition == 0) {
			var prevItem = document.getElementById(contentItems[contentItemsCount - 1].id);
		} else {
			var prevItem = document.getElementById(contentItems[contentPosition - 1].id);
		}
		prevItem.style.left = 0;
	} else {
		document.getElementById(contentItems[0].id).style.left = itemWidth + 'px';
	}
}

function enableScrollingContent() {
	var contentItems = getElementsByClassName(document, 'div', 'content_item');
	var contentItemsCount = contentItems.length - 1;
	var controlLeft = document.getElementById('content_arrow_left');
	var controlRight = document.getElementById('content_arrow_right');
	
	controlLeft.onclick = function() {
		if (contentItems.length > 2) { 
			preSort('left');
			var currentItem = document.getElementById(contentItems[contentPosition].id);
			
			if (contentPosition == 0) {
				var nextItem = document.getElementById(contentItems[contentItems.length - 1].id);
				contentPosition = contentItems.length - 1;
			} else {
				var nextItem = document.getElementById(contentItems[contentPosition - 1].id);
				contentPosition--;
			}
			
			var animateItem1L = new YAHOO.util.Anim(currentItem, { left: {to: itemWidth*2}}, .250, YAHOO.util.Easing.easeOut);
			animateItem1L.animate();
			
			var animateItem2L = new YAHOO.util.Anim(nextItem, { left: {to: itemWidth}}, .250, YAHOO.util.Easing.easeOut);
			animateItem2L.onComplete.subscribe(resortContent);
			animateItem2L.animate();
		} else if (contentItems.length == 2) {
			preSort('double_left');
			var currentItem = document.getElementById(contentItems[contentPosition].id);
			
			if (contentPosition == 1) {
				var nextItem = document.getElementById(contentItems[0].id);
				contentPosition = 0;
			} else {
				var nextItem = document.getElementById(contentItems[1].id);
				contentPosition = 1;
			}
			
			var animateItem1L = new YAHOO.util.Anim(currentItem, { left: {to: itemWidth*2}}, .250, YAHOO.util.Easing.easeOut);
			animateItem1L.animate();
			
			var animateItem2L = new YAHOO.util.Anim(nextItem, { left: {to: itemWidth}}, .250, YAHOO.util.Easing.easeOut);
			animateItem2L.onComplete.subscribe(resortContent);
			animateItem2L.animate();
		}
		return false;
	};
	
	controlRight.onclick = function() {
		if (contentItems.length > 2) {
			preSort('right');
			var currentItem = document.getElementById(contentItems[contentPosition].id);
			
			if (contentPosition == contentItems.length - 1) {
				var nextItem = document.getElementById(contentItems[0].id);
				contentPosition = 0;
			} else {
				var nextItem = document.getElementById(contentItems[contentPosition+1].id);
				contentPosition++;
			}
			
			var animateItem1R = new YAHOO.util.Anim(currentItem, { left: {to: 0}}, .250, YAHOO.util.Easing.easeOut);
			animateItem1R.animate();
			
			var animateItem2R = new YAHOO.util.Anim(nextItem, { left: {to: itemWidth}}, .250, YAHOO.util.Easing.easeOut);
			animateItem2R.onComplete.subscribe(resortContent);
			animateItem2R.animate();
		} else if (contentItems.length == 2) {
			preSort('double_right');
			var currentItem = document.getElementById(contentItems[contentPosition].id);
			
			if (contentPosition == 1) {
				var nextItem = document.getElementById(contentItems[0].id);
				contentPosition = 0;
			} else {
				var nextItem = document.getElementById(contentItems[1].id);
				contentPosition = 1;
			}
			
			var animateItem1R = new YAHOO.util.Anim(currentItem, { left: {to: 0}}, .250, YAHOO.util.Easing.easeOut);
			animateItem1R.animate();
			
			var animateItem2R = new YAHOO.util.Anim(nextItem, { left: {to: itemWidth}}, .250, YAHOO.util.Easing.easeOut);
			animateItem2R.onComplete.subscribe(resortContent);
			animateItem2R.animate();
		}
		return false;
	};
}

function addLoadListener(fn) {
	if (typeof window.addEventListener != 'undefined') {
		window.addEventListener('load', fn, false);
	} else if (typeof document.addEventListener != 'undefined') {
		document.addEventListener('load', fn, false);
	} else if (typeof window.attachEvent != 'undefined') {
		window.attachEvent('onload', fn);
	} else {
		var oldfn = window.onload;
		if (typeof window.onload != 'function') {
			window.onload = fn;
		} else {
			window.onload = function() {
				oldfn();
				fn();
			};
		}
	}
}

/*
    Written by Jonathan Snook, http://www.snook.ca/jonathan
    Add-ons by Robert Nyman, http://www.robertnyman.com
    Usage: getElementsByClassName(document, 'img' ,'image');
*/
function getElementsByClassName(oElm, strTagName, strClassName) {
	var arrElements = (strTagName == "*" && document.all)? document.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	strClassName = strClassName.replace(/\-/g, "\\-");
	var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
	var oElement;
	for(var i=0; i<arrElements.length; i++){
		oElement = arrElements[i];		
		if(oRegExp.test(oElement.className)){
			arrReturnElements.push(oElement);
		}	
	}
	return (arrReturnElements)
}

// Push and Splice support for IE 5
Array.prototype.push = function() {
	for (var i = 0; i < arguments.length; i++) {
		this[this.length] = arguments[i];
	}
	return arguments[i - 1];
};

Array.prototype.splice = function(a, b) {
	var tmp = [];
	for (var i = a + b; i < this.length; i++) {
		tmp[tmp.length] = this[i];
	}
	var rem = [];
	for (i = a; i < a + b; i++) {
		rem[rem.length] = this[i];
	}
	this.length = a;
	for (i = 2; i < arguments.length; i++) {
		this[this.length] = arguments[i];
	}
	for (i = 0; i < tmp.length; i++) {
		this[this.length] = tmp[i];
	}
	return rem;
};

