function login()
{
		
	var form = $("#frm_login");
	var realm = TremorApp.realm;
	var user = $("#emailText").val();
	var password = $("#passText").val();
	var onSuccess = $("#tremorOnSuccess").val();
	var onFail = $("#tremorOnFail").val();
	var next = 'stockspa_request.html';
	var params={user:user,password:password,realm:realm};
	
	if((user =='') || (password =='')){
		$("#msg_loginError").html("Please enter your username and password.");
	}else{
		var resp = Tremor.Ajax.Call("authentication","Login",params,
			{
				sync:false,
				secure:true,
				
				onFail:function(resp){

					if (onFail != null){
						eval(onFail);
					}

					var e = $('#msg_loginError');
					

					if (e) {
					$("#msg_loginError").html("We're sorry. Your username and/or password is incorrect. Please try again. If you need help obtaining your password, please click <a href='../member/forgotpassword.html' style='color:red;'>forgot password.</a>");
						
					}

					Tremor.Debug.Log("login request failed","security",3); 
					
				},
				
				onSuccess: function(resp){
					var success = false;
					if (resp != null && resp.Auth != null){
						resp = resp.Auth;
						Tremor.Debug.Log("login request ok","security",4);
						Tremor.Debug.Log("login token " + resp.Token,"security",4);
						Tremor.SetAuthToken(resp.Token);
						Tremor.Debug.Log("login roles " + resp.Roles.join(','),"security",4);
						Tremor.SetAuthRoles(resp.Roles);
						
						
						if (resp.IsAuthenticated && Tremor.Security.HasRequiredRole(resp.Roles)){
							success = true;
							window.location=next;
						}
						else{
						
							$("#msg_loginError").html("We're sorry. Your username and/or password is incorrect. Please try again. If you need help obtaining your password, please click <a href='../member/forgotpassword.html' style='color:red;'>forgot password.</a>");
						}
					}

					if (!success){
						try {
							if (onFail != null){
								eval(onFail);
							}
						} 
						catch(e){}
						
						var e = $('tremorLoginError');
						
						if (e) {
							Tremor.Element.Show(e);
						}
						Tremor.Debug.Log("login request failed","security",3);
					}
				}
				
			});
	}
}
