﻿
login =
{
  handleOpen : function(popup)
  {
    if ($('.loggedInAs').is(':reallyVisible'))
    {
      $('.hiddenAction').val('logout');
      document.forms[0].action = $('#formAction').val();
      document.forms[0].submit(); 
    }
    else
    {
      //reset form
      $('#loginMessage').html('');
      $('#loginUserName').val('');
      $('#loginPassword').val('');
      $('#loginUserName').removeClass('invalid');
      $('#loginPassword').removeClass('invalid');
      
      //centering with css
      popup.centerPopup();
  		
      //load popup
      popup.loadPopup();
    }
  },
  
  postLoad : function(popup)
  {
    $("#loginUserName").focus();
  },
  
  postInit : function(popup)
  {
    $('#loginButton').bind('click', {popup: popup}, login.submitLogin);
    $('#loginButton').bind("keypress", {popup: popup}, login.keyDownSubmitCheck);
    $('#loginUserName').bind("keypress", {popup: popup}, login.keyDownSubmitCheck);
    $('#loginPassword').bind("keypress", {popup: popup}, login.keyDownSubmitCheck);
  },

  keyDownSubmitCheck : function(event) 
  {
    var popup = event.data.popup;

    if(event.keyCode == 13 && popup.popupStatus == 1)
    {
      login.submitLogin(event);
      event.preventDefault();
    }
  },

  submitLogin : function(event)
  {
    var popup = event.data.popup;

    $un = $('#loginUserName');
    $p = $('#loginPassword');
    $r = $('#rememberMe').is(':checked');

    //Validation
    var msg = '';
    $un.removeClass('invalid');
    $p.removeClass('invalid');

    if ($.trim($un.val()).length == 0) {
      msg += 'Username is required.<br />';
      $un.addClass('invalid');
    }

    if ($.trim($p.val()).length == 0) {
      msg += 'Password is required.<br />';
      $p.addClass('invalid');
    }

    if (msg.length > 0) {
      $('#loginMessage').html(msg);
      return;
    }

    $('#loginMessage').html('');
    
    
    $.ajax({
      type: "POST",
      url: $currentPageName + "/LoginUser",
      data: "{ 'userName': '" + $un.val() + "', 'password': '" + $p.val() + "', 'rememberMe': " + $r + "}",
      contentType: "application/json; charset=utf-8",
      dataType: "json",
      success: function(result) {
        if (result.d.ErrorMessages && result.d.ErrorMessages.length > 0)
        {
          $('#loginMessage').html(result.d.ErrorMessages[0]);
        }
        else 
        {
          if ($('.doReloadOnLogin').val() == 'true')
          {
            location.reload();
          }
          else
          {
            popup.disablePopup();
            $('.loggedInUserName').html(result.d.Value);
            $('.loginLabel').text('Logout');
            $('.loggedInAs').show('slow');
          }
        }
        
      },
      error: function(result) {
        $('#loginMessage').html(result.status + ' ' + result.statusText);
      }
    });

  }

}
