function _loadUserVoice(){var a=document.createElement("script");a.setAttribute("type","text/javascript"),a.setAttribute("src",("https:"==document.location.protocol?"https://":"http://")+"cdn.uservoice.com/javascripts/widgets/tab.js"),document.getElementsByTagName("head")[0].appendChild(a)}WebFontConfig={google:{families:["Open+Sans:300italic,400italic,600italic,700italic,800italic,300,400,600,700,800:latin"]}},function(){var a=document.createElement("script");a.src=("https:"==document.location.protocol?"https":"http")+"://ajax.googleapis.com/ajax/libs/webfont/1/webfont.js",a.type="text/javascript",a.async="true";var b=document.getElementsByTagName("script")[0];b.parentNode.insertBefore(a,b)}(),function(a){function b(a,b){return typeof a=="function"?a.call(b):a}function c(b,c){this.$element=a(b),this.options=c,this.enabled=!0,this.fixTitle()}c.prototype={show:function(){var c=this.getTitle();if(c&&this.enabled){var d=this.tip();d.find(".tipsy-inner")[this.options.html?"html":"text"](c),d[0].className="tipsy",d.remove().css({top:0,left:0,visibility:"hidden",display:"block"}).prependTo(document.body);var e=a.extend({},this.$element.offset(),{width:this.$element[0].offsetWidth,height:this.$element[0].offsetHeight}),f=d[0].offsetWidth,g=d[0].offsetHeight,h=b(this.options.gravity,this.$element[0]),i;switch(h.charAt(0)){case"n":i={top:e.top+e.height+this.options.offset,left:e.left+e.width/2-f/2};break;case"s":i={top:e.top-g-this.options.offset,left:e.left+e.width/2-f/2};break;case"e":i={top:e.top+e.height/2-g/2,left:e.left-f-this.options.offset};break;case"w":i={top:e.top+e.height/2-g/2,left:e.left+e.width+this.options.offset}}h.length==2&&(h.charAt(1)=="w"?i.left=e.left+e.width/2-15:i.left=e.left+e.width/2-f+15),d.css(i).addClass("tipsy-"+h),d.find(".tipsy-arrow")[0].className="tipsy-arrow tipsy-arrow-"+h.charAt(0),this.options.className&&d.addClass(b(this.options.className,this.$element[0])),this.options.fade?d.stop().css({opacity:0,display:"block",visibility:"visible"}).animate({opacity:this.options.opacity}):d.css({visibility:"visible",opacity:this.options.opacity})}},hide:function(){this.options.fade?this.tip().stop().fadeOut(function(){a(this).remove()}):this.tip().remove()},fixTitle:function(){var a=this.$element;(a.attr("title")||typeof a.attr("original-title")!="string")&&a.attr("original-title",a.attr("title")||"").removeAttr("title")},getTitle:function(){var a,b=this.$element,c=this.options;this.fixTitle();var a,c=this.options;return typeof c.title=="string"?a=b.attr(c.title=="title"?"original-title":c.title):typeof c.title=="function"&&(a=c.title.call(b[0])),a=(""+a).replace(/(^\s*|\s*$)/,""),a||c.fallback},tip:function(){return this.$tip||(this.$tip=a('<div class="tipsy"></div>').html('<div class="tipsy-arrow"></div><div class="tipsy-inner"></div>')),this.$tip},validate:function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},enable:function(){this.enabled=!0},disable:function(){this.enabled=!1},toggleEnabled:function(){this.enabled=!this.enabled}},a.fn.tipsy=function(b){function e(d){var e=a.data(d,"tipsy");return e||(e=new c(d,a.fn.tipsy.elementOptions(d,b)),a.data(d,"tipsy",e)),e}function f(){var a=e(this);a.hoverState="in",b.delayIn==0?a.show():(a.fixTitle(),setTimeout(function(){a.hoverState=="in"&&a.show()},b.delayIn))}function g(){var a=e(this);a.hoverState="out",b.delayOut==0?a.hide():setTimeout(function(){a.hoverState=="out"&&a.hide()},b.delayOut)}if(b===!0)return this.data("tipsy");if(typeof b=="string"){var d=this.data("tipsy");return d&&d[b](),this}b=a.extend({},a.fn.tipsy.defaults,b),b.live||this.each(function(){e(this)});if(b.trigger!="manual"){var h=b.live?"live":"bind",i=b.trigger=="hover"?"mouseenter":"focus",j=b.trigger=="hover"?"mouseleave":"blur";this[h](i,f)[h](j,g)}return this},a.fn.tipsy.defaults={className:null,delayIn:0,delayOut:0,fade:!1,fallback:"",gravity:"n",html:!1,live:!1,offset:0,opacity:.8,title:"title",trigger:"hover"},a.fn.tipsy.elementOptions=function(b,c){return a.metadata?a.extend({},c,a(b).metadata()):c},a.fn.tipsy.autoNS=function(){return a(this).offset().top>a(document).scrollTop()+a(window).height()/2?"s":"n"},a.fn.tipsy.autoWE=function(){return a(this).offset().left>a(document).scrollLeft()+a(window).width()/2?"e":"w"},a.fn.tipsy.autoBounds=function(b,c){return function(){var d={ns:c[0],ew:c.length>1?c[1]:!1},e=a(document).scrollTop()+b,f=a(document).scrollLeft()+b,g=a(this);return g.offset().top<e&&(d.ns="n"),g.offset().left<f&&(d.ew="w"),a(window).width()+a(document).scrollLeft()-g.offset().left<b&&(d.ew="e"),a(window).height()+a(document).scrollTop()-g.offset().top<b&&(d.ns="s"),d.ns+(d.ew?d.ew:"")}}}(jQuery),function(a){a.fn.zclip=function(b){if(typeof b=="object"&&!b.length){var c=a.extend({path:"ZeroClipboard.swf",copy:null,beforeCopy:null,afterCopy:null,clickAfter:!0,setHandCursor:!0,setCSSEffects:!0},b);return this.each(function(){var b=a(this);if(b.is(":visible")&&(typeof c.copy=="string"||a.isFunction(c.copy))){ZeroClipboard.setMoviePath(c.path);var d=new ZeroClipboard.Client;a.isFunction(c.copy)&&b.bind("zClip_copy",c.copy),a.isFunction(c.beforeCopy)&&b.bind("zClip_beforeCopy",c.beforeCopy),a.isFunction(c.afterCopy)&&b.bind("zClip_afterCopy",c.afterCopy),d.setHandCursor(c.setHandCursor),d.setCSSEffects(c.setCSSEffects),d.addEventListener("mouseOver",function(a){b.trigger("mouseenter")}),d.addEventListener("mouseOut",function(a){b.trigger("mouseleave")}),d.addEventListener("mouseDown",function(e){b.trigger("mousedown"),a.isFunction(c.copy)?d.setText(b.triggerHandler("zClip_copy")):d.setText(c.copy),a.isFunction(c.beforeCopy)&&b.trigger("zClip_beforeCopy")}),d.addEventListener("complete",function(d,e){a.isFunction(c.afterCopy)?b.trigger("zClip_afterCopy"):(e.length>500&&(e=e.substr(0,500)+"...\n\n("+(e.length-500)+" characters not shown)"),b.removeClass("hover"),alert("Copied text to clipboard:\n\n "+e)),c.clickAfter&&b.trigger("click")}),d.glue(b[0],b.parent()[0]),a(window).bind("load resize",function(){d.reposition()})}})}if(typeof b=="string")return this.each(function(){var c=a(this);b=b.toLowerCase();var d=c.data("zclipId"),e=a("#"+d+".zclip");b=="remove"?(e.remove(),c.removeClass("active hover")):b=="hide"?(e.hide(),c.removeClass("active hover")):b=="show"&&e.show()})}}(jQuery);var ZeroClipboard={version:"1.0.7",clients:{},moviePath:"ZeroClipboard.swf",nextId:1,$:function(a){return typeof a=="string"&&(a=document.getElementById(a)),a.addClass||(a.hide=function(){this.style.display="none"},a.show=function(){this.style.display=""},a.addClass=function(a){this.removeClass(a),this.className+=" "+a},a.removeClass=function(a){var b=this.className.split(/\s+/),c=-1;for(var d=0;d<b.length;d++)b[d]==a&&(c=d,d=b.length);return c>-1&&(b.splice(c,1),this.className=b.join(" ")),this},a.hasClass=function(a){return!!this.className.match(new RegExp("\\s*"+a+"\\s*"))}),a},setMoviePath:function(a){this.moviePath=a},dispatch:function(a,b,c){var d=this.clients[a];d&&d.receiveEvent(b,c)},register:function(a,b){this.clients[a]=b},getDOMObjectPosition:function(a,b){var c={left:0,top:0,width:a.width?a.width:a.offsetWidth,height:a.height?a.height:a.offsetHeight};return a&&a!=b&&(c.left+=a.offsetLeft,c.top+=a.offsetTop),c},Client:function(a){this.handlers={},this.id=ZeroClipboard.nextId++,this.movieId="ZeroClipboardMovie_"+this.id,ZeroClipboard.register(this.id,this),a&&this.glue(a)}};ZeroClipboard.Client.prototype={id:0,ready:!1,movie:null,clipText:"",handCursorEnabled:!0,cssEffects:!0,handlers:null,glue:function(a,b,c){this.domElement=ZeroClipboard.$(a);var d=99;this.domElement.style.zIndex&&(d=parseInt(this.domElement.style.zIndex,10)+1),typeof b=="string"?b=ZeroClipboard.$(b):typeof b=="undefined"&&(b=document.getElementsByTagName("body")[0]);var e=ZeroClipboard.getDOMObjectPosition(this.domElement,b);this.div=document.createElement("div"),this.div.className="zclip",this.div.id="zclip-"+this.movieId,$(this.domElement).data("zclipId","zclip-"+this.movieId);var f=this.div.style;f.position="absolute",f.left=""+e.left+"px",f.top=""+e.top+"px",f.width=""+e.width+"px",f.height=""+e.height+"px",f.zIndex=d;if(typeof c=="object")for(addedStyle in c)f[addedStyle]=c[addedStyle];b.appendChild(this.div),this.div.innerHTML=this.getHTML(e.width,e.height)},getHTML:function(a,b){var c="",d="id="+this.id+"&width="+a+"&height="+b;if(navigator.userAgent.match(/MSIE/)){var e=location.href.match(/^https/i)?"https://":"http://";c+='<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="'+e+'download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="'+a+'" height="'+b+'" id="'+this.movieId+'" align="middle"><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="false" /><param name="movie" value="'+ZeroClipboard.moviePath+'" /><param name="loop" value="false" /><param name="menu" value="false" /><param name="quality" value="best" /><param name="bgcolor" value="#ffffff" /><param name="flashvars" value="'+d+'"/><param name="wmode" value="transparent"/></object>'}else c+='<embed id="'+this.movieId+'" src="'+ZeroClipboard.moviePath+'" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="'+a+'" height="'+b+'" name="'+this.movieId+'" align="middle" allowScriptAccess="always" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="'+d+'" wmode="transparent" />';return c},hide:function(){this.div&&(this.div.style.left="-2000px")},show:function(){this.reposition()},destroy:function(){if(this.domElement&&this.div){this.hide(),this.div.innerHTML="";var a=document.getElementsByTagName("body")[0];try{a.removeChild(this.div)}catch(b){}this.domElement=null,this.div=null}},reposition:function(a){a&&(this.domElement=ZeroClipboard.$(a),this.domElement||this.hide());if(this.domElement&&this.div){var b=ZeroClipboard.getDOMObjectPosition(this.domElement),c=this.div.style;c.left=""+b.left+"px",c.top=""+b.top+"px"}},setText:function(a){this.clipText=a,this.ready&&this.movie.setText(a)},addEventListener:function(a,b){a=a.toString().toLowerCase().replace(/^on/,""),this.handlers[a]||(this.handlers[a]=[]),this.handlers[a].push(b)},setHandCursor:function(a){this.handCursorEnabled=a,this.ready&&this.movie.setHandCursor(a)},setCSSEffects:function(a){this.cssEffects=!!a},receiveEvent:function(a,b){a=a.toString().toLowerCase().replace(/^on/,"");switch(a){case"load":this.movie=document.getElementById(this.movieId);if(!this.movie){var c=this;setTimeout(function(){c.receiveEvent("load",null)},1);return}if(!this.ready&&navigator.userAgent.match(/Firefox/)&&navigator.userAgent.match(/Windows/)){var c=this;setTimeout(function(){c.receiveEvent("load",null)},100),this.ready=!0;return}this.ready=!0;try{this.movie.setText(this.clipText)}catch(d){}try{this.movie.setHandCursor(this.handCursorEnabled)}catch(d){}break;case"mouseover":this.domElement&&this.cssEffects&&(this.domElement.addClass("hover"),this.recoverActive&&this.domElement.addClass("active"));break;case"mouseout":this.domElement&&this.cssEffects&&(this.recoverActive=!1,this.domElement.hasClass("active")&&(this.domElement.removeClass("active"),this.recoverActive=!0),this.domElement.removeClass("hover"));break;case"mousedown":this.domElement&&this.cssEffects&&this.domElement.addClass("active");break;case"mouseup":this.domElement&&this.cssEffects&&(this.domElement.removeClass("active"),this.recoverActive=!1)}if(this.handlers[a])for(var e=0,f=this.handlers[a].length;e<f;e++){var g=this.handlers[a][e];typeof g=="function"?g(this,b):typeof g=="object"&&g.length==2?g[0][g[1]](this,b):typeof g=="string"&&window[g](this,b)}}},function(a){a.oauthpopup=function(a){a.windowName=a.windowName||"ConnectWithOAuth",a.windowOptions=a.windowOptions||"location=0,status=0,width=800,height=400",a.callback=a.callback||function(){window.location.reload()};var b=this;b._oauthWindow=window.open(a.path,a.windowName,a.windowOptions),b._oauthInterval=window.setInterval(function(){b._oauthWindow.closed&&(window.clearInterval(b._oauthInterval),a.callback())},300)}}(jQuery);var uservoiceOptions={key:"storify",host:"storify.uservoice.com",forum:"66927",showTab:!0,alignment:"right",background_color:"#f00",text_color:"white",hover_color:"#06C",lang:"en"};_loadSuper=window.onload,window.onload=typeof window.onload!="function"?_loadUserVoice:function(){_loadSuper(),_loadUserVoice()},s.Button=s.Class.extend({initialize:function(a,b){this.options={toggle:!1,activeClass:"active"},this.setOptions(b),this.button=$(a),this.options.title&&this.button.attr("title",this.options.title),this.button.bind("mousedown.button",_.bind(this.mousedown,this)),this.button.bind("click.button",_.bind(this.click,this))},mousedown:function(a){return this.options.mousedown&&this.options.mousedown(a),this},click:function(a){return a.preventDefault(),this.disabled?!1:(this.options.click&&this.options.click(a),this.options.toggle&&this.toggle(a),this)},activate:function(a){return this.options.activate&&!this.options.activate(a)?!1:(this.button.addClass(this.options.activeClass),this)},deactivate:function(a){return this.options.deactivate&&!this.options.deactivate(a)?!1:(this.button.removeClass(this.options.activeClass),this)},enable:function(a){return this.disabled=!1,this.button.removeAttr("disabled"),this},disable:function(a){return this.disabled=!0,this.button.attr("disabled","disabled"),this},hide:function(a){return this.button.hide(),this},show:function(a){return this.button.show(),this},toggle:function(a){return this.active()?this.deactivate(a):this.activate(a),this},active:function(){return this.button.hasClass(this.options.activeClass)}}),s.Dropdown=s.Button.extend({initialize:function(a,b,c){c=c||{},c.toggle=!0,this.supr(a,c),this.menu=$(b),this.setPosition()},setPosition:function(){var a=this.options.gap?this.options.gap:0;return this.menu.css({top:this.button.position().top+this.button.outerHeight()+a,minWidth:this.button.innerWidth()+"px"}),this.options.right&&this.menu.css({right:this.options.right}),this},activate:function(a){var b=this;return a&&a.stopPropagation(),this.supr(a)?(this.menu.addClass(this.options.activeClass).show(),$(window).trigger("click.dropdown"),_.defer(function(){$(window).bind("click.dropdown keyup.dropdown",_.bind(b.deactivate,b))}),this):!1},deactivate:function(a){if(a){if(a.keyCode&&a.keyCode!=27||a.target==this.menu[0]||this.menu.find(a.target).length)return;$(window).unbind(a)}return this.supr(a)?(this.menu.removeClass(this.options.activeClass).hide(),this):!1},hide:function(){return this.menu.hide(),this.button.hide(),this},show:function(){return this.button.show(),this.setPosition(),this}}),s.Modal=s.Class.extend({overlayId:"#page-overlay",initialize:function(a,b){this.options={closeable:!0},this.setOptions(b),this.modal=$(a),this.overlay=$(this.overlayId),this.overlay.length||(this.overlay=$("<div>").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().css({top:"-10000px"}),this.options.hide&&this.options.hide(),this},show:function(a){return this.overlay.show(),this.modal.show(),this.center(),this.modal.css({top:"10%"}),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"},center:function(){return this.modal.css({"margin-left":-Math.round(this.modal.width()/2)}),this}}),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)},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){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)&&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('<div class="error under">'+a+"</div>")}),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"),loginUsername:$("#login-username"),loginPassword:$("#login-password"),loginStay:$("#login-stay"),loginSubmit:$("#login-submit"),signup:$("#signup form"),signupUsername:$("#signup-username"),signupEmail:$("#signup-email"),signupPassword:$("#signup-password"),signupSubmit:$("#signup-submit"),forgot:$("#forgot-password"),reset:$("#reset-password"),noTwitter:$(".no-twitter")},this.loginModal=new s.Modal("#login",{show:_.bind(function(){this.el.loginUsername.focus()},this)}),this.signupModal=new s.Modal("#signup",{show:_.bind(function(){_.isEmpty(this.el.signupUsername.val())?this.el.signupUsername.focus():this.el.signupEmail.focus()},this)}),this.forgotPasswordModal=new s.Modal("#forgot-password",{show:_.bind(function(){this.el.forgot.find("#forgot-password-email").focus()},this)});var b=new s.Button("#login button.switch",{click:_.bind(function(){this.loginModal.hide(),this.signupModal.show()},this)});this.resetPasswordModal=new s.Modal("#reset-password",{closeable:!1,show:_.bind(function(){this.el.reset.find("#forgot-password-password").focus(),s.notify.success("As a final step, enter your new password.",{element:$("#reset-password form").parent()})},this)}),this.el.login.find("#forgot-my-password").click(_.bind(function(){this.loginModal.hide(),this.forgotPasswordModal.show()},this));var c=s.cookie.get("user");c&&this.setUser(c);if(!this.user)switch(window.location.hash){case"#login":this.loginModal.show();break;case"#signup":this.signupModal.show();break;case"#forgot-password":this.forgotPasswordModal.show()}this.bind()},bind:function(){_.bindAll(this,"login","signup","twitterConnect","twitterLogin","facebookConnect","facebookLogin","forgotPassword","resetPassword","showSignupForm","getIdentity"),this.el.login.bind("submit",this.login),this.el.signup.bind("submit",this.signup),this.el.forgot.find("form").bind("submit",this.forgotPassword),this.el.reset.find("form").bind("submit",this.resetPassword),$(".modal .identity button.twitter").bind("click",this.twitterLogin),$(".modal .identity button.facebook").bind("click",this.facebookLogin),this.el.noTwitter.find("a").bind("click",this.showSignupForm)},showSignupForm:function(a){a.preventDefault(),this.el.noTwitter.hide(),this.el.signup.show(),this.el.signupUsername.focus()},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+"/following/"+e,{type:"post",data:{user:a,username:d.user.username,_token:d.user._token},success:function(a){b(null,a)},error:function(a){b(new Error(a.error.message))}})},unfollow:function(a,b){this.follow(a,b,!0)},getIdentity:function(a){return this.user?_.find(this.user.identities,function(b){return b.service==a}):null},loginWithTwitter:function(){var a=this;s.everyauth.twitter&&s.everyauth.twitter.accessToken?$.ajax("/api/auth/twitter",{type:"POST",data:{token:s.everyauth.twitter.accessToken,secret:s.everyauth.twitter.accessTokenSecret,username:s.everyauth.twitter.user.screen_name,service:"twitter"},success:function(b){a.clearValidationError(a.el.login);var c=b.content;a.setUser(c),a.setUserCookie(null),a.loginModal.hide(),a.signupModal.hide(),a.el.loginUsername.val(""),a.el.loginPassword.val(""),a.el.loginSubmit.removeAttr("disabled")},error:function(b){try{b=JSON.parse(b.responseText)}catch(c){}b.error&&b.error.type=="no_identity"?a.twitterSignup():(a.validationError(b.error,a.el.login),a.logout())}}):this.twitterLogin()},loginWithFacebook:function(){var a=this;s.everyauth.facebook&&s.everyauth.facebook.accessToken?$.ajax("/api/auth/facebook",{type:"POST",data:{token:s.everyauth.facebook.accessToken,username:s.everyauth.facebook.user.username,service_userid:s.everyauth.facebook.user.id,service:"facebook"},success:function(b){a.clearValidationError(a.el.login);var c=b.content;a.setUser(c),a.setUserCookie(null),a.loginModal.hide(),a.signupModal.hide(),a.el.loginUsername.val(""),a.el.loginPassword.val(""),a.el.loginSubmit.removeAttr("disabled")},error:function(b){try{b=JSON.parse(b.responseText)}catch(c){}b.error&&b.error.type=="no_identity"?a.facebookSignup():(a.validationError(b.error,a.el.login),a.logout())}}):this.facebookLogin()},twitterSignup:function(){this.loginModal.hide(),this.el.signupUsername.val(s.everyauth.twitter.user.screen_name),this.showSignup(this.loginCallback)},facebookSignup:function(){this.loginModal.hide(),this.el.signupUsername.val(s.everyauth.facebook.user.username),this.showSignup(this.loginCallback)},twitterAddIdentity:function(a){$.ajax("/api/users/"+s.auth.user.username+"/identities/add",{type:"POST",data:{token:s.everyauth.twitter.accessToken,secret:s.everyauth.twitter.accessTokenSecret,username:s.everyauth.twitter.user.screen_name,service:"twitter"},success:a,error:function(a){s.notify.error("Failed to connect Twitter account.",{element:"#content",slideSpeed:200,duration:3e3})}})},facebookAddIdentity:function(a){$.ajax("/api/users/"+s.auth.user.username+"/identities/add",{type:"POST",data:{token:s.everyauth.facebook.accessToken,username:s.everyauth.facebook.user.username||s.everyauth.facebook.user.id,name:s.everyauth.facebook.user.name,service_userid:s.everyauth.facebook.user.id,service:"facebook"},success:a,error:function(a){s.notify.error("Failed to connect Facebook account.",{element:"#content",slideSpeed:200,duration:3e3})}})},twitterRemoveIdentity:function(a){$.ajax("/api/users/"+s.auth.user.username+"/identities/remove",{type:"POST",data:{identity:JSON.stringify({service:"twitter"})},success:function(b){s.notify.success("Successfully unlinked Twitter account.",{element:"#content",slideSpeed:200,duration:3e3}),a()},error:function(b){a()}})},facebookRemoveIdentity:function(a){$.ajax("/api/users/"+s.auth.user.username+"/identities/remove",{type:"POST",data:{identity:JSON.stringify({service:"facebook"})},success:function(b){s.notify.success("Successfully unlinked Facebook account.",{element:"#content",slideSpeed:200,duration:3e3}),a()},error:function(b){a()}})},twitterLogin:function(a){var b=this;$.oauthpopup({path:"/auth/twitter",callback:function(){s.everyauth.twitter&&s.everyauth.twitter.accessToken?b.loginWithTwitter():b.validationError({message:"Log in to Twitter denied."},b.el.login)}})},facebookLogin:function(a){var b=this;$.oauthpopup({path:"/auth/facebook",callback:function(){s.everyauth.facebook&&s.everyauth.facebook.accessToken?b.loginWithFacebook():b.validationError({message:"Log in to Facebook denied."},b.el.login)}})},twitterDisconnect:function(a){this.twitterRemoveIdentity(a)},facebookDisconnect:function(a){this.facebookRemoveIdentity(a)},twitterConnect:function(a){var b=this;$.oauthpopup({path:"/auth/twitter",callback:function(){s.everyauth.twitter&&s.everyauth.twitter.accessToken?b.twitterAddIdentity(a):b.validationError({message:"Log in to Twitter denied."},b.el.login)}})},facebookConnect:function(a){var b=this;$.oauthpopup({path:"/auth/facebook",callback:function(){s.everyauth.facebook&&s.everyauth.facebook.accessToken?b.facebookAddIdentity(a):b.validationError({message:"Log in to Facebook denied."},b.el.login)}})},showSignup:function(a){var b=this;b.el.signup.parent().find(".identities").show(),s.everyauth.twitter&&s.everyauth.twitter.user?(a=_.wrap(a,function(a){b.twitterAddIdentity(a)}),b.el.noTwitter.hide(),b.el.signup.show(),b.el.signup.parent().find(".identities").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.signupModal.show(),b.el.signupPassword.focus(),s.notify.success("Your storify account is almost ready!",{element:b.el.signup.parent()})):s.everyauth.facebook&&s.everyauth.facebook.user?(a=_.wrap(a,function(a){b.facebookAddIdentity(a)}),b.el.noTwitter.hide(),b.el.signup.show(),b.el.signup.parent().find(".identities").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),b.signupModal.show(),s.everyauth.facebook.user.username?b.el.signupPassword.focus():b.el.signupUsername.focus(),s.notify.success("Your storify account is almost ready!",{element:b.el.signup.parent()})):b.signupModal.show(),b.loginCallback=a},signup:function(a){a.preventDefault();var b=this,c=this.el.signup.find("input[name=agree]").attr("checked");if(!c){this.el.signup.find("input[name=agree]").focus(),this.validationError({message:"Please agree to the terms of service."},this.el.signup);return}var d={username:this.el.signup.find("input[name=username]").val(),password:this.el.signup.find("input[name=password]").val(),email:this.el.signup.find("input[name=email]").val()};if(s.everyauth.twitter&&s.everyauth.twitter.user)d=_.extend(d,{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){d=_.extend(d,{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 e=s.everyauth.facebook.user.location,f=s.everyauth.facebook.user.website;e&&(d.location=e.name),f&&(d.website=f.split("\n")[0])}b.el.signupSubmit.attr("disabled",!0),$.ajax("/api/users/create",{type:"POST",data:{user:JSON.stringify(d)},success:function(a){b.clearValidationError(b.el.signup);var c=a.content;b.setUser(c),b.setUserCookie(),b.signupModal.hide(),b.el.signupSubmit.removeAttr("disabled")},error:function(a){a=JSON.parse(a.responseText),b.validationError(a.error,b.el.signup),b.el.signupSubmit.removeAttr("disabled")}})},showLogin:function(a){this.loginCallback=a,this.loginModal.show()},forgotPassword:function(a){a.preventDefault();var b=this,c=this.el.forgot.find("#forgot-password-email").val();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),s.notify.success("You should receive an email shortly.",{element:b.el.forgot.find("form").parent()})},error:function(a){a=JSON.parse(a.responseText),b.validationError(a.error,b.el.forgot.find("form")),b.el.forgot.find("input, button").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("&"));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('Your password has been reset. <a href="/">&raquo; Take me home</a>',{element:b.el.reset.find("form").parent()})},error:function(a){a=JSON.parse(a.responseText),b.validationError(a.error,b.el.reset.find("form")),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"),f=null;e&&(f=new Date,f.setTime(f.getTime()+2592e6)),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(f),b.loginModal.hide(),b.el.loginUsername.val(""),b.el.loginPassword.val(""),b.el.loginSubmit.removeAttr("disabled")},error:function(a){a=JSON.parse(a.responseText),b.validationError(a.error,b.el.login),b.el.loginSubmit.removeAttr("disabled")}})},setUser:function(a){this.user=a},setUserCookie:function(a){var a=a||this.user.expires;delete this.user.followers,delete this.user.following,a?(this.user.expires=a,s.cookie.set("user",this.user,{expires:a})):s.cookie.set("user",this.user),this.loginCallback&&this.loginCallback(),this.loginCallback=null},logout:function(){this.user=null,s.everyauth={},s.cookie.remove("user")},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('<div class="error under">'+a+"</div>")}),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.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='<div class="tooltip-actions"><a href="#" class="tooltip-hide">hide</a>',c!=a.length-1&&(b.fallback+='<a href="#" class="tooltip-next">next tip</a>'),b.fallback+="</div>",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")},_.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:this.selectedStory.data("json");return $.ajax("/api/stories/"+c.author.username+"/"+c.slug+"/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:this.selectedStory.data("json"),c=$(s.templates.render("story/_featured_main",{story:b})),d=c.find(".timestamp");d.text(s.utils.date(d.attr("data-timestamp")).fromNow()),this.el.featureMain.empty().append(c);var e=$("<div>");$.ajax("/api/stories/"+b.author.username+"/"+b.slug,{data:{per_page:100},success:function(b){_.each(b.content.elements,function(a,b){if(a.type!="image")return;var c=$("<img>");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:this.selectedStory.data("json");a.el.featureButton.attr("disabled",!0).text("Featuring..."),$.ajax("/api/stories/"+b.author.username+"/"+b.slug+"/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?b="/"+s.user.username+"/"+s.story.slug:b=this.selectedStory.data("json").path,$.ajax("/api/stories"+b+"/delete",{type:"POST",data:{username:s.auth.user.username,_token:s.auth.user._token},success:function(b){a.storyView?window.location="/"+s.user.username:(a.deleteModal.hide(),a.selectedStory.fadeOut())},error:function(b){a.deleteModal.hide()}})}}),s.StoryList=s.Class.extend({blockedContent:new RegExp("^playboy|playboy_nl|210tuesday$","i"),initialize:function(a,b){this.container=$(a),this.active=!0,this.loadedOnce=!1,this.options={path:"",page:1,per_page:21,isOwner:!1,loadMore:!0,autoLoads:2,autoThreshold:20,loadText:"Show more",emptyText:"",onlyWithThumb:!1,featured:!1,params:{},editable:!0},this.setOptions(b),this.page=this.options.page,this.autoLoads=this.options.autoLoads,this.loadButton=$("<button>").addClass("story-list-load load-more").text(this.options.loadText),this.emptyMessage=$("<div>").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($("<div>").addClass("clear"))),_.bindAll(this,"scroll","clickLoad","clickStory"),this.autoLoads&&$(window).scroll(this.scroll),this.loadButton.click(this.clickLoad),this.container.find(".story-tile").live("click",this.clickStory)},clickStory:function(a){var b=$(a.currentTarget),c=b.data("json"),d=c.path;d&&(c.status=="working"&&!c.date.published&&(d+="/preview"),window.location=d)},clickLoad:function(a){this.update()},scroll:function(a){if(!this.active||this.container.is(":hidden"))return!0;var b=$(window),c=this.loadButton.offset().top-b.scrollTop()-b.height()-this.options.autoThreshold;c<0&&(this.autoLoads--?this.update():$(window).unbind(a))},activate:function(){this.active=!0},deactivate:function(){this.active=!1},update:function(a){var b=this;if(!b.active)return!1;b.active=!1,b.loadButton.attr("disabled",!0).addClass("loading").text(""),b.getStories(function(c,d){if(d.status==400||!c||!c.length||c.length==1&&c[0].slug=="storypad"){b.loadButton.remove(),b.loadedOnce||b.emptyMessage.show();return}b.loadedOnce=!0;if(b.options.featured){var e=$(s.templates.render("story/_featured",{stories:c}));_.each(e.find(".story-title"),function(a){var b=$(a),c=b.text();b.text(_(c).prune(50,"..."))}),b.container.append(e)}else _.each(c,function(a,c){if(a.slug=="storypad")return;if(b.options.blockAdultContent&&a.author.username.match(b.blockedContent))return;if(b.options.onlyWithThumb&&!a.thumbnail)return;var d=$(s.templates.render("story/_tile",{story:a}));d.data("json",a),a.canEdit&&b.options.editable&&d.addClass("story-tile-editable"),(!s.auth.user||s.auth.user._access<1)&&d.find(".story-toolbar-feature, .story-toolbar-unfeature").hide();var e=d.find(".story-tile-title-text"),f=e.text();e.text(_(f).prune(50,"..."));var g=d.find(".story-tile-description"),h=g.text();g.text(_(h).prune(150,"...")),b.loadButton.before(d)});_.each(b.container.find(".timestamp"),function(a){var b=$(a),c=b.attr("data-timestamp");b.text(s.utils.date(c).fromNow())}),_.isFunction(a)&&a(c),c.length<b.options.per_page?b.loadButton.remove():(b.loadButton.removeAttr("disabled").removeClass("loading").text(b.options.loadText),b.active=!0),b.container.show()})},getStories:function(a){var b=this,c={page:this.page++,per_page:this.options.per_page};_.each(Object.keys(this.options.params),function(a){c[a]=b.options.params[a]}),s.auth.user&&(c.username=s.auth.user.username,c._token=s.auth.user._token),$.get("/api/stories/"+this.options.path,c).success(function(b){_.isFunction(a)&&a(b.content.stories,b)}).error(function(b){_.isFunction(a)&&a(null,b)})}}),!function(a,b,c){var d=a.sfy;if(!d){function e(a,b){var c,d=[],e,g;try{if(document.querySelectorAll)d=document.querySelectorAll(a+"."+b);else if(document.getElementsByClassName){c=document.getElementsByClassName(b);for(e=0;g=c[e];e++)g.tagName.toLowerCase()==a&&d.push(g)}else{c=document.getElementsByTagName(a);var h=RegExp("\\b"+b+"\\b");f(c,function(a,b){var c=a.className||a.getAttribute("class");c&&c.match(h)&&d.push(a)})}}catch(i){}return d}function f(a,b,c){for(var d=0;d<a.length;d++)b.call(c,a[d],d)}function g(a,b){c.addEventListener?c.addEventListener(a,b,!1):(a=="message"&&(a="onmessage"),c.attachEvent(a,b))}function h(){var a=-1;if(navigator.appName=="Microsoft Internet Explorer"){var b=navigator.userAgent,c=new RegExp("MSIE ([0-9]{1,}[.0-9]{0,})");c.exec(b)!=null&&(a=parseFloat(RegExp.$1))}return a}!function(a,b){function m(a){l=1;while(a=c.shift())a()}var c=[],d,e,f=!1,g=b.documentElement,h=g.doScroll,i="DOMContentLoaded",j="addEventListener",k="onreadystatechange",l=/^loade|c/.test(b.readyState);b[j]&&b[j](i,e=function(){b.removeEventListener(i,e,f),m()},f),h&&b.attachEvent(k,d=function(){/^c/.test(b.readyState)&&(b.detachEvent(k,d),m())}),a.domReady=h?function(b){self!=top?l?b():c.push(b):function(){try{g.doScroll("left")}catch(c){return setTimeout(function(){a.domReady(b)},50)}b()}()}:function(a){l?a():c.push(a)}}(a,b);var d={};a.sfy=d;var i=h(),j=!!c.postMessage&&(i==-1||i>=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","yes"),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='<div style="position:relative;">                      <img src="'+l+'public/img/ratio-5-8.png" style="width:100%;" />                      <iframe src="http://templates.storify.com/slideshow/index.html#'+this.permalink+'" style="position:absolute;top:0;left:0;width:100%;height:100%;" frameborder=no></iframe>                    </div>';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","sharing","border"],function(b){var e=a.getAttribute(b);e&&(c.push(b+"="+e),d[b]=e)}),typeof k=="object"&&k.auth&&k.auth.user&&k.auth.user.username==k.story.author.username&&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;var b=JSON.parse(a.data),c=m[b.sourceName],d=b.method;c&&c[d]&&c[d].apply(c,[b.value])}),g("scroll",function(a){for(var b in m){var c=m[b];if(c.loading||!c.more)break;var d=c.container,e=0;do e+=d.offsetTop;while(d=d.offsetParent);var f=e+c.container.offsetHeight-window.scrollY-window.innerHeight-n;f<0&&(c.loading=!0,c.iframe.contentWindow.postMessage("loadMore","*"))}}),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")},_.bindAll(this,"updateUser","clickLogin","clickSignup"),this.inEditor=a,this.loginButton=new s.Button("#login-button",{click:this.clickLogin}),this.signupButton=new s.Button("#signup-button",{click:this.clickSignup}),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(),s.auth.user&&this.updateUser()},clickLogin:function(a){var b=this;s.auth.showLogin(function(){window.location.pathname=="/create"?b.updateUser():window.location.reload()}),mpq.track("login-clicked")},clickSignup:function(a){var b=this;s.auth.showSignup(function(){window.location.pathname=="/create"?b.updateUser():window.location.reload()}),mpq.track("signup-clicked")},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+"/subscriptions"),this.el.avatar.attr("src",a.avatar),this.signupButton.hide(),this.loginButton.hide(),this.el.userButton.show(),this.userDropdown.show()}}),$(function(){s.nav=new s.Nav,setInterval(function(){_.each($(".timestamp"),function(a){var b=$(a),c=b.attr("data-timestamp");b.text(s.utils.date(c).fromNow())})},6e4)}),s.pages.Home=s.Class.extend({initialize:function(){_.bindAll(this,"featuredStoryClick"),this.el={featuredUsers:$("#browse-featured-users-container"),featuredTopics:$("#featured-topics-container"),featuredStories:$(".featured-story")},this.loadMosaic(),this.loadTopics();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},loadMosaic:function(){var a=this,b={featured:!0,per_page:60};$.ajax("/api/users",{data:b,success:function(b){var c=_.sortBy(b.content.users,function(a){return Math.random()}),d=$("<div>");d.attr("id","mosaic"),_.each(c,function(a,b){var c=$("<a>");c.attr("href","/"+a.username).attr("title",a.username).html("<img src='"+a.avatar+"' />"),d.append(c)}),$("#new-to-storify").prepend(d),$("#mosaic a").tipsy({fade:!0,gravity:"s",delayIn:500,opacity:.9}),a.loadFeaturedUsers(c)}})},loadFeaturedUsers:function(a){var b=this;a=_.sortBy(a,function(a){return Math.random()}),a=_.filter(a,function(a){return a.stats.stories>0}).slice(0,6),_.each(a,function(a){var c=s.templates.render("user/_tile",{user:a});b.el.featuredUsers.append(c)})},loadTopics:function(){var a=this;$.ajax("/api/topics/featured",{data:{per_page:10,sort:"date.featured"},success:function(b){var c=b.content.topics;_.each(c,function(b,c){var d="#"+b.tags.join(", #"),e=$("<a>");e.attr("href","/topics/"+b.slug).attr("title",d).text(b.name).tipsy({gravity:"s",delayIn:500,fade:!0}),c&&a.el.featuredTopics.append($("<span> &#8226; </span>")),a.el.featuredTopics.append(e)})}})}}),s.pages.Profile=s.Class.extend({initialize:function(){var a=this;_.bindAll(this,"click","edit","cancel","save","followHoverIn","followHoverOut","followClick","activateTab"),this.isOwner=s.auth.user&&s.user.username==s.auth.user.username,this.el={edit:$("#user-edit"),editing:$(".editing"),editCancel:$("#user-edit-cancel"),editSave:$("#user-edit-save"),follow:$("#user-follow"),followUsers:$(".user-follow-user"),followers:$(".user-followers"),following:$(".user-following"),followersCount:$(".user-followers-count")},this.el.followUsers.tipsy({live:!0}),this.el.followers.children().each(function(){var b=$(this).find(".user-follow-user");s.auth.user&&b.attr("data-username")==s.auth.user.username&&(a.el.userIcon=this)});if(this.isOwner)this.list=[new s.StoryList("#browse-latest",{path:s.user.username,per_page:14,params:{filter:"published"},emptyText:"You don't have any published stories yet."}),new s.StoryList("#browse-popular",{path:s.user.username,per_page:14,params:{filter:"draft"},emptyText:"You don't have any drafts."})];else{var b="This user doesn't have any published stories yet.";this.list=[new s.StoryList("#browse-latest",{path:s.user.username,per_page:14,emptyText:b}),new s.StoryList("#browse-popular",{path:s.user.username,per_page:14,emptyText:b,params:{sort:"stats.views"}})]}this.tabs=new s.Tabs("#user-stories",{active:0,activate:this.activateTab}),this.storyControl=new s.StoryControl,this.walkthrough=new s.Walkthrough([{el:"#stories",gravity:"nw",text:"Browse your stories and hover over them to edit"},{el:"#user-edit",text:"Complete your profile"}]),this.isOwner&&($("#user-follow").hide(),s.cookie.get("profileSeen")||(s.cookie.set("profileSeen",!0),_.delay(_.bind(this.walkthrough.start,this.walkthrough),1e3))),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.hover(this.followHoverIn,this.followHoverOut),this.el.follow.click(this.followClick)},activateTab:function(a){this.list[a].update()},followText:"✚ Subscribe",followingText:"✔ Subscribed",unfollowText:"✖ Unsubscribe",followHoverIn:function(a){this.el.follow.hasClass("cancel")&&this.el.follow.removeClass("cancel").addClass("decline").html("<span>"+this.unfollowText+"</span>")},followHoverOut:function(a){this.el.follow.hasClass("decline")&&this.el.follow.removeClass("decline").addClass("cancel").html("<span>"+this.followingText+"</span>")},followClick:function(a){var b=this;if(!s.auth.user){s.auth.showLogin(_.bind(this.followClick,this));return}s.nav.updateUser(),b.el.follow.attr("disabled",!0),b.el.follow.hasClass("accept")?(b.el.follow.text("Subscribed..."),s.auth.follow(s.user.username,function(a){b.el.follow.removeAttr("disabled").html("<span>"+b.followText+"</span>");if(a){s.notify.error("Unable to follow "+s.user.username+" at this time, please try again later",{element:"#content",duration:4e3});return}b.el.follow.removeClass("accept").addClass("cancel").html("<span>"+b.followingText+"</span>"),b.el.userIcon||(b.el.userIcon=$(s.templates.render("user/_follow_user",{followUser:s.auth.user}))[0]),b.el.followers.prepend(b.el.userIcon),b.el.followersCount.text(b.el.followersCount.text()*1+1)})):(b.el.follow.text("Unfollowing..."),s.auth.unfollow(s.user.username,function(a){b.el.follow.removeAttr("disabled").html("<span>"+b.followingText+"</span>");if(a){s.notify.error("Unable to unfollow "+s.user.username+" at this time, please try again later",{element:"#content",duration:4e3});return}b.el.follow.removeClass("cancel decline").addClass("accept").html("<span>"+b.followText+"</span>"),$(b.el.userIcon).remove(),b.el.followersCount.text(b.el.followersCount.text()*1-1)}))},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()}})}}),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")},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"),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}),this.authorStories=new s.StoryList("#author-stories",{path:s.story.path+"/more",per_page:3,autoLoads:0,loadMore:!1,editable:!1}),this.relatedStories.update(),this.authorStories.update(),this.maxTweetSize=123,this.el.notifyTweet.attr("maxlength",this.maxTweetSize),this.notifyUpdateChars(),this.shareUpdateChars(),this.notifyModal=new s.Modal("#notify-modal"),window.location.hash=="#publicize"&&this.notifyModal.show(),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"),$.get("/api/elements/"+d,function(a){if(!a.error&&a.content){var c=a.content,e=$(s.templates.render("story/elements/_"+c.type,{element:c,email:!1}));_.each(e.find(".timestamp"),function(a){var b=$(a),c=b.attr("data-timestamp");b.text(s.utils.date(c).fromNow())}),$(".shared-element").append(e);var c={hashlink:s.story.permalink+"/elements/"+d},f=$(s.templates.render("story/elements/_share",{element:c}));$(".shared-element-buttons").prepend(f),FB.XFBML.parse(),twttr.widgets.load(),gapi.plusone.go(e[0]),b.shareElementModal.show()}}))}this.storyControl=new s.StoryControl(!0),s.story.canEdit&&$(".left-content .story-toolbar").show();var e=0;this.el.sidebar.hover(function(){e=parseInt($(this).parent("#story").css("left").replace("px",""),10),$(this).parent("#story").css("left",0)},function(){$(this).parent("#story").css("left",e)}),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()},publicizeClick:function(a){function d(){--c||b.notifyModal.hide()}var b=this,c=0;$("#notify-notify .person.active").length>0&&(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(),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){return function(b){var c=$(b.currentTarget),d=s.auth.getIdentity(a);c.prop("checked")&&!d?(c.prop("checked",!1),c.parent().removeClass("active"),s.auth[a+"Connect"](function(a){s.auth.user.identities.push(a.content.identity),s.auth.setUserCookie(),c.prop("checked",!0),c.parent().addClass("active")})):c.prop("checked")?c.parent().addClass("active"):c.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;var b=s.auth.getIdentity("facebook");if(!b||!b.token)return;setTimeout(function(){a.opengraphRead(escape(s.story.permalink))},5e3)},opengraphRead:function(a){var b=this},opengraphDelete:function(a,b){var c=this},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=$("<option>").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).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").text("Post"),$.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("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").text("Post"),s.notify.error("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(){var a=this;$.get("/api/users/"+s.user.username+"/sites",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("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("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.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").username)}),$.ajax("/api/stories/"+s.user.username+"/"+s.story.slug+"/notify",{type:"POST",data:{notification:JSON.stringify(c),username:s.auth.user.username,_token:s.auth.user._token},success:function(b){$("#notify-notify .person.active").each(function(a,b){$(b).remove()}),$("#notify-notify .person").length<1&&$("#notify-notify").hide(),a(null,b)},failure:function(b){a(b)}})}}),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"),labsTab:$("#settings-main .tab-labs"),labsNav:$("#labs-nav"),developersTab:$("#settings-main .tab-developers"),developersNav:$("#developers-nav"),enableComments:$("#enable-comments")},_.bindAll(this,"tab","addEditor","removeEditor","updateAccount","refreshAccount","clickAvatar","toggleComments","toggleFacebookAutoshare"),this.el.editorsForm.submit(this.addEditor),this.el.accountForm.submit(this.updateAccount),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.prop("checked",!0),this.el.enableComments.change(this.toggleComments),$("#facebook-autoshare").live("change",this.toggleFacebookAutoshare)},updateUser:function(a,b,c){$.ajax("/api/users/"+s.user.username+"/update",{type:"post",data:{user:JSON.stringify(a),username:s.auth.user.username,_token:s.auth.user._token},success:b,error:c})},toggleFacebookAutoshare:function(a){a.preventDefault();var b=this;this.updateUser({settings:{facebook_autoshare:$("#facebook-autoshare").prop("checked")}},function(a){s.auth.setUser(a.content),s.auth.setUserCookie(),s.notify.success("Successfully updated settings.",{element:"#content",slideSpeed:200,duration:3e3})},function(){s.notify.error("Error updating settings.",{element:"#content",slideSpeed:200,duration:3e3}),$("#facebook-autoshare").prop("checked",!1)})},toggleComments:function(a){a.preventDefault();var b=this,c=this.el.enableComments.prop("checked");this.updateUser({settings:{comments:c}},function(){s.notify.success("Successfully updated lab settings.",{element:"#content",slideSpeed:200,duration:3e3})},function(){s.notify.error("Error updating lab settings.",{element:"#content",slideSpeed:200,duration:3e3}),b.el.enableComments.prop("checked",!1)})},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")){var f={twitter:"twitterConnect",facebook:"facebookConnect"};return s.auth[f[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("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(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(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(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(c,{element:"#content",slideSpeed:200,duration:3e3}),b.el.editorsForm.find("input, button").removeAttr("disabled")}})},refreshAccount:function(a,b){var c=this;this.el.accountForm.find(".email").val(s.auth.user.email),this.el.accountForm.find("#account-settings-notifications-digest").prop("checked",s.auth.user.settings.notifications.digest),this.el.accountForm.find("#account-settings-notifications-follower").prop("checked",s.auth.user.settings.notifications.follower),this.el.avatarTab.find(".avatar-email").text(s.auth.user.email),c.el.avatarSelect.find(".connected").empty(),$.get("/api/users/"+s.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"],g;c.el.connections.html(""),_.each(e,function(b){$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("Are you sure you want to unlink this account?")){var a=$(this).attr("data-service"),d={twitter:"twitterDisconnect",facebook:"facebookDisconnect"};s.auth[d[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)):(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"),b={twitter:"twitterConnect",facebook:"facebookConnect"};s.auth[b[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("#account-settings-notifications-follower").prop("checked"),e=this.el.accountForm.find("#account-settings-notifications-digest").prop("checked");this.el.accountForm.find("input, button").attr("disabled",!0),$.ajax("/api/users/"+s.user.username+"/update",{type:"post",data:{user:JSON.stringify({email:c,settings:{notifications:{follower:d,digest:e}}}),_token:s.auth.user._token},success: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("Successfully updated user.",{element:"#content",slideSpeed:200,duration:3e3})},error: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 add this editor."}b.refreshAccount(),s.notify.error(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}}),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.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()}})
