function doLogin(){
    var result = valid_login.validate();
    var rememberVar = 0;
	if(result){
	   $('spinner').show();
	   $('loginBtn').hide();
	   if($('field3') != null && $('field3').checked ){ rememberVar = 1; }
	   new Ajax.Request('/login/_authenticate.cfm',
		{
			method:'get',
			parameters: { username: $F('field1'), password: hex_sha1( $F('field2') ), remember: rememberVar, appaction: 'authenticate', r: Math.random() },
			onSuccess: function(response,json){
				if(json.DATA.USERID[0] == 0){
				    if( json.DATA.DETAIL[0] == "" ) {
    				    $('flashMessage').update( json.DATA.MESSAGE[0] );
				    } else {
    					$('flashMessage').update( json.DATA.DETAIL[0] );
    				}
                    $('flashMessage').show();
                    if( $('flashMessage').hasClassName('good') ) { 
                        $('flashMessage').addClassName('bad');
                        $('flashMessage').removeClassName('good');
                    }
					new Effect.Shake('flashMessage');
					if(json.DATA.ERRORCODE[0] == 'AUTH02'){
					   $('field2').focus();
					} else {
					   $('field1').focus();
					}
					$('spinner').hide();
				    $('loginBtn').show();
				} else {
				    $('flashMessage').show();
                    if( $('flashMessage').hasClassName('bad') ) { 
                        $('flashMessage').addClassName('good');
                        $('flashMessage').removeClassName('bad');
                    }
					// do nice bits
					$('flashMessage').update( "Thanks " + json.DATA.FN[0] + ", you're now logged in... 2 secs and we'll send you right along!" );
					// hide the form
					new Effect.BlindUp('login', {duration: '0.2'});
					// wait a bit
					setTimeout( "document.location.href = reqPage", 500 );
				}
			},
			onFailure: function(response){
                $('flashMessage').show();
                if( $('flashMessage').hasClassName('good') ) { 
                    $('flashMessage').addClassName('bad');
                    $('flashMessage').removeClassName('good');
                }
				$('flashMessage').update( "Sorry, something went wrong!" );
				$('flashMessage').update( response.responseText );
				$('spinner').hide();
				$('loginBtn').show();
			}
		});
	}
}

Event.observe(window, 'load', function() {
	Event.observe('loginBtn', 'click', doLogin);
    Event.observe('login', 'keypress', function(e){ if( e.keyCode == 13 ){doLogin()} });
});
