//Initialization
function initJumpNav() {
	
	Element.setStyle('article', {position:'relative', top:'-60px'} );
	
	var jumpNavList = $("jump-nav").childElements();
	var jumpDelay = 0;

	//Jump-up tab navigation
	jumpNavList.each(function(item) {
	
		new Effect.Move (item, {
			x: 0,
			y: -50,
			delay:jumpDelay,
			duration:0.3,
			mode: 'absolute',
			afterFinish: function() { new Effect.Move (item,{ x: 0, y: -45, duration:0.2, delay: 0, mode: 'absolute' }); }
			});

		jumpDelay += .03;
	
	});
	
	//Setup Click Observers
	var tabLinks = $("jump-nav").getElementsByTagName("a");
	var currentPage = document.getElementsByTagName("body")[0].getAttribute("id");

	$A(tabLinks).each(function(item) {
		//Set current tab based on body ID
		if ( item.getAttribute("id").slice(4) == currentPage ) { item.className = "current"; }
		Event.observe(item, 'click', function(evt){ toggleSubsection(evt); toggleCurrentTab(evt); Event.stop(evt); }, false);
	});
}

//Sets current tab on click
function toggleCurrentTab(evt) {
	var currentLink = Event.findElement(evt,'a').getAttribute("id").slice(4);	
	var tabLinks = $("jump-nav").getElementsByTagName("a");
	
	$A(tabLinks).each(function(item) {
		//If the link matches what was clicked, and is not current, apply 'current' class
		if ( item.getAttribute("id").slice(4) == currentLink && item.className != "current" ) {
			item.toggleClassName("current");
		//If the link does not match what was clicked but *is* current, remove 'current' class
		} else if ( item.getAttribute("id").slice(4) != currentLink && item.className == "current" ) {
			item.toggleClassName("current");
		}
	});
}

//Loads requested content on click
function toggleSubsection(evt) {
	var el = Event.findElement(evt,'a');
	var url = "/content/" + el.getAttribute("id").slice(4) + ".php";
	var target = "article-content";
	
	//Hide target div so content can fade in
	Element.hide(target);
	
	//Load content via ajax, then fade in
	var myAjax = new Ajax.Updater(target, url,
		{
			method: 'get',
		    onSuccess: function(transport){
		      Effect.Appear(target, { duration: 0.35 });
		    },
		    onFailure: function(){ alert('Sorry, content not found') }
		});
}

Event.observe(window, 'load', function() { initJumpNav(); } );