
// app. entry point
function loadUser() 
{
    document.getElementById("menu").style.visibility = 'visible';
    
    var sql = "SELECT name FROM user WHERE uid=" + currentUserId;
    FB.Facebook.apiClient.fql_query(sql, function(result, ex) {
        //
        var ownerName = result[0]['name'];
        
        var body = "<iframe src='http://www.vandalismpro.com/?fb_sig_network=fb&ownerid=" + currentUserId + "&name=" + encodeURIComponent(ownerName) + "' width='100%' height='760' id='content' name='content' frameborder='0'></iframe>";
        document.getElementById('body').innerHTML = body;
    });
}

function loadFriend(targetId) 
{
    closeFriendSelector();

    selectedTargetId = targetId;
    var sequencer = new FB.BatchSequencer();

    // target
    var sql1 = "SELECT name FROM user WHERE uid=" + targetId;
    var pendingTargetResult = FB.Facebook.apiClient.fql_query(sql1, sequencer);

    // owner
    var sql2 = "SELECT name FROM user WHERE uid=" + currentUserId;
    var pendingOwnerResult = FB.Facebook.apiClient.fql_query(sql2, sequencer);


    // sequencer callback functionality
    sequencer.execute(function() 
    {
        var targetName = pendingTargetResult.result[0]['name'];
        var ownerName = pendingOwnerResult.result[0]['name'];
            
        var body = "<iframe src='http://www.vandalismpro.com/?fb_sig_network=fb&ownerid=" + currentUserId + "&name=" + encodeURIComponent(ownerName) + "&id=" + targetId + "&targetName=" + encodeURIComponent(targetName) + "' width='100%' height='760' id='content' name='content' frameborder='0'></iframe>";
        document.getElementById('body').innerHTML = body;
        
        sendNotification();
    });
}

function sendNotification()
{
    var uids = new Array();
    uids.push(selectedTargetId);

    var data = {};
    data["notification"] = "just entered your bathroom via <a href='http://apps.facebook.com/vandaliser/'>Bathroom Stall Vandalism</a>!";
    data["type"] = "user_to_user";
    data["to_ids"] = uids;
    FB.Facebook.apiClient.callMethod("notifications.send", data, function() { });    
}
    
function loadFriends() 
{   
    if (currentUserId == null)
    {
        FB.Connect.requireSession();
        return;
    }

    var friendSelector = document.getElementById("friendSelector");
    friendSelector.style.visibility = "visible";
    friendSelector.style.display = "block";
    friendSelector.style.zIndex = 1100;
    
    
    if (document.getElementById("fcs"))
    {
        document.getElementById("fcs").focus();
    }
    
    
    alert("We are about to fetch your friends. It may take a while...");
                
    var api = FB.Facebook.apiClient;   
    api.fql_query("SELECT uid, name FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = "+currentUserId+") order by name", function(result3, ex3) {   
  
        data = "<table>";
        data += "<tr><td><input type='button' value='close' onclick='closeFriendSelector();' /></td></tr>";
        
        for (i = 0; i < result3.length; i++)   
        {   
            data += "<tr><td><span style='cursor:pointer;text-decoration:underline;color:blue;' onclick='loadFriend(" + result3[i].uid + ");'><small>" + result3[i].name + "</small></span></td></tr>";
        }
        
        data += "</table>";   
           
        friendSelector.innerHTML = data;   
    });   
}

// select friends to invite
function showInviteFriendsDialog()
{
    var api = FB.Facebook.apiClient;   
    api.fql_query("SELECT uid FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1=" + currentUserId + ") and is_app_user=1", function(result, ex) {   
  
        var str = "";
        for (var i = 0; i < result.length; i++)   
        {   
            str += result[i].uid + ",";
        }

        var excludeIds = '';
        if (str.length > 0)
        {
            str = str.substring(0, str.length - 1);
            excludeIds = 'exclude_ids="' + str + '"';
        }

        
        //
        // produce to selector   
        var actn = "http://www.vandalismpro.com/fbcanvas.aspx";

        var the_fbml = '<fb:fbml><fb:request-form action="' + actn + '" method="POST" invite="true" type="Bathroom Stall Vandalism" content=""><fb:fbml-attribute name="content"><fb:intl>Come be friends with me on Bathroom Stall Vandalism - draw graffiti on the bathroom wall! &lt;fb:req-choice url=&quot;' + appExternalUrl + '&quot; label=&quot;Confirm&quot; /&gt;</fb:intl></fb:fbml-attribute>  \
                    <fb:multi-friend-selector rows="3" cols="4" max="35" showborder="true" email_invite="false" ' + excludeIds + ' bypass="cancel" actiontext="Invite Your Facebook Friends">  \
                </fb:request-form></fb:fbml>';
        var dlg = new FB.UI.FBMLPopupDialog('Invite Friends', the_fbml);
        dlg.setContentWidth(600);
        dlg.setContentHeight(400);
        dlg.set_placement(FB.UI.PopupPlacement.topCenter);
        dlg.show();  
    });
}

function closeFriendSelector()
{
    var friendSelector = document.getElementById("friendSelector");
    friendSelector.style.visibility = "hidden";
    friendSelector.innerHTML = "";
}
