function LZ(x) { return (x>=10||x<0?"":"0") + x }

Date.prototype.ISOlocaltimeStr =
  new Function("  /* Date.ISOlocaltimeStr */ with (this)\n    return " +
    "LZ(getHours())+':'+LZ(getMinutes())+':'+LZ(getSeconds())")

Date.prototype.ISOlocalclockStr =
  new Function("  /* Date.ISOlocaltimeStr */ with (this)\n    return " +
    "LZ(getHours())+':'+LZ(getMinutes())")


Date.prototype.ISOlocaldateStr =
  new Function("  /* Date.ISOlocaldateStr */ with (this)\n    return " +
    "getFullYear()+'-'+LZ(getMonth()+1)+'-'+LZ(getDate())")


Date.prototype.ISOlocalDTstr =
  new Function("  /* Date.ISOlocalDTstr */  with (this)\n    return " +
    "ISOlocaldateStr()+' '+ISOlocalclockStr()")

function InitScrobbler() {
	$('#busy')
			.ajaxStart(function() {
				$(this).show();
			})
			.ajaxStop(function() {
				$(this).hide();
			});
	getRecentTracks();
}

function getRecentTracks(){
	$.get('scrobbler/recent.php', handleRecentTracks);
}

function createHRef(href, text)
{
	return $("<a></a>")
		.attr("href", href)
		.attr("target", "blanc_")
		.html(text);
}

function handleRecentTracks(xml){
	if (xml != null){
		var tracks = $(xml).find("track");
		var table = $("<table></table>").addClass("tblScrobbler");
		var tbody = $("<tbody></tbody>").appendTo(table);
		if (tracks.length == 0) {
			$("<tr></tr>")
				.addClass("trScrobbler0")
				.append (
					$("<td></td>")
						.text("No tracks to display...")
						.css("text-align", "center")
						.css("padding", "0px 4px 2px 4px")
				)
				.appendTo(tbody);

			$("<tr></tr>")
				.addClass("trScrobbler1")
				.append (
					$("<td></td>")
						.text("Who knows...")
						.css("text-align", "center")
						.css("padding", "0px 4px 2px 4px")
				)
				.appendTo(tbody);

			$("<tr></tr>")
				.addClass("trScrobbler0")
				.append (
					$("<td></td>")
						.text("Maybe I'm really not listening to any music right now :)")
						.css("text-align", "center")
						.css("padding", "0px 4px 2px 4px")
				)
				.appendTo(tbody);

			$("<tr></tr>")
				.addClass("trScrobbler1")
				.append ($("<td></td>").text(" "))
				.appendTo(tbody);
		}
		else {
			for(i = 0; i < tracks.length; i++){
				var time = new Date($(tracks[i]).children('date')[0].getAttribute("uts") * 1000);
				$("<tr></tr>").addClass("trScrobbler" + i%2)
					.append($("<td></td>")
						.text($(tracks[i]).children('artist')[0].firstChild.nodeValue)
						)
					.append(
						$("<td></td>")
							.text($(tracks[i]).children('name')[0].firstChild.nodeValue)
					)
					.append(
						$("<td></td>")
							.text(time.ISOlocalDTstr())
					)
					.appendTo(tbody);
			}
		}
		$("<tr></tr>")
			.addClass("trScrobblerPowered")
			.appendTo(tbody)
			.append	(
				$("<td></td>")
					.attr("colspan", "2")
					.addClass ("tdScrobblerPowered")
					.append(createHRef("http://www.last.fm/user/chadoe/", "My recent tracks"))
					.append(" is powered by ")
					.append(createHRef("http://www.last.fm/", "Last.fm"))
			)
			.append (
				$("<td></td>")
					.addClass("tdScrobblerPowered right")
					.append(createHRef("mailto:chadoe%40xbmc%2Eorg", "Contact"))
			);
		$('#scrobbler').html("").append(table)
		if (!$('#scrobbler').is(':visible'))
		{
			$('#scrobbler').fadeIn("slow");
		}
		
		
		setTimeout("getRecentTracks()", 60000);
	}
}

$(document).ready(InitScrobbler);
