Difference between revisions of "MediaWiki:Common.js"

From Observer GigaFlow Support | VIAVI Solutions Inc.
Jump to: navigation, search
(Blanked the page)
Line 1: Line 1:
function timeStamp_AttackStrategies_js() {
 
  return "2014.07.20 00:47 (UTC-7)";
 
}
 
  
window.onload = function() {
 
  attackStrategyReset();
 
};
 
 
function attackStrategyFilter() {
 
  var minTH      = document.getElementById("min-town-hall").value;
 
  var maxTH      = document.getElementById("max-town-hall").value;
 
  var minTrophies = document.getElementById("min-trophies").value;
 
  var maxTrophies = document.getElementById("max-trophies").value;
 
  var troopFilter = $('#troop-filter-text').html();
 
  var filterType  = $('#troop-filter-type-text').html();
 
  var troops;
 
 
  if (minTH === '')
 
      minTH = 0;
 
  else
 
      minTH = Number(minTH);
 
 
  if (maxTH === '')
 
      maxTH = 99;
 
  else
 
      maxTH = Number(maxTH);
 
 
  if (minTrophies === '')
 
      minTrophies = 0;
 
  else
 
      minTrophies = Number(minTrophies);
 
 
  if (maxTrophies === '')
 
      maxTrophies = 999999;
 
  else
 
      maxTrophies = Number(maxTrophies);
 
 
  if (minTH < 0)
 
      minTH = 0;
 
 
  if (maxTH < minTH)
 
      maxTH = minTH;
 
 
  if (minTrophies < 0)
 
      minTrophies = 0;
 
 
  if (maxTrophies < minTrophies)
 
      maxTrophies = minTrophies;
 
 
  if (troopFilter.toLowerCase() === 'all')
 
      troops = true;
 
  else if (troopFilter.toLowerCase() === 'none')
 
      troops = false;
 
  else {
 
      troops = troopFilter.split(', ');
 
  }
 
 
  var tbl      = document.getElementById('attack-strategies-results');
 
  var tr        = tbl.getElementsByTagName('tr');
 
  var troopList = troopInfo('list', 'trainable');
 
 
  for (var i = 1; i < tr.length; i ++) {
 
      var td              = tr[i].getElementsByClassName('attack-strategy-hidden-field');
 
      var currMinTH      = Number(td[0].innerHTML);
 
      var currMaxTH      = Number(td[1].innerHTML);
 
      var currMinTrophies = Number(td[2].innerHTML);
 
      var currMaxTrophies = Number(td[3].innerHTML);
 
 
      if (currMinTH > maxTH ||
 
          currMaxTH < minTH ||
 
          currMinTrophies > maxTrophies ||
 
          currMaxTrophies < minTrophies)
 
        $(tr[i]).css({'display': 'none'});
 
      else if (troops === true && filterType === 'Includes')
 
        $(tr[i]).css({'display': ''});
 
      else if (troops === false && filterType === 'Excludes')
 
        $(tr[i]).css({'display': ''});
 
      else if (troops === true && filterType === 'Only')
 
        $(tr[i]).css({'display': ''});
 
      else if (troops === false && filterType === 'Includes')
 
        $(tr[i]).css({'display': 'none'});
 
      else if (troops === true && filterType === 'Excludes')
 
        $(tr[i]).css({'display': 'none'});
 
      else if (troops === false && filterType === 'Only')
 
        $(tr[i]).css({'display': 'none'});
 
      else if (filterType === 'Includes') {
 
        var include = false;
 
 
        for (var j = 0; j < troops.length; j ++) {
 
            var idx = tableIndex(troops[j]);
 
 
            if (idx >= 0 && td[idx].innerHTML === 'Yes') {
 
              include = true;
 
              break;
 
            }
 
        }
 
 
        $(tr[i]).css({'display': (include ? '' : 'none')});
 
      }
 
      else if (filterType === 'Excludes') {
 
        var include = true;
 
 
        for (var j = 0; j < troops.length; j ++) {
 
            var idx = tableIndex(troops[j]);
 
 
            if (idx >= 0 && td[idx].innerHTML === 'Yes') {
 
              include = false;
 
              break;
 
            }
 
        }
 
 
        $(tr[i]).css({'display': (include ? '' : 'none')});
 
      }
 
      else if (filterType === 'Only') {
 
        var include = false;
 
 
        for (var j = 0; j < troops.length; j ++) {
 
            var idx = tableIndex(troops[j]);
 
 
            if (idx >= 0 && td[idx].innerHTML === 'Yes') {
 
              include = true;
 
              break;
 
            }
 
        }
 
 
        if (include) {
 
            for (var j = 0; j < troopList.length; j ++) {
 
              var idx = tableIndex(troopList[j]);
 
 
              if (!hasTroop(troopList[j]) && idx >= 0 && td[idx].innerHTML === 'Yes') {
 
                  include = false;
 
                  break;
 
              }
 
            }
 
        }
 
 
        $(tr[i]).css({'display': (include ? '' : 'none')});
 
      }
 
      else {
 
        $(tr[i]).css({'display': ''});
 
      }
 
  }
 
 
  function hasTroop(trooptype) {
 
      if (troops === true || troops === false)
 
        return troops;
 
 
      return troops.indexOf(trooptype) >= 0;
 
  }
 
 
  function tableIndex(trooptype) {
 
      var idx = $('#troop-filter-selector option[value="' + trooptype + '"]').index();
 
      return (idx >= 0 ? idx + 4 : idx);
 
  }
 
}
 
 
function attackStrategyReset() {
 
  document.getElementById("min-town-hall").value = 1;
 
  document.getElementById("max-town-hall").value = '';
 
  document.getElementById("min-trophies").value = 0;
 
  document.getElementById("max-trophies").value = '';
 
  document.getElementById("troop-filter-text").innerHTML = 'All';
 
  document.getElementById("troop-filter-type-text").innerHTML = 'Includes';
 
  document.getElementById("troop-filter-type-text").title =
 
      'Will show all attack strategies that include at least one of the selected troop types.';
 
  attackStrategyFilter();
 
}
 
 
function troopFilterInitiate() {
 
  doTroopSelect($('#troop-filter-text').html());
 
  $('#troop-filter-type').val($('#troop-filter-type-text').html());
 
  $('#troop-background').addClass('window-visible');
 
}
 
 
function troopFilterCancel() {
 
  $('#troop-background').removeClass('window-visible');
 
}
 
 
function troopFilterExecute() {
 
  var select    = $('#troop-filter-selector');
 
  var all      = true;
 
  var none      = true;
 
  var selection = [];
 
 
  $('option', select).each(function(idx) {
 
      if ($(this).prop('selected')) {
 
        selection.push($(this).val());
 
        none = false;
 
      }
 
      else
 
        all = false;
 
  });
 
 
  if (none)
 
      $('#troop-filter-text').html('None');
 
  else if (all)
 
      $('#troop-filter-text').html('All');
 
  else
 
      $('#troop-filter-text').html(selection.join(', '));
 
 
  $('#troop-filter-type-text').html($('#troop-filter-type').val());
 
 
  switch ($('#troop-filter-type').val()) {
 
      case 'Includes':
 
        $('#troop-filter-type-text').prop('title',
 
            'Will show all attack strategies that include at least one of the selected troop types.');
 
        break;
 
      case 'Excludes':
 
        $('#troop-filter-type-text').prop('title',
 
            'Will show all attack strategies that do not include any of the selected troop types.');
 
        break;
 
      case 'Only':
 
        $('#troop-filter-type-text').prop('title',
 
            'Will show all attack strategies that include only the selected troop types.');
 
        break;
 
  }
 
 
  troopFilterCancel();
 
}
 
 
function troopSelectNone() {
 
  doTroopSelect('none');
 
}
 
 
function troopSelectAll() {
 
  doTroopSelect('all');
 
}
 
 
function doTroopSelect(selection) {
 
  var select = $('#troop-filter-selector');
 
 
  if (selection.toLowerCase() === 'all')
 
      $('option', select).prop('selected', true);
 
  else if (selection.toLowerCase() === 'none')
 
      $('option', select).prop('selected', false);
 
  else {
 
      var selects = selection.split(', ');
 
 
      $('option', select).each(function(idx) {
 
        $(this).prop('selected', selects.indexOf($(this).val()) >= 0);
 
      });
 
  }
 
}
 

Revision as of 11:09, 15 November 2018