dojo.declare("LBase",null,{user:window.loggedUser?loggedUser:{displayName:"timeline",person:{id:-1},pref:{help:-1},topic:{contributor:false}},GLOBAL:{CONTROLS:{}},constructor:function(){if(window.GLOBAL){var b=window.GLOBAL,a;for(a in b){this.GLOBAL[a]=b[a];}}this.user.logged=window.loggedUser?true:false;dojo.connect(document,"onkeypress",function(c){dojo.publish("keypressed",[c]);});},getUser:function(){return this.user;},isAnon:function(){return !this.user.logged;},getFbUser:function(){return(window.FB&&window.FB.Connect&&FB.Connect.get_loggedInUser()&&FB.Connect.get_loggedInUser()!="");},setUser:function(a){if(a){this.user=a;this.user.logged=true;}}});LB=new LBase();Array.prototype.union=function(g){var a=this,b={},f=[],c,d,e;for(c=0,d=a.length;c<d;c++){e=a[c];if(!b[e]){f.push(e);b[e]=true;}}for(c=0,d=g.length;c<d;c++){e=g[c];if(!b[e]){f.push(e);b[e]=true;}}return f;};Array.prototype.intersection=function(h){var a=this,d={},c={},g=[],b,e,f;for(b=0,e=h.length;b<e;b++){c[h[b]]=true;}for(b=0,e=a.length;b<e;b++){f=a[b];if(!d[f]){d[f]=true;if(c[f]){g.push(f);}}}return g;};Array.prototype.complement=function(h){var a=this,d={},c={},g=[],b,e,f;for(b=0,e=h.length;b<e;b++){c[h[b]]=true;}for(b=0,e=a.length;b<e;b++){f=a[b];if(!d[f]){d[f]=true;if(!c[f]){g.push(f);}}}return g;};smd={SMDVersion:"2.0",id:"http://www.lifeblob.com/ajax",description:"Lifeblob API",target:"http://www.lifeblob.com/ajax/",transport:"POST",envelope:"URL",additionalParameters:false,parameters:[{name:"v",optional:false,"default":"1.0"},{name:"format",optional:false,"default":"json"}],services:{checkDisplayName:{target:"checkDisplayName",parameters:[{name:"displayName",type:"string",optional:false},{name:"user",type:"boolean",optional:false}]},saveMemoir:{target:"memoir/save",parameters:[{name:"primaryId",type:"integer",optional:true},{name:"primaryType",type:"integer",optional:true},{name:"title",type:"string",optional:false},{name:"desc",type:"string",optional:true,"default":""},{name:"happened",type:"string",optional:true},{name:"visibility",type:"integer",optional:true},{name:"commentable",type:"boolean",optional:true},{name:"participants",type:"string",optional:true},{name:"fbIds",type:"string",optional:true},{name:"emails",type:"string",optional:true},{name:"topics",type:"string",optional:true},{name:"topicIds",type:"string",optional:true},{name:"tags",type:"string",optional:true},{name:"place",type:"integer",optional:true,"default":0},{name:"images",type:"array",optional:true},{name:"videos",type:"array",optional:true},{name:"autoLinkable",type:"boolean",optional:true}]},quickPost:{target:"memoir/quickCreate",parameters:[{name:"tid",type:"integer",optional:true},{name:"blobTitle",type:"string",optional:true}]},updatePost:{target:"memoir/updatePost",parameters:[{name:"memoirId",type:"integer",optional:false},{name:"title",type:"string",optional:false},{name:"public",type:"boolean",optional:false},{name:"placeId",type:"integer",optional:false},{name:"happened",type:"string",optional:false},{name:"description",type:"string",optional:false},{name:"peopleToAdd",type:"string",optional:false},{name:"groupsToAdd",type:"string",optional:false},{name:"emailsToAdd",type:"string",optional:false},{name:"deletePhotos",type:"string",optional:false},{name:"photoIds",type:"string",optional:false},{name:"captions",type:"string",optional:false},{name:"photoTagIds",type:"string",optional:false},{name:"tags",type:"string",optional:false}]},saveUploadMemoir:{target:"memoir/saveUpload",parameters:[{name:"title",type:"string",optional:false},{name:"placeId",type:"integer",optional:false},{name:"imageIdsToAdd",type:"string",optional:false},{name:"imageIdsToRemove",type:"string",optional:false},{name:"imageCaptionIds",type:"string",optional:false},{name:"captions",type:"string",optional:false},{name:"imageTagIds",type:"string",optional:false},{name:"tags",type:"string",optional:false}]},deleteMemoir:{target:"memoir/delete",parameters:[{name:"memoirId",type:"integer",optional:false}]},link:{target:"memoir/link",parameters:[{name:"memoirId",type:"integer",optional:false}]},linkAcceptReject:{target:"memoir/linkAcceptReject",parameters:[{name:"personId",type:"integer",optional:false},{name:"memoirId",type:"integer",optional:false},{name:"accept",type:"boolean",optional:false}]},unLink:{target:"memoir/unlink",parameters:[{name:"memoirId",type:"integer",optional:false},{name:"typeId",type:"integer",optional:false},{name:"type",type:"integer",optional:false}]},fetchPhotos:{target:"photo/fetch",parameters:[{name:"memoirId",type:"integer",optional:false}]},photoSize:{target:"photo/size",parameters:[{name:"memoirId",type:"integer",optional:false},{name:"photoId",type:"integer",optional:false},{name:"size",type:"string",optional:false},{name:"width",type:"integer",optional:false},{name:"height",type:"integer",optional:false}]},fetchComments:{target:"fetchComments",parameters:[{name:"memoirId",type:"integer",optional:false}]},deleteComment:{target:"deleteComment",parameters:[{name:"memoirId",type:"integer",optional:false},{name:"cid",type:"integer",optional:false}]},deleteFBComment:{target:"deleteFBComment",parameters:[{name:"albumId",type:"string",optional:false},{name:"cid",type:"integer",optional:false}]},addComment:{target:"addComment",parameters:[{name:"memoirId",type:"integer",optional:false},{name:"comment",type:"string",optional:false},{name:"photoId",type:"integer",optional:true}]},addFBComment:{target:"addFBComment",parameters:[{name:"albumId",type:"string",optional:false},{name:"comment",type:"string",optional:false},{name:"photoId",type:"integer",optional:true}]},invite:{target:"invite/friends",parameters:[{name:"emails",type:"string",optional:false},{name:"message",type:"string",optional:true},{name:"inviteType",type:"integer",optional:false},{name:"store",type:"boolean",optional:true,"default":false}]},inviteByName:{target:"invite/friendsByName",parameters:[{name:"emails",type:"string",optional:false},{name:"names",type:"string",optional:false},{name:"message",type:"string",optional:true},{name:"inviteType",type:"integer",optional:false},{name:"store",type:"boolean",optional:true,"default":false}]},createFBAccount:{target:"account/createFBAccount",parameters:[]},importRequest:{target:"imports/request",parameters:[{name:"url",type:"string",optional:false},{name:"appType",type:"integer",optional:false},{name:"topicId",type:"integer",optional:true}]},importAddressbook:{target:"imports/credentialsRequest",parameters:[{name:"username",type:"string",optional:false},{name:"password",type:"string",optional:false},{name:"appType",type:"integer",optional:false}]},facebookImportRequest:{target:"imports/facebookRequest",parameters:[]},importStatus:{target:"imports/status",parameters:[{name:"id",type:"integer",optional:false}]},deleteImportConfig:{target:"imports/delete",parameters:[{name:"appType",type:"integer",optional:false},{name:"aggregatorId",type:"integer",optional:false},{name:"deleteData",type:"boolean",optional:false}]},updateImportConfig:{target:"imports/update",parameters:[{name:"appType",type:"integer",optional:false},{name:"aggregatorId",type:"integer",optional:false},{name:"schedule",type:"integer",optional:false},{name:"writeenabled",type:"string",optional:false}]},friendFinder:{target:"friendFinder",parameters:[{name:"id",type:"integer",optional:false}]},discover:{target:"recommend/discover",parameters:[]},linkupFacebook:{target:"facebook/linkup",parameters:[]},fbPerms:{target:"facebook/permission",parameters:[{name:"granted",type:"string",optional:true},{name:"notgranted",type:"string",optional:true}]},facebookUserTimelinePublished:{target:"facebook/publish/facebookPublished",parameters:[]},facebookLinkupTimelinePublished:{target:"facebook/publish/facebookTimelineLinkPublished",parameters:[]},facebookTopicPublished:{target:"facebook/publish/facebookTopicPublished",parameters:[{name:"topicId",type:"integer",optional:false}]},searchLocation:{target:"location/search",parameters:[{name:"query",type:"string",optional:false},{name:"count",type:"integer",optional:false,"default":10}]},searchNearby:{target:"location/nearby",parameters:[{name:"latitude",type:"number",optional:false},{name:"longitude",type:"number",optional:false},{name:"count",type:"integer",optional:false,"default":10}]},fetchPending:{target:"pending/fetch",parameters:[{name:"appType",type:"integer",optional:false}]},updatePending:{target:"pending/update",parameters:[{name:"id",type:"integer",optional:false},{name:"visibility",type:"integer",optional:false},{name:"participants",type:"string",optional:false},{name:"tags",type:"string",optional:false}]},skipApp:{target:"pending/skipApp",parameters:[{name:"appType",type:"integer",optional:false}]},skipIds:{target:"pending/skipIds",parameters:[{name:"ids",type:"string",optional:false}]},updateStatus:{target:"profile/updateStatus",parameters:[{name:"status",type:"string",optional:false},{name:"generateActivity",type:"boolean",optional:false,"default":true}]},addFriend:{target:"profile/addFriend",parameters:[{name:"personId",type:"integer",optional:false}]},addMultiFriends:{target:"profile/addMultiFriends",parameters:[{name:"ids",type:"string",optional:false}]},removeFriend:{target:"profile/removeFriend",parameters:[{name:"personId",type:"integer",optional:false}]},approveFriend:{target:"profile/approveFriend",parameters:[{name:"personId",type:"integer",optional:false}]},rejectFriend:{target:"profile/rejectFriend",parameters:[{name:"personId",type:"integer",optional:false},{name:"ignore",type:"boolean",optional:false,"default":false}]},deleteMessage:{target:"profile/deleteMessage",parameters:[{name:"messageId",type:"integer",optional:false},{name:"sentBox",type:"integer",optional:false}]},defaultPic:{target:"profile/defaultPic",parameters:[{name:"pic",type:"integer",optional:false}]},followUser:{target:"follow",parameters:[{name:"typeid",type:"integer",optional:false}]},unfollowUser:{target:"unfollow",parameters:[{name:"typeid",type:"integer",optional:false}]},addressbook:{target:"addressbook",parameters:[]},joinGroup:{target:"topic/join",parameters:[{name:"groupId",type:"integer",optional:false}]},requestContribution:{target:"topic/requestContribution",parameters:[{name:"topicId",type:"integer",optional:false}]},acceptContribution:{target:"topic/acceptContribution",parameters:[{name:"topicId",type:"integer",optional:false},{name:"personId",type:"integer",optional:false}]},rejectContribution:{target:"topic/rejectContribution",parameters:[{name:"topicId",type:"integer",optional:false},{name:"personId",type:"integer",optional:false}]},acceptContributionInvite:{target:"topic/acceptContributionInvite",parameters:[{name:"topicId",type:"integer",optional:false}]},rejectContributionInvite:{target:"topic/rejectContributionInvite",parameters:[{name:"topicId",type:"integer",optional:false}]},removeContribution:{target:"topic/removeContribution",parameters:[{name:"topicId",type:"integer",optional:false}]},removeContributor:{target:"topic/removeContributor",parameters:[{name:"contributorId",type:"integer",optional:false},{name:"topicId",type:"integer",optional:false}]},topicPic:{target:"topic/pic",parameters:[{name:"topicId",type:"integer",optional:false},{name:"url",type:"string",optional:true},]},inviteContributors:{target:"invite/contributors",parameters:[{name:"topicId",type:"integer",optional:false},{name:"people",type:"string",optional:true},{name:"emails",type:"string",optional:true}]},browseTopics:{target:"topic/browse",parameters:[{name:"categoryId",type:"integer",optional:false},{name:"startChar",type:"string",optional:true},{name:"page",type:"integer",optional:true}]},sendToFriends:{target:"memoir/sendToFriends",parameters:[{name:"memoirId",type:"integer",optional:false},{name:"typeId",type:"integer",optional:false},{name:"type",type:"integer",optional:false},{name:"emails",type:"string",optional:false},{name:"message",type:"string",optional:false},{name:"personName",type:"string",optional:true},{name:"personEmail",type:"string",optional:true}]},likeMemoir:{target:"memoir/like",parameters:[{name:"memoirId",type:"integer",optional:false},{name:"like",type:"boolean",optional:false}]},getPhotoLikers:{target:"memoir/like/getPhotoLikers",parameters:[{name:"memoirId",type:"integer",optional:false},{name:"photoId",type:"integer",optional:false}]},photoViewed:{target:"memoir/like/photoViewed",parameters:[{name:"memoirId",type:"integer",optional:false},{name:"photoId",type:"integer",optional:false},{name:"people",type:"string",optional:false},{name:"tags",type:"string",optional:false},{name:"place",type:"string",optional:false}]},getRecommendations:{target:"memoir/info/recommend",parameters:[{name:"memoirId",type:"integer",optional:false},{name:"photoId",type:"integer",optional:false},{name:"timelineId",type:"integer",optional:false,"default":0},{name:"timelineType",type:"integer",optional:false,"default":1}]},likePhoto:{target:"memoir/like/photoLike",parameters:[{name:"memoirId",type:"integer",optional:false},{name:"photoId",type:"integer",optional:false},{name:"extra",type:"boolean",optional:true}]},unlikePhoto:{target:"memoir/like/photoUnLike",parameters:[{name:"memoirId",type:"integer",optional:false},{name:"photoId",type:"integer",optional:false},{name:"extra",type:"boolean",optional:true}]},likeFBMemoir:{target:"memoir/facebookLike",parameters:[{name:"albumId",type:"string",optional:false},{name:"like",type:"boolean",optional:false}]},rateTimeline:{target:"timeline/rate",parameters:[{name:"timelineType",type:"integer",optional:false},{name:"timelineId",type:"integer",optional:false},{name:"rating",type:"integer",optional:false}]},getTags:{target:"timeline/getTags",parameters:[{name:"timelineType",type:"integer",optional:false},{name:"timelineId",type:"integer",optional:false}]},getInfo:{target:"timeline/getInfo",parameters:[{name:"type",type:"integer",optional:false},{name:"id",type:"integer",optional:false},{name:"fetchBuckets",type:"boolean",optional:true}]},getRecent:{target:"profile/recent",parameters:[]},fetchProfile:{target:"profile/fetch",parameters:[]},updateProfile:{target:"profile/update",parameters:[{name:"firstName",type:"string",optional:false},{name:"lastName",type:"string",optional:false},{name:"dob",type:"string",optional:false},{name:"gender",type:"integer",optional:false},{name:"about",type:"string",optional:true},{name:"city",type:"string",optional:true},{name:"country",type:"integer",optional:true}]},fetchTopic:{target:"topic/fetch",parameters:[{name:"topicId",type:"integer",optional:false}]},updateTopic:{target:"topic/update",parameters:[{name:"topicId",type:"integer",optional:false},{name:"title",type:"string",optional:false},{name:"description",type:"string",optional:false},{name:"category",type:"integer",optional:false},{name:"unlisted",type:"boolean",optional:false}]},fetchMemoirs:{target:"memoir/fetch",parameters:[{name:"typeid",type:"integer",optional:false},{name:"type",type:"integer",optional:false},{name:"buckets",type:"string",optional:false}]},fetchDetails:{target:"memoir/fetchDetails",parameters:[{name:"memoirIds",type:"string",optional:false}]},similarMemoirs:{target:"memoir/similar",parameters:[{name:"memoirIds",type:"string",optional:false}]},addPhotos:{target:"photo/add",parameters:[{name:"memoirId",type:"integer",optional:false},{name:"urls",type:"string",optional:false},{name:"update",type:"boolean",optional:true,"default":true}]},deletePhoto:{target:"photo/delete",parameters:[{name:"memoirId",type:"integer",optional:false},{name:"photoId",type:"integer",optional:false},{name:"update",type:"boolean",optional:true,"default":true}]},setPhotoCaption:{target:"photo/caption",parameters:[{name:"memoirId",type:"integer",optional:false},{name:"photoId",type:"integer",optional:false},{name:"caption",type:"string",optional:true,"default":""},{name:"update",type:"boolean",optional:true,"default":true}]},rotate:{target:"photo/rotate",parameters:[{name:"memoirId",type:"integer",optional:false},{name:"photoId",type:"integer",optional:false},{name:"angle",type:"integer",optional:false}]},setCover:{target:"photo/setCover",parameters:[{name:"memoirId",type:"integer",optional:false},{name:"photoId",type:"integer",optional:false}]},setPhotoTags:{target:"photo/setTags",parameters:[{name:"memoirId",type:"integer",optional:false},{name:"photoId",type:"integer",optional:false},{name:"tags",type:"string",optional:false}]},updatePhotos:{target:"photo/update",parameters:[{name:"memoirId",type:"integer",optional:false},{name:"deletePhotos",type:"string",optional:false},{name:"photoIds",type:"string",optional:false},{name:"captions",type:"string",optional:false},{name:"photoTagIds",type:"string",optional:false},{name:"tags",type:"string",optional:false},{name:"update",type:"boolean",optional:true,"default":true}]},getPhotoComments:{target:"photo/getComments",parameters:[{name:"memoirId",type:"integer",optional:false},{name:"photoId",type:"integer",optional:false}]},getPhotoLikes:{target:"photo/getLikes",parameters:[{name:"memoirId",type:"integer",optional:false},{name:"photoId",type:"integer",optional:false}]},addPhotoComment:{target:"photo/addComment",parameters:[{name:"memoirId",type:"integer",optional:false},{name:"photoId",type:"integer",optional:false},{name:"comment",type:"string",optional:false}]},addParticipants:{target:"dimension/addParticipants",parameters:[{name:"memoirId",type:"integer",optional:false},{name:"personIds",type:"string",optional:true},{name:"emails",type:"string",optional:true},{name:"fbIds",type:"string",optional:true}]},removeParticipants:{target:"dimension/removeParticipants",parameters:[{name:"memoirId",type:"integer",optional:false},{name:"personIds",type:"string",optional:false}]},updateParticipants:{target:"dimension/updateParticipants",parameters:[{name:"memoirId",type:"integer",optional:false},{name:"peopleToAdd",type:"string",optional:true},{name:"emailsToAdd",type:"string",optional:true},{name:"fbIds",type:"string",optional:true},{name:"peopleToDelete",type:"string",optional:true}]},updateFBParticipants:{target:"dimension/updateFBParticipants",parameters:[{name:"albumId",type:"string",optional:false},{name:"peopleToAdd",type:"string",optional:true}]},addTopics:{target:"dimension/addTopics",parameters:[{name:"memoirId",type:"integer",optional:false},{name:"topicIds",type:"string",optional:false}]},removeTopics:{target:"dimension/removeTopics",parameters:[{name:"memoirId",type:"integer",optional:false},{name:"topicIds",type:"string",optional:false}]},updateTopics:{target:"dimension/updateTopics",parameters:[{name:"memoirId",type:"integer",optional:false},{name:"topicsToAdd",type:"string",optional:true},{name:"topicsToDelete",type:"string",optional:true}]},setPlace:{target:"dimension/setPlace",parameters:[{name:"memoirId",type:"integer",optional:false},{name:"placeId",type:"integer",optional:false}]},removePlace:{target:"dimension/removePlace",parameters:[{name:"memoirId",type:"integer",optional:false}]},setTags:{target:"dimension/setTags",parameters:[{name:"memoirId",type:"integer",optional:false},{name:"tags",type:"string",optional:false}]},update:{target:"memoir/update",parameters:[{name:"memoirId",type:"integer",optional:false},{name:"title",type:"string",optional:false},{name:"happened",type:"string",optional:false},{name:"description",type:"string",optional:false,"default":""},{name:"visibility",type:"integer",optional:false}]},tagPhoto:{target:"photo/tag",parameters:[{name:"memoirId",type:"integer",optional:false},{name:"photoId",type:"integer",optional:false},{name:"personId",type:"integer",optional:true},{name:"fbId",type:"integer",optional:true},{name:"tag",type:"string",optional:true},{name:"personEmail",type:"string",optional:true},{name:"x",type:"number",optional:false},{name:"y",type:"number",optional:false},{name:"w",type:"number",optional:false},{name:"h",type:"number",optional:false},{name:"lp",type:"number",optional:false},{name:"tp",type:"number",optional:false}]},tagAcceptReject:{target:"photo/tagAcceptReject",parameters:[{name:"tagRequestId",type:"integer",optional:false},{name:"accept",type:"boolean",optional:false}]},removePhotoTag:{target:"photo/removeTag",parameters:[{name:"memoirId",type:"integer",optional:false},{name:"photoId",type:"integer",optional:false},{name:"tagId",type:"integer",optional:false}]},eventPublish:{target:"memoir/publish",parameters:[{name:"memoirId",type:"integer",optional:false}]},sendMessage:{target:"message/send",parameters:[{name:"personIds",type:"string",optional:false},{name:"subject",type:"string",optional:false},{name:"body",type:"integer",optional:false},{name:"threadId",type:"integer",optional:true}]},help:{target:"helpOverlays",parameters:[{name:"type",type:"integer",optional:false},{name:"disable",type:"string",optional:false}]},beta:{target:"invite/beta",parameters:[{name:"email",type:"string",optional:false},{name:"name",type:"string",optional:false},{name:"referrer",type:"string",optional:false}]},notifyTopBlobbers:{target:"topblobbersNotify",parameters:[{name:"topblobbers",type:"string",optional:true}]},getStreamStories:{target:"stream/get",parameters:[{name:"typeid",type:"integer",optional:false},{name:"type",type:"integer",optional:false},{name:"page",type:"integer",optional:false}]},getNewsfeed:{target:"stream/getNewsFeed",parameters:[{name:"page",type:"integer",optional:false}]},getLikesfeed:{target:"stream/getLikesFeed",parameters:[{name:"personId",type:"integer",optional:false},{name:"page",type:"integer",optional:false}]},getDiscussionFeed:{target:"stream/getDiscussionFeed",parameters:[{name:"timelineId",type:"integer",optional:false},{name:"timelineType",type:"integer",optional:false},{name:"page",type:"integer",optional:false}]},getRiverView:{target:"stream/getRiverView",parameters:[{name:"typeid",type:"integer",optional:false},{name:"type",type:"integer",optional:false},{name:"page",type:"integer",optional:false},{name:"embed",type:"boolean",optional:false,"default":false},{name:"sort",type:"boolean",optional:false,"default":false}]},getSearchRiverView:{target:"stream/searchRiver",parameters:[{name:"query",type:"string",optional:false},{name:"page",type:"integer",optional:false}]},getStreamStoryComments:{target:"stream/comment/get",parameters:[{name:"activityId",type:"integer",optional:false},{name:"memoirId",type:"integer",optional:true}]},getDiscussionComments:{target:"discussion/getComments",parameters:[{name:"discussionId",type:"integer",optional:false}]},removeDiscussionComment:{target:"discussion/removeComment",parameters:[{name:"discussionId",type:"integer",optional:false},{name:"commentId",type:"integer",optional:false}]},addDiscussionComment:{target:"discussion/addComment",parameters:[{name:"discussionId",type:"integer",optional:false},{name:"comment",type:"string",optional:false}]},addDiscussion:{target:"discussion/add",parameters:[{name:"timelineId",type:"integer",optional:false},{name:"timelineType",type:"integer",optional:false},{name:"comment",type:"string",optional:false}]},removeDiscussion:{target:"discussion/delete",parameters:[{name:"discussionId",type:"integer",optional:false}]},addStreamStoryComment:{target:"stream/comment/add",parameters:[{name:"activityId",type:"integer",optional:false},{name:"comment",type:"string",optional:false},{name:"memoirId",type:"integer",optional:true},{name:"extra",type:"boolean",optional:true}]},removeStreamStoryComment:{target:"stream/comment/remove",parameters:[{name:"activityId",type:"integer",optional:false},{name:"commentId",type:"integer",optional:false},{name:"memoirId",type:"integer",optional:true}]},getStreamStoryLikes:{target:"stream/like/get",parameters:[{name:"activityId",type:"integer",optional:false},{name:"memoirId",type:"integer",optional:true}]},likeStreamStory:{target:"stream/like/like",parameters:[{name:"activityId",type:"integer",optional:false},{name:"memoirId",type:"integer",optional:true}]},unlikeStreamStory:{target:"stream/like/unlike",parameters:[{name:"activityId",type:"integer",optional:false},{name:"memoirId",type:"integer",optional:true}]},updateShoppingCart:{target:"store/cart/update",parameters:[{name:"cartItemId",type:"integer",optional:true},{name:"quantity",type:"integer",optional:true},{name:"removeAddressId",type:"integer",optional:true}]},previewItem:{target:"store/cart/preview",parameters:[{name:"previewId",type:"integer",optional:false}]},trackStore:{target:"store/track",parameters:[{name:"url",type:"string",optional:false},{name:"extra",type:"string",optional:true}]},addCollagePhoto:{target:"facebook/collage/addCollagePhoto",parameters:[{name:"collage",type:"string",optional:false},{name:"url",type:"string",optional:false},{name:"pid",type:"string",optional:true},{name:"top",type:"string",optional:false},{name:"left",type:"string",optional:false},{name:"height",type:"string",optional:false},{name:"width",type:"string",optional:false},{name:"marginTop",type:"string",optional:false},{name:"marginLeft",type:"string",optional:false}]},clearCollage:{target:"facebook/collage/clearCollage",parameters:[{name:"collage",type:"string",optional:false}]},setCollageTitle:{target:"facebook/collage/setCollageTitle",parameters:[{name:"collage",type:"string",optional:false},{name:"title",type:"string",optional:false}]},login:{target:"account/login",parameters:[{name:"login",type:"string",optional:false},{name:"password",type:"string",optional:false},{name:"remember",type:"boolean",optional:true,"default":true}]},create:{target:"account/create",parameters:[{name:"email",type:"string",optional:false},{name:"password",type:"string",optional:false},{name:"remember",type:"boolean",optional:true,"default":true}]},fblinkup:{target:"account/fblinkup",parameters:[{name:"login",type:"string",optional:false},{name:"password",type:"string",optional:false}]},fbnew:{target:"account/fbnew",parameters:[{name:"email",type:"string",optional:false}]},postFeedback:{target:"postFeedback",parameters:[{name:"message",type:"string",optional:false},{name:"url",type:"string",optional:false},{name:"email",type:"string",optional:true}]},popularToday:{target:"photo/popularity",parameters:[{name:"memoirId",type:"integer",optional:false},{name:"location",type:"string",optional:false}]}}};TIMELINE_BG="http://cdn2.lifeblob.com/lifeblob/img/timeline/timeline-bg-1-525.v04435e.png";ZOOM_IN_CUR="http://cdn1.lifeblob.com/lifeblob/img/common/zoom-in.v5473ba.cur";GRABING_CUR="http://cdn2.lifeblob.com/lifeblob/img/common/grabbing.v41aaa6.cur";GRAB_CUR="http://cdn1.lifeblob.com/lifeblob/img/common/grab.vfba3dd.cur";ERROR_IMG="http://cdn1.lifeblob.com/lifeblob/img/common/error-16.ve2461d.png";SUCCESS_IMG="http://cdn2.lifeblob.com/lifeblob/img/common/success-16.v92e1e1.png";EDITOR_CSS="http://cdn3.lifeblob.com/lifeblob/css/editor.v0d256c.css";TRANS_IMG="http://cdn2.lifeblob.com/lifeblob/img/common/trans.v18c520.gif";GEOTAG_IMG="http://cdn2.lifeblob.com/lifeblob/img/common/place-50.va04ff8.png";TAG_IMG="http://cdn0.lifeblob.com/lifeblob/img/common/tag-50.v1ecd38.png";dojo.require("dojox.rpc.Service");dojo.require("dojo.cookie");dojo.require("dojo.i18n");dojo.registerModulePath("i18n","data/i18n");API_SVC=null;M=null;dojo.addOnLoad(function(){var a="messages.v17247f";dojo.requireLocalization("i18n",a,null,"ar,ca,da,de,cs,el,es,fi,fr,he,hu,ja,it,ko,nb,nl,pl,pt,ru,sk,sl,th,sv,tr,zh,pt-pt,zh-tw");M=dojo.i18n.getLocalization("i18n",a,dojo.locale);if(window.fbParams){for(var b in fbParams){smd.parameters.push({name:b,optional:false,"default":fbParams[b]});}}API_SVC=new dojox.rpc.Service(smd);});Date.parseFunctions={count:0};Date.parseRegexes=[];Date.formatFunctions={count:0};DOFF=new Date().getTimezoneOffset()*60;Date.prototype.dateFormat=function(b){if(Date.formatFunctions[b]==null){Date.createNewFormat(b);}var a=Date.formatFunctions[b];return this[a]();};Date.createNewFormat=function(format){var funcName="format"+Date.formatFunctions.count++,code="Date.prototype."+funcName+" = function(){return ",special=false,ch="",i;Date.formatFunctions[format]=funcName;for(i=0;i<format.length;++i){ch=format.charAt(i);if(!special&&ch=="\\"){special=true;}else{if(special){special=false;code+="'"+String.escape(ch)+"' + ";}else{code+=Date.getFormatCode(ch);}}}eval(code.substring(0,code.length-3)+";}");};Date.getFormatCode=function(a){switch(a){case"d":return"String.leftPad(this.getDate(), 2, '0') + ";case"D":return"Date.dayNames[this.getDay()].substring(0, 3) + ";case"j":return"this.getDate() + ";case"l":return"Date.dayNames[this.getDay()] + ";case"S":return"this.getSuffix() + ";case"w":return"this.getDay() + ";case"z":return"this.getDayOfYear() + ";case"W":return"this.getWeekOfYear() + ";case"F":return"Date.monthNames[this.getMonth()] + ";case"m":return"String.leftPad(this.getMonth() + 1, 2, '0') + ";case"M":return"Date.monthNames[this.getMonth()].substring(0, 3) + ";case"n":return"(this.getMonth() + 1) + ";case"t":return"this.getDaysInMonth() + ";case"L":return"(this.isLeapYear() ? 1 : 0) + ";case"Y":return"this.getFullYear() + ";case"y":return"('' + this.getFullYear()).substring(2, 4) + ";case"a":return"(this.getHours() < 12 ? 'am' : 'pm') + ";case"A":return"(this.getHours() < 12 ? 'AM' : 'PM') + ";case"g":return"((this.getHours() %12) ? this.getHours() % 12 : 12) + ";case"G":return"this.getHours() + ";case"h":return"String.leftPad((this.getHours() %12) ? this.getHours() % 12 : 12, 2, '0') + ";case"H":return"String.leftPad(this.getHours(), 2, '0') + ";case"i":return"String.leftPad(this.getMinutes(), 2, '0') + ";case"s":return"String.leftPad(this.getSeconds(), 2, '0') + ";case"O":return"this.getGMTOffset() + ";case"T":return"this.getTimezone() + ";case"Z":return"(this.getTimezoneOffset() * -60) + ";case"X":return"String.leftPad(this.getMilliseconds(), 3, '0') + ";default:return"'"+String.escape(a)+"' + ";}};Date.parseDate=function(a,d,b){if(Date.parseFunctions[d]==null){Date.createParser(d,b);}var c=Date.parseFunctions[d];return Date[c](a);};Date.createParser=function(format,utc){var funcName="parse"+Date.parseFunctions.count++,regexNum=Date.parseRegexes.length,currentGroup=1,regex="",special=false,ch="",code="Date."+funcName+" = function(input){\nvar y = -1, m = -1, d = -1, h = -1, i = -1, s = -1, x = 0;\nvar d = new Date();\ny = d.getFullYear();\nm = d.getMonth();\nd = d.getDate();\nvar results = input.match(Date.parseRegexes["+regexNum+"]);\nif (results && results.length > 0) {",i,obj;Date.parseFunctions[format]=funcName;for(i=0;i<format.length;++i){ch=format.charAt(i);if(!special&&ch=="\\"){special=true;}else{if(special){special=false;regex+=String.escape(ch);}else{obj=Date.formatCodeToRegex(ch,currentGroup,(!utc?0:DOFF));currentGroup+=obj.g;regex+=obj.s;if(obj.g&&obj.c){code+=obj.c;}}}}code+="if (y > 0 && m >= 0 && d > 0 && h >= 0 && i >= 0 && x >= 0 && "+(!utc?"s >= 0":"true")+")\n{return new Date(y, m, d, h, i, s, x);}\nelse if (y > 0 && m >= 0 && d > 0 && h >= 0 && i >= 0 && x >= 0)\n{return new Date(y, m, d, h, i, x);}\nelse if (y > 0 && m >= 0 && d > 0 && h >= 0 && i >= 0)\n{return new Date(y, m, d, h, i);}\nelse if (y > 0 && m >= 0 && d > 0 && h >= 0)\n{return new Date(y, m, d, h);}\nelse if (y > 0 && m >= 0 && d > 0)\n{return new Date(y, m, d);}\nelse if (y > 0 && m >= 0)\n{return new Date(y, m);}\nelse if (y > 0)\n{return new Date(y);}\n}return null;}";Date.parseRegexes[regexNum]=new RegExp("^"+regex+"$");eval(code);};Date.formatCodeToRegex=function(b,a,c){switch(b){case"D":return{g:0,c:null,s:"(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat)"};case"j":case"d":return{g:1,c:"d = parseInt(results["+a+"], 10);\n",s:"(\\d{1,2})"};case"l":return{g:0,c:null,s:"(?:"+Date.dayNames.join("|")+")"};case"S":return{g:0,c:null,s:"(?:st|nd|rd|th)"};case"w":return{g:0,c:null,s:"\\d"};case"z":return{g:0,c:null,s:"(?:\\d{1,3})"};case"W":return{g:0,c:null,s:"(?:\\d{2})"};case"F":return{g:1,c:"m = parseInt(Date.monthNumbers[results["+a+"].substring(0, 3)], 10);\n",s:"("+Date.monthNames.join("|")+")"};case"M":return{g:1,c:"m = parseInt(Date.monthNumbers[results["+a+"]], 10);\n",s:"(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)"};case"n":case"m":return{g:1,c:"m = parseInt(results["+a+"], 10) - 1;\n",s:"(\\d{1,2})"};case"t":return{g:0,c:null,s:"\\d{1,2}"};case"L":return{g:0,c:null,s:"(?:1|0)"};case"Y":return{g:1,c:"y = parseInt(results["+a+"], 10);\n",s:"(\\d{4})"};case"y":return{g:1,c:"var ty = parseInt(results["+a+"], 10);\ny = ty > Date.y2kYear ? 1900 + ty : 2000 + ty;\n",s:"(\\d{1,2})"};case"a":return{g:1,c:"if (results["+a+"] == 'am') {\nif (h == 12) { h = 0; }\n} else { if (h < 12) { h += 12; }}",s:"(am|pm)"};case"A":return{g:1,c:"if (results["+a+"] == 'AM') {\nif (h == 12) { h = 0; }\n} else { if (h < 12) { h += 12; }}",s:"(AM|PM)"};case"g":case"G":case"h":case"H":return{g:1,c:"h = parseInt(results["+a+"], 10);\n",s:"(\\d{1,2})"};case"i":return{g:1,c:"i = parseInt(results["+a+"], 10);\n",s:"(\\d{2})"};case"s":return{g:1,c:"s = parseInt(results["+a+"], 10)-("+c+");\n",s:"(\\d{2})"};case"X":return{g:1,c:"x = parseInt(results["+a+"], 10);\n",s:"?(\\d{1,3})?"};case"O":return{g:0,c:null,s:"[+-]\\d{4}"};case"T":return{g:0,c:null,s:"[A-Z]{3}"};case"Z":return{g:0,c:null,s:"[+-]\\d{1,5}"};default:return{g:0,c:null,s:String.escape(b)};}};Date.prototype.getTimezone=function(){return this.toString().replace(/^.*? ([A-Z]{3}) [0-9]{4}.*$/,"$1").replace(/^.*?\(([A-Z])[a-z]+ ([A-Z])[a-z]+ ([A-Z])[a-z]+\)$/,"$1$2$3");};Date.prototype.getGMTOffset=function(){return(this.getTimezoneOffset()>0?"-":"+")+String.leftPad(Math.floor(this.getTimezoneOffset()/60),2,"0")+String.leftPad(this.getTimezoneOffset()%60,2,"0");};Date.prototype.getDayOfYear=function(){var a=0,b;Date.daysInMonth[1]=this.isLeapYear()?29:28;for(b=0;b<this.getMonth();++b){a+=Date.daysInMonth[b];}return a+this.getDate()-1;};Date.prototype.getWeekOfYear=function(){var b=this.getDayOfYear()+(4-this.getDay()),a=new Date(this.getFullYear(),0,1),c=(7-a.getDay()+4);document.write(c);return String.leftPad(((b-c)/7)+1,2,"0");};Date.prototype.isLeapYear=function(){var a=this.getFullYear();return((a&3)==0&&(a%100||(a%400==0&&a)));};Date.prototype.getFirstDayOfMonth=function(){var a=(this.getDay()-(this.getDate()-1))%7;return(a<0)?(a+7):a;};Date.prototype.getLastDayOfMonth=function(){var a=(this.getDay()+(Date.daysInMonth[this.getMonth()]-this.getDate()))%7;return(a<0)?(a+7):a;};Date.prototype.getDaysInMonth=function(){Date.daysInMonth[1]=this.isLeapYear()?29:28;return Date.daysInMonth[this.getMonth()];};Date.prototype.getSuffix=function(){switch(this.getDate()){case 1:case 21:case 31:return"st";case 2:case 22:return"nd";case 3:case 23:return"rd";default:return"th";}};String.escape=function(a){return a.replace(/('|\\)/g,"\\$1");};String.leftPad=function(d,b,c){var a=new String(d);if(c==null){c=" ";}while(a.length<b){a=c+a;}return a;};Date.daysInMonth=[31,28,31,30,31,30,31,31,30,31,30,31];Date.monthNames=["January","February","March","April","May","June","July","August","September","October","November","December"];Date.dayNames=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];Date.y2kYear=50;Date.monthNumbers={Jan:0,Feb:1,Mar:2,Apr:3,May:4,Jun:5,Jul:6,Aug:7,Sep:8,Oct:9,Nov:10,Dec:11};Date.patterns={ISO8601LongPattern:"Y-m-d H:i:s",ISO8601ShortPattern:"Y-m-d",ShortDatePattern:"n/j/Y",LongDatePattern:"l, F d, Y",FullDateTimePattern:"l, F d, Y g:i:s A",MonthDayPattern:"F d",ShortTimePattern:"g:i A",LongTimePattern:"g:i:s A",SortableDateTimePattern:"Y-m-d\\TH:i:s",UTC:"Y-m-d\\TH:i:s\\Z",UTCM:"Y-m-d\\TH:i:s.X\\Z",UniversalSortableDateTimePattern:"Y-m-d H:i:sO",YearMonthPattern:"F, Y"};Date.prototype.clone=function(){return new Date(this.getTime());};Date.prototype.compareTo=function(a){if(isNaN(this)){throw new Error(this);}else{if(a instanceof Date&&!isNaN(a)){return(this>a)?1:(this<a)?-1:0;}}throw new TypeError(a);};Date.prototype.pretty=function(){var c=this.getTime(),b=(((new Date()).getTime()-c)/1000),a=Math.floor(b/86400);if(isNaN(a)||a<0||a>=31){return this.dateFormat("d M Y, H:i");}return a==0&&(b<60&&"just now"||b<120&&"1 minute ago"||b<3600&&Math.floor(b/60)+" minutes ago"||b<7200&&"1 hour ago"||b<86400&&Math.floor(b/3600)+" hours ago")||a==1&&"Yesterday"||a<7&&a+" days ago"||a<31&&Math.ceil(a/7)+" weeks ago";};GSFN={feedback:function(b){this.feedback_url=b;this.tab_html='<a href="#" id="fdbk_tab">FEEDBACK</a>';this.overlay_html='<div id="fdbk_overlay" style="display:none"><div id="fdbk_container"><a href="#" onclick="GSFN.hide();return false" id="fdbk_close"></a><iframe src="" id="fdbk_iframe" allowTransparency="true" scrolling="no" frameborder="0"></iframe></div><div id="fdbk_screen"></div></div>';var a=document.getElementsByTagName("body")[0];this.gId("fdbk_tab").onclick=function(){GSFN.show();return false;};this.gId("fdbk_iframe").setAttribute("src","");},set_position:function(){this.scroll_top=document.documentElement.scrollTop||document.body.scrollTop;this.scroll_height=document.documentElement.scrollHeight;this.client_height=window.innerHeight||document.documentElement.clientHeight;this.gId("fdbk_screen").style.height=this.scroll_height+"px";this.gId("fdbk_container").style.top=this.scroll_top+(this.client_height*0.1)+"px";},show:function(){if(this.gId("fdbk_iframe").getAttribute("src")==""){this.gId("fdbk_iframe").setAttribute("src",this.feedback_url);if(this.gId("fdbk_iframe").addEventListener){this.gId("fdbk_iframe").addEventListener("load",GSFN.loaded,false);}else{if(this.gId("fdbk_iframe").attachEvent){this.gId("fdbk_iframe").detachEvent("onload",GSFN.loaded);this.gId("fdbk_iframe").attachEvent("onload",GSFN.loaded);}}}this.set_position();this.gId("fdbk_overlay").style.display="block";},hide:function(){this.gId("fdbk_overlay").style.display="none";},loaded:function(){GSFN.gId("fdbk_iframe").className="loaded";},gId:function(a){return document.getElementById(a);}};(function(q){var f=q.place,o=q.style,k="display",m="visibility",g={slow:1800,fast:420,granny:7600,racecar:200,snail:1200,rocket:100,peller:3500,mild:900},v=q.config.keepLayout||false,h=v?m:k,e=v?"hidden":"none",j=v?"visible":(q.config.useBlock?"block":""),b=function(d){return g[d in g?d:"fast"];},r=q.NodeList,p=r._adaptAsForEach,t,c=0,l=/enter|over/,a="getSelection",u=q.global[a]||q.doc[a]||function(){return q.doc.selection.createRange().text||"";};q[a]=function(){return u()+"";};q.unique=function(w,d){d=d||"djid_";do{t=d+(++c);}while(w(t));return t;};q.generateId=function(d){return q.unique(q.byId,d);};q.load=function(){var w=q._toArray(arguments),d=w.length,x=d&&!q.isString(w[d-1])?w.pop():null;q.forEach(w,q.require,q);x&&q.ready(x);};q.blink=function(B,z,A){var w=dojo.fadeOut({node:B,duration:z||300}),y=dojo.fadeIn({node:B,duration:z||300}),A=A||4,x=[],d;for(d=0;d<A;d++){x.push(w);x.push(y);}dojo.fx.chain(x).play();};q.upClass=function(x,d,w){if(w){q.addClass(x,d);}else{q.removeClass(x,d);}};q.showHide=function(x,w,d){if(w){q.show(x,d);}else{q.hide(x,d);}};q.show=function(w,d){if(!d){q.removeClass(w,"hidden");}else{if(q.isString(d)){o(w,"opacity",0);q.show(w);q.anim(w,{opacity:1},b(d));}}};q.hide=function(w,d){if(!d){q.addClass(w,"hidden");}else{if(q.isString(d)){o(w,"opacity",1);q.anim(w,{opacity:0},b(d),null,q.hitch(q,"hide",w));}}};q.wrap=function(x,d){var w=q.create(d);f(w,x,"before");f(x,w,"first");return w;};q.toggle=function(w,d){w=q.byId(w);q[(w.style[h]==e?"show":"hide")](w,d);};q.qw=function(d){return d?q.map(d.split(/\ +/),q.trim):[];};q.sub=q.subscribe;q.pub=function(d){q.publish(d,q._toArray(arguments,1));};q.forIn=function(x,y,w){w=w||q.global;for(var d in x){y.call(w,x[d],d,x);}};q.compose=function(){var d=q._toArray(arguments);return function(){var w=arguments;q.forEach(d,function(x){w=x.apply(this,q.isArrayLike(w)?w:[w]);});return w;};};q.delay=function(w,x){var d=q._toArray(arguments,2);return setTimeout(function(){w.apply(this,d);},x);};q.defer=function(d){q.delay(d,0);};q.now=function(){return +(new Date());};q.reduce=function(d,w){return q.map(d,function(x){return x[w];});};q.all=q.every;q.any=q.some;q.each=function(d){return d&&q[(q.isArrayLike(d)?"forEach":"forIn")].apply(q,arguments);};q.extend(r,{show:p(q.show),hide:p(q.hide),showHide:p(q.showHide),toggle:p(q.toggle),destroy:p(q.destroy),selectable:p(q.setSelectable),upClass:p(q.upClass),blink:p(q.blink),create:function(d){return this.map(function(){return q.create(d);})._stash(this);},animate:function(w,x,y,d){return this.forEach(function(C,A,z){var B=q.anim(C,w,x,y);if(d&&A==z.length-1){q.connect(B,"onEnd",d);}});},size:function(d){d=d||"marginBox";var w=this.map(function(x){return q[d](x);});return w.length==1?w[0]:w;},hover:function(w,d){return this.onmouseenter(w).onmouseleave(d||w);},hoverClass:function(d){return this.hover(function(w){q.toggleClass(this,d,l.test(w.type));});},grab:function(w,d,x){this.length&&q.xhr(x||"GET",q._mixin({url:w},d)).addCallback(this,function(y){this.addContent(y,"only");});return this;}});$=q.query;})(dojo);BASIC=0;MIN=1;MAX=2;PERSON_TYPE="user";PLACE_TYPE="place";DERIVED_TYPE="derived";FACEBOOK_APP_TYPE="facebookapp";TAG_TYPE="tag";TOPIC_TYPE="topic";FACEBOOK_PERSON_TYPE="facebook/view";NEW=0;INITIALIZED=1;MID=2;VISIBLE=3;MAXIMIZED=4;DELETED=5;DP=[Date.patterns.ISO8601LongPattern,Date.patterns.UTC,Date.patterns.UTCM];APP_TYPE={LB_UI:0,LB_AUTO:1,PICASA:11,FLICKR:12,SMUGMUG:13,FACEBOOK_PHOTOS:14,PHOTOBUCKET:16,BLOG:20,MAIL:40,GMAIL:41,YMAIL:42,AOL:45,LIVE:43,FACEBOOK:44,YOUTUBE:51,TWITTER:61,FREEBASE:100,DAYLIFE:101,SUGGEST:9,NONPERSISTENT:15};EMAIL_REGEX=new RegExp("\\b(^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@([A-Za-z0-9-])+(\\.[A-Za-z0-9-]+)*((\\.[A-Za-z0-9]{2,})|(\\.[A-Za-z0-9]{2,}\\.[A-Za-z0-9]{2,}))$)\\b","g");TIMELINE_COMMENTS_PER_PAGE=5;TIMELINE_COMMENTS_PER_BLOCK=100;NEW_POST_DELTA=3600000*24;dojo.declare("Suggest",null,{constructor:function(f,a,d,b){var e=this;e.iv=b.initialValues||[];e.c=f;e.type=d;e.cb=b.callbacks||{};e.clazz=b.clazz;e.additional=b.additional;e.n=a;e.nv=b.newValueText||"";e.ss=b.singleSelect||false;e.h=b.helpText||"";e.data={user:"suggest.friends",topic:"suggest.topics",tags:"suggest.tags","user.name":"suggest.friends.name","user.email":"suggest.friends.email","suggest.all":"suggest.all","suggest.fb":"suggest.fb"};},addAdditionals:function(c){var a=this.additional,b;if(a){for(b=0;b<a.length;b++){c.push(a[b]);}}return c;},initialize:function(){Suggest.count++;var b=this,a=b.data[b.type];try{if(!cm.get(a)){Suggest.init();}b.dd=new DropDown();b.dd.initialize(b.c,b.n,b.iv,b.addAdditionals(cm.get(a)),b.nv,b.h,b.ss,b.cb,b.clazz);}catch(c){console.log("exception in suggest init");console.log(c);}},clear:function(a){if(this.dd){this.dd.clear(a);}},addSelected:function(a){if(this.dd){this.dd.addSelected(a);}}});Suggest.count=0;Suggest.init=function(){try{if(!cm.get("addressbook.friends")){var k=[],a=[],b=[],c=[],h=[],l={},d={},f=LB.getUser();if(f.logged){var g=f.person;g.type=1;k.push({key:g.name,value:{k:"id",v:g.id},original:g});k.push({key:"Me",value:{k:"id",v:g.id},original:g});h.push({key:g.name,value:{k:"id",v:g.id},original:g});h.push({key:"Me",value:{k:"id",v:g.id},original:g});c.push({key:"My Timeline",value:{k:"pid",v:g.id},original:g});l[g.id]=g;}cm.put("addressbook.imports",a);cm.put("addressbook.friends",k);cm.put("addressbook.friends.idmap",l);cm.put("addressbook.friends.fidmap",d);cm.put("user.name",k);cm.put("user.email",a);cm.put("user.topics",b);cm.put("suggest.fb",[]);cm.put("suggest.all",c);cm.put("suggest.topics",b);cm.put("suggest.tags",[]);cm.put("suggest.friends",h);cm.put("suggest.friends.name",k);cm.put("suggest.friends.email",a);cm.put("suggest.newemails",{});}}catch(j){console.log("error in suggest.load");console.log(j);}};Suggest.flush=function(){if(cm){cm.put("suggest.friends",null);cm.put("suggest.topics",null);cm.put("suggest.tags",null);cm.put("suggest.friends.name",null);cm.put("suggest.friends.email",null);cm.put("user.allsuggest",null);cm.put("addressbook.friends",null);}};Suggest.fetchTags=function(){try{if(!cm.get("tags.loaded")){console.log("Fetching Tags");cm.put("tags.loaded",true);var c=cm.get("suggest.tags"),a=LB.getUser(),b,h=1;if(a.logged){b=a.person.id;if(window.th&&th.opts){var g=th.opts.obj,d=g.type;h=(d==TOPIC_TYPE)?4:((d==PLACE_TYPE)?2:((d==TAG_TYPE)?3:1));if(h!=1){b=g.id;}}API_SVC.getTags(h,b).addCallback(function(k){if(k.stat!="ok"){return;}var j=k.result,m=j.length,e,l;for(l=0;l<m;l++){e=j[l];c.push({key:e.name,value:{k:"name",v:e.displayName},original:e});}});dojo.publish("suggest.rebuild");}}}catch(f){console.log("error in suggest.fetchTags");console.log(f);}};Suggest.fetchAddressBook=function(){try{API_SVC.addressbook().addCallback(function(g){if(g.stat!="ok"){console.log("Error. Code:"+g.code+" Desc:"+g.desc);return;}var t=g.result,j=t.imports,h=t.people,p=t.topics,r=cm.get("addressbook.friends"),b=cm.get("addressbook.imports"),d=cm.get("user.topics"),q=cm.get("addressbook.friends.idmap"),f=cm.get("addressbook.friends.fidmap"),e=cm.get("suggest.all"),l=cm.get("suggest.friends"),k;for(k=0;k<j.length;k++){var m=j[k];m.type=10;b.push({key:m.email,value:{k:"email",v:m.email},original:m});e.push({key:m.email,value:{k:"email",v:m.email},original:m});l.push({key:m.email,value:{k:"email",v:m.email},original:m});}for(k=0;k<h.length;k++){var c=h[k];c.type=1;r.push({key:c.name,value:{k:"id",v:c.id},original:c});e.push({key:c.name,value:{k:"pid",v:c.id},original:c});l.push({key:c.name,value:{k:"id",v:c.id},original:c});q[c.id]=c;if(c.fbid){f[c.fbid]=c;}}for(k=0;k<p.length;k++){var o=p[k];o.type=2;d.push({key:o.name,value:{k:"id",v:o.id},original:o});e.push({key:o.name,value:{k:"tid",v:o.id},original:o});}d.sort(function(v,u){return v.original.name.localeCompare(u.original.name);});dojo.publish("suggest.rebuild");});}catch(a){console.log("error in suggest.fetchAddressBook");console.log(a);}};Suggest.getEmails=function(k,f){var e=true,c=[],a=cm.get("addressbook.imports"),b=cm.get("suggest.all"),d=cm.get("suggest.friends"),g=cm.get("suggest.newemails"),j,h=false;dojo.query(k,f).forEach(function(l){j=l.value;if(!ut.getEmail(j)){dojo.addClass(l.parentNode,"sugg_error");e=false;}else{c.push(j);if(dojo.attr(l,"suggested")&&!g[j]){var m={name:j,email:j};a.push({key:j,value:{k:"email",v:j},original:m});b.push({key:j,value:{k:"email",v:j},original:m});d.push({key:j,value:{k:"email",v:j},original:m});h=true;g[j]=true;}}});if(h){dojo.publish("suggest.rebuild");}return e?c:false;};function DropDown(){this.data=[];this.dataIndex=[];this.suggestOpen=false;this.floater;this.floaterContent;this.max_matches=10;var a=this;this.initialize=function(d,c,h,k,l,q,g,p,m){this.data=k;this.container=d;this.containerDiv=d;this.singleSelect=g;this.enableNew=(l.length!=0);this.newValueText=l;var t=document.createElement("ul");dojo.addClass(t,"sugg_cont");dojo.place("<li class='spacer'></li>",t);var f=document.createElement("input");dojo.addClass(f,"suggest_text_box");dojo.attr(f,"type","text");dojo.attr(f,"autocomplete","off");var e=dojo.place("<li></li>",t);e.appendChild(f);d.appendChild(t);var o=document.createElement("div");dojo.addClass(o,m||"suggest_holder");this.floaterContent=document.createElement("div");o.appendChild(this.floaterContent);dojo.connect(o,"keydown",this,"handleKeyDown");dojo.connect(o,"keyup",this,"handleKeyPress");dojo.place(o,t,"after");dojo.connect(f,"keydown",this,"handleKeyDown");dojo.connect(f,"keyup",this,"handleKeyPress");dojo.connect(f,"focus",this,"handleFocus");dojo.connect(f,"blur",this,"handleBlur");if(q.length>0){var b=document.createElement("div");b.appendChild(document.createTextNode(q));dojo.addClass(b,"suggest_help_text");dojo.place(b,t,"after");dojo.addClass(b,"hidden");this.helpTextNode=b;}dojo.connect(document,"mouseup",this,"handleClick");dojo.connect(document,"mouseover",this,"handleMouseOver");if(p){if(p.onselect){dojo.connect(this,"afterActivateCurrentSmartInputMatch",p.onselect);}if(p.onenter){dojo.connect(this,"nonSuggestionCreate",p.onenter);}if(p.onhide){dojo.connect(this,"hideSmartInputFloater",p.onhide);}if(p.onshow){dojo.connect(this,"showSmartInputFloater",p.onshow);}}dojo.connect(this,"afterActivateCurrentSmartInputMatch",this,"verifySingleSelect");dojo.connect(this,"nonSuggestionCreate",this,"verifySingleSelect");dojo.connect(this.container,"keydown",this,"mainContainerKeyPress");dojo.connect(this.container,"onclick",this,"textBoxFocus");this.count=0;this.sequence=0;this.fieldCont=t;this.inputBox=f;this.inputBoxHolder=e;this.name=c;this.floater=o;for(var j=0;j<h.length;j++){var r=h[j];dojo.place(this.createSuggestion(r.key,r.value,r.original,!r.disabled),e,"before");}dojo.subscribe("suggest.rebuild",null,function(){a.dataIndex=[];delete (a.revisedCollection);});};this.addSelected=function(c){for(var b=0;b<c.length;b++){dojo.place(this.createSuggestion(c[b].key,c[b].value,c[b].original,!c[b].disabled),this.inputBoxHolder,"before");}};this.verifySingleSelect=function(){dojo.query("li.sugg_hold",this.containerDiv).forEach(function(d,c,b){if((c==0)&&a.singleSelect){dojo.addClass(a.inputBox,"hidden");}});};this.mainContainerKeyPress=function(c){var b=c.keyCode;if(b){switch(c.keyCode){case 46:this.deleteFocus();break;case 8:if(this.inputBox.value.length==0){this.setLastFocus();}break;case 37:this.moveLeft();break;case 39:this.moveRight();break;}}};this.textBoxFocus=function(b){if(!dojo.hasClass(this.inputBox,"hidden")){this.inputBox.focus();}};this.suggestionUnselect=function(b){dojo.query(".sugg_focus",this.containerDiv).removeClass("sugg_focus");};this.suggestionSelect=function(b){this.suggestionUnselect();dojo.addClass(b.currentTarget,"sugg_focus");};this.moveLeft=function(){var b=0;dojo.query(".sugg_focus",this.containerDiv).forEach(function(c){b=parseInt(c.getAttribute("index"));});if(b>1){this.suggestionUnselect();this.selectSuggestionIndex(b-1);}};this.moveRight=function(){var b=this.count;dojo.query(".sugg_focus",this.containerDiv).forEach(function(c){b=parseInt(c.getAttribute("index"));});if(b<this.count){this.suggestionUnselect();this.selectSuggestionIndex(b+1);}};this.selectSuggestionIndex=function(b){dojo.query("[index="+b+"]",this.containerDiv).addClass("sugg_focus");};this.hasSuggests=function(){return dojo.query(".suggest_holder",this.containerDiv).length>0;};this.hasFocus=function(){return dojo.query(".sugg_focus",this.containerDiv).length>0;};this.deleteFocus=function(){dojo.query(".sugg_focus",this.containerDiv).orphan();dojo.removeClass(this.inputBox,"hidden");this.updateIndices();};this.setLastFocus=function(){this.suggestionUnselect();if(this.hasSuggests()){dojo.query("[index="+this.count+"]",this.containerDiv).addClass("sugg_focus");}};this.addSuggestion=function(f,e,c,d,b){dojo.place(this.createSuggestion(f,e,c,d,b),this.inputBoxHolder,"before");};this.updateIndices=function(){var b=this;b.count=0;dojo.query(".sugg_hold").forEach(function(c){b.count++;c.setAttribute("index",b.count);});};this.createSuggestion=function(l,j,b,g,d){var h=this,f=document.createElement("li"),e;dojo.addClass(f,"sugg_hold");f.innerHTML=l+" ";if(g){dojo.connect(f,"onclick",h,"suggestionSelect");h.sequence++;dojo.attr(f,"seq","suggest_"+h.sequence);var m=document.createElement("img");dojo.addClass(m,"remove");m.src="http://cdn0.lifeblob.com/lifeblob/img/theme-gray/common/suggest/delete.v9406d0.png";m.title="Delete";dojo.attr(m,"del",h.sequence);f.appendChild(m);dojo.connect(m,"onclick",function(o){dojo.query("[seq=suggest_"+dojo.attr(o.currentTarget,"del")+"]",f.parentNode).orphan();dojo.removeClass(h.inputBox,"hidden");});if(b&&b.type==4){dojo.addClass(f,"sugg_fb");}}else{dojo.addClass(f,"sugg_readonly");f.title="Cannot remove";}var c=["<input name='",h.name,j.k,"' value='",j.v,"' type='hidden'/>"].join(""),k=dojo.place(c,f);for(e in d){dojo.attr(k,e,d[e]);}return f;};this.nonSuggestionCreate=function(){};this.freezeEvent=function(b){dojo.stopEvent(b);return false;};this.isWithinNode=function(h,d,k,b,g){var f=false,j=h;while(j&&!f){if((j.id&&(j.id==d))||(j.className&&(j.className==d+"Class"))||(!b&&k&&j.className&&(j.className==k))||(!b&&k&&j.className&&(j.className.indexOf(k)!=-1))||(b&&j.tagName&&(j.tagName.toLowerCase()==b))||(g&&(j==g))){f=j;}else{j=j.parentNode;}}return j;};this.handleKeyPress=function(d){if(this.helpTextNode){dojo.addClass(this.helpTextNode,"hidden");}var c=d.keyCode,b=this.inputBox;if(this.suggestOpen&&((c==13)||(c==9))){this.selectingSomething=true;if(dojo.isSafari){b.blur();}b.focus();b.value=b.value.replace(/[ \r\n\t\f\s]+$/gi," ");this.hideSmartInputFloater();}else{if(d.target&&(c!=38)&&(c!=40)&&(c!=37)&&(c!=39)&&(c!=13)&&(c!=27)){if(!this.suggestOpen||(this.suggestOpen&&!this.selectingSomething)){this.processSmartInput(d.target);}}else{if(this.suggestOpen&&b){b.focus();}}}};this.handleKeyDown=function(d){if(this.helpTextNode){dojo.addClass(this.helpTextNode,"hidden");}var c=d.keyCode,b=this.inputBox,f=this.newValueText;if(this.suggestOpen&&c){if(c==40){this.selectingSomething=true;this.freezeEvent(d);if(dojo.isGecko){b.blur();}this.selectNextSmartInputMatchItem();}else{if(c==38){this.selectingSomething=true;this.freezeEvent(d);if(dojo.isGecko){b.blur();}this.selectPreviousSmartInputMatchItem();}else{if((c==13)||(c==9)){this.selectingSomething=true;this.activateCurrentSmartInputMatch();this.hideSmartInputFloater();this.afterActivateCurrentSmartInputMatch();this.freezeEvent(d);}else{if(c==27){this.hideSmartInputFloater();this.freezeEvent(d);}else{if(c==188&&b.value.length>0&&this.enableNew){var e={k:f,v:b.value};this.addSuggestion(b.value,e,null,true,{suggested:"false"});this.inputBox.value="";this.freezeEvent(d);this.nonSuggestionCreate();}else{this.selectingSomething=false;}}}}}}else{if((c==188||c==9||c==13)&&b.value.length>0&&this.enableNew){var e={k:f,v:b.value};this.addSuggestion(b.value,e,null,true,{suggested:"false"});b.value="";this.freezeEvent(d);this.nonSuggestionCreate();}}};this.handleFocus=function(b){if(!this.suggestOpen||(this.suggestOpen&&!this.selectingSomething)){this.processSmartInput(b.target);}if(dojo.style(this.floater,"display")=="none"&&this.helpTextNode){dojo.removeClass(this.helpTextNode,"hidden");}};this.handleBlur=function(d){if(this.helpTextNode){dojo.addClass(this.helpTextNode,"hidden");}var b=this.inputBox,f=this.newValueText,c=this.enableNew;if(this.suggestOpen&&!this.selectingSomething){this.hideSmartInputFloater();if(b.value.length>0&&c){var e={k:f,v:b.value};this.addSuggestion(b.value,e,null,true,{suggested:"false"});this.nonSuggestionCreate();}b.value="";return;}if(!this.suggestOpen){if(b.value.length>0&&c){var e={k:f,v:b.value};this.addSuggestion(b.value,e,null,true,{suggested:"false"});this.nonSuggestionCreate();}b.value="";return;}b.value="";return;};this.handleClick=function(b){if(this.suggestOpen&&this.selectingSomething){this.selectFromMouseClick();}};this.handleMouseOver=function(b){if(this.suggestOpen&&(mEl=this.isWithinNode(b.target,null,"match_suggest_item",null,null))){this.selectingSomething=true;this.selectFromMouseOver(mEl);}else{if(this.suggestOpen){this.selectingSomething=false;}}};this.showSmartInputFloater=function(){if(dojo.style(this.floater,"display")=="none"){dojo.style(this.floater,"display","block");}};this.hideSmartInputFloater=function(){if(this.suggestOpen){dojo.style(this.floater,"display","none");this.suggestOpen=false;}};this.processSmartInput=function(b){if(!this.suggestOpen){this.suggestOpen=true;this.customFloater=false;this.select_suggest_item=null;}this.inputBox=b;this.setSmartInputData();if(this.matchCollection&&(this.matchCollection.length>0)){this.selectSmartInputMatchItem(0);}var c=this.getSmartInputBoxContent();if(c){this.modifySmartInputBoxContent(c);this.showSmartInputFloater();}else{this.hideSmartInputFloater();}};this.smartInputMatch=function(c,d,b){this.key=c;this.value=d;this.original=b;this.isSelected=false;};this.simplify=function(b){return b.replace(/^[ \s\f\t\n\r]+/,"").replace(/[ \s\f\t\n\r]+$/,"");};this.getUserInputToMatch=function(d){var c=d;if(c){var b=d.split(",");if(b.length>0){c=b[b.length-1];}}return c;};this.getUserInputBase=function(){var b=this.inputBox.value;if((lastComma=b.lastIndexOf(","))!=-1){b=b.replace(/^(.*\,[ \r\n\t\f\s]*).*$/i,"$1");}else{b="";}return b;};this.runMatchingLogic=function(g,e){var g=this.simplify(g),l=g.charAt(0).toLowerCase();if(l=='"'){l=(n=g.charAt(1))?n.toLowerCase():"z";}if(e){g=l;}if(this.suggestOpen){this.matchCollection=new Array();}var c=this.data;if(this.suggestOpen&&this.revisedCollection&&(this.revisedCollection.length>0)&&this.lastUserInput&&(g.indexOf(this.lastUserInput)==0)){c=this.revisedCollection;}else{if(this.dataIndex[g]&&(this.dataIndex[g].length>0)){c=this.dataIndex[g];}else{if(this.dataIndex[l]&&(this.dataIndex[l].length>0)){c=this.dataIndex[l];}else{if(this.suggestOpen&&(g.length==1)&&(!this.dataIndex[l])){this.buildIndex=true;}else{if(this.suggestOpen){this.buildIndex=false;}}}}}var m=new Array(),k=new RegExp('^([ "><-]*)('+g+")","i"),d=new RegExp('([ "><-]+)('+g+")","i"),p,o,b,q,h,f;for(h=0,f=0;(h<c.length);h++){p=((!e)&&(f<this.max_matches));o=c[h];b=this.simplify(o.key);if(!e&&(b.indexOf(g)==0)){g=g.replace(/\>/gi,"\\}").replace(/\< ?/gi,"\\{");q=new RegExp("("+g+")","i");if(p){this.matchCollection[f]=new this.smartInputMatch(o.key,o.value,o.original);}m[f]=o;f++;}else{if(b.match(k)||b.match(d)){if(!e&&p){this.matchCollection[f]=new this.smartInputMatch(o.key,o.value,o.original);}m[f]=o;f++;}}}if(m.length>1){m.sort(function(r,j){return r.original.type-j.original.type;});}if(this.suggestOpen){this.lastUserInput=g;this.revisedCollection=m;this.dataIndex[g]=m;}if(e||this.buildIndex){this.dataIndex[l]=m;if(this.suggestOpen){this.buildIndex=false;}}};this.setSmartInputData=function(){if(this.suggestOpen){var c=this.inputBox.value;c=this.getUserInputToMatch(c);if(typeof c=="undefined"){return;}var b=c.toLowerCase().replace(/[\r\n\t\f\s]+/gi," ").replace(/^ +/gi,"").replace(/ +$/gi,"").replace(/ +/gi," ").replace(/\\/gi,"").replace(/\[/gi,"").replace(/\(/gi,"").replace(/\./gi,".").replace(/\?/gi,"");if(b&&(b!="")&&(b!='"')){this.runMatchingLogic(b);}else{this.matchCollection=null;}}};this.getSmartInputBoxContent=function(){var h=null,c=this.matchCollection,f;if(this.suggestOpen&&c&&(c.length>0)){h=[];for(f=0;f<c.length;f++){var b=c[f],d=(b.isSelected?" select_suggest_item":""),j=b.key.replace(/\{ */gi,"&lt;").replace(/\} */gi,"&gt;"),e=b.original,g=e.type;if(g==1){h.push("<div class='match_suggest_item",d,"'><img src='",ut.getProfileURL(e,"small",PERSON_TYPE),"'/><div><span>",j,"</span><small>Person</small></div></div>");}else{if(g==2){h.push("<div class='match_suggest_item",d,"'><img src='",ut.getProfileURL(e,"small",TOPIC_TYPE),"'/><div><span>",j,"</span><small>Lifeblob</small></div></div>");}else{if(g==4){h.push("<div class='match_suggest_item",d,"'><img src='",e.pic_square,"'/><div><span>",j,"</span><small>Facebook User</small></div></div>");}else{h.push("<div class='match_suggest_item",d,"'>",j,"</div>");}}}}h=(h.length>2)?h.join(""):"";}return h;};this.modifySmartInputBoxContent=function(b){this.floaterContent.innerHTML='<div class="suggestResults">'+b+"</div>";};this.selectFromMouseOver=function(d){var b=this.getCurrentlyselect_suggest_item();if(b!=null){this.deSelectSmartInputMatchItem(b);}var c=this.getIndexFromElement(d);this.selectSmartInputMatchItem(c);this.modifySmartInputBoxContent(this.getSmartInputBoxContent());};this.selectFromMouseClick=function(){this.activateCurrentSmartInputMatch();this.inputBox.focus();this.hideSmartInputFloater();this.afterActivateCurrentSmartInputMatch();};this.getIndexFromElement=function(c){var b=0;while(c=c.previousSibling){b++;}return b;};this.getCurrentlyselect_suggest_item=function(){var c=null;for(var b=0;((b<this.matchCollection.length)&&!c);b++){if(this.matchCollection[b].isSelected){c=b;}}return c;};this.selectSmartInputMatchItem=function(b){this.matchCollection[b].isSelected=true;};this.deSelectSmartInputMatchItem=function(b){this.matchCollection[b].isSelected=false;};this.selectNextSmartInputMatchItem=function(){var b=this.getCurrentlyselect_suggest_item();if(b!=null){this.deSelectSmartInputMatchItem(b);if((b+1)<this.matchCollection.length){this.selectSmartInputMatchItem(b+1);}else{this.selectSmartInputMatchItem(0);}}else{this.selectSmartInputMatchItem(0);}this.modifySmartInputBoxContent(this.getSmartInputBoxContent());};this.selectPreviousSmartInputMatchItem=function(){var b=this.getCurrentlyselect_suggest_item();if(b!=null){this.deSelectSmartInputMatchItem(b);if((b-1)>=0){this.selectSmartInputMatchItem(b-1);}else{this.selectSmartInputMatchItem(this.matchCollection.length-1);}}else{this.selectSmartInputMatchItem(this.matchCollection.length-1);}this.modifySmartInputBoxContent(this.getSmartInputBoxContent());};this.activateCurrentSmartInputMatch=function(){if((selIndex=this.getCurrentlyselect_suggest_item())!=null){var b=this.matchCollection[selIndex];dojo.place(this.createSuggestion(b.key,b.value,b.original,true),this.inputBoxHolder,"before");this.inputBox.value="";this.runMatchingLogic(b.key,true);this.updateIndices();}};this.afterActivateCurrentSmartInputMatch=function(){};this.clear=function(b){dojo.query(".sugg_hold",this.container).orphan();dojo.removeClass(this.inputBox,"hidden");this.inputBox.value="";if(b){this.inputBox.focus();}};}dojo.declare("Util",null,{pp:new RegExp("lh[0-9]+.(google|ggpht).com"),fp:new RegExp("farm[0-9]+.static.flickr.com"),lbcdn:new RegExp("p[0-9]+.lbcdn.net"),sp:new RegExp("smugmug.com"),fb:new RegExp(".fbcdn.net"),fbp:new RegExp("freebase.com/api/trans/raw"),arrowRegex:new RegExp("<(.*)>"),nameRegex:new RegExp('(".*" )(.*)'),SAFECHARS:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_.!~*'()",HEX:"0123456789ABCDEF",HEXCHARS:"0123456789ABCDEFabcdef",digits:"0123456789",phoneNumberDelimiters:"()- ",validWorldPhoneChars:"()- +",minDigitsInIPhoneNumber:10,picVersion:{small:25,medium:50,large:100},selfTimelinePopupShown:false,facebookMemoirCounter:0,getAppIcon:function(a){switch(a){case 3:return"email_icon";case 11:return"picasa_icon";case 12:return"flickr_icon";case 13:return"smugmug_icon";case 20:return"blog_icon";case 21:return"blogger_icon";case 40:return"mail_icon";case 41:return"gmail_icon";case 42:return"yahoo_icon";case 43:return"live_icon";case 51:return"youtube_icon";case 61:return"facebook_icon";case 100:return"freebase_icon";}},getAppName:function(a){switch(a){case 3:return M.APP_EMAIL;case 11:return M.APP_PICASA;case 12:return M.APP_FLICKR;case 13:return M.APP_SMUG;case 14:return M.APP_FACEBOOK_PHOTOS;case 16:return M.APP_PHOTO_BUCKET;case 44:return M.APP_FACEBOOK;case 20:return M.APP_BLOG;case 21:return M.APP_BLOG;case 40:return M.APP_MAILS;case 41:return M.APP_GMAIL;case 42:return M.APP_YAHOO;case 45:return M.APP_AOL;case 43:return M.APP_HOTMAIL;case 51:return M.APP_YOUTUBE;case 61:return M.APP_TWITTER;default:return M.APP_UNKNOWN;}},getEmail:function(a){if(!a){return false;}var b=a.toLowerCase();b=b.replace(this.arrowRegex,"$1");b=b.replace(this.nameRegex,"$2");if(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(b)){return b;}return false;},getStaticOffset:function(a){return(dojo.isString(a)?a.charCodeAt(0):a)%4;},getProfileURL:function(c,a,b){switch(b||c.type){case PERSON_TYPE:if(c.picUrl&&c.picUrl!=""){return c.picUrl;}else{if(c.pic){return["http://cdn",ut.getStaticOffset(c.id),".lifeblob.com/lifeblob/pic/",c.id,"/",a,".v",c.pic,".jpg"].join("");}}return"http://cdn0.lifeblob.com/lifeblob/pic/default/"+a+".v4.jpg";case PLACE_TYPE:return["http://cdn",ut.getStaticOffset(c.id),".lifeblob.com/lifeblob/img/common/place-50.png"].join("");case TAG_TYPE:return["http://cdn",ut.getStaticOffset(c.id),".lifeblob.com/lifeblob/img/common/tag-50.png"].join("");case TOPIC_TYPE:if(c.ext_pic&&c.ext_pic!=""){if(this.fbp.test(c.ext_pic)){return c.ext_pic.replace(/^(.*)\/raw\/(.*)$/i,"$1/image_thumb/$2?maxwidth="+this.picVersion[a]);}return c.ext_pic;}if(c.pic){return["http://cdn",ut.getStaticOffset(c.id),".lifeblob.com/lifeblob/topic_pic/",c.id,"/",a,".v",c.pic,".jpg"].join("");}return"http://cdn0.lifeblob.com/lifeblob/topic_pic/default/"+a+".v2.jpg";}},scale:function(f,a,j,d){var b=(a&&!j)?"width":((j&&!a)?"height":((j&&a&&(f.width/f.height<a/j))?"width":"height")),k={width:f.width,height:f.height},c,h;d=d||{noalign:false};h=d.key;switch(b){case"width":if(f.width>a){k.width=a;k.height=f.height*a/f.width;dojo.style(f,"width",a+"px");}break;case"height":if(f.height>j){k.height=j;k.width=f.width*j/f.height;dojo.style(f,"height",j+"px");}if(a&&!d.noalign){c=(a-k.width)/2;k.marginLeft=c;dojo.style(f,"marginLeft",c+"px");}break;}if(h&&window.cm){var g="imageSizeCache",e=cm.get(g);if(!e){e={};cm.put(g,e);}e[h]=k;}return k;},scaleFixed:function(c,f,a,b){var e=(f&&!a)?"width":((a&&!f)?"height":((a&&f&&(c.width/c.height<f/a))?"height":"width"));var d={width:c.width,height:c.height};switch(e){case"width":if(c.width>f){d.width=f;d.height=c.height*f/c.width;dojo.style(c,"width",f+"px");}break;case"height":if(c.height>a){d.height=a;d.width=c.width*a/c.height;dojo.style(c,"height",a+"px");}if(f&&!b){dojo.style(c,"marginLeft",(f-d.width)/2+"px");}break;}return d;},getVideoEmbedCode:function(d,c,a,b){d=ut.escapeHTML(d);var e='<embed src="'+d+'&hl=en&fs=1&rel=0&autoplay=1" type="application/x-shockwave-flash" allowfullscreen="true" width="${0}" height="${1}"></embed>';if(!dojo.isIE||(dojo.isIE>=7)){e='<object width="${0}" height="${1}"><param name="movie" value="'+d+'&hl=en&fs=1&rel=0&autoplay=1"></param><param name="allowFullScreen" value="true"></param>'+e+"</object>";}switch(parseInt(b)){case APP_TYPE.YOUTUBE:c=c||650;a=a||365;default:c=c||425;a=a||350;}return[dojo.string.substitute(e,[c,a]),c,a];},getImageURL:function(k,d,q,t,g){var e=this,j=ut.escapeHTML(k),f=Math.max(d,q),m,o;if(j.indexOf("http://")==0){if(e.fp.test(j)){j=j.replace(/^(.*)((_m|_s|_b|_t).jpg)$/,"$1.jpg");if(f<=75){return j.replace(/^(.*)(.jpg)$/,"$1_s.jpg");}else{if(f<=100){return j.replace(/^(.*)(.jpg)$/,"$1_t.jpg");}else{if(f<=240){return j.replace(/^(.*)(.jpg)$/,"$1_m.jpg");}else{if(f<=580){return j;}else{if(f<=1024){return j.replace(/^(.*)(.jpg)$/,"$1_b.jpg");}}}}}return j.replace(/^(.*)(.jpg)$/,"$1_b.jpg");}else{if(e.lbcdn.test(j)){j=j.replace(/^(.*)((_t|_s|_m|_l|_o).jpg)$/,"$1.jpg");if(f<=100){return j.replace(/^(.*)(.jpg)$/,"$1_t.jpg");}else{if(f<=200){return j.replace(/^(.*)(.jpg)$/,"$1_s.jpg");}else{if(f<=512){return j.replace(/^(.*)(.jpg)$/,"$1_m.jpg");}else{if(f<=1024){return j.replace(/^(.*)(.jpg)$/,"$1_l.jpg");}}}}return j.replace(/^(.*)(.jpg)$/,"$1_o.jpg");}else{if(e.pp.test(j)){j=j.replace(/^(.*)(\/s72|\/s144|\/s288|\/s576|\/s720|\/d)(\/.*)$/,"$1$3");if(f<=72){return j.replace(/^(.*)\/(.*?)$/,"$1/s72/$2");}else{if(f<=144){return j.replace(/^(.*)\/(.*?)$/,"$1/s144/$2");}else{if(f<=288){return j.replace(/^(.*)\/(.*?)$/,"$1/s288/$2");}else{if(f<=576){return j.replace(/^(.*)\/(.*?)$/,"$1/s576/$2");}else{if(f<=720){return j.replace(/^(.*)\/(.*?)$/,"$1/s720/$2");}}}}}return j.replace(/^(.*)\/(.*?)$/,"$1/d/$2");}else{if(e.sp.test(j)){if(f<=100){return j.replace(/^(.*)-(.*)\.(.*)$/i,"$1-Ti.$3");}else{if(f<=150){return j.replace(/^(.*)-(.*)\.(.*)$/i,"$1-Th.$3");}else{if(f<=400){return j.replace(/^(.*)-(.*)\.(.*)$/i,"$1-S.$3");}else{if(f<=600){return j.replace(/^(.*)-(.*)\.(.*)$/i,"$1-M.$3");}else{if(f<=800){return j.replace(/^(.*)-(.*)\.(.*)$/i,"$1-L.$3");}else{if(f<=1024){return j.replace(/^(.*)-(.*)\.(.*)$/i,"$1-XL.$3");}}}}}}return j.replace(/^(.*)-(.*)\.(.*)$/i,"$1-O.$3");}else{if(e.fb.test(j)){m=j.split("/");o=m[m.length-1].charCodeAt(0);if(o>=97&&o<=122){if(d<=74&&q<=225){return j.replace(/^(.*)\/([a-z])?(.*)$/i,"$1/t$3");}else{if(f<=130){return j.replace(/^(.*)\/([a-z])?(.*)$/i,"$1/s$3");}else{if(f<=180){return j.replace(/^(.*)\/([a-z])?(.*)$/i,"$1/a$3");}}}return j.replace(/^(.*)\/([a-z])?(.*)$/i,"$1/n$3");}else{if(d<=74&&q<=225){return j.replace(/^(.*)\/(.*)([a-z])\.jpg$/i,"$1/$2t.jpg");}else{if(f<=130){return j.replace(/^(.*)\/(.*)([a-z])\.jpg$/i,"$1/$2s.jpg");}else{if(f<=180){return j.replace(/^(.*)\/(.*)([a-z])\.jpg$/i,"$1/$2a.jpg");}}}return j.replace(/^(.*)\/(.*)([a-z])\.jpg$/i,"$1/$2n.jpg");}}else{if(e.fbp.test(j)){return j.replace(/^(.*)\/raw\/(.*)$/i,"$1/image_thumb/$2?maxwidth="+f);}}}}}}return j;}else{if(j.indexOf("https://")==0){return j;}else{var b=".lifeblob.com/lifeblob/",r="original",c=g||{};if(c.temp){return["http://static",ut.getStaticOffset(j),b,"temp/",c.personId,"/",j,".jpg"].join("");}else{if(f<=100){r="thumb";}else{if(f<=200){r="small";}else{if(f<=512){r="medium";}else{if(f<=1024){r="large";}}}}var a=["http://static",ut.getStaticOffset(j),b,"images/",r,"/",t,"/"];if(c.captionUrl){var h=c.captionUrl,l=h.length;if(l>0){if(l>100){h=h.substring(0,100);}a.push(ut.getSEOText(h),"-");}}a.push(j,".jpg");return a.join("");}}}},maximize:function(e,d){var b=this,c=d||{},a=["/blob/",b.getSEOText(e.title),"/show/",e.id];if(c.photo){a.push("#",c.photo);}b.rd(a.join(""));},fb_encode:function(d){var c=["template_data","attachment","action_links","to_ids"],a,b;for(a=0;a!=c.length;a++){b=c[a];if(d[b]){d[b]=encodeURIComponent(dojo.toJson(d[b]));}}for(b in d){if(!d[b]){delete d[b];}}},fb_query:function(d){var a="",b;for(b in d){var c={key:b,value:d[b]};a+=c.key+"="+encodeURIComponent((c.value))+"&";}if(a!==""&&a.charAt(a.length-1)==="&"){a=a.substr(0,a.length-1);}return a;},fbStreamPublish:function(d,c,a,o,m,l,k,j){var e=this,b="http://www.facebook.com/connect/prompt_feed.php",f=(window.screen.width/2-300),h=(window.screen.height/2-194),g={message:d,attachment:c,action_links:a,target_id:o,actor_id:j,user_message_prompt:m};e.fb_encode(g);b+="?"+e.fb_query(g);console.log(b);b="http://www.lifeblob.com/account/popup/redirect?next="+ut.encode(b);window.open(b,"","toolbar=0,status=0,width=600px,height=388px, left="+f+"px, screenX="+f+"px, top="+h+"px, screenY="+h+"px");},getUrl:function(b,d,c){if(c){return this.getFacebookUrl(b);}if(!b.display||!b.type){return null;}else{var a=["http://www.lifeblob.com/",b.type,"/",b.display];if(b.view){a.push("/view/",b.view,d?"/embed":"");}if(b.src){a.push("?src="+b.src);}if(b.utm_source){a.push(b.src?"&":"?");a.push("utm_source="+b.utm_source);a.push("&utm_campaign="+b.utm_campaign);a.push("&utm_medium="+b.utm_medium);if(b.utm_term){a.push("&utm_term="+b.utm_term);}if(b.utm_content){a.push("&utm_content="+b.utm_content);}}if(b.at){a.push("#at=");a.push(b.at.dateFormat(DP[1]));if(b.id){a.push("&mid=");a.push(b.id);if(b.max){a.push("&max=true");}}}return a.join("");}},loadScript:function(b,c){var a=document.createElement("script");a.type="text/javascript";if(a.readyState){a.onreadystatechange=function(){if(a.readyState=="loaded"||a.readyState=="complete"){a.onreadystatechange=null;c();}};}else{a.onload=function(){c();};}a.src=b;document.getElementsByTagName("head")[0].appendChild(a);},getFacebookUrl:function(b){if(!b.display||!b.type){return null;}else{var a=["http://www.lifeblob.com/","facebook/view",b.type!=FACEBOOK_PERSON_TYPE?"/user/":"/",b.display];a.push("?",fbParamsString,"&ht=true");if(b.forced_album){a.push("&falbum="+b.forced_album);}if(b.at){a.push("#at=");a.push(b.at.dateFormat(DP[1]));if(b.id){a.push("&mid=");a.push(b.id);if(b.max){a.push("&max=true");}}}return a.join("");}},getSEOText:function(a){return a.replace(/[\s/\\/.]+/g,"-").replace(/[^a-z0-9A-Z\-]/g,"").replace(/-+/g,"-").substring(0,100);},encode:function(c){var e=[];for(var b=0;b<c.length;b++){var d=c.charAt(b);if(d==" "){e.push("+");}else{if(this.SAFECHARS.indexOf(d)!=-1){e.push(d);}else{var a=d.charCodeAt(0);if(a>255){e.push("+");}else{e.push("%",this.HEX.charAt((a>>4)&15),this.HEX.charAt(a&15));}}}}return e.join("");},decode:function(e){var b=[],d=e.length,a=0;while(a<d){var c=e.charAt(a);if(c=="+"){b.push(" ");a++;}else{if(c=="%"){if(a<(e.length-2)&&this.HEXCHARS.indexOf(e.charAt(a+1))!=-1&&this.HEXCHARS.indexOf(e.charAt(a+2))!=-1){b.push(unescape(e.substr(a,3)));a+=3;}else{a++;}}else{b.push(c);a++;}}}return b.join("");},encodeCur:function(){return ut.encode(window.location.href);},getFBPostUrl:function(b){if(!b.display||!b.type){return null;}else{var a=["http://apps.facebook.com/lifeblob","",b.type!=FACEBOOK_PERSON_TYPE?"/user/":"/",b.display];if(b.at){a.push("#at=");a.push(b.at.dateFormat(DP[1]));if(b.id){a.push("&mid=");a.push(b.id);if(b.max){a.push("&max=true");}}}return a.join("");}},getUrlFromId:function(a){if(a){return["http://www.lifeblob.com/","user?personId=",a].join("");}},rL:function(){return"http://www.lifeblob.com/account/login?next="+escape(window.location.href);},rdL:function(){var a=this.rL();this.rd(a);},rd:function(a){if(dojo.isIE==6){setTimeout(function(){window.location=a;},0);}else{window.location.href=a;}},getBlobUrl:function(a){return["/blob/",this.getSEOText(a.title),"/show/",a.id].join("");},reload:function(){window.location.reload(false);},escapeHTML:function(a){return !a?a:(a.replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/&/g,"&amp;").replace(/'/g,"&#39;").replace(/"/g,"&quot;"));},escapeJs:function(a){return a.replace(/(["'\f\b\n\t\r])/gm,"\\$1");},getYoutubeId:function(a){var b=a.replace(/^[^v]+v.(.{11}).*/,"$1");return(a!=b)?b:null;},getTimelineType:function(a){return(a==TOPIC_TYPE)?4:((a==PLACE_TYPE)?2:((a==TAG_TYPE)?3:((a==DERIVED_TYPE)?5:1)));},addFbToSuggest:function(){var c=FB.Connect.get_loggedInUser(),a,b;FB.Facebook.apiClient.fql_query("SELECT uid, name, pic_square, is_app_user FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1="+c+")",function(m,e){if(!e){Suggest.init();var d=cm.get("suggest.all"),h=cm.get("suggest.friends"),l=cm.get("addressbook.friends"),f=cm.get("addressbook.friends.fidmap"),g=cm.get("suggest.fb");for(var k=0;k<m.length;k++){var j=m[k];if(j.pic_square==""){j.pic_square="http://cdn0.lifeblob.com/lifeblob/pic/default/medium.v1.jpg";}j.type=4;g.push({key:j.name,value:{k:"fbid",v:j.uid},original:j});if(f){if(f[j.uid]){continue;}f[j.uid]=j;}d.push({key:j.name,value:{k:"fbid",v:j.uid},original:j});h.push({key:j.name,value:{k:"fbid",v:j.uid},original:j});l.push({key:j.name,value:{k:"fbid",v:j.uid},original:j});}dojo.publish("suggest.rebuild");dojo.publish("facebook.suggest.updated");}});},fisherYates:function(c){var b=c.length;if(b==0){return false;}while(--b){var a=Math.floor(Math.random()*(b+1));var e=c[b];var d=c[a];c[b]=d;c[a]=e;}},randomID:function(b){var d="",c="0123456789abcdefghijklmnopqurstuvwxyzABCDEFGHIJKLMNOPQURSTUVWXYZ",a;for(a=0;a<b;a++){d+=c.substr(Math.floor(Math.random()*62),1);}return d;},getFrequencyBucketFromlist:function(b,c){var a=b[c];return a?a:0;},_getFreqData:function(c,b){var a=b.type;if(a==TAG_TYPE){return c.tags;}else{if(a==TOPIC_TYPE){return c.topics;}else{if(a==PERSON_TYPE){return c.people;}else{if(a==PLACE_TYPE){return c.places;}}}}},getFrequencyBucket:function(f,d,c){var a=c.type,e=ut._getFreqData(f,c);if(!e){e=[];}var b=ut.getFrequencyBucketFromlist(e,c.id);if(b==0){b=1;}return e?Math.min(b*d,100):d;},getTagCloudCompatibleName:function(c){var a=c.title||c.name,b=c.type;if(b==PERSON_TYPE){a=a.split(" ")[0];}else{if(b==PLACE_TYPE){a=a.split(",")[0];}}return ut.truncate(a,28);},getIntersects:function(e,c){var a=c.type,d=ut._getFreqData(e,c),b=d?ut.getFrequencyBucketFromlist(d,c.id):0;return b?"intersects":"";},wbr:function(b,a){return !b?b:b.replace(RegExp("(\\w{"+a+"})(\\w)","g"),function(d,e,c){return e+"<wbr>"+c;});},shy:function(b,a){return !b?b:b.replace(RegExp("(\\w{"+a+"})(\\w)","g"),function(d,e,c){return e+"&shy;"+c;});},wb:function(b,a){return ut.shy(b,a);},isEmpty:function(a){return(a==undefined)||/^\s*$/.test(a);},truncate:function(c,b,a){var a=a||"...";return(c.length>b)?c.substr(0,b-a.length)+a:c;},isInteger:function(b){var a;for(a=0;a<b.length;a++){var d=b.charAt(a);if(((d<"0")||(d>"9"))){return false;}}return true;},trim:function(d){var b;var a="";for(b=0;b<d.length;b++){var e=d.charAt(b);if(e!=" "){a+=e;}}return a;},stripCharsInBag:function(d,e){var b;var a="";for(b=0;b<d.length;b++){var f=d.charAt(b);if(e.indexOf(f)==-1){a+=f;}}return a;},checkInternationalPhone:function(a){var c=3;a=this.trim(a);if(a.indexOf("+")>1){return false;}if(a.indexOf("-")!=-1){c=c+1;}if(a.indexOf("(")!=-1&&a.indexOf("(")>c){return false;}var b=a.indexOf("(");if(a.indexOf("(")!=-1&&a.charAt(b+2)!=")"){return false;}if(a.indexOf("(")==-1&&a.indexOf(")")!=-1){return false;}s=this.stripCharsInBag(a,this.validWorldPhoneChars);return(this.isInteger(s)&&s.length>=this.minDigitsInIPhoneNumber);},price:function(a){return dojo.number.format(a,{pattern:"##0.00"});},currency:function(a){return"Rs. "+dojo.number.format(a,{pattern:"##0.00"});},queryParam:function(d){d=d.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var a="[\\?&]"+d+"=([^&#]*)",c=new RegExp(a),b=c.exec(window.location.href);return(null==b)?"":b[1];},highlightNode:function(c,a,d,b){var d=d||"#ffffff",b=b||"#ffffcc";dojo.fx.chain([dojo.animateProperty({node:c,duration:a,properties:{backgroundColor:{end:b}}}),dojo.animateProperty({node:c,duration:a,properties:{backgroundColor:{end:d}}})]).play();},isValidEmail:function(f){var a="@";var b=".";var e=f.indexOf(a);var c=f.length;var d=f.indexOf(b);if(f.indexOf(a)==-1){return false;}if(f.indexOf(a)==-1||f.indexOf(a)==0||f.indexOf(a)==c){return false;}if(f.indexOf(b)==-1||f.indexOf(b)==0||f.indexOf(b)==c){return false;}if(f.indexOf(a,(e+1))!=-1){return false;}if(f.substring(e-1,e)==b||f.substring(e+1,e+2)==b){return false;}if(f.indexOf(b,(e+2))==-1){return false;}if(f.indexOf(" ")!=-1){return false;}return true;}});var ut=new Util();function Cache(){this.initialize=function(){};}var cache=new Cache();function TimelineObject(){this.id;this.displayName;this.name;this.bounds;this.chunks;this.getType=function(){return PERSON_TYPE;};this.getStatus=function(){return this.status||"";};this.isLogged=function(){return(this.getType()==PERSON_TYPE)&&((this.displayName.length==th.getUser().displayName.length)&&(this.displayName.indexOf(th.getUser().displayName)==0));};this.getFullName=function(){return this.getName();};this.getName=function(){return ut.escapeHTML(this.name||this.displayName.charAt(0).toUpperCase().concat(this.displayName.substr(1)));};this.equals=function(a){return(!a)?false:(a.getType()==this.getType())&&(a.displayName.indexOf(this.displayName)==0);};}function Person(){this.name;this.pic;this.email;this.getType=function(){return PERSON_TYPE;};this.getName=function(){return ut.escapeHTML(this.name);};this.getFullName=function(){return this.getName();};}function Place(){this.region;this.country;this.lat;this.lng;this.getType=function(){return PLACE_TYPE;};}function Tag(){this.getType=function(){return TAG_TYPE;};}function Topic(){this.desc;this.pic;this.ext_pic;this.isLogged=function(){return(this.getType()==TOPIC_TYPE)&&th.getUser().topic.contributor;};this.getTitle=function(){return ut.escapeHTML(this.title);};this.getType=function(){return TOPIC_TYPE;};}function MemoirData(){this.id;this.primaryId;this.primaryType;this.happened;this.creator;this.subject;this.desc;this.createdAt;this.updatedAt;this.appType;this.persons;this.persons;this.place;this.tags;this.totalImages;this.images;this.totalVideos;this.video;this.viewCount;this.commentCount;this.info=BASIC;this.type;}Person.prototype=new TimelineObject();Place.prototype=new TimelineObject();Tag.prototype=new TimelineObject();Topic.prototype=new TimelineObject();function PostSignUpStuff(){var ref=this;this._activeImports={};this.urlRegex=new RegExp("http://(.+)");this.logEvent=function(dimension2,dimension3){dojo.publish("logAjaxEvent",[window.startupFlow?"startupflow":"normalflow",dimension2,dimension3]);};this.importStuff=function(appType,id){this._activeImports[appType]={};var ref=this;this.logEvent("import-start-linkup",ut.getAppName(appType).toLowerCase());if(appType==APP_TYPE.BLOG){this._blogImport(appType);}else{if(appType==APP_TYPE.FACEBOOK_PHOTOS){ref._setWaitingState(appType,M.WAITING_FOR_AUTHENTICATION);dojo.query(".legal").removeClass("hidden");FB.Facebook.apiClient.users_hasAppPermission("offline_access",function(result){if(result==0){FB.Connect.showPermissionDialog("offline_access",function(result1){if(result1){ref.logEvent("facebook-import-type","perma");var newIframe=document.createElement("iframe");dojo.byId("facebook_offline_loaded_iframe_container").appendChild(newIframe);dojo.attr(newIframe,"src","http://www.lifeblob.com/xd_domain_load.htm");}else{ref.logEvent("facebook-import-type","session");ref._facebookImport(appType);}});}else{ref._facebookImport(appType);}});}else{this._showPopup(appType);}}};this.importUrl=function(appType){this._activeImports[appType]={};this.logEvent("import-start-import",ut.getAppName(appType).toLowerCase());this._blogImport(appType);};this.facebookImport=function(){this._activeImports[APP_TYPE.FACEBOOK_PHOTOS]={};this._facebookImport(APP_TYPE.FACEBOOK_PHOTOS);};this._facebookImport=function(appType){var appName=ut.getAppName(appType);var lowerAppName=appName.toLowerCase().replace(/ /g,"_");var topicId=0;API_SVC.facebookImportRequest().addCallback(dojo.hitch(ref,ref._importBlogResponse,appType));};this._blogImport=function(appType){var appName=ut.getAppName(appType);var lowerAppName=appName.toLowerCase().replace(/ /g,"_");var topicId=topic?entityId:0;dojo.query("."+lowerAppName+"_url").forEach(function(elem){var blogURL=elem.value;if(ref.urlRegex.test(blogURL)){API_SVC.importRequest(blogURL,appType,topicId).addCallback(dojo.hitch(ref,ref._importBlogResponse,appType));}else{dojo.addClass(elem,"input_error");alert("Please enter a valid url");}});};this._importBlogResponse=function(appType,response){if(!response.result||response.result<0){this.logEvent("import-error-create",ut.getAppName(appType).toLowerCase());}if(appType==APP_TYPE.FACEBOOK_PHOTOS&&!response.result&&response.code==3){this.logEvent("facebook-error-session",ut.getAppName(appType).toLowerCase());}this._importResponse(appType,response.result,false);if(appType==APP_TYPE.FACEBOOK_PHOTOS&&!response.result&&response.code==3){facebookReloadPage();}};this._showPopup=function(appType){var width=700;var height=500;var top=100;if(appType==APP_TYPE.YMAIL||appType==APP_TYPE.FLICKR){width=780;height=700;top=10;}if(appType==APP_TYPE.TWITTER){width=776;top=10;}var left=window.screen.width/2-width/2;var popup=ref._activeImports[appType].popup;if(popup){try{popup.close();}catch(ex){}}switch(appType){case APP_TYPE.PICASA:popup=window.open("https://www.google.com/accounts/AuthSubRequest?next=http%3A%2F%2Fwww.lifeblob.com%2Fcallback%2Fauth%3FappType%3D11TOPIC_POINTER&scope=http%3A%2F%2Fpicasaweb.google.com%2Fdata%2F&secure=0&session=1".replace("TOPIC_POINTER",ref._getTopicReplace()),"","status=false, width="+width+"px, height="+height+"px, left="+left+"px, screenX="+left+"px, top="+top+"px, screenY="+top+"px");break;case APP_TYPE.FLICKR:popup=window.open("http://www.flickr.com/services/auth/?api_key=0c46e7f6525547b571fdc05b2d7a9957&perms=read&api_sig=54cf32fac9c008dd3d0718f1e0f10f2a","","status=false, width="+width+"px, height="+height+"px, left="+left+"px, screenX="+left+"px, top="+top+"px, screenY="+top+"px");break;case APP_TYPE.SMUGMUG:popup=window.open("http://www.lifeblob.com/callback/oauth/authorizeUser?appType=13","","status=false, width="+width+"px, height="+height+"px, left="+left+"px, screenX="+left+"px, top="+top+"px, screenY="+top+"px");break;case APP_TYPE.YOUTUBE:popup=window.open("https://www.google.com/accounts/AuthSubRequest?next=http%3A%2F%2Fwww.lifeblob.com%2Fcallback%2Fauth%3FappType%3D51TOPIC_POINTER&scope=http%3A%2F%2Fgdata.youtube.com%2F&secure=0&session=1".replace("TOPIC_POINTER",ref._getTopicReplace()),"","status=false, width="+width+"px, height="+height+"px, left="+left+"px, screenX="+left+"px, top="+top+"px, screenY="+top+"px");break;case APP_TYPE.TWITTER:popup=window.open("http://www.lifeblob.com/callback/oauth/authorizeUser?appType=61TOPIC_POINTER".replace("TOPIC_POINTER",ref._getTopicOauthReplace()),"","status=false, width="+width+"px, height="+height+"px, left="+left+"px, screenX="+left+"px, top="+top+"px, screenY="+top+"px");break;case APP_TYPE.PHOTOBUCKET:popup=window.open("http://www.lifeblob.com/callback/oauth/authorizeUser?appType=16","","status=false, width="+width+"px, height="+height+"px, left="+left+"px, screenX="+left+"px, top="+top+"px, screenY="+top+"px");break;default:return;}if(!popup){return;}popup.focus();this._activeImports[appType].popup=popup;ref._setWaitingState(appType,M.WAITING_FOR_AUTHENTICATION);ref._waitForPopup(appType);};this._getTopicReplace=function(){if(window.topic){return"%26topicId%3D"+entityId;}return"";};this._getTopicOauthReplace=function(){if(window.topic){return"&topicId="+entityId;}return"";};this._restoreRow=function(appType){dojo.query(".busy_icon").addClass("hidden");dojo.query(".import_url .url input").forEach(function(elem){elem.value="http://";});dojo.query(".legal").removeClass("hidden");};this._waitForPopup=function(appType){ref._activeImports[appType].popupWait=setInterval(function(){if(ref._activeImports[appType].popup.closed){ref.logEvent("import-popup-closed",ut.getAppName(appType).toLowerCase());clearInterval(ref._activeImports[appType].popupWait);ref._restoreRow(appType);}},3000);};this._setWaitingState=function(appType,message){dojo.query(".busy_icon").removeClass("hidden");dojo.query(".busy_icon span").forEach(function(elem){elem.innerHTML=message+"&nbsp;";});dojo.query(".legal").addClass("hidden");};this._importResponse=function(appType,id,closepopup){if((appType==APP_TYPE.YOUTUBE||appType==APP_TYPE.PICASA||appType==APP_TYPE.FLICKR||appType==APP_TYPE.SMUGMUG||appType==APP_TYPE.TWITTER||appType==APP_TYPE.PHOTOBUCKET)&&closepopup){ref._activeImports[appType].popup.close();clearInterval(ref._activeImports[appType].popupWait);ref._activeImports[appType].popupWait=null;}ref._activeImports[appType].impID=id;ref._activeImports[appType].appType=appType;if(id>0){if(appType==APP_TYPE.TWITTER){ref._setWaitingState(appType,M.IMPORTING_TWITTER_DATA);}else{ref._setWaitingState(appType,M.IMPORTING_DATA);}ref._showProgress(appType);}else{ref._showError();}};this._showProgress=function(appType){ref._activeImports[appType].handle=setInterval(function(){if(!ref._activeImports[appType].processing){ref._activeImports[appType].processing=true;API_SVC.importStatus(ref._activeImports[appType].impID).addCallback(dojo.hitch(ref,ref._onImportStatusResponse,appType));}},3000);};this._showError=function(appType,status){alert(dojo.string.substitute(M.IMPORT_ERROR,[ut.getAppName(appType)]));this._restoreRow(appType);};this._showDupError=function(appType,status){alert(dojo.string.substitute(M.IMPORT_DUP_ERROR,[ut.getAppName(appType)]));this._restoreRow(appType);};this._showTwitterError=function(appType,status){alert(dojo.string.substitute(M.IMPORT_TWITTER_ERROR,[ut.getAppName(appType)]));this._restoreRow(appType);};this._onImportStatusResponse=function(appType,response){if(response.stat!="ok"){console.log("Error. Code:"+response.code+" Desc:"+response.desc);ref._activeImports[appType].processing=false;return;}switch(response.result.status){case 0:ref._activeImports[appType].processing=false;return;case 1:ref.logEvent("import-success",ut.getAppName(appType).toLowerCase());ref._restoreRow(appType);ref.attachResponse(appType,response.result);if(window._gwo_key){dojo.publish("trackExperimentalGoal",[_gwo_key]);}dojo.publish("reloadTimeline");dojo.publish("importSuccess");break;default:ref.logEvent("import-error-import",ut.getAppName(appType).toLowerCase());if(response.result.errorCode==2){ref.logEvent("import-error-create-duplicate",ut.getAppName(appType).toLowerCase());ref._showDupError(appType,response.result.status);}else{if(response.result.errorCode==6){ref.logEvent("import-error-twitter-oauth",ut.getAppName(appType).toLowerCase());ref._showTwitterError(appType,response.result.status);}else{ref._showError(appType,response.result.status);}}break;}clearInterval(ref._activeImports[appType].handle);ref._activeImports[appType].handle=null;ref._activeImports[appType].processing=false;};this._getAppSummary=function(appType,appSum){if(appSum.length<6){return"";}switch(appType){case APP_TYPE.PICASA:case APP_TYPE.PHOTOBUCKET:case APP_TYPE.FLICKR:case APP_TYPE.SMUGMUG:return dojo.string.substitute(M.IM_ALBUM_STATS,[appSum[0],appSum[1],appSum[3],appSum[5]]);case APP_TYPE.YOUTUBE:return dojo.string.substitute(M.IM_VIDEO_STATS,[appSum[0],appSum[2],appSum[3],appSum[5]]);case APP_TYPE.BLOG:return dojo.string.substitute(M.IM_POST_STATS,[appSum[0],appSum[1],appSum[3],appSum[5]]);case APP_TYPE.TWITTER:return dojo.string.substitute(M.IM_TWITTER_STATS,[appSum[0],appSum[1],appSum[3],appSum[5]]);case APP_TYPE.FACEBOOK_PHOTOS:return dojo.string.substitute(M.IM_FACEBOOK_PHOTOS_STATS,[appSum[0],appSum[1],appSum[3],appSum[5]]);}};this.deleteImport=function(event){var actionParams=eval("("+dojo.attr(event.currentTarget,"actionParams")+")");API_SVC.deleteImportConfig(actionParams.appType,actionParams.aggregatorId,true);dojo.query("[result="+actionParams.aggregatorId+"]").orphan();dojo.stopEvent(event);};this._wrapWithDiv=function(node){var div=document.createElement("div");div.appendChild(node);return div;};this.createResultNode=function(appType,result,isEven){var div=document.createElement("tr");dojo.attr(div,"result",result.aggregatorId);dojo.addClass(div,"row");if(isEven){dojo.addClass(div,"even");}var account=document.createElement("td");dojo.addClass(account,"account");account.appendChild(this._wrapWithDiv(document.createTextNode(result.source)));div.appendChild(account);var dateParsed=document.createElement("td");dateParsed.appendChild(this._wrapWithDiv(document.createTextNode(Date.parseDate(result.doneAt,DP[1],true).dateFormat("d M Y"))));dojo.addClass(dateParsed,"updated");div.appendChild(dateParsed);var summary=document.createElement("td");dojo.addClass(summary,"summary");summary.appendChild(this._wrapWithDiv(document.createTextNode(this._getAppSummary(appType,result.data))));div.appendChild(summary);var deleteNode=document.createElement("td");dojo.addClass(deleteNode,"actions");var deleteLink=document.createElement("a");dojo.attr(deleteLink,"new","true");deleteLink.appendChild(document.createTextNode("Delete"));dojo.attr(deleteLink,"action","deleteImport");dojo.attr(deleteLink,"actionParams",'{ "appType" : '+appType+', "aggregatorId" : '+result.aggregatorId+"}");deleteNode.appendChild(this._wrapWithDiv(deleteLink));if(appType==61){var editLink=document.createElement("a");dojo.attr(editLink,"editnew","true");editLink.appendChild(document.createTextNode("Edit"));dojo.attr(editLink,"action","editImport");dojo.attr(editLink,"actionParams",'{ "appType" : '+appType+', "aggregatorId" : '+result.aggregatorId+', "scheduleType" : '+result.schedule+', "writedisabled" : ['+result.disabledWrites.join(",")+"]}");dojo.place(editLink,deleteLink,"after");dojo.place(document.createTextNode(" / "),editLink,"before");}div.appendChild(deleteNode);return div;};this.attachResponse=function(appType,result){var appName=ut.getAppName(appType),lowerAppName=appName.toLowerCase().replace(/ /g,"_");dojo.query("."+lowerAppName+"_results").removeClass("hidden");dojo.query("."+lowerAppName+"_results .import_results_tbody").forEach(function(elem){var isEven=false;dojo.query(".row:last-child",elem).forEach(function(row){isEven=!dojo.hasClass(row,"even");});elem.appendChild(ref.createResultNode(appType,result,isEven));dojo.publish("attachNewDeleteImports");dojo.query("a[new='true']",elem).forEach(function(link){dojo.attr(link,"new","false");});});if(lowerAppName=="twitter"){dojo.publish("attachNewEditImports");dojo.query(".twitter_linkup_holder").addClass("hidden");dojo.query(".twitter_linkup_thankyou").removeClass("hidden");}else{if(appType==APP_TYPE.FACEBOOK_PHOTOS){dojo.query(".facebook_linkup_holder").addClass("hidden");dojo.query(".facebook_linkup_thankyou").removeClass("hidden");dojo.publish("importSuccess");}}};this.close=function(appType){var appName=ut.getAppName(appType);var lowerAppName=appName.toLowerCase().replace(/ /g,"_");var rowNode=dojo.byId(lowerAppName+"_import_row");var cNode=dojo.byId(lowerAppName+"_import");cNode.innerHTML=M.IMPORTING_DATA_DONE+appName;dojo.fx.combine([dojo.animateProperty({node:rowNode,duration:2000,properties:{backgroundColor:{end:"#ffffff"}}})]).play();};this.isImporting=function(){var rv=true;dojo.query(".busy_icon").forEach(function(elem){if(dojo.hasClass(elem,"hidden")){rv=false;}});return rv;};dojo.subscribe("importStuff",this,"importStuff");dojo.subscribe("importUrl",this,"importUrl");this.importresponsesubscription=dojo.subscribe("importStuffResponse",this,"_importResponse");dojo.subscribe("deleteImport",this,"deleteImport");}var postSignUpStuff=new PostSignUpStuff();dojo.declare("Analytics",null,{constructor:function(b,a,g,d){var c=this,e=new Date().getTime()-g,f=[];c.pageName=b;c.trackingCode=a;window._gaq=f;f.push(["_setAccount",a]);if(!d){f.push(["_trackPageview",b]);}c.loadGa();if(!d&&dojo.config.isDebug){console.log("GA. Page[%s] Profile[%s] Load[%d ms]",b,a,e);}dojo.subscribe("logEvent",c,"_logEvent");dojo.subscribe("logAjaxEvent",c,"_logAjaxEvent");},loadGa:function(){(function(){var a=document.createElement("script");a.type="text/javascript";a.async=true;a.src=("https:"==document.location.protocol?"https://ssl":"http://www")+".google-analytics.com/ga.js";(document.getElementsByTagName("head")[0]||document.getElementsByTagName("body")[0]).appendChild(a);})();},_logEvent:function(b){try{if(dojo.config.isDebug){console.log("  Tracking Page[%s]",b);}_gaq.push(["_trackPageview",b]);}catch(a){if(dojo.config.isDebug){console.log("Page[%s] could not be logged",b);}}},_logAjaxEvent:function(c,e,a,d){try{if(dojo.config.isDebug){console.log("  Tracking Ajax Event category[%s] action[%s] label[%s] value[%s]",c,e,a,d);}_gaq.push(["_trackEvent",c,e,a,d]);}catch(b){}}});dojo.require("dojox.collections.Dictionary");function CacheManager(){this.dictionaries={};this.put=function(b,d,a){var c=(!a)?"global":a;if(!this.dictionaries[c]){this.dictionaries[c]=new dojox.collections.Dictionary();}this.dictionaries[c].add(b,d);};this.get=function(b,a){var c=(!a)?"global":a;return(!this.dictionaries[c])?null:this.dictionaries[c].item(b);};this.remove=function(b,a){var c=(!a)?"global":a;return(!this.dictionaries[c])?null:this.dictionaries[c].remove(b);};this.destroy=function(){};}var cm=new CacheManager();function PageUtil(){console.time("PageUtil");this.dnTimer;var a=this;this.createErrorElement=function(b){var c=document.createElement("div");c.appendChild(document.createTextNode(b));dojo.addClass(c,"fielderror");return c;};this.createUser=function(c,k){dojo.query(".fielderror").orphan();var h=dojo.byId("firstName"),j=dojo.byId("lastName"),d=dojo.byId("userEmail"),f=dojo.byId("invite"),l=dojo.byId("userPassword"),g=new RegExp(emailRegexp()),e=new RegExp("^[a-zA-Z0-9\d]{6,}$"),b=true;if(!d.value.match(g)){dojo.place(this.createErrorElement("Email is invalid"),d,"after");b=false;}if(l&&!l.value.match(e)){dojo.place(this.createErrorElement("Password should be minimum 6 characters and can contain only letters and numbers"),l,"after");b=false;}if(f&&f.value==""){dojo.place(this.createErrorElement("Invite code mandatory"),f,"after");b=false;}if(!b){return;}document.signup_form.submit();};this.createTopic=function(c,b){dojo.query(".middle",c).forEach("item.innerHTML='"+b+"'");dojo.query("+",c).removeClass("hidden");document.signup_form.submit();};this.showRating=function(b){if(!dojo.attr(dojo.byId("tr_cont"),"trRated")){this._showRatingValue(b,true);}};this.showDefaultRating=function(){var b=dojo.attr(dojo.byId("tr_cont"),"trValue");this._showRatingValue(b,false);dojo.byId("tr_desc").innerHTML=dojo.attr(dojo.byId("tr_desc"),"trDefaultText");};this._showRatingValue=function(b,c){dojo.byId("tr_desc").innerHTML="";dojo.query(".tr_star").forEach(function(d){dojo.removeClass(d,"tr_filled_star");if(dojo.attr(d,"trValue")<=b){dojo.addClass(d,"tr_filled_star");}if(c&&dojo.attr(d,"trValue")==b){dojo.byId("tr_desc").innerHTML=dojo.attr(d,"trText");}});dojo.query(".tr_description").forEach(function(d){d.innerHTML=c;});};this.rateTimeline=function(c,d,b){if(!dojo.attr(dojo.byId("tr_cont"),"trRated")){dojo.attr(dojo.byId("tr_cont"),"trValue",c);dojo.attr(dojo.byId("tr_cont"),"trRated",true);this._showRatingValue(c,false);API_SVC.rateTimeline(d,b,c);dojo.byId("tr_desc").innerHTML=M.TIMELINE_RATING_THANKS;dojo.publish("logAjaxEvent",["social","rate-timeline",d,c]);}};this.showHomeStatus=function(){dojo.query(".home_status .status_msg").style("display","none");dojo.query(".home_status .link_change").style("display","none");dojo.query(".home_status .link_done").style("display","inline");dojo.query(".home_status .status_input").style("display","inline").forEach("item.focus();item.select();");};this.hideHomeStatus=function(){dojo.query(".home_status input").forEach(function(b){dojo.query(".home_status .status_msg").forEach(function(d){var c=dojo.trim(b.value);if((c.length>2)&&(d.innerHTML!=c)){d.innerHTML=ut.escapeHTML(b.value);API_SVC.updateStatus(b.value);}}).style("display","inline");}).style("display","none");dojo.query(".home_status .link_change").style("display","inline");dojo.query(".home_status .link_done").style("display","none");};this.keyHomeStatus=function(c,b){var b=b||window.event;var d=b.which||b.keyCode;if(d==13){this.hideHomeStatus();}};this.checkDisplayName=function(c){var b=dojo.byId("displayName").value;dojo.query(".dn_preview").forEach("item.innerHTML = '"+b+"';");clearTimeout(a.dnTimer);if(dojo.query(".dn_check_loading").style("display")=="none"){dojo.query(".dn_msg").style("display","none");dojo.query(".dn_check_loading").style("display","block");dojo.query(".dn_preview_pre").style("display","none");}a.dnTimer=setTimeout(function(){API_SVC.checkDisplayName(b,c).addCallback(a._onDisplayNameResult);clearTimeout(a.dnTimer);},2000);};this._onDisplayNameResult=function(b){dojo.query(".dn_check_loading").style("display","none");if(b.result=="error"){dojo.query(".dn_preview").style("color","red");dojo.query(".dn_msg").style("color","red");dojo.query(".dn_msg").forEach("item.innerHTML = '"+M.DISPLAY_INVALID+"';");dojo.query(".dn_msg").style("display","block");dojo.query(".dn_preview_pre").style("display","none");}else{if(b.result=="no"){dojo.query(".dn_preview").style("color","red");dojo.query(".dn_msg").style("color","red");dojo.query(".dn_msg").forEach("item.innerHTML = '"+M.DISPLAY_TAKEN+"';");dojo.query(".dn_msg").style("display","block");dojo.query(".dn_preview_pre").style("display","none");}else{dojo.query(".dn_preview").style("color","green");dojo.query(".dn_msg").style("display","none");dojo.query(".dn_preview_pre").style("display","block");}}};this.recheckToAddressHeight=function(){tarea=dojo.byId("toAddresses");var c=tarea.value;var b=parseInt((c.length/45))+1;dojo.style(tarea,"height",(b*17)+"px");};this.deleteMessage=function(b,c){API_SVC.deleteMessage(b,c);dojo.toggleClass(dojo.byId("message_"+b),"hidden");};this.deleteNotification=function(b,c){API_SVC.deleteMessage(b,c);dojo.toggleClass(dojo.byId("message_"+b),"hidden");dojo.toggleClass(dojo.byId("notif_seperator_"+b),"hidden");};this.sendMessage=function(){var b=true;dojo.byId("subject_err").innerHTML="";dojo.byId("email_err").innerHTML="";if(dojo.query("[name='personid']").length<=0){dojo.byId("email_err").innerHTML="[No destination mail ids provided]";return;}if(dojo.trim(dojo.byId("subject").value)<=0){dojo.byId("subject_err").innerHTML="[Subject cannot be empty]";return;}document.compose_message_form.submit();};this.togglePicasaMemoirForm=function(){if(dojo.byId("allowOrganize").checked==true){dojo.query(".memoir_form").addClass("hidden");}else{dojo.query(".memoir_form").removeClass("hidden");}};this.uploadPicasa=function(){var e=true;dojo.query(".fielderror").addClass("hidden").forEach(function(h){h.innerHTML="";});dojo.query("input[name='participantemail']",dojo.byId("picasa_participants")).forEach(function(j){var h=ut.getEmail(j.value);if(h){}else{dojo.addClass(j.parentNode,"suggest_error");e=false;}});if(!e){dojo.byId("email_err").innerHTML="[Invalid email Id]";dojo.removeClass(dojo.byId("email_err"),"hidden");}if(!e){return;}if(dojo.trim(dojo.byId("title").value)<=0){dojo.byId("title_err").innerHTML="[Title cannot be empty]";dojo.removeClass(dojo.byId("title_err"),"hidden");return;}var c,d,b,g,f;dojo.query("[name='month'] option").forEach(function(h){if(h.selected){f=parseInt(h.value)-1;}});dojo.query("[name='date']").forEach(function(h){c=parseInt(h.value,10);});dojo.query("[name='year']").forEach(function(h){d=parseInt(h.value,10);});dojo.query("[name='hour']").forEach(function(h){b=parseInt(h.value,10);});dojo.query("[name='minute']").forEach(function(h){g=parseInt(h.value,10);});dateObj=new Date(d,f,c,b,g);if(dateObj.getDate()!=c||dateObj.getMinutes()!=g){dojo.byId("date_err").innerHTML="[Date is invalid]";dojo.removeClass(dojo.byId("date_err"),"hidden");return;}dateString=[dateObj.getUTCFullYear(),"-",(dateObj.getUTCMonth()+1),"-",dateObj.getUTCDate(),"T",dateObj.getUTCHours(),":",dateObj.getUTCMinutes(),":",dateObj.getUTCSeconds(),"Z"].join("");dojo.query("[name='happened']").forEach(function(h){h.value=dateString;});document.picasa_memoir_form.submit();};dojo.subscribe("showRating",this,"showRating");dojo.subscribe("showDefaultRating",this,"showDefaultRating");dojo.subscribe("rateTimeline",this,"rateTimeline");dojo.subscribe("createTopic",this,"createTopic");dojo.subscribe("createUser",this,"createUser");dojo.subscribe("checkDisplayName",this,"checkDisplayName");dojo.subscribe("recheckToAddressHeight",this,"recheckToAddressHeight");dojo.subscribe("deleteMessage",this,"deleteMessage");dojo.subscribe("deleteNotification",this,"deleteNotification");dojo.subscribe("sendMessage",this,"sendMessage");dojo.subscribe("uploadPicasa",this,"uploadPicasa");dojo.subscribe("togglePicasaMemoirForm",this,"togglePicasaMemoirForm");this._onFetchRecent=function(c){if(c.stat!="ok"){return;}var b=c.result;if(b.length>0){var e='<li><span class="title">Recent Lifeblobs</span></li>';for(var d=0;d<b.length;d++){var f=b[d];e+='<li><a href="'+f.url+'">'+f.name+"</a></li>";}dojo.query(".menu").forEach(function(g){dojo.query(".spinner",g).style("display","none");if(dojo.attr(g,"tabType")=="timeline"){g.innerHTML+=e;}});}else{dojo.query(".menu .spinner").style("display","none");}};this.truncate=function(d,c,b){var b=b||"...";return(d.length>c)?d.substr(0,c-b.length)+b:d;};console.timeEnd("PageUtil");}var pu=new PageUtil();dojo.require("dojo.hash");dojo.declare("Hash",null,{constructor:function(){this.hash="";},initialize:function(){var a=this;a.timelinePage=window.th?true:false;dojo.subscribe("/dojo/hashchange",a,"_onChange");dojo.subscribe("hash",a,"_set");dojo.subscribe("chgLoc",a,"_set");},_set:function(c,a){var b=this;if(b.timelinePage){var d=th.opts;if(d.embedded||d.obj.type==DERIVED_TYPE||d.ignoreUrl){return;}}if(c!=this.hash){this.hash=c;dojo.hash(c,a);}},_onChange:function(c){var a=this,d=a.hash,b;if(c==d){return;}else{if(!a.timelinePage){dojo.publish("hashChanged",[c]);}}b=dojo.queryToObject(c);a.hash=c;if(b.at){a._timelineChanges(b,dojo.queryToObject(d));}else{}},_timelineChanges:function(e,d){var c=th.my.timeline;if(!e.mid){dojo.publish("closeBlob",[null,false]);}if(e.max||!d.at){c.redraw({zoom:true,at:e.at,id:e.mid,max:e.max,history:true});}else{var a=Date.parseDate(e.at,DP[2],true).getTime(),b=Date.parseDate(d.at,DP[2],true).getTime();c.moveBy(a>b?-1:1);}}});new Hash().initialize();dojo.declare("Resize",null,{constructor:function(b,c){var a=this,c=c||{};a.targetId=b;a.minSize=c.minSize;a.maxSize=c.maxSize;a.bounds=c.bounds;a.whRatio=c.whRatio;a.NE=a._create("ne",b);a.NW=a._create("nw",b);a.SE=a._create("se",b);a.SW=a._create("sw",b);dojo.connect(a.NE,"onmousedown",dojo.hitch(a,"_beginSizing","ne"));dojo.connect(a.NW,"onmousedown",dojo.hitch(a,"_beginSizing","nw"));dojo.connect(a.SE,"onmousedown",dojo.hitch(a,"_beginSizing","se"));dojo.connect(a.SW,"onmousedown",dojo.hitch(a,"_beginSizing","sw"));},_create:function(a,b){return dojo.create("div",{"class":a+" resize",innerHTML:"<div></div>"},b);},_beginSizing:function(a,d){var b=this,c,f;if(b._isSizing){return false;}b.dir=a;b._isSizing=true;b.targetNode=dojo.byId(b.targetId);f=dojo.marginBox(b.targetNode);b.startPoint={x:d.clientX,y:d.clientY,left:f.l,top:f.t};b.startSize={w:f.w,h:f.h};b._pconnects=[];b._pconnects.push(dojo.connect(dojo.doc,"onmousemove",b,"_updateSizing"));b._pconnects.push(dojo.connect(dojo.doc,"onmouseup",b,"_endSizing"));b.onResizeStart(d);dojo.stopEvent(d);},_updateSizing:function(a){this._changeSizing(a);dojo.stopEvent(a);},_getNewCoords:function(f){try{if(!f.clientX||!f.clientY){return false;}}catch(f){return false;}var c=this,b=c.startPoint,k=c.startSize,m=b.x-f.clientX,l=b.y-f.clientY,a,h,d,g,j;switch(c.dir){case"ne":a=k.w-m,h=k.h+l;g=b.top-l;j={width:a,height:h,top:g};break;case"nw":a=k.w+m;h=k.h+l;d=b.left-m;g=b.top-l;j={width:a,height:h,top:g,left:d};break;case"se":a=k.w-m,h=k.h-l;j={width:a,height:h};break;case"sw":d=b.left-m;a=k.w+m;h=k.h-l;j={width:a,height:h,left:d};break;}c._activeResizeLastEvent=f;return c._checkConstraints(j,{dx:m,dy:l});},_checkConstraints:function(c,e){var b=this,a=b.bounds,d;if(c.top&&c.top<0){c.height+=c.top;c.top=0;}if(c.left&&c.left<0){c.width+=c.left;c.left=0;}b.minSizeCheck(c);b.maxSizeCheck(c);b.boundsCheck(c);if(b.whRatio){if(Math.abs(e.dy)>Math.abs(e.dx)){c.width=c.height*b.whRatio;}else{c.height=c.width/b.whRatio;}}return c;},minSizeCheck:function(a){var c=this.minSize,b;if(c){b=a.width-c.w;if(b<0){a.width=c.w;if(a.left){a.left+=b;}}b=a.height-c.h;if(b<0){a.height=c.h;if(a.top){a.top+=b;}}}},maxSizeCheck:function(a){var c=this.maxSize,b;if(c){if(a.width>c.w){a.width=c.w;delete a.left;}if(a.height>c.h){a.height=c.h;delete a.top;}}},boundsCheck:function(f){var e=this,d=e.startPoint,c=d.top,b=d.left,a=e.bounds,h=f.height,g=f.width;if(a){if(h&&h+c>a.h){f.height=a.h-c;}if(g&&g+b>a.w){f.width=a.w-b;}}},setBounds:function(a){this.bounds=a;},_changeSizing:function(f){var c=this,d=c._getNewCoords(f),b={},a;if(d===false){return;}for(a in d){b[a]=d[a]+"px";}dojo.style(c.targetNode,b);c.onResizing(f,d);},_endSizing:function(b){var a=this;dojo.forEach(a._pconnects,dojo.disconnect);a._isSizing=false;dojo.stopEvent(b);a.onResizeStop(b);},onResizeStop:function(a){},onResizeStart:function(a){},onResizing:function(b,a){}});dojo.declare("Base",null,{handles:{},clearElement:function(a){while(a.childNodes.length>0){a.removeChild(a.firstChild);}},isEmpty:function(a){return(a==undefined)||/^\s*$/.test(a);},stripTags:function(a){return a.replace(/<\/?[^>]+>/gi,"");},stripScripts:function(a){return a.replace(new RegExp("(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)","img"),"");},truncate:function(c,b,a){var a=a||"...";return(c.length>b)?c.substr(0,b-a.length)+a:c;},clearSelection:function(){if(document.selection&&document.selection.empty){document.selection.empty();}else{if(window.getSelection){var a=window.getSelection();if(a&&a.removeAllRanges){a.removeAllRanges();}}}},connect:function(a,c,b,e){var d=dojo.connect(c,b,e);if(this.handles[a]){dojo.disconnect(this.handles[a]);}this.handles[a]=d;},disconnect:function(a){if(this.handles[a]){dojo.disconnect(this.handles[a]);delete (this.handles[a]);}}});dojo.declare("Size",null,{constructor:function(b,a){this.width=b;this.height=a;},equals:function(a){if((a.width==this.width)&&(a.height==this.height)){return true;}return false;}});dojo.declare("Bounds",null,{constructor:function(){this.xMid=new Date();this.xMin=this.xMid;this.xMax=this.xMid;},contains:function(a){return((this.xMin<=a)&&(this.xMax>=a));},include:function(a){if(this.xMin>a){this.xMin=a;}else{if(this.xMax<a){this.xMax=a;}}}});dojo.declare("Point",null,{constructor:function(a,b){this.x=(!a)?0:a;this.y=(!b)?0:b;},equals:function(a){if((a.x==this.x)&&(a.y==this.y)){return true;}return false;}});dojo.declare("Control",Base,{initialize:function(a){this.timeline=a;},remove:function(){},getName:function(){},getIcon:function(){},appHandle:function(){return false;},show:function(){}});dojo.require("dojox.rpc.Service");dojo.declare("TimelineHelper",null,{maximized:false,constructor:function(){var b=this;if(!window.API_SVC){if(window.fbParams){for(var a in fbParams){smd.parameters.push({name:a,optional:false,"default":fbParams[a]});}}API_SVC=new dojox.rpc.Service(smd);}if(dojo.isIE){document.execCommand("BackgroundImageCache",false,true);}},initialize:function(e){console.time("TimelineHelper");var c=e.obj.buckets;var b=new Bounds();if(c.length>0){b.xMin=new Date(c[0][1]);b.xMax=new Date(c[c.length-1][2]);}else{b.xMin=new Date();b.xMax=new Date();}e.obj.bounds=b;e.view=e.view||"stack";var a=["at","mid","max","photo","video"],g=[],d;if(e.mid){for(d=0;d<a.length;d++){if(e[d]){g=["&",d,"=",e[d]].concat(g);}}this.maximized=true;dojo.publish("hash",[g.join("")]);}else{if(!e.embedded&&e.obj.type!=DERIVED_TYPE&&!e.ignoreUrl){var f=dojo.hash();if(!f){f=["at=",b.xMax.dateFormat(DP[2])].join("");dojo.publish("hash",[f]);}}}if(false&&!e.embedded&&window.console&&window.console.firebug&&!dojo.cookie("fb")){dojo.cookie("fb",true);dojo.publish("ott",[{message:"<img src='http://cdn2.lifeblob.com/lifeblob/img/theme-gray/common/warning.vb2fe9e.ico' class='toasterIcon'/>For the best Lifeblob performance, we suggest disabling Firebug for www.lifeblob.com",type:"warning"}]);}if(this.checkOpts(e)){this.opts=e;this.showTimelineForUrl();}dojo.subscribe("reloadTimeline",this,"reloadTimeline");console.timeEnd("TimelineHelper");},checkOpts:function(c){var b=["obj","timeline"];for(var a=0;a<b.length;a++){if(!c[b[a]]){throw new Error(['"',b[a],'" ',"is a required parameter"].join(""));}}return true;},onLoad:function(){var a=th.opts;if(!a.embedded&&!this.done){this.done=true;dojo.query(".interesting_timelines_cont").forEach(function(b){b.innerHTML=interestingTimelines;});dojo.query(".newsfeed_cont").forEach(function(b){b.innerHTML=newsfeed;});}},showTimeline:function(c){if(!this.my){dojo.subscribe("timelineRedrawMiddle",this,"onLoad",c);var b={};this.my=b;b.timeline=new Timeline(dojo.byId(c.timeline));b.timeline.initialize(c);b.controls={};b.controls.scrollBar=new ScrollControl();if(!c.embedded&&!c.facebookapp){}for(var a in b.controls){b.timeline.addControl(b.controls[a]);}this.opts.obj.timeline=b.timeline;b.timeline.show({init:true,zoom:true,at:c.at,id:c.mid,max:c.max,photo:c.photo,video:c.video});}},reloadTimeline:function(){this.my.timeline.refreshData();},getUser:function(){return LB.getUser();},getObj:function(){return this.my.timeline.obj;},showTimelineForUrl:function(){this.showTimeline(dojo.mixin(this.parseHash(),this.opts));},parseHash:function(){return dojo.queryToObject(dojo.hash());}});SLICE_WIDTH=200;MILLI=[3153600000000,315360000000,2592000000,604800000,86400000,3600000,1];dojo.declare("Memoir",Base,{constructor:function(a){this.data=a;this.state=NEW;},initialize:function(a,b){this.timeline=a;this.group=b;this.cont=a.getContainer();this.state=INITIALIZED;},getId:function(){return this.data.id;},getData:function(){return this.data;},getObj:function(){return this.timeline.getObj();},_populateRelations:function(){},show:function(A,k,z,j,v,u){this._populateRelations();u=u?u:false;var h=this,r=h.timeline,q=r.getObj(),y=h.getData(),o=y.people?y.people.length:0,f={1:M.MAX_VISIBILITY_ME,2:M.MAX_VISIBILITY_PARTICIPANTS,3:M.MAX_VISIBILITY_EVERYONE},a=(dojo.isIE==6)?"http://cdn1.lifeblob.com/lifeblob/img/theme-gray/common/video_play_ie6.v940325.png":"http://cdn0.lifeblob.com/lifeblob/img/theme-gray/common/video_play.vf0eacd.png",x=th.getUser().postHighlight,p=false,w=y.visibility,b=j[0],l=(w==3),e=r.embedded,g=e?"target='_blank'":"",c="";if(l){if(o>1){c=["<div class='visibility visibility-public'>Shared with + ",(o-1)," people</div>"].join("");}}else{if(o>1){c=["<div class='visibility visibility-shared'>Private to me + ",(o-1)," more</div>"].join("");}else{c=["<div class='visibility visibility-private'>Private to only me</div>"].join("");}}if(x){}var m=["<div class='memoir_cont' slot='",A.slot,"'>","<div class='date'>"];if(q.type==TOPIC_TYPE&&q.category&&q.category==521){m.push("<span class='vote'><img class='img' src='http://cdn0.lifeblob.com/lifeblob/img/timeline/maxblob/like_on.vc88ea3.png'/>Vote</span>");}m.push("<span class='major'>",A.major,"</span><span class='minor'>",A.minor,"</div>","<div class='img_cont'>","<div class='media'>",(y.photo?["<img class='ep' src='",ut.getImageURL(y.photo,176,0,y.id),"'/>"].join(""):(y.video?["<img class='ep' src='",ut.getImageURL(y.video,176,0,y.id),"' style='width:176px'/><img class='play' src='",a,"' /> "].join(""):(!h.isEmpty(y.desc)?["<div class='text'>",y.desc,"</div>"].join(""):""))),"</div>");m.push("<div class='title_cont ",(p?"new_post":""),"'>","<div class='title_bg'></div>",(p?"<div class='title_bd'></div>":""),"<div class='title'>",h.truncate(y.title,24),"</div>","<div class='about ",l?"":"fl","'>",y.created.by_person.name,"</div>",c);m.push("</div></div></div>");b.innerHTML=m.join("");dojo.style(b,"visibility","visible");dojo.removeClass(b,"no_memoir");},moreRelations:function(c,b,a){},_makeVisible:function(a){dojo.style(a,"visibility","visible");},highlight:function(c){var b=cm.get("memoir.cache_ordered"),a=dojo.indexOf(b,this),d=b[a-1].group.stack;dojo.query(".title_cont",d[0]).forEach(function(e){dojo.animateProperty({node:e,duration:5000,onBegin:function(){dojo.addClass(e,"new_post");},onEnd:function(){dojo.removeClass(e,"new_post");}}).play();});}});Memoir.fitImage=function(b,f,a){if(!f){var e=127,d=176,c=ut.scale(b,d,e,{noalign:true});if(c.height<(e-29)){dojo.style(b,"marginTop",((98-c.height)/2)+"px");}}if(true){dojo.fadeIn({node:b}).play();}else{dojo.style(b,"opacity","1");}};dojo.declare("MemoirGroup",null,{constructor:function(a){this.bucket=a;this.cache={};this.memoirs=[];this.active=0;this.bounds={};},initialize:function(a){this.timeline=a;this.cont=a.getContainer();},addMemoir:function(b){if(!this.cache[b.data.id]){this.cache[b.data.id]=b;this.memoirs.push(b);b.initialize(this.timeline,this);b._populateRelations();var a=b.data.happened;if(!this.bounds.xMin){this.bounds.xMin=a;}else{if(this.bounds.xMin.getTime()>a.getTime()){this.bounds.xMin=a;}}if(!this.bounds.xMax){this.bounds.xMax=a;}else{if(this.bounds.xMax.getTime()<a.getTime()){this.bounds.xMax=a;}}}},removeMemoir:function(b){var a=dojo.indexOf(this.memoirs,b);this.memoirs.splice(a,1);},getBounds:function(){return this.bounds;},next:function(){if(this.timeline.interactive){this.active=(this.active+1)%this.memoirs.length;this.memoirs[this.active].show(this.bucket,this.active+1,this.memoirs.length,this.stack);dojo.publish("logAjaxEvent",["nav","memoir-next","timeline"]);}},prev:function(){if(this.timeline.interactive){this.active=!this.active?(this.memoirs.length-1):(this.active-1);this.memoirs[this.active].show(this.bucket,this.active+1,this.memoirs.length,this.stack);dojo.publish("logAjaxEvent",["nav","memoir-prev","timeline"]);}},redraw:function(a,c,b){this.stack=a||this.stack;this.memoirs[this.active].show(this.bucket,this.active+1,this.memoirs.length,this.stack,c,b);},getMemoir:function(){return this.memoirs[this.active];},moreRelations:function(b,a){this.memoirs[this.active].moreRelations(b,a,this.stack);},forPrefetch:function(){var c=this.memoirs;var b=[];if(this.active==0){if(!c[0].similar){for(var a=0;a<Math.min(2,c.length);a++){b.push(c[a].data.id);}if(c.length>2){b.push(c[c.length-1].data.id);}}}else{}return b;},setActive:function(b){var a=dojo.indexOf(this.memoirs,b);this.active=(a>=0?a:this.active);}});dojo.require("dojo.dnd.move");dojo.declare("ScrollControl",Control,{initialize:function(b){this.pixelMap={};this.pad=5;this.timeline=b;this.cont=b.getContainer();var a=this;dojo.subscribe("timelineResize",a,"_resize");dojo.subscribe("timelineRedraw",a,"_redraw");dojo.subscribe("timelineReload",a,"_reload");dojo.query(".scrollbar").forEach(function(f){var d=a.timeline,g=d.getBounds(),c=d.getObj().bounds,e=d.size.width-(d.embedded?125:60);f.innerHTML=["<table border=0 cellpadding=0 cellspacing=0><tr>","<td class='sc_btn sc_btn_left'><div class='sc_scroll_left move_left' title='",M.SC_MOVE_HELP,"'></div></td>","<td class='sc_scroll'><div class='sc_scroll_center'><hr class='line'/>","<div class='sc_peg' title='",M.SC_DRAG_HELP,"'>","<div class='sc_slider'><div class='sc_center'></div><div class='sc_right'></div></div>","<div class='sc_range'></div>","</div>","</div></td>","<td class='sc_btn sc_btn_right'><div class='sc_scroll_right move_right' title='",M.SC_MOVE_HELP,"'></div></td>","</tr>","<tr>","<td></td>","<td>","<div class='sc_left_date'>",c.xMin.dateFormat("M, Y"),"</div><div class='sc_right_date'>",c.xMax.dateFormat("M, Y"),"</div>","</td>","<td></td>","</tr>","</table>",].join("");dojo.query(".sc_scroll_center",f).onclick(function(h){if(dojo.hasClass(h.target,"sc_scroll_center")){var k=h.pageX-95;var j=a.pixelMap[d.getZoom()][k];if(j){g.xMax=j.rightDate;}else{g.xMax=new Date(c.xMin.getTime()+(k*(c.xMax.getTime()-c.xMin.getTime())/e));}d.redraw({redraw:true});}});dojo.query(".sc_peg",f).forEach(function(j){var h=new dojo.dnd.move.parentConstrainedMoveable(j,{area:"padding",within:true});dojo.query(".sc_range",j).forEach(function(k){dojo.connect(h,"onMoveStart",function(l){d.interactive=false;dojo.fadeIn({node:k,onBegin:function(){dojo.style(k,"display","block");}}).play();});h.onMove=function(m,t){var q=m.marginBox;var p=t.l-q.l-95;var r=a.pixelMap[d.getZoom()][Math.floor(p)];var l=parseInt(dojo.style(j,"width"));if(r){h.constraintBox.r=e-r.right+r.left;g.xMax=r.rightDate;dojo.animateProperty({onBegin:function(){k.innerHTML=[r.leftDate.dateFormat("d My")," - ",r.rightDate.dateFormat("d My")].join("");},node:j,duration:50,properties:{width:{start:l,end:(r.right-r.left),unit:"px"},left:{end:r.left,unit:"px"}},onAnimate:function(v){var u=parseInt(v.width);dojo.style(k,"marginLeft",(u-100)/2+"px");}}).play();}else{if(!this.fetching){this.fetching=true;var o=p+l/2;g.xMax=new Date(c.xMin.getTime()+(o*(c.xMax.getTime()-c.xMin.getTime())/e));d.redraw({scroll:true});}}};dojo.connect(h,"onMoveStop",function(m){var q=parseInt(dojo.style(j,"left"));var l=parseInt(dojo.style(j,"width"));var p=a.pixelMap[d.getZoom()][Math.floor(q+a.pad+l/2)];try{g.xMax=p.rightDate;}catch(o){}dojo.fadeOut({node:k,onEnd:function(){dojo.style(k,"display","none");}}).play();d.redraw({redraw:true});d.interactive=true;dojo.publish("chgLoc",[["at=",g.xMax.dateFormat(DP[2])].join("")]);dojo.publish("logAjaxEvent",["nav","scroll-peg","timeline"]);});});});});this._setupHandlers();this._resize();},_ondblclick:function(a){dojo.stopEvent(a);this._stopScroll();},_moveLeft:function(c){var b=this,a=b.timeline;a.moveBy(1);this._stopScroll();this.handle=setInterval(function(){a.moveBy(1);},200);dojo.stopEvent(c);dojo.publish("chgLoc",[["at=",a.getBounds().xMax.dateFormat(DP[2])].join("")]);dojo.publish("logAjaxEvent",["nav","scroll-left","timeline"]);},_moveRight:function(c){var b=this,a=b.timeline;a.moveBy(-1);this._stopScroll();this.handle=setInterval(function(){a.moveBy(-1);},200);dojo.stopEvent(c);dojo.publish("chgLoc",[["at=",a.getBounds().xMax.dateFormat(DP[2])].join("")]);dojo.publish("logAjaxEvent",["nav","scroll-right","timeline"]);},_stopScroll:function(){clearInterval(this.handle);this.handle=null;},_resize:function(){dojo.query(".sc_right",this.cont).style({left:this.timeline.size.width-10+"px"});},_redraw:function(e){if(e.fetched||e.zoom){this._buildPixelMap();}if(!e.scroll){var j=this.timeline,g=j.getBounds(),f=j.getObj().bounds,b=j.size.width-(j.embedded?125:60),h=j.getZoom(),k=cm.get("memoir.groups_ordered")[h],d=k.length,a=j.getGroupCount();if(d>0&&d>a){if(f.xMax>f.xMin){var c=Math.floor((g.xMin.getTime()-f.xMin.getTime())*b/(f.xMax.getTime()-f.xMin.getTime()));var b=Math.floor(Math.max(((g.xMax.getTime()-g.xMin.getTime())*b/(f.xMax.getTime()-f.xMin.getTime())),0));dojo.query(".scrollbar .sc_peg").style({left:c+"px",width:b+"px"});}else{dojo.query(".scrollbar .sc_peg").style({left:0+"px",width:b+"px"});}}else{dojo.query(".scrollbar .sc_peg").style({left:0+"px",width:b+"px"});}}},_reload:function(){this.cont=this.timeline.getContainer();this._resize();this._redraw({fetched:true});this._setupHandlers();},_setupHandlers:function(){var a=this;dojo.query(".move_left").onmousedown(a,"_moveLeft").onmouseup(a,"_stopScroll").onmouseout(a,"_stopScroll").connect("ondblclick",a,"_ondblclick");dojo.query(".move_right").onmousedown(a,"_moveRight").onmouseup(a,"_stopScroll").onmouseout(a,"_stopScroll").connect("ondblclick",a,"_ondblclick");},_buildPixelMap:function(){var h=this.timeline,k=h.getObj().bounds,a=h.getZoom(),b=cm.get("memoir.groups_ordered")[a],m=h.size.width-(h.embedded?125:60),q=k.xMin.getTime(),v=k.xMax.getTime(),c=(v-q)/m,w=this.pixelMap[a]||{},u=b.length,d=u-1,e=u-h.getGroupCount(),x,o,y,l,r,p;if(u>0){x=Math.floor((b[u-1].bounds.xMax-q)/c);}else{x=0;}for(r=e;r>=0;r--){var g=b[e].bounds,f=b[d].bounds;o=Math.floor((f.xMax-q)/c);y=Math.floor((g.xMin-q)/c);l=Math.floor((y+o)/2);w[l]={left:y,right:o,leftDate:g.xMin,rightDate:f.xMax};for(p=l;p<x;p++){w[p+1]=w[l];}if(r==0){for(p=l;p>y;p--){w[p-1]=w[l];}}x=l;d-=1;e-=1;}this.pixelMap[a]=w;this.fetching=false;},getName:function(){return"Scroll Control";}});dojo.declare("NavigationControl",Control,{initialize:function(timeline){this.timeline=timeline;this.cont=timeline.getContainer();var ref=this;var obj=timeline.getObj();dojo.query(".timeline_actions").forEach(function(actionNode){var filterCookie=dojo.cookie("_vf!"),filterDisabled={};if(!filterCookie){filterDisabled.tw=true;}else{if(filterCookie!="all"){var filters=filterCookie.split("-");for(var index in filters){filterDisabled[filters[index]]=true;}}}var arrowHtml=((obj.type==PLACE_TYPE)||(obj.type==TAG_TYPE))?'<img handle="true" src="http://cdn0.lifeblob.com/lifeblob/img/theme-gray/common/small_arrow_down_blue.vc80485.png"/>':'<img handle="true" src="http://cdn1.lifeblob.com/lifeblob/img/theme-gray/common/small_arrow_down_brown.vcaaff7.png"/>';actionNode.innerHTML=['<span class="timeline_action">',M.ZOOM,'<span class="filters" handle="true">','<span handle="true" class="title">',eval("M.NAV_ZOOM_"+timeline.getZoom()),"</span>",arrowHtml,'<div class="choose hidden" action="zoom" style="right:195px;width:65px;">','<a class="option zoom" param="0" href="javascript:void(0)">',M.NAV_ZOOM_0,"</a>",'<a class="option zoom" param="1" href="javascript:void(0)">',M.NAV_ZOOM_1,"</a>",'<a class="option zoom" param="2" href="javascript:void(0)">',M.NAV_ZOOM_2,"</a>",'<a class="option zoom" param="3" href="javascript:void(0)">',M.NAV_ZOOM_3,"</a>",'<a class="option" param="4" href="javascript:void(0)">',M.NAV_ZOOM_4,"</a>","</div>","</span>","</span>",'<span class="timeline_action">',M.FILTER,'<span class="filters" handle="true">','<span handle="true" class="title">',ref.getFilter(),"</span>",arrowHtml,'<div class="choose hidden" action="filter" >','<div class="ftitle">',M.NAV_FILTER_TITLE,"</div>",'<a class="filter" href="javascript:void(0)"><input type="checkbox" class="checkbox" param="p" id="f_photo" ',(filterDisabled.p?"":"checked"),'/><label for="f_photo">',M.NAV_FILTER_P,"</label></a>",'<a class="filter" href="javascript:void(0)"><input type="checkbox" class="checkbox" param="v" id="f_video" ',(filterDisabled.v?"":"checked"),'/><label for="f_video">',M.NAV_FILTER_V,"</label></a>",'<a class="filter apply" href="javascript:void(0)">',M.NAV_FILTER_APPLY,"</a>","</div>","</span>","</span>",'<span class="timeline_action">','<a class="link" style="padding: 0 0 0 5px; display: inline" href="javascript:void(0)" action="showHideStack" actionParams="hide">',M.HIDE_RELATIONS,"</a>","</span>"].join("");dojo.query(".filters",actionNode).onclick(function(event){if(!dojo.attr(event.target,"handle")){return;}var filterNode=event.currentTarget;dojo.query(".choose",filterNode).forEach(function(chooseNode){if(!dojo.hasClass(chooseNode,"hidden")){dojo.addClass(chooseNode,"hidden");return;}dojo.removeClass(chooseNode,"hidden");});});dojo.query(".choose",actionNode).forEach(function(chooseNode){var actionType=dojo.attr(chooseNode,"action");switch(actionType){case"zoom":dojo.query("a",chooseNode).onclick(function(event){var elem=event.currentTarget,zoom=dojo.attr(elem,"param");dojo.addClass(chooseNode,"hidden");dojo.query(".title",chooseNode.parentNode).forEach("item.innerHTML='"+eval("M.NAV_ZOOM_"+zoom)+"'");ref.timeline.setZoom(parseInt(zoom));dojo.stopEvent(event);});break;case"filter":dojo.query("input[type='checkbox']",chooseNode).onchange(function(event){dojo.query("a.apply",chooseNode).style("display","block");});dojo.query("a.apply",chooseNode).onclick(function(event){var notSelected=[];dojo.query("input[type='checkbox']",chooseNode).forEach(function(cE){if(cE.checked!=true){notSelected.push(dojo.attr(cE,"param"));}});if(notSelected.length==0){dojo.cookie("_vf!","all",{expires:100,path:"/"});}else{dojo.cookie("_vf!",notSelected.join("-"),{expires:100,path:"/"});}dojo.query(".title",chooseNode.parentNode).forEach("item.innerHTML='"+ref.getFilter()+"'");dojo.style(event.currentTarget,"display","none");dojo.addClass(chooseNode,"hidden");dojo.publish("reloadTimeline");dojo.stopEvent(event);});break;}});dojo.query("[action='showHideStack']",actionNode).onclick(function(evt){var node=evt.currentTarget,action=dojo.attr(node,"actionParams"),t=ref.timeline;switch(action){case"show":t.showStack();node.innerHTML=M.HIDE_RELATIONS;dojo.attr(node,"actionParams","hide");break;case"hide":t.hideStack();node.innerHTML=M.SHOW_RELATIONS;dojo.attr(node,"actionParams","show");break;}});});},getFilter:function(){var filterCookie=dojo.cookie("_vf!");console.log("Cookie Value: ["+filterCookie+"]");if(!filterCookie||filterCookie=="all"){return M.NAV_FILTER_NONE;}var hidden=[];var filters=filterCookie.split("-");for(var index in filters){var value=eval("M.NAV_FILTER_"+filters[index].toUpperCase());if(value){hidden.push(value);}}if(hidden.length>0){return hidden.join(", ")+" hidden";}return M.NAV_FILTER_NONE;},getName:function(){return"Nav Control";}});dojo.declare("Timeline",null,{constructor:function(a){this.container=a;this.node;this.obj;this.zoomlevel=-1;this.paneCount=6;this.size=new Size(1000,300);this.groupCount=4;this.groupWidth=155;this.controls={};this.bounds=new Bounds();this.wheelScroll=false;this.wheelZoom=false;this.animation=true;this.visible=false;this.embedded=false;this.facebookapp=false;this.interactive=true;this.lastMemoirs;this.viewerFrequencyMap;this.timelineFrequencyMap;},initialize:function(b){b=b||{};b.width=b.width||this.container.offsetWidth;b.height=b.height||this.container.offsetHeight;if(b.embedded){if(dojo.isIE){b.height=b.height-46;}else{if(dojo.isChrome){b.height=document.height-49;}else{b.height=document.height-46;}}this.paneCount=1;this.embedded=true;this.container.innerHTML="";dojo.removeClass(this.container,"embed_preloading");}this.openTimeline=b.openTimeline||false;if(b.facebookapp){this.facebookapp=true;}this.timelineFrequencyMap=b.timelineFrequencyMap||{};this.viewerFrequencyMap=b.viewerFrequencyMap||{};if(th.getUser().person.id>0){if(!this.viewerFrequencyMap.people){this.viewerFrequencyMap.people={};}this.viewerFrequencyMap.people[th.getUser().person.id]=1;}this.obj=b.obj;this.size=(b.width+b.height!=0)?new Size(b.width,b.height):this.size;this.showHeight=300;this.hideHeight=200;this.zoomlevel=(b.zoom!=undefined)?parseInt(""+b.zoom):this.zoomlevel;if(this.zoomlevel>5||this.zoomlevel<0){this.zoomlevel=3;}if(b.view=="derived"){this.zoomlevel=4;}this.zoomlevel=5;this.bounds.xMax=b.end||b.obj.bounds.xMax.clone();this.groupCount=Math.floor(this.size.width/this.groupWidth);this.lastMemoirs=b.lastMemoirs||[];this.node=document.createElement("div");dojo.addClass(this.node,"stack");dojo.style(this.node,{height:this.size.height+"px"});var e=this.getLeftOffset(),d=[],c,a;d.push("<div class='stack_pane stack_pane_1' style='left:",e,"px'>");for(a=0;a<15;a++){d.push("<div class='memoir' style='visibility:hidden;'></div>");}d.push("</div>");d.push("<a href='javascript:void(0)' class='sc_left move_left' title='",M.SC_MOVE_HELP,"'></a>","<a href='javascript:void(0)' class='sc_right move_right' title='",M.SC_MOVE_HELP,"'></a>");this.container.innerHTML="";this.container.appendChild(this.node);this.node.innerHTML=d.join("");this.manager=new MemoirManager(this);this.manager.initialize();},getLeftOffset:function(){return(4-this.groupWidth*this.groupCount);},getContainer:function(){return this.node;},getGroupCount:function(){return this.groupCount;},getZoom:function(){return this.zoomlevel;},getSize:function(){return this.size;},getObj:function(){return this.obj;},getBounds:function(){return this.bounds;},getManager:function(){return this.manager;},getLastMemoirs:function(){return this.lastMemoirs;},setSize:function(a){this.size=a;},setType:function(a){this.type=a;},moveTo:function(a,b){},moveBy:function(e){if(this.interactive&&this.manager.canMove(e)){var c=cm.get("memoir.panes"),d=c.start,a=(c.start+14)%15,b;if(e>0){for(b=0;b<c[a].length;b++){dojo.place(c[a][b],c[d][b],"before");dojo.style(c[a][b],"visibility","hidden");}if(c.start>0){c.start--;}else{c.start=14;}delete (c[a].group);}else{for(b=0;b<c[d].length;b++){dojo.place(c[d][b],c[a][b],"after");dojo.style(c[d][b],"visibility","hidden");}if(c.start<14){c.start++;}else{c.start=0;}delete (c[d].group);}this.redraw({move:e});}},setZoom:function(a){if((this.zoomlevel!=a)&&(a>=0)&&(a<=4)){this.zoomlevel=a;this.redraw({zoom:true});dojo.publish("logAjaxEvent",["nav","zoom","timeline"]);}},zoomIn:function(a){if(this.zoomlevel<4){this.zoomlevel++;this.redraw({zoom:true,center:a});dojo.publish("logAjaxEvent",["nav","zoom-in","timeline"]);}},zoomOut:function(a){if(this.zoomlevel>0){this.zoomlevel--;this.redraw({zoom:true,center:a});dojo.publish("logAjaxEvent",["nav","zoom-out","timeline"]);}},addControl:function(a){if(!this.controls[a.getName()]){this.controls[a.getName()]=a;a.initialize(this);}},removeControl:function(a){delete this.controls[a.getName()];a.remove();},_getControls:function(){return this.controls;},resize:function(b){this.size.width=this.container.offsetWidth||this.size.width;this.size.height=this.container.offsetHeight||this.size.height;this.groupCount=Math.floor(this.size.width/this.groupWidth);var a=this.getLeftOffset();dojo.query(".stack_pane",this.getContainer()).style("left",a+"px");dojo.publish("timelineResize");this.redraw((b.target)?{redraw:true}:b);},redraw:function(a){if(this.visible){this.manager.refresh(a);}},refreshData:function(){var b=this.obj;var a=(b.type==TOPIC_TYPE)?4:((b.type==PLACE_TYPE)?2:((b.type==TAG_TYPE)?3:((b.type==DERIVED_TYPE)?5:(b.type==FACEBOOK_APP_TYPE?6:1))));this.hide();this.node.parentNode.removeChild(this.node);this.obj.buckets=[];this.obj.bounds=null;API_SVC.getInfo(a,b.id,true).addCallback(this,"_onRefreshData");},_onRefreshData:function(d){if(d.stat!="ok"){console.log("Error. Code:"+d.code+" Desc:"+d.desc);return;}var a=d.result;var c=a.buckets;var b=new Bounds();if(c.length>0){b.xMin=new Date(c[0][1]);b.xMax=new Date(c[c.length-1][2]);}else{b.xMin=new Date();b.xMax=new Date();}this.obj.buckets=c;this.obj.bounds=b;this.bounds=b;this.lastMemoirs=a.lastMemoirs||[];this.node=document.createElement("div");dojo.addClass(this.node,"stack");dojo.style(this.node,{height:this.size.height+"px"});var h=this.getLeftOffset(),g=[],f,e;g.push("<div class='stack_pane stack_pane_1' style='left:",h,"px'>");for(e=0;e<15;e++){g.push("<div class='memoir' style='visibility:hidden;'></div>");}g.push("</div>");g.push("<a href='javascript:void(0)' class='sc_left move_left' title='",M.SC_MOVE_HELP,"'></a>","<a href='javascript:void(0)' class='sc_right move_right' title='",M.SC_MOVE_HELP,"'></a>");this.container.appendChild(this.node);this.node.innerHTML=g.join("");this.manager=new MemoirManager(this);this.manager.initialize();this.show({init:true,zoom:true});dojo.publish("timelineReload");},hide:function(){if(this.visible){dojo.style(this.node,"display","none");this.visible=false;dojo.publish("notifyEnd");dojo.publish("timelineHidden");}},show:function(a){if(!this.visible){dojo.publish("notifyStart");dojo.style(this.node,"display","block");this.visible=true;dojo.publish("timelineShown");this.resize(a);}},showStack:function(c){var a=this.container,b=this;dojo.style(a,"overflow","hidden");dojo.removeClass(a,"hidden_stack");dojo.animateProperty({node:a,duration:500,properties:{height:{start:b.hideHeight,end:b.showHeight,unit:"px"}},onEnd:function(){dojo.style(a,"overflow","visible");b.resize({});dojo.style(b.node,{height:b.showHeight+"px"});if(c){c();}}}).play();},hideStack:function(d){var a=this.container,c=this,b=c.node;dojo.style(a,"overflow","hidden");dojo.animateProperty({node:a,duration:500,properties:{height:{start:c.showHeight,end:c.hideHeight,unit:"px"}},onEnd:function(){dojo.style(a,"overflow","visible");c.resize({});dojo.addClass(a,"hidden_stack");dojo.style(c.node,{height:c.hideHeight+"px"});if(d){d();}}}).play();},getBucket:function(b){var d,a,c;switch(this.zoomlevel){case 0:d=(b.getFullYear()-(b.getFullYear()%10));return{slot:d,major:d,minor:""};case 1:d=b.getFullYear();return{slot:d,major:d,minor:""};case 2:d=((b.getFullYear()*100)+b.getMonth());a=b.dateFormat("M");c=b.dateFormat("'y");return{slot:d,major:a,minor:c};case 3:d=((b.getFullYear()*10000)+(b.getMonth()*100)+b.getDate());a=b.dateFormat("D");c=b.dateFormat("M d 'y");return{slot:d,major:a,minor:c};case 4:d=((b.getFullYear()*1000000)+(b.getMonth()*10000)+(b.getDate()*100)+b.getHours());a=b.dateFormat("g");c=b.dateFormat("A M d 'y");return{slot:d,major:a,minor:c};case 5:d=b.getTime();a=b.dateFormat("d");c=b.dateFormat("M 'y");return{slot:d,major:a,minor:c};}}});dojo.declare("MemoirManager",Base,{constructor:function(a){this.timeline=a;this.processing=false;this.retry=false;this.cache={};this.cacheOrdered=[];this.groups={};this.groupsOrdered={};this.panes=[];this.seq=1;this.mouseovertimer=0;this.mouseoverindex=-1;dojo.subscribe("memoirRefresh",this,"refresh");},initialize:function(){var d=this,a=-1,c=this.panes,b=this.timeline,e;dojo.query(".memoir",this.timeline.getContainer()).forEach(function(j,h,g){e=Math.floor(h%15);if(!e){a++;}if(!c[e]){c[e]=[];}c[e][a]=j;}).connect("onmouseover",this,"_onmouseoverHandlers").connect("onmouseout",this,"_onmouseoutHandlers");c.start=0;var f=c[0][0].parentNode;dojo.connect(f,"onclick",this,"_clickHandlers");cm.put("memoir.cache",this.cache);cm.put("memoir.cache_ordered",this.cacheOrdered);cm.put("memoir.groups",this.groups);cm.put("memoir.groups_ordered",this.groupsOrdered);cm.put("memoir.panes",this.panes);},_onmouseoverHandlers:function(a){dojo.stopEvent(a);if(this.mouseovertimer){clearTimeout(this.mouseovertimer);this.mouseovertimer=0;}var d=this,c=this.panes;if(this.mouseoverindex>0&&a.currentTarget==c[this.mouseoverindex][0]){return;}for(var b=0;b<15;b++){if(c[b][0]==a.currentTarget){this.mouseoverindex=b;break;}}dojo.query("> .memoir_cont",a.currentTarget).forEach(function(f){var j=dojo.attr(f,"slot"),g=d.groups[d.zoom][j],h=g.getMemoir();if(!h.data.relations){h._populateRelations();}var e=h.data.relations;dojo.query("#tagcloud .relation").removeClass("connected").filter(function(m){var k;for(var l=0;l<e.length;l++){k=e[l].type+e[l].id;if(dojo.hasClass(m,k)){return true;}}return false;}).addClass("connected");});},_onmouseoutHandlers:function(a){dojo.stopEvent(a);if(this.mouseovertimer){clearTimeout(this.mouseovertimer);this.mouseovertimer=0;}this.mouseovertimer=setTimeout(dojo.hitch(this,"_clearTagcloudSelection"),500);},_clearTagcloudSelection:function(){clearTimeout(this.mouseovertimer);this.mouseovertimer=0;this.mouseoverindex=-1;dojo.query("#tagcloud .connected").removeClass("connected");},_clickHandlers:function(j){var k=this.timeline,d=j.target,c=d.id;if(!k.interactive){return;}if(d.tagName!="A"){var f,g,h;while(!dojo.hasClass(d,"stack_pane")){if(dojo.hasClass(d,"memoir_cont")){f=dojo.attr(d,"slot");break;}else{d=d.parentNode;}}if(!f){return;}h=this.groups[this.zoom][f];g=h.getMemoir();if(k.openTimeline){var a=k.getBounds(),e=k.getObj();window.open(ut.getUrl({type:e.type,display:e.displayName,at:g.data.happened,src:"spawn"}),"_blank");}else{if(k.embedded){var a=k.getBounds(),e=k.getObj(),b=ut.getBlobUrl(g.data);window.open([b,"?src=embed&utm_source=",e.type,"&utm_campaign=lifeblob_embed&utm_medium=embed&utm_term=",e.displayName].join(""),"_blank");}else{ut.maximize(g.data);}}}else{var f=dojo.attr(d,"slot");if(f){var h=this.groups[this.zoom][f],g=h.getMemoir();ut.maximize(g.data);}}},addMemoirs:function(a){var b,c=a.length;a.sort(function(e,d){return e.id-d.id;});for(b=0;b<c;b++){this.addMemoir(a[b]);}},addMemoir:function(d){if(!this.cache[d.id]){var h=new Memoir(d),c=this.timeline,f=this.zoom,b=this.seq,a=h.data.happened,g=c.getBucket(a),e=this.groups[f][g.slot];this.cache[d.id]=h;this.cacheOrdered.push(h);if(e){if(b>999){b=1;}g.slot-=b;a.setTime(a.getTime()-b);b++;this.seq=b;}e=new MemoirGroup(g);this.groups[f][g.slot]=e;this.groupsOrdered[f].push(e);e.initialize(c);e.addMemoir(h);}else{this.updateMemoir(d);}},removeMemoir:function(a){delete this.cache[a];},getMemoir:function(a){return this.cache[a];},updateMemoirs:function(a){var b;for(b=0;b<a.length;b++){this.updateMemoir(a[b]);}},updateMemoir:function(a){var b=this.cache[a.id];if(b){b.data=a;}},canMove:function(b){var m=this.timeline,h=this.zoom,e=this.groups,j=m.getBounds(),a=m.getObj().buckets,k=this.groupsOrdered[h],d=m.getBucket(j.xMax),c=dojo.indexOf(k,e[h][d.slot]),l=m.getBucket(j.xMin),f=dojo.indexOf(k,e[h][l.slot]);if((b>0)&&((f>0)||(!a[0].fetched))){return true;}else{if((b<0)&&((c<k.length-1)||(!a[a.length-1].fetched))){return true;}}return false;},refresh:function(b){var a=b||{};if(!this.processing){dojo.publish("notifyStart");this.processing=true;this.retry=null;this._fetchMemoirs(a);}else{this.retry=this.retry||{move:0};this.retry.force=a.force||this.retry.force;this.retry.zoom=a.zoom||this.retry.zoom;this.retry.redraw=a.redraw||this.retry.redraw;this.retry.move+=a.move||0;}},_fetchMemoirs:function(t){var c=this.timeline,r=c.getLastMemoirs(),h=c.getObj(),a=c.getZoom(),j=c.getBounds(),b=h.buckets,m=b.length,p=c.getGroupCount(),q,d,g,e,k=[],o,l=false,u=m+1;if(t.zoom){this.zoom=this.timeline.getZoom();this._groupMemoirs(t.regroup);this._sortGroups();}e=(t.at?Date.parseDate(t.at,DP[2],true).getTime():j.xMax.getTime())+(p*MILLI[a]);g=e-(3*p*MILLI[a]);for(q=0;q<m;q++){if(b[q].fetched){l=true;u=Math.min(u,q);}if((b[q][2]>=g)&&(b[q][1]<=e)){if(!b[q].fetched){k.push(b[q][0]);b[q].fetched=true;}}}l=l&&(u>0)&&this._getNearestGroupIndex(new Date(e))<16;if(l&&!b[u-1].fetched){k.push(b[u-1][0]);b[u-1].fetched=true;}if(t.init&&m>1&&k.length==1&&k[0]==b[m-1][0]){var o=b[m-2];k.push(o[0]);o.fetched=true;}if(m>0){var f=b[m-1][0];if(((k.length==1&&k[0]==f)||(k.length==2&&(k[0]==f||k[1]==f)))&&r.length){this._addMemoirs(t,r);return;}}if(!k.length&&(b.length>0)&&!b[0].fetched&&(e<b[0][1])){k.push(b[0][0]);b[0][0].fetched=true;}if(k.length){d=(h.type==TOPIC_TYPE)?4:((h.type==PLACE_TYPE)?2:((h.type==TAG_TYPE)?3:((h.type==DERIVED_TYPE)?5:1)));API_SVC.fetchMemoirs(h.id,d,k.join(",")).addCallback(this,"_onFetchMemoir",t,k);}else{this._finish(t);}},_onFetchMemoir:function(c,b,a){if(a.stat!="ok"){console.log("Error. Code:"+a.code+" Desc:"+a.desc);return;}this._addMemoirs(c,a.result,b);},_addMemoirs:function(d,m,c){var g,e,l,q;var h=Number.MAX_VALUE,p=Number.MIN_VALUE;if(m.length>0){for(g=0;g<m.length;g++){l=m[g];l.happened=Date.parseDate(l.happened,DP[1],true);l.updated=Date.parseDate(l.updated,DP[1],true);if(l.happened.getTime()<h){h=l.happened.getTime();}if(l.happened.getTime()>p){p=l.happened.getTime();}q=l.people;if(q){for(e=0;e<q.length;e++){if(q[e].id==l.created.by){l.created.by_person=q[e];break;}}}}this.addMemoirs(m);}d.fetched=true;this._sortGroups();this._finish(d);if(c){var o=this.timeline,f=o.getObj(),b=f.buckets,k,a;c.sort();if(h!=Number.MAX_VALUE){k=c[0]-1;b[k][1]=h;if(k>0){b[k-1][2]=h-1;}}if(p!=Number.MIN_VALUE){k=c[c.length-1]-1;b[k][2]=p;if(k<(b.length-1)){b[k+1][1]=p+1;}}}},_groupMemoirs:function(a){if(!this.groups[this.zoom]||a){this.groups[this.zoom]={};this.groupsOrdered[this.zoom]=[];}var b,e,d,c;for(b in this.cache){e=this.cache[b];d=this.timeline.getBucket(e.data.happened);c=this.groups[this.zoom][d.slot];if(!c){c=new MemoirGroup(d);this.groups[this.zoom][d.slot]=c;this.groupsOrdered[this.zoom].push(c);c.initialize(this.timeline);}c.addMemoir(e);}},_sortGroups:function(){this.groupsOrdered[this.zoom].sort(function(d,c){return((d.bucket.slot>c.bucket.slot)?1:((d.bucket.slot<c.bucket.slot)?-1:0));});this.cacheOrdered.sort(function(d,c){return((d.data.happened>c.data.happened)?1:((d.data.happened<c.data.happened)?-1:0));});},_getNearestGroupIndex:function(b){var a=this.groupsOrdered[this.zoom],e=this.timeline.getBucket(b),d=dojo.indexOf(a,this.groups[this.zoom][e.slot]),c;if((d==-1)&&a.length>0){if(e.slot>a[a.length-1].bucket.slot){d=a.length-1;}else{d=0;for(c=a.length-1;c>=0;c--){if((e.slot-a[c].bucket.slot)>0){d=c;break;}}}}return d;},_finish:function(D){var m=this.groupsOrdered[this.zoom],p=this.timeline,A=p.getGroupCount(),h=p.getBounds(),G=this._getNearestGroupIndex(D.at?Date.parseDate(D.at,DP[2],true):h.xMax),k=this.panes,q=k.start,o=0,C=15,x=D.history,e,f,H,u,r,y,w,v,B,z;if(G<A){G=Math.min(A-1,m.length-1);}if(G>=0&&G<m.length){h.xMax=m[G].getBounds().xMax;}if(D.move){G-=D.move;if(G<m.length){h.xMax=m[G].getBounds().xMax;}}e=(G>=A)?(G-A+1):0;if(e>=0&&e<m.length){h.xMin=m[e].getBounds().xMin;}if(D.zoom||D.move||D.redraw){f=Math.floor((15-A)/2);H=f+A-1;if(D.move&&!D.fetched){o=(D.move>0)?(D.move-1):(15+D.move);C=(D.move>0)?(o+D.move):15;}var a=h.xMax.getTime(),b=h.xMin.getTime(),E=false,c=false,d=this,g=0,F,l;if(D.id){w=this.cache[D.id];if(w){w.group.setActive(w);}}for(u=C-1;u>=o;u--){c=false;v=(u+q)%15;r=u-f+e;if((r>=0)&&(r<m.length)){k[v].group=m[r].bucket.slot;l=m[r].bounds.xMax.getTime();if(!E&&u==o){E=true;c=true;}if(D.init&&(l<=a)){g++;setTimeout(dojo.hitch(d,"gpRedraw",m[r],k[v],D.init,c),((g*200)+1));}else{m[r].redraw(k[v],false,x);}}else{for(z=0;z<6;z++){F=k[v][z];if(!F){break;}if(z>0||r<0||(r>(A-1))){dojo.style(F,"visibility","hidden");}else{F.innerHTML="";dojo.addClass(F,"no_memoir");dojo.style(F,"visibility","visible");}}delete k[v].group;}}if(!E){dojo.publish("timelineRedrawMiddle");}if(D.id){w=this.cache[D.id];if(D.max&&w){ut.maximize(w.data,{photo:D.photo});}else{if(!D.history&&w){dojo.publish("chgLoc",[["at=",h.xMax.dateFormat(DP[2]),"&mid=",w.data.id].join("")]);}}}else{dojo.publish("hash",[["at=",h.xMax.dateFormat(DP[2])].join("")]);}}dojo.publish("timelineRedraw",[D]);dojo.publish("notifyEnd");this.processing=false;if(this.retry){this.refresh(this.retry);}},gpRedraw:function(c,a,d,b){c.redraw(a,d);if(b){dojo.publish("timelineRedrawMiddle");}}});dojo.declare("PageControl",null,{handles:{},initialize:function(a){this.timeline=a;},truncate:function(c,b,a){var a=a||"...";return(c.length>b)?c.substr(0,b-a.length)+a:c;},connect:function(a,c,b,e){var d=dojo.connect(c,b,e);if(this.handles[a]){dojo.disconnect(this.handles[a]);}this.handles[a]=d;},disconnect:function(a){if(this.handles[a]){dojo.disconnect(this.handles[a]);delete (this.handles[a]);}},buzzInit:function(j,b){var d=this;var h=window.location.href.split("?")[0].split("#")[0];var e={};if(b!=-1){e.photoId=b;}if(window.lb_data.publicVisibility){e["public"]="true";}else{e["private"]="true";}var a="";for(var c in e){a+=c+"="+e[c]+"&";}h+="?"+a;var f=ut.encode(h);dojo.query(".google-buzz-post").onclick(function(k){dojo.stopEvent(k);window.open("http://www.google.com/buzz/post?message=&url="+f+"&imageurl="+ut.encode(j),"_blank","resizable=0,scrollbars=0,width=690,height=415");});var g={url:"http://www.google.com/buzz/api/buzzThis/buzzCounter?url="+f,callbackParamName:"callback",content:{v:"1.0",q:"dojo toolkit"},load:function(k){if(k[h]>0){dojo.byId("google-buzz-count").innerHTML=k[h];}else{dojo.byId("google-buzz-count").innerHTML="1";}},error:function(k){}};dojo.io.script.get(g);},getName:function(){}});dojo.declare("CommonControl",PageControl,{constructor:function(){pref=this;pref.globalControls=LB.GLOBAL.CONTROLS;},initialize:function(d,f){var e=f.page,c=this,a=LB.getUser().logged,b="Common Control. Page["+e+"]";console.time(b);c.common(d,f);switch(e){case"post_show":(new PostControl()).initialize(d,f);if(a){(new ProfilePicControl()).initialize(d,f);}(new ShareControl()).initialize(d,f);break;case"view_logged":case"view_anon":(new StreamControl()).initialize(d,f);(new ProfilePicControl()).initialize(d,f);(new ShareControl()).initialize(d,f);c.sd();c.tma();c.tabs();c.connect();c.timelineActions();break;case"store":(new StoreControl()).initialize(d,f);break;case"search":(new StreamControl()).initialize(d,f);break;case"post_new_simple":c._addControl(SimplePhotoUploadControl,d,f);break;case"view_likes":case"view_stream":case"view_newsfeed":case"view_leaderboard":case"view_river":case"view_discussions":case"view_homepage":(new StreamControl()).initialize(d,f);if(e=="view_homepage"){(new HomePageControl()).initialize(d);}c.tabs();if(a){(new ProfilePicControl()).initialize(d,f);}break;case"facebook_publisher":(new NewPostControl()).initialize(d,f);(new PlaceSuggestControl()).initialize();c.textHelp(".publisher_input_tags");c.fbpublisher();break;case"facebook_timeline":c.fbtimelinepages();break;case"timeline_start":(new StartControl()).initialize(d,f);(new HelpControl()).initialize(d,f);(new ProfilePicControl()).initialize(d,f);c.sd();c.tma();c.imp();c.ff();break;case"blob_new":case"facebook_blob_new":(new AddPhotoControl()).initialize(d,f);(new PlaceSuggestControl()).initialize();c.textHelp(".publisher_input_tags");break;case"home_logged":c.tma();break;case"embed_code":(new EmbedControl()).initialize(d,f);break;case"browse_topics":c.tma();c.browseTopics();break;case"friendandimport":(new FriendsAndImportControl()).initialize(d,f);break;case"findfriends":c.ff();break;case"import":(new ImDelControl()).initialize(d,f);(new ImEditControl()).initialize(d,f);c.imp();break;case"signup":c.signup();break;case"reorganize":c.reorganize();break;case"unlinkedfacebook":c.ufb();break;case"request":c.request();case"notifications":case"outbox":case"inbox":case"view_msg":case"view_msgthd":c.cm();break;case"delete_account":c.da();break;case"app_create":c.appCreate();break;case"services":c.services();break;case"contest":c.contest();break;case"choosephotos":c.choosePhotos();break;default:console.log("default:"+e);}dojo.subscribe("timelineTabSelect",c,"selectTab");console.timeEnd(b);},_addControl:function(d,a,e){var b=this.globalControls,c=new d;c.initialize(a,e);b[c.declaredClass]=c;},contest:function(){dojo.query(".contest a.contest-signup").onclick(function(a){dojo.stopEvent(a);dojo.publish("quickAccount",[{src:"contest",deferMsg:"Redirecting you to the contest submission page",redirectUrl:dojo.attr(a.currentTarget,"href")}]);});},choosePhotos:function(){dojo.query(".choosememoir").onclick(function(a){memid=dojo.attr(a.currentTarget,"memoirid");photos=giftablePhotos[memid];dojo.query(".photoList").forEach(function(d){var c=[];for(var b=0;b<photos.length;b++){c.push("<img src='",photos[b].url,"' memid='",memid,"' photoid='",photos[b].id,"' />");}d.innerHTML=c.join("");});});dojo.query(".photoList").onclick(function(a){dojo.query(".selectedPhotosPanel").forEach(function(c){var b=[];b.push("<img src='",a.target.src,"'/>");b.push("<input name='memoirId' type='hidden' value='",dojo.attr(a.target,"memid"),"'/>");b.push("<input name='memoirphotoId' type='hidden' value='",dojo.attr(a.target,"photoid"),"'/>");c.innerHTML=b.join("");});});},textHelp:function(b){var a="defaulttext",c;dojo.query(b).onblur(function(d){c=d.currentTarget;if(c.value==""){c.value=dojo.attr(c,a);}}).onclick(function(d){c=d.currentTarget;if(c.value==dojo.attr(c,a)){c.value="";}}).forEach(function(d){if(d.value==""){d.value=dojo.attr(d,a);}});},common:function(c,e){var b=this,d=e.page,a=LB.getUser();b.textHelp(".text_help");b.tableToggle();b.shareTrack();(new ActionControl()).initialize(c,e);(new PhotoImportControl()).initialize(c,e);if(a.person.id>0){(new ToasterControl()).initialize(c,e);(new SendMessageControl()).initialize(c,e);(new FBConnectControl()).initialize(c,e);(new InviteContributorsControl()).initialize(c,e);}else{(new AccountControl()).initialize(c,e);}(new FeedbackControl()).initialize();if(dojo.query(".share").length){b._loadAsync("http://static.ak.fbcdn.net/connect.php/js/FB.Share");}},_loadAsync:function(b){var a=document.createElement("script");a.type="text/javascript";a.src=b;(document.getElementsByTagName("head")[0]||document.getElementsByTagName("body")[0]).appendChild(a);},shareTrack:function(){dojo.query(".sharetrack").onclick(function(b){var a=b.currentTarget,c=dojo.attr(a,"params")||"";c=c.split("#");if(c.length>2){dojo.publish("logAjaxEvent",c);}});},request:function(){dojo.query(".static_content button.small_button").onclick(function(a){var e=a.currentTarget,g=dojo.attr(e,"action"),h=dojo.attr(e,"reqid"),c=dojo.byId(h);if(c){dojo.addClass(c,"hidden");}switch(g){case"conn_accept":case"conn_reject":var f=(g=="conn_accept"),l=dojo.attr(e,"pid"),d=(f?"#yes-":"#no-")+h;dojo.query(d).removeClass("hidden");if(f){API_SVC.approveFriend(l);}else{API_SVC.rejectFriend(l,false);}break;case"part_accept":case"part_reject":var f=(g=="part_accept"),l=dojo.attr(e,"pid"),j=dojo.attr(e,"mid"),d=(f?"#yes-":"#no-")+h;dojo.query(d).removeClass("hidden");API_SVC.linkAcceptReject(l,j,f);break;case"tag_accept":case"tag_reject":var f=(g=="tag_accept"),b=dojo.attr(e,"rid"),d=(f?"#yes-":"#no-")+h;dojo.query(d).removeClass("hidden");API_SVC.tagAcceptReject(b,f);break;case"cr_accept":case"cr_reject":var f=(g=="cr_accept"),l=dojo.attr(e,"pid"),k=dojo.attr(e,"tid"),d=(f?"#yes-":"#no-")+h;dojo.query(d).removeClass("hidden");if(f){API_SVC.acceptContribution(k,l);}else{API_SVC.rejectContribution(k,l);}break;case"ci_accept":case"ci_reject":var f=(g=="ci_accept"),k=dojo.attr(e,"tid"),d=(f?"#yes-":"#no-")+h;dojo.query(d).removeClass("hidden");if(f){API_SVC.acceptContributionInvite(k);}else{API_SVC.rejectContributionInvite(k);}break;case"addasfriend":var d="#add_"+h,l=dojo.attr(e,"pid");API_SVC.addFriend(l);dojo.addClass(e,"hidden");dojo.query(d).removeClass("hidden");break;default:break;}});},browseTopics:function(){var a=this;dojo.query("a.shift").onclick(function(b){dojo.stopEvent(b);});dojo.query(".topic_page_shift").onclick(function(e){dojo.stopEvent(e);var d=e.currentTarget,b=dojo.attr(d,"bcCategory"),g=dojo.attr(d,"bcChar"),f=dojo.attr(d,"bcPage");a._topicBrowse(b,g,f);});dojo.query(".category_list li a[bcCategoryId]").onclick(function(d){dojo.stopEvent(d);var c=d.currentTarget,b=dojo.attr(c,"bcCategoryId");a._topicBrowse(b);});dojo.query(".character_list div.item").onclick(function(e){dojo.stopEvent(e);var d=e.currentTarget,f=dojo.attr(d,"bcChar"),b=dojo.query(".category_list li.selected a").attr("bcCategoryId");if(b.length!=1){console.log("Exactly one category must be selected");console.log(b);}var c=b[0]!=0?b[0]:281;a._topicBrowse(c,f,0);});dojo.query("[action='bcScrollCategories']").onclick(function(d){var c=d.currentTarget,e=parseInt(dojo.attr(c,"bcCurrentPage")),b=(e+1)%2;dojo.query("li[bcPage='"+e+"']").addClass("obscured");dojo.query("li[bcPage='"+b+"']").removeClass("obscured");dojo.attr(c,"bcCurrentPage",b);});},_topicBrowse:function(d,b,e){var c=this,a=dojo.byId("topic_list_cont");dojo.query(".category_list li").removeClass("selected");dojo.query(".category_list li [bcCategoryId='"+d+"']").forEach(function(f){dojo.addClass(f.parentNode,"selected");});dojo.query(".character_list .selected").removeClass("selected");if(!b){dojo.query(".character_list div[bcCharAll='true']").addClass("selected");}else{dojo.query(".character_list div[bcChar='"+b+"']").addClass("selected");}a.innerHTML="<div class='load'><img src='http://cdn2.lifeblob.com/lifeblob/img/theme-gray/spinners/scaler_blue.vd641b3.gif'/></div>";API_SVC.browseTopics(d,b,e).addCallback(function(f){if(f.stat!="ok"){console.log(f);return;}var m=f.result,k;if(m.length!=0){var l=Math.ceil(m.length/6),h,j,g;k=["<table class='topic_table'><tr>"];for(h=0;h<6;h++){k.push("<td>");for(j=h*l;(j-h*l)<l&&j<m.length;j++){g=m[j];k.push(["<div><a class='topic_table_item' href='/topic/",g.displayName,"?src=browse-topics' title='",g.name,"'>",c.truncate(g.name,20,"..."),"</a></div>"].join(""));}k.push("</td>");}k.push("</tr></table>");}else{k=["<div class='load'>",M.NO_TOPICS,"</div>"];}k.push("<div class='topics_nav'>");e=e?parseInt(e):0;b=b?b:"A";if(e!=0){dojo.query(".topic_prev_button").style("display","block").forEach(function(o){dojo.attr(o,"bcCategory",d+"");dojo.attr(o,"bcChar",b);dojo.attr(o,"bcPage",e-1);});}else{dojo.query(".topic_prev_button").style("display","none");}if(d==0){dojo.query(".topic_next_button").style("display","block").forEach(function(o){dojo.attr(o,"bcCategory",281+"");dojo.attr(o,"bcChar","A");dojo.attr(o,"bcPage",0);});}else{if(m.length==60){dojo.query(".topic_next_button").style("display","block").forEach(function(o){dojo.attr(o,"bcCategory",d+"");dojo.attr(o,"bcChar",b);dojo.attr(o,"bcPage",e+1);});}else{b=String.fromCharCode(b.charCodeAt(0)+1);e=0;dojo.query(".topic_next_button").forEach(function(o){dojo.attr(o,"bcCategory",d+"");dojo.attr(o,"bcChar",b);dojo.attr(o,"bcPage",e);});}}k.push("</div>");a.innerHTML=k.join("");});dojo.publish("logEvent",["/lb/browse/cat-"+d+"/page-"+(e?e:"0")+"/char-"+(b?b:"all")]);},help:function(){dojo.query("table.helpout a").onclick(function(b){var a=dojo.attr(b.currentTarget,"help");dojo.query("table.helpout[help='"+a+"']").style("display","none");});},tableToggle:function(){dojo.query(".showdetails").onclick(function(c){var b=c.currentTarget,a=b.parentNode.parentNode;dojo.query("~",a).removeClass("hidden");dojo.addClass(b,"hidden");dojo.query(".hidedetails",a).removeClass("hidden");dojo.query("[action='toggleDetails']",a).attr("actionType","hide");});dojo.query(".hidedetails").onclick(function(c){var b=c.currentTarget,a=b.parentNode.parentNode;dojo.query("~",a).addClass("hidden");dojo.addClass(b,"hidden");dojo.query(".showdetails",a).removeClass("hidden");dojo.query("[action='toggleDetails']",a).attr("actionType","show");});dojo.query("a[togglelink='true']").onclick(function(b){var a=dojo.attr(b.currentTarget,"target");dojo.query("[toggletarget='"+a+"']").forEach(function(c){if(dojo.hasClass(c,"hidden")){dojo.removeClass(c,"hidden");}else{dojo.addClass(c,"hidden");}dojo.stopEvent(b);});});dojo.query("div.header_title[action='toggleDetails']").onclick(function(d){var c=d.currentTarget,a=c.parentNode,b=dojo.attr(c,"actionType");switch(b){case"hide":dojo.query(".hidedetails",a).addClass("hidden");dojo.query(".showdetails",a).removeClass("hidden");dojo.query("~",a).addClass("hidden");dojo.attr(c,"actionType","show");break;case"show":dojo.query(".hidedetails",a).removeClass("hidden");dojo.query(".showdetails",a).addClass("hidden");dojo.query("~",a).removeClass("hidden");dojo.attr(c,"actionType","hide");break;}});},sd:function(){dojo.query("a.showDetail").onmouseover(function(event){if(event.target.tagName=="IMG"){var ref=event.currentTarget;var obj=eval("("+dojo.attr(ref,"actionParams")+")");obj.type=PERSON_TYPE;pref.detailNode=ref;dijit.showTooltip(["<table cellspacing='0' cellpadding='0' border='0' class='flyout'><tbody><tr><td class='c11' colspan='2'/>","<td class='c13'/></tr><tr><td class='c21'/><td class='c22'>","<table cellspacing='0' cellpadding='0' border='0' class='p_flyout'><tbody><tr>","<td class='left'>","<a href='",ut.getUrl({type:obj.type,display:obj.displayName}),"'>","<img src='",ut.getProfileURL(obj,"medium"),"'/></a>","</td>","<td>","<div class='dname'><a href='",ut.getUrl({type:obj.type,display:obj.displayName}),"'>",obj.displayName,"</a></div>","<span class='name'>",obj.name,"</span>","<span> ",obj.status,"</span>","</td>","</tr></tbody></table>","</td><td class='c23'/></tr><tr><td class='c31'/><td class='c32'/><td class='c33'/></tr></tbody></table>"].join(""),ref);pref.connect("showDetail",document,"onclick",function(){if(pref.detailNode){dijit.hideTooltip(pref.detailNode);}pref.disconnect("showDetail");});}}).onmouseout(function(event){if(pref.detailNode){dijit.hideTooltip(pref.detailNode);pref.disconnect("showDetail");}});},tt:function(){dojo.query("[action='tooltip']").onmouseover(function(b){var a=b.currentTarget,c=dojo.attr(a,"actionParams");pref.detailNode=a;dijit.showTooltip(["<table cellspacing='0' cellpadding='0' border='0' class='flyout flyout_narrow'><tbody><tr><td class='c11' colspan='2'/>","<td class='c13'/></tr><tr><td class='c21'/><td class='c22'>",c,"</td><td class='c23'/></tr><tr><td class='c31'/><td class='c32'/><td class='c33'/></tr></tbody></table>"].join(""),a);pref.connect("tooltip",document,"onclick",function(){if(pref.detailNode){dijit.hideTooltip(pref.detailNode);}pref.disconnect("tooltip");});}).onmouseout(function(a){if(pref.detailNode){dijit.hideTooltip(pref.detailNode);pref.disconnect("tooltip");}});},tma:function(){dojo.query(".interestingTab").onclick(function(c){var b=c.currentTarget,d=dojo.attr(b,"actionType"),a;dojo.query(".interestingTab").forEach(function(e){a=dojo.attr(e,"actionType");if(a==d){dojo.addClass(e,"active");}else{dojo.removeClass(e,"active");}});dojo.query("[itContent]",b.parentNode.parentNode).forEach(function(e){a=dojo.attr(e,"itContent");if(a==d){dojo.style(e,"display","block");}else{dojo.style(e,"display","none");}});});dojo.query(".personTopicsTab").onclick(function(c){var b=c.currentTarget,d=dojo.attr(b,"actionType"),a;dojo.query(".personTopicsTab").forEach(function(e){a=dojo.attr(e,"actionType");if(a==d){dojo.addClass(e,"active");}else{dojo.removeClass(e,"active");}});dojo.query("[ptContent]",b.parentNode.parentNode).forEach(function(e){a=dojo.attr(e,"ptContent");if(a==d){dojo.style(e,"display","block");}else{dojo.style(e,"display","none");}});});},ff:function(){dojo.query("[appType='select_all_friends']").onclick(function(a){dojo.query(".invite_friends .invite_table div.body input").forEach(function(b){b.checked=a.currentTarget.checked;});});dojo.query("[appType='select_all_users']").onclick(function(a){dojo.query(".invite_users .invite_table div.body input").forEach(function(b){b.checked=a.currentTarget.checked;});});dojo.query("[action='sendMoreEmailInvites']").onclick(function(a){dojo.query(".emailImports").removeClass("hidden");dojo.query(".emailImports textarea").forEach(function(b){b.value="";});dojo.query(".emailsSent").addClass("hidden");});dojo.query("button.aol_import_button").onclick(function(a){dojo.query(".facebookInviteContainer").addClass("hidden");dojo.query(".aolInviteContainer").addClass("hidden");postSignUpUtil._setWaitingState(APP_TYPE.YMAIL,M.IMPORTING_CONTACTS);API_SVC.importAddressbook(dojo.byId("aolusername").value,dojo.byId("aolpassword").value,APP_TYPE.AOL).addCallback(function(b){importResponse(APP_TYPE.AOL,b.result);});});},imp:function(){dojo.query("[action='showimports']").onclick(function(event){if(postSignUpStuff.isImporting()){alert(M.IMPORT_IN_PROGRESS_ALERT);}else{var importname=dojo.attr(event.currentTarget,"actionParams");dojo.publish("logAjaxEvent",[window.startupFlow?"startupflow":"normalflow","import-switch",importname]);dojo.query(".import_services .service_node").removeClass("selected_service_node");dojo.query(".import_services ."+importname+"_service_node").addClass("selected_service_node");dojo.query(".linkups").addClass("hidden");dojo.query("."+importname+"_linkup").removeClass("hidden");dojo.query(".import_results").addClass("hidden");if(dojo.query("."+importname+"_results .row").length>0){dojo.query("."+importname+"_results").removeClass("hidden");}}});dojo.query("[action='showandImport']").onclick(function(event){if(postSignUpStuff.isImporting()){alert(M.IMPORT_IN_PROGRESS_ALERT);}else{var importname=dojo.attr(event.currentTarget,"actionParams");dojo.publish("logAjaxEvent",[window.startupFlow?"startupflow":"normalflow","import-switch",importname]);dojo.query(".import_services .service_node").removeClass("selected_service_node");dojo.query(".import_services ."+importname+"_service_node").addClass("selected_service_node");dojo.query(".linkups").addClass("hidden");dojo.query("."+importname+"_linkup").removeClass("hidden");dojo.query(".import_results").addClass("hidden");if(dojo.query("."+importname+"_results .row").length>0){dojo.query("."+importname+"_results").removeClass("hidden");}dojo.publish("importStuff",[eval(dojo.attr(event.currentTarget,"importParams"))]);}});dojo.query("[action='startAggregation']").onclick(function(event){var target=event.currentTarget;var facebookUserId=dojo.attr(event.currentTarget,"actionParams");API_SVC.startAggregating(facebookUserId).addCallback(function(){dojo.query(".stopAggregation",target.parentNode.parentNode).removeClass("hidden");dojo.addClass(target.parentNode,"hidden");});});dojo.query("[action='stopAggregation']").onclick(function(event){var target=event.currentTarget;var facebookUserId=dojo.attr(event.currentTarget,"actionParams");API_SVC.stopAggregating(facebookUserId).addCallback(function(){dojo.query(".startAggregation",target.parentNode.parentNode).removeClass("hidden");dojo.addClass(target.parentNode,"hidden");});});dojo.query("[action='importStuff']").onclick(function(event){if(postSignUpStuff.isImporting()){alert(M.IMPORT_IN_PROGRESS_ALERT);}else{dojo.publish("importStuff",[eval(dojo.attr(event.currentTarget,"actionParams"))]);}});dojo.query("[action='facebookImportStuff']").onclick(function(event){if(postSignUpStuff.isImporting()){alert(M.IMPORT_IN_PROGRESS_ALERT);}else{var param=eval(dojo.attr(event.currentTarget,"actionParams"));FB.Connect.requireSession(function(){API_SVC.linkupFacebook().addCallback(function(response){if(response.stat!="ok"){console.log("Error. Code:"+response.code+" Desc:"+response.desc);return;}var result=response.result,userId=result.userId,linkStatus=result.status;if(LB.getUser().uid!=LB.getUser()){alert('This facebook user is linked to another lifeblob account. Clicking "Ok" will log you into that account.');window.location.reload(false);}else{if(linkStatus==0||linkStatus==3){if(postSignUpStuff.isImporting()){alert(M.IMPORT_IN_PROGRESS_ALERT);}else{dojo.publish("importStuff",[param]);}}else{if(linkStatus==1){alert('This lifeblob account already has a facebook user linked to it. Click "Ok" to create a new account for your facebook user.');ut.rd("/account/simplelogout?next=/account/fconnect");}else{if(linkStatus==2||linkStatus==4){alert('This facebook user is linked to another lifeblob account. Clicking "Ok" will log you into that account.');window.location.reload(false);}}}}});});}});dojo.query("[action='importUrl']").onclick(function(event){if(postSignUpStuff.isImporting()){alert(M.IMPORT_IN_PROGRESS_ALERT);}else{dojo.publish("importUrl",[eval(dojo.attr(event.currentTarget,"actionParams"))]);}});},maps:function(){dojo.query(".place_map").forEach(function(b){try{google.load("maps","2.x",{callback:function(){var d=new google.maps.Map2(b),q=places.length,c,m,g,h;d.enableDoubleClickZoom();d.enableContinuousZoom();d.enableScrollWheelZoom();d.addControl(new google.maps.SmallMapControl());d.setCenter(new google.maps.LatLng(47.4419,-100.1419),3);c=new google.maps.LatLngBounds();if(q==0){var o=google.loader.ClientLocation,e=opts.obj,l=(th.getUser().person.id==e.id&&e.type==PERSON_TYPE),k=["<div class='place_info' style='padding-top:20px;width: 250px'>",l?M.TIMELINE_NO_LOC:M.TIMELINE_NO_LOC_OTH,"</div>"].join("");if(o){f=new google.maps.LatLng(o.latitude,o.longitude);}else{f=new google.maps.LatLng(47.4419,-100.1419);}var j=new google.maps.Marker(f);d.setCenter(f,8);d.addOverlay(j);j.openInfoWindowHtml(k);}else{h=Math.floor(0+(q-1)*Math.random());for(m=0;m<q;m++){g=places[m];var f=new google.maps.LatLng(g.lat,g.lng);c.extend(f);var k=["<div class='place_info'>View ","<a href='/place/",g.displayName,"'>",g.name,"'s lifeblob</a>","</div>"].join("");var j=p(f,k);d.addOverlay(j);if(m==h){j.openInfoWindowHtml(k);}}d.setCenter(c.getCenter());d.setZoom(d.getBoundsZoomLevel(c));}function p(r,u){var t=new google.maps.Marker(r);GEvent.addListener(t,"click",function(){t.openInfoWindowHtml(u);});return t;}}});}catch(a){if(dojo.config.isDebug){console.log("Google AJAX API could not be loaded");}}});},cm:function(){dojo.query("[nptype='message_compose_recepients']").forEach(function(a){var b=new Suggest(a,"person","user.name",{helpText:"Enter your friend's names"});b.initialize();a.clear=dojo.hitch(b,"clear");});dojo.query("[action='ajaxSendMessage']").onclick(function(b){var c=dojo.byId("compose_message_box");dojo.query(".fielderror",c).orphan();var a=[];dojo.query("[name='personid']",c).forEach(function(d){a.push(d.value);});if(a.length<=0){dojo.place(pu.createErrorElement("Enter atleast one friend's name"),dojo.byId("list_holder"),"after");return;}subject=dojo.byId("subject");if(subject.value.length<=0){dojo.place(pu.createErrorElement("Enter atleast one friend's name"),subject,"after");return;}body=dojo.byId("compose_body");API_SVC.sendMessage(a,subject.value,body.value,0);dojo.publish("logAjaxEvent",["social","send-message","message"]);dojo.addClass(c,"hidden");dojo.removeClass(dojo.byId("compose_message_thankyou"),"hidden");});dojo.query("[action='resetComposeBox']").onclick(function(a){dojo.query("[nptype='message_compose_recepients']").forEach(function(b){b.clear();});dojo.byId("subject").value="";dojo.byId("compose_body").value="";dojo.removeClass(dojo.byId("compose_message_box"),"hidden");dojo.addClass(dojo.byId("compose_message_thankyou"),"hidden");});},services:function(){dojo.query(".param").onclick(function(a){dojo.query("~ div",a.currentTarget).forEach(function(b){if(dojo.style(b,"display")=="block"){dojo.style(b,"display","none");}else{dojo.style(b,"display","block");}});});},appCreate:function(){dojo.query(".radio").onclick(function(a){if(a.currentTarget.id=="browser"){dojo.query("tr.callback").removeClass("hidden");}else{dojo.query("tr.callback").addClass("hidden");}});},signup:function(){dojo.require("dojox.rpc.Service");var b={SMDVersion:"2.0",id:"http://www.lifeblob.com/ajax",description:"Lifeblob API",target:"http://www.lifeblob.com/ajax/",transport:"POST",envelope:"URL",additionalParameters:false,services:{invite:{target:"invite/beta",parameters:[{name:"email",type:"string",optional:false},{name:"name",type:"string",optional:false},{name:"referrer",type:"string",optional:false}]}}},a=new dojox.rpc.Service(b);dojo.query("[action='invite']").onclick(function(d){var h=dojo.byId("inviteName"),g=dojo.byId("inviteEmail"),f=h.value,e=g.value,c=true;if(f==""){dojo.style(h,"border","1px solid #BE4126");dojo.query("#inviteName").onkeydown(function(j){dojo.style(j.currentTarget,"border","1px solid #B2B2B2");});c=false;}if(e==""){dojo.style(g,"border","1px solid #BE4126");dojo.query("#inviteEmail").onkeydown(function(j){dojo.style(j.currentTarget,"border","1px solid #B2B2B2");});c=false;}if(!c){return;}dojo.query(".invite img").removeClass("hidden");a.invite(e,f,document.referrer).addCallback(function(j){dojo.query(".invite img").addClass("hidden");if(j.stat!="ok"){dojo.style(g,"border","1px solid #BE4126");dojo.query("#inviteEmail").onkeydown(function(k){dojo.style(k.currentTarget,"border","1px solid #B2B2B2");});return;}dojo.query(".invite").addClass("hidden");dojo.query(".invitesuccess").removeClass("hidden");});});this.tt();},ufb:function(){dojo.query("[action='haveLifeblobAccount']").onclick(function(a){dojo.query(".facebook_linkup_form").removeClass("hidden");dojo.query(".facebook_linkup_options").addClass("hidden");});dojo.query("[action='noLifeblobAccount']").onclick(function(a){dojo.query(".facebook_linkup_form").addClass("hidden");dojo.query(".facebook_linkup_options").removeClass("hidden");});},reorganize:function(){dojo.query("[action='reorganize']").connect("onclick",function(a){var g=dojo.attr(a.currentTarget,"actionParams");var b=dojo.byId("um_"+g);dojo.query(".fielderror",b).addClass("hidden");var j="";dojo.query("[name='title']",b).forEach(function(k){j=k.value;});if(j==""){dojo.query(".title_error",b).removeClass("hidden").forEach("item.innerHTML='[Title should not be empty]'");return;}var c,h,e,d,f;dojo.query("[name='month'] option",b).forEach(function(k){if(k.selected){f=parseInt(k.value)-1;}});dojo.query("[name='date']",b).forEach(function(k){c=parseInt(k.value,10);});dojo.query("[name='year']",b).forEach(function(k){h=parseInt(k.value,10);});dojo.query("[name='hour']",b).forEach(function(k){e=parseInt(k.value,10);});dojo.query("[name='minute']",b).forEach(function(k){d=parseInt(k.value,10);});dateObj=new Date(h,f,c,e,d);if(dateObj.getDate()!=c||dateObj.getMinutes()!=d){dojo.query(".date_error",b).removeClass("hidden").forEach("item.innerHTML='[Date is invalid]'");return;}dateString=[dateObj.getUTCFullYear(),"-",(dateObj.getUTCMonth()+1),"-",dateObj.getUTCDate(),"T",dateObj.getUTCHours(),":",dateObj.getUTCMinutes(),":",dateObj.getUTCSeconds(),"Z"].join("");API_SVC.update(g,j,dateString,dojo.query("[name='description']",b)[0].value,dojo.query("[name='visibility']",b)[0].value).addCallback(function(l){if(l.stat!="ok"){console.log(l);return;}var k=dojo.byId("umc_"+g);dojo.query("span.om_title",k).forEach(function(m){m.innerHTML=j;});dojo.query("span.om_date",k).forEach(function(m){m.innerHTML=dateObj.dateFormat("F d,Y");});dojo.removeClass(k,"hidden");dojo.addClass(b,"hidden");});}).forEach(function(b){var a=Date.parseDate(dojo.query("[name='actualDate']",b.parentNode)[0].value,DP[1],true);dojo.query("[name='month'] option",b.parentNode).forEach(function(c){if((parseInt(c.value)-1)==a.getMonth()){c.selected=true;}});dojo.query("[name='date']",b.parentNode).forEach(function(d){var c="0"+a.getDate();c=c.substr(c.length-2,2);d.value=c;});dojo.query("[name='year']",b.parentNode).forEach(function(c){var d=""+a.getFullYear();c.value=d;});dojo.query("[name='hour']",b.parentNode).forEach(function(c){var d="0"+a.getHours();d=d.substr(d.length-2,2);c.value=d;});dojo.query("[name='minute']",b.parentNode).forEach(function(d){var c="0"+a.getMinutes();c=c.substr(c.length-2,2);d.value=c;});});},da:function(){dojo.query("div.delete_reasons .radio").onclick(function(a){var b=a.currentTarget;dojo.query(".delete_followup").addClass("hidden");dojo.query("."+b.id).removeClass("hidden");});},tabs:function(){var a=this;dojo.query(".timeline_tab").onclick(function(b){var d=b.currentTarget,c=dojo.attr(d,"tTab");dojo.stopEvent(b);a.selectTab(c);});},timelineActions:function(){dojo.query("a.showconn").onclick(function(a){var b=a.currentTarget;dojo.query(".tagcloud").forEach(function(c){if(dojo.hasClass(c,"hidden")){dojo.removeClass(c,"hidden");dojo.addClass(b,"hideconn");b.innerHTML="Hide Connections";}else{dojo.addClass(c,"hidden");dojo.removeClass(b,"hideconn");b.innerHTML="Show Connections";}});});},selectTab:function(a){dojo.query(".timeline_tab").forEach(function(d){var b=dojo.attr(d,"tTab");if(b!=a){dojo.removeClass(d,"selected_timeline_tab");}else{dojo.addClass(d,"selected_timeline_tab");dojo.publish("feedType",[b]);}});dojo.query("[tTabContent]").forEach(function(d){var b=dojo.attr(d,"tTabContent");if(b==a){dojo.removeClass(d,"hidden");}else{dojo.addClass(d,"hidden");}});},connect:function(){var a=this;dojo.query("#connectAndFollow").onclick(function(h){var g=h.currentTarget;if(window.FB&&window.FB.Connect){var b=dojo.attr(g,"pid");var f=dojo.attr(g,"pname");var d=dojo.attr(g,"pic");var e=dojo.attr(g,"t");var c=dojo.attr(g,"pdisp");var j=dojo.attr(g,"pdesc");FB.Connect.requireSession(function(){API_SVC.createFBAccount().addCallback(function(){API_SVC.followUser(b).addCallback(function(){var m="user/",p=(j&&dojo.trim(j).length>0),k=p?j:"",l=p?72114293047:72114633047,o="user_";if(e==4||e=="4"){m="topic/";o="topic_";}g="http://www.lifeblob.com/"+m+c+"?utm_source="+o+"follow&utm_campaign=lifeblob_"+l+"&utm_medium=facebook";window.location.reload(false);});});});}});dojo.query("#fbconnect").onclick(function(b){if(window.FB&&window.FB.Connect){FB.Connect.requireSession(function(){dojo.query(".fbconnect .button").addClass("hidden");dojo.query(".fbconnect .spinner").removeClass("hidden");API_SVC.createFBAccount().addCallback(function(){window.location.reload(false);});});}});},fbpublisher:function(){dojo.query("[action='toggleFacebookInvite']").onclick(function(){dojo.query(".fb_publisher_invite_controller").forEach(function(a){if(dojo.hasClass(a,"hidden")){dojo.removeClass(a,"hidden");}else{dojo.addClass(a,"hidden");}});});},fbtimelinepages:function(){dojo.query(".facebook_info_module > .close_holder > .close").onclick(function(){dojo.query(".facebook_info_module").orphan();});dojo.query(".fb_default_blob_button .button_term").onclick(function(){dojo.query(".fb_default_blob_buttons").addClass("hidden");dojo.query(".fb_publisher_block_holder").removeClass("hidden");});dojo.query(".fb_publisher_partinvite_container .facebook_popup_module .header").onclick(function(){dojo.query(".fb_publisher_invite_controller").addClass("hidden").forEach(function(a){});});dojo.query(".inviteFacebookParticipantsButton").onclick(function(){dojo.query(".fb_publisher_invite_controller").removeClass("hidden");});},getName:function(){return"Common Control";}});dojo.declare("ToasterControl",PageControl,{initialize:function(a){dojo.subscribe("tt",this,"_show");var b={};b.message="<img src='http://cdn1.lifeblob.com/lifeblob/img/theme-gray/common/message.v9499ca.ico' class='toasterIcon'/>";b.error="<img src='http://cdn0.lifeblob.com/lifeblob/img/theme-gray/common/error.v6ffe7c.ico' class='toasterIcon'/>";b.warning="<img src='http://cdn2.lifeblob.com/lifeblob/img/theme-gray/common/warning.vb2fe9e.ico' class='toasterIcon'/>";this.m=b;},_show:function(b){var a=this.m[b.type]||this.m.message;b.message=a+b.message;dojo.publish("ott",[b]);},getName:function(){return"Toaster Control";}});dojo.declare("FlyoutControl",PageControl,{initNode:function(f){var d=this,e=f?f:{},b=e.grad,c="backgroundPosition",a;this.p=e;dojo.query(".flyout_cont").forEach(function(g){dojo.query(".flyout_tab").forEach(function(h){a="";if(e.title){a=["<tr><td><span class='title'>",e.title,"</span></td><td class='close'><a href='javascript:void(0)'/></td></tr>"].join("");}g.innerHTML=["<table class='flyout' cellspacing='0' cellpadding='0' border='0'><tbody>","<tr><td class='c11' colspan='2'></td><td class='c13'></td></tr>","<tr><td class='c21'></td><td class='c22'>","<table cellspacing='0' cellpadding='0' border='0' width='100%'>",a,"<tr><td><div class='content'></div></td></tr>","</table></td>","<td class='c23'></td></tr>","<tr><td class='c31'></td><td class='c32'></td><td class='c33'></td></tr>","</table>"].join("");dojo.query("table.flyout td.close",g).onclick(function(j){d.close();dojo.stopEvent(j);});h.innerHTML=["<table class='flyout tab' cellspacing='0' cellpadding='0' border='0'><tbody>","<tr><td class='c11' colspan='2'></td><td class='c13'></td></tr>","<tr><td class='c21'></td><td class='c22'></td><td class='c23'></td></tr>","<tr><td class='c31'></td><td class='c32'></td><td class='c33'></td></tr>","</table>"].join("");if(b){dojo.query("table.flyout td.c11").style(c,"0 "+b+"px");dojo.query("table.flyout td.c21").style(c,"0 "+b+"px");dojo.query("table.flyout td.c22").style(c,"0 "+b+"px");}});});},show:function(h,c){var g=this.p,e=this,b=h,a=c,f,d;dojo.query(".flyout_cont").forEach(function(j){dojo.query(".flyout_tab").forEach(function(l){dojo.removeClass(j,"hidden");dojo.removeClass(l,"hidden");dojo.style(l,"left",(a.x-5)+"px");dojo.style(l,"width",(a.w+20)+"px");dojo.style(l,"top",(a.y-5)+"px");dojo.style(l,"height",(a.h+20)+"px");f=dojo.position(l,true);d=dojo.position(j,true);dojo.style(j,"left",((b.x>d.w)?(a.x+f.w-d.w-5):f.x)+"px");var k=!g.forceDown&&(b.y>d.h);if(k){dojo.style(j,"top",(a.y-d.h+5)+"px");dojo.query("table.tab td.c11",l).removeClass("c111");dojo.query("table.tab td.c21",l).addClass("no_bg");dojo.query("table.tab td.c22",l).addClass("no_bg");dojo.query("table.tab td.c31",l).removeClass("none_bg");dojo.query("table.tab td.c32",l).removeClass("none_bg");dojo.query("table.tab td.c33",l).removeClass("none_bg");}else{dojo.style(j,"top",(f.y+a.h+8)+"px");dojo.query("table.tab td.c11",l).addClass("c111");dojo.query("table.tab td.c21",l).removeClass("no_bg");dojo.query("table.tab td.c22",l).removeClass("no_bg");dojo.query("table.tab td.c31",l).addClass("none_bg");dojo.query("table.tab td.c32",l).addClass("none_bg");dojo.query("table.tab td.c33",l).addClass("none_bg");}});});},closeNode:function(){},close:function(a){dojo.query(".flyout_cont").addClass("hidden");dojo.query(".flyout_tab").addClass("hidden");this.closeNode();},getDataQuery:function(){return".flyout_cont .content";},getTitleQuery:function(){return".flyout_cont .title";}});dojo.declare("ActionControl",FlyoutControl,{initialize:function(b){var a=this;a.loggedUser=LB.getUser();a.t=b;a._fr();},_fr:function(){var b=this,a=b.loggedUser.logged;dojo.query("a[action='actioncontrol']").onclick(function(l){dojo.query(".flyout_link").removeClass("flyout_link");var f=l.currentTarget,x="done",g=dojo.string.substitute,h,m,c,p,j,u,r="",y,k="actionType",o,v,w;if(dojo.attr(f,x)){return;}h=dojo.attr(f,k);m=dojo.attr(f,"pid");c=dojo.attr(f,"pname");p=dojo.attr(f,"pic");j=dojo.attr(f,"t");sid=dojo.attr(f,"sid");pdisp=dojo.attr(f,"pdisp");pdesc=dojo.attr(f,"pdesc");switch(h){case"follow_user_slide":u=g(M.ADD_FOM,[c]);r=g(M.ADD_FOM1,[c.split(" ")[0]]);y=M.ADD_FO;w=p;break;case"fan_remove":u=g(M.RM_FOM,[c]);y=M.RM_FO;w=p;break;case"fadd":u=g(M.ADD_FM,[c]);r=g(M.ADD_FM1,[c.split(" ")[0]]);y=M.ADD_F;break;case"fapprove":u=g(M.APP_FM,[c]);y=M.ADD_F;break;case"fremove":u=g(M.RM_FM,[c]);y=M.RM_F;break;case"tadd":u=g(M.ADD_CM,[c]);r=M.ADD_CM1;y=M.ADD_C;w=p;break;case"tremove":u=g(M.RM_CM,[c]);y=M.RM_C;w=p;break;case"tremovecontr":u=g(M.RM_CM_OWN,[c]);y=M.RM_C;w=p;break;case"follow_user":if(!a){var e="You are now following "+c,q=dojo.hitch(b,function(){API_SVC.followUser(m);});dojo.publish("quickAccount",[{src:"add-fan",deferFunc:q,deferMsg:e}]);return;}API_SVC.followUser(m).addCallback(function(){b._reload();});return;case"friend_user":if(!a){var e="Your request is pending authorization!",q=dojo.hitch(b,function(){API_SVC.addFriend(m);});dojo.publish("quickAccount",[{src:"add-friend",deferFunc:q,deferMsg:e}]);return;}API_SVC.addFriend(m).addCallback(function(){dojo.publish("logAjaxEvent",["social","add-friend","network"]);f.innerHTML=M.PENDING_FRIEND;dojo.removeClass(f,"gray_blue_rounded_button");dojo.addClass(f,"pending");dojo.attr(f,x,"y");});return;case"unfriend_user":if(confirm("Are you sure you want to remove "+c+" as your friend?")){dojo.publish("logAjaxEvent",["social","remove-friend","network"]);API_SVC.removeFriend(m).addCallback(b,"_reload");}return;case"unfollow_user":if(confirm("Are you sure you want to stop following "+c+"?")){dojo.publish("logAjaxEvent",["social","remove-fan"]);API_SVC.unfollowUser(m).addCallback(b,"_reload");}return;case"user_message":if(!a){var e="You can now send a message to this user!";dojo.publish("quickAccount",[{src:"send-message",deferMsg:e}]);}return;case"join_group":if(!a){var e=dojo.attr(f,"open")=="true"?"You are now a member!":"Your request is pending authorization!",q=dojo.hitch(b,function(){API_SVC.joinGroup(m);});dojo.publish("quickAccount",[{src:"open-group-membership",deferFunc:q,deferMsg:e}]);return;}API_SVC.joinGroup(m).addCallback(function(d){if(d.stat!="ok"){return;}if(d.result){b._reload();}else{dojo.publish("logAjaxEvent",["social","request-contribution","timeline"]);f.innerHTML=M.PENDING_CONTRIBUTOR;dojo.removeClass(f,"gray_blue_rounded_button");dojo.addClass(f,"pending");dojo.attr(f,x,"y");}});return;case"leave_group":if(confirm("Are you sure you want to leave "+c+"'s group?")){dojo.publish("logAjaxEvent",["manage","remove-contribution","timeline"]);API_SVC.removeContribution(m).addCallback(b,"_reload");}return;default:console.log("Invalid actionType["+h+"] for action api.");return;}if(!w){w=ut.getProfileURL({id:m,pic:p},"medium",PERSON_TYPE);}b.initNode({});dojo.query(b.getDataQuery()).forEach(function(d){d.innerHTML=["<table border=0 cellpadding=0 cellspacing=5>","<tr>","<td class='pic'><a href='javascript:void(0)'><img src='",w,"'/></a></td>","<td class='amsg'>","<div class='atitle'>",u,"</div>","<div>",r,"</div>","</td>","</tr>","<tr><td></td>","<td class='abut'><button type='button' action='do' class='lbut small'>",y,"</button>","<button type='button' action='cancel' class='lbut small'>",M.CANCEL,"</button></td>","</tr></table>"].join("");dojo.query(".abut button[action='cancel']",d).onclick(function(t){b.close();});dojo.query(".pic img",d).connect("onload",function(){b.show(dojo.position(f),dojo.position(f,true));});dojo.query(".abut button[action='do']",d).onclick(function(t){switch(h){case"follow_user_slide":dojo.publish("logAjaxEvent",["social","add-fan"]);API_SVC.followUser(m).addCallback(b,"_reload");break;case"fan_remove":dojo.publish("logAjaxEvent",["social","remove-fan"]);API_SVC.unfollowUser(m).addCallback(b,"_reload");break;case"fadd":API_SVC.addFriend(m);dojo.publish("logAjaxEvent",["social","add-friend","network"]);f.innerHTML=M.PENDING_FRIEND;dojo.style(f,"color","#666");dojo.attr(f,x,"y");break;case"fapprove":API_SVC.approveFriend(m);dojo.publish("logAjaxEvent",["social","approve-friend","network"]);f.innerHTML="";dojo.style(f,"color","#666");dojo.attr(f,x,"y");break;case"fremove":dojo.publish("logAjaxEvent",["social","remove-friend","network"]);API_SVC.removeFriend(m).addCallback(b,"_reload");break;case"tadd":API_SVC.requestContribution(m);dojo.publish("logAjaxEvent",["social","request-contribution","timeline"]);f.innerHTML=M.PENDING_CONTRIBUTOR;dojo.style(f,"color","#666");dojo.attr(f,x,"y");break;case"tremove":dojo.publish("logAjaxEvent",["manage","remove-contribution","timeline"]);API_SVC.removeContribution(m).addCallback(b,"_reload");break;case"tremovecontr":dojo.publish("logAjaxEvent",["manage","remove-contribution","timeline"]);API_SVC.removeContributor(m,sid).addCallback(b,"_reload");break;}b.close();});});dojo.addClass(f,"flyout_link");b.show(dojo.position(f),dojo.position(f,true));});},_reload:function(){window.location.reload(false);},closeNode:function(){dojo.query("a[action='actioncontrol']").removeClass("flyout_link");},getName:function(){return"Action Control";}});dojo.declare("AccountControl",PageControl,{constructor:function(){var a=this;a.passwordRegex=new RegExp("^[a-zA-Z0-9\d]{6,}$");},initialize:function(b){var a=this;a._openParams={};dojo.query(".qsl").forEach(function(c){dojo.connect(c,"onclick",a,"_clickHandlers");a.node=c;a.resetHtml=c.innerHTML;});dojo.subscribe("quickAccount",a,"_open");dojo.subscribe("quickAccountIdentity",a,"_identity");},_clickHandlers:function(c){var b=this,a=c.target,d=dojo.attr(a,"action");if(!d){while(a&&!d&&!dojo.hasClass(a,"qsl")){a=a.parentNode;d=dojo.attr(a,"action");}}switch(d){case"reset":b._reset();var e=dojo.attr(a,"params");if(e){dojo.publish("logAjaxEvent",e.split("#"));}break;case"close":b._close();break;case"reload":b._next();break;case"connect_facebook":b._aT("login-choose","facebook");b._fb();break;case"linkfb":b._linkfb();break;case"tgpass":b._tgPass();return;case"create":b._preCreate();b._aT("signup-choose","lifeblob");break;case"createlb":b._createlb();break;case"connect_lifeblob":b._preLogin();b._aT("login-choose","lifeblob");break;case"loginlb":b._loginlb();break;case"connect_google":b._aT("login-choose","google");b._connectGoogle();break;}},_createlb:function(){var c=this,b=dojo.byId("qsl_email").value,a=dojo.byId("qsl_pass").value;if(!ut.getEmail(b)){c._preCreate(b,a);c._formErr("Enter a valid email");c._aT("signup-error-pre-email","lifeblob");return;}else{if(!a||!a.match(c.passwordRegex)){c._preCreate(b,a);c._formErr("Password needs to be alphanumeric and atleast 6 characters");c._aT("signup-error-pre-pass","lifeblob");return;}}c._loadMsg("Creating your lifeblob account...");c._aT("signup-submit","lifeblob");API_SVC.create(b,a,true).addCallback(function(e){console.log(e);if(e.stat!="ok"){if(e.code==2){c._preCreate(b,a);c._formErr("Error processing request. Please retry...");}else{if(e.code==105){c._aT("signup-error","lifeblob");alert("Already logged in. Reloading page");c._next();return;}}c._aT("signup-invalid","lifeblob");console.log("Error. Code:"+e.code+" Desc:"+e.desc);return;}var d=e.result,f;switch(d.status){case 1:c._done(d,"/lb/account/finish/signup/lifeblob","signup-success","lifeblob");return;case 2:f="Enter a valid email";break;case 3:f="Email already taken. Please login instead.";break;case 4:f="Password needs to be alphanumeric and atleast 6 characters";break;default:f="Error processing request. Please retry...";break;}c._preCreate(b,a);c._formErr(f);c._aT("signup-invalid","lifeblob");});},_loginlb:function(){var c=this,b=dojo.byId("qsl_email").value,a=dojo.byId("qsl_pass").value;if(!b){c._aT("login-error-pre-login","lifeblob");return;}else{if(!a){c._aT("login-error-pre-pass","lifeblob");return;}}c._loadMsg("Authenticating with your lifeblob account...");c._aT("login-submit","lifeblob");API_SVC.login(b,a,true).addCallback(function(e){if(e.stat!="ok"){if(e.code==2){c._preLogin(b,a);c._formErr("Error processing request. Please retry...");}else{if(e.code==105){c._aT("login-error","lifeblob");alert("Already logged in. Reloading page");c._next();return;}}c._aT("login-invalid","lifeblob");console.log("Error. Code:"+e.code+" Desc:"+e.desc);return;}var d=e.result;if(!d.status){c._preLogin(b,a);c._formErr("Invalid email / password");c._aT("login-invalid","lifeblob");}else{c._done(d,"/lb/account/finish/login/lifeblob","login-success","lifeblob");}});},_connectGoogle:function(){var e=this,b=e.popup,d=450,a=500,f=(window.screen.height/2-a/2),g=(window.screen.width/2-d/2);if(b){try{b.close();}catch(c){}}b=window.open("http://www.lifeblob.com/account/popup/googleopen","","status=1,location=1,resizable=yes,width="+d+",height="+a+",left="+g+",top="+f);if(!b){e._showMainErr("Popup Blocked detected. Please allow popups from Lifeblob and try again.");e._aT("login-error-pre-popup-blocked","google");dojo.query(".qslbp").addClass("hidden");return false;}else{e._aT("login-submit","google");dojo.query(".qslbp").removeClass("hidden");}b.focus();e._waitForPopup();e.popup=b;},_fb:function(){var c=this,a=c.popup,d=(window.screen.width/2-448/2);if(a){try{a.close();}catch(b){}}a=window.open("http://www.lifeblob.com/account/popup/fconnectopen","","status=false, width=448px, height=488px, left="+d+"px, screenX="+d+"px, top=100px, screenY=100px");if(!a){c._showMainErr("Popup Blocked detected. Please allow popups from Lifeblob and try again.");c._aT("login-error-pre-popup-blocked","facebook");dojo.query(".qslbp").addClass("hidden");return false;}else{dojo.query(".qslbp").removeClass("hidden");c._aT("login-submit","facebook");}a.focus();c._waitForPopup();c.popup=a;},_waitForPopup:function(){var a=this;a.popupWait=setInterval(function(){if(a.popup.closed){dojo.query(".qslbp").addClass("hidden");clearInterval(a.popupWait);}},3000);},_identity:function(b,a){console.log(b);console.log(a);dojo.query(".qslbp").addClass("hidden");var c=this;if(b&&a){switch(b){case"facebook":c._fbIdentity(a);break;case"google":c._onGoogle(a);break;}}},_runDefer:function(a){var d=this,b=d._openParams;if(b.deferFunc){try{b.deferFunc(a);}catch(c){console.log(c);}}},_onGoogle:function(a){var b=this;switch(a.status){case"LOGIN":b._done(a,"/lb/account/finish/login/google","login-success","google");break;case"LINKUP":b._done(a,"/lb/account/finish/signup/google/linked","signup-success","google");break;case"NEW":b._done(a,"/lb/account/finish/signup/google/email","signup-success","google");break;case"AUTH_ERROR":b._showMainErr("Google connect was cancelled.");b._aT("login-cancel","google");break;case"EXCEPTION":b._showMainErr("There was an error processing your request. Please try again.");b._aT("login-invalid","google");break;}},_fbIdentity:function(a){var b=this;b.fbinfo=a;switch(a.status){case"cancel":b._showMainErr("Facebook Connect was cancelled.");b._aT("login-cancel","facebook");break;case"alreadylinked":b._done(a,"/lb/account/finish/login/facebook","login-success","facebook");break;case"linked":b._done(a,"/lb/account/finish/signup/facebook/linked","signup-success","facebook");break;case"new":dojo.publish("logEvent",["/lb/account/intemediate/signup/facebook"]);b._preFbLinkup(true);break;case"exception":b._showMainErr("There was an error processing your request. Please try again.");b._aT("login-invalid","facebook");break;}},_linkfb:function(){var f=this,a=f.fbinfo,e=f.node,d=dojo.byId("qsl_lg").checked,c=dojo.byId("qsl_email").value,b=dojo.byId("qsl_pass").value;console.log("checked:"+d);if(d){if(!c){f._aT("signup-linkup-error-login","facebook");return;}else{if(!b){f._aT("signup-linkup-error-pass","facebook");return;}}f._aT("signup-linkup-login-submit","facebook");f._loadMsg("Authenticating with your lifeblob account...");API_SVC.fblinkup(c,b).addCallback(function(h){if(h.stat!="ok"){if(h.code==2){f._preFbLinkup(false,c,b);f._showMainErr("Error processing request. Please retry...");}else{if(h.code==105){f._aT("signup-linkup-error-email-error","facebook");alert("Already logged in. Reloading page");f._next();return;}}f._aT("signup-linkup-error-email-invalid","facebook");return;}var g=h.result;switch(g.status){case -1:f._preFbLinkup(false,c,b);f._showMainErr("Invalid email / password");f._aT("signup-linkup-error-email-invalid","facebook");return;case 0:case 3:if(g.status==0){f._done(g,"/lb/account/finish/signup/facebook/email-same","signup-success","facebook");}else{f._done(g,"/lb/account/finish/signup/facebook/email-linkup","signup-success","facebook");}return;case 1:f._preFbLinkup(false,c,b);f._showMainErr("There is already a facebook account linked to the given account.");f._aT("signup-linkup-error-diff-account","facebook");return;case 2:case 4:f._aT("signup-linkup-error-case-"+g.status,"facebook");alert("Already logged in. Reloading page");f._next();return;}});}else{if(!ut.getEmail(c)){f._preFbLinkup(true,c);f._showMainErr("Enter a valid email");f._aT("signup-linkup-error-email","facebook");return;}f._aT("signup-linkup-new-submit","facebook");f._loadMsg("Creating your lifeblob account...");API_SVC.fbnew(c).addCallback(function(h){if(h.stat!="ok"){if(h.code==2){f._preFbLinkup(true,c);f._showMainErr("Error processing request. Please retry...");}else{if(h.code==105){f._aT("signup-linkup-error-new-error","facebook");alert("Already logged in. Reloading page");f._next();return;}}f._aT("signup-linkup-error-new-invalid","facebook");return;}var g=h.result;switch(g.status){case 2:f._preFbLinkup(true,c);f._showMainErr("Invalid email");f._aT("signup-linkup-error-new-email-invalid","facebook");return;case 3:f._preFbLinkup(true,c);f._showMainErr("Email already taken");f._aT("signup-linkup-error-new-email-taken","facebook");return;case 0:case 1:if(g.status==0){f._done(g,"/lb/account/finish/signup/facebook/email-new","signup-success","facebook");}else{f._done(g,"/lb/account/finish/signup/facebook/email-linkup","signup-success","facebook");}return;}});}},_done:function(a,f,h,d){var c=this,e=dojo.query,b=c._openParams,g;LB.setUser(a.user);if(a.cookie){dojo.cookie("__lt",a.cookie,{expires:a.expires||0,path:"/"});}if(b.skipAutoReload){if(b.msgChannel){dojo.subscribe(b.msgChannel,function(j){c._loadMsg(j);});}if(b.closeChannel){dojo.addClass(c.node,"hidden");e(".qslb").addClass("hidden");g=dojo.subscribe(b.closeChannel,function(){dojo.removeClass(c.node,"hidden");e(".qslb").removeClass("hidden");dojo.unsubscribe(g);c._success();});}}c._runDefer(d);dojo.publish("logEvent",[f]);c._aT(h,d);if(!b.skipAutoReload){c._success();}},_import:function(a){var c=this,d=c._openParams.deferMsg,b=["<div class='rd'>"];b.push("<div class='msg'>Waiting for ",a.appName," to give access to your photos</div>");b.push("<div class='tim' time='6'>Please allow lifeblob to access your ",a.appName," photos in the popup.</div>");c.node.innerHTML=b.join("");},_tgPass:function(){dojo.query(".cbp",this.node).toggleClass("hidden");dojo.query(".but",this.node).toggleClass("buts");},_preCreate:function(b,a){var c=this;c.node.innerHTML=c._preHtml("Create a new account","Enter your email and password below to sign up for a lifeblob account.","createlb","Signup","account#signup-cancel#lifeblob",b,a);},_preLogin:function(b,a){var c=this;c.node.innerHTML=c._preHtml("Sign in with Lifeblob","Enter your email and password below to sign in with your lifeblob account.","loginlb","Login","account#login-cancel#lifeblob",b,a);},_preHtml:function(g,d,e,a,f,c,b){c=c||"";b=b||"";return['<div class="qf">','<div class="cl invisible"><a href="javascript:void(0)" action="close">Close</a></div>','<div class="t">',g,"</div>",'<div class="s">',d,"</div>",'<div class="err"><div class="msg"></div></div>','<table class="tb">','<tr><td class="td"><div class="tl">Email:</div></td><td class="td"><input class="input" type="text" value="',c,'" id="qsl_email"/></tr>','<tr><td class="td"><div class="tl">Password:</div></td><td class="td"><input class="input" type="password" value="',b,'" id="qsl_pass"/></tr>','<tr><td class="tdb" colspan="2"><button action="',e,'" value="Submit" class="blue_button"><span>',a,"</span></button>",'<a class="can" title="Go back" params="',f,'" action="reset">Cancel</a></td></tr>',"</table>","</div>"].join("");},_preFbLinkup:function(d,b,a){var c=this;c.node.innerHTML=c._emailHtml("One last thing!","Please enter your email id so that we can notify you of any response.",c.fbinfo.facebook.pic,"I have an existing lifeblob account with this email","linkfb","Continue","account#signup-cancel#facebook",d,b,a);},_emailHtml:function(j,a,e,f,c,d,b,g,h,k){return['<div class="top">','<div class="cl invisible"><a href="javascript:void(0)" action="close">Close</a></div>','<div class="t">',j,"</div>",'<div class="s ss">',a,"</div>",'<div class="err"><div class="msg"></div></div>','<table class="emf"><tr>','<td class="td1"><img class="img" src="',e,'"/></td>','<td class="td2">','<span class="em">Email:</span><input class="input" type="text" value="',h,'" id="qsl_email"/>','<div class="cb"><input ',(g?"":"checked='checked'"),' action="tgpass" id="qsl_lg" type="checkbox" class="checkbox"/><label class="label" for="qsl_lg">',f,"</label></div>",'<div class="cb cbp ',(g?"hidden":""),'"><div class="em">Password for your existing account:</div><input class="input" type="password" value="',k,'" id="qsl_pass"/></div>','<div class="but ',(g?"":"buts"),'"><button action="',c,'" value="Submit" class="blue_button"><span>',d,"</span></button>",'<a class="can" title="Go back" params="',b,'" action="reset">Cancel</a></div>',"</td>","</tr></table>","</div>"].join("");},_loadMsg:function(a){this.node.innerHTML=["<div class='ld'><img src='http://cdn0.lifeblob.com/lifeblob/img/theme-gray/spinners/hourglass.v199e1c.gif' class='img'/><span class='msg'>",a,"</span></div>"].join("");},_formErr:function(b){var a=dojo.query;a(".qf",this.node).forEach(function(c){a(".err .msg",c).html(b);dojo.addClass(c,"qferr");});},_showMainErr:function(b){var a=dojo.query;a(".top",this.node).forEach(function(c){a(".err .msg",c).html(b);dojo.addClass(c,"merr");});},_success:function(){var b=this,c=b._openParams.deferMsg,a=["<div class='rd'>"];if(c){a.push("<div class='msg'>",c,"</div>");}a.push("<div class='tim' time='6'>This page will automatically refresh in 5 seconds...</div>");a.push("<button action='reload' class='norm_button'>Refresh Now!</button>");b.node.innerHTML=a.join("");dojo.fadeIn({node:b.node,rate:1000,duration:5000,onAnimate:function(){var e=dojo.query(".tim")[0],d=parseInt(dojo.attr(e,"time"))-1;if(d>=0){e.innerHTML="This page will automatically refresh in "+d+" seconds...";dojo.attr(e,"time",d);}},onEnd:function(){b._next();}}).play();},_open:function(e){if(false&&confirm(M.LOGIN_REQUIRED)){ut.rdL();return;}e=e||{};e.src=e.src||"unknown";var a=this,b=dojo.query,c=e.headingMsg,d=e.src;a._reset();dojo.removeClass(a.node,"hidden");a._openParams=e;if(c){a.oldHeading=b(".t",a.node).html();b(".t",a.node).html(c);}b(".qslb").removeClass("hidden");dojo.publish("logEvent",["/lb/account/open/"+d]);a._aT("open",d);if(e.service){switch(e.service){case"facebook":a._aT("login-choose","facebook");a._fb();break;case"lifeblob":a._preLogin();a._aT("login-choose","lifeblob");break;case"google":a._aT("login-choose","google");a._connectGoogle();break;}}},_close:function(){var a=this;a._reset();dojo.addClass(a.node,"hidden");a._aT("close",a._openParams.src);delete a._openParams;a._openParams={};dojo.query(".qslb").addClass("hidden");},_reset:function(){var a=this;a.node.innerHTML=a.resetHtml;if(a.oldHeading){dojo.query(".t",a.node).html(a.oldHeading);delete a.oldHeading;}delete (a.fbinfo);},_aT:function(c,a,b){dojo.publish("logAjaxEvent",["account",c,a,b]);},_next:function(){var b=this,a=b._openParams;if(a.redirectUrl){ut.rd(a.redirectUrl);}else{ut.reload();}},getName:function(){return"AccountControl";}});dojo.declare("InviteContributorsControl",FlyoutControl,{initialize:function(c){var b=this;var a=c.obj.id;dojo.query("a[action='inviteContributors']").onclick(function(d){dojo.query(".flyout_link").removeClass("flyout_link");var e=dojo.string.substitute(M.INV_EXT,["",a]);b.initNode({title:M.IC_TITLE});var g;dojo.query(b.getDataQuery()).forEach(function(h){h.innerHTML=["<div>",M.IC_MSG,"</div>","<table border=0 cellpadding=0 cellspacing=5>","<tr>","<td class='ic'>",M.TO,"</td>","<td><div class='ic_to'></div></td>","</tr>","<tr>","<td class='ic'>",M.MSG,"</td>","<td><textarea class='ic_msg'></textarea></td>","</tr>","<tr><td colspan='2'>",e,"</td></tr>","<tr><td colspan='2' class='ic_invite'>","<button type='button' class='lbut small'>",M.INVITE,"</button></td></tr></table>"].join("");dojo.query(".ic_to",h).forEach(function(j){g=new Suggest(j,"part_","user",{helpText:M.SFE,newValueText:"email",callbacks:{onselect:function(){b.show(dojo.position(f),dojo.position(f,true));},onenter:function(){b.show(dojo.position(f),dojo.position(f,true));}}});g.initialize();});dojo.query(".ic_invite button",h).onclick(function(j){var k=[];dojo.query("input[name='part_id']",h).forEach(function(m){var o=parseInt(m.value);k.push(o);});var l=Suggest.getEmails("input[name='part_email']");if(!l){return;}if(k.length!=0||l.length!=0){API_SVC.inviteContributors({topicId:a,people:k,emails:l});dojo.publish("tt",[{message:dojo.string.substitute(M.INV_STATUS,[(k.length+l.length)])}]);dojo.publish("logAjaxEvent",["manage","invite-contributors","timeline",l.length]);b.close();}});});var f=d.currentTarget;dojo.addClass(f,"flyout_link");b.show(dojo.position(f),dojo.position(f,true));g.clear(true);dojo.publish("logEvent",[["/lb/topicinvite/home"]]);});},closeNode:function(){dojo.query("a[action='inviteContributors']").removeClass("flyout_link");},getName:function(){return"IC";}});dojo.declare("ProfilePicControl",FlyoutControl,{initialize:function(b){var a=this;this.callCount=0;dojo.query("#profilePic").onclick(function(c){a.handle(c,a);});},handle:function(l,a){var d="borderColor",g="table.defaults",f="table.upload",b="table.url",k="<img src='http://cdn2.lifeblob.com/lifeblob/img/theme-gray/spinners/loader_blue_16_wht.v67bd14.gif'/>",j,c,m,e;dojo.query(".flyout_link").removeClass("flyout_link");m=l.currentTarget;e=dojo.attr(m,"topic");j=["<span class='ppu_head'>","<span><a class='selected' action='upload' href='javascript:void(0)'>",M.PP_COMP,"</a></span>","<span>|</span>","<span><a action='",(e?"url":"defaults"),"' href='javascript:void(0)'>",(e?M.PP_URL:M.PP_DEF),"</a></span>","</span>"].join("");a.initNode({title:j,grad:-40});dojo.query(a.getTitleQuery()).forEach(function(o){dojo.query("a",o).onclick(function(p){c=p.currentTarget;dojo.query("a",o).removeClass("selected");dojo.addClass(c,"selected");dojo.query(".ppu_content table").style("display","none");dojo.query(".ppu_content table."+dojo.attr(c,"action")).style("display","block");});});dojo.query(a.getDataQuery()).forEach(function(p){p.innerHTML=["<div class='ppu_content'>","<form class='upload' action='/photo/profilePicture' method='post' enctype='multipart/form-data'>","<table class='upload' border=0 cellpadding=0 cellspacing=5>","<tr class='choose'>","<td><input name='upload' type='file'/>",(e?["<input name='topicId' value='",e,"' type='hidden'/>"].join(""):""),"</td>","<td>","<button type='button' class='norm_button lbut small blue'>",M.UPLOAD,"</button>","</td>","</tr>","<tr class='choose'>","<td colspan='2'>",M.PP_PHOTO_LIMIT,"</td>","</tr>","<tr class='wait' style='display:none;margin-top: 3px;'>","<td>",k,"</td>","<td>",M.PP_UP_WAIT,"</td>","</tr>","<tr class='error' style='display:none;margin-top: 3px;'>","<td colspan='2'>&nbsp;</td>","</tr>","</table>","</form>","<table class='url' border=0 cellpadding=0 cellspacing=5>","<tr class='choose'>","<td><input type='text' value='http://'/></td>","<td>","<button type='button' class='lbut small'>",M.CHOOSE,"</button>","</td>","</tr>","<tr class='wait' style='display:none;margin-top: 3px;'>","<td>",k,"</td>","<td>",M.PP_URL_WAIT,"</td>","</tr>","<tr class='error' style='display:none;margin-top: 3px;'>","<td colspan='2'>&nbsp;</td>","</tr>","</table>","<table class='defaults' border=0 cellpadding=0 cellspacing=5>","<tr class='choose'>","<td>","<a class='dp' pic='1' href='javascript:void(0)'><img src='http://cdn0.lifeblob.com/lifeblob/img/theme-gray/system/profile_pics/person/1/medium.v297fcd.jpg'/></a>","<a class='dp' pic='2' href='javascript:void(0)'><img src='http://cdn0.lifeblob.com/lifeblob/img/theme-gray/system/profile_pics/person/2/medium.v44f8cc.jpg'/></a>","<a class='dp' pic='3' href='javascript:void(0)'><img src='http://cdn0.lifeblob.com/lifeblob/img/theme-gray/system/profile_pics/person/3/medium.va02526.jpg'/></a>","<a class='dp' pic='4' href='javascript:void(0)'><img src='http://cdn0.lifeblob.com/lifeblob/img/theme-gray/system/profile_pics/person/4/medium.vb92dc7.jpg'/></a>","</td>","<td>","<button class='norm_button'>",M.CHOOSE,"</button></td>","</tr>","<tr class='wait' style='display:none;margin-top: 3px;'>","<td>",k,"</td>","<td>",M.PP_DEF_WAIT,"</td>","</tr>","</table>","</div>"].join("");dojo.query(b+" button.norm_button",p).onclick(function(q){var r;dojo.query(b+" input",p).forEach(function(t){r=t.value;});if(r&&r!="http://"){dojo.query(b+" tr.choose").style("display","none");dojo.query(b+" tr.wait").style("display","block");API_SVC.topicPic(e,r).addCallback(function(t){if(t.stat!="ok"){console.log("Error. Code:"+t.code+" Desc:"+t.desc);return;}a.upTPic(r);});dojo.publish("logAjaxEvent",["edit","change-topic-pic-url","timeline"]);}});dojo.query(f+" button.norm_button",p).onclick(function(q){dojo.query(f+" tr.choose").style("display","none");dojo.query(f+" tr.wait").style("display","block");dojo.io.iframe.send({form:dojo.query("form.upload",p)[0],handleAs:"application/json",content:{increment:this.callCount++,fileFields:""},handle:function(u){var r=dojo.fromJson(u),t=r.version;if(r.status!=0){console.log("Error. Status:"+r.status);dojo.query(f+" tr.choose").style("display","none");dojo.query(f+" tr.wait").style("display","none");dojo.query(f+" tr.error").style("display","block").forEach(function(v){dojo.query("> td",v).forEach(function(w){w.innerHTML=M.PP_PHOTO_LIMIT;});});return;}if(e){a.upTPic(ut.getProfileURL({id:e,pic:t},"medium",TOPIC_TYPE));dojo.publish("logAjaxEvent",["edit","change-topic-pic-upload","timeline"]);}else{a.upPic(t,"up");dojo.publish("logAjaxEvent",["edit","change-person-pic-upload","timeline"]);}}});});var o=g+" a.dp";dojo.query(o,p).onclick(function(q){c=q.currentTarget;dojo.query(o,p).style(d,"#fff").attr("sel","false");dojo.style(c,d,"#BE4126");dojo.attr(c,"sel","true");});dojo.query(g+" button.norm_button",p).onclick(function(q){var r;dojo.query(g+" a.dp[sel='true']",p).forEach(function(t){r=dojo.attr(t,"pic");});if(r){dojo.query(g+" tr.choose").style("display","none");dojo.query(g+" tr.wait").style("display","block");API_SVC.defaultPic(r).addCallback(function(t){if(t.stat!="ok"){console.log("Error. Code:"+t.code+" Desc:"+t.desc);return;}a.upPic(t.result,"def");});dojo.publish("logAjaxEvent",["edit","change-person-default-pic","timeline"]);}});});var h=l.currentTarget;dojo.addClass(h,"flyout_link");a.show(dojo.position(h),dojo.position(h,true));},upTPic:function(a){dojo.query("img.timelinepic").forEach("item.src = '"+a+"'");this.close({fade:300});},upPic:function(f,b){var h=(dojo.isIE<7)?(new Date()).getTime():f,e=th.getUser().person,g=PERSON_TYPE,c=ut.getProfileURL(e,"small",g),j=ut.getProfileURL(e,"medium",g),a=ut.getProfileURL(e,"large",g),d=this;dojo.query("table.helpout[help='pic']").forEach(function(l){var k=dojo.query("td.c22",l)[0].innerHTML;l.innerHTML=k;dojo.query(".profile_actions[link='before']",l).style("display","none");dojo.query(".profile_actions[link='after']",l).style("display","block");dojo.query("a[action='profilePic']",l).onclick(function(m){d.handle(m,d);});dojo.attr(l,"help","pic_done");});th.getUser().person.pic=h;dojo.query("img[src='"+c+"']").forEach("item.src = '"+ut.getProfileURL(e,"small",g)+"'");dojo.query("img[src='"+j+"']").forEach("item.src = '"+ut.getProfileURL(e,"medium",g)+"'");dojo.query("img[src='"+a+"']").forEach("item.src = '"+ut.getProfileURL(e,"large",g)+"'");this.close({fade:300});},closeNode:function(){dojo.query("a[action='profilePic']").removeClass("flyout_link");},getName:function(){return"PPC";}});dojo.declare("SendMessageControl",FlyoutControl,{initialize:function(b){var a=this;dojo.query("a[action='sendMessage']").onclick(function(c){dojo.query(".flyout_link").removeClass("flyout_link");var d=c.currentTarget;a.initNode({title:M.SMSG});dojo.query(a.getDataQuery()).forEach(function(g){var e=dojo.attr(d,"pid");var f=dojo.attr(d,"pname");g.innerHTML=["<table border=0 cellpadding=0 cellspacing=5>","<tr>","<td class='ic'>",M.TO,"</td>","<td><div class='msg_to'></div></td>","</tr>","<tr>","<td class='ic'>",M.SUB,"</td>","<td><input class='fly_sub'/></td>","</tr>","<tr>","<td class='ic'>",M.MSG,"</td>","<td><textarea class='ic_msg'></textarea></td>","</tr>","<tr><td colspan='2' class='ic_invite'>","<button type='button' class='lbut small'>",M.SEND,"</button></td></tr></table>"].join("");dojo.query(".msg_to",g).forEach(function(k){var h=[];h.push({key:f,value:{k:"id",v:e},disabled:true});var j=new Suggest(k,"part_","user",{initialValues:h,singleSelect:true});j.initialize();});dojo.query(".ic_invite button").onclick(function(h){var j,k;dojo.query(".fly_sub",g).forEach(function(l){j=l.value;l.focus();});if(j==""){return;}dojo.query(".ic_msg",g).forEach(function(l){k=l.value;});API_SVC.sendMessage([e],j,k,0);dojo.publish("logAjaxEvent",["social","send-message","message"]);dojo.publish("tt",[{message:dojo.string.substitute(M.MSG_STATUS,[f])}]);dojo.publish("logEvent",[["/lb/sendmessage/success"]]);a.close();});});dojo.addClass(d,"flyout_link");a.show(dojo.position(d),dojo.position(d,true));dojo.publish("logEvent",[["/lb/sendmessage/home"]]);});},closeNode:function(){dojo.query("a[action='sendMessage']").removeClass("flyout_link");},getName:function(){return"Send Message Control";}});dojo.declare("FBConnectControl",FlyoutControl,{fbConnected:false,initialize:function(c){var b=this,a=LB.getUser();if(a.logged){return;}b.fbConnected=(a.person.fbid!=0);if(b.fbConnected){return;}dojo.subscribe("importFb",b,"importFb");dojo.query("a#fbconnect").onclick(function(d){if(b.fbConnected){console.log("Already connected to facebook");b.removeFb();return;}dojo.query(".flyout_link").removeClass("flyout_link");var e=d.currentTarget;b.initNode({title:M.FB_CONNECT,forceDown:true});dojo.query(b.getDataQuery()).forEach(function(f){f.innerHTML=["<div class='fbconnect'>","<div style='margin-top: 5px'>","<a href='javascript:void(0);' action='connect'>","<img width='107' height='25' src='http://static.ak.fbcdn.net/images/fbconnect/login-buttons/connect_light_large_short.gif' alt='Connect'/>","</a>","</div>","<div class='legal_oneline'>","By clicking the button above, you agree to lifeblob's <a href='javascript:void(0);'>terms and conditions</a> for facebook photos.","</div>","<div class='legal hidden'>","<div>By clicking the button above, you confirm that lifeblob may access your Facebook photos and retain links to them in order to create your lifeblob.</div>","<div>You may also be prompted to give lifeblob offline access to your photos. Granting access is highly recommended as it lets us keep your lifeblob synchronized with your photos on Facebook.</div>","<div>Your privacy is important to us. We make our best attempt at ensuring that your photos are not made visible to anyone who cannot view them otherwise. You will be able to fine-tune the visibility further on lifeblob. You can read our entire terms of service <a target='_blank' href='http://www.lifeblob.com/terms'>here</a>.</div>","</div>","</div>","<div class='fb_auth hidden'>","<img width='16' height='16' align='absmiddle' src='http://cdn3.lifeblob.com/lifeblob/img/theme-gray/spinners/loader_16_E8E7E3.v186e19.gif'/>","<span>",M.WAITING_FOR_AUTHENTICATION,"</span>","<div class='hidden'>",M.FB_IMP_SUC,"</div>","<a class='gray_button hidden'><span class='middle'>Close</span><span class='right'></span></a>","</div>"].join("");dojo.query(".legal_oneline a",f).onclick(function(g){dojo.query(".legal",f).toggleClass("hidden");});dojo.query("[action='connect']",f).onclick(function(g){FB.Connect.requireSession(function(){dojo.query(".fbconnect",f).addClass("hidden");dojo.query(".fb_auth",f).removeClass("hidden");API_SVC.linkupFacebook().addCallback(function(k){if(k.stat!="ok"){console.log("Error. Code:"+k.code+" Desc:"+k.desc);return;}var h=k.result,l=h.userId,j=h.status;if(LB.getUser().uid!=LB.getUser()){alert('This facebook user is linked to another lifeblob account. Clicking "Ok" will log you into that account.');window.location.reload(false);}else{if(j==0||j==3){b.importFb();}else{if(j==1){alert('This lifeblob account already has a facebook user linked to it. Click "Ok" to create a new account for your facebook user.');ut.rd("/account/simplelogout?next=/account/fconnect");}else{if(j==2||j==4){alert('This facebook user is linked to another lifeblob account. Clicking "Ok" will log you into that account.');window.location.reload(false);}}}}});});});});dojo.addClass(e,"flyout_link");b.show(dojo.position(e),dojo.position(e,true));dojo.publish("logEvent",[["/lb/fbconnect/home"]]);});},importFb:function(){var a=this;FB.Facebook.apiClient.users_hasAppPermission("offline_access",function(b){if(b==0){FB.Connect.showPermissionDialog("offline_access",function(c){if(c){a.logEvent("facebook-import-type","perma");var d=document.createElement("iframe");dojo.byId("fb_iframe_cont").appendChild(d);dojo.attr(d,"src","http://www.lifeblob.com/xd_domain_load.htm");}else{a.logEvent("facebook-import-type","session");a._facebookImport();}});}else{a._facebookImport();}});},_facebookImport:function(){var b=this,d=false,e="FacebookPhotos",f="http://cdn1.lifeblob.com/lifeblob/img/common/error-16.ve2461d.png",a="http://cdn2.lifeblob.com/lifeblob/img/common/success-16.v92e1e1.png",c;dojo.query(this.getDataQuery()).forEach(function(g){dojo.query(".fb_auth > span",g).forEach("item.innerHTML='"+M.IMPORTING_DATA+"'");API_SVC.facebookImportRequest().addCallback(function(h){if(!h.result||h.result<0){b.logEvent("import-error-create",e);return;}else{if(!h.result&&h.code==3){b.logEvent("facebook-error-session",e);window.location.reload(false);return;}}c=setInterval(function(){if(!d){d=true;API_SVC.importStatus(h.result).addCallback(function(l){if(l.stat!="ok"){d=false;return;}var k=l.result;switch(k.status){case 0:d=false;return;case 1:b.logEvent("import-success",e);var o=k.data,j=dojo.string.substitute(M.IM_FB_STATS,[o[1],o[5]]);dojo.query(".fb_auth > span",g).forEach("item.innerHTML='"+j+"'");dojo.query(".fb_auth img",g).forEach(function(r){r.src=a;});b.fbConnected=true;dojo.query(".fb_auth div",g).removeClass("hidden");dojo.query(".fb_auth a",g).removeClass("hidden").onclick(function(r){b.closeAndRemove();});dojo.publish("reloadTimeline");break;default:b.logEvent("import-error-import",e);var q=(k.errorCode==2),p=q?M.FB_DUP_ERROR:M.IMPORT_ERROR,m=dojo.string.substitute(p,["Facebook"]);dojo.query(".fb_auth > span",g).forEach("item.innerHTML='"+m+"'");dojo.query(".fb_auth img",g).forEach(function(r){r.src=f;});if(q){b.logEvent("import-error-create-duplicate",e);b.fbConnected=true;dojo.query(".fb_auth a",g).removeClass("hidden").onclick(function(r){b.closeAndRemove();});}break;}clearInterval(c);c=null;d=false;});}},3000);});});},logEvent:function(b,a){dojo.publish("logAjaxEvent",["suggestflow",b,a]);},closeAndRemove:function(){this.removeFb();this.close();},closeNode:function(){dojo.query("a#fbconnect").removeClass("flyout_link");if(this.fbConnected){this.removeFb();}},removeFb:function(){dojo.query("a#fbconnect").forEach(function(b){var a=b.parentNode.parentNode;if(dojo.hasClass(a,"info_line")){a.parentNode.removeChild(a);dojo.query(".info_right_pane div.info_line:first-child").addClass("first_line");}});},getName:function(){return"FB Connect Control";}});dojo.declare("PlaceSuggestControl",PageControl,{constructor:function(){this.isSelecting=false;},initialize:function(){var a=".pcs";this.ht=a+" .ht";this.he=a+" .he";this.ac=a+" .ac";this.pi=a+" input";this._show();},_ps:function(){dojo.query(this.ac).forEach("item.innerHTML=''");},_h:function(a){dojo.query(a).addClass("hidden");},_s:function(a){dojo.query(a).removeClass("hidden");},_se:function(){var a=this;a._ps();a._s(a.ht);a._h(a.he);},_serr:function(){var a=this;a._ps();a._h(a.ht);a._s(a.he);},_cl:function(){var a=this;a._ps();a._h(a.ht);a._h(a.he);},_ts:function(){var a=this;dojo.query(this.ac+" li.selected").forEach(function(b){dojo.query(a.pi).forEach(function(d){var c=dojo.attr(b,"pname"),f=dojo.attr(b,"country"),e=(c+", "+f);d.value=e;dojo.byId("placeId").value=dojo.attr(b,"pid");dojo.byId("placeName").value=e;a._ps();});});},selectUp:function(){var a="selected";dojo.query(this.ac+" li").forEach(function(d,c,b){if(c>0&&dojo.hasClass(d,a)){dojo.removeClass(d,a);dojo.addClass(b[c-1],a);}});},selectDown:function(){var a="selected";dojo.query(this.ac+" li."+a).forEach(function(b){dojo.query(" + li",b).forEach(function(c){dojo.removeClass(b,a);dojo.addClass(c,a);});});},_show:function(){var f,b=this,e="Start typing a place name",d,c,a;dojo.query(b.ac).onmouseover(function(g){b.isSelecting=true;}).onmouseout(function(g){b.isSelecting=false;});dojo.query(b.pi).onfocus(function(g){d=g.currentTarget;b._se();if(d.value==e){d.value="";}}).onblur(function(g){if(b.isSelecting){b._ts();}d=g.currentTarget;c=d.value;a=dojo.byId("placeName");if(a.value!=c||c==""){d.value=e;dojo.byId("placeId").value="";a.value="";}b._cl();}).onkeyup(function(h){var l=h.keyCode,k=false,j=h.currentTarget,g;if((l>=48&&l<=57)||(l>=65&&l<=90)||l==8||l==46||l==118||l==222||l==32){k=true;}if(!k){return;}dojo.attr(j,"pid","0");g=dojo.trim(j.value);if(g.length<=1){return;}clearTimeout(f);f=setTimeout(function(){dojo.addClass(j,"spinner");API_SVC.searchLocation(g+"*",5).addCallback(b,"_pr");clearTimeout(f);},450);}).onkeydown(function(g){var h=g.keyCode;if(h==13){b._ts();b._ps();dojo.stopEvent(g);}else{if(h==27){b._cl();dojo.stopEvent(g);}else{if(h==9){b._ts();b._ps();}else{if(h==38){b.selectUp();}else{if(h==40){b.selectDown();}}}}}});},_pr:function(a){var b=this;dojo.query(b.pi).forEach(function(c){dojo.query(b.ac).forEach(function(m){dojo.removeClass(c,"spinner");if(a.stat!="ok"){return;}var o=a.result,j=o.length,k=dojo.byId("placeId"),h=dojo.byId("placeName"),f=["<ul>"],e={},g,d;if(o.length==0){m.innerHTML="";b._serr();k.value="";h.value="";return;}else{b._cl();k.value="";h.value="";}for(g=0;g!=j;g++){d=o[g];var l=d.name+"_"+d.country;e[l]=true;}for(g=0;g!=j;g++){d=o[g];f.push("<li ",((g==0)?"class='selected'":""),"lat='",d.lat,"' lng='",d.lng,"' pid='",d.id,"' pname='",d.name,"' region='",d.region,"' country='",d.country,"' displayName='",d.displayName,"' >");var l=d.name+"_"+d.country;if(e[l]){f.push(d.name,", ",d.region,", ",d.country,"</li>");}else{f.push(d.name,", ",d.country,"</li>");e[l]=true;}}f.push("</ul>");m.innerHTML=f.join("");dojo.query("li",m).onmouseover(function(p){var q="selected";dojo.query("li",m).removeClass(q);dojo.addClass(p.currentTarget,q);}).onclick(function(p){m.innerHTML="";var r=p.currentTarget,q=dojo.attr(r,"pname"),u=dojo.attr(r,"country"),t=(q+", "+u);dojo.byId("placeId").value=dojo.attr(r,"pid");dojo.byId("placeName").value=t;c.value=t;dojo.stopEvent(p);});});});},getName:function(){return"Place Suggest Control";}});dojo.declare("StreamControl",PageControl,{initialize:function(e){var d=this,f=e.obj,b={HOME:-1,NEWSFEED:0,ACTIVITY:1,LIKES:2,LEADERBOARD:3,RIVERVIEW:4,DISCUSSIONS:5},a={},c=false,g;d.timeline=f.timeline;d.embed=e.embed;d.sort=e.sort;d.searchTerm=e.searchTerm;if(f.trackUrl){d.trackUrl=f.trackUrl.replace(new RegExp("(.*)([0-9]?)\\?src=.*"),"$1").replace(new RegExp("(.*)/[0-9]+"),"$1");}d.obj=f;d.timelineId=f.id;d.timelineType=(f.type==TOPIC_TYPE)?4:((f.type==PLACE_TYPE)?2:((f.type==TAG_TYPE)?3:((f.type==DERIVED_TYPE)?5:1)));d.loggedUser=LB.getUser();d.feedTypes=b;dojo.query(".activity_stream").forEach(function(j){var h=dojo.attr(j,"attr"),l=dojo.attr(j,"active"),k=j;if(h=="nf"){a[b.NEWSFEED]=j;if(l){d.selectedFeed=b.NEWSFEED;}}else{if(h=="ls"){a[b.ACTIVITY]=j;if(l){d.selectedFeed=b.ACTIVITY;}}else{if(h=="lc"){a[b.LIKES]=j;if(l){d.selectedFeed=b.LIKES;}}else{if(h=="rv"){a[b.RIVERVIEW]=j;c=true;if(l){d.selectedFeed=b.RIVERVIEW;}}else{if(h=="ds"){a[b.DISCUSSIONS]=j;c=true;if(l){d.selectedFeed=b.DISCUSSIONS;}k=j.parentNode;}else{if(h=="hp"){a[b.HOME]=j;c=true;if(l){d.selectedFeed=b.HOME;}}}}}}}dojo.connect(k,"onclick",d,"_clickHandlers");});if(c){dojo.connect(window.document,"onscroll",d,"_scrollHandler");}d.nodes=a;d.isOwnTimeline=false;if(f.type==PERSON_TYPE&&d.loggedUser.person.id==f.id){d.isOwnTimeline=true;}else{if(f.type==TOPIC_TYPE&&f.contest){d.selectedFeed=b.LEADERBOARD;}}dojo.subscribe("memoirAdded",d,"_addMemoirToTop");dojo.subscribe("shortAdded",d,"_addShortToTop");dojo.subscribe("feedType",d,"_feed");},_feed:function(k,h,m){var f=this,b=f.nodes,p=f.feedTypes,c=f.selectedFeed,j=p.HOME,a=p.ACTIVITY,l=p.NEWSFEED,q=p.LIKES,e=p.DISCUSSIONS,g='<div class="loading"><img src="http://cdn2.lifeblob.com/lifeblob/img/theme-gray/spinners/scaler_blue.vd641b3.gif"/></div>',d="_rebuildActivityPage";switch(k){case"lifestream":if(c==a){if(h){if(h=="status"){f._addStatusToAs(m);}else{f._addMemoirToAs(m);}}return;}f.selectedFeed=a;for(var o in b){if(o!=a&&o!=j){b[o].innerHTML=g;}}API_SVC.getStreamStories(f.timelineId,f.timelineType,1).addCallback(f,d,{feedType:a,createPagination:true,extraKey:h,extraValue:m});break;case"newsfeed":if(c==l){return;}f.selectedFeed=l;for(var o in b){if(o!=l&&o!=j){b[o].innerHTML=g;}}API_SVC.getNewsfeed(1).addCallback(f,d,{feedType:l,createPagination:true});break;case"likecomment":if(c==q){return;}f.selectedFeed=q;for(var o in b){if(o!=q&&o!=j){b[o].innerHTML=g;}}API_SVC.getLikesfeed(f.timelineId,1).addCallback(f,d,{feedType:q,createPagination:true});break;case"discussions":if(c==e){return;}f.selectedFeed=e;for(var o in b){if(o!=e&&o!=j){b[o].innerHTML=g;}}API_SVC.getDiscussionFeed(f.timelineId,f.timelineType,1).addCallback(f,d,{feedType:e,createPagination:true});break;case"homepage":if(c==j){return;}f.selectedFeed=j;for(var o in b){if(o!=j){b[o].innerHTML=g;dojo.addClass(b[o].parentNode," hidden ");}}dojo.removeClass(f.nodes[j],"hidden");default:break;}dojo.publish("logAjaxEvent",["social","feed-choose",k]);},_rebuildActivityPage:function(d,e){if(e.stat!="ok"){console.log("Error. Code:"+e.code+" Desc:"+e.desc);return;}var b=this,o=b.feedTypes,k=d.feedType,q=b.nodes[k],r=e.result,j=r.total,h=r.page,a=r.nextStart,g=dojo.trim(r.html),p;if(k!=o.RIVERVIEW){p=(a!=-1);}else{a=h+1;h=a;p=(h<=(j-1));}b.fetching=false;if(d.createPagination){q.innerHTML='<div class="clearall" style="padding-top:4px"><a action="sm_'+k+":"+a+'" href="javascript:void(0)" class="pagination">show more<img class="hidden" align="absmiddle" src="http://cdn1.lifeblob.com/lifeblob/img/theme-gray/spinners/spinner-16-blue.vb00628.gif"/></a></div>';}if(j==0){g=["<div class='nostream'>"];switch(k){case o.NEWSFEED:g.push("No friend activities to show. Add more friend or follow groups");break;case o.ACTIVITY:g.push("No user activities to show");break;case o.LIKES:g.push("No user likes or comments to show");break;case o.DISCUSSIONS:g.push("No discussions to show");break;}g.push("</div>");g=g.join("");}dojo.query(".pagination",q).forEach(function(v){if(p){var t=dojo.query(".activity_stream_entry",v.parentNode.parentNode);if(t&&t.length>0){var u=t[t.length-1];dojo.removeClass(u,"noborder");t=null;u=null;}}dojo.place(g,v.parentNode,"before");if(p){dojo.attr(v,"action","sm_"+k+":"+a);}else{dojo.addClass(v.parentNode,"hidden");}dojo.attr(v,"fetching",false);dojo.query("img",v).addClass("hidden");if(j==0){dojo.addClass(v,"hidden");}});var c=d.extraKey,l=d.extraValue;if(c){if(c=="status"){this._addStatusToAs(l);}else{this._addMemoirToAs(l);}}if(d.infinitescroll){var f=dojo.byId("scroll_status"),m=parseInt((h/j)*100);if(h<j){f.innerHTML=["loaded ",m,"% of all photos"].join("");}else{dojo.query(".scroll_status").orphan();dojo.query(".pagination",q).orphan();}}if(d.scroll){window.scrollTo(0,341);}},selectTab:function(a,c,d){var b=this;dojo.query(".timeline_tab").forEach(function(f){var e=dojo.attr(f,"tTab");if(e!=a){dojo.removeClass(f,"selected_timeline_tab");}else{dojo.addClass(f,"selected_timeline_tab");b._feed(e,c,d);}});dojo.query("[tTabContent]").forEach(function(f){var e=dojo.attr(f,"tTabContent");if(e==a){dojo.removeClass(f,"hidden");}else{dojo.addClass(f,"hidden");}});},_addMemoirToTop:function(a){this.selectTab("lifestream","memoir",a);},_addShortToTop:function(a){this.selectTab("lifestream","status",a);},_addMemoirToAs:function(c){var b=this,a=b.nodes.ACTIVITY;ut.highlightNode(a.getElementsByTagName("div")[0],1000);},_addStatusToAs:function(d){var a=this,k=a.nodes.ACTIVITY,g=a.isOwnTimeline,j=g?d.status:d.comment,c=a.loggedUser,e=c.person,b,f;if(dojo.byId("s_"+d.aid)){return;}var b=dojo.create("div",{"class":"activity_stream_entry",id:"s_"+d.aid},k,"first");f=['<div class="first_as"><a href="/user/',c.displayName,'"><img class="pic" src="',ut.getProfileURL(e,"large",PERSON_TYPE),'"/></a></div>','<div class="second_as"><div class="line fl"><a class="name" href="/user/',c.displayName,'">',e.name,"</a> ",j,"</div>",'<div class="remove fr hidden"><a action="rm_',d.aid,'" class="activity_comment_delete" title="Remove Status"></a></div>','<div class="links"><span>',M.JUST_NOW,"</span>",'<a action="sc_',d.aid,'" href="javascript:void(0)" class="link">Comment</a>','<a action="like_',d.aid,'" href="javascript:void(0)" class="link">Like</a>',"</div>",'<div class="activity_holder hidden">','<div class="likes hidden">like this</div>','<div class="comments no_likes">','<div class="new_activity_comment">','<textarea action="sc_',d.aid,'">Write a comment...</textarea>','<a action="pc_',d.aid,'" class="lbut small blue">Comment</a>','<span class="spinner"></span>',"</div>","</div>","</div>","</div>"].join("");b.innerHTML=f;ut.highlightNode(b,1000);},_scrollHandler:function(l){var e=this,k=e.feedTypes,g=k.RIVERVIEW,d=e.selectedFeed,b=e.nodes,m=dijit.getViewport(),h=m.t,a=m.h,c=m.w,o=document.documentElement.scrollHeight,j=0;if(o==0){return;}j=(o-a)-h;if(j<2400&&!e.fetching){if(d==g){var f=dojo.query(".pagination",b[g]);if(f.length){e._showMore(g,parseInt(f.attr("action")[0].split(":")[1]));}}}},_showMore:function(b,f){var e=this,d=e.timelineId,g=e.timelineType,c=e.feedTypes,a="_rebuildActivityPage";if(!e.fetching){e.fetching=true;switch(b){case c.NEWSFEED:API_SVC.getNewsfeed(f).addCallback(e,a,{feedType:b});break;case c.ACTIVITY:API_SVC.getStreamStories(d,g,f).addCallback(e,a,{feedType:b});break;case c.LIKES:API_SVC.getLikesfeed(d,f).addCallback(e,a,{feedType:b});break;case c.DISCUSSIONS:API_SVC.getDiscussionFeed(d,g,f).addCallback(e,a,{feedType:b});break;case c.RIVERVIEW:if(e.searchTerm){API_SVC.getSearchRiverView(e.searchTerm,f).addCallback(e,a,{feedType:b,infinitescroll:true});}else{API_SVC.getRiverView(d,g,f,e.embed,e.sort).addCallback(e,a,{feedType:b,infinitescroll:true});}break;}}dojo.publish("logEvent",[e.trackUrl+"/"+f]);},_clickHandlers:function(v){var H=this,J=H.feedTypes,y=v.target,F=H.loggedUser.person,E=(F.id==-1),D=(window.FB&&window.FB.Connect&&FB.Connect.get_loggedInUser()&&FB.Connect.get_loggedInUser()!=""),u=dojo.attr(y,"action"),w=(u?u.split("_"):[]),e=w[0],d=w[1],q=H.obj.contest,l=H.timelineId,G=H.timelineType,j,r,g,x,C,P,h,f,k,c,z,B,o,b,O,m,L,K,x,I;H.isFbLogged=D;if(d){j=d.split(":");r=j[0];}console.log("action["+e+"]  other["+d+"]");switch(e){case"postDiscussion":dojo.stopEvent(v);if(dojo.attr(y,"posting")){return;}var a=dojo.query("textarea.msg",y.parentNode)[0];I=a.value;if(I==""||I=="Start a new discussion..."){return;}dojo.attr(y,"posting",true);dojo.query(".l",y.parentNode).removeClass("hidden");API_SVC.addDiscussion(l,G,I).addCallback(function(R){if(R.stat!="ok"){}else{var Q=R.result,S=Q.discussion,T=[],U;B=H.nodes[H.feedTypes.DISCUSSIONS];U=dojo.create("div",{"class":"activity_stream_entry",id:"s_"+S.id,style:{height:"auto",display:"none"}},B,"first");T=['<div class="first_as"><a href="/user/',F.displayName,'?src=df"><img class="pic" src="',ut.getProfileURL(F,"large",PERSON_TYPE),'"/></a></div>','<div class="second_as">','<div class="line"><a class="name" href="/user/',F.displayName,'?src=df">',F.name,'</a><span class="dis">',S.comment,"</span> ",' <span class="date">',M.JUST_NOW,"</span> ",' <a class="delete" title="Delete Discussion" action="dd_',S.id,'">&nbsp</a></div>','<table class="pht"><tr><td class="sc">','<div class="activity_holder"><div class="comments no_likes"><div class="new_activity_comment">','<div class="ncl"><a href="/user/',F.displayName,'?src=df"><img class="cpic" src="',ut.getProfileURL(F,"medium",PERSON_TYPE),'"/></a></div>','<div class="ncr"><textarea action="sc_',S.id,'">',M.STREAM_NEW_DISCUSS,'</textarea><input type="submit" value="Comment" class="as_comment_post lbut small blue" action="dcp_',S.activityId,":",S.id,':df"/><span class="spinner"></span></div>','<div class="clearall"></div>',"</div></div></div>","</td></tr></table>","</div>"].join("");U.innerHTML=T;a.value=M.STREAM_START_DISCUSS;dojo.removeClass(a,"ed");dojo.fx.wipeIn({node:U}).play();dojo.query(".nostream",B).addClass("hidden");}dojo.attr(y,"posting",false);dojo.query(".l",y.parentNode).addClass("hidden");});dojo.attr(y,"fetching",false);break;case"discMsg":dojo.addClass(y,"ed");if(y.value==M.STREAM_START_DISCUSS){y.value="";}y.focus();if(!y.handlers){y.handlers=[];}y.handlers.push(dojo.connect(y,"onblur",H,"_blurTextHandler"));dojo.publish("logAjaxEvent",["social","discuss-start","feed"]);break;case"sm":dojo.stopEvent(v);if(dojo.attr(y,"fetching")){return;}dojo.attr(y,"fetching",true);dojo.query("img",y).removeClass("hidden");L=parseInt(j[0]);h=parseInt(j[1]);H._showMore(L,h);break;case"sals":dojo.stopEvent(v);if(dojo.attr(y,"fetching")){return;}dojo.attr(y,"fetching",true);dojo.query("img",y).removeClass("hidden");h=j[0];API_SVC.getStreamStories(l,G,h).addCallback(H,"_rebuildActivityPage",{feedType:J.ACTIVITY});break;case"sanf":dojo.stopEvent(v);if(dojo.attr(y,"fetching")){return;}dojo.attr(y,"fetching",true);dojo.query("img",y).removeClass("hidden");h=j[0];API_SVC.getNewsfeed(h).addCallback(H,"_rebuildActivityPage",{feedType:J.NEWSFEED});break;case"sb":dojo.stopEvent(v);b=d.split("#");r=b[0];g=b[1];k=b[2];H.timeline.redraw({at:k,id:g,refresh:true,max:true,zoom:true});break;case"vtp":b=d.split("#");var t=b[0],A=parseInt(dojo.attr(y,"votes"));g=b[1];k=b[2];API_SVC.likePhoto(g,t);dojo.addClass(y,"voted");dojo.removeAttr(y,"action");A++;if(dojo.hasClass(y,"toppervote")){y.innerHTML="Voted ("+A+")";}else{y.innerHTML=""+A;}dojo.attr(y,"votes",A);dojo.attr(y,"title","You have voted this photo");dojo.publish("logAjaxEvent",["social","photo-vote","contest-leaderboard"]);break;case"aa":L=j[1];g=j[2];API_SVC.fetchDetails({memoirIds:[g]}).addCallback(function(Q){if(Q.stat!="ok"){console.log("Error. Code:"+Q.code+" Desc:"+Q.desc);return;}dojo.query("#s_"+r+" .rel").forEach(function(R){H._renderRelations(R,L,Q.result);});});dojo.publish("logAjaxEvent",["social","show-all-relations",L]);break;case"sc":dojo.query("#s_"+r+" .activity_holder").addClass("editing").removeClass("hidden").forEach(function(Q){dojo.query("textarea",Q).forEach(function(R){if(R.value==M.STREAM_NEW_COMMENT||R.value==M.STREAM_NEW_DISCUSS||R.value==M.MINIMAL_STREAM_NEW_COMMENT){R.value="";}R.focus();if(!R.handlers){R.handlers=[];}R.handlers.push(dojo.connect(R,"onblur",H,"_blurHandlers"));});});dojo.publish("logAjaxEvent",["social","comment-start","feed"]);break;case"pc":L=j[1];g=j[2];dojo.query("#s_"+r+" .activity_holder .new_activity_comment").forEach(function(Q){if(!dojo.hasClass(Q,"waiting")){dojo.addClass(Q,"waiting");dojo.query("textarea",Q).forEach(function(R){var S=R.value;if(S&&S!=""){b={aid:r,mid:g,feedType:L};API_SVC.addStreamStoryComment(r,S,g,D).addCallback(H,"_onPostComment",b);}});}});dojo.publish("logAjaxEvent",["social","comment-post","feed"]);break;case"pcp":var t=j[0];r=j[1];g=j[2];L=j[3];if(E){var p="comment/stream-"+L,N=dojo.hitch(H,function(){H._postPhotoComment(t,r,g,L);});dojo.publish("quickAccount",[{src:p,deferFunc:N,deferMsg:"Your comment has been added to the photo."}]);return;}H._postPhotoComment(t,r,g,L);dojo.publish("logAjaxEvent",["social","comment-photo-post",L]);break;case"dcp":r=j[0];K=j[1];L=j[2];if(E){var p="discussion-comment/stream-"+L,N=dojo.hitch(H,function(){H._postDiscussionComment(r,K,L);});dojo.publish("quickAccount",[{src:p,deferFunc:N,deferMsg:"Your comment has been added to the discussion."}]);return;}H._postDiscussionComment(r,K,L);dojo.publish("logAjaxEvent",["social","comment-discussion-post",L]);break;case"dc":if(confirm("Are you sure you want to remove this comment?")){cid=j[1];g=j[2];dojo.fx.wipeOut({node:"ac_"+cid}).play();API_SVC.removeStreamStoryComment(r,cid,g);dojo.publish("logAjaxEvent",["social","comment-delete","feed"]);}break;case"dcd":if(confirm("Are you sure you want to remove this comment?")){K=j[0],x=j[1];dojo.fx.wipeOut({node:"ac_"+x}).play();API_SVC.removeDiscussionComment(K,x);dojo.publish("logAjaxEvent",["social","discussion-comment-delete","feed"]);}break;case"dd":if(confirm("Are you sure you want to remove this discussion?")){K=j[0];dojo.fx.wipeOut({node:"s_"+K}).play();API_SVC.removeDiscussion(K);dojo.publish("logAjaxEvent",["social","discussion-delete","feed"]);}break;case"ac":L=j[1];g=j[2];owner=j[3];b={aid:r,mid:g,owner:owner,feedType:L};API_SVC.getStreamStoryComments(r,g).addCallback(H,"_fetchComments",b);dojo.publish("logAjaxEvent",["social","show-all-comments",L]);break;case"apc":var t=j[0];r=j[1];g=j[2];L=j[3];owner=j[4];b={aid:r,mid:g,photoId:t,owner:owner,feedType:L};API_SVC.getPhotoComments(g,t).addCallback(H,"_fetchComments",b);dojo.publish("logAjaxEvent",["social","show-all-photo-comments",L]);break;case"adc":r=j[0],K=j[1];L=j[2];owner=j[3];b={aid:r,discussionId:K,owner:owner,feedType:L};API_SVC.getDiscussionComments(K).addCallback(H,"_fetchComments",b);dojo.publish("logAjaxEvent",["social","show-all-discussion-comments",L]);break;case"lp":var t=j[0];r=j[1];g=j[2];L=j[3];if(E){var p="like/stream-"+L,N=dojo.hitch(H,function(){API_SVC.likePhoto(g,t,true).addCallback(H,"_onPhotoLikeActivity",true,g,t,r,L);});dojo.publish("quickAccount",[{src:p,deferFunc:N,deferMsg:q?"Your vote has been added to the photo.":"Your like has been added to the photo."}]);return;}API_SVC.likePhoto(g,t,true).addCallback(H,"_onPhotoLikeActivity",true,g,t,r,L);dojo.publish("logAjaxEvent",["social","photo-like",L]);break;case"ulp":var t=j[0];r=j[1];g=j[2];L=j[3];API_SVC.unlikePhoto(g,t,true).addCallback(H,"_onPhotoLikeActivity",false,g,t,r,L);dojo.publish("logAjaxEvent",["social","photo-unlike",L]);break;case"like":L=j[1];g=j[2];API_SVC.likeStreamStory(r,g).addCallback(H,"_onLikeActivity",true,r,u,L);dojo.publish("logAjaxEvent",["social","story-like",L]);break;case"unlike":L=j[1];g=j[2];API_SVC.unlikeStreamStory(r,g).addCallback(H,"_onLikeActivity",false,r,u,L);dojo.publish("logAjaxEvent",["social","story-unlike",L]);break;case"al":L=j[1];g=j[2];API_SVC.getStreamStoryLikes(r,g).addCallback(function(Q){if(Q.stat!="ok"){console.log("Error. Code:"+Q.code+" Desc:"+Q.desc);return;}dojo.query("#s_"+r+" .activity_holder .likes").forEach(function(R){H._renderLikes(R,L,Q.result);});});dojo.publish("logAjaxEvent",["social","show-all-likes",L]);break;case"apl":var t=j[0];r=j[1];g=j[2];L=j[3];API_SVC.getPhotoLikes(g,t).addCallback(function(Q){if(Q.stat!="ok"){console.log("Error. Code:"+Q.code+" Desc:"+Q.desc);return;}dojo.query("#s_"+t+" .activity_holder .likes").forEach(function(R){H._renderLikes(R,L,Q.result);});});dojo.publish("logAjaxEvent",["social","show-all-likes",L]);break;case"join":m=j[1];API_SVC.requestContribution(m).addCallback(H,"_onJoin",r);dojo.publish("logAjaxEvent",["social","join-topic","feed"]);break;case"pfollow":C=j[1];API_SVC.followUser(C).addCallback(H,"_onFollow",r,"user");dojo.publish("logAjaxEvent",["social","follow-person","feed"]);break;case"ma":API_SVC.getStreamStories(l,G,1).addCallback(H,"_rebuildActivityPage",{scroll:true,feedType:J.ACTIVITY,createPagination:true});dojo.publish("logAjaxEvent",["social","show-more-activities",L]);break;}},_postPhotoComment:function(b,e,c,a){var d=this;dojo.query("#s_"+b+" .activity_holder .new_activity_comment").forEach(function(f){if(!dojo.hasClass(f,"waiting")){dojo.addClass(f,"waiting");dojo.query("textarea",f).forEach(function(g){var h=g.value;if(h&&h!=""){API_SVC.addPhotoComment(c,b,h).addCallback(d,"_onPostComment",{aid:e,mid:c,photoId:b,feedType:a});}});}});},_postDiscussionComment:function(d,a,b){var c=this;dojo.query("#s_"+a+" .activity_holder .new_activity_comment").forEach(function(e){if(!dojo.hasClass(e,"waiting")){dojo.addClass(e,"waiting");dojo.query("textarea",e).forEach(function(f){var g=f.value;if(g&&g!=""){API_SVC.addDiscussionComment(a,g).addCallback(c,"_onPostComment",{aid:d,discussionId:a,feedType:b});}});}});},_onJoin:function(e,a){var c=this,b,f;dojo.query("#s_"+e).forEach(function(d){dojo.query(".links span.join",d).forEach(function(g){if(a.stat!="ok"){if(a.code==99){g.innerHTML=M.ALEADY_PENDING;}else{if(a.code==301){g.innerHTML=M.ALEADY_MEMBER;}else{console.log("Error. Code:"+a.code+" Desc:"+a.desc);}}return;}g.innerHTML=M.ALEADY_PENDING;});});},_onFollow:function(f,b,a){var e=this,c,g;dojo.query("#s_"+f).forEach(function(d){dojo.query(".links span.follow",d).forEach(function(h){if(a.stat!="ok"){if(a.code==108){h.innerHTML=M.ALEADY_FOLLOW;}else{console.log("Error. Code:"+a.code+" Desc:"+a.desc);}return;}h.innerHTML=M.FOLLOW_ON;});});},_blurHandlers:function(b){var g=this,f=b.target,e=f.handlers,j,d;if(f.type=="textarea"){d=f.value!="";dojo.attr(f,"dirty",d);var a=dojo.attr(f,"action").split("_")[1];others=a.split(":"),aid=others[0];if(!d){if(g.selectedFeed=g.feedTypes.DISCUSSIONS){f.value=M.STREAM_NEW_DISCUSS;}else{f.value=M.STREAM_NEW_COMMENT;}dojo.query("#s_"+aid+" .activity_holder").removeClass("editing");}for(j in e){dojo.disconnect(e[j]);}f.handlers=[];}},_blurTextHandler:function(a){var f=this,e=a.target,d=e.handlers,g,b;if(e.type=="textarea"){b=e.value!="";dojo.attr(e,"dirty",b);if(!b){e.value=M.STREAM_START_DISCUSS;dojo.removeClass(e,"ed");}for(g in d){dojo.disconnect(d[g]);}e.handlers=[];}},_onPostComment:function(f,g){var c=this,o,k;if(g.stat!="ok"){console.log("Error. Code:"+g.code+" Desc:"+g.desc);return;}var q=g.result,h=q.comment,e=q.extra,b=f.aid,m=f.mid,a=f.photoId,p=f.discussionId,l=f.feedType,j=a?c._newCommentStyle:c._newComment;if(p){j=c._discussionCommentStyle;}dojo.query("#s_"+(a||p||b)).forEach(function(d){dojo.query(".activity_holder .comments",d).forEach(function(t){dojo.removeClass(t.parentNode,"hidden");dojo.removeClass(t.parentNode,"editing");var r=document.createElement("div");dojo.addClass(r,"activity_comment");r.innerHTML=j(b,c.loggedUser.person,h,l,true,(m||p));r.id="ac_"+h.id;dojo.query(".new_activity_comment",t).removeClass("waiting").forEach(function(u){t.insertBefore(r,u);});dojo.query("textarea",t).forEach(function(u){if(c.selectedFeed=c.feedTypes.DISCUSSIONS){u.value=M.STREAM_NEW_DISCUSS;}else{u.value=M.STREAM_NEW_COMMENT;}dojo.attr(t,"dirty",false);});});});},_getEntryJson:function(g){var f=['{"visibility": ',g.visibility,', "at": "',g.happened,'", "title": "',ut.escapeHTML(g.title),'"'],a=[],e,c,b=0;if(g.photos||g.videos){if(g.photos){for(c=0;c<g.photos.length&&b<4;c++,b++){a.push('"'+ut.getImageURL(g.photos[c].loc,100,100,g.id)+'"');}}if(g.videos){for(c=0;c<g.videos.length&&b<4;c++,b++){a.push('"'+g.videos[c].loc+'"');}}f.push(', "photos": [',a.join(","),"]");}f.push("}");return f.join("");},_fetchComments:function(r,b){var f=this;if(b.stat!="ok"){console.log("Error. Code:"+b.code+" Desc:"+b.desc);return;}var l=b.result,j=l.comments,v=j.length,e=l.people,g=r.aid,t=r.mid,k=r.photoId,m=r.discussionId,a=r.owner,u=r.feedType,o={},q=f.loggedUser.person.id,h,c,d;for(h=0;h<e.length;h++){o[e[h].id]=e[h];}dojo.query("#s_"+(k||m||g)).forEach(function(p){dojo.query(".comments",p).forEach(function(x){dojo.query(".new_activity_comment",x).forEach(function(C){d=C;});dojo.query(".comments .activity_comment",p).orphan();for(h=0;h!=v;h++){c=j[h];var w=o[c.creator_person];if(!w){continue;}var B=(c.creator_person==q),A=(a&&a==q),y=document.createElement("div"),z=k?f._newCommentStyle:f._newComment;if(m){z=f._discussionCommentStyle;}dojo.addClass(y,"activity_comment");y.innerHTML=z(g,o[c.creator_person],c,u,(B||A),(t||m));y.id="ac_"+c.id;x.insertBefore(y,d);}});});d=null;},_onLikeActivity:function(a,b,e,j,f){var c=this;if(f.stat!="ok"){console.log("Error. Code:"+f.code+" Desc:"+f.desc);return;}var g=f.result,k=c.obj.contest,d=e?e.split("_"):[],h=d[1];dojo.query("#s_"+b).forEach(function(o){var m=c.loggedUser.person,l=m.displayName;if(a){dojo.query(".activity_holder",o).removeClass("hidden").forEach(function(p){dojo.query(".likes",p).forEach(function(q){c._renderLikes(q,j,g);});});}else{dojo.query(".likes",o).forEach(function(p){c._renderLikes(p,j,g);});}dojo.query("a[action='"+e+"']",o).forEach(function(p){p.innerHTML=k?(a?M.P46:M.P47):(a?M.P48:M.P49);dojo.attr(p,"action",(a?"unlike_":"like_")+h);});});},_onPhotoLikeActivity:function(b,p,c,d,l,f){var e=this,g=f.result,a=e.loggedUser.person,m=a.displayName,o=c+":"+d+":"+p+":"+l,q="lp_"+o,k="ulp_"+o,j=e.obj.contest?(b?M.P46:M.P47):(b?M.P48:M.P49),h=b?k:q;if(f.stat!="ok"){console.log("Error. Code:"+f.code+" Desc:"+f.desc);return;}dojo.query("#s_"+c).forEach(function(r){if(b){dojo.query(".activity_holder",r).removeClass("hidden").forEach(function(t){dojo.query(".likes",t).forEach(function(u){e._renderLikes(u,l,g);});});}else{dojo.query(".likes",r).forEach(function(t){e._renderLikes(t,l,g);});}dojo.query(".lp *",r).attr("action",h);dojo.query(".lp .lbut_like",r).forEach(function(t){if(b){dojo.addClass(t,"active");}else{dojo.removeClass(t,"active");}});});},_renderLikes:function(e,a,b){var d=[],c,f,g=b.length;for(c=0;c<g;c++){f=b[c];d.push("<a class='activity_like_person' href='/user/",f.displayName,"?src=",a,"'>",f.name.split(" ")[0],"</a>");if(c==g-2){d.push(" and ");}else{if(c<g-2){d.push(", ");}}}d.push(g>1?" like this":" likes this");e.innerHTML=d.join("");if(g==0){dojo.addClass(e,"hidden");dojo.query(".comments",e.parentNode).addClass("no_likes");}else{dojo.removeClass(e,"hidden");dojo.query(".comments",e.parentNode).removeClass("no_likes");}},_renderRelations:function(c,l,e){var o=e[0],h=[],q=o.people,a=o.topics,f=o.place,p=o.tags,m=(q?q.length:0)+(a?a.length:0)+(p?p.length:0)+(f?1:0),j=0,g,b,k;j=this._showRelations(q,"user",m,j,h,l);j=this._showRelations(a,"topic",m,j,h,l);if(f){j=this._showRelations([f],"place",m,j,h,l);}j=this._showRelations(p,"tag",m,j,h,l);c.innerHTML="Connected to: "+h.join("");},_showRelations:function(b,e,f,g,c,a){if(b){var j=b.length,h;for(i=0;i<j;i++){h=b[i];c.push("<a class='rel_link' href='/",e,"/",h.displayName,"?src=",a,"'>",h.name,"</a>");if(g==f-2){c.push(" and ");}else{if(g<f-2){c.push(", ");}}g++;}}return g;},_newComment:function(f,b,g,a,e){var d=["<pre>",g.comment,"</pre> - "];if(b){d.push('<a href="/user/',b.displayName,"?src=",a,'">',b.name,"</a>");}else{d.push('<a href="javscript:void(0)">Deleted User</a>');}d.push('<span class="date">',Date.parseDate(g.created_at,DP[1],true).pretty(),"</span>");if(e){d.push('<a title="Delete Comment" class="delete" action="dc_',f,":",g.id,'"></a>');}return d.join("");},_newCommentStyle:function(g,d,h,a,f,b){var e=["<div class='fcc'><a href='/user/",d.displayName,"?src=",a,"'><img class='cpic' alt='",d.name,"' src='",ut.getProfileURL({id:d.id,pic:d.pic},"medium",PERSON_TYPE),"'/></a></div><div class='scc'><pre>",h.comment,"</pre><div>"];if(d){e.push('<a href="/user/',d.displayName,"?src=",a,'">',d.name,"</a>");}else{e.push('<a href="javscript:void(0)">Deleted User</a>');}e.push('<span class="date">',Date.parseDate(h.created_at,DP[1],true).pretty(),"</span>");if(f){e.push('<a title="Delete Comment" class="delete" action="dc_',g,":",h.id,":",b,'"></a>');}e.push("</div></div><div class='clearall'></div>");return e.join("");},_discussionCommentStyle:function(g,b,h,a,e,f){var d=["<div class='fcc'><a href='/user/",b.displayName,"?src=",a,"'><img class='cpic' alt='",b.name,"' src='",ut.getProfileURL({id:b.id,pic:b.pic},"medium",PERSON_TYPE),"'/></a></div><div class='scc'><pre>",h.comment,"</pre><div>"];if(b){d.push('<a href="/user/',b.displayName,"?src=",a,'">',b.name,"</a>");}else{d.push('<a href="javscript:void(0)">Deleted User</a>');}d.push('<span class="date">',Date.parseDate(h.created_at,DP[1],true).pretty(),"</span>");if(e){d.push('<a title="Delete Comment" class="delete" action="dcd_',f,":",h.id,'"></a>');}d.push("</div></div><div class='clearall'></div>");return d.join("");}});dojo.declare("FeedbackControl",PageControl,{initialize:function(){var a=this;dojo.query(".feedback").forEach(function(b){a.cont=b;a.logged=LB.getUser().logged;dojo.connect(b,"onclick",a,"_clickHandlers");if(!a.logged){dojo.query(".feedback_email_cont",b).removeClass("hidden");}});},_clickHandlers:function(g){var f=this,a=f.cont,e=g.target,h=dojo.attr(e,"action"),d,b,c;switch(h){case"fmt":dojo.removeClass(a,"feedback_small");dojo.query("#feedback_success",a).addClass("hidden");dojo.query("#feedback_message",a).forEach(function(j){c=dojo.attr(j,"dirty");if(!c&&!dojo.hasClass(j,"editing")){j.value="";}j.focus();if(!j.handlers){j.handlers=[];}j.handlers.push(dojo.connect(j,"onblur",f,"_blurHandlers"));}).addClass("editing");break;case"fs":dojo.query("#feedback_message",a).forEach(function(j){d=j.value.trim();});dojo.query("#feedback_email",a).forEach(function(j){b=j.value.trim();});if(!d||d==""){dojo.query("#feedback_message_error").removeClass("hidden");}else{if(!f.logged&&(!b||!ut.isValidEmail(b))){dojo.query("#feedback_email_error").removeClass("hidden");}else{API_SVC.postFeedback(d,window.location.href,b).addCallback(f,"_feedbackAdded");dojo.addClass(e,"hidden");dojo.query(".spinner",a).removeClass("hidden");}}break;case"fc":dojo.removeClass(a,"feedback_posted");dojo.addClass(a,"feedback_small");break;}},_blurHandlers:function(b){var g=this,f=b.target,e=f.handlers,a=g.cont,j,d;if(f.type=="textarea"){d=f.value!="";dojo.attr(f,"dirty",d);if(!d){f.value="Send us suggestions, bug reports or just say Hi!";dojo.query("#feedback_message",a).removeClass("editing");dojo.addClass(a,"feedback_small");}for(j in e){dojo.disconnect(e[j]);}f.handlers=[];}},_feedbackAdded:function(b){if(b.stat!="ok"){console.log(b);return;}var c=this,a=c.cont;dojo.query("input[action='fs']",a).removeClass("hidden");dojo.query(".spinner",a).addClass("hidden");c._reset();dojo.addClass(a,"feedback_posted");},_reset:function(){var b=this,a=b.cont;dojo.query("#feedback_message",a).forEach(function(e){var d=e.handlers,f;e.value="Send us suggestions, bug reports or just say Hi!";dojo.removeClass(e,"editing");dojo.attr(e,"dirty",false);for(f in d){dojo.disconnect(d[f]);}e.handlers=[];});dojo.query("#feedback_email",a).forEach(function(c){c.value="";});dojo.query(".feedback_error",a).addClass("hidden");}});dojo.declare("HomePageControl",null,{initialize:function(b){var a=this;a._loadPopularToday();},_loadPopularToday:function(){var b=this,j=dojo.byId("module_similarphotos"),a=dojo.attr(j,"photoId"),g=dojo.attr(j,"memoirId"),k=dojo.attr(j,"personId"),h=cm.get("memoir.cache"),e={location:dojo.attr("module_locationphotos","location")},d=0,f=0,g,c;for(g in h){d++;}c=Math.floor(Math.random()*d+1);for(g in h){if(f==c){e.memoirId=g;break;}f++;}API_SVC.popularToday(e).addCallback(function(o){var m=b._populateContainers,l=o.result;m("module_populartoday",l.POPULAR_PHOTOS);m("module_viewingnow",l.LATEST_PHOTOS);m("module_locationphotos",l.LOCATION_PHOTOS);m("module_similarphotos",l.SIMILAR_PHOTOS);m("module_sameday",l.ANOTHERYEAR_PHOTOS);});},_populateContainers:function(a,f){var c=[],d=f.length,e,b;for(e=0;e<d;e++){b=f[e];if(!b){continue;}c.push("<div class='ht'>","<div class='clipout'>","<div class='thumbnail_image clipin'>","<a href='/",b.u,"' class='thumbnail_link' title='",b.c,"'>","<img src='",b.t,"' alt='",b.c,"' class='homepage_thumbimg'/>","</a>","</div>","</div>","<a href='/",b.u,"' class='thumbnail_link' title='",b.c,"'>","<span class='thumbnail_title'>",b.c,"</span>","</a>","</div>");}dojo.byId(a).innerHTML=c.join("");}});dojo.declare("PostControl",PageControl,{initialize:function(b){var a=this;dojo.query(".post").forEach(function(f){var j=window.lb_data,h=b.obj,k=LB.getUser(),c=j.blob;j.recommend={};a.pending=0;a.cycleMode=false;a.timeline=h.timeline;a.obj=h;a.data=j;a.blobId=c.id,a.timelineId=h.id;a.timelineType=h.type;a.loggedUser=k;a.loggedPerson=k.person.id;a.anon=(a.loggedPerson==-1),a.spinner="http://cdn1.lifeblob.com/lifeblob/img/theme-gray/spinners/spinner-16-blue.vb00628.gif",a.handlers=[],a.isFbLogged=LB.getFbUser();a.photoMode=j.photoId;a.faceTag={width:75,height:75,maxWidth:512,maxHeight:384,minWidth:50,minHeight:50,suggestWidth:182};a.current=j.current;a.currentPhoto=j.photoId;var l=j.photos;var e=j.blob.photo;for(var g in l){var d=l[g];if(e==d.loc){a.AlbumCover=d.loc;break;}}a.loadedImages={};a.resetMap={};a._init();dojo.connect(f,"onclick",a,"_clickHandlers");dojo.subscribe("keypressed",a,"_keyHandlers");dojo.subscribe("suggest.rebuild",a,"_loadAddGroups");dojo.subscribe("hashChanged",function(m){m=parseInt(m);if(m&&m!=a.currentPhoto){a._showPhotoById(m);}});});},_init:function(){var a=this,b=dojo.hash().split(":"),c=parseInt(b[0]);if(a.photoMode){a._connectMouse();a._tagInit();a._setBlinder();a._getAttribution();a._handleCommentHelp();API_SVC.getRecommendations(a.blobId,a.currentPhoto,a.timelineId,a.timelineType).addCallback(a,"_onRecommendations");}else{a._loadAddGroups();}if(b.length==1){if(c&&c!=a.currentPhoto){a._showPhotoById(c);a._aT("open","hash");}}},_keyHandlers:function(l){var b=this,c=l.target,m=l.charOrCode,f=dojo.keys,h=b.resetMap,k=b.photoMode,d=false;var e=dojo.attr(c,"type"),j=c.nodeName,a=c.id,g=false;if(j&&j.toLowerCase()=="textarea"){g=true;}else{if(e=="textarea"||e=="text"){g=true;}}switch(m){case f.LEFT_ARROW:if(!g){b._showPhoto(true);d=true;b._aT("move","left-keyboard");}break;case f.RIGHT_ARROW:if(!g){b._showPhoto(false);d=true;b._aT("move","right-keyboard");}break;case f.ENTER:if(g&&a=="captiontext"){b._saveCaption("keyboard");d=true;}break;case f.ESCAPE:b._reset();b._aT("reset","keyboard-esc");break;case"l":if(!g&&k){b._like("keyboard");break;}break;default:return;}if(d){dojo.stopEvent(l);}},_clickHandlers:function(m){var c=this,d=m.target,l=dojo.attr(d,"action");if(dojo.attr(d,"perculate")){while(d&&!l&&!dojo.hasClass(d,"post")){d=d.parentNode;l=dojo.attr(d,"action");}}var h=c.loggedUser.person,b=(h.id==-1),g=(l?l.split("_"):[]),f=g[0],j=g[1],k=c.timelineId,a=c.timelineType,e=true;if(j){others=j.split(":");}console.log("action["+f+"]  other["+j+"]");switch(f){case"photo":c._showPhotoByIndex(parseInt(others[0]));break;case"grid":c._showGrid();break;case"prev":c._showPhoto(true);c._aT("move","left-mouse");break;case"next":c._showPhoto(false);c._aT("move","right-mouse");break;case"like":c._like("mouse");break;case"captionEdit":c._editCaption();break;case"captionCancel":c._cancelCaption();break;case"captionSave":c._saveCaption("mouse");break;case"comment":c._comment();break;case"commentDelete":c._commentDelete(parseInt(others[0]),parseInt(others[1]));break;case"addTags":c._addTags();break;case"tagCancel":c._cancelTag();c._aT("tags","cancel");break;case"deleteTag":c._deleteTag(parseInt(others[0]));break;case"tagSave":c._saveTags();break;case"editPlace":c._editPlace();break;case"setPlace":c._setPlace();break;case"resetPlace":c._resetPlace();c._aT("place","cancel");break;case"addGroups":c._addGroups();break;case"groupCancel":c._cancelGroups();c._aT("groups","cancel");break;case"groupSave":c._groupSave();break;case"deleteGroup":c._deleteGroup(parseInt(others[0]));break;case"addPeople":c._addPeople();break;case"peopleCancel":c._cancelPeople();c._aT("people","cancel");break;case"peopleSave":c._peopleSave();break;case"deletePerson":c._deletePerson(parseInt(others[0]));break;case"startTag":c._startTag();break;case"stopTag":c._stopTag();break;case"deleteFace":c._deleteFace(parseInt(others[0]));break;case"toolsDownload":ut.rd("/photo/"+c.blobId+"/allSizes/"+c.currentPhoto);c._aT("tools","download");break;case"toolsCover":c._cover();break;case"rotate":c._rotate(parseInt(dojo.attr(d,"angle")),d.id);break;case"deletePost":c._deletePost();break;case"contestAdd":c._contestAdd();break;case"grpMultiChoose":c._grpMultiChoose();return;case"grpCancel":dojo.removeClass("group_add","grp_up");c._loadAddGroups();c._aT("groups","multi-cancel");return;case"grpChoose":c._grpChoose(parseInt(dojo.attr(d,"id").substring(3)));return;case"grpApply":c._groupMultiSave();c._aT("groups","multi-save");return;case"photoPrints":dojo.attr(d,"href",["/store/photoprints/create?memoirId=",c.blobId,"&photoId=",c.currentPhoto,"&src=photo"].join(""));return;case"clickMore":c._clickMore(others[0]);return;default:e=false;}if(e){dojo.stopEvent(m);}},_showPhotoById:function(a){var d=this,e=d.data,f=e.photos,c=f.length,b;for(b=0;b<c;b++){if(f[b].id==a){return d._showPhotoByIndex(b);}}console.error("Could not find photo photoId[%d]",a);},_getSharePanel:function(b){var e=this;var a=window.location.href.split("?")[0].split("#")[0];var f="";if(window.lb_data.publicVisibility==true){f="public=true";}else{f="private=true";}if(b!=-1){a+="?photoId="+b+"&"+f;}else{a+="?"+f;}var d=ut.encode(a);var c=[];c.push("            <div class='share_item' id='facebook_share'>","                <iframe width='80' src='http://www.facebook.com/plugins/like.php?href="+d+"&amp;layout=button_count&amp;show_faces=false&amp;width=0&amp;action=like&amp;colorscheme=light&amp;height=21' scrolling='no' frameborder='0' style='border:none; overflow:hidden; height:21px;' allowTransparency='true'></iframe>","            </div>","            <div class='share_item' id='buzz_share'>   ","                <a href='http://www.google.com/buzz/post' class='google-buzz-post rounded3'>","                    <span class='google-buzz' id='google-buzz-count'>","                        ","                    </span>","                </a>","            </div>","           <div class='share_item' id='tweet_share'>","                <iframe width='80' scrolling='no' height='20' frameborder='0' ","                    src='http://api.tweetmeme.com/button.js?url="+d+"&amp;style=compact'>","                </iframe>   ","            </div>","            <div class='clearall'></div>");return c;},_showPhotoByIndex:function(h){var f=this,v=f.data,a=f.blobId,t=v.photos,w=t.length,b=t[h],q=b.caption,j=b.id,r=f.loadedImages[h],l=v.editable,p=ut.getImageURL(b.loc,512,0,a),e=dojo.byId,u=f._setInnerHtml,c,m,d,g,o;if(!f.photoMode){f._createPhotoView();f._connectMouse();f._tagInit();f._showAttribution();}f._reset();m=e("post-img");f.current=h;f.currentPhoto=j;dojo.hash(""+j);var k=f._getSharePanel(j);u("sharePanel_content",k.join(""));var b=f.data.photos[h];f.buzzInit(ut.getImageURL(b.loc,75,0,f.data.blob.id),b.id);u("post-caption",(ut.isEmpty(q)?"Untitled":q));u("photo-pos",f._getPhotoNav(h,w));if(r){dojo.query(".img",m).attr("src",p).removeClass("pimg");dojo.style("post-blinder",{width:r.w+"px",height:r.h+"px"});if(f.resizer){f.resizer.setBounds({w:r.w,h:r.h});}}else{dojo.query(".img",m).addClass("pimg").attr("src",ut.getImageURL(b.loc,75,0,a));}if(!r){f._preloadImage(p,h,w,a);}o=f._getPhotoFaces(b);u("face-tags",o.html);u("face-info","");u("post-people",f._getPhotoPeople(b));u("post-tags",f._getPhotoTags(b,l));g=f._getPhotoLikes(b);d=e("photo-like-action");u("photo-likers",g.b);d.innerHTML=g.a;if(g.total&&g.liked){dojo.removeClass(d,"visible");}else{dojo.addClass(d,"visible");}u("post-comments",f._getPhotoComments(b));c=v.recommend[j];if(!c){API_SVC.getRecommendations(a,j,f.timelineId,f.timelineType).addCallback(f,"_onRecommendations");}else{f._showRecos(c);}u("meta",f._getMeta(b));document.title=dojo.string.substitute(M.P91,[ut.isEmpty(q)?v.blob.title:q,v.creator.name]);dojo.publish("logEvent",["/lb/photo/view-page"]);},_onRecommendations:function(b){if(b.stat!="ok"){return;}var d=this,e=d.data,a=b.result,f,c;for(c in a){f=a[c];e.recommend[c]=f;if(d.currentPhoto==c){d._showRecos(f);}}},_addRecos:function(e,f,b){var c,d,a;for(c=0,d=f.length;c<d;c++){a=f[c];if(!b[a.id]){b[a.id]=true;e.push(a);}}},_showRecos:function(h){var f=this,e=f._setInnerHtml,c=h.recos,d=f._getRecommendPanel(c.photoclicks||[],M.P92,"photoclick"),g=h.related,a={},b;window.recos=c;if(!g){g=[];f._addRecos(g,c.people,a);f._addRecos(g,c.tag,a);f._addRecos(g,c.place,a);h.related=g;}b=f._getRecommendPanel(g||[],M.P94,"relatedphotos");if(b!=""){e("relatedphotos",b);}if(d!=""){e("photoclick",d);}e("views","Views: "+h.views);},_getRecommendPanel:function(g,p,d){var e=this,o=g.length,a=e.data.blob,m=e.blobId,f=e.currentPhoto,j=[],l=false,k,c,h,b;if(!o){return"";}ut.fisherYates(g);j.push("<div class='h'><div class='t'>",p,"</div><div class='fr'>");if(o>6){j.push("<a action='clickMore_",d,"'>",M.P93,"</a>");}j.push("</div><div class='clearall'></div></div><div class='b'><div class='row'>");for(k=0;k!=o;k++){c=g[k];h=c.caption||c.title;if(k!=0&&k%3==0){j.push("<div class='clearall'></div></div>");if(k==6){l=true;j.push("<div class='more'>");}j.push("<div class='row'>");}b=["/blob/",c.link,"/show/",c.mid,"?photoId=",c.id,"&fromPostId=",m,"&fromPhotoId=",f,"&rclick=",(k>=6?2:1)].join("");j.push("<div class='clipout'><div class='clipin'><a class='imga' title='",h,"' href='",b);j.push("'><img class='img' src='",ut.getImageURL(c.loc,75,0,c.mid),"' alt='",h);if(c.by){j.push(" by ",c.by);}j.push("'/></a></div></div>");}j.push("<div class='clearall'></div></div>");if(l){j.push("</div>");}j.push("</div>");return j.join("");},_clickMore:function(b){var a=this;dojo.query(".fr",b).orphan();dojo.query(".more",b).removeClass("more");a._aT("recos",b,"more");},_connectMouse:function(){console.log("Connecting mouse over/out");var e=this,d=dojo.byId("faces"),c=dojo.byId("post-people"),b=dojo.byId("post-blinder"),a=e.handlers;a.push(dojo.connect(d,"onmouseover",e,"_onFaceOver"));a.push(dojo.connect(d,"onmouseout",e,"_onFaceOut"));a.push(dojo.connect(c,"onmouseover",e,"_onFaceLinkOver"));a.push(dojo.connect(c,"onmouseout",e,"_onFaceLinkOut"));a.push(dojo.connect(b,"ondblclick",e,"_startTag"));a.push(dojo.connect(b,"onclick",e,"_startTag"));},_disconnectMouse:function(){console.log("Disconnecting mouse over/out");var a=this.handlers,b;for(b in a){dojo.disconnect(a[b]);}},_setInnerHtml:function(b,a){dojo.byId(b).innerHTML=a;},_onFaceLinkOver:function(d){var c=this,b=d.target,a,e;if(dojo.hasClass(b,"empty")){return;}while(b&&!dojo.hasClass(b,"li")){b=b.parentNode;}if(null==b){return;}a=parseInt(dojo.attr(b,"index"));if(a>=0&&c.currentFaceIndex!=a){if(c.currentFaceIndex>=0){e=dojo.byId("pf-"+c.currentFaceIndex);if(null!=e){dojo.addClass(e,"face_dim");}}c.currentFaceIndex=a;c._faceOver(a);dojo.addClass("faces","faces_hover");e=dojo.byId("pf-"+a);if(null!=e){dojo.removeClass(e,"face_dim");}}clearTimeout(c.timeout1);dojo.stopEvent(d);},_onFaceLinkOut:function(d){var c=this,b=d.target,a;if(dojo.hasClass(b,"empty")){return;}while(b&&!dojo.hasClass(b,"li")){b=b.parentNode;}if(null==b){return;}a=parseInt(dojo.attr(b,"index"));c.timeout1=setTimeout(dojo.hitch(c,"_onDelayedFaceOut",a,true),500);dojo.stopEvent(d);},_onFaceOver:function(d){var c=this,b=d.target,a;while(b){a=b.id;if(a=="face-info"){break;}else{if(dojo.hasClass(b,"face")){a=parseInt(a.substring(3));if(a>=0&&c.currentFaceIndex!=a){c.currentFaceIndex=a;c._faceOver(a);}break;}}b=b.parentNode;}clearTimeout(c.timeout);dojo.stopEvent(d);},_onFaceOut:function(d){var c=this,b=d.target,a;while(b){a=b.id;if(a=="face-info"||dojo.hasClass(b,"face")){a=parseInt(a.substring(3));c.timeout=setTimeout(dojo.hitch(c,"_onDelayedFaceOut",a),500);break;}b=b.parentNode;}dojo.stopEvent(d);},_onDelayedFaceOut:function(b,c){var e=this,a=dojo.byId,d=a("face-info");if(d){dojo.style(d,"display","none");}e.currentFaceIndex=-1;if(c){d=a("faces");if(d!=null){dojo.removeClass(d,"faces_hover");}d=a("pf-"+b);if(d!=null){dojo.addClass(d,"face_dim");}}},_faceOver:function(g){var b=this,f=b.data,a=f.photos[b.current],d=a.faceTags||[],j=d[g],l=f.people,h=dojo.byId("face-info"),c,k,e;if(j&&j.person){e=l[j.person];c=j.x+1;k=j.y+j.h+5;h.innerHTML=["<div class='inf'><div class='fl'><img class='img' src='",ut.getProfileURL(e,"small",PERSON_TYPE),"'></div><div class='r'><a class='nm' href='/user/",e.displayName,"' title='",dojo.string.substitute(M.P1,[e.name]),"'>",e.name,"</a><div class='dm'>",e.displayName,"</div></div><div class='clearall'></div></div>"].join("");dojo.style(h,{display:"block",left:c+"px",top:k+"px"});}},_getFaceTagPosition:function(){var c=this,r={},b=c.faceTag,e=dojo.byId("post-blinder"),q=dojo.byId("face-picker"),j=dojo.marginBox(e),m=j.w||b.maxWidth,o=j.h||b.maxHeight,a=b.width,p=b.height,h=b.suggestWidth,d=m/2-a/2,l=o/2-p/2,f,g,k;r.box={l:d,t:l};if(q==null){k=l+p;g=d+a/2-h/2;}else{f=dojo.marginBox(q);k=f.t+f.h;g=(f.l+(f.w/2))-h/2;}if(g<0){g=0;}else{if(g>=(512-h)){g=512-h;}}r.suggest={l:g,t:k};r.max={w:m,h:o};return r;},_tagInit:function(){var e=this,g=e._getFaceTagPosition(),d=e.faceTag,a,c,f,h,b,j;h=dojo.create("div",{id:"face-picker","class":"box hidden",style:{left:g.box.l+"px",top:g.box.t+"px"}},"post-blinder","only");b=new dojo.dnd.move.boxConstrainedMoveable(h,{box:{l:0,t:0,w:g.max.w,h:g.max.h},within:true});j=new Resize("face-picker",{minSize:{w:d.minWidth,h:d.minHeight},bounds:{w:g.max.w,h:g.max.h}});e.resizer=j;dojo.connect(b,"onMoveStart",dojo.hitch(e,"_tagResizeStart","mover"));dojo.connect(b,"onMoveStop",dojo.hitch(e,"_tagResizeStop","mover"));dojo.connect(j,"onResizeStart",dojo.hitch(e,"_tagResizeStart","resizer"));dojo.connect(j,"onResizeStop",dojo.hitch(e,"_tagResizeStop","resizer"));c=dojo.create("div",{id:"face-suggest","class":"face-suggest hidden",style:{left:g.suggest.l+"px",top:g.suggest.t+"px"}},"post-blinder");a=dojo.create("div",{"class":"suggest"},c);f=new Suggest(a,"user_","user",{helpText:M.P87,newValueText:"email",callbacks:{onselect:dojo.hitch(e,"_onFaceTag",true),onenter:dojo.hitch(e,"_onFaceTag",true)}});f.initialize();e.faceSuggest=f;},_onFaceTag:function(){var d=this,B=d.data,o=d.current,b=B.photos[o],u=d.faceTag,x=b.faceTags,t=dojo.byId("face-suggest"),w=dojo.byId("face-picker"),A=cm.get("addressbook.friends.idmap"),g=cm.get("addressbook.friends.fidmap"),p=d.loggedUser.person,v=(p.id==-1),c="",q,a,k,h,f,j,y,e,C,m,l,z;dojo.query("input[name='user_id']",t).forEach(function(D){q=parseInt(D.value);});if(!q){dojo.query("input[name='user_fbid']",t).forEach(function(D){a=parseInt(D.value);});if(!a){k=Suggest.getEmails("input[name='user_email']",t);if(!k){d._aT("face-tag","invalid-email");alert("Enter a valid email address");d.faceSuggest.clear();return;}}}if(q||a||k.length){h=dojo.marginBox(w);f=dojo.marginBox("post-blinder");j=f.w||u.maxWidth;y=f.h||u.maxHeight;m=(h.l*100)/j;l=(h.h*100)/y;z={memoirId:B.blob.id,photoId:b.id,x:parseInt(h.l),y:parseInt(h.t),w:parseInt(h.w),h:parseInt(h.h),lp:m,tp:l};if(q||a){if(x){C=x.length;for(e=0;e<C;e++){if(q&&x[e].person==q){d._aT("face-tag","dup-person");alert(M.P86);d.faceSuggest.clear();return;}}}if(q){c=((q==p.id)?p.name:A[q].name);z.personId=q;}else{c=g[a]?g[a].name:"";z.fbId=a;}}else{z.personEmail=k[0];}if(v){var r=dojo.hitch(d,function(){API_SVC.tagPhoto(z);});dojo.publish("quickAccount",[{src:"facetag/standalone",deferFunc:r,deferMsg:M.P89}]);}else{API_SVC.tagPhoto(z).addCallback(d,"_onSaveFace",c,o);d._aT("face-tag","add-"+(q?"lifeblob":(a?"facebook":"email")));}}d._stopTag(true);},_onSaveFace:function(k,d,e){var b=this,g=b.data,a=g.photos[d],l=e.result,c=a.faceTags,f=l.person,j;if(l.tag.id!=0){if(!c){c=[];a.faceTags=c;}c.push(l.tag);if(!g.people[f.id]){g.people[f.id]=f;g.peopleStats[f.id]=f.stats;}j=c.length-1;var h=dojo.create("li",{"class":"li",id:"pp_"+f.id,index:j,style:{height:"auto",display:"none"}},"post-people","first");h.innerHTML=b._getPhotoFaceHtml(f,f.stats,j);dojo.fx.wipeIn({node:h}).play();dojo.query("#post-people .empty").orphan();dojo.byId("face-tags").innerHTML+=b._getFaceBoxHtml(l.tag,j);}else{dojo.publish("tt",[{message:dojo.string.substitute(M.MAX_PHOTO_TAG_PENDING,[k])}]);}},_wipeOut:function(b,a){dojo.fx.wipeOut({node:b,onEnd:function(){if(!a){dojo.query(b).orphan();}}}).play();},_deleteFace:function(j){var b=this,e=b.data,a=e.photos[b.current],c=a.faceTags,d=c[j],h=c.length,k,g,f;b._wipeOut("pp_"+d.person);dojo.style("face-info","display","none");API_SVC.removePhotoTag(b.blobId,a.id,d.id);for(g=0;g<h;g++){if(g==j){c.splice(g,1);break;}}h=c.length;dojo.query(".li","post-people").forEach(function(l){f=parseInt(l.id.substring(3));for(g=0;g<h;g++){if(c[g].person==f){dojo.attr(l,"index",g);dojo.query(".delete1",l).attr("action","deleteFace_"+g);break;}}});if(!h){b._setInnerHtml("post-people",b._getEmpty(M.P88,"startTag"));}k=b._getPhotoFaces(a);b._setInnerHtml("face-tags",k.html);b._aT("face-tag","delete");},_startTag:function(a){var d=this,h=a?a.target:null,f=dojo.hasClass;if(d._isSizing||(a&&(f(h,"sugg_cont")||f(h,"suggest_text_box")))){return;}var c=d.faceTag,p=dojo.byId("face-picker"),j=dojo.byId("face-suggest"),m=c.maxWidth,l=c.maxHeight,b=c.width,o=c.height,e=m/2-b/2,k=l/2-o/2,g;if(a){g=dojo.position("post-blinder");e=a.clientX-b/2-g.x;k=a.clientY-o/2-g.y;if(e<0){e=0;}else{if(e+b>m){e=m-b;}}if(k<0){k=0;}else{if(k+o>l){k=l-o;}}}dojo.style(p,{width:b+"px",height:o+"px",left:e+"px",top:k+"px"});dojo.removeClass(p,"hidden");dojo.removeClass(j,"hidden");g=d._getFaceTagPosition();dojo.style(j,{left:g.suggest.l+"px",top:g.suggest.t+"px"});dojo.addClass("faces","fvh");d.resetMap.face=true;d.faceSuggest.clear(true);d._aT("face-tag","start");},_stopTag:function(a){var b=this;dojo.removeClass("faces","fvh");dojo.addClass("face-suggest","hidden");dojo.addClass("face-picker","hidden");delete b.resetMap.face;if(!a){b._aT("face-tag","stop");}},_tagResizeStart:function(b){var a=this;clearTimeout(a.sizingTimeout);a._isSizing=true;dojo.addClass("face-suggest","hidden");a._aT("face-tag","update-start",b);},_tagResizeStop:function(d){var c=this,b=dojo.byId("face-suggest"),a=c._getFaceTagPosition();dojo.style(b,{left:a.suggest.l+"px",top:a.suggest.t+"px"});dojo.removeClass(b,"hidden");c.sizingTimeout=setTimeout(dojo.hitch(c,"_stopSizing"),1000);c._aT("face-tag","update-stop",d);},_stopSizing:function(){this._isSizing=false;},_showGrid:function(){var b=this,c=b.data;if(b.photoMode){b._createGridView();b._disconnectMouse();b._loadAddGroups();var a=b._getSharePanel(-1);b._setInnerHtml("sharePanel_content",a.join(""));b.buzzInit(ut.getImageURL(b.AlbumCover,75,0,b.data.blob.id),-1);document.title=dojo.string.substitute(M.P91,[c.blob.title,c.creator.name]);}dojo.publish("logEvent",["/lb/blob/view-page"]);},_cover:function(){var b=this,a;API_SVC.setCover(b.blobId,b.currentPhoto);a=dojo.place("<img class='va-t' src='http://cdn2.lifeblob.com/lifeblob/img/common/success-16.v92e1e1.png'/>","album-cover");dojo.style(a,"opacity","0");dojo.fadeIn({node:a,onEnd:function(){dojo.query(a).orphan();}}).play();b._aT("tools","cover");},_contestAdd:function(){var b=this,d=b.data,c=d.activeContest,a;if(b.adding){return;}dojo.place(["<div class='wt'><img class='va-t sp' src='",b.spinner,"'/>Posting to contest ...</div>"].join(""),"contest_post","only");API_SVC.updateTopics({memoirId:b.blobId,topicsToAdd:[c.id],topicsToDelete:[]}).addCallback(function(e){if(e.stat!="ok"){return;}b._onGroupAdd(e);a=["<a class='nav-sub-a' href='/topic?topicId=",c.id,"'><span class='cd'>Entry posted successfully!","<img src='http://cdn2.lifeblob.com/lifeblob/img/common/success-16.v92e1e1.png' class='va-m sp'></span>Click to see all contest entries"].join("");dojo.place(a,"contest_post","only");d.onContest=true;delete b.adding;});b._aT("contest","add");},_deletePost:function(){if(!confirm(M.DELETE_OWN_EVENT_QUESTION)){return;}var b=this,c=b.data,a;API_SVC.deleteMemoir(b.blobId).addCallback(function(d){if(c.onUser){a="/user?personId="+c.blob.created.by;}else{a="/topic?topicId="+c.blob.created.on_topic;}ut.rd(a);});b._aT("post","delete");},_rotate:function(g,e){var d=this,c=d.blobId,f=dojo.query,b=d.data.photos[d.current],a;if(d.rotating){return;}a=dojo.place(["<img class='va-t sp' src='",d.spinner,"'/>"].join(""),e);d.rotating=true;API_SVC.rotate(c,b.id,g).addCallback(function(j){if(j.stat!="ok"){return;}var l=j.result,h=ut.getImageURL(b.loc,512,0,c),k=ut.getImageURL(l,512,0,c);b.loc=l;f("img[src='"+h+"']").attr("src",k);delete d.loadedImages[b.id];f(a).orphan();delete d.rotating;});d._aT("tools","rotate");},_editCaption:function(){var c=this,a=c.data.photos[c.current].caption,b=[];c.resetMap.heading=true;b.push("<div class='fl'><input id='captiontext' type='text' class='input' value='",a,"'/></div>");b.push("<div class='h1a'><input type='button' class='lbut small blue button' action='captionSave' value='Save'/> <a action='captionCancel' class='link'>Cancel</a></div><div class='h1b'><a action='grid'>« Back to Album</a></div>");c._setInnerHtml("post-heading",b.join(""));c._aT("caption","edit");},_setCaption:function(a){var b=this;b._resetHeading();delete b.resetMap.heading;b._setInnerHtml("post-caption",ut.isEmpty(a)?"Untitled":a);},_cancelCaption:function(){var a=this;a._setCaption(a.data.photos[a.current].caption);a._aT("caption","cancel");},_saveCaption:function(e){var c=this,d=c.data,b=d.photos[c.current],a=dojo.query("#post-heading .input").attr("value")[0];c._setCaption(ut.escapeHTML(a));b.caption=a;API_SVC.setPhotoCaption(d.blob.id,b.id,a);c._aT("caption","save-"+e);},_editPlace:function(){var d=this,e=d.data,a=e.location,b=a?a.id:0,c=a?a.name:"",f=M.P6;dojo.byId("post-location").innerHTML=['<div class="pcs">','<input type="text" value="',(b==0?f:c),'" autocomplete="off" pid="0" class="pi input"/>','<div class="ac"></div>','<div class="ht suggest_help_text hidden">',f,"</div>",'<div class="he suggest_help_error hidden">No places matching this name</div>',"</div>",'<input name="placeId" id="placeId" type="hidden" value="',b,'" class=""/>','<input name="placeName" id="placeName" type="hidden" value="',c,'" class=""/>','<input type="button" class="button" action="setPlace" value="Set"><a action="resetPlace" class="link">Cancel</a>'].join("");(new PlaceSuggestControl()).initialize();d.resetMap.place=true;d._aT("place","edit");},_resetPlace:function(){var a=this;a._setInnerHtml("post-location",a._getPlaceHtml());delete a.resetMap.place;},_getPlaceHtml:function(){var d=this,e=d.data,c=e.editable,a=e.location,f=dojo.string.substitute,b=[];if(!a){b.push(d._getEmpty(c?M.P61:M.P62,c?"editPlace":null));}else{b.push("<a title='",f(M.P63,[a.name]),"' class='purl' href='/search/",a.name.replace(/ /g,"-"),"'>",a.name,"</a> / ");b.push("<a title='",f(M.P63,[a.region]),"' class='purl' href='/search/",a.region.replace(/ /g,"-"),"'>",a.region,"</a> / ");b.push("<a title='",f(M.P63,[a.country]),"' class='purl' href='/search/",a.country.replace(/ /g,"-"),"'>",a.country,"</a>");}return b.join("");},_setPlace:function(){var d=this,b=d.data.blob,c=dojo.byId("placeId").value,a;if(c==""){c=0;}d._setInnerHtml("post-location",["<div class='saving'><img class='l' src='",d.spinner,"'/> Saving..."].join(""));API_SVC.setPlace(d.blobId,c).addCallback(function(f){if(f.stat!="ok"){return;}var e=f.result;if(!e.id){e=null;}else{}b.place=e;d.data.location=e;d._resetPlace();});d._aT("place","save");},_saveTags:function(){var d=this,f=d.data,a=f.blob,h=f.tags,b=f.photos[d.current],e=b.tags,l=[],c=dojo.byId("suggest-tags"),g,j,k;if(e){for(g=0,j=e.length;g<j;g++){k=h[e[g]];l.push(k.displayName);}}dojo.query("input[name='tag_name']",c).forEach(function(m){l.push(m.value);});dojo.query("input[name='tag_new']",c).forEach(function(m){l.push(m.value);});d._setInnerHtml("suggest-tags",["<div class='saving'><img class='l' src='",d.spinner,"'/> Saving..."].join(""));API_SVC.setPhotoTags(a.id,b.id,l.join(",")).addCallback(function(o){if(o.stat!="ok"){return;}var m=o.result,p=[];if(a.tags){a.tags=a.tags.concat(m);}else{a.tags=m;}for(g=0;g<m.length;g++){k=m[g];p.push(k.id);h[k.id]=k;}b.tags=p;d._setInnerHtml("post-tags",d._getPhotoTags(b,true));d._cancelTag(p.length);});d._aT("tags","save");},_deleteTag:function(d){var c=this,f=c.data,h=f.tags,a=f.photos[c.current],e=a.tags,l=[],g,j,k,b;if(e){for(g=0,j=e.length;g<j;g++){k=h[e[g]];if(k.id!=d){l.push(k.displayName);}else{b=g;}}e.splice(b,1);}dojo.query("#tagC_"+d).orphan();API_SVC.setPhotoTags(f.blob.id,a.id,l.join(","));c._aT("tags","delete");},_cancelTag:function(a){dojo.byId("suggest-tags").innerHTML="";delete this.resetMap.tag;if(a){dojo.query("#post-tags .empty").orphan();}else{dojo.query("#post-tags .empty").removeClass("hidden");}},_addTags:function(){var d=this,f=dojo.create("div",{"class":"suggest"},"suggest-tags","only"),c=["<input class='lbut small blue button' action='tagSave' value='Add' type='button'>","<a action='tagCancel' class='link'>Cancel</a>","<div class='spacer'></div>"].join(""),a,b,e;Suggest.fetchTags();dojo.place(c,f,"after");e=new Suggest(f,"tag_","tags",{helpText:M.P5,newValueText:"new"});e.initialize();d.resetMap.tag=true;dojo.query("#post-tags .empty").addClass("hidden");d._aT("tags","edit");},_loadAddGroups:function(){var c=this,a=c.data.blob,b=c.loggedUser.logged;if(b){dojo.query(".post .grp").forEach(function(f){var o=cm.get("user.topics")||[],e=a.topics||[],d=o.length,l=e.length,m,k,h;if(d){f.innerHTML=["<div class='ld'><img src='",c.spinner,"' class='va-m'/> ",M.LOADING_MESSAGE,"</div>"].join("");var g=["<div class='gp'>"],j={};for(k=0;k<l;k++){j[e[k].id]=true;}for(k=0;k<d;k++){m=o[k];h=m.value.v;g.push("<div class='it'><input action='grpMultiChoose' class='checkbox' type='checkbox' id='ag",h,"' ");if(j[h]){g.push(" checked='checked'");}g.push("/><span action='grpChoose' class='lb' id='agl",h,"'>",m.original.name,"</span><div class='clearall'></div></div>");}g.push("</div><div class='act'><a href='/topic/new?next=",ut.encode(window.location.href),"'>Start new group</a></div>");f.innerHTML=g.join("");}});}},_grpChoose:function(a){var b=this,c=dojo.byId("ag"+a);dojo.attr(c,"checked",!dojo.attr(c,"checked"));b._groupMultiSave();},_grpMultiChoose:function(){var b=this,a=b._hasGroupAdditionChanged(),c=dojo.byId("group_add"),d;if(a){dojo.addClass(c,"grp_up");}else{dojo.removeClass(c,"grp_up");}dojo.query(".act",c).forEach(function(e){if(a){d="<a href='javascript:void(0);' action='grpApply' class='bold'>Apply</a> | <a href='javascript:void(0);' action='grpCancel'>Cancel</a>";}else{d=["<a href='/topic/new?next=",ut.encodeCur(),"'>Start new group</a>"].join("");}e.innerHTML=d;});},_hasGroupAdditionChanged:function(){var c=this,a=c.data.blob,d=a.topics||[],p=d.length,o=cm.get("user.topics")||[],b=o.length,g={},m=[],e=[],j=[],f,l,k,h;for(l=0;l<p;l++){g[d[l].id]=true;}for(l=0;l<b;l++){f=o[l].value.v;if(g[f]){m.push(f);}}console.log(m);dojo.query(".post .grp input[type=checkbox]:checked").forEach(function(q){e.push(parseInt(dojo.attr(q,"id").substring(2)));});l=m.length;k=e.length;h=m.union(e).length;return(l!=h)||(k!=h);},_deleteGroup:function(d){if(!confirm(M.P73)){return;}var b=this,e=b.data,a=e.blob,c=e.groups,f=a.topics,g,h,j;b._wipeOut("pg_"+d);API_SVC.updateTopics({memoirId:a.id,topicsToAdd:[],topicsToDelete:[d]});if(f){for(g=0,h=f.length;g<h;g++){j=f[g];if(j.id==d){f.splice(g,1);break;}}}b._setInnerHtml("post-group-h",dojo.string.substitute(M.P75,[f.length]));b._aT("groups","delete");},_groupMultiSave:function(){var d=this,b=d.data.blob,q=b.topics,f=[],m=[],j=[],u,t,r;dojo.query(".post .grp").forEach(function(v){dojo.query(".act",v).forEach(function(w){w.innerHTML="<img class='va-m' src='http://cdn2.lifeblob.com/lifeblob/img/theme-gray/spinners/loader_blue_16_wht.v67bd14.gif'>Updating ...";});dojo.query("input[type=checkbox]:checked",v).forEach(function(w){m.push(parseInt(dojo.attr(w,"id").substring(2)));});dojo.query("input[type=checkbox]:not(:checked)",v).forEach(function(w){j.push(parseInt(dojo.attr(w,"id").substring(2)));});});if(q){for(u=0,t=q.length;u<t;u++){f.push(q[u].id);}}var c=f.intersection(j),g=m.complement(f),l=cm.get("user.topics")||[],h=l.length,k={},p=[],a=[],e;for(u=0;u<h;u++){e=l[u].original;k[e.id]=e;}for(u=0;u<c.length;u++){e=k[c[u]];if(e){a.push(e.name);}}for(u=0;u<g.length;u++){e=k[g[u]];if(e){p.push(e.name);}}if(q){totalGroups=q.length;for(u=0;u<c.length;u++){var o=c[u];for(t=0;t<totalGroups;t++){if(q[t].id==o){q.splice(t,1);break;}}}}API_SVC.updateTopics({memoirId:b.id,topicsToAdd:g,topicsToDelete:c}).addCallback(function(w){d._onGroupAdd(w);dojo.removeClass("group_add","grp_up");var y="",v,x;x=p.length;if(x){y="Added blob to "+d._getGroupNames(p);}if(a.length){if(x){y+="<br/><br/>";}y+="Removed blob from "+d._getGroupNames(a);}dojo.query(".act","group_add").forEach(function(z){z.innerHTML=["<a href='/topic/new?next=",ut.encodeCur(),"'>Start new group</a>"].join("");});dojo.publish("tt",[{message:y}]);});},_getGroupNames:function(a){var b=[],d=a.length,c;for(c=0;c<d;c++){b.push("<strong>",a[c],"</strong>");if(c==d-2){b.push(" and ");}else{if(c<d-2){b.push(", ");}}}return b.join("");},_groupSave:function(){var d=this,e=d.data,a=e.blob,f=a.topics,h=[],c=[],g=dojo.byId("suggest-groups"),b;dojo.query("input[name='group_id']",g).forEach(function(j){h.push(parseInt(j.value));});if(f){for(b=0;b<f.length;b++){c.push(f[b].id);}}h=h.complement(c);if(!h.length){d._cancelGroups(c.length);return;}g.innerHTML=["<div class='saving'><img class='va-m' src='",d.spinner,"'/> Saving..."].join("");API_SVC.updateTopics({memoirId:a.id,topicsToAdd:h,topicsToDelete:[]}).addCallback(function(j){d._onGroupAdd(j);});d._aT("groups","save");},_onGroupAdd:function(e){var c=this,f=c.data,a=f.blob,d=f.groups,g=a.topics,k=f.groupStats,o=e.result,j=o.length,m=dojo.byId("post-groups"),l,h;if(j&&!g){g=[];a.topics=g;}for(h=0;h<j;h++){l=o[h];g.unshift(l);d[l.id]=l;k[l.id]=l.stats;var b=dojo.create("li",{"class":"li",id:"pg_"+l.id,style:{height:"auto",display:"none"}},m,"first");b.innerHTML=c._getGroupHtml(l,l.stats,true);dojo.fx.wipeIn({node:b}).play();}c._setInnerHtml("post-group-h",dojo.string.substitute(M.P75,[g.length]));c._cancelGroups(g.length);},_cancelGroups:function(a){dojo.byId("suggest-groups").innerHTML="";delete this.resetMap.groups;if(a){dojo.query("#post-groups .empty").orphan();}else{dojo.query("#post-groups .empty").removeClass("hidden");}},_addGroups:function(){var d=this,f=dojo.create("div",{"class":"suggest"},"suggest-groups","only"),c=["<input class='lbut blue small button' action='groupSave' value='Add' type='button'>","<a action='groupCancel' class='link'>Cancel</a>","<div class='spacer'></div>"].join(""),a,b,e;Suggest.fetchTags();dojo.place(c,f,"after");e=new Suggest(f,"group_","topic",{helpText:M.P7,newValueText:"new"});e.initialize();d.resetMap.groups=true;dojo.query("#post-groups .empty").addClass("hidden");d._aT("groups","edit");},_deletePerson:function(j){var b=this,e=b.data,a=e.blob,k=e.people,c=a.people,f=dojo.string.substitute,g,h,d;if(!confirm(f(M.P83,[k[j].name]))){return;}b._wipeOut("pp_"+j);API_SVC.updateParticipants({memoirId:a.id,peopleToDelete:[j]});if(c){for(g=0,h=c.length;g<h;g++){d=c[g];if(d.id==j){c.splice(g,1);break;}}}b._setInnerHtml("post-people-h",f(M.P84,[c.length]));b._aT("people","delete");},_peopleSave:function(){var d=this,g=d.data,a=g.blob,f=a.people,o=g.people,m=g.peopleStats,b=[],j=[],l=[],c=dojo.byId("suggest-people"),e=dojo.byId("post-people"),k,h;dojo.query("input[name='user_id']",c).forEach(function(p){j.push(parseInt(p.value));});dojo.query("input[name='user_fbid']",c).forEach(function(p){l.push(parseInt(p.value));});h=Suggest.getEmails("input[name='user_email']",c);if(!h){return;}else{if(f){for(k=0;k<f.length;k++){b.push(f[k].id);}}}j=j.complement(b);if(j.length==0&&h.length==0&&l.length==0){d._cancelPeople(b.length);return;}c.innerHTML=["<div class='saving'><img class='va-m' src='",d.spinner,"'/> Saving..."].join("");API_SVC.updateParticipants({memoirId:a.id,peopleToAdd:j,emailsToAdd:h,fbIds:l,peopleToDelete:[]}).addCallback(function(r){if(r.stat!="ok"){return;}var p=r.result,u=p.length,t;if(u&&!f){f=[];a.people=f;}for(k=0;k<u;k++){t=p[k];f.unshift(t);o[t.id]=t;m[t.id]=t.stats;var q=dojo.create("li",{"class":"li",id:"pp_"+t.id,style:{height:"auto",display:"none"}},e,"first");q.innerHTML=d._getPersonHtml(t,t.stats,true);dojo.fx.wipeIn({node:q}).play();}d._setInnerHtml("post-people-h",dojo.string.substitute(M.P84,[f.length]));d._cancelPeople(f.length);});d._aT("groups","save");},_cancelPeople:function(a){dojo.byId("suggest-people").innerHTML="";delete this.resetMap.people;if(a){dojo.query("#post-people .empty").orphan();}else{dojo.query("#post-people .empty").removeClass("hidden");}},_addPeople:function(){var d=this,f=dojo.create("div",{"class":"suggest"},"suggest-people","only"),c=["<input class='lbut blue small button' action='peopleSave' value='Add' type='button'>","<a action='peopleCancel' class='link'>Cancel</a>","<div class='spacer'></div>"].join(""),a,b,e;dojo.place(c,f,"after");e=new Suggest(f,"user_","user",{helpText:M.P8,newValueText:"email"});e.initialize();d.resetMap.people=true;dojo.query("#post-people .empty").addClass("hidden");d._aT("people","edit");},_commentDelete:function(d,c){var e=this,f=e.data.comments,a=f.length,b;if(!confirm(M.P32)){return;}e._wipeOut("pc_"+c);API_SVC.deleteComment(d,c);for(b=0;b<a;b++){if(f[b].id==c){f.splice(b,1);break;}}e._aT("comment","delete");},_comment:function(){var g=this,j=g.data,h=j.blob.id,b=j.photos[g.current],c=b.id,p=dojo.query(".post .comments .button")[0],o=j.comments,m,d,k,a=dojo.byId("post-comments"),l=g.loggedUser.person,f=(l.id==-1),e;dojo.query(".post .comments .textarea").forEach(function(q){m=q.value;q.value="";});if(ut.isEmpty(m)||m==M.STREAM_NEW_COMMENT){return;}if(f){d=dojo.hitch(g,function(){API_SVC.addComment(h,m,c);});dojo.publish("quickAccount",[{src:"comment/standalone",deferFunc:d,deferMsg:"Your comment has been successfully posted."}]);return;}dojo.attr(p,"posting",true);dojo.query(".va-m",p.parentNode).removeClass("hidden");API_SVC.addComment(h,m,c).addCallback(function(q){dojo.query(".va-m",p.parentNode).addClass("hidden");dojo.attr(p,"posting",false);if(q.stat!="ok"){return;}m=q.result;o.push(m);e=dojo.create("div",{"class":"comment",id:"pc_"+m.id,style:{height:"auto",display:"none"}},a,"first");e.innerHTML=g._getCommentHtml(m,l,h);dojo.fx.wipeIn({node:e}).play();dojo.query(".empty",a).addClass("hidden");});g._aT("comment","add");},_like:function(c){var b=this,a;if(b.anon){a=dojo.hitch(b,function(){b._likePhoto();});dojo.publish("quickAccount",[{src:"like/standalone",deferFunc:a,deferMsg:M.P44}]);return;}b._likePhoto(c);},_likePhoto:function(c){var g=this,m=g.data,h=m.blob.id,o=g.current,d=m.photos[o],e=d.id,j=m.likes,b=g.loggedPerson,f=j[e]||[],p=f.length,a=true,q,k,l;for(l=0;l<p;l++){if(f[l]==b){a=false;f.splice(l,1);break;}}if(a){f=j[e];if(!f){f=[b];j[e]=f;}else{f.push(b);}}k=g._getPhotoLikes(d);q=dojo.byId("photo-like-action");g._setInnerHtml("photo-likers",k.b);q.innerHTML=k.a;if(k.total){dojo.removeClass(q,"visible");}else{dojo.addClass(q,"visible");}if(a){API_SVC.likePhoto(h,e);}else{API_SVC.unlikePhoto(h,e);}if(c){g._aT(a?"like":"unlike",c);}},_showPhoto:function(c){var b=this,e=b.photoMode,d=b.current,a=b.data.photos.length;if(c){if(e){if(d>0){b._showPhotoByIndex(d-1);}else{if(b.cycleMode&&a>1){b._showPhotoByIndex(a-1);}}}}else{if(e){if(d<(a-1)){b._showPhotoByIndex(d+1);}else{if(b.cycleMode&&a>1){b._showPhotoByIndex(0);}}}}},_setBlinder:function(){var d=this,e=new Image(),b=d.data.photos[d.current],f=ut.getImageURL(b.loc,512,0,d.blobId),c,a;e.onload=function(){c=e.width;a=e.height;if(c>512){a=(512*a)/c;c=512;}dojo.style("post-blinder",{width:c+"px",height:a+"px"});if(d.resizer){d.resizer.setBounds({w:c,h:a});}};e.src=f;if(dojo.isChrome||dojo.isSafari){e.src="";e.src=f;}},_preloadImage:function(a,j,l,f,k){var d=this,e=new Image(),o=d.data.photos,p=dojo.byId("post-img"),c,m;if(d.loadedImages[j]){return;}e.id="pi"+j;dojo.create(e,null,"img-preload");d.pending++;e.onload=function(){d.pending--;if(d.pending>3){dojo.query("#img-preload img:not([id='pi"+d.current+"'])").orphan();}c=e.width;m=e.height;if(c>512){m=(512*m)/c;c=512;}d.loadedImages[j]={w:c,h:m};if(d.current==j){dojo.query(".img",p).attr("src",a).removeClass("pimg");dojo.style("post-blinder",{width:c+"px",height:m+"px"});if(d.resizer){d.resizer.setBounds({w:c,h:m});}}};e.src=a;if(dojo.isChrome||dojo.isSafari){e.src="";e.src=a;}if(!k){var b=Math.max(0,j-2),g=Math.min(j+3,l),h;for(h=b;h<g;h++){d._preloadImage(ut.getImageURL(o[h].loc,512,0,f),h,l,f,true);}}},_getPhotoNav:function(a,c){if(c==0){return"";}var b=["<a action='prev' class='move "];if(a==0){b.push("invisible");}b.push("'>« Previous</a><span class='pos'>",(a+1)," of ",c,"</span><a action='next' class='move ");if(a==c-1){b.push("invisible");}b.push("'>Next »</a>");return b.join("");},_getPhotoPeople:function(a){var c=this,j=[],r=a.faceTags||[],f=c.data,d=f.people,o=f.peopleStats,l=r.length,b=f.blob.created.by,h=c.loggedUser.person.id,k,q;for(k=0;k<l;k++){var q=r[k],p=q.person,m,e,g;if(!p){continue;}m=(h==b)||(h==q.creator)||(h==p);e=d[p];g=o[p];j.push("<li id='pp_",e.id,"' class='li' index='",k,"'>",c._getPhotoFaceHtml(e,g,m?k:-1),"</li>");}if(!l){j.push(c._getEmpty(M.P88,"startTag"));}return j.join("");},_getPhotoFaceHtml:function(b,d,a){var f=dojo.string.substitute(M.P1,[b.name]),e=dojo.string.substitute(M.P2,[d?d.friends:0,d?d.photos:0]),c=["<div class='fl'>","<a class='fl' href='/user/",b.displayName,"' title='",f,"'>","<img class='img' alt='",b.name,"' src='",ut.getProfileURL(b,"small",PERSON_TYPE),"'></a>","<div class='pinfo'><a class='purl' href='/user/",b.displayName,"'title='",f,"'>",b.name,"</a><div class='s'>",e,"</div></div>","</div><div class='fr'>"];if(a>=0){c.push("<a class='delete1' title='",M.P85,"' action='deleteFace_",a,"'>X</a>&nbsp;");}c.push("</div><div class='clearall'></div>");return c.join("");},_getPostPeople:function(c){var b=this,h=[],f=b.data,q=f.blob.people||[],d=f.people,p=f.peopleStats,m=q.length,a=b.loggedPerson,k,e,g,o,l,j;for(k=0;k<m;k++){e=d[q[k].id];g=p[e.id];j=((e.id==a)||(a==f.creator.id));h.push("<li class='li' id='pp_",e.id,"'>",b._getPersonHtml(e,g,j),"</li>");}if(!m){h.push(b._getEmpty(c?M.P81:M.P82,c?"addPeople":null));}return h.join("");},_getPersonHtml:function(a,c,f){var b=[],g,e,d;g=dojo.string.substitute(M.P1,[a.name]);d=dojo.string.substitute(M.P2,[c.friends,c.photos]);e=["href='/user/",a.displayName,"' title='",g,"'>"].join("");b.push("<div class='fl'>","<a class='fl' ",e,"<img class='img' alt='",a.name,"' src='",ut.getProfileURL(a,"medium",PERSON_TYPE),"'></a>","<div class='pinfo'><a class='purl' ",e,a.name,"</a><div class='s'>",d,"</div></div>","</div><div class='fr'>");if(f){b.push("<a action='deletePerson_",a.id,"' title='",M.P85,"' class='delete1'>X</a>");}b.push("</div><div class='clearall'></div>");return b.join("");},_getPostGroups:function(c){var b=this,h=[],e=b.data,d=e.blob.topics||[],g=e.groups,o=e.groupStats,l=d.length,a=b.loggedPerson,j,p,f,m,k;for(j=0;j<l;j++){p=g[d[j].id];f=o[p.id];h.push("<li class='li' id='pg_",p.id,"'>",b._getGroupHtml(p,f,c),"</li>");}if(!l){h.push(b._getEmpty(c?M.P71:M.P72,c?"addGroups":null));}return h.join("");},_getEmpty:function(b,c){var a=[];a.push("<div class='empty'>");if(c){a.push("<a class='ea' action='",c,"'>",b,"</a>");}else{a.push(b);}a.push("</div>");return a.join("");},_getGroupHtml:function(f,b,e){var a=[],g,d,c;g=dojo.string.substitute(M.P1,[f.name]);c=dojo.string.substitute(M.P21,[b.members,b.photos]);d=["href='/topic/",f.displayName,"' title='",g,"'>"].join("");a.push("<div class='fl'>","<a class='fl' ",d,"<img class='img' alt='",f.name,"' src='",ut.getProfileURL(f,"medium",TOPIC_TYPE),"'></a>","<div class='pinfo'><a class='purl' ",d,f.name,"</a><div class='s'>",c,"</div></div>","</div><div class='fr'>");if(e){a.push("<a action='deleteGroup_",f.id,"' title='",M.P74,"' class='delete1'>X</a>");}a.push("</div><div class='clearall'></div>");return a.join("");},_getRound:function(d,a){var c="##0.0";for(var b=1;b<a;b++){c+"0";}return dojo.number.format(d,{pattern:c});},_getMeta:function(b){var c=this,k=b.meta,j=c._addMeta,h=c._getRound,l=false,d,f,g;if(!k){return"";}f=["<div class='h'>EXIF:</div>"];if(k.make){l=true;j(f,"Make",k.make,"View all photos taken with "+k.make,"make="+k.make.replace(/ /g,"+"));}if(k.model){l=true;j(f,"Model",k.model,"View all photos taken with "+k.model,"model="+k.model.replace(/ /g,"+"));}if(k.exposure!=0){l=true;d="1/"+parseInt(1/k.exposure)+" sec";j(f,"Shutter Speed",d,"View all photos with ",d," shutter speed","exposure="+h(k.exposure,3));}if(k.fstop!=0){l=true;d=h(k.fstop,1);j(f,"Aperture Size","F"+d,"View all photos with F"+d+" aperture size","fstop="+d);}if(k.iso!=0){l=true;j(f,"ISO",k.iso,"View all photos taken at ISO "+k.iso,"iso="+k.iso);}j(f,"Flash",k.flash?"Fired":"No","View all photos taken with "+(k.flash?"flash fired":"no flash"),"flash="+k.flash);if(k.focallength!=0){l=true;d=h(k.focallength,2);j(f,"Focal Length",d,"View all photos taken at "+d+" focal length","focallength="+d);}if(k.exposureBias!=0){l=true;d=h(k.exposureBias,2);j(f,"Exposure Bias",d+" EV","View all photos taken at "+d+" EV exposure bias","exposureBias="+d);}if(k.exposureProg!=0){l=true;var a={1:"Manual Control",2:"Program Normal",3:"Aperture Priority",4:"Shutter Priority",5:"Slow Program",6:"High-Speed Program",7:"Portrait Mode",8:"Landscape Mode"};d=a[k.exposureProg]||"Unknown";j(f,"Exposure Program",d,"View all photos taken using "+d,"exposureProg="+k.exposureProg);}if(k.time>0){l=true;g=new Date(k.time);d=g.dateFormat("d M Y H:m");var e=g.dateFormat("Y-m-d")+"T00:00:00Z";j(f,"Time",d,"View all photos taken around "+g.dateFormat("d M Y"),"takenAt="+e);}return l?f.join(""):"";},_addMeta:function(b,a,d,e,c){b.push("<div class='entry'>",a,": <a title='",e,"' href='/search/?meta=true&",c,"'>",d,"</a></div>");},_getPhotoFaces:function(a){var b=this,e=[],c=a.faceTags||[],k=b.data.people,h=c.length,f,g,d,j;if(h&&!a.sorted){c.sort(function(m,l){return(m.x!=l.x)?(m.x-l.x):(m.y-l.y);});a.sorted=true;}for(f=0;f<h;f++){g=c[f];d=k[g.person];if(d){e.push(b._getFaceBoxHtml(g,f));}}return{total:h,html:e.join("")};},_getFaceBoxHtml:function(b,a){return["<div id='pf-",a,"' class='face face_dim' style='left:",b.x,"px;top:",b.y,"px'><div style='cursor:pointer'>","<div class='outer2'><div style='width:",b.w,"px;height:",b.h,"px'></div></div><div class='outer1'><div class='inner'>","<div style='width:",b.w-4,"px;height:",b.h-4,"px'></div></div></div></div></div>"].join("");},_getPhotoTags:function(a,c){var b=this,f=[],l=a.tags||[],e=b.data,d=e.tags,h=l.length,g,k,j;for(g=0;g<h;g++){k=d[l[g]];j=dojo.string.substitute(M.P1,[k.name]);f.push("<span class='econt' id='tagC_",k.id,"'>");if(c){f.push("<a action='deleteTag_",k.id,"' title='",M.P51,"' class='delete1'>X</a>&nbsp;&nbsp;");}f.push("<a class='purl' href='/search/",k.name.replace(/ /g,"-"),"' title='",j,"'>",k.name,"</a></span>");}if(!h){f.push(b._getEmpty(c?M.P52:M.P53,c?"addTags":null));}return f.join("");},_getPhotoComments:function(c){var d=this,g=[],f=d.data,b=f.blob,t=f.people,l=f.comments,p=l.length,r=false,a=d.loggedPerson,k,h,e,q,o,j,m;for(k=p-1;k>=0;k--){h=l[k];e=t[h.creator_person];if(h.photo==c.id&&e){r=true;j=((e.id==a)||(a==f.creator.id));g.push("<div class='comment' id='pc_",h.id,"'>",d._getCommentHtml(h,e,j?b.id:0),"</div>");}}if(!r){g.push("<div class='empty'>Be the first one to comment on this photo</div>");}return g.join("");},_getCommentHtml:function(f,a,e){var b=[],d,c;if(!f.created_at_parsed){f.created_at_parsed=Date.parseDate(f.created_at,DP[1],true);}d=dojo.string.substitute(M.P1,[a.name]);c=["href='/user/",a.displayName,"' title='",d,"'>"].join("");b.push("<div class='l'><a ",c,"<img class='img' alt='",a.name,"' src='");b.push(ut.getProfileURL(a,"medium",PERSON_TYPE),"'></a></div><div class='r'><pre class='pre'>",f.comment,"</pre><div>");b.push("<a class='by' ",c,a.name,"</a><span class='when'>",f.created_at_parsed.pretty(),"</span>");if(e){b.push("<a class='delete' title='",M.P31,"' action='commentDelete_",e,":",f.id,"'></a>");}b.push("</div></div><div class='clearall'></div>");return b.join("");},_getPhotoLikes:function(b){var d=this,g=[],f=d.data,k=f.onContest,m=f.people,c=f.likes[b.id]||[],j=c.length,a=d.loggedPerson,l=false,h,e;if(j){g.push("<div class='lc'>");}else{g.push("<span class='empty'>",M.P45,"</span>");}for(h=0;h<j;h++){e=m[c[h]];if(e){g.push("<a href='/user/",e.displayName,"' title='");if(a==e.id){g.push(M.P43,"'>You</a>");l=true;}else{g.push(dojo.string.substitute(M.P1,[e.name]),"'>",e.name,"</a>");}if(h<j-1){g.push(", ");}}}if(j){g.push(" ",k?"voted it":"like it","</div>");}return{b:g.join(""),a:d._getLikeBut(l),total:j,liked:l};},_getLikeBut:function(b){var a=this.data.onContest,e=!a?(b?M.P48:M.P49):(b?M.P46:M.P47),d=!a?(b?M.P411:M.P410):(b?M.P42:M.P41),c=b?"http://cdn3.lifeblob.com/lifeblob/img/timeline/maxblob/like_off.v644ee4.png":"http://cdn0.lifeblob.com/lifeblob/img/timeline/maxblob/like_on.vc88ea3.png";return["<div class='but' action='like' title='",d,"'><img class='img' perculate='true' src='",c,"'/>"," <span perculate='true' class='txt'>",e,"</span></div>"].join("");},_reset:function(){var c=this,b=c.resetMap,a;for(a in b){if(a=="heading"){c._resetHeading();c._cancelCaption();}else{if(a=="tag"){c._cancelTag();}else{if(a=="place"){c._resetPlace();}else{if(a=="groups"){c._cancelGroups();}else{if(a=="people"){c._cancelPeople();}else{if(a=="face"){c._stopTag();}}}}}}delete b.key;}},_resetHeading:function(){var b=this,a=["<h1 id='post-caption' class='h1 fl "];if(b.data.editable){a.push(" pointer' action='captionEdit'></h1>");a.push("<div class='h1a'><a class='link' action='captionEdit'>Edit</a></div>");}else{a.push("'></h1>");}a.push("<div class='h1b'><a action='grid'>« Back to Album</a></div>");b._setInnerHtml("post-heading",a.join(""));},_createPhotoView:function(){var g=this,h=g.data,b=h.blob,e=h.creator,d=h.editable,f=g.loggedUser,a=dojo.byId("blob_content"),c=[];c.push("<div id='post-heading'><h1 id='post-caption' class='h1 fl ");if(d){c.push(" pointer' action='captionEdit'></h1>");c.push("<div class='h1a'><a class='link' action='captionEdit'>Edit</a></div>");}else{c.push("'></h1>");}c.push("<div class='h1b'><a action='grid'>« Back to Album</a></div>");c.push("</div><div class='photo_actions actions'>");c.push("<div class='fl'><div class='nav-li'><a class='link'>Tools</a><ul class='nav-sub-ul'>");c.push("<li class='nav-sub-li'><a id='photo_download' action='toolsDownload' class='nav-sub-a'>Download photo</a></li>");if(d){c.push('<li class="nav-sub-li cover"><a id="album-cover" class="nav-sub-a" action="toolsCover">Set as album cover</a></li>');c.push('<li class="nav-sub-li rotate hidden"><a id="rotate_left" class="nav-sub-a" action="rotate" angle="270">Rotate left</a></li>');c.push('<li class="nav-sub-li rotate hidden"><a id="rotate_right" class="nav-sub-a" action="rotate" angle="90">Rotate right</a></li>');}c.push("</ul></div></div><div id='photo-pos' class='fr'></div><div class='clearall'></div></div><div class='post_cont'><div class='grid'><div id='post-blinder' class='facet'></div><div class='faces' id='faces'><div id='face-info' class='face-info'></div><div id='face-tags'></div></div><div id='post-img'><img class='img'/></div>");c.push("<div class='likes'><div class='l' id='photo-likers'></div><div class='r' id='photo-like-action'></div><div class='clearall'></div></div>");c.push("<div class='comments'><div class='new'><div class='l'><img class='img' src='",ut.getProfileURL(f.person,"medium",PERSON_TYPE),"'></div>");c.push("<div class='r'><textarea class='textarea'>",M.STREAM_NEW_COMMENT,"</textarea>");c.push("<input type='submit' action='comment' class='lbut small blue button' value='Comment'><img class='va-m hidden' src='",g.spinner,"'></div><div class='clearall'></div></div><div id='post-comments'></div></div>");c.push("</div><div class='right'>");c.push("<div class='section'><div></div><a action='photoPrints' title='Buy prints and other photo gifts at the lifeblob store' class='red large lbut'>Buy Prints »</a></div>");c.push("<div class='section sectiont recommend share' id='sharePanel'>","        <div class='h'>","                <div class='t'>Share</div>","                <div class='fr'>","                    ","                </div>","                <div class='clearall'></div>","         </div>","        <div class='b' id='sharePanel_content'>","        </div>","</div>");c.push("<div class='section sectiont'>",g._getSectionH("People in this photo","startTag"));c.push("<div class='b'><ul id='post-people' class='related'></ul></div></div>");c.push("<div class='section sectiont'>",g._getSectionH("Tags",d?"addTags":null));c.push("<div class='b'><div id='suggest-tags'></div><div id='post-tags' class='related'></div><div class='clearall'></div></div></div>");c.push("<div class='section sectiont recommend' id='relatedphotos'></div>");c.push("<div class='section sectiont recommend' id='photoclick'></div>");c.push("<div class='section sectiont'>",g._getSectionH("Additional information",null));c.push("<div class='b'><div class='related ainfo'><div>Album: <a href='/blob/",ut.getSEOText(b.title),"/show/",b.id,"'>");c.push(b.title,"</a></div>");c.push("<div class='gap'>Posted by: <a href='/user/",e.displayName,"'>",e.name,"</a></div>");c.push("<div id='views' class='gap'></div><div id='attribution' class='gap'></div><div id='meta' class='meta'></div></div><div class='clearall'></div></div></div>");c.push("</div></div><div id='img-preload'></div>");a.innerHTML=c.join("");g.photoMode=true;g._handleCommentHelp();},_handleCommentHelp:function(a){var b=M.STREAM_NEW_COMMENT,c;dojo.query(".comments .textarea",a).onblur(function(d){c=d.currentTarget;if(c.value==""){c.value=b;}}).onclick(function(d){c=d.currentTarget;if(c.value==b){c.value="";}}).forEach(function(d){if(d.value==""){d.value=b;}});},_getSectionH:function(c,b){var a=["<div class='h'><div class='t'>",c,"</div>"];if(b){a.push("<div class='fr'><a class='link' action='",b,"'>Add</a></div>");}a.push("<div class='clearall'></div></div>");return a.join("");},_showAttribution:function(){var a=this._getAttribution();if(a){dojo.query("#attribution").html(a);}},_getAttribution:function(){var c=this,b=c.attributionTxt;if(b){return b;}var f=c.data,a=f.blob,e=a.service,d=f.source,l=d,g;if(e==APP_TYPE.FREEBASE){var j="Freebase",k=d.split("http://www.freebase.com/view"),h;if(k.length==2){h=k[1];dojo.io.script.get({callbackParamName:"callback",timeout:3000,url:'http://www.freebase.com/api/service/mqlread?query={"query":{"id":"'+h+'","name":null}}',load:function(m){c._loadFreebase(d,m.result.name);},error:function(m){console.log(m);c._loadFreebase(d);}});}else{c._loadFreebase(d);}}else{if(e==APP_TYPE.DAYLIFE||d){if(l){l=ut.truncate(l,38,"...");}b=["<div class='ainfol'>Source: <a rel='nofollow' href='",d,"' title='",d,"' target='_blank'>",l||"Daylife","</a></div>"].join("");}}return b;},_loadFreebase:function(c,d){var b=this,a=["<div class='freebase-attribution'><img class='fimg' src='http://www.freebase.com/policies/freebase-cc-by-61x23.png' alt='Freebase CC-BY'><div class='txt'>Source: "];if(d){a.push("<a rel='nofollow' href='",c,"'>",d,"</a> on ");}a.push("<a rel='nofollow' href='http://www.freebase.com/'>Freebase</a>, licensed under <a rel='nofollow' href='http://creativecommons.org/licenses/by/2.5/'>CC-BY</a></div></div>");b.attributionTxt=a.join("");b._showAttribution();},_createGridView:function(){var k=this,F=k.data,j=F.referrer,x=F.editable,r=F.likes,q=F.comments,p=q.length,c=F.blob,d=c.id,B=F.fullDesc,b=F.location,E=F.photos,h=c.people||[],D=c.topics||[],H=E.length,y=Date.parseDate(c.happened,DP[1],true).dateFormat("d M Y"),g=dojo.string.substitute,w=F.activeContest,t=[],u=M.P63,o=dojo.byId("blob_content"),l=k.loggedUser.person,A=(l.id==-1),m,f,C,a,e,v,z,G;t.push("<div id='post-heading'><h1 class='h1 fl'>",c.title,"</h1>","<div class='h1b'><a href='/",F.referrerType,"/",j.displayName,"' title='Go back to ",j.name,"'s lifeblob'>« Back to ",j.name,"</a></div></div>","<div class='post_stats'>",g(M.P9,[y,H,h.length,D.length]),"</div>","<div class='post_actions actions'><div class='fl'>");if(x){t.push("<div class='nav-li nohover'><a class='link' href='/photos/edit/",d,"?edit=true'>Edit Album</a></div>");}if(F.deleteable){t.push("<div class='nav-li nohover'><a class='link' action='deletePost' title='Delete Album?'>Delete Album</a></div>");}if(x){t.push("<div class='nav-li nohover'><a class='link' href='/photos/edit/",d,"'>Visibility</a></div>");}if(!A){t.push('<div class="nav-li" id="group_add"><a class="link" action="addGrp" href="javascript:void(0)">Add to group</a>');t.push('<div class="nav-sub-ul grp"><div class="ld"><img src="',k.spinner,'" class="va-m"/>Loading....</div></div></div>');}if(x&&!F.onContest){t.push('<div class="nav-li"> <a class="link">Post to contest</a><ul class="nav-sub-ul" style="width: 178px;">');t.push('<li class="nav-sub-li" id="contest_post"><a action="contestAdd" class="nav-sub-a nsa"><span style="white-space: nowrap;" perculate="true">',w.name," photo contest</span>");t.push('<span perculate="true" class="cd">Ends: ',w.endDate,"</span></a></li></ul></div>");}t.push("</div><div class='clearall'></div></div><div class='post_cont'><div class='grid'><div class='row'>");for(m=0;m!=H;m++){f=E[m];C=f.caption;a=F.people[f.person];if(m!=0&&m%6==0){t.push("<div class='clearall'></div></div><div class='row'>");}t.push("<div class='clipout'><div class='clipin'><a class='imga' title='",C,"' href='");if(ut.isEmpty(C)){}else{}t.push("'><img action='photo_",m,"' src='",ut.getImageURL(f.loc,75,0,c.id),"' alt='",C);if(a){t.push(" by ",a.name);}t.push("'/><span class='stat'>");v=F.likes[f.id]||[];z=0;for(G=p-1;G>=0;G--){comment=q[G];e=h[comment.creator_person];if(comment.photo==f.id&&e){z++;}}if(v.length){t.push("<img src='http://cdn2.lifeblob.com/lifeblob/img/theme-gray/common/max_blob/like.vd3a8e0.png' title='",v.length," likes on this photo'>");}if(z){t.push("<img src='http://cdn0.lifeblob.com/lifeblob/img/theme-gray/common/max_blob/comment.ve2ce2c.png' title='",z," comments on this photo'>");}t.push("</span></a></div></div>");}t.push("<div class='clearall'></div></div>");if(!ut.isEmpty(B)){t.push("<div class='desc'><div class='t'>Description</div><div class='fr'>");if(x){t.push("<a href='/photos/edit/",d,"' class='link'>Edit</a>");}t.push("</div><div class='clearall'></div></div>");t.push("<div>",B,"</div>");}t.push("</div><div class='right'>");t.push("<div class='section'><div></div><a href='/store/photoprints/create?memoirId=",d,"&all=true&src=photo' title='Buy prints and other photo gifts at the lifeblob store' class='red large lbut'>Buy Prints »</a></div>");t.push("<div class='section sectiont recommend share' id='sharePanel'>","        <div class='h'>","                <div class='t'>Share</div>","                <div class='fr'>","                    ","                </div>","                <div class='clearall'></div>","         </div>","        <div class='b' id='sharePanel_content'>","        </div>","</div>");t.push("<div class='section sectiont'>");t.push(k._getGridH("Location","post-location-h",x?"editPlace":null,"Edit"));t.push("<div class='b'><div id='post-location' class='related location'>");t.push(k._getPlaceHtml());t.push("</div></div></div>");t.push("<div class='section sectiont'>");t.push(k._getGridH(g(M.P84,[h.length]),"post-people-h",x?"addPeople":null,"Add"));t.push("<div class='b'><div id='suggest-people'></div><ul id='post-people' class='related'>");t.push(k._getPostPeople(x));t.push("</ul></div></div>");t.push("<div class='section sectiont'>");t.push(k._getGridH(g(M.P75,[D.length]),"post-group-h",x?"addGroups":null,"Add"));t.push("<div class='b'><div id='suggest-groups'></div><ul id='post-groups' class='related'>");t.push(k._getPostGroups(x));t.push("</ul></div></div>");t.push("</div><div id='img-preload'></div>");o.innerHTML=t.join("");k.current=0;k.currentPhoto=0;k.photoMode=false;dojo.hash("");},_getGridH:function(d,e,c,b){var a=["<div class='h'>","<div class='t' id='",e,"'>",d,"</div>","<div class='fr'>"];if(c){a.push("<a action='",c,"' class='link'>",b,"</a>");}a.push("</div><div class='clearall'></div></div>");return a.join("");},_aT:function(c,a,b){dojo.publish("logAjaxEvent",["viewpost",c,a,b]);},getName:function(){return"PostControl";}});dojo.declare("PhotoImportControl",PageControl,{constructor:function(){var d=this,c=APP_TYPE,b,a;d.appNames={};d._active={};d.currentTip=0;d.tips=["Tip: Your private photos will continue to remain private on lifeblob.","Tip: You can tag people on the photos.","Tip: You can discover related photos."];d.store_tips=["Tip: Use <strong></strong>"];for(b in c){a=c[b];d.appNames[a]=ut.getAppName(a).toLowerCase();if(a==c.FACEBOOK_PHOTOS){d.appNames[a]="facebook";}}dojo.subscribe("photoImportResponse",d,"_importResponse");},initialize:function(b){var a=this;dojo.query(".photo-imports").forEach(function(c){dojo.connect(c,"onclick",a,"_clickHandlers");a.node=c;});},_clickHandlers:function(c){var f=this,h=c.target,k=dojo.attr(h,"action");if(!k){while(h&&!k&&!dojo.hasClass(h,"photo-imports")){h=h.parentNode;k=dojo.attr(h,"action");}}if(!k){return;}var o=dojo.query,b=dojo.attr,l=k.split("@",2),r=l[0],p=l[1],j=true,m=LB.getUser(),e=!m.logged,a=APP_TYPE,g,q,d;if(p){d=p.split(":");}console.log("action["+k+"]");switch(r){case"importStuff":f._importStuff(d[0]);break;case"uploadPhotos":if(e){dojo.publish("quickAccount",[{src:"photoimport",headingMsg:"Sign in to upload your photos",deferMsg:"Please wait while we take you to the upload page",redirectUrl:dojo.attr(h,"href")}]);}else{j=false;}break;}if(j){dojo.stopEvent(c);}},_importStuff:function(c){c=parseInt(c);var e=this,b=LB.getUser(),f=!b.logged,d=APP_TYPE,a=e.appNames[c];if(e.inprogress){alert("A photo import is currently in progress. Please retry after that import finishes.");return;}e._aT("import-open-"+(f?"anon":"logged"),a);if(c==d.FACEBOOK_PHOTOS){e._facebookPhotos();return;}if(f){e.key="ch_"+new Date().getTime();dojo.publish("quickAccount",[{src:"photoimport",headingMsg:"Sign in to get your "+a+" photos",deferMsg:"Reloading the page to show the newly imported photos from "+a+".",deferFunc:dojo.hitch(e,"_afterSignup",c,a),skipAutoReload:true,closeChannel:e.key}]);}else{e._active[c]={};e._showMsg("Please allow lifelob to access your "+a+" photos....",{tip:"Tip: Please allow popups from lifeblob"});e._showPopup(c);}},_facebookPhotos:function(){var a=this;a._showMsg("Waiting for facebook's response...",{tip:"Note: This would take a few seconds."});FB.Connect.requireSession(function(){API_SVC.linkupFacebook().addCallback(function(){a._aT("import-open","facebook-linkup-response");FB.Facebook.apiClient.users_hasAppPermission("offline_access",function(b){if(b==0){FB.Connect.showPermissionDialog("offline_access",function(c){if(c){a._aT("import-open","facebook-perma-access");var d=document.createElement("iframe");dojo.byId("facebook_offline_loaded_iframe_container").appendChild(d);dojo.attr(d,"src","http://www.lifeblob.com/xd_domain_load.htm");}else{a._aT("import-open","facebook-session-access");a._importFb();}});}else{a._importFb();}});});});},_importFb:function(){var a=this;a._active[APP_TYPE.FACEBOOK_PHOTOS]={};a._showMsg("Importing photos from facebook ...",{tip:"Note: This would take a few seconds."});API_SVC.facebookImportRequest().addCallback(dojo.hitch(a,a._fbImportResponse));},_fbImportResponse:function(b){var c=this,a=b.result;if(!a||a<0){c._aT("import-facebook-error","service");alert("We are having difficulty in connecting to facebook. Please try again in sometime.");return;}else{if(b.code==3){c._aT("import-facebook-error","session");alert("We are having difficulty in connecting to facebook. Please try again in sometime.");return;}}c.currentTip=0;c._importResponse(APP_TYPE.FACEBOOK_PHOTOS,a,false);},_afterSignup:function(d,b,a){console.log("_afterSignup: appType["+d+"] appName["+b+"] service["+a+"]");var f=this,c=LB.getUser(),e=APP_TYPE,g=!c.logged;if(g){f._closeMsg();console.log("error case. user not logged in");return;}switch(a){case"google":if(d==e.PICASA){dojo.publish(f.key,[]);f._closeMsg();return;}break;case"facebook":if(d==e.FACEBOOK_PHOTOS){dojo.publish(f.key,[]);f._closeMsg();return;}break;case"lifeblob":}f._startImport(d,b);dojo.query(".pio .lbut").forEach(function(h){f.connect=dojo.connect(h,"onclick",null,function(){dojo.disconnect(f.connect);f._importStuff(d);});});},_showPopup:function(f){var d=this,c=700,k=500,j=100,e=0,a=APP_TYPE,h=d.appNames[f],b;if(f==a.FLICKR){c=780;k=700;j=10;}else{if(f==a.TWITTER){c=776;j=10;}}e=window.screen.width/2-c/2;b=d._active[f].popup;if(b){try{b.close();}catch(g){}}switch(f){case a.PICASA:b=window.open("https://www.google.com/accounts/AuthSubRequest?next=http%3A%2F%2Fwww.lifeblob.com%2Fcallback%2Fauth%3FappType%3D11TOPIC_POINTER&scope=http%3A%2F%2Fpicasaweb.google.com%2Fdata%2F&secure=0&session=1".replace("TOPIC_POINTER",d._getTopicReplace()),"","status=false, width="+c+"px, height="+k+"px, left="+e+"px, screenX="+e+"px, top="+j+"px, screenY="+j+"px");break;case a.FLICKR:b=window.open("http://www.flickr.com/services/auth/?api_key=0c46e7f6525547b571fdc05b2d7a9957&perms=read&api_sig=54cf32fac9c008dd3d0718f1e0f10f2a","","status=false, width="+c+"px, height="+k+"px, left="+e+"px, screenX="+e+"px, top="+j+"px, screenY="+j+"px");break;case a.SMUGMUG:b=window.open("http://www.lifeblob.com/callback/oauth/authorizeUser?appType=13","","status=false, width="+c+"px, height="+k+"px, left="+e+"px, screenX="+e+"px, top="+j+"px, screenY="+j+"px");break;case a.TWITTER:b=window.open("http://www.lifeblob.com/callback/oauth/authorizeUser?appType=61TOPIC_POINTER".replace("TOPIC_POINTER",d._getTopicOauthReplace()),"","status=false, width="+c+"px, height="+k+"px, left="+e+"px, screenX="+e+"px, top="+j+"px, screenY="+j+"px");break;case a.PHOTOBUCKET:b=window.open("http://www.lifeblob.com/callback/oauth/authorizeUser?appType=16","","status=false, width="+c+"px, height="+k+"px, left="+e+"px, screenX="+e+"px, top="+j+"px, screenY="+j+"px");break;default:return;}if(!b){d._closeMsg();d._aT("import-popup-blocked",h);alert("Popup Blocked detected. Please allow popups from Lifeblob and try again");return;}b.focus();d._active[f].popup=b;d._waitForPopup(f);},_waitForPopup:function(a){var b=this;b._active[a].popupWait=setInterval(function(){if(b._active[a].popup.closed){b._aT("import-popup-closed",b.appNames[a]);clearInterval(b._active[a].popupWait);}},3000);},_importResponse:function(c,h,g){var f=this,e=APP_TYPE,d=f._active[c],a=f.appNames[c],b;if(g){d.popup.close();clearInterval(d.popupWait);d.popupWait=null;}d.importId=h;f._aT("import-start-"+(h?"true":"false"),a);if(h>0){f.currentTip=0;f._showMsg("Importing photos from "+a+" ...",{tip:f.tips[f.currentTip]});f._showProgress(c);}else{f._closeMsg();f._showError(f.appNames[c]);}},_showProgress:function(b){var d=this,c=d._active[b],a=d.appNames[b];c.handle=setInterval(function(){if(!c.processing){c.processing=true;d.currentTip=(d.currentTip+1)%d.tips.length;d._showMsg("Importing photos from "+a+" ...",{tip:d.tips[d.currentTip]});API_SVC.importStatus(c.importId).addCallback(dojo.hitch(d,d._onImportStatusResponse,b));}},3000);},_onImportStatusResponse:function(e,d){var g=this,f=g._active[e],b=g.appNames[e],a=d.result,c=LB.getUser(),h=!c.logged;if(d.stat!="ok"){g._aT("import-start-response-error",b);f.processing=false;g._closeMsg();alert("Server skipped a beat.");return;}switch(a.status){case 0:f.processing=false;return;case 1:clearInterval(f.handle);f.handle=null;f.processing=false;g._aT("import-start-success",b);if(g.key){dojo.publish(g.key,[]);g._closeMsg();}else{g._showMsg("Reloading the page to show the newly imported photos from "+b);ut.reload();}break;default:clearInterval(f.handle);f.handle=null;f.processing=false;g._closeMsg();if(a.errorCode==2){g._aT("import-start-response-error-duplicate",b);g._showDupError(b);}else{if(d.result.errorCode==6){g._aT("import-start-response-error-twitter-ouath",b);g._showTwitterError(b);}else{g._aT("import-start-response-error-others",b);g._showError(b);}}break;}},_showError:function(a){alert("We are unable to pull photos from "+a+" currently. Please try again in sometime");ut.rl();},_showDupError:function(a){ref._showMsg("You have already linked up "+a+" account. Reloading the page...");ut.reload();},_showTwitterError:function(a){alert(dojo.string.substitute(M.IMPORT_TWITTER_ERROR,[a]));},_getTopicReplace:function(){if(window.topic){return"%26topicId%3D"+entityId;}return"";},_startImport:function(b,a){var c=this;$(".pio").removeClass("hidden").forEach(function(e){var d=["<div class='msg1'>You are now signed in</div>","<div class='msg2'>Click the button below to import your ",a," photos</div>","<div class='butcont'><button class='lbut small blue'>Import ",a.charAt(0).toUpperCase()+a.slice(1)," Photos</button></div>"].join("");$(".bl",e).html(d);});},_showMsg:function(a,b){b=b||{};dojo.query(".pio").removeClass("hidden").forEach(function(d){var c=["<div class='l'><img class='va-m ",(b.skipPhoto?"hidden":""),"' src='"];c.push(b.error?"http://cdn1.lifeblob.com/lifeblob/img/theme-gray/common/errors/error_48.v6e08a3.png":"http://cdn0.lifeblob.com/lifeblob/img/theme-gray/spinners/hourglass.v199e1c.gif");c.push("'/></div><div class='r'><div class='msg'",(b.error?" style='color:#EE0000'":""),">",a,"</div>");if(b.tip){c.push("<div class='tip'>",b.tip,"</div>");}c.push("</div>");dojo.query(".bl",d).html(c.join(""));});},_closeMsg:function(){dojo.query(".pio").addClass("hidden");delete this.key;},_aT:function(c,a,b){dojo.publish("logAjaxEvent",["photoimport",c,a,b]);},getName:function(){return"PhotoImportControl";}});dojo.declare("HelpControl",Control,{initialize:function(c){var b=this,a=LB.getUser(),d=c.obj;if(!a.logged){return;}b.timeline=c;b.h=a.help;dojo.subscribe("showHelpOverlay",b,"done");},draw:function(j,k,f,g){var e=this,h="H"+j,l=M["H"+j],o=M["HM"+j],c,m,b,d=(dojo.isIE==6)?-1:-6,a=-7;dojo.query(".help_cont").forEach(function(p){p.innerHTML=["<table class='helpout' cellspacing='0' cellpadding='0' border='0'><tbody>","<tr><td class='c11' colspan='2'></td><td class='c13'></td></tr>","<tr><td class='c21'></td><td class='c22'>","<table cellspacing='0' cellpadding='0' border='0' width='100%'>","<tr><td><div class='title'>",l,"</div></td>","<td class='close'><a help='",j,"' href='javascript:void(0)'/></td></tr>","<tr><td><div class='content' style='width:300px'>",o,"</div></td></tr></table></td>","<td class='c23'></td></tr>","<tr><td class='c31'></td><td class='c32'></td><td class='c33'></td></tr>","</table>","<div class='pointer_",g,"'></div>"].join("");dojo.removeClass(p,"hidden");c=dojo.position(p,true);m=c.h;b=c.w;dojo.query("td.close a",p).onclick(function(q){dojo.stopEvent(q);dojo.addClass(p,"hidden");e.done(parseInt(dojo.attr(q.currentTarget,"help")));});if(g=="down"){finalTop=k-m+5;a=20;finalLeft=f-a;if(finalLeft+b>document.width){a=b-30;finalLeft=f-a;}}else{if(g=="left"){finalLeft=f+9;d=-30;finalTop=k-d-m;}}dojo.style(p,"top",finalTop+"px");dojo.style(p,"left",finalLeft+"px");dojo.query(".pointer_"+g,p).forEach(function(q){dojo.style(q,"margin",d+"px 0 0 "+a+"px");});});},done:function(a){if(a!=-1){this.disable(a);}switch(a){case -1:this.draw(0,180,128,"down");break;case 0:this.draw(1,270,232,"left");break;case 1:this.draw(2,160,128,"down");break;}},enabled:function(a){return((this.h&1<<a)==0);},enable:function(a){this.h=(this.h&~(1<<a));API_SVC.help(a,false);},disable:function(a){this.h=(this.h|1<<a);API_SVC.help(a,true);},getName:function(){return"Help Control";}});dojo.declare("StartControl",Control,{constructor:function(){var a=this;a._importing=false;a._processing=false;dojo.subscribe("importResponse",a,"_importResponse");dojo.subscribe("/facebook/ready",a,"_fbReady");},initialize:function(b,c){var a=this;a.params=c;a.timeline=b;dojo.query(".start").connect("onclick",a,"_clickHandlers");dojo.query(".d_info").forEach(function(d){var f=dojo.fadeOut({node:d,delay:9000,duration:1000}),e=dojo.connect(f,"onEnd",function(){dojo.addClass(d,"hidden");dojo.disconnect(e);});f.play();});},_fbReady:function(){var a=this,b=a.params;if(b.fbPerms){a._getFbPerms(b.fbPerms,b.fbType);}},_clickHandlers:function(event){var ref=this,node=event.target,action=dojo.attr(node,"action");if(!action){while(node&&!action&&!dojo.hasClass(node,"start")){node=node.parentNode;action=dojo.attr(node,"action");}}console.log(action);switch(action){case"ab-import":case"data-import":ref._import(dojo.eval(dojo.attr(node,"impType")));break;case"network-selectall":case"network-deselectall":ref._updateSelect(action=="network-selectall");break;case"network-connect":var abType=dojo.eval(dojo.attr(node,"abType"));ref._nwConnectInvite(action,true,abType);break;case"network-invite":var abType=dojo.eval(dojo.attr(node,"abType"));ref._nwConnectInvite(action,false,abType);break;case"network-invite-others":ref._nwInviteOthers();break;case"network-invite-more":ref._nwMore(node);break;case"more-reco":ref._moreReco(node);break;case"discover-learnmore":dojo.query(".learn").toggleClass("hidden");break;}},_moreReco:function(a){var b=dojo.attr(a,"reco");dojo.query(".mm .ct .dt .more-"+b).removeClass("hidden");dojo.query(".more-reco",a.parentNode).orphan();},_getFbPerms:function(a,c){var b=this;dojo.query(".load_overlay").addClass("invisible");FB.Connect.showPermissionDialog(a,function(d){var f=a.split(","),e=FB.Connect.get_loggedInUser();dojo.query(".load_overlay").forEach(function(g){dojo.style(g,"width","305px");b._setProgress("Reading permissions...");dojo.removeClass(g,"invisible");});FB.Facebook.apiClient.fql_query("select "+f+" from permissions where uid == "+e,function(g,j){b._setProgress("Processing permissions...");if(!j){var h=[],m=[],l=false,k;for(var k in g[0]){if(g[0][k]){if(k=="publish_stream"){l=true;}h.push(k);}else{m.push(k);}}API_SVC.fbPerms({granted:h,notgranted:m}).addCallback(function(q){if(!l){var r=LB.getUser().person,u=r.name.split(" ")[0],w=u+" is using lifeblob to connect with friends through photos",v="Share unlimited photos with friends and family, discover photos of friends that are related with yours or simply enjoy exploring photos through relations.",p="http://www.lifeblob.com/user/"+r.displayName+"?utm_source=start_flow&utm_campaign=account_creation&utm_medium=facebook",o=true?"http://external.ak.fbcdn.net/safe_image.php?d=4fa914a39566d8acedc4978e0df03c9c&url=http://blog.lifeblob.com/wp-content/uploads/2009/11/logo-square2.png&w=90&h=90":"img/theme-gray/logo/fb_share.v00aa45.png";actionLinks=[{text:"View all photos",href:p}],attachment={media:[{type:"image",src:o,href:p}],name:w,href:p,description:v};FB.Connect.streamPublish("",attachment,actionLinks,null,"What do you think?",function t(x,y){dojo.publish("logAjaxEvent",["account","fb_publish_start",x?"yes":"no"]);b._importFbData(c);});}else{b._importFbData(c);}});}else{b._importFbData(c);}});});},_importFbData:function(b){var a=this,c=b!=3;a._setProgress("Fetching account details...");API_SVC.facebookImportRequest().addCallback(function(d){console.log(d);if(d.stat!="ok"){console.log("Error. Code:"+d.code+" Desc:"+d.desc);return;}a._setProgress(c?"Getting your photos...":"Building photo connections...");var e=setInterval(function(){if(c){a._setProgress("Building your lifeblob...");}API_SVC.importStatus(d.result).addCallback(function(g){console.log(g);if(g.stat!="ok"){console.log("Error. Code:"+d.code+" Desc:"+d.desc);return;}var f=g.result,h=f.data,j=f.errorCode;switch(f.status){case 0:return;case 1:console.log(h);if(c){a._setProgress("Building photo connections...");}break;default:if(j==2){console.log("duplicate import");}else{console.log("some other error:"+j);}if(c){a._setProgress("Building photo connections...");}break;}clearInterval(e);switch(b){case 1:case 2:a._fetchRecommend();break;case 3:a._setProgress("Searching for facebook friends...");ut.rd("/start/facebookNetwork");break;}a._fetchRecommend();});},3000);});},_fetchRecommend:function(){API_SVC.discover().addCallback(function(d){if(d.stat!="ok"){console.log("Error. Code:"+d.code+" Desc:"+d.desc);}else{var b=d.result,c=b.photoId,a=b.memoirId;if(c){ut.rd(["/start/discover/",c,"?memoirId=",a].join(""));return;}}ut.rd("/start/discover");});},_showProgress:function(c,b,a){dojo.query(c).forEach(function(d){if(a){dojo.addClass(d,"disabled");dojo.attr(d,"disabled","true");}else{dojo.removeClass(d,"disabled");dojo.removeAttr(d,"disabled");}d.innerHTML=b;});},_updateSelect:function(a){dojo.query(".nt input.cb").forEach(function(b){b.checked=a;});},_nwInviteOthers:function(){var a=this;dojo.query(".invite").forEach(function(c){var f=[],g=[],b=false,e,d;dojo.query(".row",c).forEach(function(j){var h=dojo.query(".f .input",j);if(h.length){e=dojo.query(".f .input",j)[0].value||"x";inviteEmailNode=dojo.query(".s .input",j)[0],d=inviteEmailNode.value;if(d!=""){if(ut.getEmail(d)){f.push(e);g.push(d);}else{b=true;dojo.addClass(inviteEmailNode,"error");}}}});if(b){return;}if(g.length){a._showProgress(".invite .norm_button","Connecting...",true);API_SVC.inviteByName(g,f,a._getMessage()).addCallback(function(h){dojo.query(".row .input",c).forEach(function(j){j.value="";});a._reset();a._showProgress(".invite .norm_button","Get Connected",false);dojo.query(".other_emails_success").forEach(function(l){l.innerHTML=["<div class='d_info'>",dojo.string.substitute(M.CONTACT_INVITE_SUCCESS,[g.length]),"</div>"].join("");var k=dojo.fadeOut({node:l,delay:9000,duration:1000}),j=dojo.connect(k,"onEnd",function(){dojo.addClass(l,"hidden");dojo.disconnect(j);});k.play();});});}else{alert(M.IMPORT_CONTACT_INVITE);}});},_getMessage:function(){var a=dojo.query(".invite_msg");if(a.length>0){return a[0].value;}return"";},_nwMore:function(a){dojo.query(".invite .rows").forEach(function(e){var d=dojo.clone(a),c="<div class='row'><div class='f'><input type='text' class='input'/></div><div class='s'><input type='text' class='input'/></div></div>",b;dojo.destroy(a);for(b=0;b<5;b++){rowNode=dojo.place(c,e);}dojo.place(d,dojo.query(".invite .s input")[0],"after");});},_nwConnectInvite:function(e,k,b){b=b||APP_TYPE.MAIL;var j=[],a=this,d=a.params,h,g;dojo.query(".nt input.cb").forEach(function(l){if(l.checked){h=l.value;j.push(k?parseInt(h):h);}});g=j.length;if(!g){alert(M.IMPORT_CONTACT_CONNECT);}else{a._showProgress("button[action='"+e+"']","Connecting...",true);if(k){API_SVC.addMultiFriends(j.join(",")).addCallback(function(l){if(d.fbInvite){ut.rd("/start/connect?connected="+g);}else{ut.rd(["/start/invite/",dojo.byId("requestId").value,"?connected=",g,"&abType=",b].join(""));}});}else{var c=1,f=APP_TYPE;switch(b){case f.AOL:c=6;break;case f.GMAIL:c=2;break;case f.YMAIL:c=3;break;case f.LIVE:c=4;break;case f.FACEBOOK:c=5;break;}API_SVC.invite(j.join(","),a._getMessage(),c).addCallback(function(l){ut.rd("/start/connect?invited="+g);});}}},_import:function(b){var d=this,c=APP_TYPE,a=ut.getAppName(b);lowerAppName=a.toLowerCase().replace(/ /g,"_");if(d._importing){alert(M.IMPORT_IN_PROGRESS_ALERT);return;}dojo.query(".linkups").addClass("hidden");dojo.query(".service_node").removeClass("selected_service_node");switch(b){case c.MAIL:case c.AOL:dojo.query("."+lowerAppName+"_linkup").removeClass("hidden");dojo.query("."+lowerAppName+"_import_row").addClass("selected_service_node");break;case c.FACEBOOK:case c.FACEBOOK_PHOTOS:d._fbConnect(b);break;default:d._importing=d._showPopup(b);break;}},_fbConnect:function(a){var c=this,d=c.params,b=d.fbType;FB.Connect.requireSession(function(){c._setProgress("Connecting with facebook...");API_SVC.linkupFacebook().addCallback(function(g){if(g.stat!="ok"){console.log("Error. Code:"+g.code+" Desc:"+g.desc);return;}var e=g.result,h=e.userId,f=e.status;if(LB.getUser().uid!=h){alert('This facebook user is linked to another lifeblob account. Clicking "Ok" will log you into that account.');c._setProgress("Signing in...");ut.reload();}else{if(f==0||f==3){ut.rd("/start/facebook/"+b);return;}else{if(f==1){alert('This lifeblob account already has a facebook user linked to it. Click "Ok" to create a new account for your facebook user.');c._setProgress("Creating a new account...");ut.rd("/account/simplelogout?next=/account/fconnect");}else{if(f==2||f==4){alert('This facebook user is linked to another lifeblob account. Clicking "Ok" will log you into that account.');c._setProgress("Signing in...");ut.reload();}}}}});});},_showPopup:function(f){var d=this,a=d.popup,c=700,k=500,j=100,b=APP_TYPE,g=false,e;if(f==b.YMAIL||f==b.FACEBOOK){c=780;k=700;j=10;}else{if(f==APP_TYPE.TWITTER){c=776;j=10;}}e=(window.screen.width/2-c/2);if(a){try{a.close();}catch(h){}}switch(f){case APP_TYPE.PICASA:g="https://www.google.com/accounts/AuthSubRequest?next=http%3A%2F%2Fwww.lifeblob.com%2Fcallback%2Fauth%3FappType%3D11TOPIC_POINTER&scope=http%3A%2F%2Fpicasaweb.google.com%2Fdata%2F&secure=0&session=1";break;case APP_TYPE.SMUGMUG:g="http://www.lifeblob.com/callback/oauth/authorizeUser?appType=13";break;case APP_TYPE.YOUTUBE:g="https://www.google.com/accounts/AuthSubRequest?next=http%3A%2F%2Fwww.lifeblob.com%2Fcallback%2Fauth%3FappType%3D51TOPIC_POINTER&scope=http%3A%2F%2Fgdata.youtube.com%2F&secure=0&session=1";break;case APP_TYPE.TWITTER:g="http://www.lifeblob.com/callback/oauth/authorizeUser?appType=61TOPIC_POINTER";break;case APP_TYPE.PHOTOBUCKET:g="http://www.lifeblob.com/callback/oauth/authorizeUser?appType=16";break;case APP_TYPE.GMAIL:g="https://www.google.com/accounts/AuthSubRequest?next=http%3A%2F%2Fwww.lifeblob.com%2Fcallback%2Fauth%3FappType%3D41&scope=http%3A%2F%2Fwww.google.com%2Fm8%2Ffeeds%2F&secure=0&session=1";break;case APP_TYPE.LIVE:g="http://www.lifeblob.com/callback/live/authorizeUser";break;case APP_TYPE.YMAIL:g="http://www.lifeblob.com/callback/yahoo/authorizeUser";break;case APP_TYPE.FLICKR:g="http://www.flickr.com/services/auth/?api_key=0c46e7f6525547b571fdc05b2d7a9957&perms=read&api_sig=54cf32fac9c008dd3d0718f1e0f10f2a";break;}if(!g){console.log("No authurl for "+f);return false;}d._setProgress("Waiting for authentication...");g=g.replace("TOPIC_POINTER","");a=window.open(g,"","status=false, width="+c+"px, height="+k+"px, left="+e+"px, screenX="+e+"px, top="+j+"px, screenY="+j+"px");if(!a){return false;}a.focus();d.popup=a;d._waitForPopup(f);return true;},_reset:function(){dojo.query(".load_overlay").addClass("hidden");dojo.query(".linkups").addClass("hidden");dojo.query(".selected_service_node").removeClass(".selected_service_node");this._importing=false;},_waitForPopup:function(a){var b=this;b.popupWait=setInterval(function(){if(b.popup.closed){clearInterval(b.popupWait);b._reset();}},3000);},_showImportError:function(a){var b=this,c=(a>=40&&a<50);b._processing=false;alert(c?"Error fetching the address book":"Error fetching from external service");b._reset();},_importResponse:function(b,e){var c=this,d=(b>=40&&b<50),a=c.popup;if(a){a.close();clearInterval(c.popupWait);c.popupWait=null;}if(e>0){c._setProgress("Fetching account details...");c.handle=setInterval(function(){if(!c._processing){c._processing=true;if(!d){c._setProgress("Getting your photos...");}API_SVC.importStatus(e).addCallback(dojo.hitch(c,c._onImportStatus,b));}},3000);}else{c._showImportError(b);}},_onImportStatus:function(c,b){var d=this,e=(c>=40&&c<50);d._processing=false;if(b.stat!="ok"){console.log("Error. Code:"+b.code+" Desc:"+b.desc);d._reset();return;}var a=b.result,f=a.errorCode;switch(a.status){case 0:return;case 1:if(e){d._setProgress("Searching for friends...");ut.rd("/start/network/"+a.data[0]+"?abType="+c);}else{d._setProgress("Searching for friends...");ut.rd("/start/discover");}break;default:if(f==2){console.log("duplicate import");d._hideMessage();dojo.query(".startnext").removeClass("hidden");alert("You have already linked up this account.");}else{console.log("some other error:"+f);d._showImportError();}break;}clearInterval(d.handle);d.handle=null;},_setProgress:function(b,a){dojo.query(".load_overlay").removeClass("hidden").forEach(function(d){var c=["<img class='img' src='"];c.push(a?"http://cdn1.lifeblob.com/lifeblob/img/theme-gray/common/errors/error_48.v6e08a3.png":"http://cdn0.lifeblob.com/lifeblob/img/theme-gray/spinners/hourglass.v199e1c.gif");c.push("'/><span class='msg'",(a?" style='color:#EE0000'":""),">",b,"</span>");d.innerHTML=c.join("");});},_hideMessage:function(){dojo.query(".load_overlay").addClass("hidden");},getName:function(){return"StartControl";}});dojo.declare("ShareControl",PageControl,{initialize:function(l){var e=this;if(dojo.query(".google-buzz-post").length>0){var h=window.lb_data;var d=h.blob.photo;var m=h.photos;var j=null;for(var f in m){var c=m[f];if(d==c.loc){j=c.loc;break;}}var b=window.location.href.split("?");if(b.length>1){var k=b[1].split("&");var a=null;for(var o in k){var g=k[o].split("=");if(g.length>1&&g[0]=="photoId"){a=g[1];e.buzzInit(ut.getImageURL(j,75,0,h.blob.id),a);break;}}}else{e.buzzInit(ut.getImageURL(j,75,0,h.blob.id),-1);}}dojo.query(".external .fbshare").onclick(function(w){if(window.FB&&window.FB.Connect){dojo.stopEvent(w);var z="",r=w.currentTarget;dojo.query(".sidebar .desc").forEach(function(A){z=A.innerHTML;});z=dojo.trim(z);if(z.length==0){var p=dojo.query("meta[name='description']");if(p&&p.length>0){z=p[0].content;}}var y=document.title,u=l.obj,x=(u.type==TOPIC_TYPE)?4:((u.type==PLACE_TYPE)?2:((u.type==TAG_TYPE)?3:1)),q="http://cdn.lifeblob.com/lifeblob/flash/Lifeblob.swf?id="+u.id+"&type="+x,t=dojo.attr(r,"image"),v={media:[{type:"flash",swfsrc:q,imgsrc:"http://www.lifeblob.com/image/overlay?url="+t,width:"100",height:"80",expanded_width:"420",expanded_height:"260"}],name:y,description:z};FB.Connect.streamPublish("",v);}});},getName:function(){return"Share Control";}});function google_buzz_set_count(a){}dojo.declare("FriendsAndImportControl",Control,{constructor:function(){var a=this;a._importing=false;a._processing=false;dojo.subscribe("importResponse",a,"_importResponse");dojo.subscribe("/facebook/ready",a,"_fbReady");},initialize:function(b,c){var a=this;a.params=c;a.timeline=b;dojo.query(".friendandimport").connect("onclick",a,"_clickHandlers");dojo.query(".d_info").forEach(function(d){var f=dojo.fadeOut({node:d,delay:9000,duration:1000}),e=dojo.connect(f,"onEnd",function(){dojo.addClass(d,"hidden");dojo.disconnect(e);});f.play();});},_fbReady:function(){var a=this,b=a.params;if(b.fbPerms){a._getFbPerms(b.fbPerms,b.photos);}},_clickHandlers:function(event){var ref=this,node=event.target,action=dojo.attr(node,"action");if(!action){while(node&&!action&&!dojo.hasClass(node,"friendandimport")){node=node.parentNode;action=dojo.attr(node,"action");}}console.log(action);switch(action){case"ab-import":case"data-import":ref._import(dojo.eval(dojo.attr(node,"impType")));break;case"network-selectall":case"network-deselectall":ref._updateSelect(action=="network-selectall");break;case"network-connect":var abType=dojo.eval(dojo.attr(node,"abType"));ref._nwConnectInvite(action,true,abType);break;case"network-invite":var abType=dojo.eval(dojo.attr(node,"abType"));ref._nwConnectInvite(action,false,abType);break;case"network-invite-others":ref._nwInviteOthers();break;case"store-invite-others":ref._storeInviteOthers();break;case"network-invite-more":ref._nwMore(node);break;case"more-reco":ref._moreReco(node);break;case"discover-learnmore":dojo.query(".learn").toggleClass("hidden");break;default:return;}dojo.stopEvent(event);},_moreReco:function(a){var b=dojo.attr(a,"reco");dojo.query(".mm .ct .dt .more-"+b).removeClass("hidden");dojo.query(".more-reco",a.parentNode).orphan();},_getFbPerms:function(a,c){var b=this;dojo.query(".load_overlay").addClass("invisible");FB.Connect.showPermissionDialog(a,function(d){var f=a.split(","),e=FB.Connect.get_loggedInUser();dojo.query(".load_overlay").forEach(function(g){dojo.style(g,"width","305px");b._setProgress("Reading permissions...");dojo.removeClass(g,"invisible");});FB.Facebook.apiClient.fql_query("select "+f+" from permissions where uid == "+e,function(g,j){b._setProgress("Processing permissions...");if(!j){var h=[],l=[],k;for(var k in g[0]){if(g[0][k]){h.push(k);}else{l.push(k);}}API_SVC.fbPerms({granted:h,notgranted:l}).addCallback(function(m){b._importFbData(c);});}else{b._importFbData(c);}});});},_importFbData:function(b){var a=this;a._setProgress("Fetching account details...");API_SVC.facebookImportRequest().addCallback(function(c){console.log(c);if(c.stat!="ok"){console.log("Error. Code:"+c.code+" Desc:"+c.desc);return;}a._setProgress(b?"Getting your photos...":"Searching for facebook friends...");var d=setInterval(function(){if(b){a._setProgress("Building your lifeblob...");}API_SVC.importStatus(c.result).addCallback(function(f){console.log(f);if(f.stat!="ok"){console.log("Error. Code:"+c.code+" Desc:"+c.desc);return;}var e=f.result,g=e.data,h=e.errorCode;switch(e.status){case 0:return;case 1:console.log(g);if(b){a._setProgress("Building photo connections...");}break;default:if(h==2){console.log("duplicate import");}else{console.log("some other error:"+h);}if(b){a._setProgress("Building photo connections...");}break;}clearInterval(d);if(b){ut.rd("/account/import?fb=true");}else{a._setProgress("Searching for facebook friends...");ut.rd("/account/connectFacebookFriends");}});},3000);});},_showProgress:function(c,b,a){dojo.query(c).forEach(function(d){if(a){dojo.addClass(d,"disabled");dojo.attr(d,"disabled","true");}else{dojo.removeClass(d,"disabled");dojo.removeAttr(d,"disabled");}d.innerHTML=b;});},_updateSelect:function(a){dojo.query(".nt input.cb").forEach(function(b){b.checked=a;});},_nwInviteOthers:function(){var a=this;dojo.query(".invite").forEach(function(c){var f=[],g=[],b=false,e,d;dojo.query(".row",c).forEach(function(j){var h=dojo.query(".f .input",j);if(h.length){e=dojo.query(".f .input",j)[0].value||"x";inviteEmailNode=dojo.query(".s .input",j)[0],d=inviteEmailNode.value;if(d!=""){if(ut.getEmail(d)){f.push(e);g.push(d);}else{b=true;dojo.addClass(inviteEmailNode,"error");}}}});if(b){return;}if(g.length){a._showProgress(".invite .norm_button","Connecting...",true);API_SVC.inviteByName(g,f,a._getMessage()).addCallback(function(h){dojo.query(".row .input",c).forEach(function(j){j.value="";});a._reset();a._showProgress(".invite .norm_button","Get Connected",false);dojo.query(".other_emails_success").forEach(function(l){l.innerHTML=["<div class='d_info'>",dojo.string.substitute(M.CONTACT_INVITE_SUCCESS,[g.length]),"</div>"].join("");var k=dojo.fadeOut({node:l,delay:9000,duration:1000}),j=dojo.connect(k,"onEnd",function(){dojo.addClass(l,"hidden");dojo.disconnect(j);});k.play();});});}else{alert(M.IMPORT_CONTACT_INVITE);}});},_storeInviteOthers:function(){var a=this;dojo.query(".invite").forEach(function(b){var h=[],f=[],g=false,l,e,k,d,c=1,j=true;dojo.query(".row",b).forEach(function(o){var m=dojo.query(".f .input",o);if(m.length){l=dojo.query(".f .input",o)[0];e=l.value;k=dojo.query(".s .input",o)[0],d=k.value;if(e!=""){if(ut.getEmail(e)){h.push("x");f.push(e);}else{g=true;dojo.addClass(l,"error");}}if(d!=""){if(ut.getEmail(d)){h.push("x");f.push(d);}else{g=true;dojo.addClass(k,"error");}}}});if(g){return;}if(f.length){a._showProgress(".invite .norm_button","Connecting...",true);API_SVC.inviteByName(f,h,a._getMessage(),c,j).addCallback(function(m){dojo.query(".row .input",b).forEach(function(o){o.value="";});a._reset();a._showProgress(".invite .norm_button","Get Connected",false);dojo.query(".import_services").addClass("hidden");dojo.query(".store_separator").addClass("hidden");dojo.query(".h1").forEach(function(o){o.innerHTML="Congratulations!";});dojo.query(".other_emails_success").forEach(function(o){o.innerHTML=[dojo.string.substitute(M.CONTACT_INVITE_SUCCESS,[f.length]),"<br/><br/>We will send your gift coupons when at least 10 of your friends join lifeblob.","<br/><br/>",'<div style="padding-top: 10px"><a class="lbut medium red" href="/store">Continue Shopping</a> OR ','<a class="lbut medium red" href="/account/storefindfriends">Refer more friends</a></div>'].join("");}).removeClass("hidden");});}else{alert(M.IMPORT_CONTACT_INVITE);}});},_getMessage:function(){var a=dojo.query(".invite_msg");if(a.length>0){return a[0].value;}return"";},_nwMore:function(a){dojo.query(".invite .rows").forEach(function(e){var d=dojo.clone(a),c="<div class='row'><div class='f'><input type='text' class='input'/></div><div class='s'><input type='text' class='input'/></div></div>",b;dojo.destroy(a);for(b=0;b<5;b++){rowNode=dojo.place(c,e);}dojo.place(d,dojo.query(".invite .s input")[0],"after");});},_nwConnectInvite:function(e,l,b){b=b||APP_TYPE.MAIL;var k=[],a=this,d=a.params,j,h;dojo.query(".nt input.cb").forEach(function(m){if(m.checked){j=m.value;k.push(l?parseInt(j):j);}});h=k.length;if(!h){alert(M.IMPORT_CONTACT_CONNECT);}else{a._showProgress("button[action='"+e+"']","Connecting...",true);if(l){API_SVC.addMultiFriends(k.join(",")).addCallback(function(m){if(d.fbInvite){ut.rd("/account/findfriends?connected="+h);}else{ut.rd(["/account/inviteFriends/",dojo.byId("requestId").value,"?connected=",h,"&abType=",b].join(""));}});}else{var c=1,f=APP_TYPE,g=d.store;switch(b){case f.AOL:c=6;break;case f.GMAIL:c=2;break;case f.YMAIL:c=3;break;case f.LIVE:c=4;break;case f.FACEBOOK:c=5;break;}API_SVC.invite(k.join(","),a._getMessage(),c,g).addCallback(function(m){ut.rd("/account/findfriends?invited="+h);});}}},_import:function(b){var d=this,c=APP_TYPE,a=ut.getAppName(b);lowerAppName=a.toLowerCase().replace(/ /g,"_");if(d._importing){alert(M.IMPORT_IN_PROGRESS_ALERT);return;}dojo.query(".linkups").addClass("hidden");dojo.query(".service_node").removeClass("selected_service_node");switch(b){case c.MAIL:case c.AOL:dojo.query("."+lowerAppName+"_linkup").removeClass("hidden");dojo.query("."+lowerAppName+"_import_row").addClass("selected_service_node");break;case c.FACEBOOK:case c.FACEBOOK_PHOTOS:d._fbConnect(b);break;default:d._importing=d._showPopup(b);break;}},_fbConnect:function(a){var b=this,c=b.params,d=c.photos;FB.Connect.requireSession(function(){b._setProgress("Connecting with facebook...");API_SVC.linkupFacebook().addCallback(function(g){if(g.stat!="ok"){console.log("Error. Code:"+g.code+" Desc:"+g.desc);return;}var e=g.result,h=e.userId,f=e.status;if(LB.getUser().uid!=h){alert('This facebook user is linked to another lifeblob account. Clicking "Ok" will log you into that account.');b._setProgress("Signing in...");window.location.reload(false);}else{if(f==0||f==3){ut.rd("/account/fB?photos="+d);return;}else{if(f==1){alert('This lifeblob account already has a facebook user linked to it. Click "Ok" to create a new account for your facebook user.');b._setProgress("Creating a new account...");ut.rd("/account/simplelogout?next=/account/fconnect");}else{if(f==2||f==4){alert('This facebook user is linked to another lifeblob account. Clicking "Ok" will log you into that account.');b._setProgress("Signing in...");window.location.reload(false);}}}}});});},_showPopup:function(f){var d=this,a=d.popup,c=700,k=500,j=100,b=APP_TYPE,g=false,e;if(f==b.YMAIL||f==b.FACEBOOK){c=780;k=700;j=10;}else{if(f==APP_TYPE.TWITTER){c=776;j=10;}}e=(window.screen.width/2-c/2);if(a){try{a.close();}catch(h){}}switch(f){case APP_TYPE.PICASA:g="https://www.google.com/accounts/AuthSubRequest?next=http%3A%2F%2Fwww.lifeblob.com%2Fcallback%2Fauth%3FappType%3D11TOPIC_POINTER&scope=http%3A%2F%2Fpicasaweb.google.com%2Fdata%2F&secure=0&session=1";break;case APP_TYPE.SMUGMUG:g="http://www.lifeblob.com/callback/oauth/authorizeUser?appType=13";break;case APP_TYPE.YOUTUBE:g="https://www.google.com/accounts/AuthSubRequest?next=http%3A%2F%2Fwww.lifeblob.com%2Fcallback%2Fauth%3FappType%3D51TOPIC_POINTER&scope=http%3A%2F%2Fgdata.youtube.com%2F&secure=0&session=1";break;case APP_TYPE.TWITTER:g="http://www.lifeblob.com/callback/oauth/authorizeUser?appType=61TOPIC_POINTER";break;case APP_TYPE.PHOTOBUCKET:g="http://www.lifeblob.com/callback/oauth/authorizeUser?appType=16";break;case APP_TYPE.GMAIL:g="https://www.google.com/accounts/AuthSubRequest?next=http%3A%2F%2Fwww.lifeblob.com%2Fcallback%2Fauth%3FappType%3D41&scope=http%3A%2F%2Fwww.google.com%2Fm8%2Ffeeds%2F&secure=0&session=1";break;case APP_TYPE.LIVE:g="http://www.lifeblob.com/callback/live/authorizeUser";break;case APP_TYPE.YMAIL:g="http://www.lifeblob.com/callback/yahoo/authorizeUser";break;case APP_TYPE.FLICKR:g="http://www.flickr.com/services/auth/?api_key=0c46e7f6525547b571fdc05b2d7a9957&perms=read&api_sig=54cf32fac9c008dd3d0718f1e0f10f2a";break;}if(!g){console.log("No authurl for "+f);return false;}d._setProgress("Waiting for authentication...");g=g.replace("TOPIC_POINTER","");a=window.open(g,"","status=false, width="+c+"px, height="+k+"px, left="+e+"px, screenX="+e+"px, top="+j+"px, screenY="+j+"px");if(!a){return false;}a.focus();d.popup=a;d._waitForPopup(f);return true;},_reset:function(){dojo.query(".load_overlay").addClass("hidden");dojo.query(".linkups").addClass("hidden");dojo.query(".selected_service_node").removeClass(".selected_service_node");this._importing=false;},_waitForPopup:function(a){var b=this;b.popupWait=setInterval(function(){if(b.popup.closed){clearInterval(b.popupWait);b._reset();}},3000);},_showImportError:function(a){var b=this,c=(a>=40&&a<50);b._processing=false;alert(c?"Error fetching the address book":"Error fetching from external service");b._reset();},_importResponse:function(b,e){var c=this,d=(b>=40&&b<50),a=c.popup;if(a){a.close();clearInterval(c.popupWait);c.popupWait=null;}if(e>0){c._setProgress("Fetching account details...");c.handle=setInterval(function(){if(!c._processing){c._processing=true;if(!d){c._setProgress("Getting your photos...");}API_SVC.importStatus(e).addCallback(dojo.hitch(c,c._onImportStatus,b));}},3000);}else{c._showImportError(b);}},_onImportStatus:function(c,b){var d=this,e=(c>=40&&c<50);d._processing=false;if(b.stat!="ok"){console.log("Error. Code:"+b.code+" Desc:"+b.desc);d._reset();return;}var a=b.result,f=a.errorCode;switch(a.status){case 0:return;case 1:if(e){d._setProgress("Searching for friends...");ut.rd("/account/connectFriends/"+a.data[0]+"?abType="+c);}else{}break;default:if(f==2){console.log("duplicate import");d._hideMessage();dojo.query(".startnext").removeClass("hidden");alert("You have already linked up this account.");}else{console.log("some other error:"+f);d._showImportError();}break;}clearInterval(d.handle);d.handle=null;},_setProgress:function(b,a){dojo.query(".load_overlay").removeClass("hidden").forEach(function(d){var c=["<img class='img' src='"];c.push(a?"http://cdn1.lifeblob.com/lifeblob/img/theme-gray/common/errors/error_48.v6e08a3.png":"http://cdn0.lifeblob.com/lifeblob/img/theme-gray/spinners/hourglass.v199e1c.gif");c.push("'/><span class='msg'",(a?" style='color:#EE0000'":""),">",b,"</span>");d.innerHTML=c.join("");});},_hideMessage:function(){dojo.query(".load_overlay").addClass("hidden");},getName:function(){return"FriendsAndImportControl";}});dojo.declare("PageHelper",null,{constructor:function(c,e){console.time("PageHelper");var d=e.page,b=LB.getUser().person;if(!window.API_SVC){if(window.fbParams){for(var a in fbParams){smd.parameters.push({name:a,optional:false,"default":fbParams[a]});}}API_SVC=new dojox.rpc.Service(smd);}(new CommonControl()).initialize(c,e);if(b.id!=-1){if(!Suggest.count){Suggest.init();}Suggest.fetchAddressBook();}console.timeEnd("PageHelper");}});