(function($){

$.fn.scrollingBanner = function (options) {

	$.fn.scrollingBanner.defaults = {
		logoClass: 'logo',
		scrollerClass: 'scroller',
		intervalMilliseconds: 10,
		intervalPixels: 1,
		debug: false
	};

	var opts = $.extend({}, $.fn.scrollingBanner.defaults, options);
	
	return this.each(function() {

		var $container = $(this);
		
		// fix logo transparency in IE6
		var $logo = $('.' + opts.logoClass, $container);
		DD_belatedPNG.fix($logo.get(0));
		
		// clone scroller (handles scenario when image has almost scrolled outside window)
		var $scroller1 = $('.' + opts.scrollerClass, $container);
		var $scroller2 = $scroller1.clone().insertAfter($scroller1);
		$scroller2.css('left', $scroller1.width() + 'px');
		
		// setup 'animation' loop
		var interval = setInterval(moveScrollingBanner, opts.intervalMilliseconds);
		function moveScrollingBanner()
		{
			var scrollers = [$scroller1, $scroller2];
			for (var index in scrollers)
			{
				var $scroller = scrollers[index];
				$scroller.css('left', $scroller.position().left - opts.intervalPixels + 'px');
				if ($scroller.position().left + $scroller.width() <= 0)
				{
					$scroller.css('left', $scroller.position().left + (2 * $scroller.width()) + 'px'); 
				}
			}
			if (opts.debug == true)
			{
				if (console && console.log)
				{
					console.log('scroller1.left: ' + $scroller1.position().left + ', scroller2.left: ' + $scroller2.position().left);
				}
			}
		}
		
		if (opts.debug == true)
		{
			$scroller1.add($scroller2).click(function(e)
			{
				if (interval == null)
				{
					interval = setInterval(moveScrollingBanner, opts.intervalMilliseconds);
				}
				else
				{
					clearInterval(interval);
					interval = null;
				}
			})
		}
	});
}

})(jQuery);
