var FEED_URL = "http://api.postrank.com/v2/feed/810bc24b515a3b2da9be244adec43af0?appkey=ubiquity-moz&q=ubiquity&num=30&level={LEVEL}&callback=onFeedLoad"

var addHighlight = function(){ jQuery(this).addClass("highlight"); };
var removeHighlight = function(){ jQuery(this).removeClass("highlight") };

function loadPlanet( level ){
  level = level || "good";
  script = document.createElement("script");
  script.src = FEED_URL.replace(/{LEVEL}/, level);
  document.body.appendChild(script);
  
  if( level == "good" ){
    jQuery("#popular").addClass("selected");
    jQuery("#everything")
      .removeClass("selected")
      .hover( addHighlight, removeHighlight )
      .click( function(){ 
        loadPlanet( "all" );
      });
    
  } else {
    jQuery("#popular")
      .removeClass("selected")
      .hover( addHighlight, removeHighlight )
      .click( function(){ 
        loadPlanet( "good" );
      });
      
    jQuery("#everything").addClass("selected");
  }
  
}

function Make( elName, content, className ){
  var div = document.createElement( elName );
  div.innerHTML = content;
  div.className = className;
  return div;
}

function toDate( num ) {
  var d = new Date( num*1000 );

  var weekday=new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday")
  var monthname=new Array("January","February","March","April","May","June","July","August","September","October","November","December")
  return "<i>" + d.getDate() + "&nbsp;" + monthname[d.getMonth()] + "</i>";
}

function feedItemToHtml( item ){
  var parent = Make("div", "", "post");
  
  var infoDiv = Make("div", "", "info");
  var rankDiv = Make("div", "", "rank");
  rankDiv.style.width = item.postrank*15;
  rankDiv.style.backgroundColor = item.postrank_color;
  infoDiv.appendChild( Make("div", "<em>"+item.original_link.match(/\/\/(.*?)\//)[1]+"</em>") );
  infoDiv.appendChild( rankDiv );
  infoDiv.appendChild( Make("div", toDate(item.pubdate)) );    
  
  
  var link = Make("a", item.title);
  link.href = item.original_link;
  var title = Make("h2","");
  title.appendChild( link );
  title.style.color = item.postrank_color;

  parent.appendChild( infoDiv );
  parent.appendChild( title );
  parent.appendChild( Make("p", item.description) );
  
  return parent;
}


function onFeedLoad( data ){
  var posts = document.getElementById("posts");
  posts.innerHTML = "";
  
  for( var i=0; i<data.items.length; i++){
    var html = feedItemToHtml( data.items[i] );
    posts.appendChild(html);
    var d = Make("div"); d.innerHTML = "<br clear='all'/>";
    posts.appendChild( d );
  }
}