function LogonHandler(options){var self=this;self.options=options;if(!options.form){throw"Logon form has not been specified.";}self.form=$(options.form);self.captcha=$("#captcha-answer");if(self.captcha.length==1){self.captcha.change(function(){if($(this).val()!=""){$("input[type='submit'],#submit",self.form).show();}else{$("input[type='submit'],#submit",self.form).hide();}});}$("input[type!='hidden']:first",self.form).focus();self.authenticate=function(event){if(event){event.preventDefault();}$("#captcha-container").hide();if(self.options.onAuthStart){self.options.onAuthStart();}$.ajax({type:self.form.attr("method"),url:self.form.attr("action"),dataType:"json",data:self.form.serialize(),success:self.successHandler,error:self.errorHandler,cache:false});};self.successHandler=function(r,s){if(r.Authenticated){if(self.options.onAuthSuccess){self.options.onAuthSuccess();}window.location=r.RedirectUrl;}else{if(self.options.onAuthFailure){self.options.onAuthFailure(r.ErrorMessageText);}if(r.RequireCaptcha){$("#captcha-container").show();if(self.captcha.val()==""){$("input[type='submit'],#submit",self.form).hide();}}}};self.errorHandler=function(xhr,t,e){if(self.options.onError){var message;if(t=="error"){message=xhr.statusText+" ("+xhr.status+").";}else{if(t!=""&&t!=null){message=t;}else{message=e;}}self.options.onError(message);}};self.form.submit(self.authenticate);self.form.keydown(function(e){if(e.which==13){e.preventDefault();$(this).submit();}});}

