$(function(){

  function login_protoerr(xhr,xstat,errThrown) {
    switch ( xstat ) {
      case 'timeout':
        alert('Server response delayed. Please try again in a few moments.');
        break;
      case 'parseerror':
        alert('Odd server response. Please try again in a few moments.');
      case 'error':
      case 'notmodified':
        window.location.href = 'index.php?err=' + xstat + '&msg=' + escape(errThrown) ;
        break;
      default:
        window.location.href = 'index.php';
        break;
    }
  }

  function execute_login_ajax( username, password, triggerid, logincallback ) {
		var secureAJHost = (("https:" == document.location.protocol) ? "https://www.safetysaminc.com" : "http://www.safetyservicescompany.com");
		var loginType = '';
		
		if ($('#hfLogInType').val()=='fleet') loginType =  '/apps/fm-login.php';
		else loginType =  '/apps/login.php';
		
    $.ajax({
      cache       : false,
      processData : false,
      data        : triggerid == 'Login' ? 'id='+escape(username)+'&key='+escape(password) : 'id='+escape(username)+'&action='+escape(triggerid)+'&key='+escape(password),
      url         : secureAJHost+loginType,
      type        : 'POST',
      dataType    : 'application/json',
      timeout     : 7500,
      success     : logincallback,
      error       : login_protoerr
    });
  }

  function executeSendUsername(text, xstat, xhr) {
    try {
      var jsi = jQuery.parseJSON(text);
      $('#loginButton').click();
      $('.topContent').fadeOut();
      $('.topContent').html('<p>'+jsi.message+'</p>');
      $('.topContent').fadeIn();
    } catch(e) {
      alert(text);
      $('#loginButton').click();
      window.location.reload();
    }
  }

  function executeResetPassword(text, xstat, xhr) {
    try {
      var jsi = jQuery.parseJSON(text);
      $('#loginButton').click();
      $('.topContent').fadeOut();
      $('.topContent').html('<p>'+jsi.message+'</p>');
      $('.topContent').fadeIn();
    } catch(e) {
      alert(text);
      $('#loginButton').click();
      window.location.reload();
    }
  }

  function executeRegisterNewUser(text, xstat, xhr) {
    try {
      var jsi = jQuery.parseJSON(text);
      $('#loginButton').click();
      $('.topContent').fadeOut();
      $('.topContent').html('<p>'+jsi.message+'</p>');
      $('.topContent').fadeIn();
    } catch(e) {
      alert(text);
      $('#loginButton').click();
      window.location.reload();
    }
  }

  function executeLogin(text, xstat, xhr) {
    try {
      var jsi = jQuery.parseJSON(text);
      $('#loginButton').click();
      $.cookie('sess_id',escape(jsi.sess_id),{path:'/'});
      $.cookie('sess_key',escape(jsi.sess_key),{path:'/'});
      $.cookie('user_id',escape(jsi.uname),{path:'/'});
      window.location.reload();
    } catch(e) {
      alert(text);
      $('#loginButton').click();
      window.location.reload();
    }
  }

  function do_login_LoginWrapper(trigger) {

    var triggerid = trigger.id;
    var triggerparent = $(trigger).parent();
    var username = $(triggerparent).find('#loginFormUsername').val() || '';
    var password = triggerid == 'Login' 
      ? ($(triggerparent).find('#loginFormPassword').val() || 'NOGUESS')
      : ($(triggerparent).find('#loginFormCaptcha').val() || 'NOGUESS');

    if (username.length == 0) { 
      return false;
    }
    if (triggerid == 'Login') {
      if (username.length == 0 && password.length == 0) {
        return false;
      }
      if (password.length == 0) {
        return false;
      }
      if (username.search(/\s/) != -1 || password.search(/\s/) != -1) {
        if (username.search(/\s/) != -1) {
          return false;
        }
        if (password.search(/\s/) != -1) {
          return false;
        }
      }
    }
    if ( triggerid == 'Login' ) {
      execute_login_ajax( username, password, triggerid, executeLogin  );
    } else if ( triggerid == 'ResetPassword' ) {
      execute_login_ajax( username, password, triggerid, executeResetPassword );
    } else if ( triggerid == 'SendUsername' ) {
      execute_login_ajax( username, password, triggerid, executeSendUsername );
    } else if ( triggerid == 'RegisterNewUser' ) {
      execute_login_ajax( username, password, triggerid, executeRegisterNewUser );
    } else {
      window.location.href = "index.php";
    }
    return false;
  }

  $("#logout").click(function() {
    $.cookie('buy_product', null, {path: '/'});
		$.cookie('resetauth','1',{path: '/'});
		alert('Logging out');
    window.location.href = '/';
  });

  $("#purchasehistory").click(function() {
    window.location.href = 'web-purchase-history.php';
  });

  $("#loginButton").click(function(){
    $("#loginForm").toggle();
    $("#loginButton a").toggleClass("active");
    $("#loginFormUsername").focus();
    $('[class*=controlset]').each(function(){$(this).attr('style','display:none');});
    $('.login-normal-controlset').each(function(){$(this).fadeIn();});
    $("#loginFormUsername").select();
    return false;
  });

  $(".loginButton").each(function(){
    $(this).click(function(){
      do_login_LoginWrapper(this);
      return false;
    });
  });

  $(".login-action-set").each(function(){
    $(this).click(function(){
      var actionname = this.id.replace(/^trigger-/,'login-');
      var messagename = this.id.replace(/^trigger-/,'message-');
      var captchaname = this.id.replace(/^trigger-/,'captcha-');
      $('[class*=controlset]').each(function(){$(this).attr('style','display:none');});
      $('.' + actionname).each(function(){$(this).fadeIn();});
      $('.' + messagename).each(function(){$(this).fadeIn();});
      $('#' + captchaname).each(function(){
        var tshash = new Date();
        tshash = tshash.getTime();
        $(this).attr('alt','<i>Loading image</i>');
        this.src = '/apps/login.php?r=i&h=' + SHA1(tshash + 'j') + '&a=' + actionname;
      });
      $('.login-action-set').each(function(){$(this).fadeIn();});
      $(this).fadeOut();
    });
  });

});



