/*1305238028,176820662*/

if (window.CavalryLogger) { CavalryLogger.start_js(["\/m14p"]); }

var GenderConst={UNKNOWN:0,FEMALE_SINGULAR:1,MALE_SINGULAR:2,FEMALE_SINGULAR_GUESS:3,MALE_SINGULAR_GUESS:4,MIXED_SINGULAR:5,MIXED_PLURAL:5,NEUTER_SINGULAR:6,UNKNOWN_SINGULAR:7,FEMALE_PLURAL:8,MALE_PLURAL:9,NEUTER_PLURAL:10,UNKNOWN_PLURAL:11};
var Dock=copy_properties(new Arbiter(),{MIN_HEIGHT:140,INITIAL_FLYOUT_HEIGHT_OFFSET:10,stateItems:[],init:function(a){this.init=bagofholding;this.rootEl=a;this.calculateViewportDimensions();this.calculateFlyoutHeightOffset();Event.listen(a,'click',this._onClick.bind(this));Event.listen(window,'resize',this._onWindowResize.bind(this));Arbiter.subscribe('page_transition',this._onPageTransition.bind(this));Toggler.subscribe(['show','hide'],function(d,c){var b=c.getActive();if(DOM.contains(a,b)&&CSS.hasClass(b,'fbNub')){if(d==='show')this._resizeNubFlyout(b);this.notifyNub(b,d);}}.bind(this));this._adjustTooltips();this.registerStateItems();this.inform('init',{},Arbiter.BEHAVIOR_PERSISTENT);},calculateViewportDimensions:function(){return (this.viewportDimensions=Vector2.getViewportDimensions());},calculateFlyoutHeightOffset:function(){this.flyoutHeightOffset=this.INITIAL_FLYOUT_HEIGHT_OFFSET+Vector2.getElementDimensions(this.rootEl).y;var b=ge('pageHead');if(b){var a=CSS.getStyle(b,'position')==='fixed';this.flyoutHeightOffset+=Vector2.getElementPosition(b,a?'viewport':null).y+Vector2.getElementDimensions(b).y;}},toggle:function(b){var a=this._findFlyout(b);if(!a)return;this.subscribe('init',function(){Toggler.getInstance(b).toggle(b);});},show:function(a){this.subscribe('init',function(){Toggler.getInstance(a).show(a);});},showNub:function(b){CSS.show(b);var a=DOM.find(b,'a.fbNubButton');this._adjustTooltip(a);},hide:function(a){this.subscribe('init',function(){var b=Toggler.getInstance(a);DOM.contains(a,b.getActive())&&b.hide();});},hideNub:function(a){CSS.hide(a);this.hide(a);},_resizeNubFlyout:function(l,j){var g=this._findFlyout(l);if(!g||!CSS.hasClass(l,'openToggler'))return;var c=DOM.find(g,'div.fbNubFlyoutBody'),e=DOM.find(c,'div.fbNubFlyoutBodyContent'),d=Vector2.getElementDimensions(e),h=DataStore.get(g,'dock:nub:flyout:padding'),f=Vector2.getElementDimensions(g);var k=DataStore.get(g,'dock:nub:flyout:height');if(j||!h){var b=Vector2.getElementDimensions(c);h=f.y-b.y;DataStore.set(g,'dock:nub:flyout:padding',h);}var a=Math.max(this.MIN_HEIGHT-h,this.viewportDimensions.y-h-this.flyoutHeightOffset);if(k)a=Math.min(a,k-h);if(k||d.y>a){c.style.height=a+'px';}else c.style.height='auto';CSS.removeClass(g,'swapDirection');var i=Vector2.getElementPosition(g).x;CSS.conditionClass(g,'swapDirection',function(){if(i<0)return true;return (i+f.x>this.viewportDimensions.x);}.bind(this)());this.notifyNub(l,'resize');},resizeAllFlyouts:function(){var b=DOM.scry(this.rootEl,'div.fbNub.openToggler'),a=b.length;while(a--)this._resizeNubFlyout(b[a]);},_onClick:function(event){var c=event.getTarget(),b=Parent.byClass(c,'fbNub');if(b){if(Parent.byClass(c,'fbNubFlyoutTitlebar')){var a=Parent.byTag(c,'a');if(!a||!a.rel){this.hide(b);return false;}}this.notifyNub(b,'click');}},_onPageTransition:function(){this._flushDockState();},_onWindowResize:function(event){this.calculateViewportDimensions();this.resizeAllFlyouts();this._adjustTooltips();},_adjustTooltip:function(a){var b=DOM.scry(a,'span.uiTooltipWrap')[0];if(b){var c=Vector2.getElementPosition(a).x;if(c){if(this._isRTL())c=this.viewportDimensions.x-c;CSS.conditionClass(b,'right',c>this.viewportDimensions.x/2);}}},_adjustTooltips:function(){var a=DOM.scry(this.rootEl,'a.fbNubButton.uiTooltip');a.each(this._adjustTooltip.bind(this));},_findFlyout:function(a){return (flyoutEl=CSS.hasClass(a,'fbNubFlyout')?a:DOM.scry(a,'div.fbNubFlyout')[0]||null);},setFlyoutContentHeight:function(a,b){a=this._findFlyout(a);if(!a)return;DataStore.set(a,'dock:nub:flyout:height',b);},registerNubController:function(b,a){DataStore.set(b,'dock:nub:controller',a);a.subscribe(a.FLYOUT_CONTENT_CHANGED,this._resizeNubFlyout.bind(this,b,true));},unregisterNubController:function(a){DataStore.remove(a,'dock:nub:controller');},notifyNub:function(c,d,b){var a=DataStore.get(c,'dock:nub:controller');return a&&a.inform(d,b)!==false;},_getNubContainer:function(a,b){var c=DOM.scry(this.rootEl,'div.fbDock .'+a)[0];if(!c&&b)c=DOM[a==='lNubContainer'?'prependContent':'appendContent'](this.rootEl.firstChild,HTML('<div class="'+a+'"></div>'))[0];return c||null;},_getLeftNubContainer:function(a){return (this.leftNubContainer=this.leftNubContainer||this._getNubContainer('lNubContainer',a));},_getRightNubContainer:function(a){return (this.rightNubContainer=this.rightNubContainer||this._getNubContainer('rNubContainer',a));},registerStateItem:function(d,e,f){var c=e==='left'?this._getLeftNubContainer(true):this._getRightNubContainer(true);if(!c.firstChild){var a=e==='left'?'fbDockWrapperRight':'fbDockWrapperLeft';CSS.removeClass(this.rootEl,a);}var b=f?'lastChild':'firstChild';while(d[b]){this.stateItems.push(d[b]);DOM[f?'prependContent':'appendContent'](c,d[b]);}DOM.remove(d);this._adjustTooltips();},registerStateItems:function(){this.subscribe('init',function(){var a=window.DockStateItems;while(a&&a.length)this.registerStateItem.apply(this,a.shift());}.bind(this));},_flushDockState:function(){this.stateItems.each(DOM.remove);this.stateItems=[];var a=this._getLeftNubContainer();if(a&&!a.firstChild)CSS.addClass(this.rootEl,'fbDockWrapperRight');var b=this._getRightNubContainer();if(b&&!b.firstChild)CSS.addClass(this.rootEl,'fbDockWrapperLeft');},_isRTL:function(){if(typeof this._rtl==='undefined')this._rtl=intl_locale_is_rtl();return this._rtl;}});
function NubController(){}NubController.mixin('Arbiter',{FLYOUT_CONTENT_CHANGED:'nub/flyout/content-changed',init:function(a){this.el=a;Dock.registerNubController(a,this);},flyoutContentChanged:function(){this.inform(this.FLYOUT_CONTENT_CHANGED);},hide:function(){Dock.hide(this.el);},show:function(){Dock.show(this.el);}});
var Emote={_initialized:false,_imageBase:null,_emoteMap:null,_emoteOrderMap:null,_imageURLs:null,_regex:null,_mapOverlay:null,initExtraEmoticons:function(a){Emote._mapOverlay=a;},_init:function(){var f=env_get('static_base');Emote._imageBase=f+'images/emote/';Emote._blankImgSrc=f+'images/blank.gif';var a=['smile','frown','tongue','grin','gasp','wink','glasses','sunglasses','grumpy','unsure','cry','devil','angel','kiss','heart','kiki','squint','confused','upset','pacman','colonthree'];Emote._emoteMap={':-)':['\\:\\-\\)','smile'],':)':['\\:\\)','smile'],':]':['\\:\\]','smile'],'=)':['=\\)','smile'],':-(':['\\:\\-\\(','frown'],':(':['\\:\\(','frown'],':[':['\\:\\[','frown'],'=(':['=\\(','frown'],':-P':['\\:\\-P','tongue'],':P':['\\:P','tongue'],':-p':['\\:\\-p','tongue'],':p':['\\:p','tongue'],'=P':['=P','tongue'],':-D':['\\:\\-D','grin'],':D':['\\:D','grin'],'=D':['=D','grin'],':-O':['\\:\\-O','gasp'],':O':['\\:O','gasp'],':-o':['\\:\\-o','gasp'],':o':['\\:o','gasp'],';-)':['\\;\\-\\)','wink'],';)':['\\;\\)','wink'],'8-)':['8\\-\\)','glasses'],'8)':['8\\)','glasses'],'B-)':['B\\-\\)','glasses'],'B)':['B\\)','glasses'],'8-|':['8\\-\\|','sunglasses'],'8|':['8\\|','sunglasses'],'B-|':['B\\-\\|','sunglasses'],'B|':['B\\|','sunglasses'],'>:(':['>\\:\\(','grumpy'],'>:-(':['>\\:\\-\\(','grumpy'],':/':['\\:/','unsure'],':-/':['\\:\\-/','unsure'],':\\':['\\:\\\\','unsure'],':-\\':['\\:\\-\\\\','unsure'],":'(":["\\:'\\(",'cry'],'3:)':['3\\:\\)','devil'],'3:-)':['3\\:\\-\\)','devil'],'O:)':['O\\:\\)','angel'],'O:-)':['O\\:\\-\\)','angel'],':-*':['\\:\\-\\*','kiss'],':*':['\\:\\*','kiss'],'<3':['<3','heart'],'&lt;3':['&lt\\;3','heart'],'\u2665':['\u2665','heart'],'^_^':['\\^_\\^','kiki'],'-_-':['\\-_\\-','squint'],'o.O':['o\\.O','confused'],'O.o':['O\\.o','confused'],'>:O':['>\\:O','upset'],'>:-O':['>\\:\\-O','upset'],'>:o':['>\\:o','upset'],'>:-o':['>\\:\\-o','upset'],':v':['\\:v','pacman'],':|]':['\\:\\|\\]','robot'],':3':['\\:3','colonthree'],'<(")':['<\\(\\"\\)','penguin'],':putnam:':['\\:putnam\\:','putnam'],'(^^^)':['\\(\\^\\^\\^\\)','shark'],':42:':['\\:42\\:','42']};if(Emote._mapOverlay)copy_properties(Emote._emoteMap,Emote._mapOverlay);var d=[];for(var c in Emote._emoteMap)d.push(Emote._emoteMap[c][0]);var e='(?:^|\\s|\'|"|\\.)('+d.join('|')+')(?:\\s|\'|"|\\.|,|!|\\?|<br>|$)';Emote._regex=new RegExp(e);Emote._emoteOrderMap={};for(var b=0;b<a.length;b++)Emote._emoteOrderMap[a[b]]=b;Emote._initialized=true;},htmlEmote:function(j,l){if(typeof l!='function')l=htmlize;if(!Emote._initialized)Emote._init();var i=0;var k=j;var h=[];while(true){var e=Emote._regex.exec(k);if(!e||!e.length)break;var b=e[1];var d=Emote._emoteMap[b][1];var c=k.indexOf(b);var a=k.substring(0,c);if(a)h.push(l(a));h.push('<span class="emote_text">');h.push(b);h.push('</span><img ');var f;if(typeof(f=Emote._emoteOrderMap[d])=='undefined'){h.push('class="emote_custom" src="');h.push(Emote._imageBase);h.push(d);h.push('.gif" ');}else{var g=f*-16;h.push('class="emote_img" src="');h.push(Emote._blankImgSrc);h.push('" style="background-position: ');h.push(g);h.push('px 0px" ');}h.push('alt="');h.push(b);h.push('" />');k=k.substring(c+b.length);}if(k)h.push(l(k));return h.join('');}};
var Sound=(function(){var a=false;var b='so_sound_player';function c(e){var f=URI(e);if(!f.getDomain())return URI(env_get('static_base')).setPath(f.getPath()).toString();return e;}function d(){var e=document[b]||window[b];if(e)if(!e.playSound&&e.length)e=e[0];return (e&&e.playSound&&e.loopSound)?e:null;}return {init:function(){if(a)return;a=true;var e=document.createElement('div');e.id='sound_player_holder';document.body.appendChild(e);try{var player=new SWFObject('/swf/SoundPlayer.swf',b,'1px','1px',['9.0.159.0','10.0.22.87'],'#ffffff');player.addParam('allowscriptaccess','always');player.addParam('wmode','transparent');player.addVariable('swf_id',b);player.fallback_html=' ';player.write(e.id);window[b]=player;}catch(f){}},play:function(g,i,f){Sound.init();g=c(g);var h=d();if(/\.mp3$/.test(g)&&h){if(f){h.loopSound(g,i);}else h.playSound(g,i);}else{var e=ge('sound');if(!e){e=document.createElement('span');e.setAttribute('id','sound');DOM.getRootElement().appendChild(e);}e.innerHTML='<embed src="'+g+'" autostart="true" loop="'+(f?'true':'false')+'" hidden="true" />';}},stop:function(f){f=c(f);var g=d();g&&g.stopSound(f);var e=ge('sound');e&&(e.innerHTML='');}};})();
add_properties('TypeaheadBehaviors',{requireSelection:function(c){var a=c.getCore();var b=a.getElement().form;function d(){!a.getHiddenValue()&&a.reset();}a.subscribe('blur',d);b&&Event.listen(b,'submit',d);}});
