function logged_in(){return _member.logged_in}function halt_for_login(a){if(logged_in()){a()}else{request_login(a)}}function request_login(a){$("login-failed-notice").hide();$("forgot_password_container").hide();$("reset_password_container").hide();pop_over($("login-form-container"));var b=$("login_form");b.onsubmit=function(g){$("login-failed-notice").hide();$("login-failed-notice").update("Login failed");if(form_presubmit_ok(b,g)){var h=Form.serialize(b);var f=new Ajax.Request(b.action,{asynchronous:true,parameters:h,onSuccess:function(e){login_form_onSuccess(e,a)},onFailure:login_form_onFailure})}return false};var d=$("forgot_password");d.onsubmit=function(g){if(form_presubmit_ok(d,g)){var h=Form.serialize(d);var f=new Ajax.Request(d.action,{asynchronous:true,parameters:h,onSuccess:function(e){forgot_password_onSuccess(e,a)},onFailure:forgot_password_onFailure})}return false};var c=$("reset_password");c.onsubmit=function(g){if(form_presubmit_ok(c,g)){var h=Form.serialize(c);var f=new Ajax.Request(c.action,{asynchronous:true,parameters:h,onSuccess:function(e){reset_password_onSuccess(e,a)},onFailure:reset_password_onFailure})}return false}}function login_form_onSuccess(b,c){var a=b.responseJSON;if(a==null){login_form_onFailure(b)}if(a.success){pop_over_close();Event.fire(document,"session:logged_in",a);c()}else{Event.fire(document,"session:logged_in_failed",a)}}function login_form_onFailure(a){$("login-failed-notice").show()}function forgot_password_onSuccess(b,c){var a=b.responseJSON;if(a.success){$("reset_email").value="";Effect.SlideUp("forgot_password_container",{duration:0.3});Effect.SlideDown("reset_password_container",{queue:"end",duration:0.3});c()}else{$("forgot-failed-notice").show()}}function forgot_password_onFailure(a){}function reset_password_onSuccess(b,c){var a=b.responseJSON;if(a.success){$("password_code").value="";$("new_password").value="";$("login-failed-notice").update("Password changed successfully");$("login-failed-notice").show();Effect.SlideUp("reset_password_container",{duration:0.3});c()}else{switch(a.error_code){case"code_not_found":$("reset-failed-notice").update("Code could not be found");break;case"no_password":$("reset-failed-notice").update("No password was set, password is required");break;default:$("reset-failed-notice").update("Error");break}$("reset-failed-notice").show()}}function reset_password_onFailure(a){};