/*    HTTP Host:  b.static.ak.fbcdn.net                                        */
/*    Generated:  December 11th 2009 1:50:21 AM PST                            */
/*      Machine:  10.16.140.103                                                */
/*       Source:  Global Cache                                                 */
/*     Location:  js/page/photocaption.js h:8y7kzwtn                           */
/*       Locale:  nu_ll                                                        */
/*         Path:  js/page/photocaption.js                                      */

if (window.CavalryLogger) { CavalryLogger.start_js(["js\/page\/photocaption.js"]); }

function Photocaption(_L0,uid,pid,_L3){_L3=copy_properties({typeaheadSource:null,successCallback:null,beginEditCallback:null},_L3||{});this.displayCaption=DOM.find(_L0,'div.photocaption');this.displayCapText=DOM.find(_L0,'div.photocaption_text');this.displayEditCapText=DOM.find(_L0,'textarea.photocaption_edit_text');this.displayNoCaption=DOM.find(_L0,'div.photocaption_nocaption');this.displayEditCaption=DOM.find(_L0,'div.photocaption_edit');this.captionMode=Photocaption.READ;this.successCallback=_L3.successCallback;this.beginEditCallback=_L3.beginEditCallback;this.uid=uid;this.pid=pid;this.mentionsHasFocus=false;var _L4=DOM.find(_L0,'a.photocaption_toggle');var _L5=DOM.find(_L0,'a.photocaption_nocaption_edit');var _L6=DOM.find(_L0,'.caption_save');var _L7=DOM.find(_L0,'.caption_cancel');if(_L3.typeaheadSource&&typeahead_mentions)this.initializeMentions(_L3.typeaheadSource);var _L8=this.toggleCaption.bind(this);_L4&&(_L4.onmousedown=_L8);_L5&&(_L5.onclick=_L8);_L6&&(_L6.onclick=this.saveCaption.bind(this));if(_L7)_L7.onclick=function(e){this.setCaptionUpdating(false);return $E(e).kill();}.bind(this);this.cappt=this.getCaptionEditText();}Photocaption.READ=0;Photocaption.WRITE=1;Photocaption.UPDATING=2;copy_properties(Photocaption.prototype,{initializeMentions:function(_L0){if(ua.firefox()<3||ua.safariPreWebkit()||ua.opera())return;var _L1=this.getCaptionEditText();var _L2=$N('div',{className:'photocaption_mentions',contentEditable:true},document.createTextNode(_L1));DOM.replace(this.displayEditCapText,_L2);this.displayEditCapText=_L2;var _L3=new typeahead_mentions(_L2,_L0);this.getCaptionEditText=_L3.getMessage.bind(_L3);this.setCaptionEditText=_L3.setMessage.bind(_L3);this.setCaptionFocus=_L3.focusInput.bind(_L3);this.enableCaption=_L3.enable.bind(_L3);this.disableCaption=_L3.disable.bind(_L3);this.mentionsObj=_L3;_L2.onfocus=chain(function(e){this.mentionsHasFocus=true;}.bind(this),_L2.onfocus);_L2.onblur=chain(function(e){this.mentionsHasFocus=false;}.bind(this),_L2.onblur);},toggleCaption:function(e){if(this.captionMode==Photocaption.WRITE){this.captionMode=Photocaption.READ;this.displayCaptionUI();}else if(this.captionMode==Photocaption.READ){this.captionMode=Photocaption.WRITE;this.displayCaptionUI();}else ;return $E(e).kill();},displayCaptionUI:function(){var _L0=this.captionMode;if(_L0==Photocaption.WRITE){this.beginEditCallback&&this.beginEditCallback();hide(this.displayCaption);hide(this.displayNoCaption);show(this.displayEditCaption);this.setCaptionFocus();}else if(_L0==Photocaption.READ){hide(this.displayEditCaption);if(this.getCaption()){hide(this.displayNoCaption);show(this.displayCaption);}else{hide(this.displayCaption);show(this.displayNoCaption);}}},saveCaption:function(e){if(this.captionMode!=Photocaption.WRITE)return;var _L1=trim(this.getCaptionEditText());if(_L1!=this.cappt){this.setCaptionUpdating(true);new AsyncRequest().setURI('/ajax/editphotocaption.php').setMethod('POST').setData({caption:_L1,oid:this.uid,pid:this.pid}).setHandler(this.saveCaptionResponse.bind(this)).setErrorHandler(this.saveCaptionError.bind(this)).send();}else this.setCaptionUpdating(false);return $E(e).kill();},saveCaptionResponse:function(_L0){var _L1=_L0.getPayload();this.cappt=_L1.plaintext;set_inner_html(this.displayCapText,HTML(_L1.rendered));this.successCallback&&this.successCallback(_L1);this.setCaptionUpdating(false);this.setCaptionEditText(this.cappt);},saveCaptionError:function(_L0){this.setCaptionUpdating(false);Util.error(_L0.getErrorDescription());this.error=_L0.getError();ErrorDialog.showAsyncError(_L0);},setCaptionData:function(uid,pid,_L2){this.setCaptionUpdating(false);this.uid=uid;this.pid=pid;this.cappt=_L2;this.setCaptionEditText(_L2);this.displayCaptionUI();},getCaption:function(){return this.displayCapText.innerHTML;},setCaptionUpdating:function(_L0){if(_L0){this.captionMode=Photocaption.UPDATING;CSS.addClass(this.displayEditCapText,'updating');this.disableCaption();}else{this.captionMode=Photocaption.READ;CSS.removeClass(this.displayEditCapText,'updating');this.enableCaption();this.displayCaptionUI();}},isUpdating:function(){return this.captionMode==Photocaption.UPDATING;},isEditing:function(){return this.captionMode==Photocaption.WRITE;},mentionsIsFocused:function(){return this.isEditing()&&this.mentionsHasFocus;},setCaptionEditText:function(_L0){this.displayEditCapText.value=HTML(_L0);},getCaptionEditText:function(){return this.displayEditCapText.value;},setCaptionFocus:function(){this.displayEditCapText.focus();},enableCaption:function(){this.displayEditCapText.disabled=false;},disableCaption:function(){this.displayEditCapText.disabled=true;}});

if (window.Bootloader) { Bootloader.done(["js\/page\/photocaption.js"]); }