jQuery.fn.accessNews = function( settings ) { settings = jQuery.extend({ headline : "Top Stories", speed : "normal", slideBy : 2 }, settings); return this.each(function() { jQuery.fn.accessNews.run( jQuery( this ), settings ); }); }; jQuery.fn.accessNews.run = function( $this, settings ) { jQuery( ".javascript_css", $this ).css( "display", "none" ); var ul = jQuery( "ul:eq(0)", $this ); var li = ul.children(); if ( li.length > settings.slideBy ) { var $next = jQuery( ".next > a", $this ); var $back = jQuery( ".back > a", $this ); var liWidth = jQuery( li[0] ).width(); 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( "display", "block" ); ul.animate({ left: offsetLeft }, settings.speed, function() { if ( parseInt( ul.css( "left" ) ) + ul.width() <= liWidth * settings.slideBy ) { } 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( "display", "block" ); ul.animate({ left: offsetRight }, settings.speed, function() { if ( parseInt( ul.css( "left" ) ) == 0 ) { } animating = false; }); } else { animating = false; } } return false; }); $next.css( "display", "block" ) jQuery( ".view_all > a, .skip_to_news > a", $this ).click(function() { var skip_to_news = ( jQuery( this ).html() == "Skip to News" ); if ( jQuery( this ).html() == "view all" || skip_to_news ) { ul.css( "width", "auto" ).css( "left", "0" ); if ( !skip_to_news ) { jQuery( this ).html( "view less" ); } } else { if ( !skip_to_news ) { jQuery( this ).html( "view all" ); } ul.css( "width", ( li.length * liWidth ) ); $next.css( "display", "block" ); } return false; }); } };