﻿/* Facebook Connect Integration - Bill Konrad (Konrad Group, Inc.) */

FB_RequireFeatures(["XFBML"], function()
{
    FB.Facebook.init(
    "fbdf3c8ab52f3c207a99f82261b9a6d7", "/xd_receiver.htm"
    );
    
    //Wait until the entire DOM tree is loaded.
    addEvent(window, "load", parseDomTree);
});

function parseDomTree()
{
    FB.XFBML.Host.parseDomTree();
}

/* Replaced with server side solution (April 20, 2009)

function facebookConnected()
{
    var connectBox = document.getElementById("connect");
    removeAllChildren(connectBox);
    
    var profileDiv = document.createElement('div');
    profileDiv.setAttribute("style", "float: left;");
    
    var profilePic = document.createElement("fb:profile-pic");
    profilePic.setAttribute("uid", FB.Connect.get_loggedInUser());
    profilePic.setAttribute("facebook-logo", "true");
    profilePic.setAttribute("style", "float: left; width: 32px; height: 32px;");
    profilePic.setAttribute("width", "32px");
    profilePic.setAttribute("height", "32px");
    profilePic.setAttribute("linked", "false");
    
    profileDiv.appendChild(profilePic);
    connectBox.appendChild(profileDiv);
    
    var messageDiv = document.createElement('div');
    messageDiv.setAttribute("style", "margin-left: 5px;");
    
    var fbName = document.createElement("fb:name");
    fbName.setAttribute("uid", FB.Connect.get_loggedInUser());
    fbName.setAttribute("useyou", "false");
    fbName.setAttribute("linked", "false");
    
    messageDiv.appendChild(document.createTextNode("Welcome "));
    messageDiv.appendChild(fbName);
    messageDiv.appendChild(document.createTextNode("!"));
    messageDiv.appendChild(document.createElement("br"));
    messageDiv.appendChild(document.createElement("br"));
    
    var logoutLink = document.createElement("a");
    addEvent(logoutLink, 'click', logoutConnectUser);
    logoutLink.appendChild(document.createTextNode("[Disconnect]"));
    
    var settingsLink = document.createElement("a");
    settingsLink.setAttribute("href", "/FacebookConnect.aspx");
    settingsLink.appendChild(document.createTextNode("[Account Settings]"));
    
    connectBox.appendChild(messageDiv);
    messageDiv.appendChild(logoutLink);
    messageDiv.appendChild(settingsLink);
    
    FB.XFBML.Host.parseDomTree();
}

function logoutConnectUser()
{
    FB.Connect.logout(function(){window.location.href='/private/logout.aspx';});
}

function facebookDisconnected()
{
    var connectBox = document.getElementById("connect");
    removeAllChildren(connectBox);
    
    var loginButton = document.createElement("fb:login-button");
    loginButton.setAttribute("onlogin", "window.location.reload();");
    loginButton.setAttribute("style", "float: right;");
    
    var loginPromptDiv = document.createElement("div");
    loginPromptDiv.setAttribute("style", "float: left; width: 140px;");
    loginPromptDiv.appendChild(document.createTextNode("Connect with your Facebook account!"));
    
    connectBox.appendChild(loginPromptDiv);
    connectBox.appendChild(loginButton);
    
    FB.XFBML.Host.parseDomTree();
}

*/

function shareOnFacebook()
{
    template_data = { "recipe" : document.getElementById("hiddenRecipeName").value, "url" : window.location.href };
    
    FB.Connect.showFeedDialog(84248966202, template_data, null, "", null, FB.RequireConnect.promptConnect, null, "What would you like to tell your friends about this recipe?");
}

/* End Facebook Connect Integration */

/* Helper Methods */

//John Resig (jQuery founder) custom JS event management code.

function removeAllChildren (node)
{
    while (node.hasChildNodes())
    {
        node.removeChild(node.lastChild);
    }
}

function addEvent( obj, type, fn )
{
    if ( obj.attachEvent )
    {
        obj['e'+type+fn] = fn;
        obj[type+fn] = function(){obj['e'+type+fn]( window.event );}
        obj.attachEvent( 'on'+type, obj[type+fn] );
    }
    else
    {
        obj.addEventListener( type, fn, false );
    }
}

function removeEvent( obj, type, fn )
{
    if ( obj.detachEvent )
    {
        obj.detachEvent( 'on'+type, obj[type+fn] );
        obj[type+fn] = null;
    }
    else
    {
        obj.removeEventListener( type, fn, false );
    }
}