(function($){
	$.fn.newsSlider = function(options){	
		
		var options = $.extend({			
			speed: "normal",
			slideBy: 2,
			width: 600
		}, options ? options : {});	
				
		var m_direction = $(this).parent().css("direction");
		var m_align = m_direction == 'ltr' ? 'left' : 'right'; 	
		var m_align_anti = m_direction == 'ltr' ? 'right' : 'left'; 		
		$(this).find("li, li p, li img").css("float", m_align);
		
		var lipw = $(this).find("li p").outerWidth(true) - $(this).find("li p").outerWidth(false);
		$(this).width(options.width).find("li").width(options.width / options.slideBy).find("p").width((options.width / options.slideBy) - $(this).find("li img").outerWidth(true) - lipw);		
		
		var ul = $(this).find("ul:eq(0)");	
		ul.css("width", "auto").css(m_align, "0");		
		var li = ul.children();

		if (li.length > options.slideBy){
		
			var $next = $(this).find(".next > a");
			var $back = $(this).find(".back > a");

			$(this).find(".next").css(m_align_anti, "10px");
			$(this).find(".back").css(m_align, "10px");
		
			var liWidth = $(li[0]).width();
			ul.css("width", (li.length * liWidth));
			
			var animating = false;
		
			$next.click(function(){
				if (!animating){
					animating = true;
					offset = parseInt(ul.css(m_align)) - (liWidth * options.slideBy);
					var animate_align = m_direction == 'ltr' ? {left: offset} : {right: offset};
					if (offset + ul.width() > 0) {
						$back.css("display", "block");
						ul.animate(animate_align, options.speed, function() {
							if (parseInt(ul.css(m_align)) + ul.width() <= liWidth * options.slideBy) {
								$next.css("display", "none");
							}
							animating = false;
						});
					}else{
						animating = false;
					}
				}
				return false;
			}).css("display", "block");
			
			$back.click(function(){
				if (!animating){
					animating = true;
					offset = parseInt(ul.css(m_align)) + (liWidth * options.slideBy);					
					var animate_align = m_direction == 'ltr' ? {left: offset} : {right: offset};
					if (offset + ul.width() <= ul.width()){
						$next.css("display", "block");
						ul.animate(animate_align, options.speed, function(){
							if (parseInt(ul.css(m_align)) == 0){
								$back.css("display", "none");
							}
							animating = false;
						});
					}else{
						animating = false;
					}
				}
				return false;
			});			
			
			liLength = li.length+" / "+li.length;		
			$(this).find(".view_all > a").html(liLength).click(function() {
				if ($(this).html() == liLength){
					$(this).html(options.slideBy+" / "+li.length);
					//ul.animate({"width":"auto"}).css("width", "auto").css(m_align, "0");
					//ul.animate({width:"auto"}).css(m_align, "0");
					//ul.animate({"width": "100%"}, "slow", "easein");
					ul.animate({"width": "100%"});
					$next.css("display", "none");
					$back.css("display", "none");					
				}else{
					$(this).html(liLength);
					//ul.css("width", (li.length * liWidth));										
					//ul.animate({"width": "toggle"}, "slow", "easein");
					ul.animate({"width": (li.length * liWidth)});
					$next.css("display", "block");
				}
				return false;
			});
			
		}	
	}
})(jQuery);	