var processor = new XSLTProcessor();

function LoadStyleSheet()
{
	var xmlhttp = new XMLHttpRequest();
	xmlhttp.open("GET", "SongsList.xsl", false);
	xmlhttp.send('');
	processor.importStylesheet(xmlhttp.responseXML);
}

var lastSongName = '';
var lastLanguages = '';
var lastSingers = '';
var lastStyle = '';

function LookupSongs(force)
{
	var i;

	var songName = '';
	var languages = '';
	var singers = '';
	var style = '';

	var f = document.getElementById('Songs');

	songName = document.getElementById('SongName').value;

	for (i=0; i<f.elements.length; i++)
	{
		var e = f.elements[i];
		if (e.nodeName == 'INPUT' && e.type == 'checkbox' && e.checked)
		{
			switch (e.name)
			{
				case 'Language':
					languages += e.value;
					break;
				case 'Singers':
					singers += e.value;
					break;
				case 'Style':
					style += e.value;
					break;
			}
		}
	}

	if (songName.length == 0 && lastSongName.length > 0)
	{
		lastSongName = songName;
		document.getElementById('SongsList').innerHTML = '';
	}
	else if (lastSongName != songName || lastLanguages != languages || lastSingers != singers || lastStyle != style || (songName.length > 0 && force == true) )
	{
		lastSongName = songName;
		lastLanguages = languages;
		lastSingers = singers;
		lastStyle = style;

		var url = "songslookup.asp?songName=" + encodeURIComponent(songName) + '&l=' + languages + '&si=' + singers + '&st=' + style;

		var xmlhttp = new XMLHttpRequest();
		xmlhttp.open("GET", url, true);

		document.getElementById('Loading').innerHTML = 'Loading...';
		xmlhttp.onreadystatechange = function()
		{
			if(xmlhttp.readyState == 4)
			{
				if (xmlhttp.status != 200)
				{
					alert(xmlhttp.responseText, xmlhttp.status + ' - ' + xmlhttp.statusText);
				}
				else
				{
					Sarissa.updateContentFromNode(xmlhttp.responseXML, document.getElementById('SongsList'), processor, null);
				}
				document.getElementById('Loading').innerHTML = '&nbsp;';
			}
		};

		xmlhttp.send('');
	}
}

var lastArtistName = '';

function LookupArtists(force)
{
	var artistName = '';
	artistName = document.getElementById('ArtistName').value;

	if (artistName.length == 0 && lastArtistName.length > 0)
	{
		lastArtistName = artistName;
		document.getElementById('SongsList').innerText = '';
	}
	else if (lastArtistName != artistName || (artistName.length > 0 && force == true) )
	{
		lastArtistName = artistName;

		var url = "artistslookup.asp?artistName=" + encodeURIComponent(artistName);

		var xmlhttp = new XMLHttpRequest();
		xmlhttp.open("GET", url, true);

		document.getElementById('Loading').innerHTML = 'Loading...';
		xmlhttp.onreadystatechange = function()
		{
			if(xmlhttp.readyState == 4)
			{
				if (xmlhttp.status != 200)
				{
					alert(xmlhttp.responseText, xmlhttp.status + ' - ' + xmlhttp.statusText);
				}
				else
				{
					Sarissa.updateContentFromNode(xmlhttp.responseXML, document.getElementById('SongsList'), processor, null);
				}
				document.getElementById('Loading').innerHTML = '&nbsp;';
			}
		};

		xmlhttp.send('');
	}
}

function SearchArtist(artistName)
{
	var a = artistName.replace("<", '\'').replace(">", "\\");
	SelectArtists();
	document.getElementById('ArtistName').value = a;
	LookupArtists(true);
}

function FindChildNode(node, name, count)
{
	var i = 0;
	var j = 0;

	for (i = 0; i < node.childNodes.length; i++)
	{
		if (node.childNodes[i].nodeName == name)
		{
			j++;
			if (j == count)
				return node.childNodes[i];
		}
	}

}

function ShowAdvanced()
{
	var s = document.getElementById('ShowAdvanced');
	var a = document.getElementById('SongAdvanced');

	s.style.display = 'none';
	a.style.display = 'block';
/*
	var x = document.createElement('SPAN');
	x.innerHTML = '&nbsp;'
	s.parentNode.parentNode.appendChild(x);

	x = document.createElement('SPAN');
	x.innerHTML = '&nbsp;'
	s.parentNode.parentNode.appendChild(x);
*/
}

function HideAdvanced()
{
	var s = document.getElementById('ShowAdvanced');
	var a = document.getElementById('SongAdvanced');

	s.style.display = 'block';
	a.style.display = 'none';
}

function SelectSongs()
{
	var sm = document.getElementById('SearchMenu');
	var a_d = FindChildNode(sm, 'DIV', 1);
	var a_a = FindChildNode(a_d, 'A', 1);
	var i_d = FindChildNode(sm, 'DIV', 2);
	var i_a = FindChildNode(i_d, 'A', 1);

	a_d.style.backgroundColor = '#ffffff';
	a_a.style.color = '#000000';
	i_d.style.backgroundColor = '#aaaaaa';
	i_a.style.color = '#ffffff';

	var f_s = document.getElementById('Songs');
	var f_a = document.getElementById('Artists');

	f_a.style.display = 'none';
	f_s.style.display = 'block';
	f_s.elements.namedItem('SongName').focus();
	LookupSongs(true);
}

function SelectArtists()
{
	var sm = document.getElementById('SearchMenu');
	var a_d = FindChildNode(sm, 'DIV', 2);
	var a_a = FindChildNode(a_d, 'A', 1);
	var i_d = FindChildNode(sm, 'DIV', 1);
	var i_a = FindChildNode(i_d, 'A', 1);

	a_d.style.backgroundColor = '#ffffff';
	a_a.style.color = '#000000';
	i_d.style.backgroundColor = '#aaaaaa';
	i_a.style.color = '#ffffff';

	var f_s = document.getElementById('Songs');
	var f_a = document.getElementById('Artists');

	f_s.style.display = 'none';
	f_a.style.display = 'block';
	f_a.elements.namedItem('ArtistName').focus();
	LookupArtists(true);
}
