
var playlist_normal_index = 0;
var playlist_shuffle_index = 0;
var shuffle = false;
var newsitems = new Array();

/* ------------------------------------------------------------------------ JQUERY */

$.fn.delay = function(time, callback){
    // Empty function:
    jQuery.fx.step.delay = function(){};
    // Return meaningless animation, (will be added to queue)
    return this.animate({delay:1}, time, callback);
}

$(function()
{
	$("body").delay(300, function(){
		init_newsitems_index();
	});
	
	$("body").delay(1000, function(){
	    autoplay();
	});	
});

/* ------------------------------------------------------------------------ CLICKS */

function click_album(id_album)
{
	document.location.href = '?a=select-album&id='+id_album;
}

function click_track(id_track, id_artist)
{
	click_track_play(id_track);
	click_artist_info(id_artist);
}

function click_artist_info(id_artist)
{
	load_and_display_artist_info(id_artist);
}

function click_track_play(id_track)
{
	load_and_play_track(id_track);
}

function click_album_cover()
{
	load_and_display_page(1);
	init_newsitems_index();
}

/* ------------------------------------------------------------------------ TRACKS & ARTISTS & NEWS */

function load_and_play_track(id_track)
{	
	$.getJSON("index.php?a=getjson&type=track&id="+id_track, function(track){ 

		// display track data
		$("#track_name").html(track.name);
		$("#track_artist").html(track.artist.name);	
		
		// send 'play' command to the swf
		if(window.hbas_player)
		{
			window.document["hbas_player"].SetVariable("value_from_js", track.file);
			window.document["hbas_player"].SetVariable("action_from_js", "load_and_play_file");
		}

		if(document.hbas_player)
		{
			document.hbas_player.SetVariable("value_from_js", track.file);
			document.hbas_player.SetVariable("action_from_js", "load_and_play_file");
		}
		
		// update playlist indexes
		update_playlist_indexes_by_track_id(track.id);
		
		// highlight track
		$(".playing").removeClass("playing");
		$("#track_id_"+track.id).addClass("playing");
		
	});
}

function load_and_display_artist_info(id_artist)
{
	$.getJSON("index.php?a=getjson&type=artist&id="+id_artist, function(artist){ 

		// display artist profile
		$("#main .container").scrollTop(0);
		$("#main .container .pad").html("<h4>"+artist.name+"</h4>"+artist.description);
		$("#main h3").html('<img src="img/info_btn.gif" width="14" height="14" alt="Info Btn"> Artist Profile');
		
		// display news items
		newsitems = artist.newsitems;
		display_newsitems_index();
		
	});
}

function display_newsitems_index()
{	
	var html = "";
	
	for(c=0; c<newsitems.length; c++)
		html += '<a href="#" onclick="display_newsitem('+c+')">'+newsitems[c].title+' <span class="date">('+convert_date(newsitems[c].date)+')</span></a><br>';
	
	$("#news .container").html(html);	
}

function display_newsitem(i)
{	
	$("#main .container").scrollTop(0);
	$("#main .container .pad").html("<h4>"+newsitems[i].title+"</h4>"+newsitems[i].content);
	$("#main h3").html(" &nbsp; News");
}

function update_playlist_indexes_by_track_id(id_track)
{
	playlist_normal_index = array_search(playlist_normal, id_track);
	playlist_shuffle_index = array_search(playlist_shuffle, id_track);
}

function skip_track(dir)
{
	if (shuffle)
	{
		playlist_shuffle_index += dir;
		if (playlist_shuffle_index > playlist_shuffle.length-1) playlist_shuffle_index = 0;
		if (playlist_shuffle_index < 0) playlist_shuffle_index = playlist_shuffle.length-1;
		id_track = playlist_shuffle[playlist_shuffle_index];	
	} else {
		playlist_normal_index += dir;
		if (playlist_normal_index > playlist_normal.length-1) playlist_normal_index = 0;
		if (playlist_normal_index < 0) playlist_normal_index = playlist_normal.length-1;
		id_track = playlist_normal[playlist_normal_index];		
	}
	
	load_and_play_track(id_track);
}

function set_shuffle(state)
{
	shuffle = state;
}

function init_newsitems_index()
{
	$.getJSON("index.php?a=getjson&type=newsitems-index", function(ni){ 
		
		// display news items
		newsitems = ni;
		display_newsitems_index();
		
	});
}

/* ------------------------------------------------------------------------ PAGES */

function load_and_display_page(id_page)
{
	$.getJSON("index.php?a=getjson&type=page&id="+id_page, function(page){ 

		// display page
		$("#main .container").scrollTop(0);
		$("#main .container .pad").html(page.content);
		$("#main h3").html(" &nbsp; "+page.title);
		
	});
}

/* ------------------------------------------------------------------------ MISC */

function array_search(array, val)
{
	for (var i = 0; i < array.length; i++) {
		if (array[i] == val) {
			return i;
		}
	}
	return false;
};

function convert_date(d)
{
	y = d.substring(0,4);
	m = d.substring(5,7);
	d = d.substring(8,10);
	
	return d+"-"+m+"-"+y;
}



