<?xml version="1.0" encoding="UTF-8"?>
<Module>
  <ModulePrefs title="Hits Ladder" scrolling="true">
    <Require feature="settitle"/>
    <Require feature="dynamic-height"/>
    <Require feature="views" />   
    <Require feature="opensocial-0.7" />   
  </ModulePrefs>
  <Content type="html"><![CDATA[
    <style type="text/css">
      .mytable td {padding: 2px;}
      .mytable tr {padding: 1px;}
      .mytable {border: 1px solid #004400;}
    </style>
     
    <!-- Change to local path for testing -->
    <script src="http://hosting.gmodules.com/ig/gadgets/file/103169497864651487485/SocialNorms.js"></script>
    <script type="text/javascript">
      var impl = {
        render: function(data) {
          var viewer = data.getViewer();
          var allPeople = data.getOwnerFriends().asArray() || [];
          if(viewer) {
            allPeople.push(viewer);
            var viewerData = data.getDataFor(viewer.getId());
            score = scoreOf(viewerData);
            score++;
            SocialNorms.setPersonData('VIEWER', 'Score', score);
          }
        
          var leaders = allPeople.sort(function(friend1, friend2) {
              return scoreOf(data.getDataFor(friend2)) - scoreOf(data.getDataFor(friend1));
          });
 
          var ownersite = gup('communityId');
          var refers = document.referrer.split('/');
          var domain = 'http://' + refers[2];

          var thits = 0;
          var html = '';
          var lmax = 10;
          for (var i = 0; i < leaders.length; i++) {
            if (scoreOf(data.getDataFor(leaders[i])) > 0) {
              var j = i + 1;
              if (data.getDataFor(leaders[i]) != data.getDataFor(leaders[j])) {
                if (i < lmax) {
                  html += '<tr><td>';
                  html += '<img src="' + leaders[i].getField(opensocial.Person.Field.THUMBNAIL_URL) + '" height="36" width="36"></td>';
                  html += '<td valign="top"><a href="' + domain + '/canvas.html?site=' + ownersite + '&profileId=' + leaders[i].getId() + '" target="_TOP">';
                  html += leaders[i].getDisplayName() + '</a><br />';
                  html += scoreOf(data.getDataFor(leaders[i])) + ' hits </td></tr>';
                }
                thits = thits + scoreOf(data.getDataFor(leaders[i]));
              } else {
                lmax = 11;
              }
            }
          }
          html += '</table>';
          html = '<tr><td colspan="2"><b>Total Hits: </b> <font color="blue">' + thits + '</font></td></tr>' + html;
          html = '<table class="mytable" width="100%">' + html;

          gadgets.window.setTitle('Hits Ladder');
          _gel('highscores').innerHTML = html;
          gadgets.window.adjustHeight();
        }
      }
  
      function scoreOf(data) {
        return data['Score'] ? Number(data['Score']) : 0;
      }

      function gup(name) {
        name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
        var regexS = "[\\?&]"+name+"=([^&#]*)";
        var regex = new RegExp( regexS );
        var results = regex.exec( window.location.href );
        if (results == null)
          return "";
        else
          return results[1];
      }
  
      SocialNorms.createSocialAppOnLoad(impl, 'OWNER', ['Score']);
    </script>
             
    <div id="highscores" style="margin: 4px">
    </div>

<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-6631483-1");
pageTracker._trackPageview();
} catch(err) {}</script>

  ]]>
  </Content>
</Module>
