/* Ops */

jQuery.ajaxSetup({
  headers : {
    'X-CSRF-TOKEN' : jQuery('meta[name="x-header-csrf"]').attr('content')
  }
});

function _aff_export(qrys) {
  jQuery(function() {
    _aff_show_spinner();
    jQuery.ajax({
      url      : 'index.php',
      data     : 'ajax-ops=export-csv&qs=' + qrys,
      dataType : 'json',
      cache    : false,
      success  : function (data) {
        _aff_close_spinner();
        switch(data['status']) {
          case 'err':
            _aff_dialog(data['txt'][0], data['txt'][1], data['status']);
            break;
          case 'rdr':
            _aff_winloc(data['loc']);
            break;
        }
      }
    });
  });
  return false;
}

function _aff_dl(id) {
  jQuery(function() {
    _aff_show_spinner();
    jQuery.ajax({
      url      : 'index.php',
      data     : 'ajax-ops=dl&id=' + id,
      dataType : 'json',
      cache    : false,
      success  : function (data) {
        _aff_close_spinner();
        switch(data['status']) {
          case 'err':
            _aff_dialog(data['txt'][0], data['txt'][1], data['status']);
            break;
          case 'rdr':
            _aff_winloc(data['loc']);
            break;
        }
      }
    });
  });
  return false;
}

function _aff_new_pass(op) {
  switch(op) {
    case 'load':
      jQuery('#passarea .panel-footer button:nth-child(2)').html('<i class="fa fa-refresh fa-fw fa-spin"></i>');
      setTimeout(function() {
        jQuery(function() {
          jQuery.ajax({
            url      : 'index.php',
            data     : 'ajax-ops=forgot-load',
            dataType : 'json',
            cache    : false,
            success  : function (data) {
              jQuery('#passarea .panel-footer button:nth-child(1)').html('<i class="fa fa-check fa-fw"></i> ' + data['lang'][1]);
              jQuery('#passarea .panel-footer button:nth-child(2)').html('<i class="fa fa-times fa-fw"></i> ' + data['lang'][0]);
              jQuery('#passarea .panel-footer button:nth-child(1)').attr('data-processor', 'pass-rem');
              jQuery('#passarea input[name="fm[em]"]').attr('data-click-event', 'pass-rem');
              jQuery('#passarea input[name="fm[pw]"]').attr('data-click-event', 'pass-rem');
              jQuery('#passarea .panel-footer button:nth-child(2)').attr('data-op', 'cancel');
              // If the captcha is loaded, make sure the captcha box isn't hidden
              if (jQuery('.c_area').html()) {
                jQuery('#passarea div[class="form-group"]:nth-child(2)').hide();
                jQuery('.c_area div[class="form-group"]').show();
              } else {
                jQuery('#passarea div[class="form-group"]:nth-child(2)').hide();
              }
              setTimeout(function() {
                if (jQuery('#passarea input[name="fm[em]"]').val() == '') {
                  jQuery('#passarea input[name="fm[em]"]').focus();
                }
              }, 400);
            }
          });
        });
      }, 500);
      break;
    case 'cancel':
      window.location.reload();
      break;
  }
  return false;
}

function _aff_processor(act) {
  // For confirm of closure
  if (act == 'close-acc') {
    var act = 'close';
  }
  if (act == 'close') {
    _aff_dialog(mswlang.sm, mswlang.aus, 'confirm');
    return false;
  }
  if (act == 'create') {
    // For cleantalk..append hidden var..do not change
    var cap_area = 'cpt_create';
    var d = new Date();
    if (jQuery('input[name="fm[ct_ts]"]')) {
      jQuery('input[name="fm[ct_ts]"]').remove();
    }
    jQuery('#msw_fm_area form').append('<input type="hidden" name="fm[ct_ts]" value="' + d.getFullYear() + '">');
  } else {
    var cap_area = 'cpt_login';
  }
  switch(act) {
    case 'login':
      if (jQuery('input[name="fm[em]"]').val() == '') {
        jQuery('input[name="fm[em]"]').focus();
        return false;
      }
      if (jQuery('input[name="fm[pw]"]').val() == '') {
        jQuery('input[name="fm[pw]"]').focus();
        return false;
      }
      break;
    case 'pass-rem':
      if (jQuery('input[name="fm[em]"]').val() == '') {
        jQuery('input[name="fm[em]"]').focus();
        return false;
      }
      break;
    case 'create':
      if (jQuery('input[name="fm[fn]"]').val() == '') {
        jQuery('input[name="fm[fn]"]').focus();
        return false;
      }
      if (jQuery('input[name="fm[ln]"]').val() == '') {
        jQuery('input[name="fm[ln]"]').focus();
        return false;
      }
      if (jQuery('input[name="fm[em]"]').val() == '') {
        jQuery('input[name="fm[em]"]').focus();
        return false;
      }
      break;
  }
  if (typeof jQuery('input[name="fm[cpt]"]').html() != 'undefined') {
    if (jQuery('input[name="fm[cpt]"]').val() == '') {
      jQuery('input[name="fm[cpt]"]').focus();
      return false;
    }
  }
  jQuery(function() {
    _aff_show_spinner();
    jQuery.ajax({
      type     : 'POST',
      url      : 'index.php?ajax-ops=' + act,
      data     : jQuery('#msw_fm_area > form').serialize(),
      cache    : false,
      dataType : 'json',
      success  : function (data) {
        _aff_close_spinner();
        switch(data['status']) {
          case 'ok':
            _aff_dialog(data['txt'][0], data['txt'][1], data['status']);
            if (act == 'create' || act == 'pass-rem') {
              jQuery('input[type="text"]').val('');
            }
            break;
          case 'err':
            _aff_dialog(data['txt'][0], data['txt'][1], data['status']);
            if (data['cp_area'] && jQuery('.' + cap_area + ' input[name="fm[cpt]"]')) {
              _aff_captcha(data['cp_area']);
            }
            break;
          case 'rdr':
            _aff_winloc(data['loc']);
            break;
          default:
            if (data['rcap'] == 'yes' && data['cp_area']) {
              _aff_captcha(data['cp_area']);
            }
            break;
        }
      }
    });
  });
  return false;
}

function _aff_nav_menu_state(pnl) {
  jQuery(function() {
    jQuery.ajax({
      url      : 'index.php',
      data     : 'ajax-ops=menu-state&state=' + pnl,
      dataType : 'json',
      cache    : false
    });
  });
  return false;
}

// Events related to logins
jQuery('body').on('keypress', '[data-click-event]', function(e) {
  var ev = jQuery(this).attr('data-click-event');
  if (e.which == 13) {
    switch(ev) {
      case 'login':
      case 'pass-rem':
        _aff_processor(ev);
        break;
    }
  }
});

jQuery('[data-export]').on('click', function(e) {
  var ev = jQuery(this).attr('data-export');
  _aff_export(ev);
});

jQuery('[data-dl]').on('click', function(e) {
  var ev = jQuery(this).attr('data-dl');
  _aff_dl(ev);
});

jQuery('[data-processor]').on('click', function(e) {
  var ev = jQuery(this).attr('data-processor');
  switch(ev) {
    case 'new-pass':
      _aff_new_pass(jQuery(this).attr('data-op'));
      break;
    default:
      _aff_processor(ev);
      break;
  }
});