(function($) {
	$.fn.slider = function(options){
		var defaults = {
			prevId: 		'prevBtn',	
			nextId:			'nextBtn'	
		} 
		var options = $.extend(defaults, options);
		
		this.each(function(){
			var obj = $(this);
			var s = $("li", obj).length;	
			var w = $("li", obj).width();	
			var obj_w = obj.width();		
			var ul_w = s*w;	
			var flag = false;				
			
			$("ul",obj).width(ul_w);
			var go_w = ul_w-obj_w;
			if(go_w > 0 && go_w > obj_w){	
				go_w = obj_w;				
				flag = true;
			}
			
			var back_w = 0;
			$("#"+options.prevId).click(function(){
				animate("prev",back_w);
				$("#"+options.nextId).attr("class","nextd");
			});
			$("#"+options.nextId).click(function(){
				animate("next",-go_w);	
				$("#"+options.prevId).attr("class","prevd");		
			});	
			
			function adjust(active,f){
				switch (active){
					case 'prev':
						if(flag){
							if(back_w < 0){
								go_w -= obj_w;								
								var temp_back_w = back_w+obj_w;
								back_w = temp_back_w < 0 ? temp_back_w : 0;
							}else{
								$("#"+options.prevId).attr("class","prevn");
							}
						}else{
							$("#"+options.prevId).attr("class","prevn");
						}
						break;
					case 'next':					
						var temp_w = ul_w-obj_w;
						var temp_back_w = obj_w-go_w;
						back_w = temp_back_w < 0 ? temp_back_w : 0;
						if(flag && go_w < temp_w){
							if((go_w+obj_w) > temp_w){
								go_w += (temp_w%obj_w);
							}else{
								go_w +=obj_w;
							}
						}else{
							$("#"+options.nextId).attr("class","nextn")
						}
						break;
				}				
			};
			
			function animate(active,f){
				$("ul",obj).animate(
					{ marginLeft: f }, 
					{ queue:false,complete:function(){adjust(active,f)} }
				);	
			}
		})	
	}
})(jQuery);