(function() {
    
    $.fn.infiniteFade = function() {
        return this.each(function() {
            
            var $wrapper = $(this),                
                $items = $wrapper.find('li'),
                $numbers = $wrapper.find('.numbers span'),
                $first = $items.filter(':first'),
                $check = false;
            
            
            currentPage = 0;            
            $items.eq(currentPage).addClass('is_active');
            $numbers.eq(currentPage).addClass("is_active");
            
            
            function gotoFade(page) {
            	if(!$check) {
            		$check = true;
	            	active = currentPage;
	    			next = $items.length == page ? 0 : page;
	
	    			$items.eq(active).addClass('last_active');
	    			
	    			$numbers.removeClass("is_active");
	            	$numbers.eq(next).addClass("is_active");
	    			
	            	$items.eq(next).fadeTo(0,0.0).addClass('is_active').fadeTo(600, 1.0, function() {                     		
	            		$items.eq(active).removeClass('is_active last_active');
	            		$items.eq(next).removeAttr('style');
	                	currentPage = next;
	                	$check = false;
	                });
            	}
            }
            
            function gotoPage(page) {
            	if(!$check) {
            		$check = true;
	            	active = currentPage;
	    			next = $items.length == page ? 0 : page;
	    			
	    			$numbers.removeClass("is_active");
	            	$numbers.eq(next).addClass("is_active");
	    			            	
	            	$items.eq(next).removeAttr('style');
	            	
	                $items.eq(next).addClass("is_active");        
	                $items.eq(active).removeClass('is_active');
	                currentPage = next;
	                $check = false;
            	}
            }
            
            $(this).bind('next', function() {
            	gotoFade(currentPage + 1);
            });

            $wrapper.delegate(".numbers span", "click", function(ev, hover) {				
                index = $(".numbers span",$wrapper).index(this);						
				gotoPage(index);
			});

        });
    };
})(jQuery);



$(document).ready(function() {	
	var fade = true;
	if ($('#fade ul li').length > 1) {
		$('#fade').infiniteFade().hover(
			function() { fade = false; },
			function() { fade = true; }
	    );
		$('#fade .numbers span').click(
			function() { fade = false; },
			function() { fade = true; }
	    );
		setInterval(function() {
			if (fade) {
				$('#fade').trigger('next');
			}
		}, 5000);
	}
});

