/*    HTTP Host:  static.ak.fbcdn.net                                          */
/*    Generated:  December 17th 2009 4:01:36 PM PST                            */
/*      Machine:  10.16.139.108                                                */
/*       Source:  Global Cache                                                 */
/*     Location:  js/page/photocaption.js h:3246kw0v                           */
/*       Locale:  nu_ll                                                        */
/*         Path:  js/page/photocaption.js                                      */

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

function Photocaption(d,i,e,c){c=copy_properties({typeaheadSource:null,successCallback:null,beginEditCallback:null},c||{});this.displayCaption=DOM.find(d,'div.photocaption');this.displayCapText=DOM.find(d,'div.photocaption_text');this.displayEditCapText=DOM.find(d,'textarea.photocaption_edit_text');this.displayNoCaption=DOM.find(d,'div.photocaption_nocaption');this.displayEditCaption=DOM.find(d,'div.photocaption_edit');this.captionMode=Photocaption.READ;this.successCallback=c.successCallback;this.beginEditCallback=c.beginEditCallback;this.uid=i;this.pid=e;this.mentionsHasFocus=false;var b=DOM.find(d,'a.photocaption_toggle');var g=DOM.find(d,'a.photocaption_nocaption_edit');var f=DOM.find(d,'.caption_save');var a=DOM.find(d,'.caption_cancel');if(c.typeaheadSource&&typeahead_mentions)this.initializeMentions(c.typeaheadSource);var h=this.toggleCaption.bind(this);b&&(b.onmousedown=h);g&&(g.onclick=h);f&&(f.onclick=this.saveCaption.bind(this));if(a)a.onclick=function(j){this.setCaptionUpdating(false);return $E(j).kill();}.bind(this);this.cappt=this.getCaptionEditText();}Photocaption.READ=0;Photocaption.WRITE=1;Photocaption.UPDATING=2;copy_properties(Photocaption.prototype,{initializeMentions:function(c){if(ua.firefox()<3||ua.safariPreWebkit()||ua.opera())return;var d=this.getCaptionEditText();var a=$N('div',{className:'photocaption_mentions',contentEditable:true},document.createTextNode(d));DOM.replace(this.displayEditCapText,a);this.displayEditCapText=a;var b=new typeahead_mentions(a,c);this.getCaptionEditText=b.getMessage.bind(b);this.setCaptionEditText=b.setMessage.bind(b);this.setCaptionFocus=b.focusInput.bind(b);this.enableCaption=b.enable.bind(b);this.disableCaption=b.disable.bind(b);this.mentionsObj=b;a.onfocus=chain(function(e){this.mentionsHasFocus=true;}.bind(this),a.onfocus);a.onblur=chain(function(e){this.mentionsHasFocus=false;}.bind(this),a.onblur);},toggleCaption:function(a){if(this.captionMode==Photocaption.WRITE){this.captionMode=Photocaption.READ;this.displayCaptionUI();}else if(this.captionMode==Photocaption.READ){this.captionMode=Photocaption.WRITE;this.displayCaptionUI();}return $E(a).kill();},displayCaptionUI:function(){var a=this.captionMode;if(a==Photocaption.WRITE){this.beginEditCallback&&this.beginEditCallback();hide(this.displayCaption);hide(this.displayNoCaption);show(this.displayEditCaption);this.setCaptionFocus();}else if(a==Photocaption.READ){hide(this.displayEditCaption);if(this.getCaption()){hide(this.displayNoCaption);show(this.displayCaption);}else{hide(this.displayCaption);show(this.displayNoCaption);}}},saveCaption:function(b){if(this.captionMode!=Photocaption.WRITE)return;var a=trim(this.getCaptionEditText());if(a!=this.cappt){this.setCaptionUpdating(true);new AsyncRequest().setURI('/ajax/editphotocaption.php').setMethod('POST').setData({caption:a,oid:this.uid,pid:this.pid}).setHandler(this.saveCaptionResponse.bind(this)).setErrorHandler(this.saveCaptionError.bind(this)).send();}else this.setCaptionUpdating(false);return $E(b).kill();},saveCaptionResponse:function(a){var b=a.getPayload();this.cappt=b.plaintext;set_inner_html(this.displayCapText,HTML(b.rendered));this.successCallback&&this.successCallback(b);this.setCaptionUpdating(false);this.setCaptionEditText(this.cappt);},saveCaptionError:function(a){this.setCaptionUpdating(false);this.error=a.getError();ErrorDialog.showAsyncError(a);},setCaptionData:function(c,b,a){this.setCaptionUpdating(false);this.uid=c;this.pid=b;this.cappt=a;this.setCaptionEditText(a);this.displayCaptionUI();},getCaption:function(){return this.displayCapText.innerHTML;},setCaptionUpdating:function(a){if(a){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(a){this.displayEditCapText.value=HTML(a);},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"]); }