
$(document).ready(function() {
	
	if( $('ul#pathways-top-links').attr('id') ) {
		pathwaysLinks();
	}
	else {
		initAccordion(); //Initialise Pathways accordion
	}
});

function pathwaysLinks() {
	var accordionLink = $('#pathways-accordion a.pathways-box-title');
	var accordionDiv = $('#pathways-accordion div.pathways-box-content');
	var pathwayLinks = $('#pathways-top-links li a');
	var pathwayId;
	var i;
	
	for( i=0; i<accordionLink.length; i++ ) {
		if( !$(accordionLink[i]).hasClass('active') ) 
		{
			$(accordionLink[i]).next('div.pathways-box-content').css({
				'display': 'none'
			});
			$(accordionLink[i]).addClass('ui-state-default');
		}
		else
		{
			$(accordionLink[i]).removeClass('ui-state-default');	
			//alert( $(accordionLink[i]).attr('class') );
		}
	}
		
	accordionLink.click(function(e) {
		e.preventDefault();
		pathwayId = $(this).attr('id');
		pathwayAccordion( pathwayId );
	});
	pathwayLinks.click(function(e) {
		pathwayId = $(this).attr('id');
		pathwayId = pathwayId.replace('top-link-', '');
		pathwayAccordion( pathwayId );
	});
	
}

function pathwayAccordion( object ) {
	
	var accordionLink = $('#pathways-accordion a.pathways-box-title');
	var accordionDiv = $('#pathways-accordion div.pathways-box-content');
	var activeLink = '#'+object;
	
	/*
	// remove active states and expanded on old active
	accordionLink.removeClass('active');
	accordionDiv.css('display', 'none');
	
	// set new accordion item to be active and expanded
	$(activeLink).addClass('active');
	$(activeLink).next('div.pathways-box-content').css('display', 'block');
	*/
	
	var oldActive = $('#pathways-accordion a.active');
	var oldActiveContent = $(oldActive).next();
	var newActive = $(activeLink);
	var newActiveContent = $(activeLink).next();
	
	// are they different?
	if( $(oldActive).attr('id') != $(newActive).attr('id') )
	{
		$(oldActive).removeClass('active');
		$(oldActive).addClass('ui-state-default');
		
		$(oldActiveContent).animate({
			height: 0	
		}, 
		500, 
		function(){
			$(oldActiveContent).css('height', 'auto');
			$(oldActiveContent).css('display', 'none');
		});
		
		$(newActive).addClass('active');
		
		
		$(newActiveContent).css('display', 'block');
		var elementHeight = $(newActiveContent).height();
		$(newActiveContent).css('height', 0);
		
		$(newActive).removeClass('ui-state-default');
		
		$(newActiveContent).animate({
			height: elementHeight
		}, 	
		500, 
		function(){
			/*$(newActiveContent).css('height', 'auto');
			$(newActiveContent).css('display', 'none');*/
		});
	}
	else
	{
		// they're the same, so just close it
		$(oldActive).removeClass('active');
		$(oldActive).addClass('ui-state-default');
		
		$(oldActiveContent).animate({
			height: 0	
		}, 
		500, 
		function(){
			$(oldActiveContent).css('height', 'auto');
			$(oldActiveContent).css('display', 'none');
		});
	}
}

function initAccordion() {
	$("#pathways-accordion").accordion({
			autoHeight: false
	});
}
