
// app. entry point
function loadUser() 
{
    $("menu").style.visibility = "visible";
    
    
    // if comes here with targetId QS - we load friends bathroom
    var trgt = getQueryVariable("targetid");
    if (trgt != null)
    {
        loadFriend(trgt);
    }
    else
    {
        // load my bath - default
        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='690' id='content' name='content' frameborder='0'></iframe>";
            $('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>";
        $("body").innerHTML = body;
        
        publishDashboardActivity();
    });
}

function publishDashboardActivity()
{
    var actionLink = {};
    actionLink["href"] = appExternalUrl;
    actionLink["text"] = "Go to Bathroom Vandalism";
        
    // activity object param    
    var activity = {};
    activity["message"] = "{*actor*} just entered @:" + selectedTargetId + "'s bathroom";
    activity["action_link"] = actionLink;
    
    // params for callmethod
    var params = {};
    params["activity"] = activity;
    FB.Facebook.apiClient.callMethod("dashboard.publishActivity", params, function(rslt, ex) { });
}
    
function loadFriends() 
{   
    if (currentUserId == null)
    {
        FB.Connect.requireSession();
        return;
    }

    var friendSelector = $("friendSelector");
    friendSelector.style.visibility = "visible";
    friendSelector.style.display = "block";
    friendSelector.style.zIndex = 1100;
    
    
    if ($("fcs"))
    {
        $("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><a href='#' onclick='loadFriend(" + result3[i].uid + ");return false;'>" + result3[i].name + "</a></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="60" 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(625);
        dlg.setContentHeight(400);
        dlg.set_placement(FB.UI.PopupPlacement.topCenter);
        dlg.show();  
    });
}

function closeFriendSelector()
{
    var friendSelector = $("friendSelector");
    friendSelector.style.visibility = "hidden";
    friendSelector.innerHTML = "";
}

function $(id)
{
    return document.getElementById(id);
}

function getQueryVariable(variable) 
{  
    var rslt = null;

    var query = window.location.search.substring(1);
    var vars = query.split("&");
    for (var i = 0; i < vars.length; i++) 
    {
        var pair = vars[i].split("=");
        if (pair[0] == variable) 
        {
            rslt = pair[1];
            break;
        }
    }
    
    return rslt;
}
