sco-fakebook 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. data/{README → README.rdoc} +0 -0
  2. data/Rakefile +19 -2
  3. data/TODO +4 -2
  4. data/lib/fakebook-assets/attachments.js +60 -0
  5. data/lib/fakebook-assets/canvas.css +15 -11
  6. data/lib/fakebook-assets/canvas.js +14 -0
  7. data/lib/fakebook-assets/common.css +1225 -809
  8. data/lib/fakebook-assets/common.js +1878 -0
  9. data/lib/fakebook-assets/confirmation.js +18 -0
  10. data/lib/fakebook-assets/dialogpro.css +58 -0
  11. data/lib/fakebook-assets/drag.js +60 -0
  12. data/lib/fakebook-assets/edit_app_settings.css +31 -0
  13. data/lib/fakebook-assets/edit_app_settings.js +16 -0
  14. data/lib/fakebook-assets/editapps.js +12 -0
  15. data/lib/fakebook-assets/editprofile.css +42 -0
  16. data/lib/fakebook-assets/endscript.js +37 -0
  17. data/lib/fakebook-assets/fb_menubar.png +0 -0
  18. data/lib/fakebook-assets/fb_menubar_logo.gif +0 -0
  19. data/lib/fakebook-assets/fbml.js +63 -40
  20. data/lib/fakebook-assets/feedform.js +31 -0
  21. data/lib/fakebook-assets/firstscript.js +2 -0
  22. data/lib/fakebook-assets/flyout_menu.js +51 -0
  23. data/lib/fakebook-assets/friend_suggester.css +12 -0
  24. data/lib/fakebook-assets/friend_suggester.js +13 -0
  25. data/lib/fakebook-assets/ie6.css +715 -0
  26. data/lib/fakebook-assets/ie7.css +406 -0
  27. data/lib/fakebook-assets/js_strings.js +2 -0
  28. data/lib/fakebook-assets/link_controller.js +26 -0
  29. data/lib/fakebook-assets/livemessage.js +22 -0
  30. data/lib/fakebook-assets/pages.css +432 -0
  31. data/lib/fakebook-assets/profile.css +629 -0
  32. data/lib/fakebook-assets/quickling.js +71 -0
  33. data/lib/fakebook-assets/scrollarea.js +20 -0
  34. data/lib/fakebook-assets/search_friend_source.js +17 -0
  35. data/lib/fakebook-assets/search_typeaheadpro.js +20 -0
  36. data/lib/fakebook-assets/sort.js +30 -0
  37. data/lib/fakebook-assets/static_source.js +25 -0
  38. data/lib/fakebook-assets/tidied.html +439 -0
  39. data/lib/fakebook-assets/tour_tip.css +8 -0
  40. data/lib/fakebook-assets/typeahead_source.js +28 -0
  41. data/lib/fakebook-assets/typeaheadpro.css +84 -0
  42. data/lib/fakebook-assets/ubersearch.css +342 -0
  43. data/lib/fakebook-assets/webkit.css +10 -0
  44. data/lib/fakebook.rb +4 -4
  45. data/lib/templates/old.html.erb +62 -0
  46. data/lib/templates/standard.html.erb +69 -39
  47. metadata +51 -20
  48. data/Manifest +0 -20
  49. data/fakebook.gemspec +0 -39
  50. data/lib/fakebook-assets/base.js +0 -317
  51. data/lib/fakebook-assets/extended.js +0 -49
  52. data/lib/fakebook-assets/fakebook.js +0 -122
  53. data/lib/fakebook-assets/navigator_bg.gif +0 -0
  54. data/lib/fakebook-assets/shadow_gray.gif +0 -0
  55. data/lib/fakebook-assets/string.js +0 -61
  56. data/lib/fakebook-assets/white.gif +0 -0
  57. data/lib/templates/minimal.html.erb +0 -22
@@ -0,0 +1,18 @@
1
+ /* Source: Global Cache */
2
+ /* Location: js/api/confirmation.js r109470 */
3
+ /* Machine: 10.16.139.110 */
4
+ /* Generated: July 15th 2008 12:34:54 AM PDT */
5
+ /* HTTP Host: static.ak.fbcdn.net */
6
+
7
+
8
+ function confirmation_access_option_click(checkbox)
9
+ {if(checkbox.checked){hide('access_requirement');remove_css_class_name(ge('confirm_button'),'disabled');}else{$('access_requirement_message').style.width=(ge('confirm_options').offsetWidth-50)+'px';show('access_requirement');add_css_class_name(ge('confirm_button'),'disabled');}}
10
+ function confirmation_validate_add()
11
+ {var access_checkbox=ge('access_checkbox');if(!access_checkbox.checked){aiert(tx('ac01'));return false;}
12
+ return true;}
13
+ function confirmation_authorize_option_click(checkbox)
14
+ {if(checkbox.checked){CSS.addClass($('authorize_main'),'enabled');CSS.removeClass($('authorize_main'),'disabled');}else{CSS.addClass($('authorize_main'),'disabled');CSS.removeClass($('authorize_main'),'enabled');}}
15
+ function confirmation_validate_authorize()
16
+ {var authorize_checkbox=ge('enable');if(!authorize_checkbox.checked){aiert(tx('ac02'));return false;}
17
+ return true;}
18
+ if(window.Bootloader){Bootloader.done(1);}
@@ -0,0 +1,58 @@
1
+ /* Source: Local Cache */
2
+ /* Location: rsrc:104778:/html/css/dialogpro.css */
3
+ /* Machine: 10.16.139.107 */
4
+ /* Generated: July 9th 2008 3:45:10 PM PDT */
5
+ /* HTTP Host: static.ak.fbcdn.net */
6
+
7
+
8
+ .generic_dialog{height:0px;left:0px;overflow:visible;position:absolute;top:0px;width:100%;z-index:100;}
9
+ #generic_dialog_iframe{filter:alpha(opacity=0);left:0px;position:absolute;top:0px;z-index:3;}
10
+ .generic_dialog .generic_dialog_popup{height:0px;overflow:visible;position:relative;}
11
+ .generic_dialog div.dialog_loading{background-color:#f2f2f2;border:1px solid #606060;font-size:24px;padding:10px;}
12
+ #generic_dialog_overlay{z-index:99;display:block;position:absolute;top:0px;left:0px;width:100%;}
13
+ .dark_dialog_overlay{background-image:url(/images/overlay.png);background-repeat:repeat;}
14
+ * html .dark_dialog_overlay{background-color:transparent;back\ground-color:transparent;background-image:url(/images/blank.gif);filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="/images/overlay.png", sizingMethod="scale");}
15
+ table.pop_dialog_table{border-collapse:collapse;margin:auto;table-layout:fixed;width:465px;}
16
+ td.pop_topleft, td.pop_topright, td.pop_bottomleft, td.pop_bottomright{height:10px;overflow:hidden;padding:0px!important;padding:5px;width:10px!important;width:0px;}
17
+ td.pop_topleft{background-image:url('/imgs/pop_dialog_top_left.png')!important;background-image:none;filter:none!important;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/imgs/pop_dialog_top_left.png', sizingMethod='crop');}
18
+ td.pop_topright{background-image:url('/imgs/pop_dialog_top_right.png')!important;background-image:none;filter:none!important;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/imgs/pop_dialog_top_right.png', sizingMethod='crop');}
19
+ td.pop_bottomleft{background-image:url('/imgs/pop_dialog_bottom_left.png')!important;background-image:none;filter:none!important;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/imgs/pop_dialog_bottom_left.png', sizingMethod='crop');}
20
+ td.pop_bottomright{background-image:url('/imgs/pop_dialog_bottom_right.png')!important;background-image:none;filter:none!important;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/imgs/pop_dialog_bottom_right.png', sizingMethod='scale');}
21
+ td.pop_border{background-image:url('/imgs/pop_dialog_border.png')!important;background-image:none;filter:none!important;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/imgs/pop_dialog_border.png', sizingMethod='scale');}
22
+ .noshadow table td.pop_topleft,
23
+ .noshadow table td.pop_topright,
24
+ .noshadow table td.pop_bottomleft,
25
+ .noshadow table td.pop_bottomright,
26
+ .noshadow table td.pop_border{background-image:none !important;filter:none !important;}
27
+ td.pop_content{background-color:white;padding:0px;}
28
+ td.pop_content h2{background:#6d84b4;border:1px solid #3b5998;color:white;font-size:14px;font-weight:bold;margin:0px;}
29
+ td.pop_content h2.dialog_loading{background:#6d84b4 url(/images/upload_progress.gif) no-repeat 400px 10px;padding-right:40px;}
30
+ td.pop_content h2 span{display:block;padding:4px 10px 5px 10px;}
31
+ td.pop_content .dialog_content{background:#fff;border:1px solid #555;border-top-width:0px;}
32
+ td.pop_content .dialog_body{padding:10px;border-bottom:1px solid #ccc;}
33
+ td.pop_content .dialog_summary{background:#f2f2f2;padding:8px 10px 8px 10px;border-bottom:1px solid #ccc;}
34
+ td.pop_content .dialog_buttons{background:#f2f2f2;padding:8px;text-align:right;}
35
+ td.pop_content .dialog_buttons input{margin-left:5px;}
36
+ .dialog_content .dialog_buttons .inputaux,
37
+ .dialog_content .dialog_buttons .inputaux_disabled,
38
+ .dialog_content .dialog_buttons .inputbutton,
39
+ .dialog_content .dialog_buttons .inputsubmit{zpadding-left:14px;zpadding-right:14px;}
40
+ td.pop_content .dialog_buttons_msg{float:left;}
41
+ td.pop_content .dialog_footer{background:#F2F2F2 none repeat scroll 0%;}
42
+ .contextual_dialog .generic_dialog_popup{width:360px;}
43
+ .contextual_dialog .contextual_arrow,
44
+ .contextual_dialog .contextual_arrow_rev{background-image:url('/images/minifeed_dialog_triangle.gif');background-repeat:no-repeat;height:12px;position:relative;top:1px;}
45
+ .contextual_dialog .contextual_arrow_rev{background-image:url('/images/minifeed_dialog_triangle_rev.gif');}
46
+ .contextual_dialog .contextual_arrow span,
47
+ .contextual_dialog .contextual_arrow_rev span{display:none;}
48
+ .contextual_dialog h2{color:black;font-size:11px;padding-bottom:2px;}
49
+ .contextual_dialog .contextual_dialog_content{background-color:#f0f0f0;border:1px solid #b7b7b7;border-bottom:2px solid #3b5998;line-height:15px;padding:8px 10px 10px 10px;}
50
+ .contextual_dialog .dialog_buttons{padding-top:10px;}
51
+ .contextual_dialog .dialog_buttons input{margin-right:10px;}
52
+ .contextual_dialog .dialog_buttons_msg{float:right;}
53
+ .errorDialog td.pop_content h2{background:#ffebe8;border:none;border-bottom:1px solid #AAAAAA;color:#333333;}
54
+ .errorDialog td.pop_content{border:1px solid #ee7c90;}
55
+ .errorDialog td.pop_content .dialog_content{border:none;}
56
+ .errorDialog td.pop_content .dialog_content .dialog_body{padding:15px;}
57
+ .camera td.pop_content .dialog_body{padding:0px 0px 0px 0px;margin-bottom:0px;}
58
+ .camera td.pop_content .dialog_buttons{margin-top:-2px;border-top:1px solid #555555;}
@@ -0,0 +1,60 @@
1
+ /* Source: Backing Store */
2
+ /* Location: js/lib/ui/drag.js r108775 */
3
+ /* Machine: 10.16.140.107 */
4
+ /* Generated: July 15th 2008 12:34:49 AM PDT */
5
+ /* HTTP Host: static.ak.fbcdn.net */
6
+
7
+
8
+ var Drag={};Drag.currentDraggable=null;Drag.grab=function(draggable){if(Drag.currentDraggable){Drag._onmouseup();}
9
+ draggable.lastDragOver=null;Drag.attachDragEvents();Drag.currentDraggable=draggable;}
10
+ Drag.attachDragEvents=function(){document.onselectstart=function(){document.onselectstart=null;return false;}
11
+ if(Drag.dragEventsAttached){return;}
12
+ Drag.dragEventsAttached=true;addEventBase(window,'mousemove',Drag._onmousemove);addEventBase(window,'mouseup',Drag._onmouseup);}
13
+ Drag.droppables={};Drag.addDroppable=function(namespace,droppable){(Drag.droppables[namespace]=Drag.droppables[namespace]||[]).push(droppable);}
14
+ Drag.removeDroppable=function(namespace,droppable){Drag.droppables[namespace].filter(function(a){a!=droppable;});}
15
+ Drag._onmousemove=function(event){if(!Drag.currentDraggable){return;}
16
+ var cursorPosition=Vector2.getEventPosition(event),currentDraggable=Drag.currentDraggable,droppables=Drag.droppables[currentDraggable.namespace];if(currentDraggable.namespace&&currentDraggable.active&&droppables){var zIndexesDict={};droppables.each(function(droppable){zIndexesDict[droppable.zIndex]=droppable.zIndex;});var zIndexes=[];for(var i in zIndexesDict){zIndexes.push(zIndexesDict[i]);}
17
+ zIndexes.sort();var lastDragOver=currentDraggable.lastDragOver,currentDragOver=null;for(var z=zIndexes.length;z>=0;z--){if(lastDragOver&&lastDragOver.zIndex==zIndexes[z]&&lastDragOver.pointInside(cursorPosition)){currentDragOver=lastDragOver;break;}else{for(var i=0;i<droppables.length;i++){if(zIndexes[z]!=droppables[i].zIndex){continue;}
18
+ if(lastDragOver!=droppables[i]&&currentDraggable.dom!=droppables[i].dom&&droppables[i].pointInside(cursorPosition)){currentDragOver=droppables[i];z=-1;break;}}}}
19
+ if(currentDragOver&&currentDragOver!=lastDragOver){currentDragOver.ondragover(currentDraggable);}
20
+ if(currentDragOver){currentDragOver.ondragmove(currentDraggable,cursorPosition.sub(Vector2.getElementPosition(currentDragOver.dom)));}
21
+ currentDraggable.lastDragOver=currentDragOver;}
22
+ Drag.currentDraggable._onmousemove(cursorPosition);}
23
+ Drag._onmouseup=function(){document.onselectstart=null;if(Drag.currentDraggable){Drag.currentDraggable._ondrop();Drag.currentDraggable=null;}}
24
+ function Draggable(element){if(this==window){if(element instanceof Array){var collection=[];element.each(function(instance){collection.push(new Draggable(instance));});return new Collection(Draggable,collection);}else{return new Draggable(element);}}else{this.data={};this.dom=element;this._onmousedown=this._onmousedown.bind(this);this._onclick=this._onclick.bind(this);addEventBase(this.dom,'mousedown',this._onmousedown);addEventBase(this.dom,'click',this._onclick);}}
25
+ Draggable.prototype.destroy=function(){if(this.handles!==null){for(var i=0;i<this.handles.length;i++){removeEventBase(this.handles[i],'mousedown',this._onmousedown);removeEventBase(this.handles[i],'click',this._onclick);}}else{removeEventBase(this.dom,'mousedown',this._onmousedown);removeEventBase(this.handles[i],'click',this._onclick);}
26
+ this.data=this.dom=null;}
27
+ Draggable.prototype._onclick=function(event){if(this.active){return event_kill(event);}}
28
+ Draggable.prototype._ongrab=function(){this.ongrab();if(!this.oldPosition){this.oldPosition=this.dom.style.position;}
29
+ this.dom.style.position=this.absolute?'absolute':'relative';}
30
+ Draggable.prototype._onmousedown=function(event){var target=event_get_target(event);if(is_node(target,['input','select','textarea','object','embed'])){return false;}
31
+ var vector=Vector2.getEventPosition(event);this.cursorPositionVector=vector.sub(Vector2.getElementPosition(this.dom));Drag.grab(this,event);if(this.gutter){this.cursorInitialVector=vector;}else{this._setActive(true);this._ongrab();}
32
+ return event_prevent(event);}
33
+ Draggable.prototype._onmousemove=function(vector){if(!this.active){if(vector.distanceTo(this.cursorInitialVector)>=this.gutter){this._setActive(true);this._ongrab();}}
34
+ if(this.active){vector.sub(Vector2.getElementPosition(this.dom).sub(new Vector2(parseInt(this.dom.style.left?this.dom.style.left:get_style(this.dom,'left'),10)||0,parseInt(this.dom.style.top?this.dom.style.top:get_style(this.dom,'top'),10)||0))).sub(this.cursorPositionVector).setElementPosition(this.dom);this.ondrag(vector);}}
35
+ Draggable.prototype._ondrop=function(){if(this.active){(function(){this._setActive(false);}).bind(this).defer();this.ondrop();if(this.lastDragOver){this.lastDragOver.ondrop(this);}}}
36
+ Draggable.prototype.resetPosition=function(){this.dom.style.position=this.oldPosition;this.oldPosition=null;this.dom.style.left=null;this.dom.style.top=null;return this;}
37
+ Draggable.prototype.setUseAbsolute=function(absolute){this.absolute=absolute;return this;}
38
+ Draggable.prototype.ondrag=bagofholding;Draggable.prototype.setDragHandler=function(func){this.ondrag=func;return this;}
39
+ Draggable.prototype.ongrab=bagofholding;Draggable.prototype.setGrabHandler=function(func){this.ongrab=func;return this;}
40
+ Draggable.prototype.ondrop=bagofholding;Draggable.prototype.setDropHandler=function(func){this.ondrop=func;return this;}
41
+ Draggable.prototype.gutter=0;Draggable.prototype.setGutter=function(gutter){this.gutter=gutter;return this;}
42
+ Draggable.prototype.setNamespace=function(namespace){this.namespace=namespace;return this;}
43
+ Draggable.prototype.handles=null;Draggable.prototype.addHandle=function(handle){if(this.handles===null){this.handles=[];removeEventBase(this.dom,'mousedown',this._onmousedown);removeEventBase(this.dom,'click',this._onclick);}
44
+ this.handles.push(handle);addEventBase(handle,'mousedown',this._onmousedown);addEventBase(handle,'click',this._onclick);return this;}
45
+ Draggable.prototype.getDOM=function(){return this.dom;}
46
+ Draggable.prototype.setKey=function(key,value){this.data[key]=value;return this;}
47
+ Draggable.prototype.getKey=function(key){return this.data[key];}
48
+ Draggable.prototype._setActive=function(state){this.dom.activeDrag=this.active=state;if(this.handles!==null){for(var i=0;i<this.handles.length;i++){this.handles[i].activeDrag=state;}}}
49
+ function Droppable(element){if(this==window){if(element instanceof Array){var collection=[];element.each(function(instance){collection.push(new Droppable(instance));});return new Collection(Droppable,collection);}else{return new Droppable(element);}}else{this.data={};this.dom=element;this.namespace=null;}}
50
+ Droppable.prototype.destroy=function(){if(this.namespace){Drag.removeDroppable(this.namespace,this);}
51
+ this.data=this.dom=null;}
52
+ Droppable.prototype.setNamespace=function(namespace){if(this.namespace){Drag.removeDroppable(namespace,this);}
53
+ Drag.addDroppable(namespace,this);return this;}
54
+ Droppable.prototype.zIndex=0;Droppable.prototype.setZIndex=function(index){this.zIndex=index;return this;}
55
+ Droppable.prototype.pointInside=function(vector){var position=Vector2.getElementPosition(this.dom);return position.x<=vector.x&&this.dom.offsetWidth+position.x>vector.x&&position.y<=vector.y&&this.dom.offsetHeight+position.y>vector.y;}
56
+ Droppable.prototype.ondragover=bagofholding;Droppable.prototype.setDragOverHandler=function(func){this.ondragover=func;return this;}
57
+ Droppable.prototype.ondragmove=bagofholding;Droppable.prototype.setDragMoveHandler=function(func){this.ondragmove=func;return this;}
58
+ Droppable.prototype.ondrop=bagofholding;Droppable.prototype.setDropHandler=function(func){this.ondrop=func;return this;}
59
+ Droppable.prototype.getDOM=Draggable.prototype.getDOM;Droppable.prototype.setKey=Draggable.prototype.setKey;Droppable.prototype.getKey=Draggable.prototype.getKey;
60
+ if(window.Bootloader){Bootloader.done(1);}
@@ -0,0 +1,31 @@
1
+ /* Source: Global Cache */
2
+ /* Location: css/edit_app_settings.css r109434 */
3
+ /* Machine: 10.16.140.104 */
4
+ /* Generated: July 16th 2008 1:55:15 PM PDT */
5
+ /* HTTP Host: static.ak.fbcdn.net */
6
+
7
+
8
+ .app_settings_tab{text-align:center;background:white;}
9
+ .edit_app_dialog_summary{overflow:hidden;padding-bottom:0px;margin-bottom:-9px;margin-top:-6px;}
10
+ .edit_app_dialog_summary .tab_link{margin:3px 10px 0px 0px;padding:5px 8px;float:left;}
11
+ .edit_app_dialog_summary .tab_link_selected{color:#333;padding:4px 7px 5px;background:white;border:solid 1px #ccc;border-bottom:solid 1px white;margin-bottom:-1px;}
12
+ .app_settings_tab{padding:10px 10px;}
13
+ .feed_settings_tab{padding-top:5px;}
14
+ .app_settings_tab .editor{margin-top:0px;}
15
+ .app_settings_tab .bookmark_right{margin:0px 50px 0px 0px;}
16
+ .app_feed_major_button{text-align:left;color:#000;font-size:11px;padding:5px 0px 3px;}
17
+ .app_feed_minor_button{text-align:left;padding:2px 2px 2px 20px;font-size:10px;color:#666;}
18
+ .app_feed_major_button label{color:#000;}
19
+ .the_fine_print{text-align:left;font-size:9px;color:#666;display:block;padding:2px 2px 2px 20px;}
20
+ #edit_app_settings_save_fill{padding:0px 0px 0px 10px;text-align:center;}
21
+ .app_settings_tab .extended_info_checkbox{padding:7px 0px 5px 15px;display:block;}
22
+ .app_settings_tab .extended_info_checkbox label{font-size:10px;font-weight:normal;color:#000;}
23
+ #app_settings_extended_tab{text-align:left;font-size:11px;font-weight:bold;color:#666;padding:0px 0px 0px 5px;}
24
+ .app_settings_tab .row_label .label{padding:5px 0px 0px 0px;vertical-align:top;}
25
+ .app_settings_tab .profile_tab_item{padding:0px 5px 5px 10px;width:300px;height:15px;}
26
+ .app_settings_tab .profile_tab_privacy_item{padding:0px 5px 5px 10px;}
27
+ .app_settings_tab .float_left{float:left;}
28
+ .app_settings_tab .remove_app_permission_link{width:80px;float:right;text-align:left;padding:0px 0px 0px 15px;background-repeat:no-repeat;background-image:url('/images/icon_remove.gif');}
29
+ .app_settings_tab .add_app_permission_link{width:80px;float:right;text-align:left;padding:0px 0px 0px 17px;background-repeat:no-repeat;}
30
+ .app_settings_app_icon{padding:0px 10px 0px 3px;vertical-align:bottom;}
31
+ .empty_setting{padding:10px;}
@@ -0,0 +1,16 @@
1
+ /* Source: Backing Store */
2
+ /* Location: js/edit_app_settings.js r110506 */
3
+ /* Machine: 10.16.140.102 */
4
+ /* Generated: July 17th 2008 4:10:12 AM PDT */
5
+ /* HTTP Host: static.ak.fbcdn.net */
6
+
7
+
8
+ function show_edit_app_dialog(app_id,visible_tab){EditAppSettings.setup(app_id,true,visible_tab);}
9
+ EditAppSettings={currentTab:undefined,dialogUrl:'/ajax/editapp_dialog.php',callbackUrl:'/ajax/edit_app_settings.php',statusElement:'edit_app_settings_save_fill',appID:0,uiMode:false,setup:function(appID,uiMode,currentTab){this.appID=appID;this.uiMode=uiMode;this.currentTab=currentTab||'profile';if(this.uiMode){this.showDialog();}
10
+ return this;},showDialog:function(){var async=new AsyncRequest().setURI(this.dialogUrl).setData({'app_id':this.appID,'visible_tab':this.currentTab});new Dialog().setAsync(async).setStackable(true).show();return this;},switchTab:function(tabName){CSS.removeClass(this.currentTab+'_tab_link','tab_link_selected');hide('app_settings_'+this.currentTab+'_tab');CSS.addClass(tabName+'_tab_link','tab_link_selected');show('app_settings_'+tabName+'_tab');this.currentTab=tabName;},setBookmarked:function(bookmarked,callback){var handler=callback||bagofholding;var async=new AsyncRequest().setURI(this.callbackUrl).setHandler(handler).setData({'bookmark':1,'bookmarked':bookmarked,'app_id':this.appID});if(this.uiMode){async.setStatusElement(this.statusElement);}
11
+ async.send();if(this.uiMode){toggleDisplayNone('edit_app_settings_app_bookmarked');toggleDisplayNone('edit_app_settings_app_not_bookmarked');}},setAllowPublish:function(setting){if(setting==2){$('edit_app_settings_allow_publish_small_radio').disabled=true;$('edit_app_settings_allow_publish_medium_radio').disabled=true;$('edit_app_settings_allow_publish_large_radio').disabled=true;$('edit_app_settings_allow_publish_ask_radio').disabled=true;$('edit_app_settings_allow_publish_small_radio').checked=false;$('edit_app_settings_allow_publish_medium_radio').checked=false;$('edit_app_settings_allow_publish_large_radio').checked=false;$('edit_app_settings_allow_publish_ask_radio').checked=false;}else{$('edit_app_settings_allow_publish_small_radio').disabled=false;$('edit_app_settings_allow_publish_medium_radio').disabled=false;$('edit_app_settings_allow_publish_large_radio').disabled=false;$('edit_app_settings_allow_publish_ask_radio').disabled=false;}
12
+ new AsyncRequest().setStatusElement(this.statusElement).setURI(this.callbackUrl).setHandler(bagofholding).setData({'publishing':1,'setting':setting,'app_id':this.appID}).send();return true;},setExtendedPermission:function(permission,allow,callback){var handler=callback||bagofholding;var async=new AsyncRequest().setURI(this.callbackUrl).setHandler(handler).setData({'extended':1,'permission':permission,'allow':allow,'app_id':this.appID});if(this.uiMode){async.setStatusElement(this.statusElement);}
13
+ async.send();return true;},makeProfileChange:function(item,action){new AsyncRequest().setStatusElement(this.statusElement).setURI(this.callbackUrl).setHandler(bagofholding).setData({'profile':1,'item':item,'action':action,'app_id':this.appID}).send();toggleDisplayNone('app_settings_profile_'+item+'_added');toggleDisplayNone('app_settings_profile_'+item+'_to_add');EditAppSettings.setCurrentlyAdded(this.currentlyAdded+(action=='add'?1:-1));},currentlyAdded:0,setCurrentlyAdded:function(num){this.currentlyAdded=num;if(this.currentlyAdded==3){hide('edit_app_settings_to_add');}else{show('edit_app_settings_to_add');}
14
+ if(this.currentlyAdded==0){hide('edit_app_settings_added');}else{show('edit_app_settings_added');}},savePrivacy:function(privacyData){privacyData['privacy']=1;var async=new AsyncRequest().setURI(this.callbackUrl).setHandler(bagofholding).setData(privacyData);if(this.uiMode){async.setStatusElement(this.statusElement);}
15
+ async.send();},removeApplication:function(appID,callback){var handler=callback||bagofholding;new AsyncRequest().setURI(this.callbackUrl).setHandler(handler).setData({'remove':1,'app_id':appID}).send();},reorderBookmarks:function(appIDs){new AsyncRequest().setURI(this.callbackUrl).setHandler(bagofholding).setData({'reorder_bookmarks':1,'app_ids':appIDs}).send();},setExternalWebsitePolicy:function(setting){new AsyncRequest().setURI(this.callbackUrl).setHandler(bagofholding).setData({external_site:1,app_id:this.appID,policy:setting}).send();},setGlobalExternalWebsitePolicy:function(setting){new AsyncRequest().setURI(this.callbackUrl).setHandler(bagofholding).setData({global_external_site:1,policy:setting?1:0}).send();}}
16
+ if(window.Bootloader){Bootloader.done(1);}
@@ -0,0 +1,12 @@
1
+ /* Source: Backing Store */
2
+ /* Location: js/page/editapps.js r110506 */
3
+ /* Machine: 10.16.140.107 */
4
+ /* Generated: July 17th 2008 4:10:12 AM PDT */
5
+ /* HTTP Host: static.ak.fbcdn.net */
6
+
7
+
8
+ var EditAppsController={removeBookmarkedApp:function(appID){var id=$('bookmarked_app_'+appID);EditAppSettings.setup(appID,false).setBookmarked(0,function(){animation(id).to('opacity',0).to('height',0).hide().duration(400).go();DOM.remove(id);});return false;},permissionsCount:{},setPermissionsCount:function(permissionsCount){this.permissionsCount=permissionsCount;},removeExtendedPermission:function(appID,permission){var handler=function(asyncResponse){var tr=$('extperms_app_'+permission+'_'+appID);if(this.permissionsCount[permission]==1){DOM.remove($('extperm_section_banner_'+permission));DOM.remove(tr.parentNode.parentNode);}else{DOM.remove(tr);}
9
+ this.permissionsCount[permission]--;};EditAppSettings.setup(appID,false).setExtendedPermission(permission,0,handler.bind(this));},_setupHoverOnPencil:function(link){link.parentNode.onmouseover=function(){CSS.addClass(this,'hover');};link.parentNode.onmouseout=function(){CSS.removeClass(this,'hover');};},initFlyoutMenus:function(appIds){for(var i=0;i<appIds.length;i++){var appId=appIds[i];var menuId='flyout_menu_'+appId;var clickTarget=$('edit_link_'+appId);this._setupHoverOnPencil(clickTarget);new flyout_menu(clickTarget).setPosition(dropmenu.ALIGN_LEFT).registerHTMLMenu(menuId).addHook('show',CSS.addClass.bind(null,clickTarget,'selected_pencil')).addHook('hide',CSS.removeClass.bind(null,clickTarget,'selected_pencil'));}},initProfileTabHovers:function(appIds){for(var i=0;i<appIds.length;i++){this._setupHoverOnPencil($('edit_link_'+appIds[i]));}},initBookmarkedApps:function(appIds){this.sortableGroup=new SortableGroup();this.bookmarkedApps=appIds;this.sortableGroup.setOrderChangeHandler(function(){var newOrder=this.sortableGroup.getOrder();var applications=[];for(var i=0;i<newOrder.length;i++){var index=newOrder[i];applications.push(this.bookmarkedApps[index]);}
10
+ EditAppSettings.reorderBookmarks(applications);}.bind(this));for(var i=0;i<appIds.length;i++){var appId=appIds[i];var obj=$('bookmarked_app_'+appId);var handle=$('drag_div_'+appId);this.sortableGroup.addSortable(i,obj,handle);}},showApplicationSettingsDialog:function(appId,visibleTab){show_edit_app_dialog(appId,visibleTab);return false;},removeApplication:function(appId,appName){appName=htmlize(appName);var title=tx('apps:remove-title',{'application-name':appName});var edit_application_link='<a href="/editapps.php">'+tx('apps:remove-edit-link')+'</a>';var content='<p>'+tx('apps:remove-body',{'edit-applications-link':edit_application_link})+'</p>'+'<p><strong>'+tx('apps:remove-prompt',{'application-name':appName})+'</strong></p>'+'<input type="hidden" name="remove_appId" value="'+appId+'" />';var button=tx('apps:remove-button');var removeCallback=function(){var appElem=ge('app_'+appId);if(appElem){DOM.remove(appElem);}}
11
+ EditAppSettings.setup(appId,false);new Dialog().setTitle(title).setBody(content).setButtons([{'name':'remove','label':button},Dialog.CANCEL]).setHandler(EditAppSettings.removeApplication.bind(EditAppSettings,appId,removeCallback)).show();return false;},showProfileTab:function(appId){show_edit_app_dialog(appId,'profile');return false;},showFeedTab:function(appId){show_edit_app_dialog(appId,'publishing');},saveAppPrivacy:function(privacyData){EditAppSettings.savePrivacy(privacyData);},saveExternalWebsitePolicy:function(setting,app_id){EditAppSettings.setup(app_id,false,'profile').setExternalWebsitePolicy(setting);return true;},saveGlobalExternalWebsitePolicy:function(setting){EditAppSettings.setGlobalExternalWebsitePolicy(setting);return true;},initFeedTab:function(appFeedPermissions){this.feedPermissions=appFeedPermissions},filterFeed:function(){var select=$('editapps_select_options');var selectedIndex=select.selectedIndex;var selectedValue=select.options[selectedIndex].value;for(var appID in this.feedPermissions){var option=$('feed_apps_'+appID);if(selectedValue==0){show(option);}else if(selectedValue==this.feedPermissions[appID]){show(option);}else{hide(option);}}}}
12
+ if(window.Bootloader){Bootloader.done(1);}
@@ -0,0 +1,42 @@
1
+ /* Source: Global Cache */
2
+ /* Location: css/editprofile.css r105208 */
3
+ /* Machine: 10.16.140.108 */
4
+ /* Generated: July 9th 2008 3:48:44 PM PDT */
5
+ /* HTTP Host: static.ak.fbcdn.net */
6
+
7
+ .profile_note{background:#fff;padding:10px;margin:0 10px 8px 10px;border:1px solid #bdc7d8;color:#444;}
8
+ .editprofile #content{padding:12px 0px 0px;}
9
+ .editprofile .editor{padding-right:70px;width:510px;}
10
+ .editprofile .editor .label{text-align:right;padding-right:15px;width:150px;}
11
+ .editprofile .editor .buttons{text-align:left;padding-left:160px;}
12
+ .editprofile #residence_name{width:200px;}
13
+ .editprofile .room input{width:80px;}
14
+ .editprofile .hometown_zip input{width:80px;}
15
+ .editprofile .hometown input{width:200px;}
16
+ .editprofile .hometown_country select{width:120px;}
17
+ .editprofile .zip input{width:80px;}
18
+ .editprofile .political select{width:200px;}
19
+ .editprofile #religion .inputtext{width:200px;}
20
+ .editprofile .interests textarea,
21
+ .editprofile .music textarea,
22
+ .editprofile .tv textarea,
23
+ .editprofile .movies textarea,
24
+ .editprofile .books textarea{height:px }
25
+ .editprofile .quotes textarea,
26
+ .editprofile .aboutme textarea{height:92px }
27
+ .editprofile .work_position .inputtext,
28
+ .editprofile .work_position textarea{width:280px;}
29
+ .editprofile .work_position textarea{height:66px;}
30
+ #infoarea{margin:0px 10px;}
31
+ #uploadpicture h4{border-bottom:solid 1px #D8DFEA;margin:0px;padding:0px 0px 2px;font-size:13px;}
32
+ #currentpicture{margin:10px 10px 20px 20px;float:left;width:200px;}
33
+ #currentpicture h4{margin:0px;padding:1px 0px 4px;font-size:11px;border-bottom:none;}
34
+ #nopicture{width:200px;font-size:12px;padding:75px 0px;text-align:center;background:#f7f7f7;border:solid 1px #ddd;color:gray;}
35
+ #uploadpicture{margin:10px 20px 20px 10px;float:left;width:366px;}
36
+ #uploadpicture small{display:block;margin:5px 0px;color:gray;}
37
+ #uploadpicture .inputcheckbox{float:left;display:block;margin:2px 5px 8px 0px;}
38
+ #election2006 .header{margin:5px 0px 10px 0px;color:#333333;font-size:11px;}
39
+ #election2006 .emptybox{font-size:12px;text-align:center;margin:10px 0px;padding:40px 10px;color:gray;background:white;border:solid 1px #ddd;}
40
+ #election2006 .election_set{margin-bottom:20px;}
41
+ .aim_text .inputtext{width:160px;margin-right:8px;}
42
+ #hidden_sn_1, #hidden_sn_2, #hidden_sn_3, #hidden_sn_4{display:none;}
@@ -0,0 +1,37 @@
1
+ Bootloader.markResourcesAsLoaded(["js\/common.js.pkg.php","js\/lib\/event\/link_controller.js","js\/flyout_menu.js","js\/canvas.js","js\/api\/confirmation.js","js\/feedform.js","js\/lib\/util\/quickling.js","js\/attachments.js","js\/fbml.js","js\/friend_suggester.js","js\/lib\/ui\/typeaheadpro\/typeahead_source.js","js\/lib\/ui\/drag.js","js\/lib\/ui\/sort.js","js\/edit_app_settings.js","js\/page\/editapps.js","js\/scrollarea.js","js\/lib\/ui\/typeaheadpro\/search_typeaheadpro.js","js\/lib\/ui\/typeaheadpro\/sources\/static_source.js","js\/lib\/ui\/typeaheadpro\/sources\/search_friend_source.js","js\/lib\/net\/livemessage.js"]);
2
+
3
+ onloadRegister(function() {try { if (!ua.ie()){so_sound_player = new SWFObject("/swf/SoundPlayer.swf", "so_sound_player", "1", "1", "5.0.0", "#ffffff");
4
+ so_sound_player.addParam("allowscriptaccess", "always");
5
+ so_sound_player.addParam("wmode", "transparent");
6
+ so_sound_player.addVariable("string_table", "http://static.ak.fbcdn.net/js_strings.php/t84465/en_US");
7
+ so_sound_player.addVariable("swf_id", "so_sound_player");
8
+ so_sound_player.fallback_html = " ";
9
+ so_sound_player.write("sound_player_holder");}if (deconcept.SWFObjectUtil.getPlayerVersion().major == 0) { hide("chat_setting_sound"); hide("sound_player_holder") } } catch (swfex) { }});
10
+ onloadRegister(function() {placeholderSetup("buddy_list_typeahead_input");});
11
+ onloadRegister(function() {window.edit_status_visible = window.status_blur = false;});
12
+ onloadRegister(function() {window.presenceCookieManager = new fbCookieManager(2);});
13
+ onloadRegister(function() {window.channelManager = new fbChannelManager("505421674");});
14
+ onloadRegister(function() {window.presence = new fbPresence("505421674", "Scott Raymond", "Scott", 1216310168000, 0, {"UPDATE_GRANULARITY":20,"BUDDY_BASE_TIME":40,"BUDDY_MAX_TIME":900,"BUDDY_COST_NEVER_SENT_MESSAGE":900,"BUDDY_COST_NO_LIST_CHANGE":30,"BUDDY_COST_NO_CHAT_TABS":30,"BUDDY_COST_CHAT_ACTIVITY":180,"BUDDY_COST_VIEW_ACTIVITY":180,"BUDDY_COST_PAGE_ACTIVITY":180,"BUDDY_MAX_ACTIVITY_MINS":180,"BUDDY_MAX_AVAIL_COOKIE":20,"BUDDY_VIEW_FETCH_WINDOW":120,"NOTIFICATIONS_PIGGYBACK_PERCENTAGE":25}, "http:\/\/www.new.facebook.com\/presence\/popout.php", "http:\/\/www.new.facebook.com\/login.php");});
15
+ onloadRegister(function() {window.presenceUpdater = new fbPresenceUpdater();});
16
+ onloadRegister(function() {window.presenceNotifications = new fbNotifications(5, 0, 1216310168000, {"2431403991":"PackRat","2356318349":"Friends"}, 1216266326, 1216266326);});
17
+ onloadRegister(function() {Emote.initImageURL("http:\/\/static.ak.fbcdn.net\/images\/emote\/emote.gif?0:93872");});
18
+ onloadRegister(function() {window.statusControl = new fbStatusControl(0);});
19
+ onloadRegister(function() {window.buddyList = new fbBuddyList();});
20
+ onloadRegister(function() {buddyList.initNoRender(0, {}, 0, 0);});
21
+ onloadRegister(function() {window.chatDisplay = new fbChatDisplay({"505421674":{"name":"Scott Raymond","firstName":"Scott","thumbSrc":"http:\/\/profile.ak.facebook.com\/v225\/769\/120\/q505421674_8113.jpg","status":"Now? I'm on the way.","statusTime":1216248288,"statusTimeRel":"17 hours ago"}}, {}, 1, "http:\/\/www.new.facebook.com\/profile.php", "http:\/\/www.new.facebook.com\/inbox\/?compose", {"sound":1,"typ_send":true,"typ_show":true});});
22
+ onloadRegister(function() {window.chatTabSlider = new fbChatTabSlider();});
23
+ onloadRegister(function() {chatDisplay.load();chatTabSlider.load();});
24
+ onloadRegister(function() {channelManager.addChannel("p_505421674", 0, bind(presence, "handleMsg"),bind(presence, "start"),bind(presence, "connectionShutdown"),bind(presence, "restart"));setTimeout(function() {presence.doSync();}, 100);});
25
+ onloadRegister(function() {channelManager.iframeLoad("\/iframe\/9?r=static.ak.fbcdn.net\/rsrc.php\/pkg\/70\/110506\/js\/common.js.pkg.php", "channel02", 80, 0);});
26
+ onloadRegister(function() {new ScrollArea("id_487f6b98d2f1c5728781530_scroll", "id_487f6b98d2f1c5728781530_content", "id_487f6b98d2f1c5728781530_down", "id_487f6b98d2f1c5728781530_up").setMaxHeight(320);});
27
+ onloadRegister(function() {placeholderSetup('q');});
28
+ onloadRegister(function() {window.search_friend_source.url_templates = {"u":{"photo":"http:\/\/www.new.facebook.com\/profile.php?id=%25d&v=photos","default_url":"http:\/\/www.new.facebook.com\/profile.php?id=%d"},"g":{"icon":"http:\/\/static.ak.fbcdn.net\/images\/app_icons\/group.gif?0:39263","default_url":"http:\/\/www.new.facebook.com\/group.php?gid=%d"},"e":{"icon":"http:\/\/static.ak.fbcdn.net\/images\/app_icons\/event.gif?0:39263","default_url":"http:\/\/www.new.facebook.com\/event.php?eid=%d"},"p":{"icon":"http:\/\/static.ak.fbcdn.net\/images\/app_icons\/fbpage.gif?0:72158"},"search":{"icon":"http:\/\/static.ak.fbcdn.net\/images\/app_icons\/search.gif?0:97819","default_url":"http:\/\/apps.new.facebook.com\/s.php?init=q&q=%s"}};});
29
+ onloadRegister(function() {window.ADVANCED_SEARCH_TYPEAHEAD = false;});
30
+ onloadRegister(function() {new MenuBar("fb_menubar").setTimeoutInterval(250).init();});
31
+ onloadRegister(function() {window.search_friend_source.url_templates = {"u":{"default_url":"http:\/\/www.new.facebook.com\/profile.php?id=%d","photo":"http:\/\/www.new.facebook.com\/profile.php?id=%25d&v=photos"},"g":{"default_url":"http:\/\/www.new.facebook.com\/group.php?gid=%d","icon":"http:\/\/static.ak.fbcdn.net\/images\/app_icons\/group.gif?0:39263"},"e":{"default_url":"http:\/\/www.new.facebook.com\/event.php?eid=%d","icon":"http:\/\/static.ak.fbcdn.net\/images\/app_icons\/event.gif?0:39263"},"p":{"icon":"http:\/\/static.ak.fbcdn.net\/images\/app_icons\/fbpage.gif?0:72158"},"search":{"icon":"http:\/\/static.ak.fbcdn.net\/images\/app_icons\/search.gif?0:97819","default_url":"http:\/\/apps.new.facebook.com\/s.php?init=q&q=%s"}};});
32
+ onloadRegister(function() {window.ADVANCED_SEARCH_TYPEAHEAD = false;});
33
+ onloadRegister(function() {LiveMessageDispatcher.MSG_TYPE = "app_msg"});
34
+ onloadRegister(function() {window.livemessage_dispatcher = new LiveMessageDispatcher();});
35
+ onloadRegister(function() {new PlatformCanvasController(5020558873);});
36
+ onloadRegister(function() {window.loading_initial_content_div = false;});
37
+ onloadRegister(function() {var n = "rtime"; (window.ge && ge(n)) && (ge(n).title += " | 476");});
@@ -1,7 +1,8 @@
1
- /* Source: Global Cache */
2
- /* Location: js/fbml.js r81610 */
3
- /* Machine: 10.1.0.38 */
4
- /* Generated: March 5th 2008 2:17:16 AM PST */
1
+ /* Source: Backing Store */
2
+ /* Location: js/fbml.js r109427 */
3
+ /* Machine: 10.16.140.109 */
4
+ /* Generated: July 15th 2008 12:34:50 AM PDT */
5
+ /* HTTP Host: static.ak.fbcdn.net */
5
6
 
6
7
 
7
8
  var FBML=(function(){var _addEventListener;var invoked_dialogs=Array();var form_hidden_inputs=null;if(window.addEventListener){_addEventListener=function(obj,eventName,fun){obj.addEventListener(eventName,fun,false);}}else{_addEventListener=function(obj,eventName,fun){obj.attachEvent("on"+eventName,fun);}}
@@ -14,21 +15,21 @@ return false;}
14
15
  function attachCurlFromObject(ajax_params,container,pre_fn,post_fn){if(!ajax_params['url']){return err("no input with id url in form");}
15
16
  if(!ajax_params['fb_sig_api_key']){return err("no input with id fb_api_key in form");}
16
17
  if(pre_fn){pre_fn();}
17
- ajax_params['context']=attachments.context;attachCurlFromFormValues(ajax_params,container,post_fn);}
18
- function attachCurlFromFormValues(ajax_params,container,post_fn){var ajax=new Ajax;ajax.onDone=function(junk,responseText){if(post_fn){post_fn();}
19
- if(!container.removed){set_inner_html(container,responseText);}}
20
- ajax.post('/fbml/ajax/attach.php',ajax_params);}
21
- function attachFromPreview(){if(attachments){var parent=ge('attachment_edit');var inputs=attachments.get_all_form_elements(parent);var params=Object();for(var i=0;i<inputs.length;i++){if(!(inputs[i].type=="radio"||inputs[i].type=="checkbox")||inputs[i].checked){params[inputs[i].name]=inputs[i].value;}}
18
+ attachCurlFromFormValues(ajax_params,container,post_fn);}
19
+ function attachCurlFromFormValues(ajax_params,container,post_fn){new AsyncRequest().setURI('/fbml/ajax/attach.php').setData(ajax_params).setMethod('POST').setHandler(function(response){if(post_fn){post_fn();}
20
+ if(!container.removed){set_inner_html(container,response.getPayload().html);}}.bind(this)).send();}
21
+ function attachFromPreview(context){if(context=='wall'){var attachments=wallAttachments;}else if(context=='message'){var attachments=inboxAttachments;}
22
+ if(attachments){var parent=ge(attachments.edit_id);var inputs=attachments.get_all_form_elements(parent);var params=Object();for(var i=0;i<inputs.length;i++){if(!(inputs[i].type=="radio"||inputs[i].type=="checkbox")||inputs[i].checked){params[inputs[i].name]=inputs[i].value;}}
22
23
  params['context']=attachments.context;params['action']='edit';attachCurlFromFormValues(params,parent);}}
23
24
  function clickRewriteAjax(app_id,loggedIn,targetId,url,formId,loadingHTML){this.requireLogin(app_id,function(){return _clickRewriteAjax(targetId,url,formId,loadingHTML);});return false;}
24
25
  function _clickRewriteAjax(targetId,url,formId,loadingHTML){var target=ge(targetId);if(!target){return err("target "+targetId+" not found");}
25
26
  var hContext=target.getAttribute("fbcontext");var sContext=FBML.Contexts[hContext];var form=null;if(typeof formId=="string"){form=ge(formId);}else{form=formId;}
26
27
  if(!form){return err("You must either specify a clickrewriteform (an id) or use the clickrewrite attribute inside a form");}
27
- addHiddenInputs(form);var post=serialize_form(form);post["fb_mockajax_context"]=sContext;post["fb_mockajax_context_hash"]=hContext;post["fb_mockajax_url"]=url;var a=new Ajax(function(_e,responseText){var response=eval("("+responseText+")");if(response.ok){set_inner_html(target,response.html);}else{return err(response["error_message"]);}
28
- FBML.mockAjaxResponse=response;return response.ok;},function(_e,_responseText){return err("failed to successfully retrieve data from Facebook when making mock AJAX call to rewrite id "+targetId);});a.post(FBML._mockAjaxProxyUrl,post);if(loadingHTML){target.innerHTML=loadingHTML;}
28
+ var owner_id=typeof this.PROFILE_OWNER_ID=='undefined'?0:this.PROFILE_OWNER_ID;addHiddenInputs(form);var post=serialize_form(form);post["fb_mockajax_context"]=sContext;post["fb_mockajax_context_hash"]=hContext;post["fb_mockajax_url"]=url;post["fb_target_id"]=owner_id;new AsyncRequest().setURI(FBML._mockAjaxProxyUrl).setMethod("POST").setFBMLForm().setData(post).setHandler(function(response){var ma=response.getPayload();if(ma.ok){set_inner_html(target,ma.html);}else{return err(ma["error_message"]);}
29
+ FBML.mockAjaxResponse=ma;return ma.ok;}.bind(this)).setErrorHandler(function(response){return err("Failed to successfully retrieve data from Facebook when making mock AJAX call to rewrite id "+targetId);}.bind(this)).send();if(loadingHTML){target.innerHTML=loadingHTML;}
29
30
  return false;}
30
31
  function clickToShow(targetId){return clickToSetDisplay(targetId,"");}
31
- function clickToShowDialog(targetId){var dialog_elem=null;if(dialog_elem=ge(targetId)){var dialog_content=dialog_elem.parentNode.innerHTML;dialog_elem.id='dialog_invoked_'+dialog_elem.id;invoked_dialogs[dialog_elem.id]=dialog_elem.cloneNode(true);dialog_elem.innerHTML='';var dialog=new pop_dialog();dialog.show_dialog(dialog_content);}
32
+ function clickToShowDialog(targetId){var dialog_elem=null;if(dialog_elem=ge(targetId)){var dialog_content=dialog_elem.parentNode.innerHTML;dialog_elem.id='dialog_invoked_'+dialog_elem.id;invoked_dialogs[dialog_elem.id]=dialog_elem.cloneNode(true);dialog_elem.innerHTML='';var dialog=new pop_dialog();dialog.is_stackable=true;dialog.show_dialog(dialog_content);}
32
33
  return false;}
33
34
  function closeDialogInvoked(obj){var hidden_dialog=null;for(dialog_id in invoked_dialogs){if(hidden_dialog=ge(dialog_id)){var old_id=hidden_dialog.id.replace('dialog_invoked_','');var old_elem=null;if(old_elem=ge(old_id)){old_elem.id='dialog_closed_'+old_id;}
34
35
  var parent=hidden_dialog.parentNode;parent.innerHTML='';parent.appendChild(invoked_dialogs[dialog_id]);invoked_dialogs[dialog_id].id=old_id;}}
@@ -39,32 +40,34 @@ function clickToSetDisplay(targetId,disp){var target=ge(targetId);if(!target){re
39
40
  function clickToEnable(targetId){return clickToSetDisabled(targetId,'');}
40
41
  function clickToDisable(targetId){return clickToSetDisabled(targetId,'disabled');}
41
42
  function clickToSetDisabled(targetId,disabled){var target=ge(targetId);if(!target){return err("Could not find target "+targetId);}else{target.disabled=disabled;return false;}}
42
- function fbmlLogin(app_id){new AsyncRequest().setURI('/ajax/api/tos.php').setData({app_id:app_id,grant_perm:1,profile_id:typeof PROFILE_OWNER_ID=='undefined'?0:PROFILE_OWNER_ID,api_key:$('api_key').value,auth_token:$('auth_token').value,save_login:$('save_login').checked==false?0:1}).setHandler(bind(this,function(response){if(response.getPayload()){form_hidden_inputs=response.getPayload();}
43
+ function fbmlLogin(app_id){new AsyncRequest().setURI('/ajax/api/tos.php').setData({app_id:app_id,grant_perm:1,profile_id:typeof PROFILE_OWNER_ID=='undefined'?0:PROFILE_OWNER_ID,api_key:$('api_key').value,auth_token:$('auth_token').value,save_login:ge('save_login')?($('save_login').checked==false?0:1):0}).setHandler(bind(this,function(response){if(response.getPayload()){form_hidden_inputs=response.getPayload();}
43
44
  this.loginDialog&&this.loginDialog.fade_out(100);this.loginContinuation&&this.loginContinuation();this.loginCancellation=this.loginContinuation=this.loginDialog=null;})).send();}
44
45
  function cancelLogin(){this.loginCancellation&&this.loginCancellation();this.loginDialog&&this.loginDialog.fade_out(100);this.loginContinuation=this.loginCancellation=this.loginDialog=null;}
45
46
  function addHiddenInputs(form_obj){if(form_hidden_inputs){var i;for(i=form_obj.childNodes.length-1;i>=0;i--){if(form_obj.childNodes[i].name&&form_obj.childNodes[i].name.indexOf('fb_sig')==0){form_obj.removeChild(form_obj.childNodes[i]);}}
46
47
  for(keyVar in form_hidden_inputs){var newInput=document.createElement('input');newInput.name=keyVar;newInput.value=form_hidden_inputs[keyVar];newInput.type='hidden';form_obj.appendChild(newInput);}}}
48
+ function promptPermission(app_id,perms,next_js,close_js){var async=new AsyncRequest().setURI('/fbml/ajax/permissions.php').setData({app_id:app_id,perms:perms});new Dialog().setAsync(async).setHandler(function(next_js,button){next_js();Dialog.getCurrent()._submitForm('POST','/fbml/ajax/permissions.php',button);return false;}.bind(this,next_js)).setCloseHandler(close_js).show();}
47
49
  function requireLogin(app_id,continuation,cancellation){if(this.loginDialog){return;}
48
- this.loginDialog=new pop_dialog('api_confirmation');this.loginContinuation=continuation;this.loginCancellation=cancellation;new AsyncRequest().setURI('/ajax/api/tos.php').setData({app_id:app_id,profile_id:typeof PROFILE_OWNER_ID=='undefined'?0:PROFILE_OWNER_ID}).setReadOnly(true).setHandler(bind(this,function(continuation,response){if(response.getPayload()){this.loginDialog.show_dialog(response.getPayload());}else{continuation();this.loginCancellation=null;this.loginContinuation=null;this.loginDialog=null;}},continuation)).send();}
50
+ this.loginDialog=new pop_dialog('api_confirmation');this.loginDialog.is_stackable=true;this.loginContinuation=continuation;this.loginCancellation=cancellation;new AsyncRequest().setURI('/ajax/api/tos.php').setData({app_id:app_id,profile_id:typeof PROFILE_OWNER_ID=='undefined'?0:PROFILE_OWNER_ID}).setReadOnly(true).setHandler(bind(this,function(continuation,response){if(response.getPayload()){this.loginDialog.show_dialog(response.getPayload());}else{continuation();this.loginCancellation=null;this.loginContinuation=null;this.loginDialog=null;}},continuation)).send();}
49
51
  function attrBool(element,attr,defaultValue){if(!defaultValue){defaultValue=false;}
50
- var el=ge(element);if(el.hasAttribute(attr)){var val=el.getAttribute(attr).toLowerCase();switch(val){case"false":case"no":case"0":return false;case"true":case"yes":return true;default:var intval=parseInt(val);if((intval<0)||(intval>0)){return true;}
52
+ var el=ge(element);var attr=el.getAttributeNode(attr);if(attr?attr.specified:false){var val=el.getAttribute(attr).toLowerCase();switch(val){case"false":case"no":case"0":return false;case"true":case"yes":return true;default:var intval=parseInt(val);if((intval<0)||(intval>0)){return true;}
51
53
  return defaultValue;}}}
52
- function cancelRequest(elem){generic_dialog.get_dialog(elem).fade_out(100);}
53
54
  function sendRequest(request_form,app_id,request_type,invite,preview,is_multi,prefill){var message='';if(!preview){if(is_multi){request_form.onSubmit=fsth.captured_event;}
54
55
  message=$('message').value;}
55
56
  if(prefill){var ids=[];ids.push(prefill);}else{var inputs=request_form.getElementsByTagName('input');var ids=[];for(var i=0;i<inputs.length;i++){if(inputs[i].getAttribute('fb_protected')=='true'&&(inputs[i].name=='ids[]'||inputs[i].name=='friend_selector_id')&&(inputs[i].type!='checkbox'||inputs[i].checked)){ids.push(inputs[i].value);}}}
56
- var data={app_id:app_id,to_ids:ids,request_type:request_type,invite:invite,content:request_form.getAttribute('content'),preview:preview,is_multi:is_multi,form_id:request_form.id,prefill:(prefill>0),message:message};var ajax_uri='/fbml/ajax/prompt_send.php';if(preview){var dialog=new pop_dialog();dialog.show_ajax_dialog(ajax_uri,data);}else{new Ajax(function(result){request_form.submit();},function(err){aiert('error: '+err);}).post(ajax_uri,data);}
57
+ var data={app_id:app_id,to_ids:ids,request_type:request_type,invite:invite,content:request_form.getAttribute('content'),preview:preview,is_multi:is_multi,form_id:request_form.id,prefill:(prefill>0),message:message,donot_send:ge('donotsend')?$('donotsend').checked:false};var async=new AsyncRequest().setURI('/fbml/ajax/prompt_send.php').setData(data);if(preview){new Dialog('req_dialog').setAsync(async).setStackable(true).show();}else{async.setHandler(function(result){request_form.submit();}).send();}
57
58
  return false;}
59
+ function cancelDialog(elem){generic_dialog.get_dialog(elem).fade_out(100);}
58
60
  function removeReqRecipient(userid,request_form,is_multi){if(is_multi){fs.unselect(userid);fs.force_reset();}else{var inputs=request_form.getElementsByTagName('input');for(var i=0;i<inputs.length;i++){if(inputs[i].getAttribute('fb_protected')=='true'&&inputs[i].value==userid){if(inputs[i].name=='ids[]'){if(inputs[i].type=='checkbox'){if(inputs[i].checked){inputs[i].click();}}else{inputs[i].parentNode.parentNode.parentNode.parentNode.parentNode.token.remove(true);}}else if(inputs[i].name=='friend_selector_id'){inputs[i].typeahead.select_suggestion(false);inputs[i].typeahead.set_value('');inputs[i].value='';}}}}
59
61
  var span=ge('sp'+userid);var recipients_list=span.parentNode;recipients_list.removeChild(span);for(var i=0;i<recipients_list.childNodes.length;i++){if(recipients_list.childNodes[i].nodeName=='SPAN'){return false;}}
60
62
  generic_dialog.get_dialog(recipients_list).fade_out(100);return false;}
61
- function cancelInteraction(elem){generic_dialog.get_dialog(elem).fade_out(100);}
62
- function sendInteraction(interaction_form,app_id,preview,prefill){var ids=[];if(prefill){ids.push(prefill);}else{var inputs=interaction_form.getElementsByTagName('input');for(var i=0;i<inputs.length;i++){if(inputs[i].getAttribute('fb_protected')=='true'&&(inputs[i].name=='ids[]'||inputs[i].name=='friend_selector_id')&&(inputs[i].type!='checkbox'||inputs[i].checked)){ids.push(inputs[i].value);}}}
63
- var data={app_id:app_id,to_ids:ids,template:interaction_form.getAttribute('template'),preview:preview,form_id:interaction_form.id,prefill:(prefill>0),elements:serialize_form(interaction_form)};var ajax_uri='/fbml/ajax/prompt_interaction.php';if(preview){var dialog=new pop_dialog();dialog.show_ajax_dialog(ajax_uri,data);}else{new AsyncRequest().setURI(ajax_uri).setData(data).setHandler(function(){interaction_form.submit();}).setErrorHandler(function(err){aiert('error: '+err);}).send();}
64
- return false;}
65
- return{friendSelector:friendSelector,Contexts:Contexts,attachCurlFromObject:attachCurlFromObject,attachFromPreview:attachFromPreview,clickRewriteAjax:clickRewriteAjax,clickToShow:clickToShow,clickToShowDialog:clickToShowDialog,clickToHide:clickToHide,clickToEnable:clickToEnable,clickToDisable:clickToDisable,clickToToggle:clickToToggle,closeDialogInvoked:closeDialogInvoked,cancelRequest:cancelRequest,sendRequest:sendRequest,removeReqRecipient:removeReqRecipient,cancelInteraction:cancelInteraction,sendInteraction:sendInteraction,addHiddenInputs:addHiddenInputs,fbmlLogin:fbmlLogin,cancelLogin:cancelLogin,requireLogin:requireLogin};})();function fbjs_sandbox(appid){if(fbjs_sandbox.instances['a'+appid]){return fbjs_sandbox.instances['a'+appid];}
63
+ function createProfileBox(app_id,position){var classname='profile_form'+(position=='info'?' profile_info_form':'');var dialog=new pop_dialog(classname);dialog.is_stackable=true;dialog.show_loading(tx('sh:loading'));var data={app_id:app_id,position:position};var ajax_uri='/fbml/ajax/fetch_profile_box.php';new AsyncRequest().setURI(ajax_uri).setData(data).setHandler(function(resp){dialog.show_dialog(resp.getPayload().content,true);}).send();}
64
+ var stripLinks=function(container){var links=container.getElementsByTagName('a');for(var i=0;i<links.length;i++){if(!links[i].getAttribute('flash')){addEventBase(links[i],'click',event_kill);}}
65
+ var forms=container.getElementsByTagName('form');for(var i=0;i<forms.length;i++){forms[i].onsubmit=function(){return false;};}}
66
+ var enforceStyle=function(element,styles){for(styleName in styles){element.style[styleName]=styles[styleName];}}
67
+ var loadAjaxPage=function(href,app){HistoryManager.go('#fbhref='+href+"&app_page=true&v=app_"+app);animation(document.body).to('scrollTop',elementY($('content'))-40).ease(animation.ease.end).duration(300).go();}
68
+ return{friendSelector:friendSelector,Contexts:Contexts,attachCurlFromObject:attachCurlFromObject,attachFromPreview:attachFromPreview,clickRewriteAjax:clickRewriteAjax,clickToShow:clickToShow,clickToShowDialog:clickToShowDialog,clickToHide:clickToHide,clickToEnable:clickToEnable,clickToDisable:clickToDisable,clickToToggle:clickToToggle,closeDialogInvoked:closeDialogInvoked,sendRequest:sendRequest,removeReqRecipient:removeReqRecipient,cancelDialog:cancelDialog,addHiddenInputs:addHiddenInputs,fbmlLogin:fbmlLogin,cancelLogin:cancelLogin,requireLogin:requireLogin,promptPermission:promptPermission,stripLinks:stripLinks,enforceStyle:enforceStyle,loadAjaxPage:loadAjaxPage};})();function fbjs_sandbox(appid){if(fbjs_sandbox.instances['a'+appid]){return fbjs_sandbox.instances['a'+appid];}
66
69
  this.appid=appid;this.pending_bootstraps=[];this.bootstrapped=false;fbjs_sandbox.instances['a'+appid]=this;}
67
- fbjs_sandbox.instances={};fbjs_sandbox.prototype.bootstrap=function(){if(!this.bootstrapped){var appid=this.appid;var code=['a',appid,'_Math = new fbjs_math();','a',appid,'_Date = fbjs_date();','a',appid,'_String = new fbjs_string();','a',appid,'_RegExp = new fbjs_regexp();','a',appid,'_Ajax = fbjs_ajax(',appid,');','a',appid,'_Dialog = fbjs_dialog(',appid,');','a',appid,'_Facebook = new fbjs_facebook(',appid,');','a',appid,'_Animation = new fbjs_animation();','a',appid,'_document = new fbjs_main(',appid,');','a',appid,'_undefined = undefined;','a',appid,'_console = new fbjs_console();','a',appid,'_setTimeout = fbjs_sandbox.set_timeout;','a',appid,'_setInterval = fbjs_sandbox.set_interval;','a',appid,'_escape = escapeURI;','a',appid,'_unescape = unescape;'];for(var i in{clearTimeout:1,clearInterval:1,parseFloat:1,parseInt:1,isNaN:1,isFinite:1}){code=code.concat(['a',appid,'_',i,'=',i,';']);}
70
+ fbjs_sandbox.instances={};fbjs_sandbox.prototype.bootstrap=function(){if(!this.bootstrapped){var appid=this.appid;var code=['a',appid,'_Math = new fbjs_math();','a',appid,'_Date = fbjs_date();','a',appid,'_String = new fbjs_string();','a',appid,'_RegExp = new fbjs_regexp();','a',appid,'_Ajax = fbjs_ajax(',appid,');','a',appid,'_Dialog = fbjs_dialog(',appid,');','a',appid,'_Facebook = new fbjs_facebook(',appid,');','a',appid,'_Animation = new fbjs_animation();','a',appid,'_LiveMessage = new fbjs_livemessage(',appid,');','a',appid,'_document = new fbjs_main(',appid,');','a',appid,'_undefined = undefined;','a',appid,'_console = new fbjs_console();','a',appid,'_setTimeout = fbjs_sandbox.set_timeout;','a',appid,'_setInterval = fbjs_sandbox.set_interval;','a',appid,'_escape = escapeURI;','a',appid,'_unescape = unescape;'];for(var i in{clearTimeout:1,clearInterval:1,parseFloat:1,parseInt:1,isNaN:1,isFinite:1}){code=code.concat(['a',appid,'_',i,'=',i,';']);}
68
71
  eval(code.join(''));}
69
72
  for(var i=0,il=this.pending_bootstraps.length;i<il;i++){eval_global(this.pending_bootstraps[i]);}
70
73
  this.pending_bootstraps=[];this.bootstrapped=true;}
@@ -78,19 +81,20 @@ return str+'';}
78
81
  fbjs_sandbox.set_timeout=function(js,timeout){if(typeof js!='function'){fbjs_console.error('setTimeout may not be used with a string. Please enclose your event in an anonymous function.');}else{return setTimeout(js,timeout);}}
79
82
  fbjs_sandbox.set_interval=function(js,interval){if(typeof js!='function'){fbjs_console.error('setInterval may not be used with a string. Please enclose your event in an anonymous function.');}else{return setInterval(js,interval);}}
80
83
  function fbjs_main(appid){fbjs_private.get(this).appid=appid;}
81
- fbjs_main.allowed_elements={a:true,abbr:true,acronym:true,address:true,b:true,br:true,bdo:true,big:true,blockquote:true,caption:true,center:true,cite:true,code:true,del:true,dfn:true,div:true,dl:true,dd:true,dt:true,em:true,fieldset:true,font:true,form:true,h1:true,h2:true,h3:true,h4:true,h5:true,h6:true,hr:true,i:true,img:true,input:true,ins:true,iframe:true,kbd:true,label:true,legend:true,li:true,ol:true,option:true,optgroup:true,p:true,pre:true,q:true,s:true,samp:true,select:true,small:true,span:true,strike:true,strong:true,sub:true,sup:true,table:true,textarea:true,tbody:true,td:true,tfoot:true,th:true,thead:true,tr:true,tt:true,u:true,ul:true};fbjs_main.allowed_events={focus:true,click:true,mousedown:true,mouseup:true,dblclick:true,change:true,reset:true,select:true,submit:true,keydown:true,keypress:true,keyup:true,blur:true,load:true,mouseover:true,mouseout:true,mousemove:true,selectstart:true};fbjs_main.prototype.getElementById=function(id){var appid=fbjs_private.get(this).appid;return fbjs_dom.get_instance(document.getElementById('app'+appid+'_'+id),appid);}
84
+ fbjs_main.allowed_elements={a:true,abbr:true,acronym:true,address:true,b:true,br:true,bdo:true,big:true,blockquote:true,caption:true,center:true,cite:true,code:true,del:true,dfn:true,div:true,dl:true,dd:true,dt:true,em:true,fieldset:true,font:true,form:true,h1:true,h2:true,h3:true,h4:true,h5:true,h6:true,hr:true,i:true,img:true,input:true,ins:true,iframe:true,kbd:true,label:true,legend:true,li:true,ol:true,option:true,optgroup:true,p:true,pre:true,q:true,s:true,samp:true,select:true,small:true,span:true,strike:true,strong:true,sub:true,sup:true,table:true,textarea:true,tbody:true,td:true,tfoot:true,th:true,thead:true,tr:true,tt:true,u:true,ul:true};fbjs_main.allowed_editable={embed:true,object:true};fbjs_main.allowed_events={focus:true,click:true,mousedown:true,mouseup:true,dblclick:true,change:true,reset:true,select:true,submit:true,keydown:true,keypress:true,keyup:true,blur:true,load:true,mouseover:true,mouseout:true,mousemove:true,selectstart:true};fbjs_main.prototype.getElementById=function(id){var appid=fbjs_private.get(this).appid;return fbjs_dom.get_instance(document.getElementById('app'+appid+'_'+id),appid);}
82
85
  fbjs_main.prototype.getRootElement=function(){var appid=fbjs_private.get(this).appid;return fbjs_dom.get_instance(document.getElementById('app_content_'+appid).firstChild,appid);}
83
86
  fbjs_main.prototype.createElement=function(element){var mix=fbjs_sandbox.safe_string(element.toLowerCase());if(fbjs_main.allowed_elements[mix]){return fbjs_dom.get_instance(document.createElement(mix),fbjs_private.get(this).appid);}else{switch(mix){case'fb:swf':return new fbjs_fbml_dom('fb:swf',fbjs_private.get(this).appid);break;default:fbjs_console.error(mix+' is not an allowed DOM element');break;}}}
84
87
  fbjs_main.prototype.setLocation=function(url){url=fbjs_sandbox.safe_string(url);if(fbjs_dom.href_regex.test(url)){document.location.href=url;return this;}else{fbjs_console.error(url+' is not a valid location');}}
85
- function fbjs_facebook(appid){var priv=fbjs_private.get(this);priv.sandbox=fbjs_sandbox.instances['a'+appid];}
88
+ function fbjs_facebook(appid){var priv=fbjs_private.get(this);priv.sandbox=fbjs_sandbox.instances['a'+appid];this.appid=appid;}
86
89
  fbjs_facebook.prototype.getUser=function(){var priv=fbjs_private.get(this);if(priv.sandbox.data.loggedin){return priv.sandbox.data.user;}else{return null;}}
87
90
  fbjs_facebook.prototype.isApplicationAdded=function(){return fbjs_private.get(this).sandbox.data.installed;}
88
91
  fbjs_facebook.prototype.isLoggedIn=function(){return fbjs_private.get(this).sandbox.data.loggedin;}
89
- fbjs_facebook.prototype.urchinTracker=function(text){if(urchinTracker){urchinTracker(text);}else{fbjs_console.error('There is no fb:google-analytics tag on this page!');}}
92
+ fbjs_facebook.prototype.urchinTracker=function(text){if(urchinTracker){urchinTracker(text);}else{fbjs_console.error('There is no fb:google-analytics tag on this page!');}};fbjs_facebook.prototype.showFeedDialog=function(template_bundle_id,template_data,body_general,target_ids,continuation){var feed_data={template_id:template_bundle_id,template_data:template_data,body_general:body_general,target_ids:target_ids};new FeedForm().setContinuation(continuation).setFeedData(feed_data).setAppId(this.appid).show();}
93
+ fbjs_facebook.prototype.setPublishStatus=function(on){var publish=ge(this.appid+'_publish_button');if(publish){publish.disabled=!on;CSS[on?'removeClass':'addClass'](publish,'disabled_button');}}
90
94
  function fbjs_dom(obj,appid){this.__instance=fbjs_dom.len;try{obj.fbjs_instance=fbjs_dom.len;}catch(e){}
91
95
  fbjs_dom[fbjs_dom.len]={instance:this,obj:obj,events:{},appid:appid}
92
96
  fbjs_dom.len++;}
93
- fbjs_dom.len=0;fbjs_dom.attr_setters={'href':'setHref','id':'setId','dir':'setDir','checked':'setChecked','action':'setAction','value':'setValue','target':'setTarget','src':'setSrc','class':'setClassName','dir':'setDir','title':'setTitle','tabIndex':'setTabIndex','name':'setName','cols':'setCols','rows':'setRows','accessKey':'setAccessKey','disabled':'setDisabled','readOnly':'setReadOnly','type':'setType','selectedIndex':'setSelectedIndex','selected':'setSelected'};fbjs_dom.factory=function(obj,appid){if(!obj.tagName||(!fbjs_main.allowed_elements[obj.tagName.toLowerCase()]||has_css_class_name(obj,'__fbml_tag')||(obj.tagName=='INPUT'&&(obj.name.substring(0,2)=='fb'||obj.name=='post_form_id'))||obj.getAttribute('fb_protected')=='true')){return null;}else{return new this(obj,appid);}}
97
+ fbjs_dom.len=0;fbjs_dom.attr_setters={'href':'setHref','id':'setId','dir':'setDir','checked':'setChecked','action':'setAction','value':'setValue','target':'setTarget','src':'setSrc','class':'setClassName','dir':'setDir','title':'setTitle','tabIndex':'setTabIndex','name':'setName','cols':'setCols','rows':'setRows','accessKey':'setAccessKey','disabled':'setDisabled','readOnly':'setReadOnly','type':'setType','selectedIndex':'setSelectedIndex','selected':'setSelected'};fbjs_dom.factory=function(obj,appid){if(!obj.tagName||((!fbjs_main.allowed_elements[obj.tagName.toLowerCase()]&&!fbjs_main.allowed_editable[obj.tagName.toLowerCase()])||has_css_class_name(obj,'__fbml_tag')||(obj.tagName=='INPUT'&&(obj.name.substring(0,2)=='fb'||obj.name=='post_form_id'))||obj.getAttribute('fb_protected')=='true')){return null;}else{return new this(obj,appid);}}
94
98
  fbjs_dom.get_data=function(handle){if(handle.__instance instanceof Object){return null;}else{var data=fbjs_dom[handle.__instance];return data.instance==handle?data:null;}}
95
99
  fbjs_dom.get_obj=function(handle){if(handle instanceof fbjs_fbml_dom){return fbjs_fbml_dom.get_obj(handle);}else{if(typeof handle.__instance=='number'){var data=fbjs_dom[handle.__instance];if(data&&data.instance==handle){return data.obj;}else{throw('This DOM node is no longer valid.');}}else{throw('This DOM node is no longer valid.');}}}
96
100
  fbjs_dom.render=function(handle){if(handle instanceof fbjs_fbml_dom){fbjs_fbml_dom.render(handle);}}
@@ -218,13 +222,19 @@ return events;}
218
222
  fbjs_dom.prototype.purgeEventListeners=function(type){type=type.toLowerCase();var data=fbjs_dom.get_data(this);var obj=data.obj;if(data.events[type]){for(var i=0,il=data.events[type].length;i<il;i++){if(obj.removeEventListener){obj.removeEventListener(type,data.events[type][i].handler,false);}else if(obj.detachEvent){obj.detachEvent('on'+type,data.events[type][i].handler);}}}
219
223
  if(obj['on'+type]){obj['on'+type]=null;}
220
224
  return this;}
225
+ fbjs_dom.prototype.callSWF=function(method){var obj=fbjs_dom.get_data(this).obj;var args=new Array(arguments.length-1);for(var i=1;i<arguments.length;i++){args[i-1]=arguments[i];}
226
+ if(ua.ie()){var id=0;for(var i=0;i<obj.childNodes.length;i++){if(obj.childNodes[i].name=="fbjs"){id=obj.childNodes[i].getAttribute("value");}}
227
+ var fbjsBridge=window["so_swf_fbjs"];}else{var id=obj.getAttribute("fbjs");var fbjsBridge=document["so_swf_fbjs"];}
228
+ return fbjsBridge.callFlash('_'+id,method,args);}
221
229
  function fbjs_fbml_dom(type,appid){var data=fbjs_private.get(this);data.type=type;data.appid=appid;}
222
230
  fbjs_fbml_dom.get_obj=function(instance){var data=fbjs_private.get(instance);if(!data.obj){data.obj=document.createElement('div');data.obj.className='__fbml_tag';}
223
231
  return data.obj;}
224
232
  fbjs_fbml_dom.render=function(instance){var data=fbjs_private.get(instance);if(data.rendered){return;}
225
- data.id='swf'+parseInt(Math.random()*999999);switch(data.type){case'fb:swf':var flash_obj=new SWFObject(data.swf_src,data.id,data.width,data.height,'5.0.0',data.bg_color?data.bg_color:'000000');var flash_params={loop:true,quality:true,scale:true,align:true,salign:true};for(i in flash_params){if(data[i]){flash_obj.addParam(i,data[i]);}}
233
+ if(!data.id){data.id='swf'+parseInt(Math.random()*999999);}
234
+ switch(data.type){case'fb:swf':var flash_obj=new SWFObject(data.swf_src,data.id,data.width,data.height,'5.0.0',data.bg_color?data.bg_color:'000000');var flash_params={loop:true,quality:true,scale:true,align:true,salign:true};for(i in flash_params){if(data[i]){flash_obj.addParam(i,data[i]);}}
226
235
  flash_obj.addParam('wmode','transparent');flash_obj.addParam('allowScriptAccess','never');if(data.flash_vars){for(var i in data.flash_vars){flash_obj.addVariable(i,data.flash_vars[i]);}}
227
236
  var sandbox=fbjs_sandbox.instances['a'+data.appid];if(sandbox.validation_vars){for(var i in sandbox.validation_vars){flash_obj.addVariable(i,sandbox.validation_vars[i]);}}
237
+ if(ge('fbjs_bridge_id')){var local_connection=$('fbjs_bridge_id').value;flash_obj.addVariable('fb_local_connection','_'+local_connection);var fbjs_conn='_'+'swf'+parseInt(Math.random()*999999);flash_obj.addVariable('fb_fbjs_connection',fbjs_conn);flash_obj.addParam('fbjs',fbjs_conn);}
228
238
  if(data.wait_for_click){var img=document.createElement('img');img.src=data.img_src;if(data.width){img.width=data.width;}
229
239
  if(data.height){img.height=data.height;}
230
240
  if(data.img_style){fbjs_dom.set_style(img,data.img_style);}
@@ -232,6 +242,7 @@ if(data.img_class){img.className=data.img_class;}
232
242
  var anchor=document.createElement('a');anchor.href='#';anchor.onclick=function(){flash_obj.write(data.obj);return false;}
233
243
  anchor.appendChild(img);data.obj.appendChild(anchor);}else{flash_obj.write(data.obj);}
234
244
  break;}}
245
+ fbjs_fbml_dom.prototype.setId=function(id){var data=fbjs_private.get(this);data.id=['app',data.appid,'_',id].join('');return this;}
235
246
  fbjs_fbml_dom.prototype.setSWFSrc=function(swf){var data=fbjs_private.get(this);swf=fbjs_sandbox.safe_string(swf);if(fbjs_dom.href_regex.test(swf)){data.swf_src=swf;}else{fbjs_console.error(swf+' is not a valid swf');}}
236
247
  fbjs_fbml_dom.prototype.setImgSrc=function(img){var data=fbjs_private.get(this);img=fbjs_sandbox.safe_string(img);if(fbjs_dom.href_regex.test(img)){data.img_src=img;}else{fbjs_console.error(img+' is not a valid src');}
237
248
  return this;}
@@ -290,18 +301,14 @@ fbjs_console.prototype.group=function(){if(typeof console!='undefined'&&console.
290
301
  fbjs_console.prototype.dirxml=function(obj){if(typeof console!='undefined'&&console.dirxml){if(obj.get_obj){console.dirxml(obj.get_obj(obj));}else{console.dirxml(obj);}}}
291
302
  function fbjs_ajax(appid){var proto=function(){}
292
303
  for(var i in fbjs_ajax.prototype){proto.prototype[i]=fbjs_ajax.prototype[i];}
293
- var priv=fbjs_private.get(proto.prototype.__private={});priv.appid=appid;priv.sandbox=fbjs_sandbox.instances['a'+appid];proto.JSON=fbjs_ajax.JSON;proto.FBML=fbjs_ajax.FBML;proto.RAW=fbjs_ajax.RAW;return proto;}
294
- fbjs_ajax.proxy_url='/fbml/fbjs_ajax_proxy.php';fbjs_ajax.RAW=0;fbjs_ajax.JSON=1;fbjs_ajax.FBML=2;fbjs_ajax.STATUS_WAITING_FOR_USER=1;fbjs_ajax.STATUS_WAITING_FOR_SERVER=2;fbjs_ajax.STATUS_IDLE=0;fbjs_ajax.prototype.responseType=0;fbjs_ajax.prototype.useLocalProxy=false;fbjs_ajax.prototype.requireLogin=false;fbjs_ajax.prototype.status=fbjs_ajax.STATUS_IDLE;fbjs_ajax.tokencount=0;fbjs_ajax.tokens=new Object();fbjs_ajax.new_xml_http=function(){try{return new XMLHttpRequest();}catch(e){try{return new ActiveXObject('Msxml2.XMLHTTP');}catch(e){try{return new ActiveXObject('Microsoft.XMLHTTP');}catch(e){return null;}}}}
295
- fbjs_ajax.get_transport=function(instance,force_new){var data=fbjs_private.get(instance);if(data.xml&&!force_new){return data.xml;}else{data.xml=fbjs_ajax.new_xml_http();data.xml.onreadystatechange=fbjs_ajax.onreadystatechange.bind([instance,data.xml]);return data.xml;}}
296
- fbjs_ajax.prototype.abort=function(){var xml=fbjs_ajax.get_transport(this,true);if(xml.abort){xml.abort();}
297
- fbjs_private.get(this).inflight=false;};fbjs_ajax.flash_success=function(res,t){fbjs_ajax.tokens[t].success(res);};fbjs_ajax.flash_fail=function(t){fbjs_ajax.tokens[t].fail();};fbjs_ajax.prototype.post=function(url,query){var priv=fbjs_private.get(this.__private);var appid=priv.appid;var post_form_id=ge('post_form_id');if(!priv.sandbox.data.loggedin&&this.requireLogin){this.status=fbjs_ajax.STATUS_WAITING_FOR_USER;FBML.requireLogin(appid,function(){this.status=fbjs_ajax.STATUS_READY;priv.sandbox.data.loggedin=true;this.post(url,query);}.bind(this),function(){if(this.onerror){this.onerror();}}.bind(this));return;}
298
- if(this.useLocalProxy&&window.localProxy.callUrl&&this.responseType!=fbjs_ajax.FBML){this.status=fbjs_ajax.STATUS_WAITING_FOR_SERVER;fbjs_ajax.tokencount++;fbjs_ajax.tokens[fbjs_ajax.tokencount]={"success":function(e){this.status=fbjs_ajax.STATUS_READY;this.ondone(e);}.bind(this),"fail":function(e){this.status=fbjs_ajax.STATUS_READY;if(this.onerror()){this.onerror();}}.bind(this)};var usejson=(this.responseType==fbjs_ajax.JSON);var callUrl=localProxy.callUrl(url+'?query='+query,usejson,"fbjs_ajax.flash_success","fbjs_ajax.flash_fail",fbjs_ajax.tokencount);if(!callUrl&&this.onerror){this.onerror();}
299
- return;}else{var xml=fbjs_ajax.get_transport(this,true);if(xml&&post_form_id){this.status=fbjs_ajax.STATUS_WAITING_FOR_SERVER;xml.open('POST',fbjs_ajax.proxy_url,true);xml.setRequestHeader('Content-Type','application/x-www-form-urlencoded');xml.send(URI.implodeQuery({url:url,query:query,post_form_id:post_form_id.value,type:this.responseType,require_login:this.requireLogin,fb_mockajax_context:fbjs_sandbox.instances['a'+appid].contextd,fb_mockajax_context_hash:fbjs_sandbox.instances['a'+appid].context,appid:appid}));fbjs_private.get(this).inflight=true;}else if(this.onerror){this.onerror();}else{fbjs_console.error('There was an uncaught Ajax error. Please attach on onerror handler to properly handle failures.');}}}
304
+ var priv=fbjs_private.get(proto.prototype.__private={});priv.appid=appid;priv.sandbox=fbjs_sandbox.instances['a'+appid];priv.request=null;proto.JSON=fbjs_ajax.JSON;proto.FBML=fbjs_ajax.FBML;proto.RAW=fbjs_ajax.RAW;return proto;}
305
+ fbjs_ajax.proxy_url='/fbml/fbjs_ajax_proxy.php';fbjs_ajax.RAW=0;fbjs_ajax.JSON=1;fbjs_ajax.FBML=2;fbjs_ajax.STATUS_WAITING_FOR_USER=1;fbjs_ajax.STATUS_WAITING_FOR_SERVER=2;fbjs_ajax.STATUS_IDLE=0;fbjs_ajax.prototype.responseType=0;fbjs_ajax.prototype.useLocalProxy=false;fbjs_ajax.prototype.requireLogin=false;fbjs_ajax.prototype.status=fbjs_ajax.STATUS_IDLE;fbjs_ajax.tokencount=0;fbjs_ajax.tokens=new Object();fbjs_ajax.flash_success=function(res,t){fbjs_ajax.tokens[t].success(res);};fbjs_ajax.flash_fail=function(t){fbjs_ajax.tokens[t].fail();};fbjs_ajax.prototype.post=function(url,query){var priv=fbjs_private.get(this.__private);var appid=priv.appid;var post_form_id=ge('post_form_id');if(!priv.sandbox.data.loggedin&&this.requireLogin){this.status=fbjs_ajax.STATUS_WAITING_FOR_USER;FBML.requireLogin(appid,function(){this.status=fbjs_ajax.STATUS_READY;priv.sandbox.data.loggedin=true;this.post(url,query);}.bind(this),fbjs_ajax.errorHandler.bind(this));return;}
306
+ if(this.useLocalProxy&&window.localProxy.callUrl&&this.responseType!=fbjs_ajax.FBML){fbjs_ajax.tokencount++;fbjs_ajax.tokens[fbjs_ajax.tokencount]={"success":function(e){this.status=fbjs_ajax.STATUS_READY;this.ondone(e);}.bind(this),"fail":fbjs_ajax.errorHandler.bind(this)};var usejson=(this.responseType==fbjs_ajax.JSON);var callUrl=localProxy.callUrl(url+'?query='+query,usejson,"fbjs_ajax.flash_success","fbjs_ajax.flash_fail",fbjs_ajax.tokencount);if(!callUrl){(fbjs_ajax.errorHandler.bind(this))();}}else{var data={url:url,query:query,type:this.responseType,require_login:this.requireLogin,fb_mockajax_context:fbjs_sandbox.instances['a'+appid].contextd,fb_mockajax_context_hash:fbjs_sandbox.instances['a'+appid].context,appid:appid};this.status=fbjs_ajax.STATUS_WAITING_FOR_SERVER;priv.request=new AsyncRequest();priv.request.setURI(fbjs_ajax.proxy_url).setData(data).setHandler(fbjs_ajax.doneHandler.bind(this)).setErrorHandler(fbjs_ajax.errorHandler.bind(this)).send();}}
307
+ fbjs_ajax.prototype.abort=function(){var priv=fbjs_private.get(this.__private);if(priv.request){priv.request.setHandler(bagofholding).setErrorHandler(bagofholding);}
308
+ this.status=fbjs_ajax.STATUS_READY;};fbjs_ajax.doneHandler=function(response){this.status=fbjs_ajax.STATUS_READY;var payload=response.getPayload();var data=payload.data;switch(payload.type){case fbjs_ajax.RAW:this.ondone(data);break;case fbjs_ajax.JSON:fbjs_ajax.make_fbjs_recursive(data);this.ondone(data);break;case fbjs_ajax.FBML:this.ondone(new fbjs_fbml_string(data));break;}}
309
+ fbjs_ajax.errorHandler=function(){this.status=fbjs_ajax.STATUS_READY;if(this.onerror){this.onerror();}else{fbjs_console.error('There was an uncaught Ajax error. Please attach on onerror handler to properly handle failures.');}}
300
310
  fbjs_ajax.make_fbjs_recursive=function(obj){for(var i in obj){if(i.substring(0,5)=='fbml_'){obj[i]=new fbjs_fbml_string(obj[i]);}else if(typeof obj[i]=='object'){fbjs_ajax.make_fbjs_recursive(obj[i]);}}}
301
- fbjs_ajax.onreadystatechange=function(){var xml=this[1];try{if(xml.readyState==4){var text=xml.responseText;this[0].status=fbjs_ajax.STATUS_READY;if(xml.status>=200&&xml.status<300&&text.length){var priv_data=fbjs_private.get(this[0]);if(priv_data.inflight){priv_data.inflight=false;}else{return;}
302
- try{eval('var response = '+(text.substring(0,8)=='for(;;);'?text.substring(8):text));}catch(e){Util.error('FBJS AJAX eval failed! Response: '+text);var response={error:true};}
303
- if(response.error!==undefined){throw'foo';}else if(this[0].ondone){try{switch(response.type){case fbjs_ajax.RAW:this[0].ondone(response.data);break;case fbjs_ajax.JSON:fbjs_ajax.make_fbjs_recursive(response.data);this[0].ondone(response.data);break;case fbjs_ajax.FBML:this[0].ondone(new fbjs_fbml_string(response.data));break;}}catch(ignored){}}}else{throw'foo';}}}catch(ignored){if(this[0].onerror){this[0].onerror();}else{fbjs_console.error('There was an uncaught Ajax error. Please attach on onerror handler to properly handle failures.');}}}
304
- function fbjs_dialog(appid){var proto=function(type){var priv=fbjs_private.get(this);switch(type){case fbjs_dialog.DIALOG_CONTEXTUAL:priv.dialog=new contextual_dialog('app_content_'+appid);break;case fbjs_dialog.DIALOG_POP:default:priv.dialog=new pop_dialog('app_content_'+appid);break;}
311
+ function fbjs_dialog(appid){var proto=function(type){var priv=fbjs_private.get(this);switch(type){case fbjs_dialog.DIALOG_CONTEXTUAL:priv.dialog=new contextual_dialog('app_content_'+appid);priv.dialog.is_stackable=true;break;case fbjs_dialog.DIALOG_POP:default:priv.dialog=new pop_dialog('app_content_'+appid);priv.dialog.is_stackable=true;break;}
305
312
  priv.type=type;priv.ready=false;}
306
313
  for(var i in fbjs_dialog.prototype){proto.prototype[i]=fbjs_dialog.prototype[i];}
307
314
  proto.DIALOG_POP=fbjs_dialog.DIALOG_POP;proto.DIALOG_CONTEXTUAL=fbjs_dialog.DIALOG_CONTEXTUAL;return proto;}
@@ -332,6 +339,21 @@ fbjs_animation.prototype.show=function(){fbjs_private.get(this).animation.show()
332
339
  fbjs_animation.prototype.hide=function(){fbjs_private.get(this).animation.hide();return this;}
333
340
  fbjs_animation.prototype.ease=function(callback){fbjs_private.get(this).animation.ease(callback);return this;}
334
341
  fbjs_animation.prototype.go=function(){fbjs_private.get(this).animation.go();return this;}
342
+ function fbjs_livemessage(appid){var proto=function(event_name,callback_fn){if(!event_name){throw('Parameter "event_name" must be non-empty.');}
343
+ var priv=fbjs_private.get(this);priv.appid=appid;priv.event_name=event_name;priv.send_success_handler=null;priv.send_error_handler=null;if(window.livemessage_dispatcher){livemessage_dispatcher.registerHandler(appid,event_name,callback_fn);}else{if(!window.pendingLiveMessageCallbackRegistrations){window.pendingLiveMessageCallbackRegistrations=[];}
344
+ window.pendingLiveMessageCallbackRegistrations.push({'app_id':appid,'event_name':event_name,'callback_fn':callback_fn});}}
345
+ for(var i in fbjs_livemessage.prototype){proto.prototype[i]=fbjs_livemessage.prototype[i];}
346
+ return proto;}
347
+ fbjs_livemessage.prototype.send=function(recipient,message){if(!recipient){throw('Parameter "recipient" must be non-empty.');}
348
+ var priv=fbjs_private.get(this);new AsyncRequest().setURI('/fbml/ajax/livemessage_send.php').setData({app_id:priv.appid,recipient:recipient,event_name:priv.event_name,message:message}).setMethod('POST').setHandler(function(response){payload=response.getPayload();if(payload.error_code){var error_handler=priv.send_error_handler;if(error_handler){error_handler(payload.error_code,payload.error_msg,recipient,message);}}else{var success_handler=priv.send_success_handler;if(success_handler){success_handler(recipient,message);}}}).setErrorHandler(function(response){var error_handler=priv.send_error_handler;if(error_handler){error_handler(response.getError(),response.getErrorSummary(),recipient,message);}}).send();}
349
+ fbjs_livemessage.prototype.setSendSuccessHandler=function(callback_fn){var priv=fbjs_private.get(this);priv.send_success_handler=callback_fn;return this;}
350
+ fbjs_livemessage.prototype.setSendErrorHandler=function(callback_fn){var priv=fbjs_private.get(this);priv.send_error_handler=callback_fn;return this;}
351
+ fbjs_livemessage.prototype.setShutdownHandler=function(callback_fn){var appid=fbjs_private.get(this).appid;if(window.livemessage_dispatcher){livemessage_dispatcher.registerShutdownHandler(appid,callback_fn);}else{if(!window.pendingLiveMessageShutdownRegistrations){window.pendingLiveMessageShutdownRegistrations=[];}
352
+ window.pendingLiveMessageShutdownRegistrations.push({'app_id':appid,'callback_fn':callback_fn});}
353
+ return this;}
354
+ fbjs_livemessage.prototype.setRestartHandler=function(callback_fn){var appid=fbjs_private.get(this).appid;if(window.livemessage_dispatcher){livemessage_dispatcher.registerRestartHandler(appid,callback_fn);}else{if(!window.pendingLiveMessageRestartRegistrations){window.pendingLiveMessageRestartRegistrations=[];}
355
+ window.pendingLiveMessageRestartRegistrations.push({'app_id':appid,'callback_fn':callback_fn});}
356
+ return this;}
335
357
  function fbjs_fbml_string(html){fbjs_private.get(this).htmlstring=html;}
336
358
  fbjs_fbml_string.get=function(html){if(html instanceof fbjs_fbml_string){return fbjs_private.get(html).htmlstring;}else{return htmlspecialchars(fbjs_sandbox.safe_string(html));}}
337
359
  fbjs_private=new Object();fbjs_private.len=0;fbjs_private.get=function(instance){if(typeof instance!='object'){return null;}
@@ -343,4 +365,5 @@ else{var parser=new DOMParser();var doc=parser.parseFromString(text,"text/xml");
343
365
  var x=doc.documentElement;return this.processElement(x);};fbjs_fbml_sanitize.prototype.processElement=function(node){if(node.nodeType==3){return new fbjs_dom(document.createTextNode(node.nodeValue),this.appid);}else if(node.nodeType!=1){return null;}
344
366
  var domElement=this.main.createElement(node.nodeName);if(!domElement)return null;for(var x=0;x<node.attributes.length;x++){var attr=node.attributes[x];var aname=attr.nodeName;if(aname=='style'){var elems=attr.nodeValue.split(";");for(var i=0;i<elems.length;i++){if(elems[i]!=''){var props=elems[i].split(":");domElement.setStyle(props[0],props[1].replace(/^\s+|\s+$/g,''));}}}else{setter=fbjs_dom.attr_setters[aname];if(domElement[setter]){domElement[setter](attr.nodeValue);}}}
345
367
  for(var x=0;x<node.childNodes.length;x++){var child=node.childNodes[x];var ch=this.processElement(child);if(ch){domElement.appendChild(ch);}}
346
- return domElement;};
368
+ return domElement;};
369
+ if(window.Bootloader){Bootloader.done(1);}