$.fn.pwdInputSwap=function(b){var e=$.extend({},$.fn.pwdInputSwap.defaults,b);
var c=$(this);
var a=$(e.inputTemp);
var d=$(e.inputPass);
a.removeClass("hidden");
d.addClass("hidden");
a.focus(function(){var f=$(this);
f.addClass("hidden");
d.removeClass("hidden").addClass("userInput").focus()
});
d.blur(function(){var f=$(this);
if(f.val().length==0){f.addClass("hidden");
a.removeClass("hidden")
}})
};
$.fn.pwdInputSwap.defaults={inputTemp:"#switchfoo",inputPass:"#passwordfoo"};
$.fn.labelToValue=function(c){var e=$.extend({},$.fn.labelToValue.defaults,c);
var a=$(this);
var b=a.prev("label").html();
a.attr("value",b).prev("label");
var d=function(){var f=$(this);
if(f.val()==b){f.addClass(e.focusClass).val("")
}};
a.one(e.clearTextOn,d);
a.blur(function(){var f=$(this);
if(f.val().length==0){f.removeClass(e.focusClass).attr("value",b).prev("label")
}})
};
$.fn.labelToValue.defaults={focusClass:"userInput",clearTextOn:"focus"};
$.fn.pseudoHover=function(a){var b=$.extend({},$.fn.pseudoHover.defaults,a);
$(this).hover(function(){$(this).addClass(b.addClass)
},function(){$(this).removeClass(b.addClass)
})
};
$.fn.pseudoHover.defaults={addClass:"hover"};
$.fn.listHighLight=function(b){var d=$.extend({},$.fn.listHighLight.defaults,b);
var c=$(this);
var a=c.find(".controls");
c.hover(function(){$(this).find("ul.controls").css("visibility","visible").animate({opacity:1},d.fadeIn,function(){$(this).parents("li:eq(0)").addClass("hilight")
})
},function(){var e=0;
if($(this).find("ul.controls").hasClass("noFade")){e=1
}if($(this).find("div.reportThis").hasClass("open")){$(this).find("ul.nested").slideUp(50);
$(this).find("div.reportThis").removeClass("open")
}$(this).find("ul.controls").animate({opacity:e},d.fadeOut,function(){$(this).parents("li:eq(0)").removeClass("hilight")
})
})
};
$.fn.listHighLight.defaults={fadeIn:0,fadeOut:0};
$.fn.clickListener=function(a){var b=$.extend({},$.fn.clickListener.defaults,a);
var c=$(this);
c.click(function(v){var s=$(v.target);
var j=function(M,H,B){var J=M;
var e="/ajax/edit/comment";
var E={review:"",tags:"",title:"",keep_date:false,sticky_post:false,commentid:0,publicid:"",syndicate_tw:"",syndicate_fb:"",token:""};
var L=J.find("textarea").val();
E.review=L.replace(/^\s+|\s+$/g,"");
if(J.find("input[name='title']").length){E.title=J.find("input[name='title']").val()
}if(J.find("input[name='tags']").length){E.tags=J.find("input[name='tags']").val()
}if(J.find("input[name='keep_date']").length){E.keep_date=J.find("input[name='keep_date']").attr("checked")
}if(J.find("input[name='sticky_post']").length){E.sticky_post=J.find("input[name='sticky_post']").attr("checked")
}if(J.find("input[name='syndicate_tw']").attr("checked")){E.syndicate_tw=J.find("input[name='syndicate_tw']").val()
}if(J.find("input[name='syndicate_fb']").attr("checked")){E.syndicate_fb=J.find("input[name='syndicate_fb']").val()
}var C=s.parents("li:parent(ul.listStumble)");
if(C.find("var").length){E.commentid=C.find("var").attr("id");
E.publicid=C.find("var").attr("class")
}E.token=$("#wrapperContent").attr("class");
E.keep_date=+E.keep_date;
E.sticky_post=+E.sticky_post;
if(H){for(var G in H){E[G]=H[G]
}}var F=function(O){if(O.success==true){if(J.parents(".text").find(".review").length!=0){J.parents(".text").find(".review").html(O.review)
}else{var N='<p class="review">'+O.review+"</p>";
J.parents(".text").find(".showThumbUp").after(N)
}l()
}};
if(B){var K=B
}else{var K=F
}if((E.review.length>0||E.commentid>0)||E.tags.length>0){$.post(e,E,K,"json")
}else{alert("Please write a review, or choose some tags for this url.");
return false
}if(J.find("input[name='post_fb_setting']").val()!=J.find("input[name='post_fb']").attr("checked")){var I=J.find("input[name='post_fb']").attr("checked")?1:0;
$.ajax({type:"POST",url:"/ajax/publishsettings",data:{update_publish:I},dataType:"json",success:function(N){}})
}if(J.find("input[name='post_fb']").attr("checked")){if(E.url){var D=E.url
}else{var D=null
}fb_dologin=false;
FB.init({appId:"8ab252785ffd2ebc69f34b48c78a931d",status:true,cookie:true,xfbml:true});
FB.login(function(N){if(N.session){$.ajax({type:"POST",url:"/ajax/checkfbmapping",data:{fb_userid:N.session.uid,update_mapping:true},dataType:"json",success:function(O){if(O.passed){$.ajax({type:"POST",url:"/ajax/syndicate_fb",data:{access_token:N.session.access_token,fb_uid:N.session.uid,review:E.review,publicid:E.publicid,url:D},dataType:"json",success:function(P){}})
}else{SUJS.suWindow.show()
}}})
}else{alert("facebook post cancelled!")
}},{perms:"publish_stream"})
}};
function l(){var e=$(".listStumble .active");
e.each(function(){$(".open").slideUp(200,function(){setTimeout(function(){e.removeClass("active")
},300)
})
});
$("#inflator.open").slideUp(200).removeClass("open");
$("#addContent.open").slideUp(200).removeClass("open")
}if(s.is(".filter a.controlPanel")){}if(s.is(".controls a.edit")){var u=s.parents("li:parent(ul.listStumble)");
var y=u.children("var").attr("id");
if(y==""){y=0
}var o=u.children("var").attr("class");
var i=$("#wrapperContent").attr("class");
var r=u.find("div.editReview");
var k,p;
if(s.hasClass("active")){s.removeClass("active");
u.removeClass("active");
r.slideUp(200).removeClass("open").unbind()
}else{l();
s.addClass("active");
u.addClass("active");
r.slideDown(300).addClass("open");
k=r.find("textarea").val();
p=r.find("input[name='tags']").attr("value")
}r.unbind("click").click(function(D){var B=$(D.target);
if(B.is("a.cancel")){var C=B.parents("fieldset:eq(0)");
r.find("textarea").val(k);
r.find("input[name='tags']").attr("value",p);
l();
return false
}if(B.is("input[type='submit']")){var C=B.parents("fieldset:eq(0)");
var E=false;
if(C.find("input[name='newUrlReview']").length){E=function(e){window.location.reload()
}
}j(C,false,E)
}})
}if(s.is(".controls a.helpfulYes")||s.is(".controls a.helpfulNo")){var u=s.parents("li:eq(0)");
var f="/ajax/flag/comment";
var i=$("#wrapperContent").attr("class");
var w=u.children("var").attr("id");
var x={action:"helpful",helpful:0,commentid:w,token:i};
var m={yes:u.find("div a.helpfulYes"),no:u.find("div a.helpfulNo")};
if(s.is("a.helpfulYes")){x.helpful=1
}m.yes.css("font-weight","normal");
m.no.css("font-weight","normal");
if(x.helpful){m.yes.css("font-weight","bold")
}else{m.no.css("font-weight","bold")
}$.post(f,x,function(e){},"json")
}if(s.is(".controls a.share")){var u=s.parents("li:parent(ul.listStumble)");
var A=$("#wrapperPanel");
var d=$("#wrapperPanel iframe");
var g=$("#inflator");
if(s.hasClass("active")){g.removeClass("open").slideUp(300,function(){u.removeClass("active");
s.removeClass("active").unbind()
});
return false
}else{l();
u.addClass("active");
s.addClass("active");
d.load(function(){g.slideDown(400).addClass("open");
return false
})
}var o=u.find("var").attr("class");
d.attr("src","/share/"+o+"/?src=website");
d.css("height",259)
}if(s.is(".controls a.delete")){var u=s.parents("li:eq(1)");
var f="/ajax/delete/favorite";
var o=u.children("var").attr("class");
var i=$("#wrapperContent").attr("class");
var y=u.children("var").attr("id");
if(y==""){y=0
}var z=u.find(".deleteThis");
function q(){s.parent().removeClass("active");
z.animate({width:"hide"},0).removeClass("open")
}function h(){s.parent().addClass("active");
z.animate({width:"show"},200).addClass("open")
}s.closest("li.listLi").hover(function(){clearTimeout(t)
},function(){t=setTimeout(function(){q()
},10)
});
if(s.parent().hasClass("active")){$.post(f,{commentid:y,publicid:o,token:i},function(e){if(e.success==true){u.fadeOut(900,function(){$(this).remove()
})
}},"json")
}else{l();
h()
}}if(s.is(".headerControls a.addSite")){var n=$("#addContent");
n.click(function(G){var D=$(G.target);
if(D.is("a.cancel")){n.children("form").clearForm();
n.removeClass("open").slideUp(200);
n.unbind();
return false
}if(D.is(".blogMode")){var J=D.parents("fieldset:eq(0)");
var L=D.attr("checked");
if(L){J.find("label[for='url']").html("Title");
J.find("a.submit").html("Add a blog");
J.find("#syndicatePost").hide()
}else{J.find("label[for='url']").html("URL");
J.find("a.submit").html("Add a site");
J.find("#syndicatePost").show()
}}if(D.is("a.submit")){var J=D.parents("fieldset:eq(0)");
var H="";
var B=J.find("input[name='url']").val();
var F=J.find("input[name='blog_mode']").attr("checked");
var I=0;
var C=1;
if(F){H=B;
B="";
I=1
}var E={title:H,url:B,new_post:C,blog_post:I};
var K=function(e,M){if(e.go_to){window.location=e.go_to
}else{window.location="/favorites/"
}};
j(J,E,K)
}});
if(n.hasClass("open")){n.removeClass("open").slideUp(200);
n.unbind();
return false
}else{l();
n.slideDown(300).addClass("open");
return false
}}if(s.is("#stats .seeMore")){s.next("dl").slideToggle(250)
}if(s.is(".tags.seeMore")){s.next("dl").slideToggle(250)
}if(s.is(".userSubscribe")){var i=$("#wrapperContent").attr("class");
$.post("/ajax/user/subscribe",{act:"subscribe",id:s.attr("href").substr(1),fauth:i},function(){},"json");
s.fadeOut()
}if(s.is(".userSubscribeAndDS")){var i=$("#wrapperContent").attr("class");
if(s.html()=="Follow"){$.post("/ajax/user/subscribe",{act:"subscribe_and_ds",id:s.attr("href").substr(1),fauth:i},function(){s.html("Following (undo)")
},"json")
}else{$.post("/ajax/user/subscribe",{act:"unsubscribe",id:s.attr("href").substr(1),fauth:i},function(){s.html("Follow")
},"json")
}}if(s.is(".userSuggestRemove")){var i=$("#wrapperContent").attr("class");
$.post("/ajax/user/subscribe",{act:"suggest_remove",id:s.attr("href").substr(1),fauth:i},function(){s.parents("li").fadeOut()
},"json")
}if(s.is(".searchlink")){s.hover(function(){s.find("ul").fadeIn(100)
},function(){s.find("ul").fadeOut(200)
})
}})
};
$.fn.clickListener.defaults={};
$.fn.swapThis=function(a){var b=$.extend({},$.fn.swapThis.defaults,a);
var c=$(this);
if(b.event=="click"){c.click(function(){$(b.swapThis).addClass("hidden");
$(b.forThat).removeClass("hidden");
return false
})
}};
$.fn.swapThis.defaults={swapThis:".this",forThat:".that",event:"click"};
$.fn.focusElement=function(a){var b=$.extend({},$.fn.focusElement.defaults,a);
var c=$(this);
if(b.event=="click"){c.click(function(){$(b.element).focus().select()
})
}};
$.fn.focusElement.defaults={element:false,event:"click"};
$.fn.clearForm=function(){return this.each(function(){var b=this.type,a=this.tagName.toLowerCase();
if(a=="form"){return $(":input",this).clearForm()
}if(b=="text"||b=="password"||a=="textarea"){this.value=""
}else{if(b=="checkbox"||b=="radio"){this.checked=false
}else{if(a=="select"){this.selectedIndex=-1
}}}})
};
$.fn.stumbleInfoPopup=function(a){var b="userid="+a.userid;
jQuery.ajax({type:"POST",url:"/ajax/user/info",data:b,error:function(){},success:function(){}})
};
$.fn.imageMaxWidth=function(a){var b=$.extend({},$.fn.imageMaxWidth.defaults,a);
$(this).each(function(){var h=$(this);
if(h.attr("width")>=b.width){h.removeAttr("height").removeAttr("width");
var g=h.width();
var c=h.height();
if(g>=b.width){var f=(c/g);
var d=b.width;
var e=(d*f);
h.height(e).width(b.width)
}}})
};
$.fn.imageMaxWidth.defaults={width:700};
$.fn.installAddon=function(a){var c=$.extend({},$.fn.installAddon.defaults,a);
var b=$(this);
if(c.user_agent=="ie"){b.attr("href",c.ie_download_url)
}else{if(c.user_agent=="firefox"){b.attr("href",c.ff_download_url);
b.click(function(){$("#fadeout",top.document).show();
$("#ff-install-helper",top.document).show()
});
$("#close-button",top.document).click(function(){$("#ff-install-helper",top.document).hide();
$("#fadeout",top.document).hide()
})
}else{if(c.user_agent=="chrome"){b.attr("href",c.chrome_download_url)
}else{b.hide()
}}}};
$.fn.installAddon.defaults={ff_download_url:"#",ie_download_url:"#",chrome_download_url:"#",user_agent:false};
$.fn.showHide=function(a){var b=$.extend({},$.fn.showHide.defaults,a);
$this=$(this);
$this.click(function(d){var c=$(d.target);
if(c.is(b.showHideSwitch)){if(c.hasClass("closed")){c.removeClass("closed").children(".showSwitch, .hideSwitch").toggle();
c.next(b.targ).show()
}else{c.addClass("closed").children(".showSwitch, .hideSwitch").toggle();
c.next(b.targ).hide()
}}})
};
$.fn.showHide.defaults={showHideSwitch:".showHideSwitch",targ:".showHideThis"};
$.fn.charCount=function(a){var c=$.extend({},$.fn.charCount.defaults,a);
function b(f){var d=$(f).val().length;
var e=c.allowed-d;
if(e<=c.warning&&e>=0){$(f).next().addClass(c.cssWarning)
}else{$(f).next().removeClass(c.cssWarning)
}if(e<0){$(f).next().addClass(c.cssExceeded)
}else{$(f).next().removeClass(c.cssExceeded)
}$(f).next().html(c.counterText+e)
}this.each(function(){$(this).after("<"+c.counterElement+' class="'+c.css+'">'+c.counterText+"</"+c.counterElement+">");
b(this);
$(this).keyup(function(){b(this)
});
$(this).change(function(){b(this)
})
})
};
$.fn.charCount.defaults={allowed:140,warning:25,css:"counter",counterElement:"span",cssWarning:"warning",cssExceeded:"exceeded",counterText:""};
$.fn.delegate=function(a,b){return this.bind(a,function(f){var d=$(f.target);
for(var c in b){if(d.is(c)){return b[c].apply(this,arguments)
}}})
};
$.fn.makeCols=function(o,n,p){var a=$.extend({},$.fn.makeCols.defaults,p);
var m=$(this),l=$(o),e=l.length,h=m.width(),k=l.eq(0).height(),g=l.eq(0).width(),d,j,c,b,f;
if(h/n<g){n=n-1
}d=Math.ceil(e/n);
j=a.liHeight*d;
m.children("li").removeClass("col1 col2 col3").hide();
for(f=1;
f<=(e);
f++){c=0;
if(e<=a.colMin){b=1
}else{b=Math.ceil(f/d);
if(f%d==0&&f>1){c=-1*j
}}l.eq(f-1).addClass("col"+b).css({height:a.liHeight+"px"}).show();
l.eq(f).css({"margin-top":c});
l.parent("ul").css("height",j)
}};
$.fn.makeCols.defaults={liHeight:22,topicsLimit:127,colMin:10};
$.fn.openWindow=function(d,c,a,e,f){var b=f?",scrollbars=1":"";
var g=window.open(d,c,"height="+a+",width="+e+b);
if(g&&!g.opener){g.opener=window
}if(window.focus){g.focus()
}return false
};
$.fn.suCenter=function(){var a=$(window);
this.css("position","absolute");
this.css("top",(a.height()-this.height()-40)/2+a.scrollTop()+"px");
this.css("left",(a.width()-this.width())/2+a.scrollLeft()+"px");
return this
};
$.fn.goAway=function(a){var b=$.extend({},$.goAway,a);
$this=$(this);
$this.animate({opacity:0},b.fadeTime,function(){$this.css({left:"-999em"})
})
};
$.fn.goAway.defaults={fadeTime:300};
$.fn.comeBack=function(a){var b=$.extend({},$.comeBack,a);
$this=$(this);
$this.animate({opacity:1},b.fadeTime,function(){if(b.reposition){$this.css({left:optLeft,top:b.top})
}})
};
$.fn.comeBack.defaults={fadeTime:300,reposition:false,left:0,top:0};
var SUJS={};
SUJS.extend=function(c,a){var b=function(){};
b.prototype=a.prototype;
c.prototype=new b();
c.prototype.constructor=c;
c.superclass=a.prototype;
if(a.prototype.constructor==Object.prototype.constructor){a.prototype.constructor=a
}};
SUJS.suWindow=function(){var b=false,d=$(window),c=$(document),a=function(e){return $('<div id="'+e+'"/>')
};
return{init:function(i){var h=$(i),f=h.width(),g=h.height(),e='<a href="javascript:void(0);" id="suBoxClose" style="display: block;">close</a>';
$overlay=a("suOverlay").css({position:"absolute",width:"100%",height:$(document).height(),top:0,left:0,opacity:0.7,background:"black url(http://cdn.stumble-upon.com/images/loader_dark.gif) no-repeat 50% 50%",zIndex:7000}).hide(),$contentWindow=a("suWindow").append(h.html()).css({position:"absolute",background:"#fff",zIndex:8000}).append(e).hide();
h.html("");
$("body").append($overlay,$contentWindow);
$("#suBoxClose").click(function(){SUJS.suWindow.hide()
})
},show:function(){if(b==true){SUJS.suWindow.hide()
}var e=$("#suWindow"),f=$("#suOverlay");
f.fadeIn(200,function(){e.suCenter().fadeIn(100,function(){});
$(window).resize(function(){f.height(c.height()).width(d.width());
e.suCenter()
})
});
b=true
},hide:function(){$("#suWindow").fadeOut(100,function(){$("#suOverlay").fadeOut(100)
});
b=false
}}
}();
SUJS.topicsList=function(){var h="#topicsList",b=$("#topicsList"),c,a=22,f=3;
function e(i,j){j=j+1;
i.addClass("selectedTopic");
return j
}function d(i,j){j=j-1;
i.removeClass("selectedTopic");
return j
}function g(){$interestsForm.animate({opacity:0},190,function(){$interestsForm.removeClass("mini");
b.makeCols("Popular_Topics",3);
$("#topicsSeeMore").fadeOut();
$("#filterList").fadeIn(200);
$("#Popular_Topics").click();
$(".moduleHomeStumblePromo").fadeOut(120,function(){$interestsForm.animate({opacity:1},300)
})
})
}this.Filter=function(){this.filters={age:"",gender:""};
this.setFilter=function(i,j){var j=j.substring(6).toLowerCase();
if(this.filters[i]==j){this.filters[i]=""
}else{this.filters[i]=j
}$("#age").val(this.filters.age);
$("#gender").val(this.filters.gender)
};
this.getFilter=function(){return this.filters.gender+this.filters.age
}
};
return{init:function(l,j,k,i){l=l;
b=$(l);
j=j;
k=k;
topic_filter=new Filter();
$interestsForm=$("#interestsForm");
if((typeof i!="undefined")&&i!=22){a=i
}b.makeCols(j,k,{liHeight:a})
},nav:function(p,o,n,k){var j=$(p),i=$("#topicsSeeMore"),m,l=$(k);
if(o.length){m=$(o);
m.parent("li:eq(0)").addClass("current")
}if(n!="expandOnClick"){$(k).show()
}j.click(function(w){var v=$(w.target),r=topic_filter.getFilter(),x=(v.attr("id")=="Popular_Topics"&&r)?r:v.attr("id"),z="#topicsList ."+x,s=$(z),u=s.width(),q=s.width(),y=Math.floor(u/q);
j.children("li").removeClass("current");
v.parent("li").addClass("current");
$("#topicsList > li").hide();
$(z).show();
b.makeCols(z,f,{liHeight:a})
});
l.click(function(u){var r=$(u.target),s=r.attr("id"),q=(r.hasClass("age"))?"age":"gender",v=!r.hasClass("active");
if(!(r.attr("id"))||!(r.attr("class"))){return
}$("."+q).removeClass("active");
if(v){$("#"+s).addClass("active")
}topic_filter.setFilter(q,s);
$("#Popular_Topics").click()
});
b.delegate("click",{input:function(w){var r=$(w.target),s=r.parents("li:eq(0)"),v=$("#selectedTopic"),y=v.children(".count"),u=parseInt(y.html());
var q=s.hasClass("selectedTopic")?d(s,u):e(s,u);
y.html(q);
if(n=="expandOnClick"&&$("#interestsForm").hasClass("mini")){g()
}$("#start_stumble_button").fadeIn(200)
}});
i.click(function(){g()
})
}}
}();
SUJS.Model={};
SUJS.View={};
SUJS.Controller={};
SUJS.Event=function(a){this._sender=a;
this._subscribers=[]
};
SUJS.Event.prototype={attach:function(b,c,a){this._subscribers.push({"function":b,args:c||{},scope:a||false})
},notify:function(b){for(var a=0;
a<this._subscribers.length;
a++){$.extend(b,this._subscribers[a]["args"]);
if(this._subscribers[a]["scope"]){this._subscribers[a]["function"].call(this._subscribers[a]["scope"],this._sender,b)
}else{this._subscribers[a]["function"](this._sender,b)
}}}};
SUJS.Model.TopicsList=function(a){this._topics=a;
this._category={category:"",filter:""};
this._displayMode={prev:"",current:""};
this._selectedTopics=false;
this._selectedTopicsCount=false;
this._suggestedTopics={};
this.displayModeChanged=new SUJS.Event(this);
this.categoryChanged=new SUJS.Event(this);
this.selectedTopicsChanged=new SUJS.Event(this);
this.showSelectedTopics=new SUJS.Event(this)
};
SUJS.Model.TopicsList.prototype.getTopics=function(){return this._topics
};
SUJS.Model.TopicsList.prototype.setTopics=function(a){this._topics=a;
this.topicsChanged.notify()
};
SUJS.Model.TopicsList.prototype.getCategory=function(){return this._category
};
SUJS.Model.TopicsList.prototype.getTopicName=function(b){var a="";
if(typeof b!="undefined"&&b in this._topics.topics){a=this._topics.topics[b].name
}return a
};
SUJS.Model.TopicsList.prototype.setCategory=function(b,a){this._category.category=b;
if(a!=undefined){this._category.filter=a
}this.categoryChanged.notify()
};
SUJS.Model.TopicsList.prototype.getSelectedTopics=function(){return this._selectedTopics
};
SUJS.Model.TopicsList.prototype.getSelectedTopicsCount=function(){return this._selectedTopicsCount
};
SUJS.Model.TopicsList.prototype.setSelectedTopics=function(c,b){var f=[];
var d=this;
for(var a in c){if(c[a].selected){f.push(c[a])
}}this._selectedTopics=f;
this._selectedTopicsCount=f.length;
this.selectedTopicsChanged.notify(b)
};
SUJS.Model.TopicsList.prototype.getDisplayMode=function(){return this._displayMode
};
SUJS.Model.TopicsList.prototype.setDisplayMode=function(a){this._displayMode.prev=this._displayMode.current;
this._displayMode.current=a;
this.displayModeChanged.notify()
};
SUJS.Model.TopicsList.prototype.setSubmitMode=function(a){this.showSelectedTopics.notify(a)
};
SUJS.View.WebTbTopicsList=function(b,a,c){this._model=b;
this._controller=a;
this._elements=c;
this._topics=this._model.getTopics();
var d=this;
this._model.categoryChanged.attach(function(){d.buildTopicsList()
})
};
SUJS.View.WebTbTopicsList.prototype={init:function(){console.log("init")
},buildTopicsList:function(){console.log("foo")
}};
SUJS.View.TopicsList=function(b,a,c){this._model=b;
this._controller=a;
this._elements=c;
this._topics=this._model.getTopics();
var d=this;
this._model.categoryChanged.attach(function(){d.buildTopicsList()
});
this._model.displayModeChanged.attach(function(){var e=d._model.getDisplayMode();
d._elements.wrapperElem.removeClass(e.prev).addClass(e.current)
});
this._model.selectedTopicsChanged.attach(function(g,f){d.buildSuggestedList();
if(typeof f!="undefined"&&$(f.currentTarget).attr("id")=="topicsSuggested"){d.buildTopicsList()
}})
};
SUJS.View.TopicsList.prototype.init=function(){this.selectTopic();
this.submitHandler();
this._controller.updateDisplayMode(this._elements.mode);
this._controller.selectTopic(this._topics)
};
SUJS.View.TopicsList.prototype.buildTopicsList=function(){var p=this._elements.topicsList;
var k=this._model.getTopics();
var j=this._model.getCategory();
var q=this._model.getSelectedTopics();
var o='<ul class="col">';
var c="</ul>";
var n='</ul><ul class="col">';
var f=false;
if(typeof this._elements.numCols!="undefined"){f=this._elements.numCols
}var m=$.trim(j.filter);
m=m.replace(/ /gi,"|").replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&");
function b(v,w){var s=Math.ceil(v/w);
var r=s;
for(var u=1;
u<w;
u++){l.splice(s,0,n);
s=s+r
}}function e(s){var r=s;
if(!(r)){}var i=l.length;
b(i,r);
p.attr("class","clearfix col"+r)
}var d=[];
var l=[];
p.html("");
if(j.category=="filter"){d=k.ordering.All
}else{d=k.ordering[j.category.replace(/_/,"/")]
}for(var h=0;
h<d.length;
h++){var g={};
g=k.topics[d[h]];
if(j.category==g.metatopics&&j.category!="Popular_Topics"){l.push(this.buildCheckList(g))
}else{if(g.popular&&j.category=="Popular_Topics"){l.push(this.buildCheckList(g))
}else{if(g.selected&&j.category=="Selected_Topics"){l.push(this.buildCheckList(g))
}else{if(j.category=="filter"){var a=g.name;
if(m!=""&&a.search(new RegExp(m,"i"))>=0){l.push(this.buildCheckList(g))
}}}}}}l.push(c);
l.splice(0,0,o);
e(f);
p.html(l.join(" "))
};
SUJS.View.TopicsList.prototype.buildSuggestedList=function(){var e=this;
var k=this._model.getSelectedTopics();
var c={};
var b=k.length;
var f=this._model.getTopics();
var h=[];
if(typeof this._elements.suggestedElem!="undefined"){var j=this._elements.suggestedElem;
var a=j.find("ul");
var g=function(){a.html("");
j.removeClass("left").hide()
};
if(b>0){if(b>0){for(var d=0;
d<b;
d++){c[k[d].id]=k[d].id
}}$.ajax({url:"/ajax/topic/subscribe",type:"POST",dataType:"json",data:{action:"suggest",topics:c,fauth:f.ftoken},beforeSend:function(){},success:function(l){if(l.success){for(var i in l.suggested){var m={};
m=f.topics[i];
h.push(e.buildCheckList(m,"suggested_"))
}if(h.length>0){j.addClass("left reloading").show().animate({opacity:1},300,function(){j.removeClass("reloading")
});
a.html(h.join(" "))
}else{g()
}}}})
}else{g()
}}};
SUJS.View.TopicsList.prototype.buildCheckList=function(d,g){var e=[];
var c=d.popular;
var h=d.metatopics;
var i=d.id;
var a=d.name;
var b=d.selected;
var f="";
if(typeof g!="undefined"){f=g
}e.push('<li class="topicItem ');
if(c){e.push("popular ")
}e.push(h);
e.push('"><label for="cbox_');
e.push(f);
e.push(h);
e.push("_");
e.push(i);
e.push('"><input name="categories[]" type="checkbox" id="cbox_');
e.push(f);
e.push(h);
e.push("_");
e.push(i);
e.push('" value="');
e.push(i);
e.push('" ');
if(b){e.push('checked="checked" ')
}e.push(" />");
e.push(a);
e.push("</label></li>");
return e.join("")
};
SUJS.View.TopicsList.prototype.selectTopic=function(){var c=$(this._elements.suggestedElem);
var b=$(this._elements.topicsList);
var d=this;
function a(h,g){if($(g.target).is("input")){if(typeof d._elements.countCb=="function"){var f=d._elements.countCb(g);
if(f){d._controller.selectTopic(h,g)
}}else{d._controller.selectTopic(h,g)
}}}b.click(function(f){a(topics,f)
});
c.click(function(f){a(topics,f)
})
};
SUJS.View.TopicsList.prototype.submitHandler=function(){var a=this._elements.submitButton;
var b=this._elements.wrapperElem;
var c=this;
a.click(function(){c._controller.submitHandler(b)
});
return false
};
SUJS.Controller.TopicsList=function(a){this._model=a
};
SUJS.Controller.TopicsList.prototype.selectTopic=function(a,f){var d=a;
var m=[];
if(!(d.ordering["Selected/Topics"]==null)){m=d.ordering["Selected/Topics"]
}else{d.ordering["Selected/Topics"]=[]
}if(arguments.length>1){var j=$(f.target);
var b={key:j.attr("value"),bool:j.attr("checked")?true:false};
if(b!=undefined){function k(n,o){for(var e=0;
e<n.length;
e++){if(n[e]==o){return e
}}}d.topics[b.key].selected=b.bool;
if(b.bool){var h=[];
var g=d.topics[b.key].name;
for(var c=0;
c<m.length;
c++){h.push(d.topics[m[c]].name)
}h.push(g);
h.sort();
var l=k(h,g);
m.splice(l,0,parseInt(b.key))
}else{var l=k(m,b.key);
m.splice(l,1)
}}}this._model.setSelectedTopics(d.topics,f)
};
SUJS.Controller.TopicsList.prototype.updateDisplayMode=function(a){this._model.setDisplayMode(a)
};
SUJS.Controller.TopicsList.prototype.submitHandler=function(c){var d=this;
var b=c;
var a=function(){b.submit()
};
this._model.setSubmitMode(a)
};
SUJS.View.TopicsNav=function(b,a,c){this._model=b;
this._controller=a;
this._elements=c
};
SUJS.View.TopicsNav.prototype.init=function(){var c=this._elements.nav;
var e=this._elements.selectedTopics;
var d=this;
var a=this._model.getDisplayMode();
var b=function(f){c.children("li").removeClass("active");
$("#"+f).parent("li").addClass("active ")
};
if(this._model.getSelectedTopics()&&$("#Selected_Topics").length>0){this.selectedCount()
}c.click(function(g){if(a.current!="modeNav"){d._controller.newDisplayMode("modeNav")
}var f=$(g.target).closest("a");
var h=f.attr("id");
if(!(h=="start_stumble_button")){d._controller.changeCategory(h)
}});
d._model.categoryChanged.attach(function(){var f=d._model.getCategory().category;
b(f)
});
if(typeof this._elements.default_category!="undefined"){d._controller.changeCategory(this._elements.default_category)
}d._model.showSelectedTopics.attach(function(g,f){d._controller.changeCategory("Selected_Topics");
if(typeof f!="undefined"){f()
}})
};
SUJS.View.TopicsNav.prototype.selectedCount=function(){var a=this;
this._model.selectedTopicsChanged.attach(function(){var b=a._model.getSelectedTopicsCount();
$("#Selected_Topics span").html(b)
})
};
SUJS.Controller.TopicsNav=function(a){this._model=a
};
SUJS.Controller.TopicsNav.prototype.changeCategory=function(a){this._model.setCategory(a)
};
SUJS.Controller.TopicsNav.prototype.newDisplayMode=function(a){this._model.setDisplayMode(a)
};
SUJS.View.TopicsFilter=function(b,a,c){this._model=b;
this._controller=a;
this._elements=c
};
SUJS.View.TopicsFilter.prototype.init=function(){var e=this;
var c=this._elements.topicsFilter;
var a=c.find("input");
var b=c.find(".cancel");
function d(){a.val("").blur();
e._controller.cancel()
}a.focus(function(f){});
b.click(function(f){d()
});
a.keypress(function(f){if((f.keyCode&&f.keyCode=="13")||(f.which&&f.which==13)){return false
}else{return true
}});
a.keyup(function(f){e._controller.enable();
e._controller.setCategory("filter",a.val())
});
this._model.displayModeChanged.attach(function(){var f=e._model.getDisplayMode();
if(f.current!="modeFilter"){a.val("")
}})
};
SUJS.Controller.TopicsFilter=function(a){this._model=a
};
SUJS.Controller.TopicsFilter.prototype.enable=function(){this._model.setDisplayMode("modeFilter")
};
SUJS.Controller.TopicsFilter.prototype.cancel=function(){this._model.setDisplayMode("modeNav");
this._model.setCategory("Popular_Topics")
};
SUJS.Controller.TopicsFilter.prototype.setCategory=function(a,b){this._model.setCategory(a,b)
};
SUJS.Model.Message=function(){this.message=null;
this.subject=null;
this.image=null;
this.setMessage=function(a){this.message=a;
return this
};
this.setSubject=function(a){this.subject=a;
return this
};
this.setImage=function(a){this.image=a;
return this
}
};
SUJS.Model.Resource=function(){this.url="";
this.setUrl=function(a){this.url=a;
return this
}
};
SUJS.Model.InternalResource=function(){};
SUJS.Model.RemoteResource=function(){};
SUJS.Model.InternalResource.prototype=new SUJS.Model.Resource();
SUJS.Model.RemoteResource.prototype=new SUJS.Model.Resource();
SUJS.Model.RemoteResource.initFromUrl=function(a){var b=new SUJS.Model.RemoteResource();
b.setUrl(a);
return b
};
SUJS.Model.InternalResource.initFromUrl=function(a){var b=new SUJS.Model.InternalResource();
b.setUrl(a);
return b
};
SUJS.Model.Cookie=function(a,b){this.name=a;
this.value=b;
this.expires=null;
this.path="/";
this.domain="";
this.secure=false;
this.setExpirationSeconds=function(d){var c=new Date();
c.setTime(c.getTime()+(1000*d));
this.expires=c
};
this.setExpirationHours=function(c){this.setExpirationSeconds(c*3600)
};
this.save=function(){var c=this.name+"="+escape(this.value)+((this.expires)?"; expires="+this.expires.toGMTString():"")+((this.path)?"; path="+this.path:"")+((this.domain)?"; domain="+this.domain:"")+((this.secure)?"; secure":"");
document.cookie=c
};
this.read=function(){var f=this.name+"=";
var d=document.cookie.split(";");
for(var e=0;
e<d.length;
e++){var g=d[e];
while(g.charAt(0)==" "){g=g.substring(1,g.length)
}if(g.indexOf(f)==0){this.value=unescape(g.substring(f.length,g.length))
}}return this.value
};
this.setValue=function(c){this.value=c
};
this.kill=function(){this.setExpirationSeconds(-86400);
this.value=null;
this.save()
}
};
SUJS.View.Tooltip=function(a){this.target=null;
this._familyId=null;
this.persistent=true;
this.message=a;
this.tipNode=null;
this.leftPosition=false;
this.topPosition=false;
this.maxWidth=275;
this.overlap=0;
this.bubblePos="se";
this._showing=false;
this.customCallbacks={};
this.show=function(){if(!this.tipNode){this.createDomNode()
}this.reposition();
this.tipNode.comeBack();
this._showing=true;
return this
};
this.familyId=function(b){if(b){this._familyId=b;
return this
}else{return this._familyId
}};
this.hide=function(b){if(this.showTimer){clearTimeout(this.showTimer)
}if(!this.tipNode){return this
}if(b){this.tipNode.goAway()
}else{this.tipNode.goAway({fadeTime:0})
}this._showing=false;
if(typeof this.customCallbacks.goAway!="undefined"){this.customCallbacks.goAway()
}return this
};
this.showing=function(){return this._showing
};
this.setMaxWidth=function(b){this.maxWidth=b;
return this
};
this.setBubblePos=function(b){this.bubblePos=b;
return this
};
this.setPersistent=function(b){this.persistent=b;
return this
};
this.setLeftPosition=function(b){this.leftPosition=b;
return this
};
this.setTopPosition=function(b){this.topPosition=b;
return this
};
this.createDomNode=function(){this.target=$(this.message.subject);
var c=$('<a href="javascript:void(0);" class="suBubbleClose" style="display: block;">close</a>');
this.tipNode=$('<div class="wrapperBubble"><div class="tip"></div><div class="wrapperContent"><div class="content"></div></div></div>');
var d=this.tipNode.find(".content");
d.html(this.message.message);
if(this.persistent){d.append(c)
}if(this.message.image){var e=$("<img src='"+this.message.image+"' />");
d.addClass("hasImg");
d.prepend(e)
}var b=this;
this.tipNode.click(function(f){if($(f.target).hasClass("suBubbleClose")){b.hide(true)
}});
this.target.data("attached_tips",this);
this.target.click(function(){var f=$(this).data("attached_tips");
if(f){f.hide()
}});
$("body").append(this.tipNode)
};
this.reposition=function(){var e=this.target.offset();
var b=this.target.width();
this.tipNode.children(".tip").css("left",Math.round(b/2));
var f={left:0,top:0};
if(b<40){f.left=-1*Math.round(this.target.width()/2)
}e.left=e.left+f.left;
e.top=this.target.height()+e.top;
if(this.leftPosition){e.left=this.leftPosition
}if(this.topPosition){e.top=this.topPosition
}this.tipNode.css({"max-width":this.maxWidth});
var d=this.tipNode.width();
if(e.left>($(window).width()-d)){this.tipNode.find(".tip").css({left:"",right:"10px"});
var c=this.target.position();
e.left=c.left-d+25
}this.tipNode.css({left:e.left+"px",top:e.top+"px"})
};
this.delayedShow=function(c){var b=this;
this.showTimer=setTimeout(function(){b.show()
},c)
}
};
SUJS.Librarian=function(a){this.listeners=[];
if(a){this.checkExtension=false
}else{this.checkExtension=true
}this.subscribe=function(b,c){if(this.checkExtension&&typeof suExtensionApi!="undefined"){suExtensionApi.message.addListener(function(d,e){if(d==b){c(e)
}})
}else{if(typeof this.listeners[b]=="undefined"){this.listeners[b]=[]
}this.listeners[b].push(c)
}};
this.publish=function(b,d,e){if(this.checkExtension&&typeof suExtensionApi!="undefined"){if(!d){d=""
}suExtensionApi.message.broadcastMessage(b,d)
}else{if(typeof this.listeners[b]!="undefined"){for(var c=0;
c<this.listeners[b].length;
c++){this.listeners[b][c](d)
}}}if(e){e()
}}
};
SUJS.Librarian.getInstance=function(b){try{if(!b&&typeof suExtensionApi!="undefined"){return new SUJS.Librarian()
}else{if(typeof top.suGlobalMessagingLibrarian=="undefined"){top.suGlobalMessagingLibrarian=new SUJS.Librarian(b)
}if(typeof top.suGlobalMessagingLibrarian=="undefined"){return new SUJS.Librarian(b)
}return top.suGlobalMessagingLibrarian
}}catch(a){}};
SUJS.View.ResourceViewPane=function(a){this.styles={position:"absolute",display:"none",background:"#fff"};
this.resource=null;
this.handle=null;
this.name="";
if(a){this.name=a
}this.showing=false;
this.customAnimator=null;
this.iframeOverflows=false;
this.listeners={};
this.closeButtonStyle="text";
this.modal=true;
this.loadingStyle="throbber";
this.setDisplayStyle=function(c){for(var b in c){this.styles[b]=c[b]
}return this
};
this.setResource=function(b){this.resource=b;
return this
};
this.setName=function(b){this.name=b;
return this
};
this.setModal=function(b){if(b===false){this.modal=false
}else{this.modal=true
}return this
};
this.setOverflowOkay=function(){this.iframeOverflows=true;
return this
};
this.setLoadingStyle=function(b){this.loadingStyle=b;
return this
};
this.setCloseButtonStyle=function(b){this.closeButtonStyle=b;
return this
};
this.render=function(){var d=$("<iframe></iframe>");
var c=$("<div></div>");
var g=this.iframeOverflows?"scroll":"none";
d.attr("name",this.name).attr("src",this.resource.url).css({width:"100%",height:"inherit",border:"none",overflow:g});
c.css(this.styles);
if(this.closeButtonStyle){c.append(this.getCloseButton())
}if(this.loadingStyle=="throbber"){d.css("height","1px");
var f=$('<div><img src="/i/assets/loading.gif" alt="Loading..." /></div>');
f.css({"text-align":"center","vertical-align":"middle","margin-top":"30px"});
c.append(f)
}c.append(d);
$("body").append(c);
this.handle=c;
var e=SUJS.Librarian.getInstance();
var b=this;
e.subscribe("internalWindowLoaded",function(h){if(h==b.name){if(typeof f!="undefined"){f.hide()
}d.css("height","inherit")
}})
};
this.hide=function(){this.fireGlobalEvent("viewpane_hide");
this.handle.hide();
this.showing=false
};
this.show=function(){this.fireGlobalEvent("viewpane_show");
if(this.handle==null){this.render()
}if(this.customAnimator){this.customAnimator()
}else{this.handle.show()
}this.showing=true
};
this.toggleDisplay=function(b){if(b){if(b=="show"){this.show()
}else{if(b=="hide"){this.hide()
}}}else{if(this.showing){this.hide()
}else{this.show()
}}};
this.getCloseButton=function(){if(this.closeButtonStyle=="text"){var c=$('<div style="float: right;"><a style="color: #1a1a1a;" href="">Hide</a></div>')
}else{if(this.closeButtonStyle=="x"){var c=$('<div style="float: right;"><a href=""><img src="http://cdn.stumble-upon.com/images/icon_close_gray_input.gif" border="0" /></a></div>')
}}c.css({position:"absolute",top:"8px",right:"8px",color:"#808080","font-weight":"bold"});
var b=this;
c.click(function(){b.hide();
return false
});
return c
};
this.fireGlobalEvent=function(b){try{var d=SUJS.Librarian.getInstance();
d.publish(b,this)
}catch(c){}}
};
SUJS.View.ResourcePopup=function(a){this.name=a;
this.width=620;
this.height=550;
this.options={scrollbars:false};
this.setResource=function(b){this.resource=b;
return this
};
this.setWidth=function(b){this.width=b;
return this
};
this.setHeight=function(b){this.height=b;
return this
};
this.render=function(){var c=this.options.scrollbars?"1":"0";
var b=window.open(this.resource.url,this.name,"width="+this.width+"px,height="+this.height+"px,scrollbars="+scrollbars);
if(b&&!b.opener){b.opener=window
}if(window.focus){b.focus()
}}
};