postLogin = null;

window.addEvent('domready', function(){
//                    $('registerBtn').addEvent('click', showReg);
    $('loginBtn').addEvent('click', login);
                });

function showLogin(){
    clearLoginFields();
    hideReg();
    centerLogin();
    Popup.show('login');
}

function hideLogin(){
    $('login')
        .fade('out');

}

function clearLoginFields(){
    var form = $('loginForm');
    form.getElements('input').each(function(el){
                                       if (el.type == 'text'
                                           || el.type == 'password'){
                                           el.value = '';
                                       }
                                   });
}

function centerLogin(){
    return center($('login'));
}

function showReg(){
    var form = $('loginForm');
       
    $('loginBtn').removeEvents('click')
        .addEvent('click', register)
        .disabled = true;
    
    var fx = new Fx.Morph($('login'));
    var fx2 = new Fx.Morph($('regForm'));
    fx.start({height: 300})
        .chain(function(){
                   fx2.start({'height': 80})
                       .chain(function(){
                                  center($('login'), true);
                                  // $('emailOr').fade('out');

                                  $('registerBtn').empty()
                                      .appendText('Cancel')
                                      .removeEvents('click')
                                      .addEvent('click', hideReg);

                                  form.a.value = 'r';
                                  $('loginBtn').disabled = false;
                              });
               });


}

function hideReg(){
    $('loginBtn').removeEvents('click')
        .addEvent('click', login)
        .disabled = true;
    
    /* $('registerBtn').empty()
        .appendText('Register')
        .removeEvents('click')
        .addEvent('click', showReg);
    */
    //$('emailOr').fade('in');

    $('regForm').morph({'height': 0});
    $('login').morph({'height': 200});

    var form = $('loginForm');
    form.a.value = 'l';    
    $('loginBtn').disabled = false;
}


function login(){
    var url = 'loginSvc.php';

    var req = new Request.JSON({url: url,
                                onSuccess: function(message){
                                    if (message){
                                        if (message.status == 'success'){
                                            authed = true;
                                            
                                            if (!postLogin){
                                                location.reload();
                                            }
                                            else {
                                                Popup.hide('login');
                                                postLogin();
                                            }
                                        }
                                        else {
                                            alert(message.reason);
                                        }
                                    }
                                }
                               });
    req.send("a=l&u=" + $('loginName').value + "&e=&p=" + $('loginPass').value);

}

function register(){
    var url = 'loginSvc.php';

    var form = $('loginForm');
    
    if (form.loginPass.value != form.loginPass2.value){
        alert("Passwords do not match");
        return false;
    }

    var fd = new DaxForm(form)
        .addEvent('success', function(message){
                      if (message){
                          if (message.status == 'success'){
                              hideReg();
                              clearLoginFields();
                              alert(message.data);

                          }
                          else {
                              alert(message.reason);
                          }
                      }
                  }
                 );

    fd.setFieldNames({'loginFirstName': 'First Name',
                      'loginLastName': 'Last Name',
                      'loginName': 'Username',
                      'loginPass': 'Password',
                      'loginEmail': 'Email'
                     });

    var errors = fd.validate({
                                 'loginFirstName': ['notempty'],
                                 //'lastName': ['notempty'],
                                 'loginName': ['notempty'],
                                 'loginPass': ['notempty'],
                                 'loginEmail': ['email']
                             });

    if (errors.length == 0){
        fd.send(url);
    }
    else {
        fd.displayErrors(errors);
    }
}

/**
 * 
 */
function logout(){
    var url = 'loginSvc.php';
    
    var req = new Request.JSON({url: url,
                                onSuccess: function(message){
                                    if (message.status == 'success'){
                                        location.reload();
                                    }
                                }
                               });
                               

    req.send("a=lo");
}
