/* * fbFlashBridge - Facebook Connect Flash Bridge * * Copyright (c) 2009 Pieter Michels * * --------------------------------------------- * * Custom javascript calls * * FBFlashBridgeLogIn * FBFlashBridgeLogOut * FBFlashBridgeSetStatus * FBFlashBridgeGetFriendsList * FBFlashBridgeGetUsersInfo * FBFlashBridgePromptPermission * FBFlashBridgePublishFeedStory * FBFlashBridgeShowShare * FBFlashBridgeUserInfo * * * Custom event listening * * FBFlashBridgeListener("LOGGED_IN", onLoggedIn); * FBFlashBridgeListener("LOGGED_OUT", onLoggedOut); * FBFlashBridgeListener("STATUS_SET", onStatusSet); * FBFlashBridgeListener("FRIENDS_LIST", onFriendsList); * FBFlashBridgeListener("USERS_INFO", onUsersInfo); * FBFlashBridgeListener("USER_INFO", onUserInfo); * FBFlashBridgeListener("APP_USERS", onUserInfo); */ var sAppURL = ""; var sAppKey = ""; var api; var friendResult; var userResult; var usersResult; var oFlash = null; var isFlashReady = false; var isLoggedIn = false; // ***********************************************************************************************************// function FBFlashBridgeSendNotification(targetsArray, playerName, fbml, slug){ FB.Facebook.apiClient.notifications_send(targetsArray," and "+playerName+" took a shot at "+fbml+" with the new U+ CL by CCM. Listen Now!", testArguments); } function testArguments(){ var temp = arguments.length; } function testPublishSuccess(){ if(arguments.length >= 2){ FBFlashBridgeFlashDispatcher("onPublishSuccess"); } } function FBFlashBridgePublishStream(templateData, actionLinks){ FB.ensureInit( function() { FB.Connect.streamPublish(null, templateData, actionLinks, null ,null, testPublishSuccess, false); }); } function FBFlashBridgeShowShare(link) { FB.Connect.showShareDialog(link, testArguments); } // ***********************************************************************************************************// function FBFlashBridgeLogOut() { FB.Connect.logout( function() { trace("LOGGED_OUT"); isLoggedIn = false; FBFlashBridgeDispatcher("LOGGED_OUT"); FBFlashBridgeFlashDispatcher("onLoggedOut"); }); } function FBFlashBridgeLogIn() { FB.Connect.requireSession( function() { trace("LOG IN READY"); FBFlashBridgeLoggedIn(); }); } function FBFlashBridgeLoggedIn() { api = FB.Facebook.apiClient; trace("LOGGED_IN"); if (!isLoggedIn) { isLoggedIn = true; FBFlashBridgeDispatcher("LOGGED_IN"); FBFlashBridgeFlashDispatcher("onLoggedIn", api._session); } } function FBFlashBridgeOnLoad() { FB.ensureInit( function() { FB.Facebook.get_sessionState().waitUntilReady( function(session) { inspect(session); if (session) FBFlashBridgeLoggedIn(); }); }); } // ***********************************************************************************************************// if (!("console" in window) || !("firebug" in console)) { var names = [ "log", "debug", "info", "warn", "error", "assert", "dir", "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd" ]; window.console = {}; for ( var i = 0; i < names.length; ++i) window.console[names[i]] = function() { }; } function trace(msg) { // alert(msg); // if (console) //console.debug(msg); } function inspect(obj) { if (console) console.dir(obj); } function FBFlashBridgeDispatcher(eventType, data) { $(document).trigger(eventType, data); } function FBFlashBridgeListener(eventType, func) { $(document).bind(eventType, function(e, data) { func(data); }); } function FBFlashBridgeFlashDispatcher(func) { if (oFlash && isFlashReady) // && typeof obj.JStoASviaExternalInterface != // "undefined") { if (arguments.length > 1) oFlash[func](Array.prototype.slice.call(arguments).slice(1)[0]); else oFlash[func](); } } function FBFlashBridgeInit(appKey, appURL, flashObj) { sAppKey = appKey; sAppURL = appURL; oFlash = flashObj; FB.init(sAppKey, sAppURL, { debugLogLevel: 6 }); } function FBFlashBridgeFlashLoaded() { trace("FLASH LOADED"); isFlashReady = true; } // ***********************************************************************************************************//