da226521af50bd709873bb3688e04ca79438cc6b
[project/fb.git] / fb_canvas.js
1 /**
2  * @file
3  *
4  * Javascript specific to canvas pages.
5  */
6
7 /**
8  * Enable canvas page specific javascript on this page.
9  */
10 Drupal.behaviors.fb_canvas = {
11   attach: function(context, settings) {
12     // Resize if body class includes fb_canvas-resizable.
13     jQuery('body.fb_canvas-resizable:not(.fb_canvas-processed)').each(function () {
14       jQuery(this).addClass('fb_canvas-processed');
15       if (typeof(FB) == 'undefined') {
16         // FB not yet initialized.
17         jQuery(document).bind('fb_init', FB_Canvas.setAutoResize);
18       }
19       else {
20         // FB alreda initialized.
21         FB_Canvas.setAutoResize();
22       }
23     });
24
25     // Logout of facebook when logging out of drupal.
26     jQuery("a[href^='https://apps.facebook.com/" + Drupal.settings.fb_canvas.canvas + "/logout']", context).click(FB_Canvas.logout);
27
28     // Change 'user/login' links to popup fb connect dialog.
29     jQuery("a[href^='https://apps.facebook.com/" + Drupal.settings.fb_canvas.canvas + "/user/']", context).click(FB_Canvas.login);
30   }
31 };
32
33 FB_Canvas = function(){};
34
35 /**
36  * Called after Facebook javascript has initialized.  Global FB will be set.
37  */
38 FB_Canvas.setAutoResize = function() {
39   FB.Canvas.setAutoResize(true, 100); // time in ms, default 100.
40 };
41
42 // click handler
43 FB_Canvas.logout = function(event) {
44   if (typeof(FB) != 'undefined') {
45     FB.logout(function () {
46       //debugger;
47     });
48   }
49 };
50
51 FB_Canvas.login = function(event) {
52   if (typeof(FB) != 'undefined') {
53     FB.login(function() {
54       // fb login callback.
55     }, Drupal.settings.fb.perms);
56   }
57 };