
(function($) {


$.fn.nsCarousel = function(settings) {
	settings = jQuery.extend({test: 'test'}, settings);

	return this.each(
		function(){

			if (this.cycleTimeout) clearTimeout(this.cycleTimeout);
			this.cycleTimeout = 0;
			this.cyclePause = 0;

			// cerco il carosello
			var container = $(this);

			var boxes = container.find('> div:not("#carousel_thumbs")');
			this.current_box = boxes[0];

			/*
			boxes.each(
				function(i) {
					var box = $(this);
					box.toggleClass('box_hidden');
				}
			);
			*/

			var thumbnails = container.find('#carousel_thumbs div[class="tn_item"]');
			
			thumbnails.each(
				function(i) {
					var thumb = $(this);
					var thumb_link = thumb.find('> a');					

					thumb_link.bind("mouseenter",
						function() {
							pauseBox(boxes[i]);

						}
					);

					thumb_link.bind("mouseleave",
						function() {
							restartBox(boxes[i]);
						}
					)
				}
			);

			var titles = container.find('#carousel_thumbs h3[class="title_item"]');
			
			titles.each(
				function(i) {
					var title = $(this);
					var title_link = title.find('> a');					

					title_link.bind("mouseenter",
						function() {
							pauseBox(boxes[i]);

						}
					);

					title_link.bind("mouseleave",
						function() {
							restartBox(boxes[i]);
						}
					)
				}
			);
			
			showBox(boxes[0]);
		}
	);
}

function showBox(boxElem) {

	var parent = boxElem.parentNode;
	if (parent.cycleTimeout) clearTimeout(parent.cycleTimeout);

	$(parent.currentBox).addClass('box_hidden');
	parent.currentBox = boxElem;
	$(parent.currentBox).removeClass('box_hidden');


	var boxes = $(parent).find('> div:not("#carousel_thumbs")');
	var current_idx = $(boxes).index(parent.currentBox)
	var next = current_idx + 1;

	//
	// recupero il link della notizia visualizzata
	//
	//var thumbnails = $(parent).find('#carousel_thumbs > div[class="tn_item"]');
	var thumbnails = $(parent).find('#carousel_thumbs div[class="tn_item"]');
	var thumb = $(thumbnails[current_idx]);
	var thumb_link = thumb.find('> a');

	var dynaLink = $(parent).find('#ns_carousel_dynalink');
	dynaLink.attr("href", thumb_link.attr("href"));

	if(!parent.cyclePause) parent.cycleTimeout = setTimeout(function(){showBox(boxes[next < boxes.length ? next : 0 ])}, 8000);
};

function pauseBox(boxElem) {

	var parent = boxElem.parentNode;
	parent.cyclePause = 1;
	showBox(boxElem);
};

function restartBox(boxElem) {

	var parent = boxElem.parentNode;
	parent.cyclePause = 0;
	showBox(boxElem);

};

})(jQuery);
