// JavaScript Document
var is_facebook_enabled = (typeof(facebook_enabled) != "undefined") && facebook_enabled;

function inviso(){
    jQuery("body").css({display:"None"});
    setTimeout('reviso()', 5000);
}
function reviso(){
    jQuery("body").css({display:""});
}

this.tooltip = function(){  
    /* CONFIG */        
        xOffset = 10;
        yOffset = 20;       
        // these 2 variable determine popup's distance from the cursor
        // you might want to adjust to get the right result     
    /* END CONFIG */        
    jQuery("a.tooltip").hover(function(e){                                             
        this.t = this.title;
        this.title = "";                                      
        jQuery("body").append("<p id='tooltip'>"+ this.t +"</p>");
        jQuery("#tooltip")
            .css("top",(e.pageY - xOffset) + "px")
            .css("left",(e.pageX + yOffset) + "px")
            .fadeIn("fast");        
    },
    function(){
        this.title = this.t;        
        jQuery("#tooltip").remove();
    }); 
    jQuery("a.tooltip").mousemove(function(e){
        jQuery("#tooltip")
            .css("top",(e.pageY - xOffset) + "px")
            .css("left",(e.pageX + yOffset) + "px");
    });         
};

// starting the script on page load
jQuery(document).ready(function(){
    tooltip();
});


function popupFacebookLogin(nextUrl) {
    if (!is_facebook_enabled) { return false; }
    FB_RequireFeatures(["Connect"], function() {
		FB.Connect.requireSession();
		FB.Facebook.get_sessionState().waitUntilReady(function() {
	        if ((nextUrl==null)||(nextUrl=="")) { nextUrl = "/manage/userProfileHome.html"; }
	        document.location.href = "/community/facebook/login.html?next=" + escape(nextUrl);
	    });
	});
    return false;
}

function facebookLogoutRedirect(nextUrl) {
    if (!is_facebook_enabled) { document.location.href = nextUrl; }
    FB_RequireFeatures(["Connect"], function() {
        FB.Connect.logout(function() { document.location.href = nextUrl; });
    });
}

function facebookLogoutCallback(callback) {
    if (!is_facebook_enabled) { callback(); }
    FB_RequireFeatures(["Connect"], function() {
        FB.Connect.logout(callback);
    });
}
        
function facebookPublish(data) {
    if (!is_facebook_enabled) { return; }
    FB_RequireFeatures(["Connect"], function() {
        FB.Connect.showFeedDialog (facebook_general_template, data);
    });
}

function facebookPublishForm(data, formObj) {
    if (!is_facebook_enabled) { return; }
    FB_RequireFeatures(["Connect"], function() {
        FB.Connect.showFeedDialog(facebook_general_template, data, '', '', null, FB.RequireConnect.require, function() { formObj.submit() });
    });
}       
    
function checkFacebookLogin (nextUrl) {
    if (!is_facebook_enabled) { return; }
    if (facebook_uid != "") { return; }
    
    inviso();
    
    FB_RequireFeatures(["Connect"], function() {
        FB.Facebook.get_initialized().waitUntilReady(function() {
            FB.Connect.get_status().waitUntilReady(function(result) {
                if (result == FB.ConnectState.connected) {
                    checkFacebookConnected(function(connected) {
                        if (connected) {
                            if ((nextUrl==null)||(nextUrl=="")) { nextUrl = "/manage/userProfileHome.html"; }
                            document.location.href = "/community/facebook/login.html?next=" + escape(nextUrl);
                        } else {
                            reviso();
                        }
                    })
                } else {
                    reviso();
                }
            })
        });
    });
}
   
function checkFacebookLoginForLoginPage (nextUrl) {
    if (!is_facebook_enabled) { return; }
    if (facebook_uid != "") { return; }
    
    inviso();
    
    FB_RequireFeatures(["Connect"], function() {
        FB.Facebook.get_initialized().waitUntilReady(function() {
            FB.Connect.get_status().waitUntilReady(function(result) {
                if (result == FB.ConnectState.connected) {
                    checkFacebookConnected(function(connected) {
                        if (connected) {
                            if ((nextUrl==null)||(nextUrl=="")) { nextUrl = "/manage/userProfileHome.html"; }
                            document.location.href = "/community/facebook/login.html?next=" + escape(nextUrl);
                        } else {
                            reviso();
                        }
                    })
                } else {
                    reviso();
                }
            })
        });
    });
}
   
function checkFacebookConnected (successAction)
{
    var url = 'http://'+window.location.hostname+'/community/facebook/checkConnected.html';
    new Ajax.Request(url, {
      method: 'get',
      onSuccess: function(transport) {
            var json = transport.responseText.evalJSON();
            var result = json.userId != null;
            successAction(result);
      }
    });
    return false;
}
   
function loadFacebook() {
    if (!is_facebook_enabled) { return false; }
    
    FB_RequireFeatures(["Connect"], function() {
        if ((typeof(clearStateCache) != "undefined") && clearStateCache) {
           FBIntern.Cookie.clear('fbsetting_' + facebook_api_key, '/', null);
        }
        FB.Facebook.init(facebook_api_key, "/xd_receiver.htm");
        FB.Facebook.get_initialized().waitUntilReady(function() {
            FB.Connect.get_status().waitUntilReady(function(result) { });
        });
    });
    return false;
}

loadFacebook();

