var folia_latest_stashed = function() {
  // inject the stylesheet we need for the widget to look pretty
  var l = document.createElement('link');
  l.setAttribute('href','http://myfolia.com/widgets/css/folia.widget.latest-stashed.1.0-min.css');
  l.setAttribute('rel','stylesheet');
  l.setAttribute('type','text/css');
  document.getElementsByTagName('head')[0].appendChild(l); 
  
  // load the API data and fire the callback
  var x = document.getElementById('folia_latest_stashed');
  if (x) {
    var gardener = x.className.replace('gardener-','');
    var s = document.createElement('script');
    s.type = 'text/javascript';
    s.src = 'http://myfolia.com/api/v1/gardeners/' + gardener + '/latest_stashed.json?callback=folia_latest_stashed.render';
    document.getElementsByTagName('head')[0].appendChild(s);
  }

  function render(data) {
    if (data) {
      // display the plantings to the page
      var box = document.createElement('div');
      box.className = "folia-widget-box folia-widget-latest-stashed-box";

      var header = document.createElement('div');
      header.className = "folia-header";
      header.appendChild(document.createTextNode('Folia Garden Tracker'));
      box.appendChild(header);

      var profilePicture = document.createElement('img');
      profilePicture.src = data.profile_image_url;
      box.appendChild(profilePicture);

      var name = document.createElement('p');
      name.className = "name";
      var nameLink = document.createElement('a');
      nameLink.href = data.profile_url;
      nameLink.title = "Go to my gardening homepage";
      nameLink.appendChild(document.createTextNode(data.display_name));
      name.appendChild(nameLink);
      box.appendChild(name);

      var location = document.createElement('p');
      location.className = "location";
      location.appendChild(document.createTextNode(data.location));
      box.appendChild(location);

      var counts = document.createElement('p');
      counts.className = "counts";

      var plantingCount = document.createElement('span');
      plantingCount.className = "plantings-count";
      plantingCount.appendChild(document.createTextNode(data.plantings_planted_count));
      counts.appendChild(plantingCount);

      var stashCount = document.createElement('span');
      stashCount.className = "stashes-count";
      stashCount.appendChild(document.createTextNode(data.plantings_stashed_count));
      counts.appendChild(stashCount);

      box.appendChild(counts);

      //create the div for the latest plantings
      var latestPlantingsBox = document.createElement('div');
      latestPlantingsBox.className = "latest-stashed";

      var latestPlantingsList = document.createElement('ul');
      for (var i=0,j=data.latest_stashed_plantings.length; i<j; i++){	
        var plantingItem = document.createElement('li');

        //add the planting picture
        var plantingImage = document.createElement('img');
        plantingImage.src = data.latest_stashed_plantings[i].profile_image_url;
        plantingItem.appendChild(plantingImage);

        //add the planting name p
        var plantingName = document.createElement('p');
        plantingName.className = "planting-name";
        var plantingNameLink = document.createElement('a');
        plantingNameLink.href = data.latest_stashed_plantings[i].profile_url;
        plantingNameLink.title = "Go to the planting page for " + data.latest_stashed_plantings[i].display_name;

        plantingNameLink.appendChild(document.createTextNode(data.latest_stashed_plantings[i].display_name));
        plantingName.appendChild(plantingNameLink);
        plantingItem.appendChild(plantingName);

        //add the botanical name p
        var plantingBotanicalName = document.createElement('p');
        plantingBotanicalName.className = "botanical-name";

        plantingBotanicalName.appendChild(document.createTextNode(data.latest_stashed_plantings[i].botanical_name));
        plantingItem.appendChild(plantingBotanicalName);

        //attach to the list
        latestPlantingsList.appendChild(plantingItem);
      }

      latestPlantingsBox.appendChild(latestPlantingsList);
      box.appendChild(latestPlantingsBox);

      var linkLine = document.createElement('p');
      linkLine.className = "follow";
      var link = document.createElement('a');
      link.href = data.profile_url + "/stash";
      link.appendChild(document.createTextNode("Browse my seed stash on Folia!"));
      linkLine.appendChild(link);
      box.appendChild(linkLine);

      x.removeChild(document.getElementById('folia_latest_stashed_loader'));
      x.appendChild(box);
    }
  }
  return { render:render };
}();
