var g_profileUrl = "http://www.last.fm/user/krushnine";

function getSmallImageUrl(oLastfm)
{
    var imgUrl = "";
    var oImg = oLastfm.image;
    for(var j=0; j<oImg.length; ++j)
    {
        if(oImg[j].size == "small" && oImg[j]["#text"] != "")
        {
            imgUrl = oImg[j]["#text"];
            break;
        }
    }
    return imgUrl;
}

function lastfmAlbumsCallback(oLastfm)
{
    var maxAlbums = 5;

    if(oLastfm && oLastfm.error == null)
    {
        var sHtml = "";
        var oAlbums = oLastfm.topalbums;
        var numAlbums = Math.min(maxAlbums, oAlbums.album.length);
        
        if(numAlbums > 0)
        {
            sHtml += "<table class=\"lastfmTopAlbums\"><tbody>";
        }

        for(var i=0; i<numAlbums; ++i)
        {
            sHtml += "<tr class=\"lastfmAlbum";
            if(i % 2 == 0)
                sHtml += " evenrow";
            sHtml += "\">"
            
            var oAlbum = oAlbums.album[i];

            // album image
            var imgUrl = getSmallImageUrl(oAlbum);
            if (imgUrl != "")
            {
                sHtml += "<td class=\"lastfmAlbumImg\"><img src=\"" + imgUrl + "\"/></td>";
            }
            
            sHtml += "<td class=\"lastfmAlbumInfoText\">";

            var albumUrl = g_profileUrl; // oAlbum.url;
            if(albumUrl != "")
            {
                sHtml += "<a href=\"" + albumUrl + "\">";
            }
            
            // album name
            if(oAlbum.name != "")
            {
                sHtml += "<div class=\"lastfmAlbumName\">" + oAlbum.name + "</div>";
            }
                        
            // artist name
            if(oAlbum.artist.name != "")
            {
                sHtml += "<div class=\"lastfmAlbumArtistName\">" + oAlbum.artist.name + "</div>";
            }
            
            if(albumUrl != "")
            {
                sHtml += "</a>";
            }
            
            sHtml += "</td>";
            
            sHtml += "</tr>";
        }
        
        if(numAlbums > 0)
        {
            sHtml += "</tbody></table>";
        }
        
        var oElem = document.getElementById("lastfmAlbumsContainer");
        if(oElem && sHtml != "")
            oElem.innerHTML = sHtml;
    }
}

function getDurationStr(seconds)
{
    var amount = 0;
    var unitname = "";
    if (seconds < 60)
    {
        amount = seconds;
        unitname = "second";
    }
    else if (seconds < 3600)
    {
        amount = Math.floor(seconds / 60);
        unitname = "minute";
    }
    else if (seconds < 86400)
    {
        amount = Math.floor(seconds / 3600);
        unitname = "hour";
    }
    else
    {
        amount = Math.floor(seconds / 86400);
        unitname = "day";
    }
    
    var str = amount + " " + unitname;
    if (amount != 1)
    {
        str += "s";
    }
    return str;
}

function lastfmLastPlayed(oLastfm)
{
    if(!oLastfm || oLastfm.error || oLastfm.recenttracks.track.length <= 0)
        return;

    var oLastTrack = oLastfm.recenttracks.track;

    var artist = oLastTrack.artist["#text"];

    var title = oLastTrack.name;
    var isNowPlaying = (oLastTrack["nowplaying"] == "true");
    var when = "";
    if (isNowPlaying)
    {
        when = "*** now playing ***";
    }
    else
    {
        var playedDate = oLastTrack.date["uts"];
        var oDate = new Date();
        var diff = oDate.getTime() / 1000 - parseInt(playedDate);
        when = getDurationStr(diff) + " ago";
    }
    var imgUrl = getSmallImageUrl(oLastTrack);

    var sHtml = "<div class=\"lastfmRecentImg\">";
    if (imgUrl != "")
    {
        sHtml += "<img src=\"" + imgUrl + "\"/>"
    }
    sHtml += "</div><div class=\"lastfmRecentTextContainer\"><a href=\"" + g_profileUrl + "\">";
    sHtml += "<div class=\"lastfmRecentArtist\">" + artist + "</div>";
    sHtml += "<div class=\"lastfmRecentTitle\">" + title + "</div></a>";
    sHtml += "<div class=\"lastfmRecentWhen\">" + when + "</div>";

    var oElem = document.getElementById("lastfmRecentlyPlayedContainer");
    
    if(oElem && sHtml != "")
        oElem.innerHTML = sHtml;
}
