/** Usage

	jQuery(window).bind('load', function(){
		jQuery().prepare_slider('ul#name'); 
		
		...
	}

**/

(function($){
	
	$.fn.prepare_slider = function(slider_container, left_btn, right_btn, increment, autostart) {
									
		var slider_ul_id = this;

		var x_pos = 0;
		var li_items_n = 0;	
		var right_clicks = 0;		
		var left_clicks = 0;					
		var li_col = $('#' + slider_ul_id.attr('id') + " li");		
		var li_width = li_col.outerWidth(true);		
		var viewWindow = Math.round($(slider_container).width()/li_width);
		var total_clicks = 0;
		
		if (increment == null) {
			increment = 1	
		}
		
		li_col.each(function(index){			
			x_pos += $(this).outerWidth(true);
			li_items_n++;								
		})	
		
		right_clicks = li_items_n - viewWindow;
		total_clicks = li_items_n - viewWindow;	
			
		slider_ul_id.css('position','relative');
		slider_ul_id.css('left','0px');
		slider_ul_id.css('width', x_pos+'px');
		
		var is_playing = false;
		var completed = function() { is_playing = false; }
				
		$(left_btn).click( function(){	
			cur_offset = slider_ul_id.position().left;
			if (!is_playing){
				// alert(slider_ul_id.attr('id') + '|' + li_items_n + '|' + left_clicks + '|' + cur_offset + '|' + li_width + '|' + li_width + '|' + total_clicks);
				if (left_clicks > 0) {
						is_playing = true; 
						slider_ul_id.animate({'left': cur_offset + li_width * increment + 'px'}, 700, "linear", completed); 
						right_clicks = right_clicks + increment; 
						left_clicks = left_clicks - increment;
					} 
					else {
						is_playing = true;
						slider_ul_id.animate({'left':    -li_width*total_clicks	+ 'px'}, 700, "linear", completed); 
						right_clicks = 0;
						left_clicks = total_clicks;
					}
			}			
		});
		
		$(right_btn).click( function(){
			if (!is_playing){			
				cur_offset = slider_ul_id.position().left;			
			 	if (right_clicks > 0) {
						is_playing = true; 
						slider_ul_id.animate({'left': cur_offset - li_width * increment + 'px'},700, "linear", completed );
						right_clicks = right_clicks - increment; 
						left_clicks = left_clicks + increment; 
				} 
				else { 
						is_playing = true; 
						slider_ul_id.animate({'left':    0	+ 'px'},700, "linear", completed ); 
						left_clicks = 0;
						right_clicks = total_clicks;
					}			 
			}
		});	
		
		
		function autostartfn() {
			var slider_link_index = 1;
			if(slider_link_index <= total_clicks){
					$(right_btn).trigger('click');
					slider_link_index++;
					setTimeout(function(){autostartfn()}, 5000); //select change time
			}
		}

		if(autostart)	 {	
			autostartfn();	
			setTimeout(function(){autostartfn()}, 5000);
		}
		
	}
		
})(jQuery);


/*jQuery.fn.over = function(){	
		jQuery(this).each(function(i){
			jQuery(this).bind("mouseover", function(){
					jQuery(this).addClass("over");
				})
			jQuery(this).bind("mouseout", function(){
					jQuery(this).removeClass("over");
				})
		});		
   }*/
