<?xml version="1.0" encoding="UTF-8" ?> 
<Module>
  <ModulePrefs title="Message Wall" /> 
  <Content type="html">
     <![CDATA[ 
<script src="http://sandbox.orkut.com/js/gen/People.js"></script>
<!--
<script src="http://json.org/json.js"></script>
-->
<script type="text/javascript">
  google.people.Container.get().init("/46/o");    
</script>

  <script type="text/javascript">
    _IG_RegisterOnloadHandler(makeRequests());

    var owner;
    var viewer;
    
    function makeRequests() { 
      doRequest(google.people.DataRequest.getFriendDataRequest(), buildWall);
    };

    function doRequest(dataRequest, callback) {
      dataRequest["bogusAppName"] = "Wall";
      google.people.requestData(dataRequest, callback);
    }

   function buildWall(dataResponse) {
     owner = dataResponse.get("owner");
     viewer = dataResponse.get("viewer");
     var htmlout = "Write on " + owner.getName() + "'s wall:<br>";
     htmlout += '<form action="#" onsubmit="saveMessage(); return false;">';
     htmlout += '<input type="text" id="message" size="50"/>';
     htmlout += '<input type="button" value="Post!" onclick="saveMessage();"/>';
     htmlout += '</form>';
     htmlout += getMessages(owner);
     _gel('wall').innerHTML = htmlout;  
   }
  
   function getMessages(person) {
     var htmlout = '';
     var numMsgsStr = person.getAppField("numMessages");
     var numMsgs = parseInt(numMsgsStr);
     for (var i=numMsgs; i>numMsgs-10; i--) {
       var currentMsg = person.getAppField("wallMessage"+i)
       if (currentMsg) {
         htmlout += '<hr>' + currentMsg + "<hr>";
       }
     }
     return htmlout;
   }

   function getTimeStamp() {
     var d = new Date();
     var hours = d.getHours();
     var minutes = d.getMinutes();
     var date = d.getDate();
     var month = d.getMonth()+1;
     var year = d.getFullYear();
     return 'at ' + hours + ':' + minutes + ' on ' + month + '/' + date + '/' + year;
   }

   function saveMessage() {
     // Grrr...the getId method doesn't return the UID in the profile URL.
     //var message = '<a href="http://labs.orkut.com/Profile.aspx?uid=' + viewer.getId() +'">';
     //message += viewer.getName() + '</a> wrote:<br>';
     var message = viewer.getName() + ' wrote:<br>';
     message += '&nbsp;&nbsp;<b>' + _gel('message').value + '</b>';
     message += '&nbsp;<div style="display:inline;font-size:70%">(' + getTimeStamp() + ')</div>';
     var numMsgs = owner.getAppField('numMessages');
     doRequest(google.people.DataRequest.getAppFieldUpdateRequest(owner, 'wallMessage'+numMsgs, message), handleMessageUpdate);
   }

   function handleMessageUpdate() {
     var numMsgsStr = owner.getAppField("numMessages");
     var numMsgs;
     if (numMsgsStr) {
       numMsgs = parseInt(numMsgsStr)+1;
     } else {
       numMsgs = 1;
     }
     doRequest(google.people.DataRequest.getAppFieldUpdateRequest(owner, 'numMessages', numMsgs), handleNumMessagesUpdate);
   }
   
   function handleNumMessagesUpdate() {
     makeRequests();
   }
    
  </script>
  <div id="wall"></div>
     ]]>
  </Content> 
</Module>

