/*

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

	License:
	Unrestricted. This script is free for both personal and commercial use.

*/

jQuery.fn.accessNews = function( settings ) {
	settings = jQuery.extend({
        speed : "normal",
		slideBy : 1,
		interval : 1000,
		play : true,
		direction : 'right'
    }, settings);
    return this.each(function() {
		jQuery.fn.accessNews.run( jQuery( this ), settings );
    });
};
jQuery.fn.accessNews.run = function( $this, settings ) {
	var ul = jQuery( "ul:eq(0)", $this );
	var li = ul.children();
	if ( li.length > settings.slideBy ) {
		var $next = jQuery( ".SliderNavigation .Next", $this );
		var $back = jQuery( ".SliderNavigation .Prev", $this );
		var liWidth = jQuery( $this ).width();
		var animating = false;
		ul.css( "width", ( li.length * liWidth ) );
		
		function next_click()
		{
			settings.play = false;
			if ( !animating ) {
				animating = true;
				offsetLeft = parseInt( ul.css( "left" ) ) - ( liWidth * settings.slideBy );
				if ( offsetLeft + ul.width() > 0 ) {
					ul.animate({
						left: offsetLeft
					}, settings.speed, function() {
						if ( parseInt( ul.css( "left" ) ) + ul.width() <= liWidth * settings.slideBy ) {
							settings.direction = 'left';
						}
						animating = false;
					});
				} else {
					animating = false;
				}
			}
			return false;
		}
		
		function back_click() {
			settings.play = false;
			if ( !animating ) {
				animating = true;
				offsetRight = parseInt( ul.css( "left" ) ) + ( liWidth * settings.slideBy );
				if ( offsetRight + ul.width() <= ul.width() ) {
					ul.animate({
						left: offsetRight
					}, settings.speed, function() {
						if ( parseInt( ul.css( "left" ) ) == 0 ) {
							settings.direction = 'right';
						}
						animating = false;
					});
				} else {
					animating = false;
				}
			}
			return false;
		}
		
		$next.click(next_click);
		$back.click(back_click);
		
		function step_next()
		{
			if (settings.play)
			{
				if (settings.direction == 'left')
				{
					back_click();
				}
				else
				{
					next_click();
				}
				settings.play = true;
			}
		}
		
		$this.everyTime(settings.interval, step_next);
	}
};