	$(document).ready(function() {
		
		if (/webkit.*mobile/i.test(navigator.userAgent) && "getBoundingClientRect" in document.documentElement) {
			(function ($) {
				$.fn.offsetOld = $.fn.offset;
				$.fn.offset = function () {
					var result = this.offsetOld();
					result.top -= window.scrollY;
					result.left -= window.scrollX;
					return result;
				};
			})(jQuery);
		}
		if ($("#"+spanContainer).offset() != null) {
			var spanContainerHeight = $("#"+spanContainer).height();
			var spanContainerY = $("#"+spanContainer).offset().top;
			
			var slidingContainersHeight = new Array();
			var slidingContainersY = new Array();
			
			for (var sc=0;sc<slidingContainers.length;sc++) {
				if ($("#"+slidingContainers[sc]).length == 0) {
					slidingContainers[sc] = ''
				} else {
					slidingContainersHeight.push($("#"+slidingContainers[sc]).height());
					slidingContainersY.push($("#"+slidingContainers[sc]).offset().top);
					$('#'+slidingContainers[sc]).css('position','relative');
				} 
			}
			for (var sc=0;sc<slidingContainers.length;sc++) {
				if (slidingContainers[sc] == '') {
					slidingContainers.splice(sc,1);
				} 
			}
			var windowHeight = 0;
			var windowY = 0;
			$(window).scroll(function() {
				for (var sc=0;sc<slidingContainers.length;sc++) {
					if (slidingContainersHeight[sc] <= spanContainerHeight) { 
						windowHeight = $(window).height();
						windowY = $(window).scrollTop();
						var originY = 0;
						if (windowY >= $("#"+slidingContainers[sc]).offset().top && ($("#"+slidingContainers[sc]).offset().top + slidingContainersHeight[sc]) <= (spanContainerY + spanContainerHeight)) {
							originY = $("#"+slidingContainers[sc]).offset().top;
							targetY = Math.min(windowY,(spanContainerY + spanContainerHeight-slidingContainersHeight[sc]));
						} else if (windowY >= $("#"+slidingContainers[sc]).offset().top && ($("#"+slidingContainers[sc]).offset().top + slidingContainersHeight[sc]) > (spanContainerY + spanContainerHeight)) {
							originY = $("#"+slidingContainers[sc]).offset().top;
							targetY = ((spanContainerY + spanContainerHeight)-(slidingContainersHeight[sc]));
						} else if (windowY < $("#"+slidingContainers[sc]).offset().top && windowY > slidingContainersY[sc]) {
							originY = $("#"+slidingContainers[sc]).offset().top;
							targetY = windowY;
						} else {
							originY = $("#"+slidingContainers[sc]).offset().top;
							targetY = slidingContainersY[sc];
						}
						animate(originY,targetY,slidingContainers[sc])
					}
				}
			});
			function animate(originY,targetY,div) {
				$('#'+div).stop();
				$('#'+div).animate({top: '+='+(targetY-originY)}, timerMilliseconds);
			}
		}
	 });
