jQuery.fn.accessNews = function(settings) {
    settings = jQuery.extend({
        newsHeadline: "Top Stories",
        newsSpeed: "normal",
		newsDirection: "horizontal",
		newsStep: 2,
		newsNbItemsVisible: 2
    }, settings);
    return this.each(function(i) {
        aNewsSlider.itemWidth = aNewsSlider.getNumberValue(jQuery(".item:eq(" + i + ")",".news_slider").css("width")) + aNewsSlider.getNumberValue(jQuery(".item:eq(" + i + ")",".news_slider").css("margin-right")) + aNewsSlider.getNumberValue(jQuery(".item:eq(" + i + ")",".news_slider").css("borderLeftWidth")) + aNewsSlider.getNumberValue(jQuery(".item:eq(" + i + ")",".news_slider").css("borderRightWidth"));
		aNewsSlider.itemHeight = aNewsSlider.getNumberValue(jQuery(".item:eq(" + i + ")",".news_slider").css("height")) + aNewsSlider.getNumberValue(jQuery(".item:eq(" + i + ")",".news_slider").css("margin-bottom")) + aNewsSlider.getNumberValue(jQuery(".item:eq(" + i + ")",".news_slider").css("borderTopWidth")) + aNewsSlider.getNumberValue(jQuery(".item:eq(" + i + ")",".news_slider").css("borderBottomWidth"));
		aNewsSlider.marginTop = aNewsSlider.getNumberValue(jQuery(".item:eq(" + i + ")",".news_slider").css("margin-top"));
		aNewsSlider.marginLeft = aNewsSlider.getNumberValue(jQuery(".item:eq(" + i + ")",".news_slider").css("margin-left"));
        aNewsSlider.init(settings,this);
        jQuery(".view_all > a", this).click(function() {
            aNewsSlider.vAll(settings,this);
            return false;
        });
    });
};
var aNewsSlider = {
    itemWidth: 0,
	itemHeight: 0,
	marginLeft: 0,
	marginTop: 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>");
        }
        newsContainerWidth = itemLength * aNewsSlider.itemWidth + aNewsSlider.marginLeft;
		newsContainerHeight = itemLength * aNewsSlider.itemHeight + aNewsSlider.marginTop;
        if (s.newsDirection=="vertical") {
			jQuery(".container",p).css("height",newsContainerHeight + "px");
			jQuery(".news_items",p).css("height",(aNewsSlider.itemHeight * s.newsNbItemsVisible + aNewsSlider.marginTop) + "px");
		} else {
			jQuery(".container",p).css("width",newsContainerWidth + "px");
			jQuery(".news_items",p).css("width",(aNewsSlider.itemWidth * s.newsNbItemsVisible + aNewsSlider.marginLeft) + "px");
		}
        jQuery(".next",p).css("display","block");
		//masque les boutons dès le démarrage si besoin
		if (s.newsDirection=="vertical") {
			if (aNewsSlider.getNumberValue(jQuery(".container",p).css("top")) == 0) {
				jQuery(".prev",p).css("display","none");
			}
			if (aNewsSlider.getNumberValue(jQuery(".container",p).css("top")) + aNewsSlider.getNumberValue(jQuery(".container",p).css("height")) <= aNewsSlider.getNumberValue(jQuery(".news_items",p).css("height"))) {
				jQuery(".next",p).css("display","none");
			}
		} else {
			if (aNewsSlider.getNumberValue(jQuery(".container",p).css("left")) == 0) {
				jQuery(".prev",p).css("display","none");
			}
			if (aNewsSlider.getNumberValue(jQuery(".container",p).css("left")) + aNewsSlider.getNumberValue(jQuery(".container",p).css("width")) <= aNewsSlider.getNumberValue(jQuery(".news_items",p).css("width"))) {
				jQuery(".next",p).css("display","none");
			}
		}
        animating = false;
        jQuery(".next",p).click(function() {
            if (animating == false) {
                animating = true;
				if (s.newsDirection=="vertical") {
					animateTop = aNewsSlider.getNumberValue(jQuery(".container",p).css("top")) - (aNewsSlider.itemHeight * s.newsStep);
					if (animateTop + aNewsSlider.getNumberValue(jQuery(".container",p).css("height")) > 0) {
						jQuery(".prev",p).css("display","block");
						jQuery(".container",p).animate({top: animateTop}, s.newsSpeed, function() {
							jQuery(this).css("top",animateTop);
							if (aNewsSlider.getNumberValue(jQuery(".container",p).css("top")) + aNewsSlider.getNumberValue(jQuery(".container",p).css("height")) <= aNewsSlider.getNumberValue(jQuery(".news_items",p).css("height"))) {
								jQuery(".next",p).css("display","none");
							}
							animating = false;
						});
					} else {
						animating = false;
					}
				} else {
					animateLeft = aNewsSlider.getNumberValue(jQuery(".container",p).css("left")) - (aNewsSlider.itemWidth * s.newsStep);
					if (animateLeft + aNewsSlider.getNumberValue(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 (aNewsSlider.getNumberValue(jQuery(".container",p).css("left")) + aNewsSlider.getNumberValue(jQuery(".container",p).css("width")) <= aNewsSlider.getNumberValue(jQuery(".news_items",p).css("width"))) {
								jQuery(".next",p).css("display","none");
							}
							animating = false;
						});
					} else {
						animating = false;
					}
				}
                return false;
            }
        });
        jQuery(".prev",p).click(function() {
            if (animating == false) {
                animating = true;
				if (s.newsDirection=="vertical") {
					animateTop = aNewsSlider.getNumberValue(jQuery(".container",p).css("top")) + (aNewsSlider.itemHeight * s.newsStep);
					if ((animateTop + aNewsSlider.getNumberValue(jQuery(".container",p).css("height"))) <= aNewsSlider.getNumberValue(jQuery(".container",p).css("height"))) {
						jQuery(".next",p).css("display","block");
						jQuery(".container",p).animate({top: animateTop}, s.newsSpeed, function() {
							jQuery(this).css("top",animateTop);
							if (aNewsSlider.getNumberValue(jQuery(".container",p).css("top")) == 0) {
								jQuery(".prev",p).css("display","none");
							}
							animating = false;
						});
					} else {
						animating = false;
					}
				} else {
					animateLeft = aNewsSlider.getNumberValue(jQuery(".container",p).css("left")) + (aNewsSlider.itemWidth * s.newsStep);
					if ((animateLeft + aNewsSlider.getNumberValue(jQuery(".container",p).css("width"))) <= aNewsSlider.getNumberValue(jQuery(".container",p).css("width"))) {
						jQuery(".next",p).css("display","block");
						jQuery(".container",p).animate({left: animateLeft}, s.newsSpeed, function() {
							jQuery(this).css("left",animateLeft);
							if (aNewsSlider.getNumberValue(jQuery(".container",p).css("left")) == 0) {
								jQuery(".prev",p).css("display","none");
							}
							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");
            if (s.newsDirection=="vertical") {
				jQuery(".container",p).css("top","0px").css("height",aNewsSlider.itemHeight * s.newsStep + "px");
				jQuery(".news_items",p).css("height",aNewsSlider.itemHeight * s.newsNbItemsVisible + "px");
			} else {
				jQuery(".container",p).css("left","0px").css("width",aNewsSlider.itemWidth * s.newsStep + "px");
				jQuery(".news_items",p).css("width",aNewsSlider.itemWidth * s.newsNbItemsVisible + "px");
			}
        } else {
            jQuery(o).text("View All");
            aNewsSlider.init(s,p);
        }
    },
	
	getNumberValue: function(value) {
		var i = parseInt(value);
		var result = 0;
		if (isNaN(i)) {
			switch (value) {
				case 'thin':
					result = 2;
					break;
				case 'medium':
					result = 3;
					break;
				case 'thick':
					result = 6;
					break;
			}
		} else {
			result = i;
		}
		return result;
	}
};

