$(function() {
  var usernameInput = $('#userName');

  var usernameSaveCheckBox = $('#usernameSave');
  usernameSaveCheckBox.change(function() {
    var checkboxTrigger = $('#checkboxTrigger');
    if ($(this).prop('checked')) {
      checkboxTrigger.addClass('checkbox-icon-checked');
    } else {
      checkboxTrigger.removeClass('checkbox-icon-checked');
      //$.removeCookie("usernameSave");
    }
  });

  var userZkussCheckBox = $("#userZkuss");
  userZkussCheckBox.change(function () {
    var checkboxTrigger = $("#checkboxTrigger2");
    if ($(this).prop("checked")) {
      checkboxTrigger.addClass("checkbox-icon-checked");
    } else {
      checkboxTrigger.removeClass("checkbox-icon-checked");
    }
  });

  var usernameCookie = $.cookie('usernameSave');
  //根据cookie初始化用户名
  if (usernameCookie && usernameCookie !== '0') {
    usernameSaveCheckBox.prop('checked', true).change();
    usernameInput.val(usernameCookie);
  } else {
    usernameSaveCheckBox.prop('checked', false).change();
  }

  //username输入栏失焦时判断验证次数
  usernameInput.blur(function() {
    var userNameVal = usernameInput.val();
    if (userNameVal) {
      $.ajax({
        url: '/login/checkUserName',
        data: 'username=' + userNameVal + '',
        type: 'GET',
        dataType: 'json',
        success: function(data) {
          window.verifyCaptcha = data.captcha
          // popupCheck()
          if(window.isZkeyVerify){
            return
          }
          if (data.captcha) {
            $('.captcha-deck').show();
            $('#jyCaptcha').show();
          }
        },
      });
    }
  });
  //验证账号是否需要验证码
  if (usernameInput.val()) {
    usernameInput.blur();
  }

  function popupCheck() {
    var username = $('input[name="username"]').val();
    var password = $('input[name="password"]').val();
    var isVerify = window.verifyCaptcha && window.isZkeyVerify
    if(username && password && isVerify){
      $_sendCode.click()
    }
  }
  var once = false

  $("#passwordInput").focus(function () {
    once = false
  })

  $("#passwordInput").blur(function () {
    if(once){
      return
    }
    popupCheck()
    once = true
    $(this).blur()
  })

  //提交表单
  var $loginForm = $('#loginForm');
  var $_loginSubmit = $('#loginSubmit');
  var $_sendCode = $("#sendCode")
  var $_csrfId = $("#csrf_id")
  var $_slideToken = $("#v_token")
  var saveLoginResult={}
  $_loginSubmit.on('click', function(e) {
    $("#passwordInput").blur() //防止密码框失去焦点再次弹出zkeys验
    var uName = $loginForm.find('input[name=username]').val()
    var uPass = $loginForm.find('input[name=password]').val()
    //当登录按钮被禁用时,返回
    if ($_loginSubmit.hasClass('disabled')) {
      return false;
    }
    e.preventDefault();
    if(!uName || !uPass){
      return NY.warn('账号密码不能为空');
    }
    //用户名cookie保存
    if (usernameSaveCheckBox.prop('checked')) {
      if (usernameInput.val()) {
        $.cookie('usernameSave', usernameInput.val(), {
          expires: 30,
          path: '/',
        });
      }
    } else {
      $.removeCookie('usernameSave', { path: '/' });
    }

    // 为了提交特殊符号比如 +， 特别处理数据
    var submitSerialArray = [
      'redirectURL=' + $loginForm.find('input[name=redirectURL]').val(),
      '&username=' + $loginForm.find('input[name=username]').val(),
      '&password=' +
        encodeURIComponent($loginForm.find('input[name=password]').val()),
      '&captcha=' + $loginForm.find('input[name=captcha]').val(),
      // '&saveNull=' + ($loginForm.find('input[name=saveNull]').prop('checked') ? 1 : ""),
      '&saveZkuss='+($loginForm.find('input[name=saveZkuss]').prop('checked') ? 1 : ''),
    ];
    if(window.isZkeyVerify){
      var csrf_id = $_csrfId.val();
      var isVerify = window.verifyCaptcha && window.isZkeyVerify
      if($(".z-verify-container").length){
        return
      }
      if(isVerify && uName && uPass && !csrf_id){
        return $_sendCode.click()
      }
      submitSerialArray.push('&csrf_id='+csrf_id, '&v_token='+$_slideToken.val())
    }
    //点击登录之后禁用登录按钮
    $_loginSubmit.val('登录中...').addClass('disabled');

    var $_errorInfo = $('#errorInfo');
    $.ajax({
      type: 'post',
      url: '/login/login.html',
      data: submitSerialArray.join(''),
      // complete:function(){
      //   $_csrfId.val('')
      //   $_slideToken.val('')
      // },
      success: function(dataString) {
        //ajax返回之后,恢复登录按钮
        $_loginSubmit.val('登录').removeClass('disabled');

        var responseData = dataString;
        saveLoginResult = responseData
        if (!responseData.result) {
          var code = responseData.code;
          $_errorInfo.text(responseData.text).show();
          if (window.gt) {
            window.gt.reset();
          }

          if (code == 2 || code == 4) {
            $loginForm
              .find('input[name=username]')
              .focus()
              .parent()
              .addClass('input-focus-error');
          }
          if (code == 3) {
            $loginForm
              .find('input[name=password]')
              .focus()
              .parent()
              .addClass('input-focus-error');
          }
          if (code == 5) {
            $loginForm
              .find('input[name=captcha]')
              .focus()
              .parent()
              .addClass('input-focus-error');
          }
          if (code == 1) {
            $_errorInfo.hide();
            NY.warn(responseData.text);
          }

          if (responseData.captchaRefresh) {
            $('.login-content .show-captcha').click();
          }
          if (responseData.captchaRequire || window.verifyCaptcha) {
            $('.captcha-deck').show();
            if(window.isZkeyVerify){
              if(e.originalEvent){
                window.verifyCaptcha = true
                $_sendCode.click();
              }
            }else{
              $('#jyCaptcha').show();
            }
          }
          $.removeCookie('usernameSave', { path: '/' });

          // 被锁定账号的情况
          if (responseData.is_lock && responseData.lock_reason.length > 0) {
            $.dialog({
              height: 180,
              width: 500,
              title: '账号锁定提示',
              content:
                "<div style='min-width:400px;'>您的账号已被锁定，原因：</div><br><div style='line-height: 1.8em;'>" +
                responseData.lock_reason +
                '</div>',
            });
          }
          if(responseData.secondCheck){
            $('.login-content').hide();
            $('.verify-content').show();
            $('.verify-phone').text("手机号码："+responseData.mobile);
            $('#verify-errorInfo').text(responseData.text).show();
            $('.refresh-captcha').trigger('click');
          }
        } else {
          NY.success(responseData.text);
        }
        if (responseData.url) {
          var jumpDelay = responseData.time * 1000 || 2000;
          setTimeout(function() {
            window.location.href = responseData.url;
          }, jumpDelay);
        }
      },
      error: function() {
        NY.showBusy();
        //ajax超时之后,恢复登录按钮
        $_loginSubmit.val('登录').removeClass('disabled');
      },
      complete: function() {
        $_csrfId.val('')
        $_slideToken.val('')
      },
    });
    return false;
  });
  //输入框focus样式
  $loginForm
    .on('focus', '.input-focus-handle', function() {
      $(this)
        .parent()
        .addClass('input-outer--focus');
    })
    .on('blur', '.input-focus-handle', function() {
      $(this)
        .parent()
        .removeClass('input-outer--focus');
    });

  //回车提交  jquery ui 自动回车提交，这里不需要了
  /*$('body').keydown(function(e) {
	 if(e.keyCode == 13) {
	 if(!$(".aui_state_lock").length) {
	 $_loginSubmit.trigger("click");
	 }
	 }
	 });*/

  // 用户名的邮箱列表自动完成
  var suggestDomainList = [
    '@qq.com',
    '@163.com',
    '@126.com',
    '@sina.com',
    '@sina.cn',
    '@gmail.com',
    '@hotmail.com',
    '@yeah.net',
    '@sohu.com',
    '@21cn.com',
    '@sogou.com',
    '@51uc.com',
    '@outlook.com',
    '@live.com',
  ];
  usernameInput.autocomplete({
    appendTo: '#emailAutoComplete',
    source: function(request, response) {
      var term = request.term;

      // 只有当用户输入非数字（即不使用手机和会员ID），才提醒邮箱后缀列表
      if ($.isNumeric(term)) {
        response([]);
        return;
      }

      var termSplit = term.split('@');
      var username = termSplit[0];
      var domainName = termSplit[1] || '';

      var dataList = $.map(suggestDomainList, function(suggestDomain) {
        if (suggestDomain.indexOf(domainName) != -1) {
          return {
            term: term,
            inputUsername: username,
            inputDomainName: domainName,
            // value 为了在input中显示
            value: username + suggestDomain,
            // cut '@'
            suggestDomain: suggestDomain.slice(1),
          };
        } else {
          return;
        }
      });

      response(dataList.slice(0, 10));
    },
  });

  var TEXT_HIGHLIGHT_CLASSNAME = 'ui-autocomplete-text-highlight';
  usernameInput.autocomplete('instance')._renderItem = function(ul, item) {
    var $_li = $('<li>');
    var userInputValue = item.term;
    var inputDomainName = item.inputDomainName;
    var suggestDomain = item.suggestDomain;

    // append highlight username
    var $_inputUsernameSpan = $('<span>')
      .addClass(TEXT_HIGHLIGHT_CLASSNAME)
      .html(item.inputUsername);
    $_li.append($_inputUsernameSpan);

    var $_atSpan = $('<span>').html('@');
    // 当用户输入'@'时，将@也高亮
    if (userInputValue.indexOf('@') != -1) {
      $_atSpan.addClass(TEXT_HIGHLIGHT_CLASSNAME);
    }
    $_li.append($_atSpan);

    // 为 suggestDomain 部分 进行高亮设置
    $.each(suggestDomain.split(''), function(i, charValue) {
      var $_charSpan = $('<span>').html(charValue);

      if (inputDomainName.indexOf(charValue) != -1) {
        $_charSpan.addClass(TEXT_HIGHLIGHT_CLASSNAME);
      }

      $_li.append($_charSpan);
    });
    $_li.appendTo(ul);

    return $_li;
  };

  // 提示密码输入框大写锁定开启功能
  var detectCapsLock = function(t) {
    var e = t.keyCode || t.which,
      i = t.shiftKey || 16 == e || !1;
    return (e >= 65 && 90 >= e && !i) || (e >= 97 && 122 >= e && i) ? !0 : !1;
  };

  var $_capsLockRemind = $('#capsLockRemind');
  $('#passwordInput')
    .keypress(function(e) {
      detectCapsLock(e) ? $_capsLockRemind.show() : $_capsLockRemind.hide();
    })
    .blur(function() {
      $_capsLockRemind.hide();
    });



    // 发送短信验证码
    $("#sendcodeJy").on('click', function () {
      if (!$('#secondCaptcha').val()) {
        NY.warn('请先填写图片验证码', 1.5);
        // captchaObj.reset();
        return false;
      }

      $.ajax({
        url: '/home/Login/sendMobileCode',
        type: 'POST',
        dataType: 'json',
        data: {
          captcha: $('#secondCaptcha').val(),
        },
        success: function (data) {
          if (data.result) {
            //   inputCaptchaBox.close();
            NY.success(data.text, 2);
            // 验证码发送后倒计时60s
              sendCountdown(60);
          } else {
            $('#verify-errorInfo').text(data.text).show();
            $('.refresh-captcha').trigger('click');
            $('#secondCaptcha').focus()
          }
        },
      });
      // }
    });

    var SendcodeJy = $('#sendcodeJy');
    // 验证码发送后倒计方法
    var sendCountdown = function(countdownTime) {
      if (countdownTime > 0) {
        SendcodeJy.attr('disabled', true);
        SendcodeJy.addClass('send-captcha-disabled');
        SendcodeJy.val(countdownTime-- + '秒后重新发送');
        var timer = setTimeout(function() {
          sendCountdown(countdownTime);
        }, 1000);
      } else {
        $('.refresh-captcha').trigger('click');
        SendcodeJy.attr('disabled', false);

        SendcodeJy.removeClass('send-captcha-disabled');
        SendcodeJy.val('点击再次发送');
        countdownTime = 60;
      }
    };


    // 更换其他账号
    $('#changeLoginType').click(function(){
      $('.login-content').show();
      $('.verify-content').hide();
    })


    // 提交二次登录
    var $secondLogin = $('#secondLogin');
    $secondLogin.on('click', function(e) {
      if(!$('input[name="verifyCode"]').val()){
        NY.warn('请先填写短信验证码', 1.5);
        // captchaObj.reset();
        return false;
      }

      e.preventDefault();

      //点击登录之后禁用登录按钮
      $secondLogin.val('验证中...').addClass('disabled');

      var $verify_errorInfo = $('#verify-errorInfo');

      $.ajax({
        type: 'post',
        url: '/home/Login/secondLogin',
        data:{
          verifyCode:$('input[name="verifyCode"]').val()
        },
        success: function(dataString) {
          //ajax返回之后,恢复登录按钮
          $secondLogin.val('验 证').removeClass('disabled');

          var responseData = dataString;
          if (!responseData.result) {
            var code = responseData.code;
            $verify_errorInfo.text(responseData.text).show();
            if (code == 1) {
              $verify_errorInfo.hide();
              NY.warn(responseData.text);
            }

            if (responseData.captchaRefresh) {
              $('.verify-content .show-captcha').click();
            }

          } else {
            NY.success(responseData.text);
          }
          if (responseData.url) {
            var jumpDelay = responseData.time * 1000 || 2000;
            setTimeout(function() {
              window.location.href = responseData.url;
            }, jumpDelay);
          }
        },
        error: function() {
          NY.showBusy();
          //ajax超时之后,恢复登录按钮
          $secondLogin.val('验 证').removeClass('disabled');
        },
      });
      return false;
    });

  //增加二维码登录
  function loginModeFun() {
    var $btnLoginMode=$(".login-mode-inner")

    $btnLoginMode.click(function() {
      var $this=$(this)
      var isPasswordLogin=$this.data('ispasswordlogin')
      var $qrcodeLogin=$("#qrcodeLogin")
      var $passwordLogin=$("#passwordLogin")

      if(isPasswordLogin){
        $passwordLogin.show()
        $qrcodeLogin.hide()
      }else{
        $qrcodeLogin.show()
        $passwordLogin.hide()
        getWxLoginQrcode()
      }
    })
$('.weixin').on('click',function(){
  $(".login-mode-inner").trigger('click');
})

    function getWxLoginQrcode() {
      var wxQrcodeImage=$("#wx-qrcode-image");
      $.ajax({
        url: '/wxlogin',
        success: function(data) {
           new WxLogin
            ({
                id:"wx-qrcode-image",//div的id
                appid: data.url.appid,
                scope: "snsapi_login",//写死
                redirect_uri: data.url.redirect_uri,
                state: data.url.state,
                style: "black",//二维码黑白风格
                href:'data:text/css;base64,LmltcG93ZXJCb3ggLnRpdGxlLC5pbXBvd2VyQm94IC5pbmZvewogIGRpc3BsYXk6IG5vbmU7Cn0KLmltcG93ZXJCb3ggLnFyY29kZXsKICB3aWR0aDogMTYwcHg7CiAgaGVpZ2h0OiAxNjBweDsKICBtYXJnaW4tdG9wOiAtMnB4OwogIG1hcmdpbi1sZWZ0OiAtNXB4OwogIGJvcmRlcjogbm9uZTsKfQoKLndldWlfbXNnewogIHBhZGRpbmctdG9wOiA0NXB4Owp9Cgoud2V1aV9pY29uX21zZzpiZWZvcmV7CiAgZm9udC1zaXplOiA1MHB4Owp9Cgoud2V1aV9tc2cgLndldWlfbXNnX3RpdGxlewogIGZvbnQtc2l6ZTogMTJweDsKfQo='
            })
          // if(data.result){
          //   return data.url ? wxQrcodeImage.attr('src',data.url) : NY.warn('未获取到url')
          // }
          // NY.warn(data.text)
        },
        error: function() {
        },
      });
    }
  }
  loginModeFun()
});
