so = null;

Event.observe(window, 'load', function() {

	get_browser_content_from(initial_browser_page);
	load_player_with_track(initial_track_name, initial_track_file);

});

function audit_now_playing(ref){

	$$('a').each(function(a){

		if (a.rel == ref){
			
			prepend_now_playing(a);
		}
	});
}

function change_track(){
	
	page				= this.href;

	var ajax_requested = new Ajax.Request(
		page, 
		{
			method: 'get', 
			onComplete: play_track
		});

	prepend_now_playing(this);
	this.blur();

	initial_track_id	= this.rel;

	return false;
}

function fill_browser(original_request){

	$('browser').innerHTML = original_request.responseText;
	internalize_links();
	audit_now_playing(initial_track_id);

	$$('td.main-butt').each(function(td){ 
											td.onmouseover	= function(){ this.addClassName('over'); }
											td.onmouseout	= function(){ this.removeClassName('over'); }
											td.onclick		= function(){ get_browser_content_from(this.down('a').href) }
										});
}

function get_browser_content_from(page){

	var ajax_requested = new Ajax.Request(
		page, 
		{
			method: 'get', 
			onComplete: fill_browser
		});

	return false;
}

function go_browse(){

	 get_browser_content_from(this.href);
	 return false;
}

function internalize_links(){
	
	$$('a:not([class=read-more])').each(function(a){ a.onclick = go_browse; });
	$$('a.listen').each(function(a){ a.onclick = change_track; });
	$$('a.view').each(function(a){ a.onclick = redirect_parent; });

	$('search-archives').onsubmit = function(){
		
		var pars = 'terms=' + $F('search-terms');

		var ajax_requested = new Ajax.Request(
		'/ajax/archives/search/', 
		{
			method: 'post',
			parameters: pars,
			onComplete: fill_browser
		});

		return false;
	};
}

function load_player_with_track(name, file){

	so = new SWFObject("/_ui/flash/audio-player.swf", "player", "460", "260", "7", "#000000");
	so.addVariable("songInput", file);
	so.addVariable("trackName", name);
	so.write("flash-player");
}

function play_track(original_request){
	
	params = original_request.responseText.toQueryParams();

	load_player_with_track(params.name, params.file)
	return false;
}

function prepend_now_playing(ref){
	
	parent_row			= ref.up('tr');
	to_insert			= '<tr class="now-playing"><td colspan="5" class="now-playing">NOW PLAYING</td></tr>';
	
	remove_others		= $$('tr.now-playing').each(function(t){ t.remove(); });
	close_desc			= $$('tr.now-playing-details p.desc').each(function(p){ p.hide(); });
	remove_others		= $$('tr.now-playing-details').each(function(t){ t.removeClassName('now-playing-details') });

	inserted			= Element.insert(parent_row, { before: to_insert });
	add_detail_class	= parent_row.addClassName('now-playing-details');
	open_desc			= $$('tr.now-playing-details p.desc').each(function(p){ p.show(); });
}

function redirect_parent(){
	
	window.opener.location = this.href;
	window.opener.focus();
	return false;
}