﻿
$(document).ready(function () {
	function AbsPosition(obj) {
		var x = y = 0;
		while (obj) {
			x += obj.offsetLeft;
			y += obj.offsetTop;
			obj = obj.offsetParent;
		}
		return { x: x, y: y };
	}

	function getScrollY() {
		var scrollY = 0;
		if (typeof window.pageYOffset == "number") {
			scrollY = window.pageYOffset;
		}
		else if (document.documentElement && document.documentElement.scrollTop) {
			scrollY = document.documentElement.scrollTop;
		} else if (document.body && document.body.scrollTop) {
			scrollY = document.body.scrollTop;
		} else if (window.scrollY) {
			scrollY = window.scrollY;
		}
		return scrollY;
	}
	var first = true;
	var sideBar = $("#ScrollBarMenu")[0];
	if(!sideBar) return;
	var elTopOffset = AbsPosition(sideBar).y;
	var firstCenterPoint = getScrollY();
	var topOffset = elTopOffset;

	$(sideBar).css(
	{
		"z-index": "10",
		"position": "relative",
		"overflow": "hidden"
	});

	function setTop() {
		$(sideBar).stop();
		var point = getScrollY();

		if ((point - firstCenterPoint)) {
			topOffset = ((point - firstCenterPoint) < elTopOffset) ? elTopOffset - (point - firstCenterPoint) : 0;
		}
		else {
			topOffset = elTopOffset;
		}
		
		var topPoint =  point - firstCenterPoint + topOffset - elTopOffset;
		if (first && firstCenterPoint) {
			first = false;
			firstCenterPoint = 0;
		}

		topPoint = (topPoint) ? topPoint + 15 : 0;

		var current = $(sideBar).css("top");
		current = parseInt(current);
		

		var banner = $("#main .lnk-locations")[0];

		bannerPosition=banner.offsetTop;
		var sideBoxHeight = $(sideBar).height();

		var tmp = (topPoint + sideBoxHeight+20);
		if (bannerPosition < tmp) {
			topPoint -= (tmp) - bannerPosition;
		}

		current = (isNaN(current)) ? 0 : current;
		var distance = Math.max(topPoint, current) - Math.min(topPoint, current);
		var speed = distance / 15 * 16;

		if (distance > 500) {
			var dif = distance - 500;
			if (topPoint > current) {
				$(sideBar).css("top", current + dif);
			}
			if (topPoint < current) {
				$(sideBar).css("top", current - dif);

			}
		}

		topPoint = "" + topPoint + "px";
		$(sideBar).animate({ top: topPoint }, speed);
	}

	setInterval(setTop, 500);

});
function StartTopLeftElPolling() {}
