$(document).ready(function(){
  // 'Global' settings.
  var newsSearchURL = "http://pesquisa.sapo.pt/";
  var newsSearchAPI = "http://services.sapo.pt/News/JSON";
  var newsSearchDefaults = "&sortby=relevance";

  // Watermark.
  $("#inputterms").Watermark('termos a pesquisar');

  // Define corners.
  $("h2").corner();
  //$("#searchform input.text").corner();
  //$("#searchform input.button").corner();

  // Define show/hide 2/3 columns in homepage.
  $("#cols2").click(function () {
    $("#charts .widecenterbox").hide();
    $("#charts .centerbox").show();
    $("#charts .news").show();

    $("#cols3").removeClass("on");
    $("#cols2").addClass("on");
  });

  $("#cols3").click(function () {
    $("#charts .centerbox").hide();
    $("#charts .news").hide();
    $("#charts .widecenterbox").show();

    $("#cols2").removeClass("on");
    $("#cols3").addClass("on");
  });


  // Order by term in geo.
  $("#orderby").change(function () {
    document.location = this.value;
  });

  // Homepage news titles.
  var highBox = $("#highlight");
  var highNews = highBox.children(".sidebox.news");
  var highTerms = highBox.find(".centerbox img").attr("alt");

  $.getJSON("/api/topterm?d=8&q=" + highTerms, function (topTerm) {
    var urlParams = "?q=title:" + topTerm.term + " pubdatetime:>" + topTerm.start + " pubdatetime:<" + topTerm.end + newsSearchDefaults;
    var apiCall = newsSearchAPI + urlParams + "&limit=1" + "&jsoncallback=?";
    var termClass = "term" + topTerm.order;

    $.getJSON(apiCall, function (data) {
      var newsItem = data.rss.channel.item;
      var newsDate;
      try {
        newsDate = Date.parse(newsItem.pubDate).toString("d MMM yyyy");
      }
      catch (e) {
        newsDate = "";
      }

      try {
        highNews.html("<p class=\"title\"><a class=\""+ termClass +"\" href=\"" + newsItem.link + "\">" + newsItem.title + "</a></p><p><span class=\"source\">" + newsItem.source.value +"</span> <span class=\"date\">"+ newsDate +"</span></p><p class=\"more\"><a href=\"" + newsSearchURL + urlParams + "&barra=noticias" + "\">+ resultados</a></p>");
      } catch (err) {}

    });
  });


  // ... for each secondary chart in the homepage.
  $("#charts > .chart").each( function (i) {
    var newsBox = jQuery(this).children(".sidebox.news");
    var terms = $(this).find(".centerbox img").attr('alt');

    $.getJSON("/api/topterm?d=8&q=" + terms , function (topTerm) {
      var urlParams = "?q=title:" + topTerm.term + " pubdatetime:>" + topTerm.start + " pubdatetime:<" + topTerm.end + newsSearchDefaults;
      var apiCall = newsSearchAPI + urlParams + "&limit=1" + "&jsoncallback=?";
      var termClass = "term" + topTerm.order;

      $.getJSON(apiCall, function (data) {
        var newsItem = data.rss.channel.item;
        var newsDate;
        try {
          newsDate = Date.parse(newsItem.pubDate).toString("d MMM yyyy");
        }
        catch (e) {
          newsDate ="";
        }

        try {
          newsBox.html("<p class=\"title\"><a class=\""+ termClass +"\" href=\"" + newsItem.link + "\">" + newsItem.title + "</a></p><p><span class=\"source\">" + newsItem.source.value +"</span> <span class=\"date\">"+ newsDate +"</span></p><p class=\"more\"><a href=\"" + newsSearchURL + urlParams + "&barra=noticias" + "\">+ resultados</a></p>");
        } catch (err) {}

      });
    });
  });

});

