<OBJECT ID="Player" height="0" width="0" CLASSID="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6">
<PARAM NAME="uiMode" VALUE="invisible">
<PARAM NAME="Autostart" VALUE="True">
</object>
<FORM ID="form">
<form name="form">
<p style="text-align: center">
<select style="FONT-SIZE: 10pt; BACKGROUND:#000000; WIDTH: 350; COLOR: #ffffff; font-face: verdana; height:174" name="playlist" size="1">
<!-- Add song info that appears in drop down list here -->
<option value="0">Song Title</option>
<option value="1">Song Title</option>
<option value="2">Song Title</option>
<option value="3">Song Title</option>
<option value="4">Song Title</option>
</SELECT>
<BR>
<BUTTON ID="BackButton" onClick="Back(forms['form'].playlist);"> << </BUTTON>
<BUTTON ID="PlayPauseButton" onClick="PlayPause(forms['form'].playlist);"><FONT color="000000"> Play </FONT></BUTTON>
<BUTTON ID="NextButton" onClick="Next(forms['form'].playlist);"> >> </BUTTON>
<BUTTON ID="StopButton" onclick="Stop();"><FONT color="7a7a7a">Stop</FONT></BUTTON>
<b><font size="3" color="cfcfef">Shuffle</font></b><INPUT TYPE=checkbox CHECKED ID="ShuffleSwitch" onclick="ToggleShuffle(this);" value="ON">
</FORM>
</CENTER>
<comment ID="PlayHTML"><FONT color="cfcfef"> Play </FONT></comment>
<comment ID="ShuffleOnHTML"><INPUT TYPE=checkbox CHECKED ID="ShuffleSwitch" onclick="ToggleShuffle(this);"></comment>
<comment ID="ShuffleOffHTML"><INPUT TYPE=checkbox UNCHECKED ID="ShuffleSwitch" onclick="ToggleShuffle(this);"></comment>
<script ID="Main" Language="JavaScript">
var songs = new Array();
//*******************************//
//****** CHANGEABLE STUFF *******//
//*******************************//
var shuffle = true; // false = shuffle off, true = shuffle on
var autoStart = true; // false = autoStart off, true = autoStart on
var numberTracks = false; // true = place track number in front of list items, false = no track numbers
// Add song URLs here (make sure it matches up with the order you have for song info, and urls need quotes):
songs[0]="URL of Song";
songs[1]="URL of Song";
songs[2]="URL of Song";
songs[3]="URL of Song";
songs[4]="URL of Song";
//*******************************//
//*******************************//
// Initializations //
with (document){
var length = forms['form'].playlist.length;
if(numberTracks){
for (var i = 0; i < length; i++){
forms['form'].playlist.options[i].innerHTML = (i+1) + " - " + forms['form'].playlist.options[i].innerHTML;
}
}
if (shuffle) {
var randsg = Math.floor(Math.random()*songs.length);
Player.url = songs[randsg];
forms['form'].playlist.options[randsg].selected = true;
forms['form'].ShuffleSwitch.outerHTML = ShuffleOnHTML.innerHTML;
}
else {
forms['form'].ShuffleSwitch.outerHTML = ShuffleOffHTML.innerHTML;
Player.url = songs[0];
}
if(autoStart){
var snum = forms['form'].playlist.selectedIndex;
if(Player.url != songs[snum]){
Player.url = songs[snum];
}
Player.controls.Play();
}
}
// Functions //
// Discription: "PlayPause" will toggle playing and pausing if the same song is still selected,
// otherwise it will load the newly selected song
function PlayPause(list) {
var snum = list.selectedIndex;
if((Player.url == songs[snum] && Player.url != "") && Player.playState != 1){
if(Player.playState == 3){
Player.controls.Pause();
}
else {
Player.controls.Play();
}
}
else {
Player.url = songs[snum];
Player.controls.Play();
}
}
// Discription: "Next" will move to the next music file if shuffle is off
// otherwise it will load a random song. Calls PlayPause to start music.
function Next(list) {
var snum = list.selectedIndex;
if (!shuffle) {
if (snum == list.length-1) {
snum = -1;
}
snum++;
}
else {
var temp;
do{
temp = Math.floor(Math.random()*songs.length);
} while(temp == snum);
snum = temp;
}
list.options[snum].selected = true;
PlayPause(list);
}
// Discription: "Back" does the same thing as "Next" but moves backwads
// through the list. If shuffle is on then picks a random song.
function Back(list) {
var snum = list.selectedIndex;
if (!shuffle) {
if (snum == 0){
snum = list.length;
}
snum--;
}
else {
var temp;
do{
temp = Math.floor(Math.random()*songs.length);
} while(temp == snum);
snum = temp;
}
list.options[snum].selected = true;
PlayPause(list);
}
// Discription: Self explanitory.
function Stop(){
Player.controls.Stop();
}
// Discription: Makes the shuffle flag the same as the status of the CheckBox
// The status of the checkbox (true/false) indicates if the box is checked
function ToggleShuffle(CheckBox) {
shuffle = CheckBox.status;
}
</SCRIPT>
<script ID="StateChangeHandler" Language = "JavaScript" For = "Player" Event = playStateChange(NewState)>
// Description: This is an interupt handler used to handle instances when the
// state of the player changes to play or stop for example.
//STATE.innerText = NewState;
switch(NewState){
case 8: // Handles player after it just finishes playing through a song
var num = document.forms['form'].playlist.selectedIndex;
if (!shuffle){
if(num == document.forms['form'].playlist.length-1){
num = -1;
}
num++;
}
else {
var temp;
do{
temp = Math.floor(Math.random()*songs.length);
} while(temp == num);
num = temp;
}
document.forms['form'].playlist.options[num].selected = true;
PreviousState = NewState;
break;
case 1: // Handles player after it stops
if(PreviousState == 8){
var num = document.forms['form'].playlist.selectedIndex;
Player.settings.autoStart = true;
Player.url = songs[num];
PreviousState = NewState;
}
else if (PreviousState != 3 && PreviousState != 2){
Player.controls.Play();
Player.settings.autoStart = false;
}
else{
forms['form'].PlayPauseButton.innerHTML = PlayHTML.innerHTML;
}
break;
case 3: // Handles player after it starts to play
PreviousState = NewState;
forms['form'].PlayPauseButton.innerHTML = "Pause";
shuffle = document.forms['form'].ShuffleSwitch.status;
break;
case 2: // Handles player after being paused
PreviousState = NewState;
forms['form'].PlayPauseButton.innerHTML = PlayHTML.innerHTML;
break;
default:
}
</script>