jQuery.fn.accessNews = function(settings) {
   settings = jQuery.extend({
      newsHeadline: "Top Stories",
      newsSpeed: "normal",
      newsItem: 4
   }, settings);
   return this.each(function(i) {
      aNewsSlider.itemWidth = parseInt(jQuery(".item:eq(" + i + ")",".news_slider").css("width")) + parseInt(jQuery(".item:eq(" + i + ")",".news_slider").css("margin-right"));
      aNewsSlider.init(settings,this);
      jQuery(".view_all > a", this).click(function() {
        aNewsSlider.vAll(settings,this);
        return false;
      });
   });
};
var aNewsSlider = {
   itemWidth: 0,
   init: function(s,p) {
      jQuery(".messaging",p).css("display","none");
      itemLength = jQuery(".item",p).length;
      
      //if (jQuery(".view_all",p).width() == null) {
      //   jQuery(".news_items",p).prepend("<p class='view_all'>" + s.newsHeadline + " [ " + itemLength + " total ] &nbsp;-&nbsp; <a href='#'>View All</a></p>");
      //}
      
      itemWidth = parseInt(jQuery(".item",p).css("width")) + parseInt(jQuery(".item",p).css("margin-right"));
      
      newsContainerWidth = itemLength * itemWidth;
      jQuery(".container",p).css("width",newsContainerWidth + "px");
      
      if (parseInt(jQuery(".container",p).css("left")) + parseInt(jQuery(".container",p).css("width")) > itemWidth * s.newsItem) {
       jQuery(".next",p).css("display","block");
      }
      
      for(i=0;i<=s.newsItem;i++) {
        jQuery(".item" + i,p).addClass("active");
      }
      
      animating = false;
      
      jQuery(".next",p).click(function() {
      
        itemWidth = parseInt(jQuery(".item",p).css("width")) + parseInt(jQuery(".item",p).css("margin-right"));      
        
        if (animating == false) {
           animating = true;
           animateLeft = parseInt(jQuery(".container",p).css("left")) - (itemWidth);
           
           if (animateLeft + parseInt(jQuery(".container",p).css("width")) > 0) {
              jQuery(".prev",p).css("display","block");
              jQuery(".container",p).animate({left: animateLeft}, s.newsSpeed, function() {
                jQuery(this).css("left",animateLeft);
              
                itemId = Math.abs(animateLeft / itemWidth) + 1;
                
                for(i=0;i<=jQuery(".item",p).length;i++) {
                  jQuery(".item" + i,p).removeClass("active");
                }
                
                for(i = itemId;i < s.newsItem + itemId;i++) {
                  jQuery(".item" + i,p).addClass("active");
                }
                
                if (parseInt(jQuery(".container",p).css("left")) <= (jQuery(".item",p).length - s.newsItem) * -itemWidth) {
                  jQuery(".next",p).css("display","none");
                }
                animating = false;
              });
           } else {
              animating = false;
           }
        }
        return false;
      });
      jQuery(".prev",p).click(function() {
        if (animating == false) {
           animating = true;           
           itemWidth = parseInt(jQuery(".item",p).css("width")) + parseInt(jQuery(".item",p).css("margin-right"));
           animateLeft = parseInt(jQuery(".container",p).css("left")) + (itemWidth);
           if ((animateLeft + parseInt(jQuery(".container",p).css("width"))) <= parseInt(jQuery(".container",p).css("width"))) {
              jQuery(".next",p).css("display","block");
              
              itemId = Math.abs(animateLeft / itemWidth) + 1;
              
              for(i=0;i<=jQuery(".item",p).length;i++) {
                jQuery(".item" + i,p).removeClass("active");
              }
              
              for(i = itemId;i < s.newsItem + itemId;i++) {
                jQuery(".item" + i,p).addClass("active");
              }
              
              jQuery(".container",p).animate({left: animateLeft}, s.newsSpeed, function() {
                jQuery(this).css("left",animateLeft);
                if (parseInt(jQuery(".container",p).css("left")) == 0) {
                  jQuery(".prev",p).css("display","none");
                }
                animating = false;
              });
           } else {
              animating = false;
           }
        }
        return false;
      });
      
      jQuery(".scrollNav",p).click(function() {
        if (animating == false) {
          animating = true;
          
          tmpClass = this.className.split(" ");
          
          for(i=0;i<tmpClass.length;i++) {
            if(tmpClass[i].indexOf("item") != -1) {
              tmpItem = tmpClass[i].substring(tmpClass[i].indexOf("item") + 4,tmpClass[i].length);
            }
          }
            itemWidth = (parseInt(jQuery(".item",p).css("width")) + parseInt(jQuery(".item",p).css("margin-right")));       
            animateLimit = - (jQuery(".item",p).length - s.newsItem) * itemWidth;     
            animateLeft = - itemWidth * (tmpItem - 1);
            
            if(animateLeft < animateLimit)
              animateLeft = animateLimit;
              
            for(i=0;i<=jQuery(".item",p).length;i++) {
              jQuery(".item" + i,p).removeClass("active");
            }
            
            if (tmpItem > jQuery(".item",p).length - s.newsItem) {
              for(i = jQuery(".item",p).length - s.newsItem + 1; i <= jQuery(".item",p).length; i++) {
                jQuery(".item" + i,p).addClass("active");
              }
            } else {
              for(i=0; i<s.newsItem; i++){
                jQuery(".item" + (parseInt(tmpItem) + i),p).addClass("active");
              }
            }
            
            if (animateLeft + parseInt(jQuery(".container",p).css("width")) > 0) {
              jQuery(".prev",p).css("display","block");
              jQuery(".container",p).animate({left: animateLeft}, s.newsSpeed, function() {
                jQuery(this).css("left",animateLeft);
                
                if (parseInt(jQuery(".container",p).css("left")) + parseInt(jQuery(".container",p).css("width")) <= itemWidth * s.newsItem) {
                  jQuery(".next",p).css("display","none");
                } else {
                  jQuery(".next",p).css("display","block");
                }
                
                if (parseInt(jQuery(".container",p).css("left")) >= 0) {
                  jQuery(".prev",p).css("display","none");
                } else {
                  jQuery(".prev",p).css("display","block");
                }
                
                animating = false;
              });
           } else {
              animating = false;
           }
        }
        return false;
      });
   },
   
   vAll: function(s,p) {
      var o = p;
      while (p) {
        p = p.parentNode;
        if (jQuery(p).attr("class") != undefined && jQuery(p).attr("class").indexOf("news_slider") != -1) {
          break;
        }
      }
      if (jQuery(o).text().indexOf("View All") != -1) {
        jQuery(".next",p).css("display","none");
        jQuery(".prev",p).css("display","none");
        jQuery(o).text("View Less");
        jQuery(".container",p).css("left","0px").css("width",aNewsSlider.itemWidth * 2 + "px");
      } else {
        jQuery(o).text("View All");
        aNewsSlider.init(s,p);
      }
   }
};

