//automatically creates Manager
//not sure if this is a good idea
var $ = function(id){return document.getElementById(id);}

var delicious = {
  container : $('delicious'),
  url : "http://query.yahooapis.com/v1/public/yql?q=select%20title%2Clink%20from%20delicious.feeds%20where%20username%3D'pims'&format=json&env=http%3A%2F%2Fwww.datatables.org%2Falltables.env&callback=delicious.display",
  loader : function()
  {
    var loader = $('delicious_spinner');
    if(loader == null)
    {
      loader = document.createElement('img');
      loader.id = 'delicious_spinner';
      loader.src = '/img/spinner.gif';
    }
    return loader;
  },
  showLoader : function()
  {
    this.container.parentNode.appendChild(this.loader());
  },
  hideLoader : function()
  {
    this.loader().parentNode.removeChild(this.loader());
  },
  init : function()
  {
    if(this.container == null){ return;}
    this.showLoader();
    var h = document.getElementsByTagName('head')[0];
    var s = document.createElement('script');
    s.type = 'text/javascript';
    s.src = this.url;
    s.id = "delicious_jsonp";
    h.appendChild(s);  
  },
  display : function(data)
  {
    this.hideLoader();
    if(data.query.results != null)
    {
      var frag = document.createDocumentFragment();
      for(var i = 0, j = data.query.results.item.length;i<j;i++)
      {
        var li = document.createElement('li');
        var link = document.createElement('a');
        link.href = data.query.results.item[i].link;
        var text = document.createTextNode(data.query.results.item[i].title)
        link.appendChild(text);
        li.appendChild(link);
        frag.appendChild(li);
      }
      this.container.appendChild(frag)
    }
    else
    {
      var li = document.createElement('li');
      var text = document.createTextNode('oops, something went wrong');
      li.appendChild(text);
      this.container.appendChild(li);
    }
  }
}

delicious.init();
(function(){
  var links = document.getElementsByTagName('a');
  var i = links.length;
  while(i--)
  {
    if(links[i].childNodes[0].nodeName.toLowerCase() == 'img')
    {
      links[i].className = "link-fix";
    }
  }
})();
