function loadPublicProfileRank() {
    var tbl = document.getElementById("tblPublicRank");


    var oOptions = {
        method: 'post',
        parameters: '',
        onSuccess: function(oXHR, oJSON) {
            var xml = oXHR.responseXML;
            //alert(oXHR.responseText);

            if (xml == null)
                return null;

            var users = xml.getElementsByTagName("user")

            for (var i = tbl.rows.length - 1; i >= 2; i--) {
                tbl.deleteRow(i);
            }

            for (var i = 0; i <= users.length - 1; i++) {
                var screenName = users[i].getAttribute("screenName");

                var peopleInHouse = users[i].getAttribute("peopleInHouse");
                var avgUnits = parseFloat(users[i].getAttribute("avgUnits"));
                var power = parseFloat(users[i].getAttribute("power"));
                var logtime = users[i].getAttribute("logtime");
                var logtime2 = Date.parseExact(users[i].getAttribute("logtime2"), 'yyyy-MM-dd HH:mm:ss');
                var isFriend = users[i].getAttribute("isFriend") == '1';
                var publicKey = users[i].getAttribute("publicKey");
                var isFollower = users[i].getAttribute("isFollower") == '1';
                var rank = users[i].getAttribute("rank");

                var tr = tbl.insertRow(-1);
                tr.className = "ppListRow";
                tr.insertCell(-1).innerHTML = rank.toString() + ')';
                tr.insertCell(-1).innerHTML = '<a href="/pp/profile.php?' + (screenName != 'Anonymous' ? ('screenname=' + screenName) : ('publickey=' + publicKey)) + '" title="view ' + screenName + '\'s energy profile">' + screenName + '</a>';
                with (tr.insertCell(-1)) {
                    innerHTML = '<img src="/images/users/noImage.png" width="50" height="50">';
                    align = "center";
                    valign = "middle";
                    title = peopleInHouse + " people in the house";
                }
                tr.insertCell(-1).innerHTML = avgUnits < 0 ? '- - -' : avgUnits.toFixed(2);
                tr.insertCell(-1).innerHTML = power < 0 ? '- - -' : power.toFixed(0) + 'W ' + logtime2.toString('ddd dd MMM \a\\t yy HH:mm');
                with (tr.insertCell(-1)) {
                    var ih = "";

                    if (!isFriend) {
                        ih += '<span title="add this person as your friend" style="cursor:pointer" onclick="doAddFriendFollow({pk : \'' + publicKey + '\'})">+</span>';
                        className = "pptdFriendAdd";
                    }
                    else {
                        ih = '<span title="this person is a friend. Click here to remove them" style="cursor:pointer" onclick="doDelFriendFollow({pk:\'' + publicKey + '\'})">x</span>';
                        className = "pptdFriendDel";
                    }
                    if (isFollower)
                        ih += '<span title="this person is following your usage" style="cursor:help;color:#39561D">!</span>';
                    innerHTML = ih;
                }
            }


        },
        onFailure: function(oXHR, oJSON) {
        }
    }
    var oReq = new Ajax.Request(bu.publicProfileRank, oOptions);
}


