// JavaScript Document

jQuery(document).ready(function() {

	imgScroller();
	initFeedScroller(jQuery(".feedScroller"),1, 8000);

});

function imgScroller() {

	var speed = 12000;

	var imgScroller = jQuery('#imgScroller');

	var itemContainer = jQuery('#imgScroller .itemContainer');

	var imgScrollerItems = jQuery('#imgScroller .itemContainer li');
	
	imgScrollerItems.show();

	var imgScrollerSelectedItem = jQuery('#imgScroller .itemContainer li.selected').length ? jQuery('#imgScroller .itemContainer li.selected') : jQuery('#imgScroller .itemContainer li:first');

	var imgScrollerNextPrevious = jQuery('#imgScroller .previous,#imgScroller .next');

	var imgScrollerControls = jQuery('#imgScroller .controls');

	if (imgScrollerItems.length > 1) {

		var run;

		if (imgScrollerItems.length >= 3) {

			imgScrollerItems.each(function(index){

				if (index != 0) {

					var stringToInsert = jQuery('<li><a href="">' + (index + 1) + '</a></li>');

				} else {

					var stringToInsert = jQuery('<li class="current"><a href="">' + (index + 1) + '</a></li>');

				}

				stringToInsert.insertBefore('#imgScroller .controls li:last').click(function(){

					clearInterval(run);

					newsScroller(index);

					run = setInterval('newsScroller("next")', speed);

					return false;

				});

			});	

		}

		imgScrollerControls.show();

		itemContainer.width(imgScroller.width() * imgScrollerItems.length);

		run = setInterval('newsScroller("next")', speed);

		imgScroller.hover(

			function() {

				if (run != null) {

					clearInterval(run);

					run = null;

				}

			},

			function() {

				if (run == null) {

					run = setInterval('newsScroller("next")', speed);

				}

			}

		);

	}

	imgScrollerNextPrevious.click(function(){

		clearInterval(run);

		if(jQuery(this).hasClass("previous")) {

			newsScroller("prev");

		} else {

			newsScroller("next");

		}

		run = setInterval('newsScroller("next")', speed);

		return false;

	});

}

function newsScroller(direction) {

	var imgScrollerItems = jQuery("#imgScroller .itemContainer li");

	var imgScrollerSelectedItem = jQuery('#imgScroller .itemContainer li.selected').length ? jQuery('#imgScroller .itemContainer li.selected') : jQuery('#imgScroller .itemContainer li:first') ;

	var imgScrollerControls = jQuery('#imgScroller .controls');

	if (direction == "prev") {

		var next_image = (imgScrollerSelectedItem.prev().length) ? imgScrollerSelectedItem.prev() : imgScrollerItems.filter('li:last');

	} else if (direction == "next") {

		var next_image = (imgScrollerSelectedItem.next().length) ? imgScrollerSelectedItem.next() : imgScrollerItems.filter('li:first');

	} else {

		var next_image = imgScrollerItems.filter("li:eq(" + direction + ")");

	}

	imgScrollerControls.children("li:gt(0)").removeClass("current").filter("li:eq(" + (next_image.index()) + ")").addClass("current");

	imgScrollerItems.removeClass('selected');

	next_image.addClass("selected");

	jQuery('.imgScrollerMask').stop(true,true).scrollTo(next_image, 500);

}



function initFeedScroller(feed,noItemsShown,speed) {

	var feedItems = feed.children("ul").children("li");
	var totalItems = feedItems.length;
	var itemRange = totalItems - (noItemsShown);
	
	if ( totalItems >= noItemsShown) {

		if (totalItems > 1 || totalItems > noItemsShown) {
			setInterval(
				function() { feedScroller(feed,itemRange);
			}, speed);
			feedItems.filter(":lt(" + itemRange + ")").fadeOut(0);  //total number of items (default is 10) - noItemsShown + 1
			feed.height(feed.outerHeight());
		}
	
	}

}

function feedScroller(feed,itemRange) {

	itemRange = itemRange - 1; //This has to be - 1 because the array it is contained in begins at 0.

	var scroller = feed.children(".scroller");
	var scrollerList = feed.children("ul").children("li");
	var lastItem = scrollerList.filter(":last");
	var nextItem = scrollerList.filter(":eq(" + itemRange + ")");  //total number of items (default is 10 - 1 because it starts at 0) - noItemsShown + 1

	lastItem.animate({
		opacity: 'toggle'
	}, 900, function() {
		
		nextItem.animate({
		opacity: 'toggle'
		}, 900, function(){
			
			lastItem.prependTo(scroller);
			
		});

	});
}

