Auth.LoginForm = iClass.create({
  show: function() {
    $modalWin.markup();
    
    var self = this;  
    var requestOptions = {
      method: 'GET',
      onComplete: function() {
        try {
          self.prepare();
          $modalWin.show();
        } catch( error ) {
          jsLog( error );
        } // trye
      } //
    }
    
    new Ajax.Updater( $modalWin.content, '/auth/login/form', requestOptions );
  }, // show
  
  prepare: function() {
    $( '_loginFormRedirectInput' ).value = location.href;
    
    this.validationMarkuper = new DM.Validation.Markuper({
      formTable      : $( '_authLoginFormTable' ),
      validationRows : [ 'login', 'password' ],
      validationMsgs : [ "введіть ім'я користувача", 'введіть пароль' ]
    });
  }, // prepare
  
  submit: function( submitBtn ) {
    var loginInput  = $( '_loginFormLoginInput' );
    var passwdInput = $( '_loginFormPasswdInput' );
    
    var isValid = this.validationMarkuper.update({
      'login'            : ( loginInput.value == '' ),
      'password'         : ( passwdInput.value == '' )
    });
    
    if ( isValid ) smartSubmit( submitBtn );
  } // submit
}); // Auth.LoginForm


Auth.RegisterForm = iClass.create({
  initialize: function() {
  }, // initialize
  
  show: function() {
    $modalWin.markup();
    
    var self = this;  
    var requestOptions = {
      method: 'GET',
      onComplete: function() {
        try {
          self.prepare();
          $modalWin.show();
        } catch( error ) {
          jsLog( error );
        } // trye
      } //
    }
    
    new Ajax.Updater( $modalWin.content, '/auth/register/form', requestOptions );
  }, // show

  prepare: function() {
    this.validationMarkuper = new DM.Validation.Markuper({
      formTable      : $( '_authRegisterFormTable' ),
      validationRows : [ 'login', 'password', 'password_confirm', 'fullname', 'email', 'email_confirm' ],
      validationMsgs : [
        "введіть ім'я користувача",
        [ 'введіть пароль', 'введені паролі не співпадають' ],
        '',
        'введіть ПІБ',
        [ 'введіть E-mail', 'введені E-mail-адреси не співпадають' ],
        ''
      ]
    });
  }, // prepare
  
  submit: function( submitBtn ) {
    var loginInput         = $( '_registerFormLoginInput' );
    var passwdInput        = $( '_registerFormPasswdInput' );
    var passwdConfirmInput = $( '_registerFormPasswdConfirmInput' );
    var fullnameInput      = $( '_registerFormFullnameInput' );
    var emailInput         = $( '_registerFormEmailInput' );
    var emailConfirmInput  = $( '_registerFormEmailConfirmInput' );
    
    var passwdIsEmpty     = passwdInput.value == '';
    var passwdIsConfirmed = !passwdIsEmpty && ( passwdInput.value != passwdConfirmInput.value );
    
    var emailIsEmpty     = emailInput.value == '';
    var emailIsConfirmed = !emailIsEmpty && ( emailInput.value != emailConfirmInput.value );
    
    var isValid = this.validationMarkuper.update({
      'login'    : ( loginInput.value == '' ),
      'password' : [ passwdIsEmpty, passwdIsConfirmed ],
      'fullname' : ( fullnameInput.value == '' ),
      'email'    : [ emailIsEmpty, emailIsConfirmed ]
    });
    
    if ( isValid ) smartSubmit( submitBtn );
  }, // submit
  
  success: function() {
    var self = this;  
    var requestOptions = {
      method: 'GET'
    }
    
    new Ajax.Updater( $modalWin.content, '/auth/register/success', requestOptions );
  } // success
}); // Auth.RegisterForm


Auth.User = iClass.create({ 
  showMessages: function() {
    location.href = '/online_reception/messages/';
  }, // showMessages
  
  logout: function() {
    var requestParams = {
      method: 'GET',
      parameters: { noredirect : true },
      onComplete: function() {
        location.reload();
      } // onComplete
    }; // var requestParams
    
    new Ajax.Request( '/auth/logout', requestParams );
  } // logout
}); // Auth.User


$user         = new Auth.User();
$loginForm    = new Auth.LoginForm();
$registerForm = new Auth.RegisterForm();
