
var invalidBrowserDialog;var loginForm;var forgotPasswordDialog;$(document).ready(function(){loginForm=new LoginForm();forgotPassword=new ForgotPassword();invalidBrowserDialog=new InvalidBrowserDialog();twitterBasedLogin=new TwitterBasedLogin();});function InvalidBrowserDialog(){var user;function ready(){$("#invalidBrowserDialog form").submit(close);}
function close(event){event.preventDefault();$.modal.close();login.handleLogin(user);}
this.show=function(_user){user=_user;$('#invalidBrowserDialog').modal({containerId:"invalidBrowserDialog",persist:true});}
this.validBrowser=function(){var userAgent=navigator.userAgent;if(/Firefox[\/\s](\d+\.\d+)/.test(userAgent)){var version=new Number(RegExp.$1);if(version>=2&&version<=3.5)
return true;}
if(/MSIE (\d+\.\d+);/.test(userAgent)){var version=new Number(RegExp.$1)
if(version>=6&&version<=8)
return true;}
return false;}
ready();}
function LoginForm(){var remember=cookieUtils.getRememberMe();function ready(){$("#login").submit(onLogin);if(toBool(remember)){var loginName=cookieUtils.getLoginName();$("#loginName").val(loginName);$("#remember").attr("checked","on");}}
var onLoginSuccess=this.onLoginSuccess=function(xml){$('body').css('cursor','default');var user=parseUser(xml);if(toBool(user.locked)){accountPendingDialog.showDialog("#accountPendingMessage");$('body').css('cursor','default');return;}
if(!invalidBrowserDialog.validBrowser()){invalidBrowserDialog.show(user);}else{login.handleLogin(user);}}
function onLogin(){var uuid=cookieUtils.getInvitationUUID();var targetUrl;if(uuid!='')
targetUrl=apiUrl+"/authenticate?resend=true&uuid="+uuid;else
targetUrl=apiUrl+"/authenticate?resend=true";$("#login").RESTSubmit({rootName:"login",url:targetUrl,success:onLoginSuccess,validate:validate,rootName:"user",error:error});}
function validate(){var loginName=$("#loginName")[0].value;$('body').css('cursor','progress');cookieUtils.setRememberMe($("#remember")[0].checked);}
function error(resp){$("#loginStatus").html(resp.responseText);$('body').css('cursor','default');}
ready();}
function ForgotPassword(){var transactionDialog;function ready(){transactionDialog=new TransactionDialog("#forgotPasswordForm");$("#resetPasswordLink").click(show);$('#forgotPasswordForm').submit(submit);}
function show(e){e.preventDefault();var opts={containerId:"modalForgotPassword",onClose:transactionDialog.close,persist:true,onShow:transactionDialog.reset};$('#forgotPasswordDialog').modal(opts);transactionDialog.showMain();}
function validate(tree){if(tree.loginName=='')
return"Please enter appropriate login name.";transactionDialog.showWaiting();}
function submit(e){e.preventDefault();var showResult=transactionDialog.getShowResult();$("#forgotPasswordForm").RESTSubmit({url:apiUrl+"/users/send_reset_password_token",success:function(text){showResult("Please check your email for details to reset your password.");},error:function(response){showResult(response.responseText
+"<br> email could not be sent");},dataType:"text",status:"forgotPassword_status",rootName:"user",validate:validate});}
ready();}
function TwitterBasedLogin(){var twitterAuthWait;var requestToken;function ready(){twitterAuthWait=new TwitterAuthWait(finishAuthentication);$("#twitterLoginLink").click(startTwitterLogin);}
function startTwitterLogin(){function onStartAuthentication(_requestToken){requestToken=_requestToken;}
twitterAuthWait.startAuthentication(onStartAuthentication);cookieUtils.setRememberMe($("#remember")[0].checked);}
var finishAuthentication=this.finishAuthentication=function(){console.log("Finishing twitter Login authentication process")
var targetUrl=apiUrl+"/twitter/loginUser";var json={twitterRequestToken:requestToken};var options={url:targetUrl,type:"POST",async:false,success:processResult,dataType:"xml"}
RESTPost(json,options);}
function processResult(xml){var user=parseUser(xml);login.handleLogin(user);}
ready();}
