// Original:  Nicholas Loar, http://www.cass.net/~anarchy
// This script and many more are available free online at
// The JavaScript Source!! http://javascript.internet.com

// Netscape-Method from Luc Sillis, mailto:luxil@village.uunet.be

// Script strongly optimized and improved by Frank Bergermann
// http://www.bitwelt.de http://www.frankbergermann.de

// Begin

var musicPopUp;	// Siehe unten
var wasAntiMidiWav
function selectSound(sel) {
	var opt=sel.options[sel.selectedIndex]
	playSound(opt.value,opt.loop)	// opt.loop nur bei NS4 undefined, da loop kein Standard-<Option>-Attribut!
}

function playSound(datei,loop) {
  if(wasAntiMidiWav && !datei)alert('Kein Midi/Wav.\nBitte Player von Hand stoppen!')
  if(datei && !isMidiWav(datei)){
    openSound(datei)
    wasAntiMidiWav=1
    return
  }else wasAntiMidiWav=0
  if (document.all){	// erst ab MSIE4 nutzbar
    document.all.music.src = datei;
    if(loop)
      document.all.music.loop = loop;
    else
      document.all.music.loop = "infinite";	// Hier Standard-Wiederholung einstellen
      // Nur IE. infinite = unendlich, sonst eine Anzahl.
      // Empfehlung: Standard=infinite (vor allem wegen Midis),
      // bei Wav-Dateien dann <option ... loop=1> angeben.
      // Sonst umgekehrt: Standard=1, bei Midi-Dateien <option ... loop=infinite> angeben.
  } else {
    // Verzichtet voll auf <embed>-Tag, das von Version zu Version unterschiedlich ist (andere Plugins)
    // und meist überhaupt nicht läuft. (C) 2001 Frank Bergermann, http://www.bitwelt.de
    if (musicPopUp)
      if (!musicPopUp.closed)
        musicPopUp.close()
    var pos=",left="+(screen.width-190)+",top=0"	// Wichtig: Klammern
    if (datei)
      musicPopUp = window.open (datei, "Musik", "resizeable,width=180,height=20"+pos) ;
      // Zum Abspielen wird eine NS-Vollinstallation benötigt, keine Minimal-Installation
  }
}

// Sound stoppbar mit: playSound()

function isMidiWav(datei){
  datei=datei.toLowerCase()
  var L=datei.length

  if(L>5 && datei.substring(L-5) == ".midi") return 1
  if(L>4 && datei.substring(L-4) == ".mid") return 1
  if(L>4 && datei.substring(L-4) == ".wav") return 1
  // auch noch nach .au abfragen (Mac)?
  return 0
}

function openSound(datei){
  wasAntiMidiWav=0	// Sonst Meldung "Player von Hand stoppen" beim Wiederholen
  playSound()	// Stoppen
  if(document.layers){ //NS4, zeigt .mod-Dateien usw. als Text an. Mimi-Type setzen nützt nichts.
    var t='<title>NS4-Ausnahme: Kein Wave/Midi!</title>\n'
    t+='<body bgcolor=#ccccFF onfocus=if(opener.closed)self.close()><font face="Arial,sans-serif">\n'
    t+='<center>Leider kann NS4 diesen Dateityp weder öffnen noch abspielen.<BR>\n'
    t+='Er würde die Datei als Text anzeigen.</center>\n'
    t+='<BR>\n'
    t+='<b>Abhilfe:</b>\n'
    t+='<UL><li>Link mit rechter Maustaste anklicken: <a href="'+datei+'">'+datei+'</a></li>\n'
    t+='<li>"Verknüpfung speichern unter..."</li>\n'
    t+='<li>auf dem Desktop speichern</li>\n'
    t+='<li>dort die Datei doppelklicken, um sie abzuspielen.</li>\n'
    t+='</UL>\n'
    t+='Wenn das Abspielen nicht klappt, installieren Sie einen Player, <BR>\n'
    t+='z. B. von <a target=_blank href=http://www.winamp.com>www.winamp.com</a>.<BR>\n'
    t+='<BR>\n'
    // Wichtig: window. für NS4 close()
    // Wichtig: <form> für NS4, </form> kann entfallen, spart Leerzeile am Ende
    t+='<center><form><input type=button value="Fenster schließen" onclick=window.close()></center>\n'
    var width=500,height=280
    var pos=",left="+(screen.width-width)/2+",top="+(screen.height-height)/2	// Wichtig: Klammern
    musicPopUp=window.open ("about:blank", "_blank", 'scrollbars,resizable,width='+width+",height="+height+pos)
    musicPopUp.document.open()
    musicPopUp.document.write(t)
    musicPopUp.document.close()
    setTimeout('musicPopUp.focus()',500)	// bei/wegen onkeydown im Wiederholen-Button wandert das Fenster in den Hintergrund
    // Nicht optimal, aber ausreichend.
  }else{
    // bei Problemen musicPopUp öffnen wie oben (mit vorheriger close-Abfrage-Latte)
    alert('Wählen Sie im nächsten Dialog\n\n          » ÖFFNEN «')
    location.href=datei
  }
}

/*
Der in der folgenden if-Abfrage enthaltene bgsound-Tag kann auch direkt
in den Dokument-Head eingebunden werden.
Dann funktioniert es auch mit Scripting=Ja+Einfügeoperationen=Nein.
Dann aber hier löschen, sonst läuft es nicht mehr, weil bei doppelter Namensverwendung
ein Array erzeugt würde, das anders angesprochen wird.
*/
if (document.all)
  document.write('<bgsound ID=music>')

// End
