var NewsSlider = function(){
	var $ = jQuery.noConflict();
	var slidingAmount;
	var intervalId;
	var INTERVAL_TIME = 10 * 1000; // 10 seconds
	
	var init = function(){
		//calculate width for each container
		$(".newsslider-items-container").each(function(){
			var width = $(this).parent().width();	// container width
			var button_width = $(this).parent().find(".newsslider-scroll-left").width();
			
			// max number of items displayed
			var news_item_width = $(this).find(".newsslider-news-item").width() + 
									parseInt($(this).find(".newsslider-news-item").css("margin-left")) + 
									parseInt($(this).find(".newsslider-news-item").css("margin-right"));
			var d = Math.floor((width - 2 * button_width - 2) / news_item_width);
			width = d * news_item_width;
			$(this).css("width", width);
			slidingAmount = $(this).width();
		});
		
		$(".news-slider-news-belt").each(function(){
			var num_of_elements = $(this).find(".newsslider-news-item").length;
			
			var news_item_width = $(this).find(".newsslider-news-item").width() + 
									parseInt($(this).find(".newsslider-news-item").css("margin-left")) + 
									parseInt($(this).find(".newsslider-news-item").css("margin-right"));
			$(this).css("width", num_of_elements * news_item_width);
		});
		
		$("#newsslider-scroll-left-btn").click(function() {
			scrollNewsSliderLeft(true);
		});
		$("#newsslider-scroll-right-btn").click(function() {
			scrollNewsSliderRight(true);
		});
		
		intervalId = setInterval(function() {
			scrollNewsSliderRight();
		}, INTERVAL_TIME);
	},
	
	scrollNewsSliderLeft = function(resetScrollTimer){
		if(resetScrollTimer && resetScrollTimer === true){
			clearInterval(intervalId);
			intervalId = setInterval(scrollNewsSliderRight, INTERVAL_TIME);
		}
		
		var btn = $("#newsslider-scroll-left-btn");
		
		var parent = btn.parent().parent();
		var items_belt = parent.find(".news-slider-news-belt");
		var items_container = parent.find(".newsslider-items-container");
		
		var left_pos = parseInt(items_belt.css("left"), 10);
		
		var new_position = 0;
		if(left_pos + slidingAmount < 0){
			new_position = left_pos + slidingAmount;
		}
		
		if(items_belt.width() > items_container.width()){
			items_belt.clearQueue();
			items_belt.animate({"left": new_position}, "fast");
		}
	},

	scrollNewsSliderRight = function (resetScrollTimer) {
		if(resetScrollTimer && resetScrollTimer === true){
			clearInterval(intervalId);
			intervalId = setInterval(scrollNewsSliderRight, INTERVAL_TIME);
		}
		
		var btn = $("#newsslider-scroll-right-btn");
		
		var parent = btn.parent().parent();
		var items_belt = parent.find(".news-slider-news-belt");
		var items_container = parent.find(".newsslider-items-container");
		var diff = items_container.width() - items_belt.width();
		
		var left_pos = parseInt(items_belt.css("left"), 10);
		
		if(left_pos == diff){
			// return to the beginning
			items_belt.clearQueue().animate({"left": 0}, "fast");
			return;
		}
		
		var new_position = left_pos - slidingAmount;
		if(new_position < diff){
			new_position = diff;
		}
		
		if(items_belt.width() > items_container.width()){
			items_belt.clearQueue().animate({"left": new_position}, "fast");
		}
	};
	
	return {
		init: init
	};
}();

jQuery(function($){
	NewsSlider.init();
});
