	/*
		/music.js

		-------------------------------------------------------------------
		Brought to you by fried-line productions: http://www.fried-line.com
		-------------------------------------------------------------------
		Change log:
		-January? 2009 - Original
		- December 5, 2009 - D. Horn - Removed old ajax calls and replaced with new format
		- December 13,2009 - D. Horn - Moved lyrics functions from scripts_common to here
	*/

function showLyrics(targetID,song_name,song_uid) {

	var targetObj = document.getElementById(targetID);
	var p_pieces=targetID.split('_');
	var songtitle = p_pieces[0] + "_songtitle";
	var lyrics = p_pieces[0] + "_lyrics_inner";
	
	// Make lyrics block visible
	//targetObj.style.visibility = 'visible';

	var songLyrics = "<center><b>"+song_name+"</b><br>";
	songLyrics += "<i>by Kelly Stratton</i><br><br></center>";

	// Update the lyrics block with the song data
	document.getElementById(songtitle).innerHTML = songLyrics;
	document.getElementById(lyrics).innerHTML = "<center><img src='images/loading.gif' alt='Loading...' /></center>";

	m_song_ajax=new DataService('Music');
	var p_params={
					'uid' : song_uid,
					'target' : lyrics,
					'main' : targetID
				}
	m_song_ajax.executeSpecialClass('Song','getLyrics',p_params,setLyrics);	
}

function setLyrics(p_response) {
	var p_song_data = p_response.result;
	var p_lyrics =  p_song_data['lyrics'];
	var p_target = p_song_data['dom_target'];
	var p_parent = p_song_data['main_target'];
	var obj = document.getElementById(p_target);
	var parent_obj = document.getElementById(p_parent);

	hideMP3();
	// Check if song playing is same as lyrics.  If not, stop
	
	obj.innerHTML = p_lyrics;
	LyricsHolder.setSpecialClickClose();
	LyricsHolder.setBoxContent(parent_obj,'hidden_lyrics_holder');
	LyricsHolder.open();
}


function activateLyricsWindow(p_lyrics_id) {
	/*
	 * TODO DAVE - Use lightwindow.
	 * 
	 * Problem 1: I tried to hack the javascript lightwindow
	 * call with the call call inline content and got an
	 * uncaught exception.  Figure this out.
	 *
	 * Problem 2: You can't set the height and width because
	 * it's always going to be different with lyrics.  You can
	 * probably calculate after content is generated (if you put
	 * nothing, the lightwindow uses the whole page.
	 *
	 * This is probably simple, but until I figure it out, I'll
	 * use a simple modal box.
	 * 
	 */
	myLightWindow.activateWindow({
		href: "#" + p_lyrics_id
	});
}

function showMP3() {
	var p_player = document.getElementById('mp3_player');
	if (p_player != undefined && p_player != null) {
		p_player.style.visibility='visible';
	}
}

function hideMP3() {
	var p_player = document.getElementById('mp3_player');
	if (p_player != undefined && p_player != null) {
		p_player.style.visibility='hidden';
	}
}

function mp3Player(id,swf_player) {
	var m_id = id;
	var m_file;
	var m_autoplay;
	var m_autoload;
	var m_title;
	var m_trigger_color_off = '#ffffff';
	var m_trigger_color_on = '#00dd00';
	var m_swf_player = swf_player;
	var m_song_nodes;
	var m_song_ajax;
	var self=this;

	
	this.setTriggerTD=function(trigger_object,m_action) {
		var triggerTD = trigger_object.parentNode.parentNode;
		if (m_action==0) {
			trigger_object.id='quiet';
			triggerTD.style.color=m_trigger_color_off;
		} else {
			trigger_object.id='loud';
			triggerTD.style.color=m_trigger_color_on;
		}
	}

	this.activatePlay = function(trigger_object) {
		var l  = document.getElementById('loud');  // the existing 'play' prompt
		var m  = document.getElementById('monstah'); // the existing player object
		if (l)
			self.setTriggerTD(l,0);
		if (m)
			m.parentNode.removeChild(m);
		self.setTriggerTD(trigger_object,1);
		// make the swf appear
		var t = trigger_object.parentNode;
		var pieces=t.id.split('_');
		var song_uid=pieces[1];
		self.createNewSinglePlayer(song_uid);
	}
	
	this.createNewSinglePlayer = function(song_id) {
		var sound_file = ""; 
		var sound_name = "";
		var s_info = document.getElementById('current_song_name');
		if (s_info)
			s_info.innerHTML = '<img src="images/loading.gif" alt="Loading..." />';
		//var important_nodes = Array('name','play_file');

		//m_song_ajax = new getAjaxXml('song','rtnType=XML&category=Music&subcategory=song&uid=' + song_id,important_nodes,self);
		m_song_ajax=new DataService('Music');
		m_song_ajax.executeSpecialClass('Song','getSong',song_id,this.setSong);

	}
	
	this.do_flashplayer = function(player_jar,file_name,friendly_name) {
		
		swf_file = 'anim/' + m_swf_player;
		so=new SWFObject(swf_file,'monstah','200','20','7','#440000');
		so.addVariable("mp3",file_name);
		so.addVariable("autoplay","1");
		so.addParam("autoload","1");
		so.addVariable("title",friendly_name);
		so.addVariable("showplaylistnumbers","0");
		so.addVariable("showvolume","1");
		so.addVariable("loadingcolor","440000");
		so.addVariable("bgcolor","440000");
		so.addVariable("bgcolor1","440000");
		so.addVariable("bgcolor2","440000");
		so.addVariable("slidercolor1","664444");
		so.addVariable("slidercolor2","660000");
		so.addVariable("overcolor","770000");
		so.addVariable("player:jsPlay","");
		so.write(player_jar);
	}

	this.setSong = function(p_response) {
		var p_song_data = p_response.result;
		var filename='player/' + p_song_data['play_file'];
		var friendlyname=p_song_data['name'];
		var player_jar = document.getElementById(m_id);
		self.do_flashplayer(player_jar,filename,friendlyname);
		var info=document.createElement('span');
		info.id = 'current_song_name';
		info.innerHTML = friendlyname;
		player_jar.appendChild(document.createElement('br'));		
		player_jar.appendChild(info);		
	}
		
}

function mp3PlayerMulti (id,swf_player) {
	var m_id = id;
	var m_file;
	var m_autoplay;
	var m_autoload;
	var m_title;
	var m_trigger_color_off = '#ffffff';
	var m_trigger_color_on = '#00dd00';
	var m_swf_player = swf_player;
	var m_song_nodes;
	var m_song_ajax;
	var m_shuffle = true;
	var self=this;

	this.setPlayer = function() {
		//var important_nodes = Array('name','play_file');
		//m_song_ajax = new getAjaxXml('song','rtnType=XML&category=Music&subcategory=list&uid=0',important_nodes,self);
		/*
		 * What's happening here:
		 * -Define a DataService object (manage_data.js).  This is the object that handles any ajax requests.  'Music'
		 * is the collection (Music.php) containing the php classes we will be using
		 * -call executeSpecialClass with 4 arguments: The php classname, the class function that will return data, the
		 * arguments that function takes (in this case empty brackets for no arguments, and the callback function to run when
		 * we receive data from that function call
		 */
		m_song_ajax=new DataService('Music');
		m_song_ajax.executeSpecialClass('SongList','getSongList',{},this.setMusicList);
	}


	this.do_flashplayer = function(player_jar,file_list,friendly_list) {
		
		swf_file = 'anim/' + m_swf_player;
		so=new SWFObject(swf_file,'monstah','250','300','7','#000000');
		so.addVariable("mp3",file_list);
		so.addVariable("title",friendly_list);
		so.addVariable("width","250");
		so.addVariable("height","300");
		so.addVariable("autoplay","1");
		if (m_shuffle)
			so.addVariable("shuffle","1");
		so.addVariable("loadingcolor","000000");
		so.addVariable("bgcolor1","000000");
		so.addVariable("bgcolor2","000000");
		so.addVariable("buttoncolor","cccccc");
		so.addVariable("slidercolor1","666666");
		so.addVariable("slidercolor2","222222");
		so.addVariable("textcolor","222222");
		so.addVariable("bgcolor","000000");
		so.addVariable("currentmp3color","cccccc");
		so.addVariable("scrollbarcolor","666666");
		so.addVariable("playlistcolor","000000");
		so.addVariable("sliderovercolor","aaaaaa");
		so.addVariable("showplaylistnumbers","0");

		so.addVariable("player:jsPlay","");
		so.write(player_jar);
	}

	this.setMusicList=function(p_response) {
		var p_song_data = p_response.result;
		var filenames=[];
		var friendlynames=[];
		var file_list = '';
		var friendly_list = '';
		i=0;
		for (var song_index in p_song_data) {
			filenames[i] = 'player/' + p_song_data[song_index]['play_file'];
			friendlynames[i] = p_song_data[song_index]['name'];
			i++;
		}
		//alert(filenames.join('|'));
		var player_jar = document.getElementById(m_id);
		self.do_flashplayer(player_jar,filenames.join('|'),friendlynames.join('|'));
	}
	
}

