﻿/// <reference path="jquery-1.3.2.min-vsdoc.js"/>
var debug = "";
var subNavWidth = 0;
var sliderX = 0;
var panelWidth = 960;
var isScrollerActive = false;
var activeSubNavItem = null;

$(document).ready(function() {
	var subNavDisplay = $("div.subNavContainer").css("display");
	if (subNavDisplay == "none") {
		window.setTimeout("revealSubNav()", 500);
	}
	else {
		initScrollers();
	}
});

function revealSubNav() {
	$("div.subNavContainer").slideDown(50, function() { initScrollers(); });
}

function initScrollers() {
	subNavWidth = $("#SubNavigation").width();
	if (subNavWidth > panelWidth) {
		isScrollerActive = true;
		try {
			activeSubNavItem = $("#SubNavigation li.on").get(0);
		}
		catch (e) { }
		$("#SubNavigation li").each(function() {
			this.toggleView = function() {
				var left = $(this).position().left;
				var right = left + $(this).width();
				var xbound1 = 0 - sliderX;
				var xbound2 = xbound1 + panelWidth;
				var isInPanel = left >= xbound1 && right <= xbound2;
				//$(this).css("opacity", isInPanel ? "1" : "0.2");
				$(this).css("visibility", isInPanel ? "visible" : "hidden");
				//debug += $(this).text() + ": " + left + "/" + right + " [" + xbound1 + "/" + xbound2 + "]\n";
			}
		});
		if (activeSubNavItem != null && $(activeSubNavItem).position().left > panelWidth / 2) {
			var scrollTo = -parseInt($(activeSubNavItem).position().left / 2) + parseInt($(activeSubNavItem).width()/2);
			scrollSubNavTo(scrollTo);
		}
		else {
			trimLinks();
		}
		toggleScrollerButtons();
		//$("#ScrollerBtnRight").fadeIn();
	}
}

function trimLinks() {
	debug = "";
	$("#SubNavigation li").each(function() {
		this.toggleView();
	});
	//alert(debug);
}

function slideSubNavRight() {
	if (-sliderX < subNavWidth - panelWidth) {
	//if (subNavWidth + sliderX < panelWidth) {
		scrollSubNavTo(panelWidth - subNavWidth);
	}
	else {
		scrollSubNavTo(sliderX - panelWidth);
	}
}

function slideSubNavLeft() {
	if (-sliderX < panelWidth) {
		scrollSubNavTo(0);
	}
	else {
		scrollSubNavTo(sliderX + panelWidth);
	}
}

function scrollSubNavTo(xpos) {
	sliderX = xpos;
	trimLinks();
	toggleScrollerButtons();
	$("#SubNavScroller").animate({ "left": sliderX }, 200);
}

function toggleScrollerButtons() {
	toggleLeftScroller();
	toggleRightScroller();
}

function toggleLeftScroller() {
	if (sliderX < 0) {
		$("#ScrollerBtnLeft").fadeIn();
	}
	else {
		$("#ScrollerBtnLeft").fadeOut();
	}
}

function toggleRightScroller() {
	if (-sliderX < subNavWidth - panelWidth) {
		$("#ScrollerBtnRight").fadeIn();
	}
	else {
		$("#ScrollerBtnRight").fadeOut();
	}
}
