$(document).ready(function() {
  xeko.drawers.items.messagingDrawer = { "id": "messagingDrawer", "closed": "-280px", "open": "3px", "onopenevent": "messagesdraweropen" };

  xeko.events.notify("xeko.widgets.messaging.loadMessages", "messagesdraweropen");

  $("div.messagesClose a").click(function(e) {
    e.preventDefault();
    xeko.drawers.slideDrawer("messagingDrawer", true);
  });
});

xeko.widgets.messaging = {
  "loadMessages": function() {

    // Set loading message
    $(".messagesDiv").html("<div class='agentMessage'>loading...</div>");

    $.ajax({
      "type": "GET",
      "url": "/widgets/widget.Messaging.handler.php",
      "success": function(xml) {
        /*
        <agentmessage id="658BCFDB-EA9C-437C-AC0F-72E8D1F760BB">
        <subject/>
        <type/>
        <body>
        Welcome to Xeko! Explore the world of Xeko and Be a Force of Nature.
        </body>
        <isfromhq>1</isfromhq>
        <fromagentid>7AB6F166-D529-4F7D-8720-5E9727DC12A7</fromagentid>
        <fromgroupid/>
        <toagentid/>
        <toemail/>
        <togroupid/>
        <sendemail>0</sendemail>
        <datesent>02/17/2009 16:00</datesent>
        <messageread/>
        <dateread/>
        <messagetemplatename/>
        <xekowebsitebaseurl/>
        </agentmessage>		      
        */

        if (xml != null && $("agentmessage", xml).size() > 0) {
          // Clear message html
          $(".messagesDiv").html("");
          xeko.widgets.messaging.parseMessages(xml);
        }
        else {
          // No messages returned
          $(".messagesDiv").html("No messages");
        }
      },
      "error": function(err) {
        xeko.widgets.messaging.throwError(xeko.messaging.error.UNEXPECTED_ERROR);
      }
    });
  },
  "parseMessages": function(xml) {
    $("agentmessage", xml).each(function() {
      var message = $("body", this).text();
      if ($("isfromhq", this).text() == "1") {
        // Message is from HQ
        var avatarImg = "/images/g/g_altereco_hq.gif";
        var agentId = "Xeko HQ";
        var html = "<div class='agentMessage'><div class='messageAvatar'><img src='" + avatarImg + "'/></div>";
        html += "<div class='messageText'>";
        html += "<strong>" + agentId + ":</strong> " + message + "</div><div class='clear'></div></div>";
        $(".messagesDiv").append(html);
      }
      else if ($("fromagentid", this).text().length > 0) {
        // Lookup AgentID and avatar info
        var fromAgentId = $("fromagentid", this).text();
        $.ajax({
          "type": "GET",
          "url": "/widgets/widget.AgentInfo.handler.php?request=agentlookup",
          "data": { "agentid": fromAgentId },
          "success": function(xml) {
            if (xml != null) {
              var agentId = $("userid", xml).text();
              var avatarImg = "/images/cardart/" + $("avatar>card>hotspot", xml).text() + "/altereco/" + $("avatar>card>number", xml).text() + ".png";

              var html = "<div class='agentMessage'><div class='messageAvatar'><img src='" + avatarImg + "'/></div>";
              html += "<div class='messageText'>";
              html += "<strong>" + agentId + ":</strong> " + message + "</div><div class='clear'></div></div>";
              $(".messagesDiv").append(html); 
            }
          }
        });
      }
    });
  },
  "throwError": function(msg) {
    $(".messagesDiv").html(msg);
  }
};
