$.fn.slideNews = function(options) {
	var settings = $.extend({
	        slidesVisible: 2,
	        slideSpeed: 300,
	        slidesPerMove: 1,
	        easing: null,
		url: null,
		slideWidth: null,
		totalSlides: null
	    }, options);
    return this.each(function(i){
	
	if( !options.slideWidth ) {
		settings.slideWidth = parseInt($("li.slide:first",this).width());
	}
	else {
		settings.slideWidth = options.slideWidth;
	}

	if( options.totalSlides == null ) {
	        var itemLength = $("li.slide",this).length;
	}
	else {
		var itemLength = options.totalSlides;
	}

	//alert(settings.slideWidth+' '+itemLength);

        var animateSize = settings.slideWidth;
        var slideContainerWidth = itemLength * settings.slideWidth;
        if( settings.slidesVisible < itemLength ){
	        $(".next",this).addClass("next_on");
        }        
        $(".navigation ul li a",this).click(function() {
        	moveTo( $(this).text() );
        	return false;
        });
        var animating = false;
        var slideIndex = settings.slidesVisible;        
        var slider =  $(this);
        $(".navigation ul li.element_"+slideIndex,slider).addClass("on");
        /*turn off FF highlighting*/
        $(".navigation p",this).focus(function(){this.blur()});
        $(".navigation ul li a",this).focus(function(){this.blur()});
        
        function moveTo(slideNum){
            if (animating == true) {return false;}
            if(slideNum == slideIndex){return false;}
            animating = true;
            if( slideNum > itemLength ){ slideNum = itemLength; }
            if( slideNum < settings.slidesVisible ){ slideNum = settings.slidesVisible; }
        	var slideOffset = slideIndex - slideNum;

        	/*load empty slides*/
		if( options.url && slideOffset < 0 && slideIndex <= ((options.totalSlides/options.slidesVisible)+1) ) {
	       		ajaxLoad(slideIndex,options.slidesVisible,options.url);
		}

        	$(".slides .element_"+slideNum+" .empty",slider).loadSlide();
		first = (slideNum - options.slidesVisible) + 1;
		$(".slides .element_"+first+" ",slider).addClass("first");
 			var animateLeft = (slideIndex-slideNum) * settings.slideWidth;
// 			animateLeft = (animateLeft>0 ) ? "+="+animateLeft : "-="+(animateLeft*-1);
 			animateLeft = parseInt($(".slides",slider).css("left"))+animateLeft;
        	/*move*/
            $(".slides",slider).animate({left: animateLeft}, settings.slideSpeed, function() {
	             var offset = parseInt(animateLeft / animateSize); 
	             slideIndex = slideNum;//settings.slidesVisible-offset;
                 $(".previous",slider).addClass("previous_on");
                 $(".next",slider).addClass("next_on");
                 if (slideIndex - settings.slidesVisible  <= 0) {
                     $(".previous",slider).removeClass("previous_on");
                 }else if ( slideIndex >= itemLength ) {
	                 $(".next",slider).removeClass("next_on");
	             }
	             for(var i=0;i<settings.slidesPerMove;i++){
	             	if(slideNum+i+1 > itemLength) {
                            break;
                        }
		        $(".slides .element_"+(slideNum+i+1)+" .empty",slider).loadSlide();
	             }
	             $(".slides .element_"+(slideNum-1)+" .empty",slider).loadSlide();
	             $(".navigation ul li",slider).removeClass("on");
	             $(".navigation ul li.element_"+slideIndex,slider).addClass("on");
	             animating = false;
         	});
        }
        $(".next",this).click(function() {
        	if( slideIndex < itemLength ){
	        	moveTo(slideIndex +settings.slidesPerMove);
	        }
            return false;
        });
        $(".previous",this).click(function() {
        	if( slideIndex > settings.slidesVisible ){
	        	moveTo(slideIndex - settings.slidesPerMove);
	        }
            return false;
        });
        $.fn.loadSlide = function(){
	        if(this.html() == null){return}
			this.attr("src", function() { return this.title }).removeClass("empty");
			return false;
        }
    });
};

    function Slideable( wrapperId, options ){
		loadedurls = new Array(); //get a ajax req for an url once only
		if(options.url) {
			ajaxLoad = function(offset,show,url) {
					var urlexists = 0;
					var seekurl = url+'?offset='+offset+'&show='+show+'&nid='+options.nid;
					for(var i=0;i<loadedurls.length;i++) {
						if(loadedurls[i] == seekurl)  urlexists = 1;
					}
					if( urlexists < 1 ) {
							loadedurls.push(seekurl);
							$.get(url, { offset: offset, show: show, nid: options.nid }, function(data){
								$("#"+wrapperId+" .slides").append(data); });
					}
			}
			if( options.url) {
					ajaxLoad(0,options.slidesVisible,options.url);
			}
		}
		$('#'+wrapperId).slideNews(options);
    }
	
