(function($) {
	
	$.fn.newsSlider = function(options) {
        return this.each(function() {   
            $.newsSlider(this, options);
        });
    };
		
	$.newsSlider = function(container, options){
		var settings = {
			'newssliderwidth': '150px',
			'newsatslide': 1,
			'newsSpeed': 'normal',
			'btnnext': null,
			'btnprev': null
		}
		if (options) settings = $.extend(settings, options);
		// $(".messaging",p).css("display","none");
		$.newsSlider.init(container, settings);
	};
	
	$.newsSlider.init = function(container, settings) {
		settings.width = settings.newssliderwidth;
			
		if (settings.newsatslide > 1) {
			var wrapper = null;
			$(container).children().each(function(i) {
				if (i % settings.newsatslide == 0) {
					wrapper = $('<div></div>');
					$(wrapper).appendTo(container);
				}
				$(this).appendTo(wrapper);
			});
		}
			
		var items = $(container).children();
		var newsItemsWidth = items.length * parseInt(settings.newssliderwidth);
		$(container).css({'position':'relative', 'width': settings.newssliderwidth, 'overflow':'hidden'});
		var newsitems = $('<div id="newsitems"></div>').css({'position':'absolute','width':newsItemsWidth+'px',left:0,top:0});
		$(items).each(function() {
			$(this).css({'float':'left', 'width': settings.newssliderwidth});
		}).wrapAll($(newsitems));
			
		if (settings.btnnext === null) 
			settings.btnnext = $('<div></div>').addClass('btnnext').text('Next').insertAfter(container);
		else settings.btnnext = $('#'+settings.btnnext);
		if (items.length <= 1) $(settings.btnnext).addClass('disabled');
		 
		if (settings.btnprev === null) 
			settings.btnprev = $('<div></div>').addClass('btnprev').addClass('disabled').text('Prev').insertAfter(container);
		else settings.btnprev = $('#'+settings.btnprev);
		
		var maxItemsHeight = 0;
		$(items).each(function() {
			var itemHeight = $(this).height();
			if (itemHeight > maxItemsHeight) maxItemsHeight = itemHeight;
		});
		$(newsitems).css('height',maxItemsHeight+'px');
		$(container).css('height',maxItemsHeight+'px');
		$(settings.btnprev).addClass('disabled');
		animating = false;
			
		$(settings.btnnext).click(function(){
			if (animating == false) {
				animating = true;
				animateLeft = parseInt( $('#newsitems', container).css("left")) - parseInt(settings.width);
				if (animateLeft + parseInt($('#newsitems', container).css("width")) > 0) {
					
					$(settings.btnprev).removeClass('disabled');
					$('#newsitems', container).animate({
						left: animateLeft
					}, settings.newsSpeed, function(){
						$(this).css("left", animateLeft);
						if (parseInt($('#newsitems', container).css("left")) + parseInt($('#newsitems', container).css("width")) <= parseInt(settings.width)) {
							$(settings.btnnext).addClass('disabled');
						}
						animating = false;
					});
						
				}
				else {
					animating = false;
				}
			}
			return false;
		});
			
		$(settings.btnprev).click(function(){
			if (animating == false) {
				animating = true;
				animateLeft = parseInt( $('#newsitems', container).css("left")) + parseInt(settings.width);
				if (animateLeft + parseInt($('#newsitems', container).css("width")) <= parseInt($('#newsitems', container).css("width"))) {
						
					$(settings.btnnext).removeClass('disabled');
					$('#newsitems', container).animate({
						left: animateLeft
					}, settings.newsSpeed, function(){
						$(this).css("left", animateLeft);
						if (parseInt($('#newsitems', container).css("left")) == 0) {
							$(settings.btnprev).addClass('disabled');
						}
						animating = false;
					});
						
				}
				else {
					animating = false;
				}
			}
			return false;
		});
	};
	
})(jQuery);