function calculateDateAgo(secAgo) {
 var agoString, agoRange, agoScaled;
 if(secAgo >= (agoRange = 60*60*24)) 
   agoString = (agoScaled = Math.floor(secAgo/agoRange))+" "+(agoScaled>1?"days":"day") + " ago"
 else if(secAgo >= (agoRange = 60*60))
   agoString = (agoScaled = Math.floor(secAgo/agoRange))+" "+(agoScaled>1?"hours":"hour") + " ago"
 else if(secAgo >= (agoRange = 60))
   agoString = (agoScaled = Math.floor(secAgo/agoRange))+" "+(agoScaled>1?"minutes":"minute") + " ago"
 else if(secAgo >= -60)
   agoString = "listening just now";
 else
   agoString = "soon ;)";
 return agoString
}
 
function truncateName(name, l) {
return name.length > l ? name.substr(0,l-2) + "\u2026" : name
}
 
function lfmRecentTracks(JSONdata) {
 
try { 
 var eRow, eCell, eImg, eLink, eSpan;
 var eTable = document.getElementById("lfmRecentTracks");  
 var oTracks = new Array().concat(JSONdata.recenttracks.track);
 
 for (var i = 0; i < oTracks.length; i++) {
  eRow = eTable.insertRow(-1);

 
  //insert track link
  eCell = eRow.insertCell(-1)
  eCell.className = "lfmTrackInfoCell";
  eLink = document.createElement("a");
  eLink.appendChild(document.createTextNode( truncateName(oTracks[i].name, 25) ));
  eCell.appendChild(eLink);
  eLink.href = oTracks[i].url;
  eLink.target = "new";
  eLink.className = "lfmTrackTitle";
 
  //insert artist name
  eSpan = document.createElement("span");
  eSpan.appendChild(document.createTextNode(" by " + truncateName(oTracks[i].artist["#text"], 22) ));
  eCell.appendChild(eSpan);
  eSpan.className = "lfmTrackArtist";
 
  //insert date
  eSpan = document.createElement("span");
  eCell.appendChild(eSpan);
  eSpan.appendChild(document.createTextNode(calculateDateAgo(new Date().getTime()/1000 - oTracks[i].date.uts)));  
  eSpan.className = "lfmTrackDate"; 
 }  
} catch(e) {}
}




