var current=-1;
var nextone=-1;
var player
var miditimer
var loaded=false;
var starttime;
var cacher=null;
var mp2=false;

var mie=(navigator.appName.indexOf("Microsoft")!=-1)&&(navigator.javaEnabled())
var nn=(navigator.appName.indexOf("Netscape")!=-1)&&(navigator.javaEnabled())


if(nn)  nn=nn && (navigator.plugins["LiveAudio"]!=null)
if(nn)
  {midiplugin=navigator.mimeTypes["audio/midi"].enabledPlugin;
   nn=nn && (midiplugin==navigator.plugins["LiveAudio"]);
  }

if(nn||mie)
 {document.writeln('<embed NAME=vmaxplayer TYPE="audio/midi" SRC="'+titles[0]+'"  width=200 height=100 loop=false autostart=false hidden=true MASTERSOUND PlayCount=1>');
  document.writeln('<applet NAME=vmaxmidi code="vmaxmidicacher.class" width=120 height=40 MAYSCRIPT><PARAM NAME="AUTHOR" VALUE="'+CopyRight+'"><PARAM NAME="KEY" VALUE="'+KEY+'"></applet>');
 }

function ignoreerror()   {mp2=true; nextRandom(); window.onerror=ignoreerr2; beginPlay(); return true;}
function ignoreerr2()    {return false;}
function checkLoaded()   {cacher=window.document.vmaxmidi;if(mie){player = window.document.all['vmaxplayer'];if(player!=null){if(player.ReadyState==4){if(!mp2){window.onerror=ignoreerror;player.run();player.stop();}nextRandom();beginPlay();return;}}miditimer=setTimeout('checkLoaded()',100);}if(nn){player = window.document.vmaxplayer;if(player!=null){if(player.IsReady()){nextRandom(); beginPlay(); return;}} miditimer=setTimeout('checkLoaded()',100);}}
function playTitle(fname){cacher.setTitle(fname);if(nn){player.stop(); setTimeout('player.play(false,\"'+fname+'\")',200);} if(mie) player.FileName=fname;}
function nextRandom()    {while(true){while(true){var newone=Math.floor(Math.random()*titles.length);if((newone!=current) && (newone!=nextone)) break;}current=nextone;nextone=newone;cacher.addTitle(titles[nextone]);if(current>=0) break;}}
function beginPlay()     {loaded=false; playtime=-1; playTitle(titles[current]); miditimer=setTimeout('midiTracker();',1000);}
function midiTracker()   {if(playtime<0) playtime=cacher.askTime(titles[current]) * 1000; if(nn)   {if(!loaded){loaded=player.IsPlaying();starttime=(new Date()).getTime();}if(loaded){if(playtime>=0){if(playtime < (new Date()).getTime()-starttime){nextRandom(); beginPlay(); return;}} if(!player.IsPlaying()&&!player.IsPaused()){nextRandom(); beginPlay();return;}}}if(mie){if(!loaded){loaded=(player.ReadyState>=4);starttime=(new Date()).getTime();if(loaded){if(mp2==true)  player.Play(); if(mp2==false) player.run();}}if(loaded){if(playtime>=0){if(playtime < (new Date()).getTime()-starttime){nextRandom(); beginPlay();return;}}if(player.currentState<2){nextRandom(); beginPlay();return;}}} if(mie||nn) cacher.showTime((new Date()).getTime()-starttime,playtime);miditimer=setTimeout('midiTracker()',1000);}
function skipTitle()     {if(miditimer) clearTimeout(miditimer);if(mie) if(player)  if(player.ReadyState>=4) player.stop(); nextRandom(); miditimer=setTimeout('beginPlay()',100);}
function stopPlay()      {if(miditimer) clearTimeout(miditimer);if(player) player.stop();}

