/**********************************
	@author Matheus de Bessa
	@date   12/03/2011
***********************************/
(function($){
    $.fn.extend({ 
        slider: function(options) {
            var defaults = {
            	width: 320,
            	idBtnEsq: 'slider_btn_esq',
            	idBtnDir: 'slider_btn_dir',
            	items: 5,
            	callback : null
            }      
            var options =  $.extend(defaults, options);
            
            if ($(this).find('div:first > div').length)
            {        	
            	var totalImagens 	 = $(this).find("div:first > div").length;
            	if (totalImagens > options.items) $('#'+options.idBtnDir).fadeIn();
            	var widthImagens 	 = options.width;
            	var visivelImagens	 = Math.round($(this).width() / widthImagens);
            	var visivelImagens	 = (visivelImagens == 0) ? 1 : visivelImagens;
            	var visivelWidth	 = visivelImagens * widthImagens;
            	var totalWidth		 = widthImagens * totalImagens;
            	var divMove			 = $(this).find('div:first');
            	var stopPosition     = (visivelWidth - totalWidth);
            	var element_index	 = 0;
            	
            	
            	
            	divMove.width(totalWidth);
            	
            	$('#'+options.idBtnEsq).addClass('slider_move_esq');
            	$('#'+options.idBtnDir).addClass('slider_move_dir');
            	
            	if (divMove.position().left <= 0) $('#'+options.idBtnDir).fadeIn();
				
            	$('#'+options.idBtnEsq).click(function()
            	{
            		if (divMove.position().left < 0)
            		{
            			divMove.animate({left : "+=" + widthImagens + "px"}, function()
            			{
	            			element_index = -(divMove.position().left/widthImagens);
	            			
	            			var firstVisibleElement = divMove.find(":eq("+ element_index +")");
	            			
	            			if (options.callback) eval(options.callback);
	            		});
            		}
            	});
            	
            	$('#'+options.idBtnDir).click(function()
                {
            		if (divMove.position().left > stopPosition)
            		{
            			divMove.animate({left : "-=" + widthImagens + "px"},function() 
            			{            			
	            			element_index = -(divMove.position().left/widthImagens);
	            			
	            			var firstVisibleElement = divMove.find("a:eq("+ element_index +")");
	            			
	            			if (options.callback) eval(options.callback);
            			});
            		}
                });
                
                var firstVisibleElement = divMove.find("a:eq("+ element_index +")");
                if (options.callback) eval(options.callback);
            }
        }
    });
})(jQuery);

