quarta-feira, 3 de agosto de 2011

if (window.CavalryLogger) { CavalryLogger.start_js(["BaV9O"]); }

var PhotoPermalink={TAGS_UPDATED:'PhotoPermalink.TAGS_UPDATED',MIN_TAG_DISTANCE:80,LOADING_IMAGE:'/images/loaders/indicator_white_large.gif',init:function(b){this.reset();this.photoInfo=b;this.root=$('fbPhotoPageContainer');this.stageWrapper=$('photoborder');this.buttonActions=DOM.find(this.root,'div.stageButtons');this.feedback=ge('fbPhotoPageFeedback');var a={mouseout:this.mouseOutListener.bind(this),mousemove:this.mouseMoveListener.bind(this)};this.pageHandlers=values(Event.listen(this.root,a));this.pageHandlers.push(Event.listen(this.stageWrapper,'click',this.goNav.bind(this,'next')),Event.listen(this.buttonActions,'click',this.buttonListener.bind(this)),Event.listen(this.feedback,'click',function(event){if(Parent.byClass(event.getTarget(),'like_link'))CSS.toggleClass(DOM.find(this.buttonActions,'div.likeButton'),'viewerLikesThis');}.bind(this)));KeyEventController.registerKey('LEFT',this.goNav.bind(this,'prev'));KeyEventController.registerKey('RIGHT',this.goNav.bind(this,'next'));},getRoot:function(){return this.root;},updateContent:function(b,a){html=HTML(a).getRootNode();element=ge(b);element&&DOM.setContent(element,$A(html.childNodes));},updateTags:function(a){this.updateTagsFromPayload(a.getPayload());},updateTagsFromPayload:function(b){if(b.html)for(var a in b.html)this.updateContent(a,b.html[a]);if(b.tagRects)this.setTagRectsData(b.tagRects);Arbiter.inform(PhotoPermalink.TAGS_UPDATED,this.photoInfo);},setTagRectsData:function(a){this.tagRects={};for(var b in a)this.tagRects[b]=Rect.deserialize(a[b]);},goNav:function(c,event){var a=Event.getKeyCode(event)||event.getTarget();if(CSS.hasClass(document.documentElement,'theaterMode'))return true;var b=Parent.byClass(a,'stageWrapper');if(b&&CSS.hasClass(this.root,'taggingMode'))return false;var d=null;if(a==KEYS.LEFT||(b&&c=='prev')){d=ge('photoPagePrevNav');}else if(a==KEYS.RIGHT||(b&&c=='next'))d=ge('photoPageNextNav');d&&goURI(d.href);},buttonListener:function(event){var a=event.getTarget();if(Parent.byClass(a,'likeButton')){DOM.find($('fbPhotoPageFeedback'),'button.like_link').click();}else if(Parent.byClass(a,'commentButton')){DOM.find(this.root,'div.commentBox textarea').focus();this.root.scrollTop=this.root.scrollHeight;}else if(Parent.byClass(a,'rotateRight')){this.rotate('right');}else if(Parent.byClass(a,'rotateLeft'))this.rotate('left');},rotate:function(b){var a={fbid:this.photoInfo.fbid,cs_ver:PhotosConst.VIEWER_PERMALINK};a[b]=1;this.switchImage(this.LOADING_IMAGE);new AsyncRequest('/ajax/photos/photo/rotate/').setMethod('POST').setAllowCrossPageTransition(false).setReadOnly(false).setData(a).setHandler(function(c){this.updateTags(c);this.switchImage(c.getPayload().new_urls[PhotosConst.SIZE_NORMAL]);}.bind(this)).send();},switchImage:function(c){var a=$N('img',{className:'fbPhotoImage',id:'fbPhotoImage',alt:'',src:c});var b=ge('fbPhotoImage');b&&DOM.replace(b,a);},mouseOutListener:function(event){var d=event.getTarget();var a=event.getRelatedTarget();var b=Parent.byClass(d,'stageActions');var c=Parent.byClass(d,'stageWrapper');var e=Parent.byClass(a,'stageActions');var f=Parent.byClass(a,'stageWrapper');if((c&&!e)||(b&&!f))this.unhiliteCurrentTag();},mouseMoveListener:function(event){var a=event.getTarget();if(!Parent.byClass(a,'stageActions')&&!Parent.byClass(a,'stageWrapper'))return;this.hiliteTagsOnMouseMove(event);},unhiliteCurrentTag:function(){if(!this.hilitedTag)return;var a=ge(this.hilitedTag);if(a)CSS.removeClass(a,'hover');this.hilitedTag=null;},hiliteTagsOnMouseMove:function(event){if(!this.tagRects)return;var a=ge('fbPhotoImage');var e=Vector2.getEventPosition(event);var c=Vector2.getElementPosition(a);var b=Vector2.getElementDimensions(a);var d=PhotosUtils.getNearestBox(e,c,b,1,PhotoPermalink.MIN_TAG_DISTANCE,this.tagRects);if(!d)this.unhiliteCurrentTag();if(d&&this.hilitedTag!=d){this.unhiliteCurrentTag();this.hilitedTag=d;CSS.addClass($(this.hilitedTag),'hover');}},reset:function(){if(this.pageHandlers){this.pageHandlers.each(function(a){a.remove();});this.pageHandlers=null;}KeyEventController.getInstance().resetHandlers();}};
var PhotoCropper={init:function(c,b){if(this.photocrop)this.destroy();this.root=c;this.options=b||{};var a=DOM.scry(this.root,'a.fbPhotoActionsCrop');if(a.length===0)return;var d=this.start.bind(this);Event.listen(a[0],'click',function(){Bootloader.loadComponents('photocrop2',d);return false;});},start:function(){if(this.photocrop)return;CSS.addClass(this.root,'croppingMode');var d=DOM.find(this.root,'img.fbPhotoImage');var b=DOM.find(this.root,'a.doneCroppingLink');var a=DOM.find(this.root,'a.cancelCroppingLink');this.wrapper=$N('div');CSS.addClass(this.wrapper,'stageCropper');DOM.find(this.root,'.stageWrapper').appendChild(this.wrapper);this.wrapper.style.marginTop=d.parentNode.style.marginTop;Event.listen(this.wrapper,'click',this.cancel.bind(this));Event.listen(b,'click',this.done.bind(this));Event.listen(a,'click',this.cancel.bind(this));var c={target:this.wrapper,min_width:this.options.min_width};this.photocrop=new Photocrop(d,c);return false;},done:function(){var b=PhotoPermalink.photoInfo;var a=this.destroy();var c=copy_properties({pid:b.pid,owner:b.owner,id:this.options.uid,'return':'profile.php?id='+this.options.uid,error_return:'photo.php?pid='+b.pid+'&id='+b.owner},a);Form.post('/crop_profile_pic.php',c);return false;},cancel:function(){this.destroy();return false;},destroy:function(){if(this.photocrop){CSS.removeClass(this.root,'croppingMode');DOM.remove(this.wrapper);var a=this.photocrop.done();this.photocrop=null;return a;}}};
function PhotoPermalinkTagger(b,a){this.parent.construct(this,b);this.photoData=a;}PhotoPermalinkTagger.extend('PhotoTagger');copy_properties(PhotoPermalinkTagger.prototype,{elemNames:{0:{tagger:'div.photoPermalinkTagger',addTagLink:'div.fbPhotosPhotoActions',overlayActions:'div.fbPhotosPhotoButtons',tagboxContainer:'fbPhotoPageTagBoxes',tagAction:'fbPhotosPhotoActionsTag',image:'img#fbPhotoImage'}},setupHandlers:function(){var b=$('fbPhotoImage');var a=$('fbPhotoPageTagBoxes');this.handlers=[Event.listen(b,'click',this.addTag.bind(this)),Event.listen(a,'click',this.addTag.bind(this)),Event.listen(this.addTagLink,'click',this.checkActions.bind(this)),Event.listen(this.overlayActions,'click',this.checkActions.bind(this))];this.tokenizer.subscribe('addToken',this.saveTag.bind(this));this.tokenizer.subscribe('removeToken',this.removeTag.bind(this));this.tokenizer.subscribe('markTagAsSpam',this.markTagAsSpam.bind(this));},onRelativePositionTarget:function(a){return a==this.faceBox||Parent.byClass(a,'tagBox');},getRelativeTargetPos:function(b){if(b==this.faceBox){return this.tagger.style;}else{var a=Parent.byClass(b,'tagBox');return a.style;}},getTaggingSource:function(){return 'permalink';},getPosition:function(){return null;},getPhotoViewerObj:function(){return window.PhotoPermalink;},tagsChangeHandler:function(b){var a=this.getPhotoViewerObj();a&&a.updateTags(b);},setDataForTokenizer:function(){this.tokenizer.setup(null,this.photoData);return this;}});
function TagToken(b,a){this.existing=a;this.parent.construct(this,b,'tag');this.byowner=true;this.hasWithTag=false;this.isFirstVisible=false;}TagToken.extend('Token');TagToken.prototype={createElement:function(){var a=this.isFreeform();var b=$N('input',{type:'hidden',value:a?'':this.getValue(),name:this.paramName+'[]',autocomplete:'off'});var d=$N('span',{className:'separator'},', ');var e=$N(a?'span':'a',{className:'taggee','data-tag':this.getValue()},this.getText());if(!a)e.href=this.getInfo().path;var c=[' ('];c.push($N('a',{className:'remove'},_tx("remover marca\u00e7\u00e3o")));c.push(')');c=$N('span',{},c);var f=$N('span',{className:'tagItem'+(this.existing.length>1?'':' first')},[d,b,e,c]);CSS.conditionShow(f,this.byowner&&!this.hasWithTag);CSS.conditionClass(f,'firstVisibleTag',this.isFirstVisible);return f;},setIsByOwner:function(a){this.byowner=a;return this;},setHasWithTag:function(a){this.hasWithTag=a;return this;},setIsFirstVisibleTag:function(a){this.isFirstVisible=a;return this;}};
function TagTypeaheadView(a,b){this.parent.construct(this,a,b);this.hintText=b.hintText;this.origAutoSelect=b.autoSelect;this.setSuggestions(b.suggestions);}TagTypeaheadView.extend('TypeaheadView');TagTypeaheadView.prototype={buildMarkup:function(b){if(!this.value)b.unshift({subtext:this.hintText,type:'hintText'});var a=this.parent.buildMarkup(b);if(!this.value)b.shift();return a;},render:function(c,a,b){this.autoSelect=this.origAutoSelect&&c.length;this.disableAutoSelect=c.length===0;this.parent.render(c,a,b);},getItems:function(){var a=this.parent.getItems();if(!this.value)a.shift();return a;},getSuggestions:function(){return this.suggestions;},setSuggestions:function(a){this.suggestions=a||[];this.visible=!!this.suggestions;},addSuggestion:function(a){this.suggestions.unshift(a);}};
function TagTokenizer(c,a){this.parent.construct(this);this.version=c;this.appphoto=a;var b;if(this.version==PhotosConst.VIEWER_PERMALINK){b=PhotoPermalink.TAGS_UPDATED;}else if(this.version==PhotosConst.VIEWER_THEATER){b=PhotoTheater.DATA_CHANGE;}else if(this.version==PhotosConst.VIEWER_SNOWBOX)b=PhotoSnowbox.DATA_CHANGE;Arbiter.subscribe(b,this.setup.bind(this),Arbiter.SUBSCRIBE_NEW);Arbiter.subscribe(PhotoInlineEditor.CANCEL_INLINE_EDITING,this.updateTokenareaVisibility.bind(this),Arbiter.SUBSCRIBE_NEW);}TagTokenizer.extend('Tokenizer');TagTokenizer.prototype={setup:function(a,b){this.appphoto=b.byapp;this.byowner=b.isowner;return this.reset();},reset:function(){var a=this.getTokenElements().map(this.getTokenDataFromTag.bind(this));this.withTagKeys={};var b=this.getWithTagTokenElements().map(function(c){return this._tokenKey(this.getTokenDataFromTag(c));}.bind(this));this.withTagKeys=Object.from(b);Input.reset(this.input);return this.parent.reset(a);},processEvents:function(event,b,a){if(Parent.byClass(b,'remove')){var c=this.getTokenFromElement(a);c=this.addTokenData(c,b);this.removeToken(c);event.kill();}},addToken:function(b){if(this.hasMaxTokens())return;var a=this._tokenKey(b.getInfo());if(a in this.unique)return;this.unique[a]=b;this.tokens.push(b);this.inform('addToken',b);Arbiter.inform('Form/change',{node:this.element});},removeToken:function(a){if(this.appphoto){return this.replaceToken(a);}else{this.inform('removeToken',a);Arbiter.inform('Form/change',{node:this.element});}},addTokenData:function(b,a){if(Parent.byClass(a,'blockuser'))b.blockUser=true;return b;},getTokenDataFromTag:function(a){return {uid:DOM.find(a,'input').value,text:DOM.getText(DOM.find(a,'.taggee'))};},getTokenElementFromTarget:function(a){return Parent.byClass(a,'tagItem');},getTokenElements:function(){return DOM.scry(this.tokenarea,'span.tagItem').filter(this.filterNonTokenElements.bind(this));},getWithTagTokenElements:function(){return DOM.scry(this.tokenarea,'span.withTagItem');},filterNonTokenElements:function(a){return !CSS.hasClass(a,'markasspam')&&!CSS.hasClass(a,'reported')&&!CSS.hasClass(a,'withTagItem');},createToken:function(b,a){var c=this.getToken(this._tokenKey(b));c=c||new TagToken(b,this.tokens);if(c)c.setIsByOwner(this.byowner).setHasWithTag(this.withTagKeys[this._tokenKey(b)]).setIsFirstVisibleTag(this.byowner&&!CSS.shown(this.tokenarea));a&&c.setElement(a);return c;},updateTokenareaVisibility:function(){visibleTokens=this.getTokenElements().filter(function(a){return CSS.shown(a);});withTagTokens=this.getWithTagTokenElements();CSS.conditionShow(this.tokenarea,visibleTokens.length!==0||withTagTokens.length!==0);},replaceToken:function(e){if(!e)return;var b=this.tokens.indexOf(e);if(b<0)return;this.tokens.splice(this.tokens.indexOf(e),1);delete this.unique[this._tokenKey(e.getInfo())];var a=ge('tagspam'+e.getValue());a&&DOM.remove(a);var c=[' [',_tx("Marca\u00e7\u00e3o removida"),' '];c.push($N('a',{onclick:this.markAsSpam.bind(this,e.getValue())},_tx("Denunciar marca\u00e7\u00e3o como spam")));c.push('] ');var d=$N('span',{className:'fbPhotosTaglistTag tagItem markasspam',id:'tagspam'+e.getValue()},c);DOM.replace(e.getElement(),d);this.updateTokenarea();this.inform('removeToken',e);Arbiter.inform('Form/change',{node:this.element});},markAsSpam:function(d){var a=ge('tagspam'+d);var b=[' [',_tx("Marca\u00e7\u00e3o reportada"),'] '];var c=$N('span',{className:'fbPhotosTaglistTag tagItem reported',id:'tagspam'+d},b);DOM.replace(a,c);this.inform('markTagAsSpam',d);}};

Nenhum comentário:

Postar um comentário