dojo.config.dojoBlankHtmlUrl = "/blank.html";

dojo.require("dojox.NodeList.delegate");
dojo.require("dojo.fx");
dojo.require("dojo.hash");
dojo.ready(function(){
	/**
	 * Animates the scrollLeft and height of the given DOM node.
	 */
	function animate(/**DomNode*/ node, /**Number*/ left, /**Number*/ height){
		dojo.fx.combine([
			dojo.animateProperty({
				node: node,
				properties: { height: height }
			}),
			new dojo.Animation({
				node: node,
				easing: dojo._defaultEasing,
				curve: [ node.scrollLeft, left ],
				onAnimate: function (value) {
					this.node.scrollLeft = value;
				}
			})
		]).play();
	}
	
	// Defining up here to please jsLint
	var container = dojo.byId("supportSliderContainer"), listHeader, list;

	/**
	 * Handles an event on the support plans menu.
	 */
	function handleMenuEvent(/**Event*/ event){
		var planId = dojo.attr(this, "data-id"),
			plan   = planId ? dojo.byId("supportPlan" + planId) : container.children[0];

		event.type === "click" && this.blur && this.blur();
		if((event.type === "keypress" && event.which !== dojo.keys.SPACE) || !plan){
			return;
		}

		dojo.hash(planId ? "/plan=supportPlan" + planId : "/", true);

		animate(container, plan.offsetLeft, plan.offsetHeight);
	}

	if(!container){
		return;
	}

	listHeader = dojo.byId("supportPlansHeader");
	list       = dojo.byId("supportPlans").tBodies[0];

	// Allows (all two) users without JS enabled to use the list of support plans
	dojo.addClass(dojo.body(), "supportSliderEnabled");

	dojo.connect(listHeader, "click", handleMenuEvent);
	dojo.connect(listHeader, "keypress", handleMenuEvent);

	dojo.NodeList(list)
		.delegate("tr", "click", handleMenuEvent)
		.delegate("tr", "keypress", handleMenuEvent);

	listHeader.tabIndex = 0;
	dojo.forEach(list.rows, function(node){
		node.tabIndex = 0;
	});

	if(/\/plan=(supportPlan[0-9]+)/.exec(dojo.hash())){
		var plan = dojo.byId(RegExp.$1);
		container.scrollLeft = plan.offsetLeft;
		container.style.height = plan.offsetHeight + "px";
	}
});
