/**
 * Banner de Marcas
 * 
 * @author: Thomaz Takashi Oda Toyama.
 * @retrun void
 */
 
(function($){
	$.fn.bnMarcas = function(options){
		var _var 	= $.extend({},$.fn.bnMarcas.defaults,options);
		var self	= $(this);
		
		self.each(function(){
			var div 	= action.create('div');
			var frame	= action.create('div',_var.tagTextClass + '-frame');
			var prev	= action.create('span',_var.tagTextClass + '-prev');
			var next	= action.create('span',_var.tagTextClass + '-next');
			var content	= frame.append($(this).clone().css({
				position: 'absolute',
				left: action.position,
				top: 0	
			})).css({position:'relative'});
			var position = 0;
			var interval = _var.speedy;
			
			var width = 0;
			$('li',this).each(function(){ width += $(this).outerWidth() +16; });
			$('ul',content).width(width);
			
			div.append(prev, next, content);
			$(this).replaceWith(div);
			
			action.moveFrame = $('ul',frame);
			
			$(prev,this)
				.bind('mouseenter',function(){			
					action.width = (width - frame.width());
					action.interval = setInterval(action.prev,_var.speedy);
				})
				.bind('mouseleave',function(){
					action.stop();	
				});
			$(next,this)
				.bind('mouseenter',function(){
					action.width = (width - frame.width());
					action.interval = setInterval(action.next,_var.speedy);
				})
				.bind('mouseleave',function(){
					action.stop();	
				});
			action.objPrev = prev; 	action.objNext = next;
			prev.addClass('bnmarcas-block');
			if(( -(width - frame.width()) ) >= action.position )
				next.addClass('bnmarcas-block');
		});
		
	};
	
	$.fn.bnMarcas.defaults = {
		tagTextClass : 'bn-marcas',
		speedy: 5
	};
	
	var action = {
		position : 0,
		interval : null,
		moveFrame : null,
		width : 0,
		objPrev: null,
		objNext: null,
		create : function(tag,classe){
			var _class = classe || $.fn.bnMarcas.defaults.tagTextClass;
			return $(document.createElement(tag)).addClass(_class);	
		},
		prev : function(){
			if(action.position < 0 ){
				action.moveFrame.css({left:++action.position + 'px'});
				action.objNext.removeClass('bnmarcas-block');
			}else action.objPrev.addClass('bnmarcas-block');
		},
		next : function(){
			if( ( -action.width ) < action.position){
				action.moveFrame.css({left:--action.position + 'px'});
				action.objPrev.removeClass('bnmarcas-block');
			}else action.objNext.addClass('bnmarcas-block');
		},
		stop : function() {
			clearInterval(action.interval);
			}
		
	}
})(jQuery);
