// Written by David Battino, www.batmosphere.com
// OK to use if this notice is included
// This function reads an MP3 URL and title from the referring page and generates embedding code to play back the audio file.
// Windows browsers (except for Internet Explorer) will play back the file with the Windows Media Player *plugin.* Internet Explorer will use Windows Media Player.
// Non-Windows browsers will play back the file with their standard audio handler for the MIME type audio/mpeg. On Macs, that handler will usually be QuickTime.

var BrowserDetect = {
        init: function () {
                this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
                this.version = this.searchVersion(navigator.userAgent)
                        || this.searchVersion(navigator.appVersion)
                        || "an unknown version";
                this.OS = this.searchString(this.dataOS) || "an unknown OS";
        },
        searchString: function (data) {
                for (var i=0;i<data.length;i++) {
                        var dataString = data[i].string;
                        var dataProp = data[i].prop;
                        this.versionSearchString = data[i].versionSearch || data[i].identity;
                        if (dataString) {
                                if (dataString.indexOf(data[i].subString) != -1)
                                        return data[i].identity;
                        }
                        else if (dataProp)
                                return data[i].identity;
                }
        },
        searchVersion: function (dataString) {
                var index = dataString.indexOf(this.versionSearchString);
                if (index == -1) return;
                return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
        },
        dataBrowser: [
                {
                        string: navigator.userAgent,
                        subString: "Chrome",
                        identity: "Chrome"
                },
                {       string: navigator.userAgent,
                        subString: "OmniWeb",
                        versionSearch: "OmniWeb/",
                        identity: "OmniWeb"
                },
                {
                        string: navigator.vendor,
                        subString: "Apple",
                        identity: "Safari"
                },
                {
                        prop: window.opera,
                        identity: "Opera"
                },
                {
                        string: navigator.vendor,
                        subString: "iCab",
                        identity: "iCab"
                },
                {
                        string: navigator.vendor,
                        subString: "KDE",
                        identity: "Konqueror"
                },
                {
                        string: navigator.userAgent,
                        subString: "Firefox",
                        identity: "Firefox"
                },
                {
                        string: navigator.vendor,
                        subString: "Camino",
                        identity: "Camino"
                },
                {               // for newer Netscapes (6+)
                        string: navigator.userAgent,
                        subString: "Netscape",
                        identity: "Netscape"
                },
                {
                        string: navigator.userAgent,
                        subString: "MSIE",
                        identity: "Explorer",
                        versionSearch: "MSIE"
                },
                {
                        string: navigator.userAgent,
                        subString: "Gecko",
                        identity: "Mozilla",
                        versionSearch: "rv"
                },
                {               // for older Netscapes (4-)
                        string: navigator.userAgent,
                        subString: "Mozilla",
                        identity: "Netscape",
                        versionSearch: "Mozilla"
                }
        ],
        dataOS : [
                {
                        string: navigator.platform,
                        subString: "Win",
                        identity: "Windows"
                },
                {
                        string: navigator.platform,
                        subString: "Mac",
                        identity: "Mac"
                },
                {
                        string: navigator.platform,
                        subString: "Linux",
                        identity: "Linux"
                }
        ]

};
BrowserDetect.init();

//----------------------------------------------------------------------------------------------------
// Fjerner "tryk på mellemrum eller enter" fra playeren i Internet Explore
//----------------------------------------------------------------------------------------------------
window.onload = function ()
{
  if (navigator.appName == "Microsoft Internet Explorer")
  {
    var arrElements = new Array(2);             //Array of elements to be replaced
    arrElements[0] = "object";
    arrElements[1] = "embed";

    for (n = 0; n < arrElements.length; n++)
    {
      //set object for brevity
      replaceObj = document.getElementsByTagName(arrElements[n]);

      //loop over element objects returned
      for (i = 0; i < replaceObj.length; i++ )
      {
        parentObj = replaceObj[i].parentNode;   //set parent object for brevity
        newHTML = parentObj.innerHTML;          //grab the html inside of the element before removing it from the DOM
        parentObj.removeChild(replaceObj[i]);   //remove element from the DOM
        parentObj.innerHTML = newHTML;          //stick the element right back in, but as a new object
      }
    }
  }
}

var timer = null
var seconds = 0;
var running = false;

function startprogress(til)
{
  if (running)
  {
    seconds++

    if (til > 59)
    {
      if (seconds > 59) visseconds = seconds - 60;
      else visseconds = seconds;
      vistil = til - 60;

      progresssek=((visseconds < 10) ? "0" : "") + visseconds
      progresstil=((vistil < 10) ? "0" : "") + vistil

      if (seconds > 59) visprogresstil = "01." + progresssek + " / 01." + progresstil
      else  visprogresstil = "00." + progresssek + " / 01." + progresstil
    }
    else
    {
      progresssek=((seconds < 10) ? "0" : "") + seconds
      progresstil=((til < 10) ? "0" : "") + til
      visprogresstil = "00." + progresssek + " / 00." + progresstil
    }

    document.getElementById("duration").innerHTML = visprogresstil

    snit = 83/til

    document.getElementById("progress").style.background = 'url("/images/progress.gif") no-repeat -' + Math.round(83-(seconds*snit)) + 'px 0px';
    if (seconds < til) timer = setTimeout("startprogress("+til+")",1000)
  }
}

//----------------------------------------------------------------------------------------------------
// Vælger om playeren skal player med javascript eller via URL
//----------------------------------------------------------------------------------------------------
function PlayerPlay(side, varighed, klang)
{
  if (BrowserDetect.browser == "Firefox" || BrowserDetect.browser == "Chrome") document.location.href = side+'/'+klang+'/1/';
  else
  {
    document.mediaplayer.Play();
    //document.getElementById("mediaplayer").Play();
    if (!running)
    {
      running = true;
      startprogress(varighed);
    }
  }
}

//----------------------------------------------------------------------------------------------------
// Vælger om playeren skal stoppes med javascript eller via URL
//----------------------------------------------------------------------------------------------------
function PlayerStop(side, klang)
{
  running = false;
  if (BrowserDetect.browser == "Firefox" || BrowserDetect.browser == "Chrome") document.location.href = side+'/'+klang+'/0';
  else document.mediaplayer.Stop();
  //document.getElementById("mediaplayer").Stop();
}

//----------------------------------------------------------------------------------------------------
// Integrerer afspilleren på siden
//----------------------------------------------------------------------------------------------------
function embedPlayer(MP3URL, type)
{
  // Get Operating System
  var isWin = navigator.userAgent.toLowerCase().indexOf("windows") != -1;
  if (isWin) { // Use MIME type application/x-mplayer2
     visitorOS="Windows";
  } else { // Use MIME type audio/mpeg, audio/x-wav, etc.
     visitorOS="Other";
  }

  if (type == 0) audioFolder = "/midi/";
  else audioFolder = "/mp3/";

  var audioURL = audioFolder + MP3URL;
  var objTypeTag = "application/x-mplayer2"; // The MIME type to load the WMP plugin in non-IE browsers on Windows
  if (visitorOS != "Windows") { objTypeTag = "audio/mpeg"}; // The MIME type for Macs and Linux

  document.writeln("<div id='gemtplayer'>");
  document.writeln("<object id='mediaplayer'>"); // Width is the WMP minimum. Height = 45 (WMP controls) + 24 (WMP status bar)
  document.writeln("<param name='type' value='" + objTypeTag + "'>");
  document.writeln("<param name='src' value='" + audioURL + "'>");
  document.writeln("<param name='width' value='0'>");
  document.writeln("<param name='height' value='0'>");
  document.writeln("<param name='autostart' value='0'>");
  document.writeln("<param name='showcontrols' value='1'>");
  document.writeln("<param name='showstatusbar' value='1'>");
  document.writeln("<embed src ='" + audioURL + "' name='mediaplayer' type='" + objTypeTag + "' enablejavascript='true' autoplay='false' autostart='0' height='0' width='0' controller='1' showstatusbar='1' bgcolor='#ffffff'></embed>");

  // Firefox and Opera Win require both autostart and autoplay
  document.writeln("</object>");
  document.writeln("</div>");
  document.close(); // Finalizes the document
}

function embedPlayerPlay(MP3URL, type, varighed)
{
  // Get Operating System
  var isWin = navigator.userAgent.toLowerCase().indexOf("windows") != -1;
  if (isWin) { // Use MIME type application/x-mplayer2
     visitorOS="Windows";
  } else { // Use MIME type audio/mpeg, audio/x-wav, etc.
     visitorOS="Other";
  }

  if (type == 0) audioFolder = "/midi/";
  else audioFolder = "/mp3/";

  var audioURL = audioFolder + MP3URL;
  var objTypeTag = "application/x-mplayer2"; // The MIME type to load the WMP plugin in non-IE browsers on Windows
  if (visitorOS != "Windows") { objTypeTag = "audio/mpeg"}; // The MIME type for Macs and Linux

  document.writeln("<div id='gemtplayer'>");
  document.writeln("<object id='mediaplayer'>"); // Width is the WMP minimum. Height = 45 (WMP controls) + 24 (WMP status bar)
  document.writeln("<param name='type' value='" + objTypeTag + "'>");
  document.writeln("<param name='src' value='" + audioURL + "'>");
  document.writeln("<param name='width' value='0'>");
  document.writeln("<param name='height' value='0'>");
  document.writeln("<param name='autostart' value='1'>");
  document.writeln("<param name='showcontrols' value='1'>");
  document.writeln("<param name='showstatusbar' value='1'>");
  document.writeln("<embed id='mediaplayer' src ='" + audioURL + "' name='mediaplayer' type='" + objTypeTag + "' enablejavascript='true' autoplay='true' autostart='true' height='0' width='0' controller='1' showstatusbar='1' bgcolor='#ffffff'></embed>");

  // Firefox and Opera Win require both autostart and autoplay
  document.writeln("</object>");
  document.writeln("</div>");
  //document.writeln("OS = "+visitorOS+"<br/>");
  //document.writeln("MIME type = "+objTypeTag+"<br/>");
  document.close(); // Finalizes the document
  running = true;
  startprogress(varighed);
}
