soundManager.url = WpTunesPath+'/swf/';

var playingNotes;
var allowPlaying = false;

soundManager.onload = function() {
	setTimeout('preloadSounds();', 100);
}

function preloadSounds()
{
	showLoader();
	var theInstrument = getPostInstrument();
	var theRoot = getPostRoot();
  	
	for (var i = 1; i < 17; i++)
	{
		var thePath = WpTunesPath+'/snd/'+theInstrument+'/'+theRoot+'-'+i+'.mp3';
		soundManager.createSound({id: 'note'+i, autoLoad: true, url: thePath, multiShot: true, stream: true});
	}
	
	setTimeout('checkSoundsState();', 100);
}

function checkSoundsState()
{
	var loadedSnds = 0;
	for (var i = 1; i < 17; i++)
	{
		var aSound = null;
		try { aSound = soundManager.getSoundById('note'+i); } catch(err) {}
		if (aSound != null && aSound.readyState > 1)
			loadedSnds += 1;
	}
	showLoader(loadedSnds);
	if (loadedSnds >= 15)
		hideLoader();
	else
		setTimeout('checkSoundsState();', 100);
}

function reloadSystem()
{
	soundManager.flashLoadTimeout = 0;
  	soundManager.onerror = {};
  	soundManager.reboot();
}

function playNotes(notes) {
	rootChanged();
	playingNotes = notes.split(' ');
	var offset = getNotesOffset();
	allowPlaying = true;
	playNote(offset);
}
function playNote(noteNum) {
	if (!allowPlaying) return;
	var aNote = playingNotes[noteNum];
	if (aNote == null)
	{
		playBtn();
		return;
	}
	else if (aNote != 17)
	{
		//soundManager.stopAll();
		var aSound = soundManager.getSoundById('note'+aNote);
		if (aSound == null)
		{
			playBtn();
			return;
		}
		aSound.play();
	}
	setSelected(noteNum);
	noteNum++;
	aNote = playingNotes[noteNum];
	if (aNote != null)
	{
		setTimeout('playNote(' + noteNum + ');', 500);
	}
	else
	{
		playBtn();
	}
}
function playSingleNote(aNote) {
	if (aNote != 17)
	{
		soundManager.stopAll();
		var aSound = soundManager.getSoundById('note'+aNote);
		if (aSound == null)
		{
			return;
		}
		aSound.play();
	}
}
function stopPlaying()
{
	allowPlaying = false;
}
