var curFile = '';
var playlist1 = null;
var playlist2 = null;
var playlist3 = null;
var jsReady = false;

function beat(filename)
{
	this.filename = filename;
}

function isReady()
{
	return jsReady;
}

function init()
{
	jsReady = true;
}

function thisMovie(movieName)
{
	if (navigator.appName.indexOf("Microsoft") != -1)
		return window[movieName];
	else
		return document[movieName];
}

function sendToPlayer(value)
{
	thisMovie("DB_Banner").sendToPlayer(value);
}

function injectHTML(div,file)
{
	if(div == 'content')
	{
		if(file != curFile)
		{
			new Ajax.Updater(div,file+'.html',{parameters:'dummy=' + new Date().getTime(),method:'get',asynchronous:false});
			$("permalink").innerHTML = '<a href="index.php?page='+file+'"><img src="gfx/permalink.gif" border=0></a>';
		}
		curFile = file;
	}
	else
		new Ajax.Updater(div,file+'.html',{parameters:'dummy=' + new Date().getTime(),method:'get',asynchronous:true});
}

function loadPlaylist()
{
	new Ajax.Request('beats/playlist.xml',{method: 'get',parameters: 'dummy='+new Date().getTime(),asynchronous: false,onComplete: loadXML});
}

function printPlaylist()
{
	var i = 0;
	var ih = '';
	var cleaned = '';

	ih += '<div class="box" id="music_box_orange"><div class="box_edge" id="box_edge_orange">&nbsp;</div><div class="left_tab"><img src="gfx/electronic.gif"></div><div class="songs">';
	for(i = 0; i < playlist1.length; i++)
	{
		cleaned = cleanName(playlist1[i].filename);
		ih += '<div class="song_title"><a href="javascript:sendToPlayer(\''+playlist1[i].filename+'\')"><img src="gfx/play_orange.gif" border=0>'+cleaned+'</a></div><div class="disk"><a href="beats/'+playlist1[i].filename+'"><img src="gfx/disk_orange.gif" border=0></a></div>';
	}
	ih += '</div><div class="box_edge" id="box_edge_orange">&nbsp;</div></div>';

	ih += '<div class="box" id="music_box_purple"><div class="box_edge" id="box_edge_purple">&nbsp;</div><div class="left_tab"><img src="gfx/urban.gif"></div><div class="songs">';
	for(i = 0; i < playlist2.length; i++)
	{
		cleaned = cleanName(playlist2[i].filename);
		ih += '<div class="song_title"><a href="javascript:sendToPlayer(\''+playlist2[i].filename+'\')"><img src="gfx/play_purple.gif" border=0>'+cleaned+'</a></div><div class="disk"><a href="beats/'+playlist2[i].filename+'"><img src="gfx/disk_purple.gif" border=0></a></div>';
	}
	ih += '</div><div class="box_edge" id="box_edge_purple">&nbsp;</div></div>';
	
	ih += '<div class="box" id="music_box_blue"><div class="box_edge" id="box_edge_blue">&nbsp;</div><div class="left_tab"><img src="gfx/orchestral.gif"></div><div class="songs">';
	for(i = 0; i < playlist3.length; i++)
	{
		cleaned = cleanName(playlist3[i].filename);
		ih += '<div class="song_title"><a href="javascript:sendToPlayer(\''+playlist3[i].filename+'\')"><img src="gfx/play_blue.gif" border=0>'+cleaned+'</a></div><div class="disk"><a href="beats/'+playlist3[i].filename+'"><img src="gfx/disk_blue.gif" border=0></a></div>';
	}
	ih += '</div><div class="box_edge" id="box_edge_blue">&nbsp;</div></div>';
	ih += '<div id="instructions">[right-click disks to download]</div>';
	
	$('playlist').innerHTML = ih;
}

function cleanName(dirtyName)
{
	dirtyName = dirtyName.substr(0,dirtyName.lastIndexOf('.'));
	dirtyName = dirtyName.substring(dirtyName.lastIndexOf('/')+1,dirtyName.length);
	return dirtyName;
}

//this function handles the playlist XML file
function loadXML(xhrObject)
{
	var elements = getSafeElements(xhrObject,"playlist");
	if(elements == null) return;
	var xmlTracks = elements[0].getElementsByTagName("track");
	if((xmlTracks == null) || (xmlTracks.length == 0)) return;
	playlist1 = new Array();
	playlist2 = new Array();
	playlist3 = new Array();
	for(var i = 0; i < xmlTracks.length; i++)
	{
		var filename = xmlTracks[i].getAttribute("filename");
		var type = xmlTracks[i].getAttribute("type");
		if(type == "1")
			playlist1[playlist1.length] = new beat(filename);
		if(type == "2")
			playlist2[playlist2.length] = new beat(filename);
		else if(type == "3")
			playlist3[playlist3.length] = new beat(filename);
	}
	
	printPlaylist();
}

function game(color,name,url,img,text)
{
	var ih = "";
	
	ih += "<div class='box' id='box_"+color+"'>";
	ih += "<div class='box_edge' id='box_edge_"+color+"'>&nbsp;</div>";
	ih += "<div class='top_tab' id='top_tab_"+color+"'><a href='javascript:injectHTML(\"content\",\""+url+"\")'>"+name+"</a></div>";
	ih += "<div class='thumb'><a href='javascript:injectHTML(\"content\",\""+url+"\")'><img src='"+img+"' border='0'></a></div>";
	ih += "<div class='game_box_info'>"+text+"</div>";
	ih += "<div class='box_edge' id='box_edge_"+color+"'>&nbsp;</div>";
	ih += "</div>";
	
	document.write(ih);
}

function award(color,name,url,img,text)
{
	var ih = "";
	
	ih += "<div class='box' id='box_"+color+"'>";
	ih += "<div class='box_edge' id='box_edge_"+color+"'>&nbsp;</div>";
	ih += "<div class='award_img'><a href='"+url+"' target='_blank'><img src='"+img+"' border='0'></a></div>";
	ih += "<div class='award_box_info'><span class='award_name'>"+name+":</span> "+text+"</div>";
	ih += "<div class='box_edge' id='box_edge_"+color+"'>&nbsp;</div>";
	ih += "</div>";
	
	document.write(ih);
}

//generic XML parsing functions
function getSafeElements(xhrObj,rootTag)
{
	var elements = xhrObj.responseXML.getElementsByTagName(rootTag);
	if((elements == null) || (elements.length == 0))
	{
		xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); //backup code for IE
		xmlDoc.loadXML(xhrObj.responseText);
		elements = xmlDoc.getElementsByTagName(rootTag);
		if((elements == null) || (elements.length == 0))
			return null;
	}
	return elements;
}
function getFCNV(base,value)
{
	var xmlSearch = base.getElementsByTagName(value);
	if((xmlSearch != null) && (xmlSearch.length > 0))
		return xmlSearch[0].firstChild.nodeValue;
	else
		return '';
}
