$(document).ready(function() {
  xeko.widgets.agentbadges.getAgent();
  xeko.widgets.agentbadges.renderBadges();

  $("#badgesPopup").click(function(e) {
    e.preventDefault();
    $(".postItOpen").show();
    $(".postItClosed").hide();
  });

  $("#closeBadgesPopup").click(function(e) {
    e.preventDefault();
    $(".postItOpen").hide();
    $(".postItClosed").show();
  });

  $("#closeBadgeDetail_1").click(function(e) {
    e.preventDefault();
    $("#badgeDetailItem_1").hide();
  });

  $("#closeBadgeDetail_2").click(function(e) {
    e.preventDefault();
    $("#badgeDetailItem_2").hide();
  });

  $("#closeBadgeDetail_3").click(function(e) {
    e.preventDefault();
    $("#badgeDetailItem_3").hide();
  });

});

xeko.widgets.agentbadges =
{
  "currentpage": 1,
  "totalbadges": 0,
  "totalpages": 1,
  "nextPage": function() {

  },
  "prevPage": function() {

  },
  "renderBadges": function() {
    $.ajax
		({
		  type: "GET",
		  url: "/widgets/widget.AgentInfo.handler.php?request=agentbadges",
		  success: function(xml) {
		    $(".badgelist ul").html("");
		    var levels = new Array(0, 0, 0, 0);

		    xeko.widgets.agentbadges.totalcards = $("agentbadge", xml).size();
		    $("agentbadge", xml).each(function(node) {
		      var badgeid = $(this).attr("id");
		      var badgeImg = $("imageidentifier", this).text();
		      var badgeName = $("name", this).text(); 
		      var badgeLevelLocation = badgeImg.lastIndexOf("_");
		      var badgeLevel = badgeImg.substring(badgeLevelLocation + 1, badgeLevelLocation + 2);
		      $("div#agentbadgelist_" + badgeLevel + " ul").append("<li><img class='badge" + badgeLevel + "' src='/images/badges/g_badge_" + badgeImg + ".png' title='" + badgeName + "' /></li>");
		      levels[badgeLevel]++;
		    });

		    for (i = 1; i < levels.length + 1; i++) {
		      if (levels[i] == 0) {
		        $("div#agentbadgelist_" + i).hide();
		      }
		    }

			$("#agentbadge_loading").hide();
			$("#agentbadgelist").show();
		    // Wire up events to badge images
		    xeko.widgets.agentbadges.addEvents();
		  },
		  error: function(response) {

		  }
		});
  },
  "addEvents": function() {
    // Add detail click event
    $(".badge1").click(function(e) {
      e.preventDefault();
     // TODO: add badge img and detail
      $("#badgeDetailItem_1 img.badge").attr("src", e.target.src);
      $("#badgeDetailItem_1 h3").text(e.target.title);
      $("#badgeDetailItem_1 .desc span").text(e.target.title);
      $("#badgeDetailItem_1").show();

    });

    $(".badge2").click(function(e) {
      e.preventDefault();
      $("#badgeDetailItem_2 img.badge").attr("src", e.target.src);
      $("#badgeDetailItem_2 h3").text(e.target.title);
      $("#badgeDetailItem_2 .desc span").text(e.target.title);
      $("#badgeDetailItem_2").show();
      
    });

    $(".badge3").click(function(e) {
      e.preventDefault();
      $("#badgeDetailItem_3 img.badge").attr("src", e.target.src);
      $("#badgeDetailItem_3 h3").text(e.target.title);
      $("#badgeDetailItem_3 .desc span").text(e.target.title);
      $("#badgeDetailItem_3").show();
    });
  },
  "getAgent": function() {
    $.ajax(
		    {
		      method: "get",
		      url: "/widgets/widget.AgentInfo.handler.php",
		      success: function(xml) {
		        // Check for existence of <agent> node for this Agent ID
		        if ($(xml).find("agent").length == 1) {
		          xeko.widgets.agentbadges.parseAgentXml(xml);
		        }
		      },
		      error: function(xmlHttpRequest, status, err) {
		        // this usually means it can't find the agent
		      }
		    });
  },
  "parseAgentXml": function(xml) {
    // Avatar
    var avatarImg = "/images/cardart/" + xeko.utilities.removeSpaces($("card>hotspot", xml).text()) + "/altereco/" + $("card>number", xml).text() + ".png";

    $(".alterEco img").attr("src", avatarImg);
  }
};