").attr("id",this.overlayId),$("body").append(this.overlay)),$("body").append(this.modal),_.bindAll(this,"hide"),this.options.closeable&&(this.closeBtn=this.modal.find(".close-x, .close, .skip"),this.closeBtn.live("click",this.hide))},hide:function(a){if(a){if(a.type=="keydown"){if(a.keyCode!=27)return;$(window).unbind("keydown.modal")}a.preventDefault()}return this.overlay.hide(),this.modal.hide(),this.options.hide&&this.options.hide(),this},show:function(a){return this.overlay.show(),this.modal.show(),this.options.closeable&&(this.overlay.one("click",this.hide),$(window).bind("keydown.modal",this.hide)),this.options.show&&this.options.show(),this},visible:function(){return this.modal.css("display")!="none"}}),s.Tabs=s.Class.extend({initialize:function(a,b){var c=this;this.container=$(a),this.options={activeClass:"active",tabsSelector:".tabs",tabSelector:".tab",viewsSelector:".views"},this.setOptions(b),this.el={tabs:this.container.find(this.options.tabSelector),views:this.container.find(this.options.viewsSelector).children()},_.bindAll(this,"clickTab"),this.el.tabs.click(this.clickTab),_.isNumber(this.options.active)&&this.activate(this.options.active,this.options.suppressInit)},clickTab:function(a){a.preventDefault();var b=this;this.el.tabs.each(function(c,d){if(a.currentTarget==d)return b.activate(c)})},hide:function(a){return $(this.el.tabs[a]).hide(),$(this.el.views[a]).hide(),this},show:function(a){return $(this.el.tabs[a]).show(),$(this.el.views[a]).show(),this},activate:function(a,b){return this.container.find("."+this.options.activeClass).removeClass(this.options.activeClass),$(this.el.tabs[a]).addClass(this.options.activeClass),$(this.el.views[a]).addClass(this.options.activeClass),_.isFunction(this.options.activate)&&!b&&this.options.activate(a),this}}),s.Cookie=s.Class.extend({initialize:function(){this.cookies={}},get:function(a){if(this.cookies[a])return this.cookies[a];var b=document.cookie.indexOf(a+"="),c=b+a.length+1;if(!b&&a!=document.cookie.substring(0,a.length)||b==-1)return null;var d=document.cookie.indexOf(";",c);d==-1&&(d=document.cookie.length);var e=decodeURIComponent(document.cookie.substring(c,d));try{this.cookies[a]=JSON.parse(e)}catch(f){return null}return this.cookies[a]},set:function(a,b,c){this.cookies[a]=b,c=c||{},b=encodeURIComponent(JSON.stringify(b)),c.expires&&(c.expires=(new Date(c.expires)).toGMTString()),_.forEach(["path","domain","expires","secure"],function(a){_.isUndefined(c[a])||(b+=";"+a+"="+c[a])}),document.cookie=a+"="+b+";path=/"},remove:function(a){if(this.cookies[a]){delete this.cookies[a];var b=new Date;b.setDate(b.getDate()-1),document.cookie=a+"=;expires="+b.toGMTString()+";path=/"}}}),$(function(){s.cookie=new s.Cookie}),s.Store=s.Class.extend({initialize:function(){this.valid=this.check()},check:function(){try{return"localStorage"in window&&window.localStorage!==null}catch(a){return!1}},get:function(a){if(!this.valid)return undefined;var b=localStorage[a];try{return JSON.parse(b)}catch(c){return b}},set:function(a,b){return this.valid?(localStorage[a]=JSON.stringify(b),!0):!1},remove:function(a){if(!this.valid)return;delete localStorage[a]}}),$(function(){s.store=new s.Store}),s.Notify=s.Class.extend({initialize:function(){},clear:function(a){if(typeof a=="string"||typeof a=="element")a=$(a);a.find(".flash").remove()},create:function(a,b){if(!b.element)return;if(typeof b.element=="string"||typeof b.element=="element")b.element=$(b.element);this.clear(b.element);var c=$(s.templates.render("layout/_flash",{message:a,type:b.type}));b.element.prepend(c),b.width&&c.width(b.width).addClass("borders"),b.slideSpeed=b.slideSpeed||200,_.defer(function(){c.slideDown(b.slideSpeed),b.duration&&_.delay(function(){c.slideUp(b.slideSpeed)},b.duration)})},error:function(a,b){this.create(a,_.extend(b||{},{type:"error"}))},success:function(a,b){this.create(a,_.extend(b||{},{type:"success"}))},form:{removeError:function(a){$(a.currentTarget).removeClass("error").next(".error").remove()},clearValidationError:function(a){a.find("input").removeClass("error"),a.parent().find(".error, .success").remove()},validationError:function(a,b){var c=this;c.clearValidationError(b),_.isUndefined(a.fields)||(_.each(a.fields,function(a,d){b.find("input[name="+d+"]").unbind("keypress").one("keypress",_.bind(c.removeError,c)).addClass("error").after('
'+a+"
")}),b.find("input.error:first").select(),a.message="Fix any errors with the fields below."),s.notify.error(a.message,{element:b.parent()})}}}),$(function(){s.notify=new s.Notify}),s.Auth=s.Class.extend({initialize:function(a){this.setOptions(a),this.el={login:$("#login form"),loginButtons:$("#login .buttons"),loginUsername:$("#login-username"),loginPassword:$("#login-password"),loginStay:$("#login-stay"),loginSubmit:$("#login-submit"),signup:$("#signup form"),follow_storify:$("#follow-storify-container"),signupUsername:$("#signup-username"),signupEmail:$("#signup-email"),signupPassword:$("#signup-password"),signupSubmit:$("#signup-submit"),forgot:$("#recover form"),forgotEmail:$("#forgot-password-email"),forgotSubmit:$("#forgot-password-submit"),reset:$("#reset form"),usersList:$("#friends #users"),header:$("#friends .header"),filterLink:$("#friends .filter a"),follow:$("#friends #users .user button"),followAll:$("#subscribe-to-all"),showLogin:$("#login .showForm")},this.next=s.utils.getUrlParams("next")||"/",this.popup=s.utils.getUrlParams("popup")=="true";var b=s.cookie.get("user");b&&this.setUser(b),this.el.signup.length&&(s.everyauth.twitter||s.everyauth.facebook)&&this.showSignup(this.loginCallback),$("input").length>0&&$("input").first().focus();if($("#friends").length>0){var c=s.utils.getUrlParams("service")||"facebook";$("a.tab[rel="+c+"]").addClass("active"),$(".skip").attr("href",decodeURIComponent(this.next)),this.displayFriends(c)}this.addNextParam(),this.bind()},bind:function(){var a=this;_.bindAll(this,"login","signup","forgotPassword","resetPassword","getIdentity","displayFriends","filterLinkClicked","followHoverIn","followHoverOut","followClick","followAll","showLoginForm"),this.el.login.bind("submit",this.login),this.el.signup.bind("submit",this.signup),this.el.forgot.bind("submit",this.forgotPassword),this.el.reset.bind("submit",this.resetPassword),$("#storify-auth #signup button.twitter").bind("click",function(){a.serviceAuth("twitter",a.popup)}),$("#storify-auth #signup button.facebook").bind("click",function(){a.serviceAuth("facebook",a.popup)}),this.el.filterLink.bind("click",this.filterLinkClicked),this.el.follow.live("mouseenter",this.followHoverIn),this.el.follow.live("mouseleave",this.followHoverOut),this.el.follow.live("click",this.followClick),this.el.followAll.live("click",this.followAll),this.el.showLogin.click(this.showLoginForm)},showLoginForm:function(a){a.preventDefault(),this.el.showLogin.hide(),this.el.login.slideDown()},follow:function(a,b,c){var d=this,e=typeof c=="undefined"?"add":c?"remove":"add";if(!d.user)return b(new Error("Not authenticated"));$.ajax("/api/users/"+d.user.username+"/subscriptions/"+e,{type:"post",data:{user:a,username:d.user.username,_token:d.user._token},success:function(a){b(null,a)},error:function(a){var c=JSON.parse(a.responseText);b(new Error(c.error.message))}})},unfollow:function(a,b){this.follow(a,b,!0)},getIdentity:function(a,b){if(!this.user)return null;if(this.user.identities){var c=_.find(this.user.identities,function(b){return b.service==a});return b&&b(c),c}var d=this;$.ajax("/api/users/"+d.user.username+"/identities",{type:"get",data:{username:d.user.username,_token:d.user._token},success:function(c){if(c.code!=200)return b(null);d.user.identities=c.content,b(_.find(d.user.identities,function(b){return b.service==a}))}})},serviceSignup:function(a){this.el.signupUsername.val(this.serviceData(a).username),this.showSignup(this.loginCallback),mixpanel.track("auth-serviceSignup",{service:a})},serviceAuth:function(a,b){var c=this;mixpanel.track("auth-serviceAuth",{service:a,create:b}),$.oauthpopup({path:"/auth/"+a,callback:function(){s.everyauth=JSON.parse(s.ea),s.everyauth[a]&&s.everyauth[a].accessToken?c.serviceLogin(a,b):c.validationError({message:t("Log in to __service__ denied",{service:a})},c.el.login)}})},serviceData:function(a,b){var c=s.everyauth[a],b=typeof b=="undefined"?!1:b;return{create:b,token:c.accessToken,secret:c.accessTokenSecret,service:a,service_userid:c.user.id,username:c.user.screen_name||c.user.username||c.user.id||c.user.email||(c.user.firstName?c.user.firstName+" "+c.user.lastName:undefined),name:c.user.name||c.user.full_name||(c.user.firstName?c.user.firstName+" "+c.user.lastName:undefined),email:c.user.email,avatar:c.user.profile_picture||c.user.photo,bio:c.user.description||c.user.bio,location:typeof c.user.location=="object"?c.user.location.name:c.user.location,website:c.user.url||(c.user.website?c.user.website.split("\n")[0]:undefined)}},serviceLogin:function(a,b,c){var d=this,e=this.el.loginStay.attr("checked"),c=c||function(){};mixpanel.track("auth-serviceLogin",{service:a,stay:e}),s.everyauth[a]&&s.everyauth[a].accessToken?$.ajax("/api/auth/"+a,{type:"POST",data:d.serviceData(a,b),success:function(a){d.clearValidationError(d.el.login);var b=a.content;d.setUser(b),d.setUserCookie(e),d.el.loginUsername.val(""),d.el.loginPassword.val(""),d.el.loginSubmit.removeAttr("disabled"),d.popup&&window.opener?d.close():window.location.href=s.base_url+decodeURIComponent(d.next),c()},error:function(b){try{b=JSON.parse(b.responseText)}catch(e){}b.error&&b.error.type=="no_identity"?d.el.signup.length>0?d.serviceSignup(a):window.location.href=s.base_url+"/signup?next="+d.next:(d.validationError(b.error,d.el.login),d.logout()),c(b.error)}}):this.serviceAuth(a,b)},serviceConnect:function(a,b){mixpanel.track("auth-serviceConnect",{service:a}),$.oauthpopup({path:"/auth/"+a,callback:b})},serviceReconnect:function(a,b){var c=this;mixpanel.track("auth-serviceReconnect",{service:a}),$.oauthpopup({path:"/auth/"+a,callback:function(){s.everyauth=JSON.parse(s.ea),s.everyauth[a]&&s.everyauth[a].accessToken?b():c.validationError({message:"Log in to "+a+" denied."},c.el.login)}})},serviceDisconnect:function(a,b){this.removeIdentity(a,b),mixpanel.track("auth-serviceDisconnect",{service:a})},addIdentity:function(a,b,c){var d=this;typeof b=="function"&&!c&&(c=b,b=null);var e=this.serviceData(a);b&&(e.options=JSON.stringify(b)),mixpanel.track("auth-addIdentity",{service:a}),e._token=this.user._token,$.ajax("/api/users/"+s.auth.user.username+"/identities/add",{type:"POST",data:e,success:function(a){d.user.identities.push(a.content.identity),c&&c(a)},error:function(b){var c=JSON.parse(b.responseText).error,d="";return c.type=="duplicate_identity"&&c.message?d=c.message:d="Failed to connect "+a+" account.",s.notify.error(t(d),{element:"#content",slideSpeed:200,duration:3e3})}})},removeIdentity:function(a,b){mixpanel.track("auth-removeIdentity",{service:a}),$.ajax("/api/users/"+s.auth.user.username+"/identities/remove",{type:"POST",data:{identity:JSON.stringify({service:a})},success:function(c){s.notify.success(t("Successfully unlinked __service__ account",{service:a}),{element:"#content",slideSpeed:200,duration:3e3}),b(c)},error:b})},showSignup:function(a){var b=this;b.el.signup.parent().find(".buttons, .or").show(),mixpanel.track("auth-signup-show"),s.everyauth.twitter&&s.everyauth.twitter.user?(b.el.signup.parent().find(".buttons, .or").hide(),b.el.signup.find(".twitter-user").remove(),b.el.signup.prepend(s.templates.render("everyauth/_twitter_user",{user:s.everyauth.twitter.user})),b.el.signupUsername.val(s.everyauth.twitter.user.screen_name),b.el.follow_storify.removeClass("hidden"),b.el.signupEmail.focus()):s.everyauth.facebook&&s.everyauth.facebook.user&&(b.el.signup.parent().find(".buttons, .or").hide(),b.el.signup.find(".facebook-user").remove(),b.el.signup.prepend(s.templates.render("everyauth/_facebook_user",{user:s.everyauth.facebook.user})),b.el.signupUsername.val(s.everyauth.facebook.user.username),b.el.signupEmail.val(s.everyauth.facebook.user.email),s.everyauth.facebook.user.username?b.el.signupPassword.focus():b.el.signupUsername.focus()),setTimeout(function(){s.notify.success(t("Your Storify account is almost ready!"),{element:b.el.signup.parent()})},1e3)},showLogin:function(a){this.loginCallback=a},loginPopup:function(a){var b=this,c=400,d=480,e=screen.width/2-c/2,f=screen.height/2-d/2;$.oauthpopup({windowName:"Login",windowOptions:"location=0,status=0,width="+c+",height="+d+",top="+f+",left="+e,path:"/login?popup=true",callback:function(c){if(c)return a(c);$.getJSON("/currentUser",function(d){if(d.error)return a(d.error);b.setUser(d),s.nav&&s.nav.updateUser(),a(c,d)})}})},signup:function(a){a.preventDefault();var b=this,c=this.el.signup.find("input[name=agree]").attr("checked"),d=this.el.signup.find("input[name=username]").val(),e=this.el.signup.find("input[name=email]").val(),f=this.el.signup.find("input[name=password]").val(),g;if(!c){this.el.signup.find("input[name=agree]").focus(),this.validationError({message:t("Please agree to the terms of service")},this.el.signup);return}var h={username:d,email:e,password:f};if(s.everyauth.twitter&&s.everyauth.twitter.user)g="twitter",h=_.extend(h,{bio:s.everyauth.twitter.user.description,avatar:s.everyauth.twitter.user.profile_image_url.replace("_normal","_reasonably_small"),website:s.everyauth.twitter.user.url,name:s.everyauth.twitter.user.name,location:s.everyauth.twitter.user.location});else if(s.everyauth.facebook&&s.everyauth.facebook.user){g="facebook",h=_.extend(h,{bio:s.everyauth.facebook.user.bio,avatar:"http://graph.facebook.com/"+(s.everyauth.facebook.user.username||s.everyauth.facebook.user.id)+"/picture",name:s.everyauth.facebook.user.name});var i=s.everyauth.facebook.user.location,j=s.everyauth.facebook.user.website;i&&(h.location=i.name),j&&(h.website=j.split("\n")[0])}mixpanel.track("auth-signup"),b.el.signupSubmit.attr("disabled",!0),$.ajax("/api/users/create",{type:"POST",data:{user:JSON.stringify(h)},success:function(a){b.clearValidationError(b.el.signup);var c=a.content;b.setUser(c),b.setUserCookie(!0),b.el.signupSubmit.removeAttr("disabled");if(g){function d(){window.location.href=s.base_url+"/friends?service="+g+"&next="+decodeURIComponent(b.next)}g=="twitter"?b.addIdentity("twitter",{follow_storify:b.el.follow_storify.find("#follow-storify").attr("checked")=="checked"},d):g=="facebook"&&b.addIdentity("facebook",d)}else window.location.href=s.base_url+decodeURIComponent(b.next)},error:function(a){a=JSON.parse(a.responseText),b.validationError(a.error,b.el.signup),b.el.signupSubmit.removeAttr("disabled")}})},forgotPassword:function(a){a.preventDefault();var b=this,c=this.el.forgot.find("#forgot-password-email").val();mixpanel.track("auth-forgotPassword"),this.el.forgot.find("input, button").attr("disabled",!0),$.ajax("/api/auth/forgot_password",{type:"POST",data:{email:c},success:function(a){b.clearValidationError(b.el.forgot),b.el.forgotEmail.val(""),b.el.forgotSubmit.removeAttr("disabled"),s.notify.success(t("You should receive an email shortly"),{element:$("body")})},error:function(a){a=JSON.parse(a.responseText),b.validationError(a.error,b.el.forgot.find("form")),b.el.forgotSubmit.removeAttr("disabled")}})},resetPassword:function(a){a.preventDefault();var b=this,c=this.el.reset.find("#reset-password-password").val(),d=s.utils.getQueryString(window.location.search.substr(1).split("&"));mixpanel.track("auth-resetPassword"),this.el.reset.find("input, button").attr("disabled",!0),$.ajax("/api/auth/reset_password",{type:"POST",data:{password:c,email:d.email,reset_token:d.reset_token},success:function(a){b.clearValidationError(b.el.reset),s.notify.success(t("Your password has been reset")+".",{element:$("body")}),setTimeout(function(){window.location.href=s.base_url+"/"},1e3)},error:function(a){a=JSON.parse(a.responseText),b.validationError(a.error,b.el.reset),b.el.reset.find("input, button").removeAttr("disabled")}})},login:function(a){a.preventDefault();var b=this,c=this.el.loginUsername.val(),d=this.el.loginPassword.val(),e=this.el.loginStay.attr("checked");mixpanel.track("auth-login"),this.el.loginSubmit.attr("disabled",!0),$.ajax("/api/auth",{type:"POST",data:{username:c,password:d},success:function(a){b.clearValidationError(b.el.login);var c=a.content;b.setUser(c),b.setUserCookie(e),b.el.loginUsername.val(""),b.el.loginPassword.val(""),b.el.loginSubmit.removeAttr("disabled"),b.popup&&window.opener?b.close():window.location.href=s.base_url+decodeURIComponent(b.next)},error:function(a){a=JSON.parse(a.responseText),b.validationError(a.error,b.el.login),b.el.loginSubmit.removeAttr("disabled")}})},close:function(){window.opener.s.ea=JSON.stringify(s.everyauth),window.opener.s.embedUser=JSON.stringify(this.user),window.close()},setUser:function(a){this.user=a,mixpanel.identify(a.username),mixpanel.people.set({$email:a.email,$created:a.date?a.date.created:null,bio:a.bio,lang:a.lang,location:a.location,name:a.name})},setIntercom:function(a){return!1},setUserCookie:function(a){var b=_.clone(this.user);delete b.subscribers,delete b.subscriptions,delete b.stats,delete b.identities,a?(this.user.expires=new Date,this.user.expires.setTime(this.user.expires.getTime()+2592e6),s.cookie.set("user",b,{expires:this.user.expires})):s.cookie.set("user",b),$.i18n.setLng(b.lang),this.loginCallback&&this.loginCallback(),this.loginCallback=null},logout:function(){this.user=null,s.everyauth={},s.cookie.remove("user"),mixpanel.track("auth-logout")},removeError:function(a){$(a.currentTarget).removeClass("error").next(".error").remove()},clearValidationError:function(a){a.find("input").removeClass("error"),a.parent().find(".error, .success").remove()},validationError:function(a,b){var c=this;this.clearValidationError(b),_.isUndefined(a.fields)||(_.each(a.fields,function(a,d){b.find("input[name="+d+"]").unbind("keypress").one("keypress",_.bind(c.removeError,c)).addClass("error").after('
'+a+"
")}),b.find("input.error:first").select(),a.message="Fix any errors with the fields below"),s.notify.error(t(a.message),{element:$("body")})},addNextParam:function(){var a=this;$("a.next").each(function(b,c){var d=$(c).attr("href");$(c).attr("href",d+"?next="+a.next)})},displayFriends:function(a){var b={},c=this;c.el.usersList.empty(),c.el.usersList.append('
'),c.el.header.hide(),c.user&&(b.username=c.user.username,b._token=c.user._token),$.ajax("/api/users/"+b.username+"/friends/"+a,{type:"GET",data:b,success:function(a){c.el.usersList.find(".loading").remove();var b=a.content.friends;if(b.length>0)for(var d=0;d
'+t("Couldn't find any of your friends on Storify.")+"")},error:function(b){var d=a.charAt(0).toUpperCase()+a.slice(1);c.el.usersList.find(".loading").remove(),c.el.usersList.append(''+t("Your account is not connected to ")+d+".
")}})},filterLinkClicked:function(a){a.preventDefault();var b=$(a.target),c=b.attr("rel");this.el.filterLink.removeClass("active"),b.addClass("active"),this.displayFriends(c)},followHoverIn:function(a){var b=this,c=$(a.target).parents(".user").find("button");c.hasClass("cancel")&&c.removeClass("cancel").addClass("decline").html("✖ "+t("Unsubscribe")+" ")},followHoverOut:function(a){var b=this,c=$(a.target).parents(".user").find("button");c.hasClass("decline")&&c.removeClass("decline").addClass("cancel").html("✔ "+t("Subscribed")+" ")},followClick:function(a){var b=this,c=$(a.target).parents(".user").find("button"),d=c.parents(".user").data("username");c.attr("disabled",!0),c.hasClass("accept")?(c.html(""+t("Subscribing")+" "),s.auth.follow(d,function(a){c.removeAttr("disabled").html("✚ "+t("Subscribe")+" ");if(a){s.notify.error(t("Unable to subscribe to __name__ at this time, please try again later",{name:d}),{element:"body",duration:4e3});return}c.removeClass("accept").addClass("cancel").html("✔ "+t("Subscribed")+" ")})):(c.html(""+t("Unsubscribing")+" "),s.auth.unfollow(d,function(a){c.removeAttr("disabled").html("✔ "+t("Subscribed")+" ");if(a){s.notify.error(t("Unable to unsubscribe from __name__ at this time, please try again later",{name:d}),{element:"body",duration:4e3});return}c.removeClass("cancel decline").addClass("accept").html("✚ "+t("Subscribe")+" ")}))},followAll:function(){this.el.usersList.find("button.accept").each(function(a,b){b.click()})}}),$(function(){s.auth=new s.Auth}),s.Walkthrough=s.Class.extend({initialize:function(a,b){this.setOptions(b),this.tooltipOptions={trigger:"manual",html:!0,opacity:.95,fade:!0},_.bindAll(this,"clickNext","clickHide"),this.targets=[],this.i=0,_.each(a,function(b,c){var d=$(b.el);_.defaults(b,this.tooltipOptions),b.fallback='",b.text&&(b.fallback=b.text+b.fallback),d.tipsy(b),this.targets.push(d)},this),$(".tooltip-next").live("click",this.clickNext),$(".tooltip-hide").live("click",this.clickHide)},clickNext:function(a){a.preventDefault(),this.next()},clickHide:function(a){a.preventDefault(),this.hide()},start:function(){this.hide(),$(".tooltip-next").show(),this.targets[this.i].tipsy("show")},next:function(){this.targets[this.i++].tipsy("hide"),this.targets[this.i].tipsy("show")},hide:function(){this.targets[this.i].tipsy("hide"),this.i=0}}),s.StoryControl=s.Class.extend({initialize:function(a){var b=this;this.storyView=a,this.el={deleteLink:$(".story-toolbar-delete"),deleteButton:$("#delete-story-button"),cancelButton:$("#delete-story-cancel"),storyStatus:$(".story-toolbar-status"),storyPost:$(".story-toolbar-post"),storyNotify:$(".story-toolbar-notify"),storyFeature:$(".story-toolbar-feature"),storyUnfeature:$(".story-toolbar-unfeature"),featureCancelButton:$("#feature-story-cancel"),featureButton:$("#feature-story-button"),featureMain:$("#feature-story-main"),featureOther:$("#feature-story-other"),featureImage:$("#feature-story-images img"),statsStories:$(".user-stats .stories")},_.bindAll(this,"clickDelete","deleteStory","clickFeature","clickUnfeature","featureModalShow","featureStory","featureSwapImage"),this.deleteModal=new s.Modal("#delete-story-modal",{show:function(){b.el.deleteButton.focus()}}),this.featureModal=new s.Modal("#feature-story-modal",{show:this.featureModalShow}),this.el.deleteLink.live("click",this.clickDelete),this.el.deleteButton.click(function(a){a.preventDefault(),b.deleteStory(),b.el.deleteButton.blur()}),this.el.cancelButton.click(function(a){a.preventDefault(),b.deleteModal.hide()}),this.el.storyFeature.live("click",this.clickFeature),this.el.storyUnfeature.live("click",this.clickUnfeature),this.el.featureButton.click(this.featureStory),this.el.featureCancelButton.click(function(a){a.preventDefault(),b.featureModal.hide()}),this.el.storyStatus.tipsy({delayIn:1e3,live:!0,gravity:"w"}),a&&!s.story.date.published&&(b.el.storyPost.hide(),b.el.storyNotify.hide());if(!s.auth.user||s.auth.user._access<1)b.el.storyFeature.parent().hide(),b.el.storyUnfeature.parent().hide()},featureSwapImage:function(a){a.preventDefault();var b=$(a.currentTarget);$("#feature-story-images .active").removeClass("active"),b.addClass("active"),this.el.featureMain.find(".story-image img").attr("src",b.attr("src"))},clickUnfeature:function(a){a.preventDefault(),this.selectedStory=$(a.currentTarget).parents(".story-tile");var b=this,c=this.storyView?s.story.path:this.selectedStory.attr("data-path");return $.ajax("/api/stories/"+c+"/unfeature",{type:"POST",data:{username:s.auth.user.username,_token:s.auth.user._token},success:function(a){b.selectedStory.find(".story-toolbar-unfeature").removeClass("story-toolbar-unfeature").addClass("story-toolbar-feature").find("span").text("Feature")}}),!1},clickFeature:function(a){return a.preventDefault(),this.selectedStory=$(a.currentTarget).parents(".story-tile"),this.featureModal.show(),!1},featureModalShow:function(){var a=this,b=this.storyView?s.story.path:this.selectedStory.attr("data-path");$.ajax("/api/stories/"+b,{data:{per_page:100},success:function(b){var c=$(s.templates.render("story/_featured_main",{story:b.content})),d=c.find(".timestamp"),e=$("");d.text(s.utils.date(d.attr("data-timestamp")).fromNow()),a.el.featureMain.empty().append(c),_.each(b.content.elements,function(a,b){if(a.type!="image")return;var c=$("
");c.attr("src",a.data.image.src),e.append(c),c.error(function(){c.remove()})}),$("#feature-story-images").replaceWith(e),e.attr("id","feature-story-images"),$("#feature-story-images img").live("click",a.featureSwapImage)}})},featureStory:function(){var a=this,b=this.storyView?s.story.path:this.selectedStory.attr("data-path");a.el.featureButton.attr("disabled",!0).text("Featuring..."),$.ajax("/api/stories/"+b+"/feature",{type:"POST",data:{username:s.auth.user.username,_token:s.auth.user._token,thumbnail:JSON.stringify({src:a.el.featureMain.find(".story-image img").attr("src"),offset:a.el.featureMain.find(".story-image").scrollTop()})},success:function(b){a.el.featureButton.removeAttr("disabled").text("Feature"),a.featureModal.hide(),a.selectedStory.find(".story-toolbar-feature").removeClass("story-toolbar-feature").addClass("story-toolbar-unfeature").find("span").text("Unfeature")}})},clickDelete:function(a){return a.preventDefault(),this.selectedStory=$(a.currentTarget).parents(".story-tile"),this.deleteModal.show(),!1},deleteStory:function(){var a=this,b=this.storyView?s.story.path:this.selectedStory.attr("data-path");$.ajax("/api/stories/"+b+"/delete",{type:"POST",data:{username:s.auth.user.username,_token:s.auth.user._token},success:function(b){if(a.storyView)window.location="/"+s.user.username;else{a.deleteModal.hide(),a.selectedStory.fadeOut();if(a.el.statsStories.length>0){var c=parseInt(a.el.statsStories.find("strong").text())-1,d=c===1?t("story"):t("stories");a.el.statsStories.find("strong").text(c),a.el.statsStories.find("span").text(d)}}},error:function(b){a.deleteModal.hide()}})}}),s.StoryList=s.Class.extend({blockedContent:new RegExp("^playboy|playboydotcom|playboy_nl|210tuesday|penthouse$","i"),initialize:function(a,b){this.container=$(a),this.options={path:"",page:1,per_page:21,isOwner:!1,loadMore:!0,loadedOnce:!1,autoLoads:2,autoThreshold:20,loadText:"Show more",emptyText:"",onlyWithThumb:!1,featured:!1,params:{},editable:!0,template:"tile"},this.setOptions(b),this.active=!0,this.loadedOnce=this.options.loadedOnce,this.page=this.options.page,this.autoLoads=this.options.autoLoads,this.loadButton=$("
").addClass("story-list-load load-more").text(this.options.loadText),this.emptyMessage=$("").addClass("story-list-empty").text(this.options.emptyText),this.container.append(this.emptyMessage),this.container.append(this.loadButton),this.options.loadMore||(this.loadButton.hide(),this.container.append($("
").addClass("clear"))),_.bindAll(this,"scroll","clickLoad"),this.autoLoads&&$(window).scroll(this.scroll),this.loadedOnce&&this.container.find(".story-tile").length
=8),k=a.s||{},l=(k.base_url||"<%= base_url %>")+"/",m={},n=100;function o(a){this.options=a.options,this.more=!0,this.permalink=a.url.replace("http://storify.com/",l),this.src=this.permalink+(a.url.match(/.*\/$/)?"":"/")+"embed"+a.query,this.container=a.el,this.iframe=b.createElement("iframe"),this.render()}o.prototype={render:function(){if(this.options.template=="slideshow")return this.renderSlideshow();this.iframe.setAttribute("src",this.src),this.iframe.setAttribute("name",name),this.iframe.setAttribute("scrolling","no"),this.iframe.setAttribute("frameBorder","no"),this.iframe.setAttribute("allowTransparency","true"),this.iframe.style.display="block",this.iframe.style.backgroundColor="transparent",this.iframe.style.border="none",this.iframe.style.overflowX="hidden",this.iframe.style.overflowY="hidden",this.iframe.style.width="100%",this.iframe.style.maxWidth="900px",this.iframe.style.height="700px",j||(this.iframe.style.overflowY="auto",this.iframe.setAttribute("scrolling","auto"),this.iframe.style.border="1px solid #ddd"),this.container.style.display="block",this.container.style.clear="left",this.container.appendChild(this.iframe)},renderSlideshow:function(){var a='';this.container.style.display="block",this.container.innerHTML=a},resize:function(a){this.loading=!1,this.iframe.style.height=this.iframe.style.minHeight=a+"px"},noMoreElements:function(){this.more=!1},login:function(a){typeof k=="object"&&k.auth&&(k.auth.setUser(a),k.auth.setUserCookie(null),k.nav&&k.nav.updateUser())}},d.load=function(a){var b={el:a},c=[],d={};f(["url","username","slug","preview"],function(c){b[c]=a.getAttribute(c)}),f(["template","header","border","css"],function(b){var e=a.getAttribute(b);e&&(c.push(b+"="+e),d[b]=e)}),typeof k=="object"&&k.auth&&k.auth.user&&c.push("timestamp="+(new Date).valueOf()),b.options=d,!(b.url&&b.url.indexOf(l)>-1)&&b.username&&b.slug&&(b.url=l+b.username+"/"+b.slug,b.preview&&(b.url+="/preview")),name=b.url.replace(l,"").replace("/","-").replace("/preview",""),b.query="?"+c.join("&"),m[name]=m[name]||new o(b)},d.convertScripts=function(a){var c=b.getElementsByTagName("script"),d=c.length;f(c,function(c){var e=c.getAttribute("src");if(e&&e.indexOf(l)>-1&&!e.match(/public\/js\/embed/)){var g=b.createElement("div"),h=e.substring(0,e.indexOf(".js")),i=h.replace(l,"").replace("/","-"),j=e.indexOf("?")>0?e.substring(e.indexOf("?")+1).split("&"):[];m[i]||(g.setAttribute("class","sfy-story"),g.setAttribute("url",h),f(j,function(a){var a=a.split("=");g.setAttribute(a[0],a[1])}),c.parentNode.insertBefore(g,c))}if(--d<=0)return a()})},d.loadAll=function(){d.convertScripts(function(){var a=e("div","sfy-story");f(a,d.load)})},a.domReady(function(){g("message",function(a){if(!l.match(a.origin))return;try{var b=JSON.parse(a.data),c=m[b.sourceName],d=b.method;c&&c[d]&&c[d].apply(c,[b.value])}catch(a){return}}),g("scroll",function(a){for(var b in m){var c=m[b];if(c.loading)break;var d=c.container,e=0;do e+=d.offsetTop;while(d=d.offsetParent);if(c.more){var f=e+c.container.offsetHeight-window.scrollY-window.innerHeight-n;f<0&&(c.loading=!0,c.iframe.contentWindow.postMessage("loadMore","*"))}var g=e+200-window.scrollY,h=g>0;h!=c.autoReload&&(c.autoReload=h,c.iframe.contentWindow.postMessage(c.autoReload?"enableAutoReload":"disableAutoReload","*"))}}),d.loadAll()})}}(this,document,window),s.Nav=s.Class.extend({initialize:function(a){this.el={username:$(".user-auth-username").not("a"),subscriptions:$(".user-auth-subscriptions"),settings:$(".user-auth-username.settings"),usernameLink:$("a.user-auth-username"),avatar:$(".user-auth-avatar"),userButton:$("#user-button"),loginButton:$("#login-button"),ipadLink:$("#ipad a"),signupPrompt:$("#signup-prompt")},_.bindAll(this,"updateUser","ipadLinkClicked"),this.inEditor=a,this.userDropdown=new s.Dropdown(this.inEditor?"#user-button":"#user-arrow","#user-box",{right:this.inEditor?45:15}),this.userDropdown.hide(),this.el.userButton.hide(),this.el.ipadLink.click(this.ipadLinkClicked),s.auth.user?this.updateUser():this.el.loginButton.css({display:"inline-block"})},updateUser:function(){var a=s.auth.user;this.el.username.text(a.username),this.el.usernameLink.attr("href","/"+a.username),this.el.subscriptions.attr("href","/"+a.username+"/feed"),this.el.avatar.attr("src",a.avatar),this.el.loginButton.hide(),this.el.userButton.css({display:"inline-block"}),this.userDropdown.show(),this.el.signupPrompt.hide()},ipadLinkClicked:function(){return mixpanel.track("ipad-link-clicked"),!0}}),s.Website=s.Class.extend({initialize:function(){this.el={footer:$("#foot"),subscribersCount:$(".user-stats .subscribers"),subscriptionsCount:$(".user-stats .subscriptions"),subscribersModal:$("#subscribers"),subscriptionsModal:$("#subscriptions"),loginButton:$("#login-button"),signupButton:$("#signup-button"),contactLink:$("#contact-link"),contactModal:$("#contact")},_.bindAll(this,"positionFooter","addNextParam","showContactModal","hideContactModal"),$("#head").length>0&&(s.nav=new s.Nav),s.search=new s.Search("#search"),setInterval(function(){_.each($(".timestamp"),function(a){var b=$(a),c=b.attr("data-timestamp");b.text(s.utils.date(c).fromNow())})},6e4),this.positionFooter(),setInterval(this.positionFooter,1e3),$(window).resize(this.positionFooter),this.el.contactLink.click(this.showContactModal),this.el.contactModal.click(this.hideContactModal),this.addNextParam()},positionFooter:function(a){var b=this,c=this.el.footer.outerHeight();$(window).height()>$("body").height()+c?this.el.footer.css({bottom:0}):this.el.footer.css({bottom:"auto"})},addNextParam:function(){var a=encodeURIComponent(window.location.pathname);this.el.loginButton.attr("href","/login?next="+a),this.el.signupButton.attr("href","/signup?next="+a)},showContactModal:function(a){this.el.contactModal.show()},hideContactModal:function(a){$(a.target).attr("id")==="contact"&&this.el.contactModal.hide()}}),s.Search=s.Class.extend({initialize:function(a,b){var c=this;this.options={defaultQuery:t("Search stories")},this.setOptions(b),this.el={form:$(a),input:$(a).find("input"),button:$(a).find("button"),logo:$("h1#logo a"),buttonGroup:$("ul.button-group")},_.bindAll(this,"resizeInput","showFocus","hideFocus","expand","collapse","submit","track"),this.el.input.bind("focus",this.showFocus),this.el.input.bind("blur",this.hideFocus),this.el.form.bind("submit",this.submit),this.el.button.bind("click",function(){if($(window).width()<480&&!c.el.input.is(":visible"))return c.expand(),!1}),this.el.input.bind("blur",function(){$(window).width()<480&&setTimeout(c.collapse,250)}),this.resizeInput(),$(window).bind("resize",this.resizeInput),this.track()},resizeInput:function(a){this.el.input.is(":focus")&&this.el.input.blur(),$(window).width()<480?this.el.input.hide():this.el.input.show()},showFocus:function(a){this.el.form.addClass("focus")},hideFocus:function(a){this.el.form.removeClass("focus")},expand:function(a){this.el.input.show().focus(),this.el.buttonGroup.hide()},collapse:function(a){this.el.input.val(this.options.defaultQuery).addClass("default").hide(),this.el.buttonGroup.show()},submit:function(){if(this.el.input.val()==""||this.el.input.val()==this.options.defaultQuery)return!1},track:function(){this.el.input.val()!=""&&this.el.input.val()!=this.options.defaultQuery&&mixpanel.track("search",{query:this.el.input.val()})}}),s.pages.Home=s.Class.extend({initialize:function(){_.bindAll(this,"featuredStoryClick"),this.el={featuredUsers:$("#browse-featured-users-container"),sections:$("#sections-container"),featuredStories:$(".featured-story")},this.loadFeaturedUsers();var a=s.auth.user?s.auth.user.username+"/newswire":"";this.list=[new s.StoryList("#browse-featured",{path:"browse/featured",per_page:4,autoLoads:0,loadMore:!1,featured:!0,params:{sort:"date.featured"}}),new s.StoryList("#browse-popular-subscriptions",{path:a,per_page:3,autoLoads:0,loadMore:!1}),new s.StoryList("#browse-popular-everyone",{path:"browse/popular",per_page:3,autoLoads:0,loadMore:!1,blockAdultContent:!0})],this.list[0].update(),this.list[2].update(),s.auth.user&&this.list[1].update(),this.storyControl=new s.StoryControl,this.el.featuredStories.live("click",this.featuredStoryClick)},featuredStoryClick:function(a){if(a.target.tagName.toLowerCase()=="a")return;a.preventDefault();var b=$(a.currentTarget),c=b.find(".story-title").attr("href");window.location=c},loadFeaturedUsers:function(){var a=this,b=[];$("#mosaic a").each(function(){b.push({username:$(this).attr("href").substr(1),profile:{name:$(this).attr("title"),avatar:$(this).find("img").attr("src")},stats:{stories:parseInt($(this).attr("data-stories"),10)}})}),b=_.sortBy(b,function(a){return Math.random()}),b=_.filter(b,function(a){return a.profile.avatar&&a.stats.stories>0}).slice(0,6),_.each(b,function(b){var c=s.templates.render("user/_tile",{user:b});a.el.featuredUsers.append(c)})}}),s.pages.Profile=s.Class.extend({initialize:function(){var a=this;_.bindAll(this,"click","edit","cancel","save","followHoverIn","followHoverOut","followClick","followOtherHoverIn","followOtherHoverOut","followOtherClick","activateTab","loadMore","removeUser"),this.isAuthor=s.auth.user&&s.auth.user.username==s.user.username,this.canEdit=this.isAuthor||s.user.canEdit,this.el={edit:$("#user-edit"),editing:$(".editing"),editCancel:$("#user-edit-cancel"),editSave:$("#user-edit-save"),follow:$("#user-follow"),remove:$("#user-remove"),followUsers:$(".user-follow-user"),followers:$("#subscribers"),following:$("#subscriptions"),followersCount:$(".user-stats .subscribers strong"),followersText:$(".user-stats .subscribers span"),followingCount:$(".user-stats .subscriptions strong"),followingText:$(".user-stats .subscriptions span"),followOther:$("#users-list .user button"),usersList:$("#users-list #users"),loadMore:$("#users-list .load-more"),userFollowContainer:$(".user-follow-container")},this.options={page:1,per_page:15},this.options.total=this.options.per_page;if(this.canEdit)this.list=[new s.StoryList("#browse-published",{path:s.user.username,loadedOnce:!0,page:2,per_page:14,params:{filter:"published",sort:"date.published"},emptyText:t("You don't have any published stories yet")}),new s.StoryList("#browse-drafts",{path:s.user.username,per_page:14,params:{filter:"draft"},emptyText:t("You don't have any drafts")}),new s.StoryList("#browse-likes",{path:s.user.username+"/likes",per_page:14,params:{},emptyText:t("You haven't liked any story yet")})];else{var b=t("This user doesn't have any published stories yet.");this.list=[new s.StoryList("#browse-published",{path:s.user.username,loadedOnce:!0,page:2,per_page:14,params:{filter:"published",sort:"date.published"},emptyText:b}),new s.StoryList("#browse-drafts",{path:s.user.username+"/likes",per_page:14,emptyText:t("__name__ has not liked any story yet",{name:s.user.name||s.user.username}),params:{}})]}this.tabs=new s.Tabs("#user-stories",{active:0,activate:this.activateTab,suppressInit:!0}),this.storyControl=new s.StoryControl,this.walkthrough=new s.Walkthrough([{el:"#stories",gravity:"nw",text:t("Browse your stories and hover over them to edit")},{el:"#user-edit",text:t("Complete your profile")}]),this.isAuthor&&(this.list[0].container.find(".story-toolbar").show(),this.el.userFollowContainer.hide(),s.cookie.get("profileSeen")||(s.cookie.set("profileSeen",!0),_.delay(_.bind(this.walkthrough.start,this.walkthrough),1e3))),_.each($(".timestamp"),function(a){var b=$(a),c=b.attr("data-timestamp");b.text(s.utils.date(c).fromNow())}),this.el.edit.click(this.edit),this.el.editing.click(this.click),this.el.editCancel.click(this.cancel),this.el.editSave.click(this.save),this.el.follow.live("mouseenter",this.followHoverIn),this.el.follow.live("mouseleave",this.followHoverOut),this.el.follow.live("click",this.followClick),this.el.followOther.live("mouseenter",this.followOtherHoverIn),this.el.followOther.live("mouseleave",this.followOtherHoverOut),this.el.followOther.live("click",this.followOtherClick),this.el.remove.click(this.removeUser),this.el.loadMore.click(this.loadMore),s.auth.user&&window.location.hash=="#subscribe"&&this.el.follow.hasClass("accept")&&(this.el.follow.click(),s.notify.success(t("You are now subscribed to __name__",{name:s.user.name||s.user.username})+".",{element:"#content",slideSpeed:200,duration:3e3}))},removeUser:function(a){confirm("Are you sure?")&&$.ajax("/api/users/"+s.user.username+"/remove",{type:"POST",data:{username:s.auth.user.username,_token:s.auth.user._token},success:function(a){s.notify.success("Succesfully removed",{element:"#content",slideSpeed:200,duration:3e3})},error:function(a){s.notify.error("Error removing",{element:"#content",slideSpeed:200,duration:3e3})}})},activateTab:function(a){this.list[a].update()},followHoverIn:function(a){var b=this;this.el.follow.hasClass("cancel")&&this.el.follow.removeClass("cancel").addClass("decline").html("✖ "+t("Unsubscribe")+" ")},followHoverOut:function(a){var b=this;this.el.follow.hasClass("decline")&&this.el.follow.removeClass("decline").addClass("cancel").html("✔ "+t("Subscribed")+" ")},followClick:function(a){var b=this;if(!s.auth.user){s.auth.loginPopup(function(c,d){if(c||!d)return;b.followClick(a)});return}s.nav&&s.nav.updateUser(),b.el.follow.attr("disabled",!0),b.el.follow.hasClass("accept")?(b.el.follow.html(""+t("Subscribing")+" "),s.auth.follow(s.user.username,function(a){b.el.follow.removeAttr("disabled").html("✚ "+t("Subscribe")+" ");if(a){s.notify.error(t("Unable to subscribe to __name__ at this time, please try again later",{name:s.user.name||s.user.username}),{element:"#content",duration:4e3});return}b.el.follow.removeClass("accept").addClass("cancel").html("✔ "+t("Subscribed")+" ");var c=b.el.followersCount.text()*1+1;b.el.followersCount.text(c);var d=c===1?t("subscriber"):t("subscribers");b.el.followersText.text(d)})):(b.el.follow.html(""+t("Unsubscribing")+" "),s.auth.unfollow(s.user.username,function(a){b.el.follow.removeAttr("disabled").html("✔ "+t("Subscribed")+" ");if(a){s.notify.error(t("Unable to unsubscribe from __name__ at this time, please try again later",{name:s.user.name||s.user.username}),{element:"#content",duration:4e3});return}b.el.follow.removeClass("cancel decline").addClass("accept").html("✚ "+t("Subscribe")+" ");var c=b.el.followersCount.text()*1-1;b.el.followersCount.text(c);var d=c===1?t("subscriber"):t("subscribers");b.el.followersText.text(d)}))},followOtherHoverIn:function(a){var b=this,c=$(a.target).parents(".user").find("button");c.hasClass("cancel")&&c.removeClass("cancel").addClass("decline").html("✖ "+t("Unsubscribe")+" ")},followOtherHoverOut:function(a){var b=this,c=$(a.target).parents(".user").find("button");c.hasClass("decline")&&c.removeClass("decline").addClass("cancel").html("✔ "+t("Subscribed")+" ")},followOtherClick:function(a){var b=this,c=$(a.target).parents(".user").find("button"),d=c.parents(".user").data("username");if(!s.auth.user){s.auth.showLogin(_.bind(this.followClick,this));return}s.nav.updateUser(),c.attr("disabled",!0),c.hasClass("accept")?(c.html(""+t("Subscribing")+" "),s.auth.follow(d,function(a){c.removeAttr("disabled").html("✚ "+t("Subscribe")+" ");if(a){s.notify.error(t("Unable to subscribe to __name__ at this time, please try again later",{name:d}),{element:"#content",duration:4e3});return}c.removeClass("accept").addClass("cancel").html("✔ "+t("Subscribed")+" ");if(s.auth.user.username===s.user.username){var e=b.el.followingCount.text()*1+1;b.el.followingCount.text(e);var f=e===1?t("subscription"):t("subscriptions");b.el.followingText.text(f)}})):(c.html(""+t("Unsubscribing")+" "),s.auth.unfollow(d,function(a){c.removeAttr("disabled").html("✔ "+t("Subscribed")+" ");if(a){s.notify.error(t("Unable to unsubscribe from __name__ at this time, please try again later",{name:d}),{element:"#content",duration:4e3});return}c.removeClass("cancel decline").addClass("accept").html("✚ "+t("Subscribe")+" ");if(s.auth.user.username===s.user.username){var e=b.el.followingCount.text()*1-1;b.el.followingCount.text(e);var f=e===1?t("subscription"):t("subscriptions");b.el.followingText.text(f)}}))},click:function(a){$(a.currentTarget).attr("readonly")&&this.edit()},edit:function(){return $(".editing").each(function(){var a=$(this);a.data("last",a.val()).removeAttr("readonly")}),$("#user-edit").hide(),$(".user-editing").fadeIn(),!1},cancel:function(){$(".editing").each(function(){var a=$(this);a.val(a.data("last")).attr("readonly",!0)}),$(".user-editing").hide(),$("#user-edit").fadeIn()},save:function(){var a={bio:$(".user-bio").val()||"",location:$(".user-location").val()||"",website:$(".user-website").val()||""};$.ajax("/api/users/"+s.user.username+"/update",{type:"POST",data:{username:s.auth.user.username,_token:s.auth.user._token,user:JSON.stringify(a)},success:function(a){$(".editing").attr("readonly",!0),$(".user-editing").hide(),$("#user-edit").fadeIn()},error:function(a){$(".editing").attr("readonly",!0),$(".user-editing").hide(),$("#user-edit").fadeIn()}})},loadMore:function(a){var b=$(a.target).data("type"),c=this;this.el.loadMore.attr("disabled",!0).addClass("loading").text("");var d={page:++this.options.page,per_page:this.options.per_page};s.auth.user&&(d.username=s.auth.user.username,d._token=s.auth.user._token),$.ajax("/api/users/"+s.user.username+"/"+b,{type:"GET",data:d,success:function(a){var d=a.content[b];for(var e=0;e=s.user.stats[b]&&c.el.loadMore.hide()},error:function(a){c.el.loadMore.attr("disabled",!1).removeClass("loading").text(t("Show more")),s.notify.error("An error occured",{element:"#content",duration:4e3})}})}}),s.pages.Story=s.Class.extend({initialize:function(a){var b=this;this.el={notifyLink:$(".story-toolbar-notify"),notifyTweet:$("#notify-tweet"),notifyChars:$("#notify-tweet-count"),notifySources:$("#notify-notify .person"),storyLinks:$(".story-link"),storyPermalink:$("#story-permalink"),storyShortlink:$("#story-shortlink"),storyEmbedcode:$("#story-embedcode"),shareTwitter:$("#share-twitter"),shareFacebook:$("#share-facebook"),shareMessage:$("#share-message"),shareChars:$("#share-message-count"),copyPermalink:$("#copy-permalink"),copyShortlink:$("#copy-shortlink"),copyEmbedcode:$("#copy-embedcode"),sidebar:$(".right-sidebar"),siteIcon:$(".site-icon, #add-sites button"),userSites:$("#user-sites"),addSite:$("#add-sites button"),deleteSite:$(".site-delete"),checkSite:$(".site-check"),configSite:$(".site-configure"),saveSite:$(".site-save"),siteConfigUrl:$(".site-config-url"),siteConfigInput:$(".site-config input"),postLink:$(".story-toolbar-post"),postButton:$("#publish-modal-submit"),mailchimpKey:$(".site-mailchimp-key"),mailchimpSelect:$(".site-mailchimp-select"),relatedStories:$("#related-stories"),authorStories:$("#author-stories"),publicizeButton:$("#publicize"),sidebar:$("#story-side"),shareElementModal:$("#share-element-modal"),sharedElementContainer:$("#share-element-modal .s-element .s-element-container"),sharedElementShare:$(".shared-element-share"),sharedElementComments:$(".shared-element-comments"),sharedElementActions:$(".shared-element-actions"),section:$("#story .s-section"),sectionEdit:$("#story .s-section a.edit"),sectionAdd:$("#add-section"),sectionSelect:$("#add-section select"),sectionSubmit:$("#add-section button"),sectionUpdated:$("#add-section .updated")},this.el.siteIcon.tipsy({live:!0,delayIn:500}),_.bindAll(this,"permalinkCopied","shortlinkCopied","embedcodeCopied","notifyClick","notifyUpdateChars","shareUpdateChars","addSite","saveSite","deleteSite","editSiteUrl","publishModalShow","configSite","siteConfigInputKeydown","post","checkSite","postClick","mcKeyUpdate","notifySourceClick","autoshare","publicizeClick","opengraphDelete","opengraphRead","resizeSidebar","shareElementModalClick","sectionEditClick","sectionSubmitClick","sectionSelectChange"),this.el.notifySources.each(function(a,b){var c=$(b),d=c.attr("data-json");c.data("person",JSON.parse(decodeURIComponent(c.attr("data-json")))),c.removeAttr("data-json")}),s.story.path=s.story.author.username+"/"+s.story.slug,this.relatedStories=new s.StoryList("#related-stories",{path:s.story.path+"/related",per_page:3,autoLoads:0,loadMore:!1,blockAdultContent:!0,editable:!1,template:"tile_simple"}),this.authorStories=new s.StoryList("#author-stories",{path:s.story.path+"/more",per_page:3,autoLoads:0,loadMore:!1,editable:!1,template:"tile_simple"}),this.relatedStories.update(function(){mixpanel.track_links("#related-stories a.story-tile-simple-title","related-stories")}),this.authorStories.update(function(){mixpanel.track_links("#author-stories a.story-tile-simple-title","author-stories")}),this.maxTweetSize=123,this.el.notifyTweet.attr("maxlength",this.maxTweetSize),this.notifyUpdateChars(),this.shareUpdateChars(),s.story.canEdit&&(this.notifyModal=new s.Modal("#notify-modal"),$.get("/api/users/"+s.auth.user.username,function(a){b.user=a.content,window.location.hash=="#publicize"&&(s.auth.getIdentity("facebook",function(a){a&&b.notifyModal.modal.find("#share-facebook").attr("checked",!0)}),s.auth.getIdentity("twitter",function(a){a&&b.notifyModal.modal.find("#share-twitter").attr("checked",!0)}),b.notifyModal.show(),window.scrollTo(0,0))})),this.publishModalShow(),this.publishModal=new s.Modal("#publish-modal");if(window.location.hash){var c=window.location.hash.substring(1),d=c.match(/^[a-f0-9]+$/i)&&c;d&&(this.shareElementModal=new s.Modal("#share-element-modal"),this.el.shareElementModal.attr("data-id",d),this.el.shareElementModal.attr("data-permalink",$("#"+d).data("permalink")),this.el.shareElementModal.click(this.shareElementModalClick),$.ajax("/api/elements/"+d,{type:"get",data:s.auth.user?{username:s.auth.user.username,_token:s.auth.user._token}:{},success:function(a){if(!a.error&&a.content){var c=a.content;c.sid=s.story.sid;var d=$(s.templates.render("story/elements/_"+c.type,{element:c,email:!1}));_.each(d.find(".timestamp"),function(a){var b=$(a),c=b.attr("data-timestamp");b.text(s.utils.date(c).fromNow())}),b.el.sharedElementContainer.append(d);var e={permalink:s.story.permalink},f=$(s.templates.render("story/elements/_share",{story:e,element:c}));b.el.sharedElementShare.prepend(f);var g=$(s.templates.render("story/elements/_comments",{element:c}));b.el.sharedElementComments.prepend(g),c.liked?b.el.sharedElementActions.find("a.like").addClass("liked"):c.stats.likes===0&&(b.el.sharedElementActions.find(".count").hide(),b.el.sharedElementActions.find("a.like").addClass("no-like")),b.el.sharedElementActions.find(".count span").text(c.stats.likes),b.shareElementModal.show()}}}))}this.storyControl=new s.StoryControl(!0),s.story.canEdit&&$(".left-content .story-toolbar").show(),this.el.copyPermalink.zclip({path:"/public/js/support/ZeroClipboard.swf",copy:this.el.storyPermalink.val(),afterCopy:this.permalinkCopied}),this.el.copyShortlink.zclip({path:"/public/js/support/ZeroClipboard.swf",copy:this.el.storyShortlink.val(),afterCopy:this.shortlinkCopied}),this.el.copyEmbedcode.zclip({path:"/public/js/support/ZeroClipboard.swf",copy:this.el.storyEmbedcode.val(),afterCopy:this.embedcodeCopied}),$("#notify-notify .person").length<1&&$("#notify-notify").hide(),this.el.publicizeButton.click(this.publicizeClick),this.el.notifyLink.click(this.notifyClick),this.el.notifyTweet.bind("keydown keyup change",this.notifyUpdateChars),this.el.storyLinks.click(this.clickStoryLink),this.el.notifySources.click(this.notifySourceClick),this.el.shareTwitter.change(this.shareSelect("twitter")),this.el.shareFacebook.change(this.shareSelect("facebook")),this.el.shareMessage.bind("keydown keyup change",this.shareUpdateChars),this.el.addSite.click(this.addSite),this.el.deleteSite.live("click",this.deleteSite),this.el.checkSite.live("click",this.checkSite),this.el.saveSite.live("click",this.saveSite),this.el.configSite.live("click",this.configSite),this.el.siteConfigUrl.live("keydown",this.editSiteUrl),this.el.siteConfigInput.live("keydown",this.siteConfigInputKeydown),this.el.mailchimpKey.live("keydown",this.mcKeyUpdate),this.el.postLink.click(this.postClick),this.el.postButton.click(this.post),this.updatePostButton(),this.autoshare(),this.sectionInit(),this.el.sectionSelect.chosen().change(this.sectionSelectChange),this.el.sectionSubmit.hide().click(this.sectionSubmitClick),this.el.sectionEdit.click(this.sectionEditClick)},getIdentity:function(a){return this.user?_.find(this.user.identities,function(b){return b.service==a}):null},publicizeClick:function(a){function d(){--c||b.notifyModal.hide()}var b=this,c=0;if($("#notify-notify .person.active").length>0){if(this.notifyCharsLeft<0)return alert("Your notification message is too long. Please make it shorter."),!1;c++,this.notify(d)}if(this.el.shareTwitter.prop("checked")||this.el.shareFacebook.prop("checked"))c++,this.share(d)},share:function(a){var b={message:this.el.shareMessage.val(),permalink:s.story.permalink,services:[]};this.el.shareTwitter.prop("checked")&&b.services.push("twitter"),this.el.shareFacebook.prop("checked")&&b.services.push("facebook"),$.ajax("/api/stories/"+s.user.username+"/"+s.story.slug+"/share",{type:"POST",data:{notification:JSON.stringify(b),username:s.auth.user.username,_token:s.auth.user._token},success:function(b){a(null,b)},failure:function(b){a(b)}})},shareSelect:function(a){var b=this;return function(c){var d=$(c.currentTarget),e=b.getIdentity(a);d.prop("checked")&&!e?(d.prop("checked",!1),d.parent().removeClass("active"),s.auth.serviceConnect(a,function(a){b.user.identities.push(a.content.identity),d.prop("checked",!0),d.parent().addClass("active")})):d.prop("checked")?d.parent().addClass("active"):d.parent().removeClass("active")}},autoshare:function(){var a=this;if(!s.auth.user||s.auth.user.settings.facebook_autoshare===!1)return;if(s.story&&(s.story.private||s.story.status!="published"))return;if(s.story.permalink.match(/\/(playboy|playboydotcom|playboy_nl|210tuesday|penthouse)/))return;s.auth.getIdentity("facebook",function(b){if(!b||!b.token)return;var c=$(s.templates.render("layout/_read_notification")),d=!1;c.find(".hidden").hide(),c.find(".delete").click(function(){return mixpanel.track("fb-autoshare-cancel",{sid:s.story.sid,permalink:s.story.permalink}),d=!0,console.log("Fading out"),c.fadeOut(),!1}),$("#head .right").prepend(c.hide()),setTimeout(function(){c.fadeIn()},1e3),setTimeout(function(){if(d)return;a.opengraphRead(s.story.permalink)},6e3)})},opengraphRead:function(a,b){var c=this,d=$("#read-notification"),e=function(a){c.opengraphReadID=a,d.find(".delete").html("Delete").click(c.opengraphDelete),s.auth.user.settings.notifications.autoshare!==!1?(d.find("#read-notification-tip").show(),d.find(".accept").click(function(){d.find("#read-notification-tip").hide();if(!d.find(".actions-line label input").prop("checked"))return;$.ajax("/api/users/"+s.auth.user.username+"/update",{type:"post",data:{user:JSON.stringify({settings:{notifications:{autoshare:!1}}}),username:s.auth.user.username,_token:s.auth.user._token},success:function(a){s.auth.setUser(a.content),s.auth.setUserCookie()},error:function(a){}})})):d.find("#read-notification-tip").remove(),d.find("span.message").html("Added to your activity · ")};$.ajax("https://graph.facebook.com/me/"+s.namespace+":read",{type:"POST",data:{story:a,access_token:s.auth.getIdentity("facebook").token},error:function(f){mixpanel.track("fb-autoshare-fail",{sid:s.story.sid,permalink:s.story.permalink,user:s.auth.user});try{var g=JSON.parse(f.responseText).error;window.console&&console.log("FB error: ",g);if(g&&g.code==3501){var h=g.message.match(/[1-9]{1,25}$/)[0];return e(h)}}catch(i){window.console&&console.log("Unknown error: ",f)}d.find("span.message").html("Couldn't add your activity · ");if(b==1){d.find("a").remove();return}d.find("a").html("Please update your Facebook permissions").unbind("click").click(function(){return mixpanel.track("fb-autoshare-reconnect",{sid:s.story.sid,permalink:s.story.permalink}),s.auth.serviceReconnect("facebook",function(b){c.opengraphRead(a,1)}),!1});return},complete:function(a){if(a.status!=200)return;mixpanel.track("fb-autoshare-done",{sid:s.story.sid,permalink:s.story.permalink}),e(JSON.parse(a.responseText).id)}})},opengraphDelete:function(a,b){var c=this;mixpanel.track("fb-autoshare-delete",{sid:s.story.sid,permalink:s.story.permalink}),$.ajax("https://graph.facebook.com/"+c.opengraphReadID,{type:"POST",data:{method:"delete",access_token:s.auth.getIdentity("facebook").token},complete:function(b){b.status==200?($(a.target).parents("#read-notification").fadeOut(),s.notify.success(t("Your activity has been deleted successfully"),{element:"#content",slideSpeed:200,duration:3e3})):s.notify.error(t("Sorry, we encounted an error while trying to delete this activity"),{element:"#content",slideSpeed:200,duration:3e3})}})},notifySourceClick:function(a){var b=$(a.currentTarget);b.toggleClass("active")},mcKeyUpdate:function(a){var b=this,c=$(a.currentTarget),d=c.parents("li"),e=d.find(".site-mailchimp-select");_.delay(function(){var a=c.val();a.length==36&&(c.attr("disabled",!0),$.get("/api/utils/mailchimpLists",{key:a},function(a){c.removeAttr("disabled"),a.code==200&&(e.empty().removeAttr("disabled"),$.each(a.content,function(a,b){var c=$("").val(b.id).text(b.name);e.append(c)}))}))},100)},postClick:function(a){a.preventDefault(),this.publishModal.show()},updatePostButton:function(){this.el.userSites.find(".selected").length?this.el.postButton.removeAttr("disabled"):this.el.postButton.attr("disabled",!0)},post:function(a){var b=this,c=b.el.userSites.children(".selected"),d=[];b.el.postButton.attr("disabled",!0).find("span").text("Posting..."),c.each(function(a,b){d.push($(b).attr("id"))}),$.ajax("/api/stories/"+s.user.username+"/"+s.story.slug+"/post",{type:"POST",data:{sites:JSON.stringify(d),published:!0,username:s.auth.user.username,_token:s.auth.user._token},success:function(a){var c=a.content,d=!1;b.el.postButton.removeAttr("disabled").find("span").text("Export"),$.each(c,function(a,c){var e=$("#"+c._id);c.error?(d=!0,e.addClass("error")):(b.sitePosted(e,c),e.find(".site-check").click())}),d&&s.notify.error(t("An error occured posting to one or more of your sites, please try again"),{element:"#publish-modal .modal-body",duration:2e3})},error:function(a){b.el.postButton.removeAttr("disabled").find("span").text("Post"),s.notify.error(t("There was a problem posting, please try again"),{element:"#publish-modal .modal-body",duration:2e3})}})},sitePosted:function(a,b){a.find(".site-url").attr("href",b.url).text(b.url),a.addClass("posted")},siteConfigInputKeydown:function(a){a.keyCode==13&&this.saveSite(a)},configSite:function(a){a.preventDefault();var b=$(a.currentTarget),c=b.parents("li");c.addClass("editing")},publishModalShow:function(){if(!s.auth.user)return;var a=this;$.get("/api/users/"+s.user.username+"/sites",{username:s.auth.user.username,_token:s.auth.user._token},function(b){var c=b.content;$.each(c,function(b,c){var d=$(s.templates.render("story/_publish_site",{site:c}));a.el.userSites.append(d),$.each(s.story.siteposts,function(b,e){e._id==c._id&&a.sitePosted(d,e)}),c.auto&&d.find(".site-check").click()})})},editSiteUrl:function(a){var b=$(a.currentTarget),c=b.parents("li"),d=c.find(".site-url");_.defer(function(){var a=b.val();d.attr("href",a).text(a)})},checkSite:function(a){var b=this,c=$(a.currentTarget),d=c.parents("li");_.defer(function(){c.attr("checked")?d.addClass("selected"):d.removeClass("selected"),b.updatePostButton()})},addSite:function(a){var b=$(a.currentTarget),c=b.attr("data-service"),d=$(s.templates.render("story/_publish_site",{editing:!0,selected:!0,site:{service:c}}));this.el.userSites.append(d),d.find("input")[1].focus(),d.find(".site-check").attr("disabled",!0)},saveSite:function(a){var b=this,c=$(a.currentTarget),d=c.parents("li"),e=d.attr("id"),f=e?"update":"create",g={service:d.attr("data-service"),url:d.find(".site-config-url").val(),username:d.find(".site-config-username").val(),password:d.find(".site-config-password").val()};g.url.match(/^http:\/\//)||(g.url="http://"+g.url),g.service=="mailchimp"&&(g.username=d.find(".site-config-url").val(),g.url=d.find(".site-config-url").text()),e&&(g.id=e),$.ajax("/api/users/"+s.user.username+"/sites/"+f,{type:"POST",data:{site:JSON.stringify(g),username:s.auth.user.username,_token:s.auth.user._token},success:function(a){s.notify.success(t("Site "+f+"d successfully"),{element:"#publish-modal .modal-body",duration:2e3}),d.removeClass("editing").addClass("selected"),d.attr("id",a.content._id),d.find(".site-url").text(a.content.url),d.find(".site-check").removeAttr("disabled").attr("checked",!0),b.updatePostButton()}})},deleteSite:function(a){a.preventDefault();var b=this,c=$(a.currentTarget),d=c.parents("li");id=d.attr("id"),id?$.ajax("/api/users/"+s.user.username+"/sites/remove",{type:"POST",data:{site:id,username:s.auth.user.username,_token:s.auth.user._token},success:function(a){s.notify.success(t("Site removed successfully"),{element:"#publish-modal .modal-body",duration:2e3}),d.remove(),b.updatePostButton()}}):(d.remove(),b.updatePostButton())},clickStoryLink:function(a){a.preventDefault(),$(this).select()},permalinkCopied:function(){var a=this;a.el.copyPermalink.text("✓ copied").fadeOut("slow",function(){a.el.copyPermalink.text("copy").fadeIn("fast")})},shortlinkCopied:function(){var a=this;a.el.copyShortlink.text("✓ copied").fadeOut("slow",function(){a.el.copyShortlink.text("copy").fadeIn("fast")})},embedcodeCopied:function(){var a=this;a.el.copyEmbedcode.text("✓ copied").fadeOut("slow",function(){a.el.copyEmbedcode.text("copy").fadeIn("fast")})},notifyClick:function(a){a.preventDefault(),this.notifyModal.show()},notifyUpdateChars:function(a){var b=this.el.notifyTweet.val().length||0,c=this.maxTweetSize-b;this.notifyCharsLeft=c,this.el.notifyChars.text(c)},shareUpdateChars:function(a){var b=this.el.shareMessage.val().length||0,c=140-b;this.el.shareChars.text(c)},notify:function(a){var b=this,c={message:this.el.notifyTweet.val(),users:[]};$("#notify-notify .person.active").each(function(a,b){c.users.push($(b).data("person"))}),$.ajax("/api/stories/"+s.user.username+"/"+s.story.slug+"/notify",{type:"POST",data:{notification:JSON.stringify(c),published:!0,username:s.auth.user.username,_token:s.auth.user._token},success:function(b){$("#notify-modal .error").html(""),$("#notify-notify .person.active").each(function(a,b){$(b).remove()}),$("#notify-notify .person").length<1&&$("#notify-notify").hide(),a(null,b)},error:function(b){var c=JSON.parse(b.responseText);$("#notify-modal .error").html(c.error.message),a(b)}})},resizeSidebar:function(a){var b=$(window).height()-124;this.el.sidebar.css("height",b)},shareElementModalClick:function(a){($(a.target).attr("id")==="share-element-modal"||$(a.target).hasClass("modal-body")||$(a.target).hasClass("left")||$(a.target).hasClass("right"))&&this.shareElementModal.hide()},sectionInit:function(){this.el.section.hasClass("hidden")||this.el.sectionAdd.hide()},sectionSelectChange:function(a){this.el.sectionSubmit.is(":visible")||(this.el.sectionUpdated.hide(),this.el.sectionSubmit.fadeIn(250))},sectionEditClick:function(a){a.preventDefault(),this.el.sectionAdd.is(":visible")||this.el.sectionAdd.fadeIn(250)},sectionSubmitClick:function(a){var b=this.el.sectionSelect.val(),c=this;b!==""&&$.ajax("/api/stories/"+s.user.username+"/"+s.story.slug+"/update",{type:"POST",data:{story:JSON.stringify({section:b}),published:!0,username:s.auth.user.username,_token:s.auth.user._token},success:function(a){c.el.sectionSubmit.hide(),c.el.sectionUpdated.fadeIn(250,function(){setTimeout(function(){c.el.sectionUpdated.fadeOut(250),c.el.sectionAdd.fadeOut(250,function(){c.el.sectionAdd.find("p").text(t("Change the section associated with this story")+" →")})},1e3)}),c.el.section.removeClass("hidden").find("a.name").text(c.el.sectionSelect.find('option[value="'+b+'"]').text()).attr("href","/sections/"+b)},error:function(a){s.notify.error(t("Error saving the section"),{element:"#content",slideSpeed:200,duration:3e3})}})}}),s.pages.Settings=s.Class.extend({initialize:function(){var a=this;this.el={main:$("#settings-main"),editors:$("#editors-container"),editorsTab:$("#settings-main .tab-editors"),editorsNav:$("#editors-nav"),editorsForm:$("#add-editor-form"),avatarTab:$("#settings-main .tab-avatar"),avatarSelect:$("#settings-main .tab-avatar .avatars"),avatarNav:$("#avatar-nav"),avatar:$(".tab-avatar .avatar"),connections:$("#connections-container"),connectionsTab:$("#settings-main .tab-connections"),connectionsNav:$("#connections-nav"),accountTab:$("#settings-main .tab-account"),accountNav:$("#account-nav"),accountForm:$("#account-form"),usernameForm:$("#change-username"),usernameLink:$("#change-username button"),usernameButton:$("#change-username-button"),usernameCancel:$("#change-username-cancel"),profileTab:$("#settings-main .tab-profile"),profileNav:$("#profile-nav"),profileForm:$("#profile-form"),notificationsTab:$("#settings-main .tab-notifications"),notificationsNav:$("#notifications-nav"),notificationsForm:$("#notifications-form"),commentsTab:$("#settings-main .tab-comments"),commentsNav:$("#comments-nav"),developersTab:$("#settings-main .tab-developers"),developersNav:$("#developers-nav"),enableComments:$("#enable-comments"),deleteLink:$("#delete-account button"),deleteButton:$("#delete-user-button"),cancelButton:$("#delete-user-cancel"),facebookAutoshare:$("#facebook-autoshare"),facebookQuoteImg:$("#facebook-quoteimg"),resendConfirmEmail:$("#resendConfirmEmail a")},_.bindAll(this,"deleteUser","tab","addEditor","removeEditor","updateAccount","refreshAccount","updateNotifications","clickAvatar","toggleComments","toggleFacebookSettings","updateProfile","updateUsername","resendConfirmEmail"),this.deleteModal=new s.Modal("#delete-user-modal",{show:function(){a.el.deleteButton.focus()}}),this.usernameModal=new s.Modal("#change-username-modal",{show:function(){a.el.deleteButton.focus()}}),this.el.deleteLink.live("click",function(b){b.preventDefault(),a.deleteModal.show()}),this.el.deleteButton.click(function(b){b.preventDefault(),confirm(t("Are you really sure you want to do that?"))&&(a.deleteUser(),a.el.deleteButton.blur())}),this.el.cancelButton.click(function(b){b.preventDefault(),a.deleteModal.hide()}),this.el.usernameLink.live("click",function(b){b.preventDefault(),a.usernameModal.show()}),this.el.usernameButton.click(function(b){b.preventDefault(),a.usernameModal.hide(),a.updateUsername(),a.el.usernameButton.blur()}),this.el.usernameCancel.click(function(b){b.preventDefault(),a.usernameModal.hide()}),this.el.editorsForm.submit(this.addEditor),this.el.accountForm.submit(this.updateAccount),this.el.usernameForm.submit(this.updateUsername),this.el.profileForm.submit(this.updateProfile),this.el.notificationsForm.submit(this.updateNotifications),this.el.editors.find("button.revoke").live("click",this.removeEditor),this.el.avatar.live("click",this.clickAvatar),this.refreshAccount(),this.getEditors(),$("#settings-nav li").click(function(b){a.tab(this)}),window.location.hash==""||$(window.location.hash+"-nav").length==0?this.tab(this.el.accountNav):this.tab(this.el[window.location.hash.substr(1)+"Nav"]),s.user.settings.comments?this.el.enableComments.find('input[value="'+s.user.settings.comments+'"]').prop("checked",!0):this.el.enableComments.find('input[value="null"]').prop("checked",!0),this.el.enableComments.find('input[name="enable-comments"]').change(this.toggleComments),$("#facebook-autoshare").live("change",function(b){a.toggleFacebookSettings(b,"autoshare")}),$("#facebook-quoteimg").live("change",function(b){a.toggleFacebookSettings(b,"quoteimg")})},updateUser:function(a,b,c){$.ajax("/api/users/"+s.auth.user.username+"/update",{type:"post",data:{user:JSON.stringify(a),username:s.auth.user.username,_token:s.auth.user._token},success:b,error:c})},toggleFacebookSettings:function(a,b){a.preventDefault();var c=this,d;switch(b){case"autoshare":d={facebook_autoshare:$("#facebook-autoshare").prop("checked")};break;case"quoteimg":d={facebook_quoteimg:$("#facebook-quoteimg").prop("checked")}}d&&this.updateUser({settings:d},function(a){s.auth.setUser(a.content),s.auth.setUserCookie(),s.notify.success(t("Successfully updated settings"),{element:"#content",slideSpeed:200,duration:3e3})},function(){s.notify.error(t("Error updating settings"),{element:"#content",slideSpeed:200,duration:3e3}),$("#facebook-"+b).prop("checked",!1)})},toggleComments:function(a){a.preventDefault();var b=this,c=$(a.target).attr("value")=="null"?null:$(a.target).attr("value");this.updateUser({settings:{comments:c}},function(){s.notify.success(t("Successfully updated comments settings"),{element:"#content",slideSpeed:200,duration:3e3})},function(){s.notify.error(t("Error updating comments settings"),{element:"#content",slideSpeed:200,duration:3e3}),this.el.enableComments.find('input[value="null"]').prop("checked",!0)})},clickAvatar:function(a){var b=$(a.currentTarget),c=b.find("img").attr("src"),d=b.attr("data-service"),e=this;if(b.hasClass("active"))return;if(b.is(".inactive"))return s.auth.serviceConnect(d,function(){e.refreshAccount(!1,function(){e.el.avatarSelect.find(".connected div."+d).click()})}),!1;this.updateAvatar(c,function(a){b.siblings(".active").removeClass("active"),b.addClass("active"),s.notify.success(t("Successfully updated avatar"),{element:"#content",slideSpeed:200,duration:3e3})})},updateAvatar:function(a,b,c){this.updateUser({avatar:a},function(a){var c=a.content;s.auth.setUser(c),s.auth.setUserCookie(),s.nav.updateUser(),_.isFunction(b)&&b(c)},c)},getEditors:function(){var a=this;$.ajax("/api/users/"+s.user.username+"/editors?username="+s.auth.user.username+"&_token="+s.auth.user._token,{type:"get",success:function(b){_.each(b.content.editors,function(b){a.el.editors.prepend($(s.templates.render("user/_editor",{editor:b})))})},error:function(b){a.el.editors.prepend("An error occurred while trying to find editors.")}})},removeEditor:function(a){a.preventDefault();var b=this,c=$(a.currentTarget).parents(".user-summary");c.find("input, button").attr("disabled",!0),$.ajax("/api/users/"+s.user.username+"/editors/remove",{type:"post",data:{user:c.attr("name"),username:s.auth.user.username,_token:s.auth.user._token},success:function(a){s.notify.success(t(a.content),{element:"#content",slideSpeed:200,duration:3e3}),c.remove()},error:function(a){var b="";try{b=JSON.parse(a.responseText).error.message}catch(d){b="An error occurred while trying to remove this editor"}s.notify.error(t(b),{element:"#content",slideSpeed:200,duration:3e3}),c.find("input, button").removeAttr("disabled")}})},addEditor:function(a){a.preventDefault();var b=this,c=this.el.editorsForm.find("#add-editor").val();this.el.editorsForm.find("input, button").attr("disabled",!0),$.ajax("/api/users/"+s.user.username+"/editors/add",{type:"post",data:{user:c,username:s.auth.user.username,_token:s.auth.user._token},success:function(a){s.notify.success(t(a.message),{element:"#content",slideSpeed:200,duration:3e3}),b.el.editors.prepend($(s.templates.render("user/_editor",{editor:a.content.editor}))),b.el.editorsForm.find("input, button").removeAttr("disabled")},error:function(a){var c="";try{c=JSON.parse(a.responseText).error.message}catch(d){c="An error occurred while trying to add this editor"}s.notify.error(t(c),{element:"#content",slideSpeed:200,duration:3e3}),b.el.editorsForm.find("input, button").removeAttr("disabled")}})},refreshAccount:function(a,b){var c=this;this.el.usernameForm.find(".username").val(s.auth.user.username),s.auth.user.email.match("@noemail.com")||this.el.accountForm.find(".email").val(s.auth.user.email),this.el.profileForm.find(".name").val(s.auth.user.name),this.el.profileForm.find(".bio").val(s.auth.user.bio),this.el.profileForm.find(".location").val(s.auth.user.location),this.el.profileForm.find(".website").val(s.auth.user.website),this.el.profileForm.find("select#profile-lang option[value="+s.auth.user.lang+"]").attr("selected","selected"),this.el.notificationsForm.find("#notifications-digest").prop("checked",s.auth.user.settings.notifications.digest),this.el.notificationsForm.find("#notifications-story_comment").prop("checked",s.auth.user.settings.notifications.story_comment),this.el.notificationsForm.find("#notifications-story_like").prop("checked",s.auth.user.settings.notifications.story_like),this.el.notificationsForm.find("#notifications-element_comment").prop("checked",s.auth.user.settings.notifications.element_comment),this.el.notificationsForm.find("#notifications-element_like").prop("checked",s.auth.user.settings.notifications.element_like),this.el.notificationsForm.find("#notifications-follower").prop("checked",s.auth.user.settings.notifications.follower),this.el.notificationsForm.find("#notifications-quoted").prop("checked",s.auth.user.settings.notifications.quoted),this.el.notificationsForm.find("#notifications-friend_quoted").prop("checked",s.auth.user.settings.notifications.friend_quoted),this.el.avatarTab.find(".avatar-email").text(s.auth.user.email),c.el.avatarSelect.find(".connected").empty(),$.get("/api/users/"+s.auth.user.username+"?username="+s.auth.user.username+"&_token="+s.auth.user._token,function(d){s.auth.setUser(d.content),s.auth.setUserCookie(),s.nav.updateUser();var e=d.content.identities,f=["twitter","facebook","google","instagram","foursquare"],g;c.el.connections.html(""),_.each(e,function(b){if(b.service=="google")return;$avatar=$(s.templates.render("user/_avatar_selection",{identity:b})),c.el.avatarSelect.find(".connect-"+b.service).hide(),a&&b.service=="gravatar"&&s.auth.user.avatar.match(/gravatar/)?(c.updateAvatar(b.avatar),$avatar.addClass("active")):b.avatar==s.auth.user.avatar&&$avatar.addClass("active"),c.el.avatarSelect.find(".connected").append($avatar)}),_.each(f,function(a){var b=!1;_.each(e,function(c){c.service==a&&(b=c)}),b?(g=$(s.templates.render("user/_connection",{identity:b})),g.find("a.unlink").bind("click",function(){if(confirm(t("Are you sure you want to unlink this account?"))){var a=$(this).attr("data-service");s.auth.serviceDisconnect(a,function(){c.refreshAccount(!1,function(){s.auth.user.avatar==b.avatar&&c.el.avatarSelect.find(".connected").children(":first").click()})})}}),c.el.connections.append(g),b.service=="facebook"&&((s.user.settings.facebook_autoshare||_.isUndefined(s.user.settings.facebook_autoshare))&&$("#facebook-autoshare").prop("checked",!0),(s.user.settings.facebook_quoteimg||_.isUndefined(s.user.settings.facebook_quoteimg))&&$("#facebook-quoteimg").prop("checked",!0))):(c.el.avatarSelect.find(".connect-"+a).show(),g=$(s.templates.render("user/_connection",{identity:{service:a}})),g.find("a.button").bind("click",function(){var a=$(this).attr("data-service");s.auth.serviceConnect(a,c.refreshAccount)}),c.el.connections.append(g))}),_.isFunction(b)&&b()})},updateAccount:function(a){a.preventDefault();var b=this,c=this.el.accountForm.find(".email").val(),d=this.el.accountForm.find(".password").val(),e=this.el.accountForm.find(".passwordConfirm").val();if(d!=e){s.notify.error(t("Confirm password must match password"),{element:"#content",slideSpeed:200,duration:3e3});return}this.el.accountForm.find("input, button").attr("disabled",!0),this.updateUser({email:c,password:d},function(a){b.el.accountForm.find("input, button").removeAttr("disabled");var c=a.content;c._token=s.auth.user._token,s.auth.setUser(c),s.auth.setUserCookie(),b.refreshAccount(!0),s.notify.success(t("Successfully updated user"),{element:"#content",slideSpeed:200,duration:3e3})},function(a){b.el.accountForm.find("input, button").removeAttr("disabled");var c="";try{c=JSON.parse(a.responseText).error.message}catch(d){c="An error occurred while trying to update this user"}b.refreshAccount(),s.notify.error(t(c),{element:"#content",slideSpeed:200,duration:3e3})})},updateUsername:function(a){var b=this,c=this.el.usernameForm.find(".username").val();this.el.usernameForm.find("input, button").attr("disabled",!0),this.updateUser({username:c},function(a){b.el.usernameForm.find("input, button").removeAttr("disabled");var c=a.content;c._token=s.auth.user._token,s.auth.setUser(c),s.auth.setUserCookie(),b.refreshAccount(!0),s.notify.success(t("Successfully updated your username"),{element:"#content",slideSpeed:200,duration:3e3})},function(a){b.el.usernameForm.find("input, button").removeAttr("disabled");var c="";try{c=JSON.parse(a.responseText).error.message}catch(d){c="An error occurred while trying to update your username"}b.refreshAccount(),s.notify.error(t(c),{element:"#content",slideSpeed:200,duration:3e3})})},updateProfile:function(a){a.preventDefault();var b=this,c=this.el.profileForm.find(".name").val(),d=this.el.profileForm.find(".bio").val(),e=this.el.profileForm.find(".location").val(),f=this.el.profileForm.find(".website").val(),g=this.el.profileForm.find(".lang").val(),h=g!==s.auth.user.lang.substr(0,2);this.el.profileForm.find("input, button").attr("disabled",!0),this.updateUser({name:c,bio:d,location:e,website:f,lang:g},function(a){$.i18n.setLng(g,function(){b.el.profileForm.find("input, button").removeAttr("disabled");var c=a.content;c._token=s.auth.user._token,s.auth.setUser(c),s.auth.setUserCookie(),b.refreshAccount(!0),s.notify.success(t("Successfully updated user"),{element:"#content",slideSpeed:200,duration:3e3}),setTimeout(function(){h&&window.location.reload()},1e3)})},function(a){b.el.profileForm.find("input, button").removeAttr("disabled");var c="";try{c=JSON.parse(a.responseText).error.message}catch(d){c="An error occurred while trying to update this user"}b.refreshAccount(),s.notify.error(t(c),{element:"#content",slideSpeed:200,duration:3e3})})},updateNotifications:function(a){a.preventDefault();var b=this,c=this.el.notificationsForm.find("#notifications-story_comment").prop("checked"),d=this.el.notificationsForm.find("#notifications-story_like").prop("checked"),e=this.el.notificationsForm.find("#notifications-element_comment").prop("checked"),f=this.el.notificationsForm.find("#notifications-element_like").prop("checked"),g=this.el.notificationsForm.find("#notifications-follower").prop("checked"),h=this.el.notificationsForm.find("#notifications-quoted").prop("checked"),i=this.el.notificationsForm.find("#notifications-friend_quoted").prop("checked"),j=this.el.notificationsForm.find("#notifications-digest").prop("checked");this.el.notificationsForm.find("input, button").attr("disabled",!0),this.updateUser({settings:{notifications:{story_comment:c,story_like:d,element_comment:e,element_like:f,follower:g,digest:j,quoted:h,friend_quoted:i}}},function(a){b.el.notificationsForm.find("input, button").removeAttr("disabled");var c=a.content;c._token=s.auth.user._token,s.auth.setUser(c),s.auth.setUserCookie(),b.refreshAccount(!0),s.notify.success(t("Successfully updated user"),{element:"#content",slideSpeed:200,duration:3e3})},function(a){b.el.profileForm.find("input, button").removeAttr("disabled");var c="";try{c=JSON.parse(a.responseText).error.message}catch(d){c="An error occurred while trying to update this user"}b.refreshAccount(),s.notify.error(t(c),{element:"#content",slideSpeed:200,duration:3e3})})},tab:function(a){var b=$(a).attr("id").split("-nav")[0],c=this.el[b+"Tab"],d=this.el[b+"Nav"];if(c.hasClass("selected")&&c.hasClass("selected"))return;return d.addClass("selected").siblings().removeClass("selected"),c.addClass("selected").siblings().removeClass("selected"),window.location.hash="#"+b,!1},deleteUser:function(){var a=this;$.ajax("/api/users/"+s.user.username+"/remove",{type:"post",data:{username:s.auth.user.username,_token:s.auth.user._token},success:function(a){s.auth.logout(),window.location="/"},error:function(a){var b=t("An error occurred while trying to delete your account, please email info@storify.com to have it deleted manually");s.notify.error(b,{element:"#content",slideSpeed:200,duration:3e3})}})},resendConfirmEmail:function(a){a.preventDefault(),$.ajax("/api/resend_confirm_email",{type:"post",data:{email:window.s.user.email},success:function(a){var b=t("Confirmation email has been sent.");s.notify.success(b,{element:"#content",slideSpeed:200,duration:3e3})},error:function(a){var b;try{b=JSON.parse(a.responseText).error.message}catch(c){b=t("An error occurred while trying to resend the confirmation email.")}s.notify.error(b,{element:"#content",slideSpeed:200,duration:3e3})}})}}),s.pages.BrowseAll=s.Class.extend({initialize:function(a){_.bindAll(this,"activateTab"),this.list=[new s.StoryList("#browse-latest",{path:"browse/latest"}),new s.StoryList("#browse-popular",{path:"browse/popular"})],this.tabs=new s.Tabs("#browse",{active:1,activate:this.activateTab}),this.storyControl=new s.StoryControl,$("a.rss:eq(0)").hide()},activateTab:function(a){this.list[a].update(),$("a.rss").hide(),$("a.rss:eq("+a+")").show()}}),s.pages.SearchQuery=s.Class.extend({initialize:function(){_.bindAll(this,"activateTab");var a="There are no stories matching the search '"+s.query+"'";this.list=[new s.StoryList("#search-latest",{path:"search",params:{q:s.query,sort:"date.published"},emptyText:a}),new s.StoryList("#search-popular",{path:"search",params:{q:s.query,sort:"stats.views"},emptyText:a})],this.tabs=new s.Tabs("#browse",{active:0,activate:this.activateTab}),this.storyControl=new s.StoryControl},activateTab:function(a){this.list[a].update()}}),s.pages.BrowseFeatured=s.Class.extend({initialize:function(a){this.list=new s.StoryList("#browse-featured",{path:"browse/featured",params:{sort:"date.featured"}}),this.list.update(),this.storyControl=new s.StoryControl}}),s.pages.BrowseTopLikes=s.Class.extend({initialize:function(a){this.list=new s.StoryList("#browse-likes",{path:"browse/latest",params:{sort:"stats.likes"}}),this.list.update(),this.storyControl=new s.StoryControl}}),s.pages.BrowseSubscriptions=s.Class.extend({initialize:function(a){_.bindAll(this,"activateTab");var b=s.user.username+"/newswire";this.list=[new s.StoryList("#browse-latest",{path:b}),new s.StoryList("#browse-popular",{path:b,params:{sort:"stats.views"}})],this.tabs=new s.Tabs("#browse",{active:0,activate:this.activateTab}),this.storyControl=new s.StoryControl},activateTab:function(a){this.list[a].update()}}),s.pages.BrowseLikes=s.Class.extend({initialize:function(a){_.bindAll(this,"activateTab");var b=s.user.username+"/likes";this.list=[new s.StoryList("#browse-liked",{path:b,params:{sort:"date.liked"}}),new s.StoryList("#browse-latest",{path:b}),new s.StoryList("#browse-popular",{path:b,params:{sort:"stats.views"}})],this.tabs=new s.Tabs("#browse",{active:0,activate:this.activateTab}),this.storyControl=new s.StoryControl},activateTab:function(a){this.list[a].update()}}),s.pages.BrowseTopic=s.Class.extend({initialize:function(){_.bindAll(this,"activateTab");var a="There are no stories in this topic.";this.list=[new s.StoryList("#topic-latest",{path:"browse/latest",params:{topic:s.topic.slug},emptyText:a}),new s.StoryList("#topic-popular",{path:"browse/popular",params:{topic:s.topic.slug},emptyText:a})],this.tabs=new s.Tabs("#topic",{active:0,activate:this.activateTab}),this.storyControl=new s.StoryControl},activateTab:function(a){this.list[a].update()}}),s.pages.BrowseHashtag=s.Class.extend({initialize:function(){_.bindAll(this,"activateTab");var a="There are no stories including the hashtag '#"+s.hashtag+"'";this.list=[new s.StoryList("#hashtag-latest",{path:"browse/latest",params:{tag:s.hashtag},emptyText:a}),new s.StoryList("#hashtag-popular",{path:"browse/popular",params:{tag:s.hashtag},emptyText:a})],this.tabs=new s.Tabs("#hashtag",{active:0,activate:this.activateTab}),this.storyControl=new s.StoryControl},activateTab:function(a){this.list[a].update()}}),s.pages.BrowseSection=s.Class.extend({initialize:function(){_.bindAll(this,"activateTab");var a="There are no stories in this section.";this.list=[new s.StoryList("#section-latest",{path:"browse/latest",params:{section:s.section},emptyText:a}),new s.StoryList("#section-popular",{path:"browse/popular",params:{section:s.section},emptyText:a})],this.tabs=new s.Tabs("#section",{active:0,activate:this.activateTab}),this.storyControl=new s.StoryControl},activateTab:function(a){this.list[a].update()}}),s.pages.BrowseElection=s.Class.extend({initialize:function(){var a=1,b="There are no featured election stories yet.";this.list=new s.StoryList("#featured-election",{path:"browse/latest",params:{section:"2012-elections"},emptyText:b,loadMore:!1,page:1,per_page:2,autoLoads:!1}),console.log(this.list),this.list.update(),this.storyControl=new s.StoryControl}}),s.pages.SXSW=s.Class.extend({initialize:function(){var a=this;this.services=["twitter","facebook","google","foursquare","instagram"],this.el={loginButton:$(".login-sxsw"),connectButton:$(".identity .btn"),enableDisableButton:$("#step3 .btn")},_.bindAll(this,"clickLogin","clickConnect","clickEnableDisable","update"),this.el.loginButton.click(this.clickLogin),this.el.connectButton.click(this.clickConnect),this.el.enableDisableButton.click(this.clickEnableDisable),this.update()},clickLogin:function(a){a.preventDefault();var b=this;s.auth.showLogin(function(){b.update();var a=$("#step1"),c=a.offset().top+a.height();$("body").animate({scrollTop:c})}),mixpanel.track("login-clicked")},clickConnect:function(a){a.preventDefault();var b=$(a.target);if(b.hasClass("disabled"))return;var c=b.parents(".identity"),d=c.attr("id");s.auth.serviceConnect(d,this.update)},clickEnableDisable:function(a){a.preventDefault();var b=this,c=$("#step3 .btn");if(c.hasClass("disabled"))return;var d=c.hasClass("btn-info");c.addClass("disabled"),$.ajax("/api/users/"+s.auth.user.username+"/update",{type:"post",data:{user:JSON.stringify({settings:{sxsw:d}}),username:s.auth.user.username,_token:s.auth.user._token},success:function(){c.removeClass("disabled");if(d){var a=$("#step2"),b=a.offset().top+a.height();c.removeClass("btn-info").addClass("btn-danger").text("Disable"),$("#step3 #step3-container p.click").hide(),$("#step3 #enable-message").fadeIn(500),$("body").animate({scrollTop:b}),mixpanel.track("sxsw-enable-clicked")}else c.removeClass("btn-danger").addClass("btn-info").text("Enable"),$("#step3 #step3-container p.click").show(),$("#step3 #enable-message").hide(),mixpanel.track("sxsw-disable-clicked")}})},update:function(){if(!s.auth.user)return;$("#step1 .not-connected").hide(),$("#step1 .connected").show(),$("#step1 .connected strong").text(s.auth.user.username),$("#step2").addClass("active"),$("#step2 .btn").removeClass("disabled"),$("#step3 .btn").removeClass("disabled"),$.get("/api/users/"+s.auth.user.username+"?username="+s.auth.user.username+"&_token="+s.auth.user._token,function(a){var b=a.content;b.settings.sxsw?($("#step3 .btn").removeClass("btn-info").addClass("btn-danger").text("Disable"),$("#step3 #step3-container p.click").hide(),$("#step3 #enable-message").show()):($("#step3 .btn").removeClass("btn-danger").addClass("btn-info").text("Enable"),$("#step3 #step3-container p.click").show(),$("#step3 #enable-message").hide()),_.each(b.identities,function(a){var b=$("#"+a.service);if(!b.length)return;b.find(".btn").hide(),b.find(".connected").show()})})}})