jQuery.fn.VWTransition = function(settings) {
	var $ = jQuery;

	settings = jQuery.extend({
		duration:1000
		,timer: 3000
		,next: null
		,prev: null
	}, settings);

	//; // f.e: $(container).trigger('goto', 4 );

	return this.each(function() {
		$list = $(settings.target).children("*");

		if (settings.next)
			$(settings.next).bind("click", next)
				.css("cursor", "pointer");

		if (settings.prev)
			$(settings.prev).bind("click", prev)
				.css("cursor", "pointer");

		time_evento = setInterval(anima_evento, settings.timer);

		var ELE_INDEX = 0;

		$($list[ELE_INDEX]).animate({ opacity: 'show' }, settings.duration);

		function anima_evento() {
			var atual = ELE_INDEX;
			ELE_INDEX++;

			if (ELE_INDEX >= $list.length)
				ELE_INDEX = 0;

			var proximo = ELE_INDEX;

			/*for (var i = 0; i < $list.length; i++) {
				var nn = $list[i].match(/[0-9]+/);

				var ele = document.getElementById('box-evento-nav' + nn);
			}*/

			//var nn = proximo.match(/[0-9]+/);
			//var ele = document.getElementById('box-evento-nav' + nn);

			$($list[atual]).animate({ opacity: 'hide' }, settings.duration);
			$($list[proximo]).animate({ opacity: 'show' }, settings.duration);
		}

		function jump(index) {
			clearInterval(time_evento);

			if (index < 0) {
				index = $list.length - 1;
				ELE_INDEX = $list.length - 1;
			}

			if (index == 0)
				index = $list.length - 1;
			else
				index = index - 1;

			aux = ELE_INDEX;

			ELE_INDEX = index;

			anima_evento();
			$($list[aux]).animate({ opacity: 'hide' }, settings.duration);

			time_evento = setInterval(anima_evento, settings.timer);
		}

		function next() {
			jump(ELE_INDEX+1);
		}

		function prev() {
			jump(ELE_INDEX-1);
		}

		$(this).bind('goto.VWTransition', jump );
		$(this).bind('next.VWTransition', next );
		$(this).bind('prev.VWTransition', prev );
	});
};
