FEED_URI = "./news/feed";

var httpObj = $.get(FEED_URI, null, loadNews);


function loadNews() {
  var doc = httpObj.responseXML;
  var newses = buildNews(doc);
  renderHeadline(newses);
}

  function buildNews(doc) {
    var newses = new Array();
    var elements = $(doc).find("item");
    var limit = 3
    if (elements.length < limit) {
      limit = elements.length;
    }
    for (var i=0; i<limit; i++) {
      var news = new Object();
      news.title = $(elements[i]).find("title").text();
      news.link = $(elements[i]).find("link").text();
      news.date = $(elements[i]).find("pubDate").text();
      var categories = new Array();
      $(elements[i]).find("category").each(function() {
        categories.push($(this).text());
      });
      news.categories = categories;
      newses.push(news);
    }
    return newses;
  }

  function renderHeadline(newses) {
    html = '<div class="title"><a href="/news/">NEWS</a></div>\n';
    html += '<div class="news">\n';
    for (var i=0; i<newses.length; i++) {
      html += '<a href="' + filterURL(newses[i].link) + '">';
      html += newses[i].title;
      html += '</a><br />\n';
    }
    html += '</div>';
    $("div#headlineNews").html(html);
  }

  function buildCountry(news) {
    var result = "";
    if (news.categories.length <= 0) {
      return result;
    }
    var added = false;
    result = "(";
    for (var i=0; i<news.categories.length; i++) {
      var name = getCountryName(news.categories[i]);
      if (name == null) {
        continue;
      }
      if (i > 0 && added) {
	    result += "\, ";
	  } else {
	    added = true;
	  }
      var url = getDomain(news.categories[i]);
      result += '<a href="' + url + '" class="none">' + name + '</a>';
    }
    result += ")";
    return result;
  }

  function getCountryName(code) {
    if (code == "in") return "India";
    if (code == "me") return "Middle East";
    if (code == "ph") return "Philippines";
    if (code == "sg") return "Singapore";
    if (code == "th") return "Thailand";
    return null;
  }

  function getDomain(code) {
    var currentURL = location.hostname;
    if (currentURL.indexOf(".") < 0) {
      return "http://" + code + ".toto.com/news/";
    }
    return "http://" + code + currentURL.substring(currentURL.indexOf(".")) + "/news/";
  }

  function formatDate(str) {
    var date = new Date(str);
    var m = date.getMonth();
    var d = date.getDate();
    var y = date.getFullYear();
    if (d < 10) { d = "0" + d; }
    if (y < 2000) { y += 1900; }
    return getMonth(m) + " " + d + " " + y;
  }

  function getMonth(idx) {
    var names = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
    return names[idx];
  }

  function filterURL(src) {
    var domain = resolveDomain();
    var result = src.replace("asia\.", domain + ".");
    result = result.replace("/blog/", "/news/");
    return result;
  }

  function resolveDomain() {
	var tokens = String(window.location).split(".");
	var subdomain = tokens[0];
	if (subdomain.indexOf("http://") == 0) {
		subdomain = subdomain.substr(7);
	}
	return subdomain;
  }
