var sounds_folder = '/sounds/';
var photos_folder = '/photos/';
var t2; // for file time display timer
var media;

// Make a DIV to hold the player and place it off the screen
// so that we don't see it
document.write('<div id="player"></div>');

function load(media)
{
  media = sounds_folder + document.getElementById('sound_file').value;

  var player = document.getElementById('player');

  if(detect_browser() == "MSIE" || detect_browser() == "Netscape")
  {
    player.innerHTML = '<object id="sound"'
    + 'classid="clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6"'
    + 'codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701"'
    + 'standby="Loading Microsoft® Windows® Media Player components..."'
    + 'type="application/x-oleobject" width="160" height="144">'
    + '<param name="url" value="'+media+'">'
    + '<param name="volume" value="100">'
    + '<embed id="sound" type="application/x-mplayer2" src="'+media+'"'
    + 'classid="clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6"'
    + 'pluginspage="http://www.microsoft.com/Windows/MediaPlayer/"'
    + 'type="application/x-mplayer2"'
    + 'url="'+media+'"'
    + 'volume="100"'
    + 'width="160" height="144">'
    + '<\/embed>'
    + '<\/object>';
  }
  else // if Safari or Firefox, then load Quicktime controls
  {
    player.innerHTML = '<object '
    + 'classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" '
    + 'width="160" height="144" id="sound"'
    + 'style="position:absolute;left:-1000px;top:-1000px"'
    + 'codebase="http://www.apple.com/qtactivex/qtplugin.cab">'
    + '<param name="SRC" value="'+media+'">'
    + '<param name="AUTOPLAY" value="true">'
    + '<param name="CONTROLLER" value="false">'
    + '<param name="VOLUME" value="100">'
    + '<param name="ENABLEJAVASCRIPT" value="true">'
    + '<param name="TYPE" value="audio/wav">'
    + '<embed classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B"'
    + 'name="sound"'
    + 'id="sound"'
    + 'src="'+media+'"'
    + 'pluginspage="http://www.apple.com/quicktime/download/"'
    + 'volume="100"'
    + 'enablejavascript="true" '
    + 'type="audio/wav" '
    + 'height="16" '
    + 'width="200"'
    + 'style="position:absolute;left:-1000px;top:-1000px"'
    + 'autostart="true"'
    + '> </embed>'
    + '</object>';
  }
}

function play_pause_file()
{
  // if a file is not playing then just return
	if(document.getElementById('player').innerHTML == '')
	{
    load(media);
		setTimeout('display_time();', 2000);
    document.getElementById('play_pause_btn').src = photos_folder + 'pause.gif';
    document.getElementById('play_pause_btn').value = 'pause';
		return;
	}

  //document.getElementById('filetime').innerHTML = document.getElementById("play_pause_btn").value;

  // if IE or Netscape then Media Player Pause Controls
	if(detect_browser() == "MSIE" || detect_browser() == "Netscape")
  {
    if(!document.sound.controls) return;

    //if pause
    if(document.getElementById("play_pause_btn").value == 'pause')
    {
      document.sound.controls.pause();
      document.getElementById('play_pause_btn').src = photos_folder + 'play.gif';
      document.getElementById('play_pause_btn').value = 'play';
    }
    else // if unpause
    {
      document.sound.controls.play();
      document.getElementById('play_pause_btn').src = photos_folder + 'pause.gif';
      document.getElementById('play_pause_btn').value = 'pause';
    }
  }
  else // If Firefox or Safari then use Quicktime Stop (Pause)
  {
    // Check to see if Stop is a function
    // If not then return
    // So far Safari does not support Stop
    if(typeof document.embeds['sound'].Stop != 'function') return;

    // if pause
    if(document.getElementById("play_pause_btn").value == 'pause')
    {
      document.embeds['sound'].Stop();
      document.getElementById('play_pause_btn').src = photos_folder + 'play.gif';
      document.getElementById('play_pause_btn').value = 'play';
    }
    else // if unpause
    {
      document.embeds['sound'].Play();
      document.getElementById('play_pause_btn').src = photos_folder + 'pause.gif';
      document.getElementById('play_pause_btn').value = 'pause';
    }
  }
}

function stop_file()
{
	var done;
	var mseconds; // milliseconds
	var player = document.getElementById('player');

	// if IE or Netscape then Media Player Pause Controls
	if(detect_browser() == "MSIE" || detect_browser() == "Netscape")
		mseconds = 500;
	else // if Firefox
		mseconds = 200;

	// Call stop function if available in quicktime player
	if(document.sound)
	if(typeof document.sound.Stop == 'function')
	{
		document.sound.Stop();
	}
	// Call stop function if available in Media player
	if(document.sound)
	if(typeof document.sound.controls == 'object')
	{
		document.sound.controls.Stop();
	}

	// Stop time display timer
	clearTimeout(t2);

	// Wipe out contents of player DIV
	player.innerHTML = '';
	document.getElementById('play_pause_btn').src = photos_folder + 'play.gif';
  document.getElementById('play_pause_btn').value = 'play';
  document.getElementById('filetime').innerHTML = '';
}

function detect_browser()
{
	var browser_name = navigator.userAgent;
	// We have to check for Opera first because
	// at the beginning of the userAgent variable
	// Opera claims it is MSIE.

	if (browser_name.indexOf("Opera")!= -1)
		browser_name = "Opera";
	else if (browser_name.indexOf("Firefox")!= -1)
		browser_name = "Firefox";
	else if (browser_name.indexOf("MSIE")!= -1)
		browser_name = "MSIE";
	else if (browser_name.indexOf("Netscape")!= -1)
		browser_name = "Netscape";
	else if (browser_name.indexOf("Safari")!= -1)
		browser_name = "Safari";

	return browser_name;
}

function display_time()
{
	// This function not only displays the current position
	// of time in the file, but it also get's the end time
	// so that if a file reaches the end it will play the
	// next file
	var time;
	var duration;
	var file_status;
	var buffer_status; // used for media player
	var mins; // used for quicktime
	var secs; // used for quicktime
	var scale; // used for quicktime

	// if IE or Netscape then Media Player
	if(detect_browser() == "MSIE" || detect_browser() == "Netscape")
	{
		//file_status = document.sound.status;
		file_status = document.sound.playState;
		buffer_status = document.sound.network.bufferingProgress;

    if(buffer_status < 100) // 3 = playing; 1 = stopped
    {
      t2 = setTimeout('display_time();', 20); // recall this function in 20ms
      return;
    }
    else
    {
      if(document.getElementById('filetime'))
        document.getElementById('filetime').innerHTML = 'Buffering: '	+ buffer_status + '%';
    }
  	time = document.sound.controls.currentPositionString;
  	duration = document.sound.currentMedia.durationString;
  }
	else  // Firefox or Safari
	{
    file_status = document.embeds['sound'].GetPluginStatus();

    if(file_status.toLowerCase() != 'playable' && file_status.toLowerCase() != 'complete')
    {
      t2 = setTimeout('display_time();', 250); // recall this function every 250 ms
      return;
    }

    time = document.embeds['sound'].GetTime();
    duration = document.embeds['sound'].GetDuration();
    scale = document.embeds['sound'].GetTimeScale();
    time = Math.floor(time*(1/scale));  // convert to seconds
    duration = Math.floor(duration*(1/scale));  // converts to seconds
    // convert seconds into mm:ss
    mins = Math.floor(time / 60);
    secs = time - (mins * 60);
    time = mins + ':' + secs;
    mins = Math.floor(duration / 60);
    secs = duration - (mins * 60);
    duration = mins + ':' + secs;
	}

	if(document.getElementById('filetime'))
		document.getElementById('filetime').innerHTML = time + ' / ' + duration;

	t2 = setTimeout('display_time();', 250); // recall this function every 250ms
}

window.onunload = stop_file;

