/*

	----------------------------------------------------------------------------------------------------
	Accessible News Slider
	----------------------------------------------------------------------------------------------------
	
	Author:
	Brian Reindel
	
	Author URL:
	http://blog.reindel.com

	License:
	Unrestricted. This script is free for both personal and commercial use.
	
	Modified quite a lot.

*/

jQuery.fn.accessNews = function( settings ) {
	settings = jQuery.extend({
        speed : "normal",
		slideBy : 2,
		itemsWide : 5
    }, settings);
    return this.each(function() {
		jQuery.fn.accessNews.run($(this), settings);
    });
};
jQuery.fn.accessNews.run = function( $this, settings ) {
	var ul = $("ul", $($this));
	var li = ul.children();
	if (li.length > settings.slideBy) {
		var $next = $(".next > a", $this);
		var $back = $(".back > a", $this);
		var liWidth = $("li:first", $this).outerWidth();
		var animating = false;
		ul.css("width", (li.length * liWidth));
		$next.click(function() {
			if (!animating) {
				animating = true;
				offsetLeft = parseInt(ul.css("left")) - (liWidth*settings.slideBy);
				if (offsetLeft + ul.width() > 0) {
					$back.css('opacity','1');
					ul.animate({
						left: offsetLeft
					}, settings.speed, function() {
						if (parseInt(ul.css( "left")) + ul.width() <= liWidth*(settings.slideBy*settings.itemsWide)) {
							$next.css('opacity','0.3');
						}
						animating = false;
					});
				} else {
					animating = false;
				}
			}
			return false;
		});
		$back.click(function() {
			if (!animating) {
				animating = true;
				offsetRight = parseInt(ul.css("left")) + (liWidth*settings.slideBy);
				if (offsetRight+ul.width() <= ul.width()) {
					$next.css('opacity','1');
					ul.animate({
						left: offsetRight
					}, settings.speed, function() {
						if (parseInt(ul.css("left")) == 0) {
							$back.css('opacity','0.3');
						}
						animating = false;
					});
				} else {
					animating = false;
				}
			}
			return false;
		});
		if (li.length > settings.itemsWide) {
			$next.css('opacity','1');
		} else {
			$next.css('opacity','0.3');
		}
		$back.css('opacity','0.3');
	}
};