﻿jQuery.fn.infinityscroll = function(settings) {
	    settings = jQuery.extend({
	    TargetWidth: 100,
	    Movement: 1,
	    FrameDelay: 10
	    }, settings);
        return this.each(function(){
            var intCurPos = 0;
            var intScrollerWidth = 0;
            var objScroller = jQuery(this);
            objScroller.css({'position':'relative','z-index':'998'});
            objScroller.wrap("<div class='scroller'></div>");
            var objScrollerMask = objScroller.parent(); 
            objScrollerMask.css({'position':'relative','overflow':'hidden','z-index':'999'});
            objScrollerMask.width(100000);            
            objScroller.append(objScroller.html());
            objScroller.find("li").each(function(s) {                    
                    jQuery(this, s).css({'float':'left'});
                    intScrollerWidth += jQuery(this, s).outerWidth(true);                    
                });                
            objScroller.width(intScrollerWidth);
            objScrollerMask.width(settings.TargetWidth);
            function scroll(Movement,FrameDelay) {                
                if ((intScrollerWidth / 2) + (intCurPos - Movement) >= 0) {
                    intCurPos -= Movement;                    
                } else {
                    intCurPos = 0;
                };
                objScroller.animate({left: intCurPos}, FrameDelay, "linear", function(){scroll(Movement, FrameDelay);});
            };
            if ((intScrollerWidth / 2) > settings.TargetWidth)
            {
                scroll(settings.Movement,settings.FrameDelay);
            };
            objScroller.hover(function(){objScroller.stop();}, function(){scroll(settings.Movement,settings.FrameDelay);});
        });
    };
jQuery.log = function(message) {
        if(window.console) {
            console.debug(message);
        } else {
            alert(message);
        }
    };
