var songtime1 = null;
var doFirstPlay = null;
var songPlaying = false;
var track = 0;
var songNum = null;
var songName = null;
var songTime = null;
var showTitle = null;
var count = 0;
var loop = false;
var playMode = null;
var restLength = null;

function init_bgm() { 
	
	if (showTitle == null) { showTitle = 1; }
	switch (showTitle) {
		case 0 :
			document.form1.stitle.style.visibility = "hidden";
			document.form1.stitle.size = 1;
			break;
		case 1 :
			document.form1.stitle.style.visibility = "visible";
			break;
		case 2 :
			document.form1.stitle.style.visibility = "hidden";
			document.form1.stitle.size = 1;
			break;
		default :
			showTitle = 1;
	}
	if (playMode == null) { playMode = 0; }
	if (restLength == null) { restLength = 5; }
	if (doFirstPlay == null) { doFirstPlay = 1; }
	if (doFirstPlay == 1) { play(); }
}

function addbgm( url, title, time ) {
	if (songNum == null) { songNum = new Array(); count = 0;} else { count = songNum.length; }
	if (songName == null) { songName = new Array(); }
	if (songTime == null) { songTime = new Array(); }
	songNum[count] = url;
	if (title == null || title == '' ) { title1 = 'Track ' + (count + 1); } else { title1 = title; }
	songName[count] = title1;
	songTime[count] = time;
}

function chgLoop() { 
	if (loop == false) {loop = true;}
	else {loop = false;}
}


function play() {
	if (songPlaying) { 
	alert("Music Playing !");
	return;
	}
	
	switch (playMode) {
		case 0 :
			track = 0;
			break;
		case 1 : 
			track = Math.floor(Math.random() * songNum.length);
			break;
		default : 
			track = 0;
	}
chooseSong(track);
}

function stopTrack() { 
	document.Music.Stop() 
	if (songPlaying) { 
	clearTimeout(songtime1); 
	}
	else { alert("Music Stop !"); return false;}
	songPlaying = false; 
	updateTrack(); 
}

function checkloop( action ) { 
	if ( loop == true ) { chooseSong(track); }
	else {
		switch (action) {
			case "next" : 
				nextTrack();
				break;
			case "pre" : 
				preTrack();
				break;
			default :  
				alert("Error !");
				stopTrack();
		}
	}
}

function chooseSong(aaa) {
	if (songPlaying) {
	clearTimeout(songtime1);
	}
	track = aaa; 

	if(track > songNum.length - 1 || track < 0) { alert("Error !"); return false;} 
		var nowtrack1 = songNum[track];
		document.Music.Open(nowtrack1); 
		songPlaying = true; 
		updateTrack(); 
		var t_time1 = songTime[track] + restLength;
		var t_time = t_time1 * 1000;
		songtime1 = setTimeout("checkloop('next')",t_time); 
}

function nextTrack() { 
	if (playMode == 1) { var num = Math.floor(Math.random() * songNum.length); } 
	else {
		if(track == songNum.length - 1) { var num = 0; } 
		else { var num = track + 1; }
	}
	chooseSong(num);
}

function preTrack() { 
	if (playMode == 1) { var num = Math.floor(Math.random() * songNum.length); } 
	else {
		if(track == 0) { var num = songNum.length - 1; } 
		else { var num = track - 1; }
	}
	chooseSong(num);
}

function updateTrack() { 
	if (songPlaying) { 
	track_idx = track + 1; 
	switch (showTitle) {
		case 0 :
			window.status = ('Playing . ' + track_idx + '. ' + songName[track]); return true;
			break;
		case 1 :
			document.form1.stitle.value = " " + track_idx + ". " + songName[track];
			break;
		case 2 :
			window.status = (' ' + track_idx + '. ' + songName[track]); return true;
			break;
		default :
			window.status = ('Error !'); return true;
		}
	}
	else { 
		switch (showTitle) {
		case 0 :
			window.status = ('Shinobu BGM Player 1.5 [ stopped ]'); return true;
			break;
		case 1 :
			document.form1.stitle.value = "Shinobu BGM Player 1.5 [ stopped ]";
			break;
		case 2 :
			window.status = ('Shinobu BGM Player 1.5 [ stopped] '); return true;
			break;
		default :
			window.status = ('Shinobu BGM Player 1.5 [ stopped ]'); return true;
		}
	}
}

function m_list() {
	window.open('playlist.htm','LinksRemote','width=400,height=350,scrollbars=1,resizable=1');
}