var $slideshow;
var $slideArray;
var np;
var timer;
var globalCite = "&mdash;Photos by Allen Brisson-Smith";
var playText="Play Music";
var muteText="Mute Music";
var musicfile="";
var autoPlay = 1;

function initalizeSlideshow()
{
	$slideshow = $('slideshow');
	if(musicfile !="") setupAudioPlayer();
	else {
		buildNav();
		toggleSlideshow();
	}
}

function setupAudioPlayer()
{
	var flashvars = {};
	flashvars.file = musicfile;
	flashvars.as = 0;
	var params = {};
	params.allowscriptaccess = "always";
	var attributes = {};
	attributes.id = "niftyPlayer1";
	swfobject.embedSWF("http://assets.aarp.org/www.aarpmagazine.org_/articles/health/vitality_national/swf/niftyplayer.swf", "musicPlayer", "0", "0", "9.0.0", false, flashvars, params, attributes,finishAudioPlayer);
}

function finishAudioPlayer(e)
{
	if(e.success)
	{
		buildNav();
		toggleSlideshow();
		setTimeout(startPlayer,1000);
	}
}

function startPlayer()
{
	np = niftyplayer('niftyPlayer1');
	if(np) { buildMusic(); if(autoPlay) togglePlayer(); }
}

function advance() {
	current = (current + 1) % $slideArray.length;
	showSlide(current);
}

function previous() {
	current = (current - 1) % $slideArray.length;
	if(current < 0) current = $slideArray.length - 1;
	showSlide(current);
}

function onPrevClick(e) {
	Event.stop(e);
	if(timer) toggleSlideshow();
	previous();
}

function onNextClick(e) {
	Event.stop(e);
	if(timer) toggleSlideshow();
	advance();
}

function buildNav() {
	// build the navigation links
	$slideArray = $$('#slides li');
	$navstr = '<div id="controlBar"><p id="slideNav">';
	$navstr += '<a href="#" id="previouslink">Prev</a>';
	for(i=0;i<$slideArray.length; i++) {
		$navstr += '<a href="#" class="slidelink">'+(i+1)+'</a>';
	}
	$navstr += '<a href="#" id="advancelink">Next</a>';
	$navstr += "</p></div>";
	Element.insert($('slideshow'),{after: $navstr});
	
	$controls = $$('.slidelink');
	for(i=0;i<$controls.length; i++) {
		$controls[i].observe('click',onNavClick);
	}
	
	$('previouslink').observe('click',onPrevClick);
	$('advancelink').observe('click',onNextClick);
	
	if(globalCite != ''){
		$citation = "<p class=\"gallery-credit\"><cite>"+globalCite+"</cite></p>";
		Element.insert($('slideNav'),{after: $citation});
	}
	
	// build the slideshow play/pause link
	var playPause = '<p id="ss-control"><a href="#" class="sshow-paused">Play Slideshow</a></p>';
	Element.insert($('slideNav'),{before:playPause});
	$$('#ss-control a')[0].observe('click',onSlideshowClick);
	showSlide(current);
}

function buildMusic() {
	var mnav = '<p id="musicnav"><a href="#" class="music-paused">'+playText+'</a></p>';
	Element.insert($('ss-control'),{after: mnav});
	$$('#musicnav a')[0].observe('click',onMusicClick);
}

function onNavClick(e) {
	Event.stop(e);
	if(timer) toggleSlideshow(); // cancel the autoadvance
	$target = e.element();
	$controls = $$('.slidelink');
	showSlide(e.element().innerHTML - 1);
}

function onSlideshowClick(e) {
	Event.stop(e);
	toggleSlideshow();
}

function onMusicClick(e)
{
	Event.stop(e);
	togglePlayer();
}

function toggleSlideshow() {
	var ssControl = $$('#ss-control a')[0];
	if(timer) { 
		timer.stop();
		ssControl.innerHTML = "Play Slideshow";
		timer = null;
	} else {
		timer = new PeriodicalExecuter(advance,autoAdvanceTimer);
		ssControl.innerHTML = "Pause Slideshow";
	}
	ssControl.toggleClassName("sshow-paused");
}

function togglePlayer() {
	control = $$('#musicnav a')[0];
	if (control.innerHTML == playText) {
		control.innerHTML = muteText;
		np.play();
	} else {
		control.innerHTML = playText;
		np.pause();
	}
	control.toggleClassName("music-paused");
}

function showSlide(idx) {
	$slides = $$('#slides li');
	$controls = $$('.slidelink');
	current = idx;
	for(i=0;i<$slides.length;i++)
	{
		if(i != idx) { 
			$slides[i].hide();
			$controls[i].removeClassName('visible');
		} else {
			$slides[i].show();
			$controls[i].addClassName('visible');
		}
	}
	return false;
}