var curContent = 'news';
var viewportDimensions = null;
var dragged = false;
var paused = false;
var playlistFiles = new Array();
var playlistNames = new Array();
var curAudio = 0;
var totalAudio = 0;

function toggleMainContent(e)
{
	Event.stop(e);
	$('content').toggle();	
	if ($('cToggle').innerHTML == 'hide')
	{
		$('cToggle').update('show');
		$('mainContent').down('.bg').setStyle({ height: '34px'});
	}
	else
	{
		$('cToggle').update('hide');
		$('mainContent').down('.bg').setStyle({ height: '373px'});
	}
}

function switchContent(e)
{
	Event.stop(e);
	var element = e.element();
	var name = element.innerHTML;
	if (name != curContent)
	{
		$$('.navLink').each(function (el) {
			el.removeClassName('selected');
		});
		$('content'+curContent).hide();
		$('content'+name).show();
		element.addClassName('selected');
		curContent = name;
	}
}

function repositionElements()
{
	if (!dragged)
	{
		viewportDimensions = document.viewport.getDimensions();
		topPos = (viewportDimensions.height/2)-(373/2);
		leftPosMain = (viewportDimensions.width/2-15);
		leftPosPlay = (viewportDimensions.width/2)-385;
		
		$('mainContent').setStyle({ 'top': topPos+'px', 'left': leftPosMain+'px' });
		$('player').setStyle({ 'top': topPos+'px', 'left': leftPosPlay+'px' });
	}
}

function constrain(n, lower, upper)
{
  if (n > upper) return upper;
  else if (n < lower) return lower;
  else return n-(n%1);
}

function initializeAudio()
{
  $$('#playlist li a').each(function (el) {
      //Event.observe(el, 'click', switchContent);
      playlistFiles.push(el.href);
      playlistNames.push(el.innerHTML);
    });
  totalAudio = playlistNames.length;
  loadAudioFile(0);
  Event.observe('rew', 'click', prevAudio);
	Event.observe('play', 'click', pauseAudio);
	Event.observe('ff', 'click', nextAudio);	  
}

function flashAudioComplete(fileName)
{
	nextAudio();
}

function loadAudioFile(curA)
{
  $('display').update(playlistNames[curA]);
	$('flashAudio').loadFlashAudio(playlistFiles[curA]);
}

function pauseAudio()
{
	if(paused)
	{
		$('play').setStyle({ backgroundPosition: '-24px 0px'});
		paused = false;
	}
	else
	{
		$('play').setStyle({ backgroundPosition: '-24px 24px'});
		paused = true;
	}
	$('flashAudio').pauseFlashAudio();
}

function nextAudio()
{
	if(curAudio < totalAudio-1)
	{
    curAudio++;
    loadAudioFile(curAudio);
	}
	else
	{
    curAudio = 0;
    loadAudioFile(curAudio);
	}
}

function prevAudio()
{
	if(curAudio <= 0)
	{
    curAudio = totalAudio-1;
    loadAudioFile(curAudio);
	}
	else
	{
    curAudio--;
    loadAudioFile(curAudio);
	}
}

function initialize()
{
	var flashvars = {};
	var params = { allowscriptaccess: "always", wmode: "transparent" };
	var attributes = {};
	swfobject.embedSWF("flash/waves.swf", "backgroundFlash", "100%", "100%", "8.0.0", "flash/expressInstall.swf", flashvars, params, attributes);
	swfobject.embedSWF("flash/invisibleaudio.swf", "flashAudio", "1", "1", "8.0.0", "flash/expressInstall.swf", flashvars, params, attributes);
	
	repositionElements();

	$('mainContent').appear({ duration: 1.0 });
	$('player').appear({ duration: 1.0, afterFinish: initializeAudio });
	
	new Draggable('mainContent',{onStart: function() { dragged = true; }, starteffect: null, endeffect: null, snap: function(x,y,draggable) {
	  element_dimensions = Element.getDimensions(draggable.element);
	  parent_dimensions = Element.getDimensions(draggable.element.parentNode);
	  return[
	    constrain(x, 0, parent_dimensions.width - element_dimensions.width),
	    constrain(y, 0, parent_dimensions.height - element_dimensions.height)];
	  }
	});	
	new Draggable('player', {onStart: function() { dragged = true; }, starteffect: null, endeffect: null, snap: function(x,y,draggable) {
	  element_dimensions = Element.getDimensions(draggable.element);
	  parent_dimensions = Element.getDimensions(draggable.element.parentNode);
	  return[
	    constrain(x, 0, parent_dimensions.width - element_dimensions.width),
	    constrain(y, 0, parent_dimensions.height - element_dimensions.height)];
	  }
	});	
	
	Event.observe('cToggle', 'click', toggleMainContent);
	$$('.navLink').each(function (el) {
		Event.observe(el, 'click', switchContent);
	});
}

Event.observe(window, 'load', initialize);
Event.observe(window, 'resize', repositionElements);