function mswFormat(typ, obj){
  switch(typ) {
    case 'decimal':
      jQuery(obj).priceFormat({
        prefix             : '',
        thousandsSeparator : '',
        clearOnEmpty       : true
      });
      break;
    case 'digit':
      var inp = jQuery(obj).val();
      jQuery(obj).val(inp.replace(/[^\d]/, ''));
      break;
  }
}

function mswNewSearch() {
  jQuery('#sresults').hide();
  jQuery('#sparams').show();
}

function mswSubmit(fm, bx) {
  if (jQuery('input[name="' + bx + '"]').val() == '') {
    jQuery('input[name="' + bx + '"]').focus();
    return false;
  }
  jQuery('#' + fm).submit();
}

function mswThmBox(ac,df,fd,lng,tp,tf) {
  var cnt = jQuery('.themearea tbody tr').length;
  var js = "jQuery('.mswdatepicker_" + cnt + "').datepicker({autoClose : " + ac + ",dateFormat : '" + df + "',firstDay : " + fd + ",language : '" + lng + "',timepicker : " + tp + ",timeFormat : '" + tf + "'})";
  var lbxs = jQuery('.themearea tbody tr').last().clone();
  jQuery('.themearea tbody tr').last().after(lbxs);
  jQuery('.themearea tbody tr input[name="fm[from][]"]').last().val('');
  jQuery('.themearea tbody tr input[name="fm[to][]"]').last().val('');
  jQuery('.themearea tbody tr select[name="fm[thm][]"]').last().val('none');
  jQuery('.themearea tbody tr input[name="fm[from][]"]').last().removeClass('mswdatepicker').addClass('mswdatepicker_' + cnt);
  jQuery('.themearea tbody tr input[name="fm[to][]"]').last().removeClass('mswdatepicker').addClass('mswdatepicker_' + cnt);
  jQuery('body').append('<script>' + js + '</script>');
}

function mswSB(panel, act) {
  switch(act) {
    case 'show':
      jQuery(panel).show();
      break;
    case 'hide':
      jQuery(panel).hide();
      break;
  }
}

function mswWin(win, win2) {
  if (typeof win2 != 'undefined') {
    switch(win2) {
      case 'index.php':
        window.location = win2;
        break;
      default:
        window.location = win2;
        break;
    }
  } else {
    window.location = 'index.php?p=' + win;
  }
}

function mswSC(fld, btn) {
  if (jQuery(fld + ' input:checkbox').prop('checked') == false) {
    jQuery(fld + ' input:checkbox').prop('checked', true);
    if (typeof btn != 'undefined') {
      switch(btn) {
        case 'opbtns':
          jQuery('.' + btn).removeClass('disabled');
          break;
        default:
          jQuery('#' + btn).removeClass('disabled');
          break;
      }
    }
    if (jQuery('#' + btn + '_span').html()) {
      jQuery('#' + btn + '_span span').html(jQuery(fld + ' input:checkbox').length);
      jQuery('#' + btn + '_span').slideDown();
    }
  } else {
    jQuery(fld + ' input:checkbox').prop('checked', false);
    if (typeof btn != 'undefined') {
      switch(btn) {
        case 'opbtns':
          jQuery('.' + btn).addClass('disabled');
          break;
        default:
          jQuery('#' + btn).addClass('disabled');
          break;
      }
      jQuery('#' + btn + '_span').hide();
    }
  }
}

function mswSCG(fld, btn) {
  var cnt = 0;
  jQuery(fld + ' input:checkbox').each(function() {
    if (jQuery(this).prop('checked') == true) {
      ++cnt;
    }
  });
  if (cnt > 0) {
    switch(btn) {
      case 'opbtns':
        jQuery('.' + btn).removeClass('disabled');
        break;
      default:
        jQuery('#' + btn).removeClass('disabled');
        break;
    }
  } else {
    switch(btn) {
      case 'opbtns':
        jQuery('.' + btn).addClass('disabled');
        break;
      default:
        jQuery('#' + btn).addClass('disabled');
        break;
    }
  }
  // Button count..
  if (cnt > 0) {
    if (jQuery('#' + btn + '_span').html()) {
      jQuery('#' + btn + '_span span').html(cnt);
      jQuery('#' + btn + '_span').slideDown();
    }
  } else {
    jQuery('#' + btn + '_span').hide();
  }
}

function mswCloseSpin() {
  jQuery('body').JQLoader({
    action : 'close'
  });
}

function mswShowSpin() {
  jQuery('body').JQLoader({
    background : '#00788E',
    color      : '#fff'
  });
}

function mswAlert(txt) {
  alert(txt);
}

function mswKC(e) {
  return (e.keyCode ? e.keyCode : e.charCode);
}

function mswBoxSpin(box, act, whr) {
  switch(act) {
    case 'spin':
      jQuery('input[name="'+ box + '"]').addClass('msw-box-spinner-' + whr);
      break;
    case 'stop':
      jQuery('input[name="'+ box + '"]').removeClass('msw-box-spinner-' + whr);
      break;
    default:
      jQuery('input[name="'+ box + '"]').addClass('msw-box-spinner-' + whr);
      break;
  }
}

function mswRemBox(area, bid) {
  switch(area) {
    case 'theme':
      var n = jQuery('.themearea tbody tr').length;
      if (n > 1) {
        jQuery('.themearea tbody tr').last().remove();
      } else {
        jQuery('.themearea tbody tr input[type="text"]').val('');
        jQuery('.themearea tbody tr select').val('none');
      }
      break;
  }
}

function mswDialog(txt, msg, mtype, pms) {
  if (jQuery('.bootbox')) {
    jQuery('.bootbox').remove();
  }
  if (jQuery('.modal-backdrop')) {
    jQuery('.modal-backdrop').remove();
  }
  switch(mtype) {
    case 'confirm':
      bootbox.confirm({
        message   : msg,
        title     : '<i class="fa fa-question-circle fa-fw"></i> ' + txt,
        className : 'msw-box-question',
        onEscape  : true,
        backdrop  : true,
        callback  : function(result) {
          if (result) {
            mswAction(pms.act, pms.fld, pms.slt);
          }
        }
      });
      break;
    case 'err':
      bootbox.dialog({
        message   : msg,
        title     : '<i class="fa fa-warning fa-fw"></i> ' + txt,
        className : 'msw-box-error',
        onEscape  : true,
        backdrop  : true
      });
      break;
    default:
      bootbox.dialog({
        message   : msg,
        title     : '<i class="fa fa-check-circle fa-fw msw-green"></i> ' + txt,
        className : 'msw-box-ok',
        onEscape  : true,
        backdrop  : true
      });
      break;
  }
}

jQuery(document).on('change', ':file', function() {
  var input = jQuery(this);
  label = input.val().replace(/\\/g, '/').replace(/.*\//, '');
  var div = input.parent().parent().parent();
  jQuery.each(div, function(index) {
    jQuery('#' + jQuery(this).attr('id') + ' input[readonly="readonly"]').val(label);
    return false;
  });
});