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,71 @@
1
+ /* Source: Global Cache */
2
+ /* Location: js/lib/util/quickling.js r110180 */
3
+ /* Machine: 10.16.139.102 */
4
+ /* Generated: July 16th 2008 1:55:16 PM PDT */
5
+ /* HTTP Host: static.ak.fbcdn.net */
6
+
7
+
8
+ var HistoryManager={history:null,current:0,fragment:null,nextframe:function(frame){if(frame!==undefined){HistoryManager.iframeQueue.push(frame);}else{HistoryManager.iframeQueue.splice(0,1);HistoryManager.iframeTimeout=null;}
9
+ if(HistoryManager.iframeQueue.length&&!HistoryManager.iframeTimeout){var src=HistoryManager.iframeQueue[0];HistoryManager.iframeTimeout=setTimeout(function(){HistoryManager.iframe.src='/common/history_manager.html?|'+src+'#'+src;},100,false);}},init:function(){if(HistoryManager._initialized){return HistoryManager;}
10
+ var uri=URI();var cur_fragment=uri.getFragment()||'';copy_properties(HistoryManager,{_initialized:true,fragment:cur_fragment,orig_fragment:cur_fragment,history:[uri],callbacks:[],lastChanged:new Date().getTime(),canonical:URI('#'),fragmentTimeout:null,user:0,iframeTimeout:null,iframeQueue:[],enabled:true,debug:bagofholding});if(ua.safari()<500||ua.firefox()<2){HistoryManager.enabled=false;return HistoryManager;}
11
+ if(ua.ie()){HistoryManager.iframe=document.createElement('iframe');copy_properties(HistoryManager.iframe.style,{width:'1px',height:'1px',left:'-10000px',top:'-10000px',position:'absolute'});onloadRegister(function(){HistoryManager.iframe.onload=function(){setInterval(HistoryManager.checkURI,42,false);};HistoryManager.iframe.src='/common/history_manager.html';document.body.insertBefore(HistoryManager.iframe,document.body.firstChild);});}else{setInterval(HistoryManager.checkURI,42,false);if(ua.safari()){HistoryManager.historyOrigin=window.history.length;}}
12
+ return HistoryManager;},registerURIHandler:function(callback){HistoryManager.callbacks.push(callback);return HistoryManager;},setCanonicalLocation:function(loc){HistoryManager.canonical=URI(loc);return HistoryManager;},notify:function(uri){if(uri==HistoryManager.orig_fragment){uri=HistoryManager.canonical.getFragment();}
13
+ for(var ii=0;ii<HistoryManager.callbacks.length;ii++){try{if(HistoryManager.callbacks[ii](uri)){return true;}}catch(ex){Util.error('Uncaught exception in HistoryManager URI handler callback: %x',ex);}}
14
+ return false;},checkURI:function(){if(new Date().getTime()-HistoryManager.lastChanged<400){return;}
15
+ if(HistoryManager.iframeQueue.length){return;}
16
+ if(ua.safari()&&window.history.length==200){if(!HistoryManager.warned){HistoryManager.warned=true;Util.error('Your history length is over 200 and you are in Safari; things will '+'start behaving oddly now. This is a known bug.');}
17
+ return;}
18
+ var frag=URI().getFragment();if(ua.safari()){var hpos=window.history.length-HistoryManager.historyOrigin;if(hpos<HistoryManager.history.length&&hpos>=0){frag=HistoryManager.history[hpos].getFragment();}}else if(ua.ie()){frag=URI(HistoryManager.iframe.contentWindow.document.location.href).getFragment();}
19
+ if(frag!=HistoryManager.fragment){HistoryManager.debug([frag,' vs ',HistoryManager.fragment,'whl: ',window.history.length,'ho: ',HistoryManager.historyOrigin,'hpos: ',hpos,'QHL: ',HistoryManager.history.length].join(' '));for(var ii=HistoryManager.history.length-1;ii>=0;--ii){if(HistoryManager.history[ii].getFragment()==frag){break;}}
20
+ ++HistoryManager.user;if(ii>=0){HistoryManager.go(ii-HistoryManager.current);}else{HistoryManager.go('#'+frag);}
21
+ --HistoryManager.user;}
22
+ delete frag;},go:function(href,now,replace){HistoryManager.debug('go: '+href);if(now===undefined){now=true;}
23
+ if(!HistoryManager.enabled){if(!now){return false;}}
24
+ if(typeof(href)=='number'){if(!href){return false;}
25
+ var dst=href+HistoryManager.current;var loc=Math.max(0,Math.min(HistoryManager.history.length-1,dst));HistoryManager.current=loc;dst=HistoryManager.history[loc].getFragment()||HistoryManager.orig_fragment;HistoryManager.fragment=dst;HistoryManager.lastChanged=new Date().getTime();if(ua.ie()){if(HistoryManager.fragmentTimeout){clearTimeout(HistoryManager.fragmentTimeout);}
26
+ HistoryManager.fragmentTimeout=setTimeout(function(){window.location.hash='#'+dst;},750,false);if(!HistoryManager.user){if(replace){Util.error('HistoryManager.go does not support replace mode in IE now.');return false;}
27
+ HistoryManager.nextframe(dst);}}else if(!HistoryManager.user){if(replace){window.location.replace(URI().setFragment(dst).toString());}else{window.location.hash='#'+dst;}}
28
+ if(now){HistoryManager.notify(dst);}
29
+ return false;}
30
+ href=URI(href);if(href.getDomain()==URI().getDomain()){href=URI('#'+href.getUnqualifiedURI());}
31
+ var cur=HistoryManager.history[HistoryManager.current].getFragment();var tgt=href.getFragment();if(tgt==cur||(cur==HistoryManager.orig_fragment&&tgt==HistoryManager.canonical.getFragment())){if(now){HistoryManager.notify(tgt);}
32
+ return false;}
33
+ if(replace){HistoryManager.current--;}
34
+ var wipe=(HistoryManager.history.length-HistoryManager.current)-1;HistoryManager.history.splice(HistoryManager.current+1,wipe);HistoryManager.history.push(URI(href));return HistoryManager.go(1,now,replace);},getCurrentFragment:function(){var cur_fragment=URI.getRequestURI().getFragment();return cur_fragment==HistoryManager.orig_fragment?HistoryManager.canonical.getFragment():cur_fragment;}};onloadRegister(HistoryManager.init);var Quickling={_scroll_positions:{},_transition_handlers:[],isActive:function(){return Quickling._is_active||false;},init:function(version){var canonical_uri=URI.getRequestURI().getUnqualifiedURI();copy_properties(Quickling,{_is_active:true,_version:version,_current_uri:canonical_uri,_most_recent_uri:canonical_uri});HistoryManager.init().setCanonicalLocation('#'+canonical_uri).registerURIHandler(Quickling._loadPage);LinkController.registerFallbackHandler(Quickling._rewriteHref,LinkController.ALL_TARGETS|LinkController.ALL_KEY_MODIFIERS);LinkController.registerFallbackHandler(Quickling._onlinkclick);FormController.registerFallbackHandler(Quickling._onformsubmit);window.onscroll=chain(window.onscroll,function(){var frag=HistoryManager.getCurrentFragment();if(Quickling._current_uri==frag){Quickling._scroll_positions[frag]=Vector2.getScrollPosition();}});Quickling._instrumentTimeoutFunc('setInterval');Quickling._instrumentTimeoutFunc('setTimeout');Quickling.registerTransitionHandler(Quickling._defaultTransitionHandler);},registerTransitionHandler:function(transition_handler){if(!Quickling._transition_handlers.contains(transition_handler)){Quickling._transition_handlers.push(transition_handler);}},_isPageActive:function(uri){if(uri=='#'){return false;}
35
+ var uri=new URI(uri);if(uri.getDomain()&&uri.getDomain()!=URI().getDomain()){return false;}
36
+ var regex=Quickling._isPageActive.regex;if(!regex){regex=Quickling._isPageActive.regex=new RegExp(env_get('quickling_inactive_page_regex'));}
37
+ if(regex.test(uri.getPath())){return false;}
38
+ return true;},_rewriteHref:function(link){var old_href=link.getAttribute('href');var new_href=_computeRelativeURI(Quickling._most_recent_uri.getQualifiedURI(),old_href).toString();if(old_href!=new_href){link.setAttribute('href',new_href);}},_onlinkclick:function(link){_BusyUIManager.lookBusy(link);Quickling.go(link.getAttribute('href'));return false;},go:function(uri,replace){if((replace&&ua.ie())||!Quickling._isPageActive(uri)){if(replace&&!ua.ie()){window.location.replace(uri.toString());}else{window.location.href=uri.toString();}
39
+ return;}
40
+ var qualified_uri=new URI(uri).getQualifiedURI();var unqualified_uri=qualified_uri.getUnqualifiedURI();delete Quickling._scroll_positions[unqualified_uri];_BusyUIManager.lookBusy();Quickling._loadPage(unqualified_uri);HistoryManager.go(qualified_uri.toString(),false,replace);},_loadPage:function(uri){var uri_s=uri.toString();uri=new URI(uri_s);if(uri_s.charAt(0)!='/'){return false;}
41
+ if(uri.getFragment()&&are_equal(URI(uri).setFragment(null),URI(Quickling._current_uri).setFragment(null))){Quickling._current_uri=Quickling._most_recent_uri=uri;Quickling._adjustScrollForCurrentURI();_BusyUIManager.stopLookingBusy();return true;}
42
+ Quickling._load_count=(Quickling._load_count||0)+1;if(Quickling._isTimeToRefresh()){Quickling._redirect(uri_s);return false;}
43
+ var scroll_position=Quickling._scroll_positions[Quickling._current_uri];Quickling._current_uri=null;if(scroll_position){Vector2.scrollTo(scroll_position);}
44
+ var handle_transition=Quickling._handleTransition.bind(null,uri);var beforeleave_warning=_runHooks('onbeforeleavehooks');if(beforeleave_warning){_BusyUIManager.stopLookingBusy();Quickling._warnBeforeLeaving(beforeleave_warning,handle_transition);}else{handle_transition();}
45
+ return true;},_handleTransition:function(uri){window.onbeforeleavehooks=undefined;_BusyUIManager.lookBusy();for(var i=Quickling._transition_handlers.length-1;i>=0;--i){if(Quickling._transition_handlers[i](uri)===true){return;}else{Quickling._transition_handlers.splice(i,1);}}
46
+ Util.error('No transition handler returned true. This should be '
47
+ +'impossible, since _defaultTransitionHandler always returns true, '
48
+ +'and it gets registered in Quickling.init.');},_defaultTransitionHandler:function(uri){uri=new URI(uri).addQueryData({quickling:true});new AsyncRequest().setURI(uri.getPath()).setData(uri.getQueryData()).setHandler(Quickling._onpagedata).setFinallyHandler(Quickling.transitionComplete).setMethod('GET').setReadOnly(true).setOption('useIframeTransport',true).send();return true;},_onpagedata:function(response){var payload=response.getPayload();Quickling._current_uri=Quickling._most_recent_uri=new URI(HistoryManager.getCurrentFragment());if(payload.redirect){Quickling.go(payload.redirect,true);return;}
49
+ document.title=payload.title||'Facebook';if(payload.version!=Quickling._version){Quickling._redirect(payload.uri);return;}
50
+ _runHooks('onleavehooks');var content_div=ge('content');if(content_div){content_div.style.height='1234px';content_div.innerHTML='';}
51
+ Vector2.scrollTo(new Vector2(0,0,'document'));var body_class=payload.body_class||'';document.body.className=body_class
52
+ +(CSS.hasClass(document.body,'chat_body')?' chat_body':'');var page_body_element=ge('page_body');if(page_body_element){page_body_element.className=body_class+' pagebody';}
53
+ for(var div_id in payload.content){var div=ge(div_id);if(div){set_inner_html(div,payload.content[div_id],true);}else{Util.warn('Unknown content div id: '+div_id);}}
54
+ if(content_div&&content_div.style.height=='1234px'){content_div.style.height='';}
55
+ Quickling._adjustScrollForCurrentURI.defer();},transitionComplete:function(){_BusyUIManager.stopLookingBusy();},_warnBeforeLeaving:function(warning_text,continuation){new Dialog().setTitle(tx('ql:leave-warn-title')).setSummary(tx('ql:leave-warn-body',{ok:tx('sh:ok-button'),cancel:tx('sh:cancel-button')})).setBody(htmlize(warning_text)).setButtons(Dialog.OK_AND_CANCEL).setHandler(continuation).setModal().show();},_isTimeToRefresh:function(){return Quickling._load_count>=10;},_redirect:function(uri){uri=new URI(uri).removeQueryData('quickling').toString();if(window.location.href==uri){window.location.reload();}else{window.location.replace(uri);}},_instrumentTimeoutFunc:function(original_name){window[original_name+'_native']=(function(orig){var _native=function _native(func,delay){return orig(func,delay);};return _native;})(window[original_name]);window[original_name]=function _setTimeout(func,delay,clear_on_quickling_event){var timeout_id=window[original_name+'_native'](func,delay);if(delay>0){onunloadRegister(function(){clearInterval(timeout_id);},clear_on_quickling_event);}
56
+ return timeout_id;};},_adjustScrollForCurrentURI:function(){var current_uri=Quickling._current_uri;var anchor=Quickling._getAnchor(current_uri.getFragment());if(anchor){var anchor_position=Vector2.getElementPosition(anchor);anchor_position.x=0;Vector2.scrollTo(anchor_position);return;}
57
+ var scroll_position=Quickling._scroll_positions[current_uri];if(scroll_position){Vector2.scrollTo(scroll_position);}},_getAnchor:function(name){if(!name){return null;}
58
+ var anchors=$$('a');for(var i=0,l=anchors.length;i<l;++i){if(anchors[i].name==name){return anchors[i];}}
59
+ return ge(name);},_onformsubmit:function(form){var old_action=new URI(form.getAttribute('action')||'');var new_action=_computeRelativeURI(Quickling._most_recent_uri,old_action);form.setAttribute('action',new_action.toString());var method=form.method?form.method.toUpperCase():'GET';if(method=='GET'){Quickling.go(new_action.addQueryData(serialize_form(form)));return false;}else{}}};function _computeRelativeURI(original,delta){var ret=new URI(),delta_=delta;original=new URI(original);delta=new URI(delta);if(!delta.isFacebookURI()){return delta_;}
60
+ var source=original;var components=['Protocol','Domain','Port','Path','QueryData','Fragment'];components.forEach(function(component){var combine_paths=component=='Path'&&source===original;if(combine_paths){ret.setPath(_computeRelativePath(original.getPath(),delta.getPath()));}
61
+ if(!is_empty(delta['get'+component]())){source=delta;}
62
+ if(!combine_paths){ret['set'+component](source['get'+component]());}});return ret;}
63
+ function _computeRelativePath(original,delta){if(!delta){return original;}
64
+ if(delta.charAt(0)=='/'){return delta;}
65
+ var parts=original.split('/').slice(0,-1);if(parts[0]!==''){Util.warn('Original path is not absolute.');}
66
+ delta.split('/').forEach(function(part){if(part=='.'){}else if(part=='..'){if(parts.length>1){parts=parts.slice(0,-1);}}else{parts.push(part);}});return parts.join('/');}
67
+ var _BusyUIManager={_looking_busy:false,_original_cursors:[],lookBusy:function(link_element){if(link_element){_BusyUIManager._giveProgressCursor(link_element);}
68
+ if(_BusyUIManager._looking_busy){return;}
69
+ _BusyUIManager._looking_busy=true;_BusyUIManager._giveProgressCursor(document.body);},stopLookingBusy:function(){if(!_BusyUIManager._looking_busy){return;}
70
+ _BusyUIManager._looking_busy=false;while(_BusyUIManager._original_cursors.length){var element_and_cursor=_BusyUIManager._original_cursors.pop();var element=element_and_cursor[0];var cursor=element_and_cursor[1];if(element.style){element.style.cursor=cursor||'';}}},_giveProgressCursor:function(element){_BusyUIManager._original_cursors.push([element,element.style.cursor]);element.style.cursor='progress';}};
71
+ if(window.Bootloader){Bootloader.done(1);}
@@ -0,0 +1,20 @@
1
+ /* Source: Backing Store */
2
+ /* Location: js/scrollarea.js r109048 */
3
+ /* Machine: 10.16.139.106 */
4
+ /* Generated: July 15th 2008 12:34:51 AM PDT */
5
+ /* HTTP Host: static.ak.fbcdn.net */
6
+
7
+
8
+ function ScrollArea(scroll_div_id,content_div_id,down_arrow_id,up_arrow_id){if(this===window){Util.error('You\'re doing this wrong. This is a class and should be '+'with new ScrollArea(...);');return;}
9
+ copy_properties(this,{scroll_div:$(scroll_div_id),content_div:$(content_div_id),down_arrow:$(down_arrow_id),up_arrow:$(up_arrow_id)});copy_properties(this,{auto_move_interval:null,allow_page_scroll:true,max_height:false});this.down_arrow.onmouseout=bind(this,'_endAutoMove');this.down_arrow.onmouseover=bind(this,'_startAutoMove',ScrollArea.HOVER_INTERVAL,ScrollArea.DOWN);this.up_arrow.onmouseout=bind(this,'_endAutoMove');this.up_arrow.onmouseover=bind(this,'_startAutoMove',ScrollArea.HOVER_INTERVAL,ScrollArea.UP);this.scroll_div.onmouseover=bind(this,'_disallowPageScroll');this.scroll_div.onmouseout=bind(this,'_allowPageScroll');ScrollWheel.addHandler(this._pageScrollResponse.bind(this));ScrollArea.instances.push(this);this.update();}
10
+ copy_properties(ScrollArea,{HOVER_INTERVAL:50,MOUSE_WHEEL_MULTIPLE:-8,UP:1,DOWN:2,instances:[],getInnerInstance:function(element){for(var i=0;i<ScrollArea.instances.length;i++){if(is_descendent(ScrollArea.instances[i].scroll_div,element)){return ScrollArea.instances[i];}}
11
+ return false;}});copy_properties(ScrollArea.prototype,{_startAutoMove:function(interval_time,direction){var move_fn=bind(this,this.moveBy,(direction==ScrollArea.UP)?-11:11);this.auto_move_interval=setInterval(move_fn,interval_time);},_endAutoMove:function(){clearInterval(this.auto_move_interval);},_disallowPageScroll:function(){this.allow_page_scroll=false;},_allowPageScroll:function(){this.allow_page_scroll=true;},_pageScrollResponse:function(delta){if(!this.allow_page_scroll){var round_fn=delta>0?Math.ceil:Math.floor
12
+ this.moveBy(ScrollArea.MOUSE_WHEEL_MULTIPLE*round_fn(delta));}
13
+ return this.allow_page_scroll;},_scrollTop:function(){return(-1*parseInt(this.content_div.style.marginTop))||0;},_setScrollTop:function(new_top){new_top=this._enforceRange(new_top);this.content_div.style.marginTop=-new_top+'px';},_isAtTop:function(){return this._scrollTop()==0;},_isAtBottom:function(){var scrollTop=this._scrollTop();return scrollTop==this._enforceRange(scrollTop+1);},_enforceRange:function(test_val){var new_top;var hidden_content_height=Vector2.getElementDimensions(this.content_div).y-
14
+ Vector2.getElementDimensions(this.scroll_div).y;if(test_val<0){new_top=0;}else if(test_val>hidden_content_height){new_top=hidden_content_height;}else{new_top=test_val;}
15
+ return new_top;},setMaxHeight:function(new_max){this.max_height=new_max;},moveBy:function(distance){var current_top=this._scrollTop();var new_top=current_top+distance;this._setScrollTop(new_top);this.update();},moveTo:function(destination){this._setScrollTop(destination);this.update();},update:function(){var content_size=Vector2.getElementDimensions(this.content_div);var scroll_size=Vector2.getElementDimensions(this.scroll_div);if(content_size.y){if(content_size.y>=this.max_height&&scroll_size.y!=this.max_height){this.scroll_div.style.height=this.max_height+'px';}else if(content_size.y<this.max_height&&scroll_size.y!=content_size.y){this.scroll_div.style.height=content_size.y+'px';}}
16
+ this._isAtTop()?CSS.addClass(this.scroll_div,'at_top'):CSS.removeClass(this.scroll_div,'at_top');this._isAtBottom()?CSS.addClass(this.scroll_div,'at_bottom'):CSS.removeClass(this.scroll_div,'at_bottom');}});ScrollWheel=function(){var _listenerAttached=false;var _callbacks=[];var _handle=function(event){var delta=0;event=event_get(event);if(event.wheelDelta){delta=event.wheelDelta/120;if(ua.opera()){delta=-delta;}}else if(event.detail){delta=-event.detail/3;}
17
+ if(delta){for(var i=0;i<_callbacks.length;i++){if(!_callbacks[i](delta)){event_kill(event);return;}}}};return{addHandler:function(callback){if(!_listenerAttached){if(window.addEventListener){window.addEventListener('DOMMouseScroll',_handle,false);}
18
+ window.onmousewheel=document.onmousewheel=_handle;_listenerAttached=true;}
19
+ _callbacks.push(callback);}};}();
20
+ if(window.Bootloader){Bootloader.done(1);}
@@ -0,0 +1,17 @@
1
+ /* Source: Global Cache */
2
+ /* Location: js/lib/ui/typeaheadpro/sources/search_friend_source.js r109250 */
3
+ /* Machine: 10.16.140.102 */
4
+ /* Generated: July 15th 2008 12:34:54 AM PDT */
5
+ /* HTTP Host: static.ak.fbcdn.net */
6
+
7
+
8
+ function search_friend_source(get_param){this.parent.construct(this,get_param);new AsyncRequest().setMethod('GET').setReadOnly(true).setURI('/ajax/typeahead_search.php?'+get_param).setErrorHandler(function(){}).setTransportErrorHandler(function(){}).setHandler(function(response){var payload=response.getPayload();this.values=payload.entries;this.build_index.bind(this).defer();var now_minus_5_min=((new Date()).getTime()/1000)-60*5;if(payload.gen_time<now_minus_5_min){new AsyncRequest().setMethod('GET').setReadOnly(true).setURI('/ajax/recent_pics.php').setData({ref_time:payload.gen_time}).setErrorHandler(function(){}).setTransportErrorHandler(function(){}).setHandler(function(response){this.updated_pics=response.getPayload().updated_pics;}.bind(this)).send();}}.bind(this)).send();}
9
+ search_friend_source.extend(static_source);search_friend_source.prototype.text_noinput=search_friend_source.prototype.text_placeholder=search_friend_source.prototype.text_nomatch='';search_friend_source.prototype.cache_results=true;search_friend_source.prototype.updated_pics={};search_friend_source.url_templates={};search_friend_source.loaded_images={};search_friend_source.image_load=function(image_elm,insertion_time,user_id){var current_time=(new Date()).getTime();search_friend_source.loaded_images[user_id]=true;if((current_time-insertion_time)<100){CSS.setOpacity(image_elm,1);}else{animation(image_elm).to('opacity',1).duration(100).go();}};search_friend_source.prototype.gen_html=function(friend,highlight){var icon_url=friend.it;if(!icon_url&&friend.ty&&search_friend_source.url_templates[friend.ty]){icon_url=search_friend_source.url_templates[friend.ty].icon;}
10
+ if(this.updated_pics[friend.i]){icon_url=this.updated_pics[friend.i];}
11
+ switch(friend.ty){case'u':if(!icon_url){return['<div>',typeahead_source.highlight_found(friend.t,highlight),'</div><div><small>',friend.n,'</small></div>'].join('');}else{if(!search_friend_source.loaded_images[friend.i]){var insertion_time=(new Date()).getTime();var attrs=sprintf('onload="search_friend_source.image_load(this, %d, %d);" style="opacity:0;filter:alpha(opacity=0);"',insertion_time,friend.i);}
12
+ return['<img ',attrs,' alt="" src="',icon_url,'"/>','<div class="with_pic"><span>',typeahead_source.highlight_found(friend.t,highlight),'</span><small>',friend.n,'</small></div>'].join('');}
13
+ break;case'search':return['<div class="app"><div class="icon" style="background-image: url(',icon_url,')">&nbsp;</div>','<span>',friend.t,'</span></div>'].join('');break;default:return['<div class="app"><div class="icon" style="background-image: url(',icon_url,')">&nbsp;</div>','<span>',typeahead_source.highlight_found(friend.t,highlight),'</span></div>'].join('');}};search_friend_source.prototype.search_value=function(text){var results;var enough_tokens=false;var tokens=typeahead_source.tokenize(text);for(var i=0;i<tokens.length;i++){if(tokens[i]!=''){enough_tokens=true;break;}}
14
+ if(enough_tokens){this.owner.less_than_n_chars=false;results=this.parent.search_value(text);}else if(this.is_ready){this.owner.less_than_n_chars=true;results=[];}
15
+ return results;};search_friend_source.prototype._sort_text_obj=function(a,b){if(a.o!=b.o){return a.o-b.o;}else if(a.t==b.t){return 0;}
16
+ return a.t<b.t?-1:1};window.ADVANCED_SEARCH_TYPEAHEAD=false;
17
+ if(window.Bootloader){Bootloader.done(1);}
@@ -0,0 +1,20 @@
1
+ /* Source: Global Cache */
2
+ /* Location: js/lib/ui/typeaheadpro/search_typeaheadpro.js r109415 */
3
+ /* Machine: 10.16.140.107 */
4
+ /* Generated: July 15th 2008 12:34:53 AM PDT */
5
+ /* HTTP Host: static.ak.fbcdn.net */
6
+
7
+
8
+ function search_typeaheadpro(obj,source,properties){this.should_use_absolute=true;this.parent.construct(this,obj,source,properties);this._onunload_registered=false;}
9
+ search_typeaheadpro.extend(typeaheadpro);search_typeaheadpro.prototype.auto_select=false;search_typeaheadpro.prototype.less_than_n_chars=false;search_typeaheadpro.prototype.dirty_results=function(){this.parent.dirty_results();if(!this._onunload_registered){this._onunload_registered=true;onunloadRegister(bind(this,function(){this.clear();this.blur();search_friend_source.hasSubmitted=false;search_friend_source.already_logged=false;this._onunload_registered=false;}));}}
10
+ search_typeaheadpro.prototype.show=function(){if(!this.less_than_n_chars){CSS.addClass(this.dropdown,'typeahead_search');this.parent.show();this.dropdown.style.width='161px';}else{this.hide();}}
11
+ search_typeaheadpro.prototype.hide=function(){this.parent.hide();}
12
+ search_typeaheadpro.prototype.found_suggestions=function(suggestions,text,fake_data){var auto_select=ADVANCED_SEARCH_TYPEAHEAD&&suggestions&&suggestions.length==1;if(auto_select){suggestions.push({t:text,i:text.trim().replace(/ /g,'+'),ty:'search'});}
13
+ this.parent.found_suggestions(suggestions,text,fake_data);if(this.suggestion_count>0){add_css_class_name(this.list.firstChild.firstChild,'blue_top_border');remove_css_class_name(this.list,'no_border_list');add_css_class_name(this.list.lastChild.lastChild,'blue_bottom_border');}else{add_css_class_name(this.list,'no_border_list');}
14
+ if(auto_select){this.set_suggestion(0);}}
15
+ function search_typeahead_onselect(friend){if(friend&&!search_friend_source.hasSubmitted){search_friend_source.hasSubmitted=true;}else{return false;}
16
+ var url=friend.u;if(!url){var type_info=search_friend_source.url_templates[friend.ty];if(type_info){url=sprintf(type_info.default_url,friend.i);}}
17
+ if(!url){return undefined;}else if(url.indexOf('?')!=-1){goURI(url+'&ref=ts');}else{goURI(url+'?ref=ts');}
18
+ bind(this,this.blur).defer();return false;};function search_typeahead_onsubmit(friend){return!search_friend_source.hasSubmitted;}
19
+ window.ADVANCED_SEARCH_TYPEAHEAD=false;
20
+ if(window.Bootloader){Bootloader.done(1);}
@@ -0,0 +1,30 @@
1
+ /* Source: Global Cache */
2
+ /* Location: js/lib/ui/sort.js r110180 */
3
+ /* Machine: 10.16.139.103 */
4
+ /* Generated: July 16th 2008 1:55:17 PM PDT */
5
+ /* HTTP Host: static.ak.fbcdn.net */
6
+
7
+
8
+ function SortableGroup(){this.namespace='sortable'+(++SortableGroup.instanceCount);this.draggables={};this.droppables={};this.sortables={};this.linkedGroups=[];this.linkedGroups.onlinkjump=bagofholding;this.rootNode=null;}
9
+ SortableGroup.instanceCount=0;SortableGroup.prototype.gutter=15;SortableGroup.prototype.addSortable=function(key,obj,handle){if(this.rootNode===null){this.rootNode=obj.parentNode;if(!this.linkedGroups.placeholder){this.linkedGroups.placeholder=this.placeholder=$N(obj.tagName,{className:'dragPlaceholder',style:{padding:'0px'}});}else{this.placeholder=this.linkedGroups.placeholder;}}else if(this.rootNode!=obj.parentNode){throw new Error('All sortables of a collection must share the same parentNode');}
10
+ if(key in this.draggables){throw new Error('All sortables must have a unique key');}
11
+ this.sortables[key]=obj;this.draggables[key]=(new Draggable(obj)).setNamespace(this.namespace).setGutter(this.gutter).setUseAbsolute(true).setGrabHandler(this.grabHandler.bind(this,key)).setDropHandler(this.dropHandler.bind(this,key)).setKey('key',key);if(handle){this.draggables[key].addHandle(handle);}
12
+ this.droppables[key]=(new Droppable(obj)).setNamespace(this.namespace).setDragOverHandler(this._dragOverHandlerShim.bind(null,this,key));return this;}
13
+ SortableGroup.prototype.link=function(sortgroup){sortgroup.linkedGroups=this.linkedGroups;if(!this.linkedGroups.length){this.linkedGroups.push(this);}
14
+ this.linkedGroups.push(sortgroup);for(var i=0;i<this.linkedGroups.length;i++){if(this.linkedGroups[i].namespace!=this.namespace){this.linkedGroups[i].namespace=this.namespace;for(var j in this.linkedGroups[i].droppables){this.linkedGroups[i].droppables[j].setNamespace(this.namespace);this.linkedGroups[i].draggables[j].setNamespace(this.namespace);}}}
15
+ return this;}
16
+ SortableGroup.prototype.getOrder=function(){if(!this.rootNode){return[];}
17
+ var ret=[],childNodes=this.rootNode.childNodes;for(var i=0;i<childNodes.length;i++){for(var k in this.sortables){if(this.sortables[k]==childNodes[i]){ret.push(k);break;}}}
18
+ return ret;}
19
+ SortableGroup.prototype.migrateLinkedSortable=function(key){for(var i=0;i<this.linkedGroups.length;i++){if(key in this.linkedGroups[i].draggables){this.sortables[key]=this.linkedGroups[i].sortables[key];this.draggables[key]=this.linkedGroups[i].draggables[key];this.draggables[key].setGrabHandler(this.grabHandler.bind(this,key)).setDropHandler(this.dropHandler.bind(this,key));this.droppables[key]=this.linkedGroups[i].droppables[key];this.droppables[key].setDragOverHandler(this._dragOverHandlerShim.bind(null,this,key));delete this.linkedGroups[i].sortables[key];delete this.linkedGroups[i].draggables[key];delete this.linkedGroups[i].droppables[key];return true;}}
20
+ return false;}
21
+ SortableGroup.prototype.setLinkJumpHandler=function(func){this.linkedGroups.onlinkjump=func;}
22
+ SortableGroup.prototype.onorderchange=bagofholding;SortableGroup.prototype.setOrderChangeHandler=function(func){this.onorderchange=func;}
23
+ SortableGroup.prototype.grabHandler=function(draggableKey){this.placeholder.className=this.sortables[draggableKey].className;CSS.addClass(this.sortables[draggableKey],'drag');Vector2.getElementDimensions(this.sortables[draggableKey]).setElementDimensions(this.placeholder);this.rootNode.insertBefore(this.placeholder,this.sortables[draggableKey]);}
24
+ SortableGroup.prototype.dropHandler=function(draggableKey){CSS.removeClass(this.sortables[draggableKey],'drag');this.draggables[draggableKey].resetPosition();this.rootNode.insertBefore(this.sortables[draggableKey],this.placeholder);this.rootNode.removeChild(this.placeholder);this.onorderchange();}
25
+ SortableGroup.prototype._dragOverHandlerShim=function(that,droppableKey,draggable){that.dragOverHandler(droppableKey,draggable.getKey('key'));};SortableGroup.prototype.dragOverHandler=function(droppableKey,draggableKey){var jumped=false;if(!(draggableKey in this.draggables)){if(!this.migrateLinkedSortable(draggableKey)){throw new Error('Draggable dropped onto a foreign droppable!');}
26
+ jumped=true;}
27
+ var before=true,childNodes=this.rootNode.childNodes,droppable=this.sortables[droppableKey],draggable=this.sortables[draggableKey];for(var i=0;i<childNodes.length;i++){if(childNodes[i]==droppable){break;}else if(childNodes[i]==draggable){before=false;break;}}
28
+ if(before){this.rootNode.insertBefore(draggable,droppable);}else{this.rootNode.insertBefore(droppable,draggable);}
29
+ this.rootNode.insertBefore(this.placeholder,draggable);if(jumped){this.linkedGroups.onlinkjump.call(this,draggableKey);}}
30
+ if(window.Bootloader){Bootloader.done(1);}
@@ -0,0 +1,25 @@
1
+ /* Source: Local Cache */
2
+ /* Location: rsrc:102180:/html/js/lib/ui/typeaheadpro/sources/static_source.js */
3
+ /* Machine: 10.16.140.110 */
4
+ /* Generated: July 9th 2008 3:45:11 PM PDT */
5
+ /* HTTP Host: static.ak.fbcdn.net */
6
+
7
+
8
+ function static_source(){this.values=null;this.index=null;this.index_includes_hints=false;this.exclude_ids={};this.parent.construct(this);}
9
+ static_source.extend(typeahead_source);static_source.prototype.enumerable=true;static_source.prototype.build_index=function(){var index=[];var values=this.values;var gen_id=values.length&&typeof values[0].i=='undefined';for(var i=0,il=values.length;i<il;i++){var tokens=typeahead_source.tokenize(values[i].t);for(var j=0,jl=tokens.length;j<jl;j++){index.push({t:tokens[j],o:values[i]});}
10
+ if(this.index_includes_hints&&values[i].s){var tokens=typeahead_source.tokenize(values[i].s);for(var j=0,jl=tokens.length;j<jl;j++){index.push({t:tokens[j],o:values[i]});}}
11
+ if(gen_id){values[i].i=i;}}
12
+ index.sort(function(a,b){return(a.t==b.t)?0:(a.t<b.t?-1:1)});this.index=index;this.ready();}
13
+ static_source.prototype._sort_text_obj=function(a,b){if(a.e&&!b.e){return 1;}
14
+ if(!a.e&&b.e){return-1;}
15
+ if(a.t==b.t){return 0;}
16
+ return a.t<b.t?-1:1}
17
+ static_source.prototype.search_value=function(text){if(!this.is_ready){return;}
18
+ var results;if(text==''){results=this.values;}else{var ttext=typeahead_source.tokenize(text).sort(typeahead_source._sort);var index=this.index;var lo=0;var hi=this.index.length-1;var p=Math.floor(hi/2);while(lo<=hi){if(index[p].t>=ttext[0]){hi=p-1;}else{lo=p+1;}
19
+ p=Math.floor(lo+((hi-lo)/2));}
20
+ var results=[];var stale_keys={};var check_ignore=typeof _ignoreList!='undefined';for(var i=lo;i<index.length&&index[i].t.lastIndexOf(ttext[0],0)!=-1;i++){var elem_id=index[i].o.flid?index[i].o.flid:index[i].o.i;if(typeof stale_keys[elem_id]!='undefined'){continue;}else{stale_keys[elem_id]=true;}
21
+ if((!check_ignore||!_ignoreList[elem_id])&&!this.exclude_ids[elem_id]&&(ttext.length==1||typeahead_source.check_match(ttext,index[i].o.t))){results.push(index[i].o);}}}
22
+ results.sort(this._sort_text_obj);if(this.owner.max_results){results=results.slice(0,this.owner.max_results);}
23
+ return results;}
24
+ static_source.prototype.set_exclude_ids=function(ids){this.exclude_ids=ids;}
25
+ if(window.Bootloader){Bootloader.done(1);}
@@ -0,0 +1,439 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
+
4
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" id="facebook">
5
+
6
+ <head>
7
+ <title>Facebook | PackRat Design</title>
8
+ <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
9
+
10
+ <script type="text/javascript" src="firstscript.js"></script>
11
+
12
+ <meta id="robots" name="robots" content="noodp,noydir" />
13
+ <meta id="description" name="description" content="Facebook is a social utility that connects people with friends and others who work, study and live around them. People use Facebook to keep up with friends, upload an unlimited number of photos, share links and videos, and learn more about the people they meet." /> <script type="text/javascript" src="http://static.ak.fbcdn.net/js_strings.php/t84465/en_US"></script>
14
+
15
+ <link type="text/css" rel="stylesheet" href="http://static.ak.fbcdn.net/rsrc.php/pkg/70/110506/css/common.css.pkg.php" />
16
+ <link type="text/css" rel="stylesheet" href="http://static.ak.fbcdn.net/rsrc.php/104778/css/dialogpro.css" />
17
+ <link type="text/css" rel="stylesheet" href="http://static.ak.fbcdn.net/rsrc.php/105208/css/editprofile.css" />
18
+ <link type="text/css" rel="stylesheet" href="http://static.ak.fbcdn.net/rsrc.php/82746/css/tour_tip.css" />
19
+ <link type="text/css" rel="stylesheet" href="http://static.ak.fbcdn.net/rsrc.php/pkg/70/110506/css/pages.css.pkg.php" />
20
+ <link type="text/css" rel="stylesheet" href="http://static.ak.fbcdn.net/rsrc.php/109426/css/canvas.css" />
21
+ <link type="text/css" rel="stylesheet" href="http://static.ak.fbcdn.net/rsrc.php/110180/css/ubersearch.css" />
22
+ <link type="text/css" rel="stylesheet" href="http://static.ak.fbcdn.net/rsrc.php/108910/css/typeaheadpro.css" />
23
+ <link type="text/css" rel="stylesheet" href="http://static.ak.fbcdn.net/rsrc.php/104972/css/friend_suggester.css" />
24
+ <link type="text/css" rel="stylesheet" href="http://static.ak.fbcdn.net/rsrc.php/pkg/70/110506/css/profile.css.pkg.php" />
25
+ <link type="text/css" rel="stylesheet" href="http://static.ak.fbcdn.net/rsrc.php/109434/css/edit_app_settings.css" />
26
+
27
+ <script type="text/javascript" src="http://static.ak.fbcdn.net/rsrc.php/pkg/70/110506/js/common.js.pkg.php"></script>
28
+ <script type="text/javascript" src="http://static.ak.fbcdn.net/rsrc.php/102585/js/lib/event/link_controller.js"></script>
29
+ <script type="text/javascript" src="http://static.ak.fbcdn.net/rsrc.php/110506/js/flyout_menu.js"></script>
30
+ <script type="text/javascript" src="http://static.ak.fbcdn.net/rsrc.php/105208/js/canvas.js"></script>
31
+ <script type="text/javascript" src="http://static.ak.fbcdn.net/rsrc.php/109470/js/api/confirmation.js"></script>
32
+ <script type="text/javascript" src="http://static.ak.fbcdn.net/rsrc.php/110369/js/feedform.js"></script>
33
+ <script type="text/javascript" src="http://static.ak.fbcdn.net/rsrc.php/110180/js/lib/util/quickling.js"></script>
34
+ <script type="text/javascript" src="http://static.ak.fbcdn.net/rsrc.php/109415/js/attachments.js"></script>
35
+ <script type="text/javascript" src="http://static.ak.fbcdn.net/rsrc.php/109427/js/fbml.js"></script>
36
+ <script type="text/javascript" src="http://static.ak.fbcdn.net/rsrc.php/104972/js/friend_suggester.js"></script>
37
+ <script type="text/javascript" src="http://static.ak.fbcdn.net/rsrc.php/102180/js/lib/ui/typeaheadpro/typeahead_source.js"></script>
38
+ <script type="text/javascript" src="http://static.ak.fbcdn.net/rsrc.php/108775/js/lib/ui/drag.js"></script>
39
+ <script type="text/javascript" src="http://static.ak.fbcdn.net/rsrc.php/110180/js/lib/ui/sort.js"></script>
40
+ <script type="text/javascript" src="http://static.ak.fbcdn.net/rsrc.php/110506/js/edit_app_settings.js"></script>
41
+ <script type="text/javascript" src="http://static.ak.fbcdn.net/rsrc.php/110506/js/page/editapps.js"></script>
42
+ <script type="text/javascript" src="http://static.ak.fbcdn.net/rsrc.php/109048/js/scrollarea.js"></script>
43
+ <script type="text/javascript" src="http://static.ak.fbcdn.net/rsrc.php/109415/js/lib/ui/typeaheadpro/search_typeaheadpro.js"></script>
44
+ <script type="text/javascript" src="http://static.ak.fbcdn.net/rsrc.php/102180/js/lib/ui/typeaheadpro/sources/static_source.js"></script>
45
+ <script type="text/javascript" src="http://static.ak.fbcdn.net/rsrc.php/109250/js/lib/ui/typeaheadpro/sources/search_friend_source.js"></script>
46
+ <script type="text/javascript" src="http://static.ak.fbcdn.net/rsrc.php/103413/js/lib/net/livemessage.js"></script>
47
+ <!--[if lte IE 6]><style type="text/css" media="screen">/* <![CDATA[ */ @import url(http://static.ak.fbcdn.net/css/ie6.css?0:110180); /* ]]> */</style><![endif]-->
48
+ <!--[if gte IE 7]><style type="text/css" media="screen">/* <![CDATA[ */ @import url(http://static.ak.fbcdn.net/css/ie7.css?0:109245); /* ]]> */</style><![endif]-->
49
+ <link rel="stylesheet" href="http://static.ak.fbcdn.net/rsrc.php/99258/css/webkit.css" type="text/css"/>
50
+ <link rel="search" type="application/opensearchdescription+xml" href="http://static.ak.fbcdn.net/opensearch_desc.xml?0:72379" title="Facebook" />
51
+ <link rel="shortcut icon" href="http://static.ak.fbcdn.net/favicon.ico" />
52
+ </head>
53
+
54
+ <body class="fbframe frame_wide widebook chat_body">
55
+ <iframe id="channel_iframe"></iframe>
56
+ <object id="so_sound_player" class="so_sound_player" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="1" height="1"><param name="allowscriptaccess" value ="always"/><param name="movie" value ="/swf/SoundPlayer.swf"/></object>
57
+ <div id="sound_player_holder"></div>
58
+ <div id="presence" class="buddy_list_hidden translations_nub">
59
+ <div id="presence_preload" style="position:fixed;top:-50000px;left:-50000px;">
60
+ <div class="preload_img alert_bw"></div>
61
+ <div class="preload_img alert"></div>
62
+ <div class="preload_img indicator"></div>
63
+ <div class="preload_img blank"></div>
64
+ <img src="http://static.ak.fbcdn.net/images/indicator.gif?0:19905" alt="" class="preload_img" />
65
+ <img src="http://static.ak.fbcdn.net/images/emote/emote.gif?0:93872" alt="" class="preload_img" />
66
+ </div>
67
+ <div id="presence_ui" class="clearfix">
68
+ <div id="presence_bar">
69
+ <div class="presence_section show_popped_in">
70
+ <div id="chat_next_tab" class="presence_bar_button" onmouseover="add_css_class_name(this, 'hover')" onmouseout="remove_css_class_name(this, 'hover')" onclick="chatTabSlider.next();" style="display:none;">
71
+ <span id="next_count"></span>
72
+ <div class="slider_num_missed" id="next_num_missed" style="display:none;"></div>
73
+ </div>
74
+ </div>
75
+ <div id="chat" class="show_popped_in">
76
+ <div id="chat_tab_bar"></div>
77
+ </div>
78
+ <div class="presence_section show_popped_in">
79
+ <div id="chat_previous_tab" class="presence_bar_button" onmouseover="add_css_class_name(this, 'hover')" onmouseout="remove_css_class_name(this, 'hover')" onclick="chatTabSlider.prev();" style="display:none;">
80
+ <span id="prev_count"></span>
81
+ <div class="slider_num_missed" id="prev_num_missed" style="display:none;"></div>
82
+ </div>
83
+ </div>
84
+ <div id="presence_bar_buttons">
85
+ <div class="presence_section show_popped_in">
86
+ <div id="buddy_list_tab" class="presence_bar_button buddy_list" onmouseover="presence.tabHandleMouseOver(this)" onmouseout="presence.tabHandleMouseOut(this)" onclick="buddyList.toggleTab();return false;">
87
+ <span id="buddy_count">Online Friends <span class="buddy_count_num">(<strong>0</strong>)</span></span>
88
+ </div>
89
+ <div id="buddy_list" class="presence_menu_opts_wrapper" onmouseover="presence.tabContentMouseOver(this)" onmouseout="presence.tabContentMouseOut(this)" style="display:none;">
90
+ <div class="presence_menu_opts">
91
+ <div class="presence_menu_opts_header">
92
+ <div class="corner"></div>
93
+ </div>
94
+ <h2 onclick="buddyList.closeTab()"><span>Online Friends</span></h2>
95
+ <div id="buddy_list_typeahead"><input type="text" class="inputtext" autocomplete="off" placeholder="Search Online Friends" id="buddy_list_typeahead_input" name="buddy_list_typeahead_input" value="" /></div>
96
+ <div class="presence_menu_content_wrapper"><div id="buddy_list_content"></div></div>
97
+ <div id="buddy_list_error" class="buddy_error"></div>
98
+ </div>
99
+ </div>
100
+ </div>
101
+ <div class="presence_section">
102
+ <div id="presence_translations_tab" class="presence_bar_button presence_notifications" onmouseover="presence.tabHandleMouseOver(this)" onmouseout="presence.tabHandleMouseOut(this)" onclick="presence.toggleTab('presence_translations', 'presence_translations_tab', 'presence_translations_content');return true;">
103
+ <div class="titletip"><strong>Translations</strong></div>
104
+ </div>
105
+ <div id="presence_translations" class="presence_menu_opts_wrapper" onmouseover="presence.tabContentMouseOver(this)" onmouseout="presence.tabContentMouseOut(this)" style="display:none">
106
+ <div class="presence_menu_opts">
107
+ <div class="presence_menu_opts_header"><div class="corner"></div></div>
108
+ <h2 onclick="presence.closeTab()" class="clearfix"><span>Translations</span></h2>
109
+ <div class="presence_menu_content_wrapper">
110
+ <div id="presence_translations_content">
111
+ <div class="xselect"></div>
112
+ </div>
113
+ </div>
114
+ </div>
115
+ </div>
116
+ </div>
117
+ <div class="presence_section">
118
+ <div id="presence_notifications_tab" >
119
+ <span id="presence_notifications_count"></span>
120
+ <div class="titletip"><strong>Notifications</strong></div>
121
+ </div>
122
+ <div id="presence_notifications">
123
+ <div class="presence_menu_opts">
124
+ <div class="presence_menu_opts_header"><div class="corner"></div></div>
125
+ <h2 onclick="presence.closeTab()" class="clearfix"><span>Notifications</span></h2>
126
+ <div class="presence_menu_content_wrapper">
127
+ <a href="http://www.new.facebook.com/notifications.php" class="presence_notifications_see_all">See All</a>
128
+ <div id="presence_notifications_content">
129
+ <div id="presence_no_notifications" style="display:none" class="no_notifications">No new notifications.</div>
130
+ <div class="notification clearfix notif_2431403991" onmouseover="CSS.addClass(this, 'hover');" onmouseout="CSS.removeClass(this, 'hover');">
131
+ <div class="icon"><img src="http://photos-991.ll.facebook.com/photos-ll-sctm/v43/135/2431403991/app_2_2431403991_4156.gif" alt="" /></div>
132
+ <div class="notif_del" onclick="return presenceNotifications.showHideDialog(this, 2431403991)"></div>
133
+ <div class="body"><a>Raymond Lindholm</a> stole your <a href="http:
134
+ //apps.facebook.com/packrat/item/t18177f8d3d?c=steal_notification_cli
135
+ ck" onclick="(new Image()).src = &#039;/ajax/ct.php?app_id=2431403991
136
+ &amp;action_type=3&amp;post_form_id=329efed6e5716425f64a1306f7297429&amp
137
+ ;position=7&amp;&#039; + Math.random();return true">Scroll</a> and droppe
138
+ d a Pair of Water Skis in <a href="http://apps.facebook.com/packrat/?c=ste
139
+ al_notification_click" onclick="(new Image()).src = &#039;/ajax/ct.php?app_id=2431403991&
140
+ amp;action_type=3&amp;post_form_id=329efed6e5716425f64a1306f7297429&amp;position=7&amp;&#039
141
+ ; + Math.random();return true">PackRat</a>. <a href="http://apps.facebook.com/packrat/user/uf5c7b
142
+ 77b34?c=steal_notification_click" onclick="(new Image()).src = &#039;/ajax/ct.php?app_id=24314039
143
+ 91&amp;action_type=3&amp;post_form_id=329efed6e5716425f64a1306f7297429&amp;position=7&amp;&#039;
144
+ + Math.random();return true">Steal something back!</a> <span class="time">12 hours ago</span></div>
145
+ </div>
146
+ <div class="notification clearfix notif_2356318349" onmouseover="CSS.addClass(this, 'hover');" onmouseout="CSS.removeClass(this, 'hover');">
147
+ <div class="icon"><img src="http://static.ak.fbcdn.net/images/icons/friend.gif?0:41046" alt="" /></div>
148
+ <div class="notif_del" onclick="return presenceNotifications.showHideDialog(this, 2356318349)"></div>
149
+ <div class="body"><a href="http://www.new.facebook.com/profile.php?id=505154310" >Brooke Vertin</a> accepted your friend re
150
+ quest. <span class="time">19 hours ago</span></div>
151
+ </div>
152
+ <div class="notification clearfix notif_2356318349" onmouseover="CSS.addClass(this, 'hover');" onmouseout="CSS.removeClass(this, 'hover');">
153
+ <div class="icon"><img src="http://static.ak.fbcdn.net/images/icons/friend.gif?0:41046" alt="" /></div>
154
+ <div class="notif_del" onclick="return presenceNotifications.showHideDialog(this, 2356318349)"></div>
155
+ <div class="body"><a href="http://www.new.facebook.com/profile.php?id=654147956" >Erica Lam</a> accepted your friend request. S
156
+ ince she's new to Facebook, <a onclick="FriendSuggesterDialog.show(654147956); return false;">suggest people
157
+ she knows</a>. <span class="time">on Monday</span>
158
+ </div>
159
+ </div>
160
+ <div class="notification clearfix notif_2431403991" onmouseover="CSS.addClass(this, 'hover');" onmouseout="CSS.removeClass(this, 'hover');">
161
+ <div class="icon"><img src="http://photos-991.ll.facebook.com/photos-ll-sctm/v43/135/2431403991/app_2_2431403991_4156.gif" alt="" /></div>
162
+ <div class="notif_del" onclick="return presenceNotifications.showHideDialog(this, 2431403991)"></div>
163
+ <div class="body"><a href="http://www.new.facebook.com/profile.php?id=500016821" onclick="(new Image()).src = &#039;/ajax/ct.ph
164
+ p?app_id=2431403991&amp;action_type=3&amp;post_form_id=329efed6e5716425f64a1306f7297429&amp;position=7&amp;&#039; + Ma
165
+ th.random();return true;">Hiten Shah</a> stole your <a href="http://apps.facebook.com/packrat/item/t258b8c5ea3?c=steal_notification_click" on
166
+ click="(new Image()).src = &#039;/ajax/ct.php?app_id=2431403991&amp;action_type=3&amp;post_form_id=329efed6e5716425f64a1306f7297429&amp;po
167
+ sition=7&amp;&#039; + Math.random();return true">Busted Board Game</a> and dropped a Bell Pepper in <a href="http://apps.facebook.com/packra
168
+ t/?c=steal_notification_click" onclick="(new Image()).src = &#039;/ajax/ct.php?app_id=2431403991&amp;action_type=3&amp;post_form_id=329efed6e57
169
+ 16425f64a1306f7297429&amp;position=7&amp;&#039; + Math.random();return true">PackRat</a>. <a href="http://apps.facebook.com/packrat/use
170
+ r/uf8096ff883?c=steal_notification_click" onclick="(new Image()).src = &#039;/ajax/ct.php?app_id=2431403991&amp;action_type=3&amp;post_
171
+ form_id=329efed6e5716425f64a1306f7297429&amp;position=7&amp;&#039; + Math.random();return true">Steal something back!</a> <span class="ti
172
+ me">on Monday</span>
173
+ </div>
174
+ </div>
175
+ <div class="notification clearfix notif_2431403991" onmouseover="CSS.addClass(this, 'hover');" onmouseout="CSS.removeClass(this, 'hover');">
176
+ <div class="icon"><img src="http://photos-991.ll.facebook.com/photos-ll-sctm/v43/135/2431403991/app_2_2431403991_4156.gif" alt="" /></div>
177
+ <div class="notif_del" onclick="return presenceNotifications.showHideDialog(this, 2431403991)"></div>
178
+ <div class="body"><a href="http://www.new.facebook.com/profile.php?id=715741469" onclick="(new Image()).src = &#039;/ajax/ct.php?app_id=243140
179
+ 3991&amp;action_type=3&amp;post_form_id=329efed6e5716425f64a1306f7297429&amp;position=7&amp;&#039; + Math.random();return true;">Kelly Jeanne F
180
+ owler</a> stole your <a href="http://apps.facebook.com/packrat/item/t9ce790da32?c=steal_notification_click" onclick="(new Image()).src = &#039;
181
+ /ajax/ct.php?app_id=2431403991&amp;action_type=3&amp;post_form_id=329efed6e5716425f64a1306f7297429&amp;position=7&amp;&#039; + Math.random();ret
182
+ urn true">Antique Key</a> and dropped a Two-Headed Serpent in <a href="http://apps.facebook.com/packrat/?c=steal_notification_click" onclick="(
183
+ new Image()).src = &#039;/ajax/ct.php?app_id=2431403991&amp;action_type=3&amp;post_form_id=329efed6e5716425f64a1306f7297429&amp;position=7&am
184
+ p;&#039; + Math.random();return true">PackRat</a>. <a href="http://apps.facebook.com/packrat/user/u82c20f7a71?c=steal_notification_click"
185
+ onclick="(new Image()).src = &#039;/ajax/ct.php?app_id=2431403991&amp;action_type=3&amp;post_form_id=329efed6e5716425f64a1306f7297429&amp;posit
186
+ ion=7&amp;&#039; + Math.random();return true">Steal something back!</a> <span class="time">on Monday</span></div>
187
+ </div>
188
+ </div>
189
+ </div>
190
+ </div>
191
+ </div>
192
+ </div>
193
+ <div class="presence_section show_popped_in">
194
+ <div id="chat_status_control_tab" class="presence_bar_button chat_status_control unavailable" onmouseover="presence.tabHandleMouseOver(this)" onmouseout="presence.tabHandleMouseOut(this)" onclick="presence.toggleTab('chat_status_control','chat_status_control_tab');return false;">
195
+ <img class="show_available" src="http://static.ak.fbcdn.net/images/im_online.gif?0:63264" />
196
+ <img class="show_unavailable" src="http://static.ak.fbcdn.net/images/im_offline.gif?0:63263" />
197
+ <img class="show_idle" src="http://static.ak.fbcdn.net/images/im_away.gif?0:63264" />
198
+ <div class="titletip rightmost"><strong>Chat</strong></div>
199
+ </div>
200
+ <div id="chat_status_control" class="presence_menu_opts_wrapper" onmouseover="presence.tabContentMouseOver(this)" onmouseout="presence.tabContentMouseOut(this)" style="display:none ">
201
+ <div class="presence_menu_opts">
202
+ <div class="presence_menu_opts_header">
203
+ <div class="corner"></div>
204
+ </div>
205
+ <h2 onclick="presence.closeTab()" class="availability_header"><span>Chat</span></h2>
206
+ <div class="presence_menu_header">
207
+ <div style="text-align:right">
208
+ <a onclick="presence.popout();return false;">Pop Out Chat</a>
209
+ <span class="pipe">|</span>
210
+ <a onclick="CSS.toggleClass($(&#039;chat_settings&#039;), &#039;hidden&#039;);return false;">Settings</a>
211
+ <span class="pipe">|</span>
212
+ <a href="http://www.new.facebook.com/help.php?topic=chat">Help</a>
213
+ </div>
214
+ <div id="chat_settings" class="hidden">
215
+ <div id="chat_setting_minifeed" class="chat_setting clearfix">
216
+ <div class="input_box">
217
+ <span class="show_loading"><img src="http://static.ak.fbcdn.net/images/indicator.gif?0:19905" alt="" /></span>
218
+ <span class="hide_loading"><input type="checkbox" class="inputcheckbox" checked="checked" onclick=".sendSettingChange(&#039;minifeed&#039;, this.checked);return false;" id="chat_setting_checkbox_minifeed" name="" value="1" /></span>
219
+ </div>
220
+ <label for="chat_setting_checkbox_minifeed">Show Mini-Feed Stories in Chat</label>
221
+ </div>
222
+ <div id="chat_setting_sound" class="chat_setting clearfix">
223
+ <div class="input_box">
224
+ <span class="show_loading"><img src="http://static.ak.fbcdn.net/images/indicator.gif?0:19905" alt="" /></span>
225
+ <span class="hide_loading"><input type="checkbox" class="inputcheckbox" checked="checked" onclick="statusControl.sendSettingChange(&#039;sound&#039;, this.checked);return false;" id="chat_setting_checkbox_sound" name="" value="1" /></span>
226
+ </div>
227
+ <label for="chat_setting_checkbox_sound">Play Sound for New Messages</label>
228
+ </div>
229
+ <div id="chat_setting_sticky_buddylist" class="chat_setting clearfix">
230
+ <div class="input_box">
231
+ <span class="show_loading"><img src="http://static.ak.fbcdn.net/images/indicator.gif?0:19905" alt="" /></span>
232
+ <span class="hide_loading"><input type="checkbox" class="inputcheckbox" onclick="statusControl.sendSettingChange(&#039;sticky_buddylist&#039;, this.checked);return false;" id="chat_setting_checkbox_sticky_buddylist" name="" value="1" /></span>
233
+ </div>
234
+ <label for="chat_setting_checkbox_sticky_buddylist">Keep Online Friends Open</label>
235
+ </div>
236
+ <div id="chat_setting_compact_buddylist" class="chat_setting clearfix">
237
+ <div class="input_box">
238
+ <span class="show_loading"><img src="http://static.ak.fbcdn.net/images/indicator.gif?0:19905" alt="" /></span>
239
+ <span class="hide_loading"><input type="checkbox" class="inputcheckbox" onclick="statusControl.sendSettingChange(&#039;compact_buddylist&#039;, this.checked);return false;" id="chat_setting_checkbox_compact_buddylist" name="" value="1" /></span>
240
+ </div>
241
+ <label for="chat_setting_checkbox_compact_buddylist">Show Only Names in Online Friends</label>
242
+ </div>
243
+ </div>
244
+ </div>
245
+ <div id="chat_availability_toggle" class="unavailable">
246
+ <span id="chat_availability_toggle_image">
247
+ <span class="show_loading"><img src="http://static.ak.fbcdn.net/images/indicator.gif?0:19905" alt="" /></span>
248
+ <span class="show_available hide_loading"><img src="http://static.ak.fbcdn.net/images/im_online.gif?0:63264" alt="" /></span>
249
+ <span class="show_unavailable hide_loading"><img src="http://static.ak.fbcdn.net/images/im_offline.gif?0:63263" alt="" /></span>
250
+ <span class="show_idle hide_loading"><img src="http://static.ak.fbcdn.net/images/im_away.gif?0:63264" alt="" /></span>
251
+ </span>
252
+ <div class="show_available">
253
+ <div class="availability_text">You are Online. <a href="#" onclick="statusControl.sendVisibility(false);return false;">Go Offline</a></div>
254
+ </div>
255
+ <div class="show_unavailable">
256
+ <div class="availability_text">You are Offline. <a href="#" onclick="statusControl.sendVisibility(true);return false;">Go Online</a></div>
257
+ </div>
258
+ </div>
259
+ <div class="status_updates">
260
+ <div class="profile_status clearfix">
261
+ <a href="/profile.php?id=505421674"><img src="http://profile.ak.facebook.com/v225/769/120/q505421674_8113.jpg" alt="" /></a>
262
+ <div id="chat_status_body">
263
+ <a id="chat_status_content" href="#" onclick="editStatus('chat_');return false;">
264
+ <span id="chat_su_placeholder"></span><span id="chat_su_name">Scott </span>
265
+ <span id="chat_su_text">Now? I&#039;m on the way.</span>
266
+ </a>
267
+ <span id="chat_status_meta">
268
+ <span id="chat_su_time">17 hours ago&nbsp;</span>
269
+ <a onclick="editStatus(&#039;chat_&#039;);return false;" class="su_edit" id="chat_su_edit">edit</a>
270
+ </span>
271
+ </div>
272
+ </div>
273
+ <input type="hidden" id="post_form_id" name="post_form_id" value="329efed6e5716425f64a1306f7297429" />
274
+ <div id="chat_status_editor" style="display:none;">
275
+ <div style="padding-bottom:2px;color:#666">Scott...</div>
276
+ <div class="clearfix">
277
+ <input class="inputtext" type="text" id="chat_edit_status_text" name="chat_edit_status_text" value="" maxlength="160" statusprefix="is " onfocus="status_editor.onfocus(this);" onkeypress="return statusTextKeyPress(event);" onblur="return editStatusBlur();" />
278
+ <a id="chat_edit_status_toggle" href="#" onmousedown="toggleEditStatusSelect();return false;" onclick="return false;">&nbsp;</a>
279
+ </div>
280
+ <div id="chat_edit_status_select" style="display:none;">
281
+ <a href="#" onmousedown="statusSelect(this);return false;">is at home</a>
282
+ <a href="#" onmousedown="statusSelect(this);return false;">is at work</a>
283
+ <a href="#" onmousedown="statusSelect(this);return false;">is with the family</a>
284
+ <a href="#" onmousedown="statusSelect(this);return false;">is at a party</a>
285
+ <a href="#" onmousedown="statusSelect(this);return false;">is sleeping</a>
286
+ </div>
287
+ <div style="text-align:right;padding-right:3px;">
288
+ <small>
289
+ <a href="#" onmousedown="clearStatus();return false;">clear status</a>
290
+ &nbsp;<span style="color:gray;">|</span>&nbsp;
291
+ <a href="#" onmousedown="hideEditStatus();return false">cancel</a>
292
+ </small>
293
+ </div>
294
+ </div>
295
+ </div>
296
+ </div>
297
+ </div>
298
+ </div>
299
+ <div class="show_popped_out presence_section" id="presence_popout_tab">
300
+ <div class="presence_bar_button presence_popout_button" onmouseover="add_css_class_name(this, &#039;hover&#039;)" onmouseout="remove_css_class_name(this, &#039;hover&#039;)" onclick="presence.popout()">
301
+ <div class="titletip"><strong>Pop In Chat</strong></div>
302
+ </div>
303
+ </div>
304
+ </div>
305
+ </div>
306
+ </div>
307
+ <div id="presence_error_bar" onmouseover="CSS.addClass($('presence_error_bar'), 'hover')" onmouseout="CSS.removeClass($('presence_error_bar'), 'hover')">
308
+ <div class="shutdown_alert">
309
+ <div class="shutdown_alert_img"></div>
310
+ <span id="presence_error_alert_reason"></span>
311
+ </div>
312
+ <div class="shutdown">
313
+ <div class="shutdown_img"></div>
314
+ <div class="titletip rightmost"><strong id="presence_error_reason"></strong></div>
315
+ </div>
316
+ </div>
317
+ </div>
318
+ <input type="hidden" id="post_form_id" name="post_form_id" value="329efed6e5716425f64a1306f7297429" />
319
+
320
+ <div id="fb_nonfooter">
321
+ <div id="fb_nonfooter_content">
322
+ <div id="fb_dropmenu_container">
323
+ <div id="fb_menubar" class="clearfix">
324
+ <div id="fb_menubar_logo"><a href="http://www.new.facebook.com/home.php?ref=logo" title="Go to Facebook Home"><span>&nbsp;</span></a></div>
325
+ <div id="fb_menubar_core">
326
+ <div id="fb_menu_profile" class="fb_menu">
327
+ <div class="fb_menu_title"><a href="http://www.new.facebook.com/profile.php?id=505421674">Scott Raymond</a></div>
328
+ </div>
329
+ <div id="fb_menu_friends" class="fb_menu">
330
+ <div class="fb_menu_title"><a href="http://www.new.facebook.com/friends/">Friends</a></div>
331
+ </div>
332
+ <div id="fb_menu_applications" class="fb_menu">
333
+ <div class="fb_menu_title"><a href="#">Applications</a></div>
334
+ <div id="fb_menu_applications_dropdown" class="fb_menu_dropdown hidden_elem">
335
+ <div class="fb_menu_item"><a onclick="show_edit_app_dialog(5020558873,&quot;bookmark&quot;);">Bookmark PackRat Design</a></div>
336
+ <div class="fb_menu_item"><a onclick="show_edit_app_dialog(5020558873);">Edit PackRat Design Settings</a></div>
337
+ <div class="fb_menu_item"><a href="http://www.new.facebook.com/editapps.php">See All My Applications (18)</a></div>
338
+ <div class="fb_menu_separator"></div>
339
+ <div class="fb_menu_item fb_menu_item_disabled"><span>Recently Used</span></div>
340
+ <div class="fb_menu_item"><a href="http://apps.new.facebook.com/packrat-design/"><small style="background-image:url(http://static.ak.fbcdn.net/images/app_icons/hidden.gif?0:54829);">&nbsp;</small>PackRat Design</a></div>
341
+ <div class="fb_menu_item"><a href="http://apps.new.facebook.com/causes/"><small style="background-image:url(http://photos-c.ak.facebook.com/photos-ak-sctm/v43/190/2318966938/app_4_2318966938_8425.gif);">&nbsp;</small>Causes</a></div>
342
+ <div class="fb_menu_item"><a href="http://apps.new.facebook.com/risc-game/"><small style="background-image:url(http://static.ak.fbcdn.net/images/app_icons/hidden.gif?0:54829);">&nbsp;</small>RISC</a></div>
343
+ <div class="fb_menu_item fb_menu_item_disabled"><span><small style="background-image:url(http://photos-h.ak.facebook.com/photos-ak-sctm/v43/175/10061957983/app_4_10061957983_177.gif);">&nbsp;</small>Smiley</span></div>
344
+ <div class="fb_menu_separator"></div>
345
+ <div id="id_487f6b98d2f1c5728781530_scroll" class="scroll_area_scroll">
346
+ <div id="id_487f6b98d2f1c5728781530_content" class="scroll_area_content">
347
+ <div class="fb_menu_item fb_menu_item_disabled"><span>Bookmarks</span></div>
348
+ <div class="fb_menu_item"><a href="http://apps.new.facebook.com/packrat/"><small style="background-image:url(http://photos-991.ll.facebook.com/photos-ll-sctm/v43/135/2431403991/app_4_2431403991_4382.gif);">&nbsp;</small>PackRat</a></div>
349
+ <div class="fb_menu_item"><a href="http://apps.new.facebook.com/gathering/"><small style="background-image:url(http://photos-d.ak.facebook.com/photos-ak-sctm/v43/155/2429857235/app_4_2429857235_6947.gif);">&nbsp;</small>Gathering Goodness</a></div>
350
+ <div class="fb_menu_item"><a href="http://apps.new.facebook.com/liars-dice/"><small style="background-image:url(http://photos-c.ak.facebook.com/photos-ak-sctm/v43/34/14684941690/app_4_14684941690_8331.gif);">&nbsp;</small>Liar&#039;s Dice</a></div>
351
+ <div class="fb_menu_item"><a href="http://www.new.facebook.com/developers/"><small style="background-image:url(http://photos-d.ak.facebook.com/photos-ak-sctm/v43/55/2345053339/app_4_2345053339_6541.gif);">&nbsp;</small>Developer</a></div>
352
+ <div class="fb_menu_item"><a href="http://apps.new.facebook.com/worldconquest/"><small style="background-image:url(http://photos-d.ak.facebook.com/photos-ak-sctm/v43/107/6666957467/app_4_6666957467_7695.gif);">&nbsp;</small>World Conquest</a></div>
353
+ <div class="fb_menu_item"><a href="http://apps.new.facebook.com/friendsforsale?s=sidenav"><small style="background-image:url(http://photos-b.ak.facebook.com/photos-ak-sctm/v43/97/7019261521/app_4_7019261521_4381.gif);">&nbsp;</small>Friends For Sale!</a></div>
354
+ <div class="fb_menu_item"><a href="http://apps.new.facebook.com/nations/"><small style="background-image:url(http://photos-953.ll.facebook.com/photos-ll-sctm/v43/185/7219203953/app_4_7219203953_3173.gif);">&nbsp;</small>Nations</a></div>
355
+ <div class="fb_menu_item"><a href="http://apps.new.facebook.com/set-game/"><small style="background-image:url(http://photos-d.ak.facebook.com/photos-ak-sctm/v43/39/6513139371/app_4_6513139371_2173.gif);">&nbsp;</small>Set Game</a></div>
356
+ <div class="fb_menu_item"><a href="http://www.new.facebook.com/business/dashboard/?ref=sb"><small style="background-image:url(http://photos-g.ak.facebook.com/photos-ak-sctm/v43/146/6802152230/app_4_6802152230_487.gif);">&nbsp;</small>Ads and Pages</a></div>
357
+ <div class="fb_menu_item"><a href="http://apps.new.facebook.com/freegifts/"><small style="background-image:url(http://photos-e.ak.facebook.com/photos-ak-sctm/v43/12/2415466380/app_4_2415466380_6060.gif);">&nbsp;</small>Free Gifts</a></div>
358
+ <div class="fb_menu_item"><a href="http://www.new.facebook.com/events.php?ref=sb"><small style="background-image:url(http://static.ak.fbcdn.net/images/app_icons/event.gif?0:39263);">&nbsp;</small>Events</a></div>
359
+ <div class="fb_menu_item"><a href="http://www.new.facebook.com/groups.php?ref=sb"><small style="background-image:url(http://static.ak.fbcdn.net/images/app_icons/group.gif?0:39263);">&nbsp;</small>Groups</a></div>
360
+ <div class="fb_menu_item"><a href="http://apps.new.facebook.com/causes/"><small style="background-image:url(http://photos-c.ak.facebook.com/photos-ak-sctm/v43/190/2318966938/app_4_2318966938_8425.gif);">&nbsp;</small>Causes</a></div>
361
+ <div class="fb_menu_item"><a href="http://apps.new.facebook.com/appsaholic/"><small style="background-image:url(http://photos-746.ll.facebook.com/photos-ll-sctm/v43/46/2381834746/app_4_2381834746_7445.gif);">&nbsp;</small>Appsaholic</a></div>
362
+ <div class="fb_menu_item"><a href="http://www.new.facebook.com/photos/?ref=sb"><small style="background-image:url(http://static.ak.fbcdn.net/images/app_icons/photo.gif?0:39263);">&nbsp;</small>Photos</a></div>
363
+ <div class="fb_menu_item"><a href="http://www.new.facebook.com/posted.php?ref=sb"><small style="background-image:url(http://static.ak.fbcdn.net/images/app_icons/post.gif?0:39263);">&nbsp;</small>Posted Items</a></div>
364
+ <div class="fb_menu_item"><a href="http://www.new.facebook.com/notes.php?ref=sb"><small style="background-image:url(http://static.ak.fbcdn.net/images/app_icons/note.gif?0:39263);">&nbsp;</small>Notes</a></div>
365
+ <div class="fb_menu_item"><a href="http://www.new.facebook.com/video/?ref=sb"><small style="background-image:url(http://static.ak.fbcdn.net/images/app_icons/motion.gif?0:49123);">&nbsp;</small>Video</a></div>
366
+ </div>
367
+ <a onclick="event_kill" class="arrow down_arrow" id="id_487f6b98d2f1c5728781530_down"><span>&nbsp;</span></a>
368
+ <a onclick="event_kill" class="arrow up_arrow" id="id_487f6b98d2f1c5728781530_up"><span>&nbsp;</span></a>
369
+ </div>
370
+ </div>
371
+ </div>
372
+ <div id="fb_menu_inbox" class="fb_menu">
373
+ <div class="fb_menu_title"><a href="http://www.new.facebook.com/inbox/" id="nav_inbox">Inbox</a></div>
374
+ </div>
375
+ </div>
376
+ <div id="fb_menubar_aux">
377
+ <div id="fb_menu_home" class="fb_menu"><div class="fb_menu_title"><a href="http://www.new.facebook.com/home.php?ref=home">Home</a></div></div>
378
+ <div id="universal_search">
379
+ <form method="get" action="http://www.new.facebook.com/s.php?ref=search" name="universal_search_form" id="universal_search_form" onsubmit="return search_validate('q');">
380
+ <div id="universal_search_input">
381
+ <input id="q" name="q" results="0" tabindex="1" type="text" value="" placeholder="Search" class="inputtext typeahead_placeholder" maxlength="100" size="25" autocomplete="off" onfocus="var typeahead_source_instance1=new search_friend_source(&#039;505421674-1216255561-1&amp;u=505421674&#039;);typeahead_source_instance1.text_nomatch;typeahead_source_instance1.search_limit=5;new search_typeaheadpro(this, typeahead_source_instance1,{onselect:search_typeahead_onselect,onsubmit:search_typeahead_onsubmit,max_results:5});" />
382
+ </div>
383
+ <div id="universal_search_submit">
384
+ <a onclick="search_validate(&#039;q&#039;) &amp;&amp; $(&#039;universal_search_form&#039;).submit(); return false;" class="qsearch_button" title="Search Facebook">
385
+ <span class="search_mag_glass">&nbsp;</span>
386
+ </a>
387
+ </div>
388
+ <input type="hidden" id="init" name="init" value="q" />
389
+ </form>
390
+ </div>
391
+ <div id="fb_menu_account" class="fb_menu">
392
+ <div class="fb_menu_title"><a href="#"><span>&nbsp;</span></a></div>
393
+ <div id="fb_menu_account_dropdown" class="fb_menu_dropdown hidden_elem">
394
+ <div class="fb_menu_item fb_menu_item_disabled"><span>My Account</span></div>
395
+ <div class="fb_menu_item">
396
+ <a href="http://www.new.facebook.com/editaccount.php?ref=mb"><small style="background-image:url(http://static.ak.fbcdn.net/images/app_icons/edit_profile.gif?0:108910);">&nbsp;</small>Edit Account Settings</a>
397
+ </div>
398
+ <div class="fb_menu_item"><a href="http://www.new.facebook.com/privacy/?ref=mb"><small style="background-image:url(http://static.ak.fbcdn.net/images/app_icons/privacy.gif?0:108910);">&nbsp;</small>Edit Privacy</a></div>
399
+ <div class="fb_menu_separator"></div>
400
+ <div class="fb_menu_item"><a href="http://www.new.facebook.com/logout.php?h=2d4f121c56d3d06e0e9e408835bc0008"><small style="background-image:url(http://static.ak.fbcdn.net/images/app_icons/frownie.gif?0:108910);">&nbsp;</small>Logout</a></div>
401
+ </div>
402
+ </div>
403
+ </div>
404
+ </div>
405
+ </div>
406
+ <div id="book">
407
+ <div class="compatibility_frame">
408
+ <div id="content">
409
+ <div id="app_content_5020558873" class="app_content_5020558873 canvas_rel_positioning">
410
+ <div>
411
+
412
+ APP CONTENT GOES HERE
413
+
414
+ </div>
415
+ </div>
416
+ </div>
417
+ </div>
418
+ </div>
419
+ </div></div> <!-- ?? -->
420
+
421
+ <div id="pagefooter">
422
+ <div class="pagefooter_topborder clearfix">
423
+ <div class="copyright_and_location clearfix">
424
+ <div class="copyright">
425
+ <div class="brand" style="background-image: url(http://static.ak.fbcdn.net/images/icons/hidden.gif?0:27651)">Page built by <a href="http://www.new.facebook.com/apps/application.php?id=5020558873">PackRat Design</a><span class="footer_report_link">&nbsp;(<a href="http://apps.new.facebook.com/apps/violations.php?type=17&amp;cid=5020558873&amp;h=b8eb241c9a">report</a>)</span></div>
426
+ </div>
427
+ </div>
428
+ <div class="f_links">
429
+ <ul class="footer_links" id="nav_unused_3"><li><a href="http://www.new.facebook.com/about.php">About</a></li><li><a href="http://www.new.facebook.com/findfriends.php">Find Friends</a></li><li><a href="http://www.new.facebook.com/ads/">Advertising</a></li><li><a href="http://developers.new.facebook.com">Developers</a></li><li><a href="http://www.new.facebook.com/terms.php">Terms</a></li><li><a href="http://www.new.facebook.com/policy.php">Privacy</a></li><li><a href="http://www.new.facebook.com/help.php">Help</a></li></ul>
430
+ </div>
431
+ </div>
432
+ </div>
433
+
434
+ <div id="js_buffer">
435
+ <script type="text/javascript" src="endscript.js"></script>
436
+ </div>
437
+
438
+ </body>
439
+ </html>