// JavaScript Document

var oldID = 0;

var init = function() {
	$$('#main_menu ul li').each(function(ele) {
		ele.observe('click', menuClick);
	});
	
	$$('a.collapsed').each(function(ele) { ele.observe('click', getInfo); });
};

var menuClick = function(e) {
	e.stop();
	var ele = e.findElement();
	
	if (ele.tagName == 'LI') ele = ele.down();
	
	window.location = ele.getAttribute('href');
};

var loadSong = function(id) {	
	$('link_' + id).setStyle({ background: 'url(images/throbber.gif) no-repeat' });
	
	if (oldID != 0) {
		$('expanded_' + oldID).hide().update();
		$('collapsed_' + oldID).show();
	}
	
	new Ajax.Updater('expanded_' + id, 'song_info.php?song_id=' + id, {
		parameters: { logged_in: is_logged_in },
		onComplete: function(r) {
			$('collapse_button').observe('click', closeInfo);
			$('collapsed_' + id).hide();
			$('expanded_' + id).appear();
			
			$('link_' + id).setStyle({ background: 'url(images/plus_minus.jpg) no-repeat' });
			
			new Starbox('stars', $F('star_average'), { identity: 'star_' + id, indicator: '#{average} (#{total} votes)', onRate: rateSong, total: $F('star_ratings') });
			
			swfobject.embedSWF("flash/new_player_multi.swf", "flash_player_" + id, "275", "100", "9.0.0", "", { 
				width: 275, 
				height: 100, 
				mp3: 'music/' + $F('song_mp3'), 
				title: $F('song_titles'), 
				autoload: 1, 
				showloading: 'autohide', 
				showvolume: 1, 
				bgcolor1: origin_color, 
				bgcolor2: dark_color,  
				bgcolor: 'E6E6E6', 
				buttoncolor: 'FFFFFF', 
				buttonovercolor: 'D7EBF6', 
				sliderovercolor: 'D7EBF6'
			});		
			oldID = id;
		}
	});
};

var getInfo = function(e) {
	e.stop();
	
	var ele = Event.element(e);
	var id = ele.getAttribute('name');
	var media = ele.getAttribute('media');
	
	if (media == 'video') {
	

		ele.setStyle({ background: 'url(images/throbber.gif) no-repeat' });
		
		if (oldID != 0) {
			$('expanded_' + oldID).hide().update();
			$('collapsed_' + oldID).show();
		}
		
		new Ajax.Updater('expanded_' + id, 'song_info.php?vid_id=' + id, {
			parameters: { logged_in: is_logged_in },
			onComplete: function(r) {
				$('collapse_button').observe('click', closeInfo);
				$('collapsed_' + id).hide();
				$('expanded_' + id).appear();
				
				ele.setStyle({ background: 'url(images/plus_minus.jpg) no-repeat' });
				
				new Starbox('stars', $F('star_average'), { identity: 'star_' + id, indicator: '#{average} (#{total} votes)', onRate: rateVideo, total: $F('star_ratings') });
				
				flowplayer("player", "includes/flowplayer-3.1.5.swf");
				
				oldID = id;
			}
		});	
	
	} else {
		ele.setStyle({ background: 'url(images/throbber.gif) no-repeat' });
		
		if (oldID != 0) {
			$('expanded_' + oldID).hide().update();
			$('collapsed_' + oldID).show();
		}
		
		new Ajax.Updater('expanded_' + id, 'song_info.php?song_id=' + id, {
			parameters: { logged_in: is_logged_in },
			onComplete: function(r) {
				$('collapse_button').observe('click', closeInfo);
				$('collapsed_' + id).hide();
				$('expanded_' + id).appear();
				
				ele.setStyle({ background: 'url(images/plus_minus.jpg) no-repeat' });
				
				new Starbox('stars', $F('star_average'), { identity: 'star_' + id, indicator: '#{average} (#{total} votes)', onRate: rateSong, total: $F('star_ratings') });
				swfobject.embedSWF("flash/new_player_multi.swf", "flash_player_" + id, "275", "100", "9.0.0", "", { 
				
					width: 275, 
					height: 100, 
					mp3: 'music/' + $F('song_mp3'), 
					title: $F('song_titles'), 
					autoload: 1, 
					showloading: 'autohide', 
					showvolume: 1, 
					bgcolor1: origin_color, 
					bgcolor2: dark_color,  
					bgcolor: 'E6E6E6',
					buttoncolor: 'FFFFFF', 
					buttonovercolor: 'D7EBF6', 
					sliderovercolor: 'D7EBF6'
				});		
				oldID = id;
			}
		});	
	}
};

var rateSong = function(element, memo) {
	var id = memo.identity.substr(5);
	var score = memo.rated;
	
	new Ajax.Request('rateSong.php', { parameters: 'id=' + id + '&score=' + score });
	
	$('rate_to_' + id).hide();
	$('form_' + id).show();
};

var rateVideo = function(element, memo) {
	var id = memo.identity.substr(5);
	var score = memo.rated;
	
	new Ajax.Request('rateVideo.php', { parameters: 'id=' + id + '&score=' + score });
	
	$('rate_to_' + id).hide();
	$('form_' + id).toggle();
};

var closeInfo = function(e) {
	e.stop();

	var ele = Event.element(e);
	var id = ele.getAttribute('name');
	
	$('expanded_' + id).hide().update();
	$('collapsed_' + id).show();
	
	oldID = 0;
};

Event.observe(window, 'load', init);