var BoxBox=Class.create({template:new EJS({url:"/ejs/boxbox_view.ejs"}),initialize:function(c,d,a){this.element=new Element("div",{"class":"boxbox"});this.template.update(this.element,this);this.additionalClass=d;if(d){this.bodyElement().addClassName(d);this.shadowElement().addClassName(d)}this.bodyElement().insert(c);var b=a||document.body;$(b).insert(this.element);document.fire("boxbox:show")},remove:function(){this.activeEffect=new Effect.Fade(this.element,{afterFinish:function(){this.element.remove();if(this.additionalClass){this.bodyElement().removeClassName(this.additionalClass)}document.fire("boxbox:hide")}.bind(this)})},bodyElement:function(){return this.element.down(".boxbox_body")},shadowElement:function(){return this.element.down(".boxbox_shadow")}});var ErrorView=Class.create(HandlerMixin,{containerElementClass:"site_errors",initialize:function(a){this.seconds=a.seconds||8;this.element=a.element||"grid_wrapper";if(a.message){this.renderError(a.message)}else{if(a.messages){this.renderErrors(a.messages)}else{throw ("Invocation error: instantiate ErrorView with either message or messages as an option")}}},destroy:function(){if(this.fadeTimeoutId){window.clearTimeout(this.fadeTimeoutId);delete this.fadeTimeoutId}this.siteErrorsElement().fade()},renderErrors:function(b){if(this.siteErrorsElement()){this.siteErrorsElement().remove()}var a=$ul({"class":this.containerElementClass});b.each(function(c){a.insert('<li class="site_error">'+c+"</li>")});$(this.element).insert(a);this.fadeTimeoutId=this.destroy.bind(this).delay(this.seconds)},renderError:function(a){this.renderErrors([a])},siteErrorsElement:function(){return $(this.element).down("."+this.containerElementClass)}});var HeaderMenuView=Class.create(HandlerMixin,{initialize:function(a){this.elementId=a;this.helpMenuPulldown=$("help_menu_pulldown");this.helpMenuItem=$("help_menu_item");this.reportAbuse=$("report_abuse");this.setupMenu()},destroy:function(){this.hideReportAbuseForm();this.removeHandlers()},setupMenu:function(){this.addHandlers(this.reportAbuse,{click:this.showReportAbuseForm});this.helpMenuPulldown.hide();this.addHandlers(this.helpMenuItem,{mouseenter:this.onHelpMenuMouseEnter,mouseleave:this.onHelpMenuMouseLeave,click:this.onHelpMenuMouseLeave})},onHelpMenuMouseEnter:function(){this.helpMenuPulldown.show();this.helpMenuItem.addClassName("clicked");document.fire("popup_overlay:appear")},onHelpMenuMouseLeave:function(){if(this.helpMenuPulldown.visible()){this.helpMenuPulldown.hide();this.helpMenuItem.removeClassName("clicked");document.fire("popup_overlay:disappear")}},showReportAbuseForm:function(){if(this.boxbox){this.boxbox.remove()}this.reportAbuseForm=new Element("div",{id:"report_abuse_form","class":"alert"});new EJS({url:"/ejs/report_abuse.ejs"}).update(this.reportAbuseForm,{confirmation:false});this.boxbox=new BoxBox(this.reportAbuseForm)},showReportAbuseConfirmation:function(){new EJS({url:"/ejs/report_abuse.ejs"}).update(this.reportAbuseForm,{confirmation:true})},hideReportAbuseForm:function(){if(this.boxbox){this.boxbox.remove()}this.reportAbuseForm=null;this.boxbox=null},submitReportAbuseForm:function(){if($("report_text").value.match(/\w+/)){$("submission_failure").update("");new Ajax.Request("/report_abuse",{method:"post",parameters:{report_text:$("report_text").value},onSuccess:function(b){if(b.status===0){try{b.request.options.onFailure(b)}catch(a){}return}this.showReportAbuseConfirmation()}.bind(this),onFailure:function(){$("submission_failure").update(_("There_was_a_reporting_error_You_may_try_saving_you123729842"))}})}else{$("submission_failure").update(_("Please_add_details_to_your_report547924478"))}}});UserFormView=Class.create(HandlerMixin,{initialize:function(){this.first="user_first_name";this.last="user_last_name";this.preferred="user_preferred_name";if(!$(this.first)||!$(this.last)){return}},destroy:function(){this.removeHandlers()}});AutoScale=Class.create(HandlerMixin,{autoscaleSelector:".autoscale",options:{minFontSize:0.75,scalingStep:0.05,centerVertically:false,throwInvisibilityError:true},initialize:function(b,a){Object.extend(this.options,a);if(b&&b!==null){this.scaleChildren(b,this.options)}},scaleChildren:function(c,a){var b=c.select(this.autoscaleSelector);if(c.hasClassName("autoscale")){b.unshift(c)}b.each(function(d){this.scaleContent(d,a)},this)},scaleContent:function(f,a){var j=a||{};var e=(j.minFontSize||this.options.minFontSize);var b=(j.scalingStep||this.options.scalingStep);var g=(j.throwInvisibilityError||this.options.throwInvisibilityError);var h=1;f.setStyle({fontSize:h+"em"});var i=f.offsetHeight;if(i===0&&g){throw new Error("autoscale requires offsetHeight > 0 (is element in Dom and visible?)")}var d=this._wrapContent(f);this.removeVerticalCenterStyle(f);if(d.offsetHeight>i){while((h>e)&&(d.offsetHeight>i)){h-=b;f.setStyle({fontSize:h+"em"})}}var c=(j.centerVertically||this.options.centerVertically);if(c){this.centerContentVertically(f)}},centerContentVertically:function(a){var c=this._wrapContent(a);var b=Math.max(0,(a.offsetHeight-c.offsetHeight)/2);c.setStyle({marginTop:b+"px"})},removeVerticalCenterStyle:function(a){var b=this._wrapContent(a);b.setStyle({marginTop:"0px"})},_wrapContent:function(a){var b=a.down("[autoscale:wrapper=true]");if(!b){b=$div().update(a.innerHTML);b.writeAttribute("autoscale:wrapper","true");a.update(b)}return b}});Element.addMethods({scaleChildren:function(b,a){new AutoScale(b,a)},deferScale:function(b,a){b.hide();var c=function(e,d){e.show();Element.scaleChildren(e,d)};c.defer(b,a)}});