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); if ($next.length == 0) { var $next = $(".next_" + $this.attr("id") + " > a"); } var $back = jQuery(".back > a", $this); if ($back.length == 0) { var $back = $(".back_" + $this.attr("id") + " > a"); } 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) { $next.css("display", "none") } 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) { $back.css("display", "none") } animating = false }) } else { animating = false } } return false }); $next.css("display", "block").parent().after(['<p class="alle_anzeigen">', settings.headline, ' <span class="slider_insgesamt">insgesamt ', li.length, ' | </span><a class="slider_showall" href="#">alle anzeigen</a></p>'].join("")); jQuery(".alle_anzeigen > a, .skip_to_news > a", $this).click(function() { var skip_to_news = (jQuery(this).html() == "Skip to News"); if (jQuery(this).html() == "alle anzeigen" || skip_to_news) { ul.css("width", "auto").css("left", "0"); $next.css("display", "none"); $back.css("display", "none"); if (!skip_to_news) { jQuery(this).html("eine anzeigen") } } else { if (!skip_to_news) { jQuery(this).html("alle anzeigen") } ul.css("width", (li.length * liWidth)); $next.css("display", "block") } return false }) } };
