var curSound = "";
var isPlaying = false;

var fileInfo = new Array();
//volume 1
fileInfo["1-1"] = {key : "G Major", tempo : "Quarter note = 112 BPM", scale : "G Major (A Dorian mode), A Blues, A Minor Pentatonic"};
fileInfo["1-2"] = {key : "G Major", tempo : "Quarter note = 106 BPM", scale : "G Major (B Phrygian mode), E Harmonic Minor"};
fileInfo["1-3"] = {key : "A Major", tempo : "Quarter note = 56 BPM", scale : "A Major and A Minor Pentatonic, A Blues"};
fileInfo["1-4"] = {key : "G Major", tempo : "Quarter note = 136 BPM", scale : "G Major (C Lydian mode)"};
//volume 2
fileInfo["2-1"] = {key : "D Minor", tempo : "Quarter note = 156 BPM", scale : "D Minor, D Dorian, D Minor Pentatonic, D Blues"};
fileInfo["2-2"] = {key : "A Major", tempo : "Quarter note = 84 BPM", scale : "A Major and A Major Pentatonic"};
fileInfo["2-3"] = {key : "B♭ Major", tempo : "Quarter note = 145 BPM", scale : "B♭ Major and B♭ Minor Pentatonic, B♭ Blues, B♭ Dorian, B♭ Mixolydian"};
fileInfo["2-4"] = {key : "E Minor", tempo : "Quarter note = 99 BPM", scale : "E Minor Pentatonic, E Blues, E Minor, E Dorian"};
//volume 3
fileInfo["3-1"] = {key : "C♯ Minor", tempo : "Quarter note = 128 BPM", scale : "C♯ Minor, C♯ Harmonic minor, C♯ Minor Pentatonic, C♯ Blues"};
fileInfo["3-2"] = {key : "B Minor", tempo : "Quarter note = 168 BPM", scale : "B Natural Minor (Aeolian), B Minor Pentatonic, B Blues, B Dorian"};
fileInfo["3-3"] = {key : "A Minor", tempo : "Quarter note = 74 BPM", scale : "A Minor Pentatonic, A Blues, A Natural Minor (Aeolian), A Dorian"};
fileInfo["3-4"] = {key : "F♯ Minor", tempo : "Quarter note = 174 BPM", scale : "F♯ Natural Minor (Aeolian), F♯ Minor Pentatonic, F♯ Blues, F♯ Harmonic Minor"};
//volume 4
fileInfo["4-1"] = {key : "C Minor", tempo : "Quarter note = 124 BPM", scale : "C Minor, G♯ Diminished"};
fileInfo["4-2"] = {key : "D", tempo : "Quarter note = 120 BPM", scale : "D Minor Pentatonic"};
fileInfo["4-3"] = {key : "E Minor", tempo : "Quarter note = 144 BPM", scale : "A Harmonic Minor"};
fileInfo["4-4"] = {key : "E Major", tempo : "Quarter note = 120 BPM", scale : "E Minor Pentatonic, E Major Pentatonic, E Blues"};
//volume 5
fileInfo["5-1"] = {key : "E Minor/G Major", tempo : "Quarter note = 140 BPM", scale : "E Minor and C Lydian (both scales are the same notes as G Major), E Minor Pentatonic, E Blues"};
fileInfo["5-2"] = {key : "D Minor", tempo : "Quarter note = 76 BPM", scale : "D Minor, D Dorian, D Minor Pentatonic, D Blues"};
fileInfo["5-3"] = {key : "G Major (A Dorian Mode)", tempo : "Quarter note = 110 BPM", scale : "A Dorian (the same notes as G Major or E Minor), A Minor Pentatonic, A Blues"};
fileInfo["5-4"] = {key : "G Major", tempo : "Quarter note = 81 BPM", scale : "G Major and G Minor Pentatonic, G Blues, G Mixolydian and Dorian"};
//volume 6
fileInfo["6-1"] = {key : "E Minor", tempo : "Quarter note = 120 BPM", scale : "E Minor, E Blues"};
fileInfo["6-2"] = {key : "E Minor", tempo : "Quarter note = 112 BPM", scale : "E Minor, E Harmonic Minor, E Blues"};
fileInfo["6-3"] = {key : "B Minor", tempo : "Quarter note = 120 BPM", scale : "B Minor, B Blues, F Whole Tone"};
fileInfo["6-4"] = {key : "C Major", tempo : "Quarter note = 129 BPM", scale : "C Major (E Phrygian Mode), A Harmonic Minor"};
//volume 7
fileInfo["7-1"] = {key : "G Major (A Dorian Mode)", tempo : "Quarter note = 100 BPM", scale : "A Blues, A Minor Pentatonic, A Dorian (uses the same notes as the G Major scale)"};
fileInfo["7-2"] = {key : "B Major", tempo : "Quarter note = 140 BPM", scale : "B Dorian, B Mixolydian, B Minor and Major Pentatonic, B Blues"};
fileInfo["7-3"] = {key : "E Minor (B Phrygian Mode)", tempo : "Quarter note = 85 BPM", scale : "B Phrygian (uses the same notes as the G Major or E Minor scales), B Phrygian Dominant, E Blues"};
fileInfo["7-4"] = {key : "E Minor", tempo : "Quarter note = 130 BPM", scale : "E Minor, E Minor Pentatonic, C Lydian"};

function initSound() {
	$$("a.mp3").each(function(e) {
		Event.observe(e, "click", function(e) {
			var url = this.readAttribute("href");
			Event.stop(e);
			toggleSound(url, this);
		});
	});	
}

function toggleSound(file, e) {
	if(!isPlaying) {
		loadSound(file, e);
		isPlaying = true;
	} else {
		if(file != curSound) {
			loadSound(file, e);
		} else {
			stopSound();
			isPlaying = false;
		}
	}
}

function loadSound(file, e) {
	$("player").loadMP3File(file);
	curSound = file;
	resetLinks();
	e.addClassName("active");
	
	//display mp3 info
	file = file.substring(11, 14);
	updateInfo(fileInfo[file]);
}

function stopSound() {
	$("player").stopMP3File();
	curSound = "";
	resetInfo();
	resetLinks();
}

function resetSound() {
	isPlaying = false;
	resetInfo();
	resetLinks();
}

function updateInfo(data) {
	var n = curSound.substring(11, 12);
	var fields = $$("li#v"+n+" dl dd");
	resetInfo();
	fields[0].update(data.key);
	fields[1].update(data.tempo);
	fields[2].update(data.scale);
}

function resetInfo() {
	$$("dl dd").each(function(e) {
		e.update("No File Selected");
	});
}

function resetLinks() {
	$$("a.mp3").each(function(e) {
		e.removeClassName("active");
	});
}
