diff --git a/includes/class.filter.php b/includes/class.filter.php
new file mode 100644
index 00000000..143ec2bf
--- /dev/null
+++ b/includes/class.filter.php
@@ -0,0 +1,254 @@
+ '%', '?' => '_'];
+ private static $criteria = ['cr', 'crs', 'crv']; // [cr]iterium, [cr].[s]ign, [cr].[v]alue
+
+ private $fiData = ['c' => [], 'v' =>[]];
+ private $query = '';
+ private $form = []; // unsanitized: needed to preselect form-fields
+ private $setCr = []; // unsanitized: needed to preselect criteria
+
+ public $error = false; // erronous search fields
+
+ // parse the provided request into a usable format; recall self with GET-params if nessecary
+ public function init()
+ {
+ // prefer POST over GET, translate to url
+ if (!empty($_POST))
+ {
+ foreach ($_POST as $k => $v)
+ {
+ if (is_array($v)) // array -> max depths:1
+ {
+ if ($k == 'cr' && empty($v[0]))
+ continue;
+
+ $sub = [];
+ foreach ($v as $sk => $sv)
+ {
+ $sv = str_replace("'", "\'", stripslashes($sv));
+ $sub[$sk] = is_numeric($sv) ? (int)$sv : urlencode($sv);
+ }
+ if (!empty($sub) && in_array($k, Filter::$criteria))
+ $this->fiData['c'][$k] = $sub;
+ else if (!empty($sub))
+ $this->fiData['v'][$k] = $sub;
+ }
+ else // stings and integer
+ {
+ $v = str_replace("'", "\'", stripslashes($v));
+
+ if (in_array($k, Filter::$criteria))
+ $this->fiData['c'][$k] = is_numeric($v) ? (int)$v : urlencode($v);
+ else
+ $this->fiData['v'][$k] = is_numeric($v) ? (int)$v : urlencode($v);
+ }
+ }
+
+ // create get-data
+ $tmp = [];
+ foreach (array_merge($this->fiData['c'], $this->fiData['v']) as $k => $v)
+ {
+ if ($v == '')
+ continue;
+ else if (is_array($v))
+ $tmp[$k] = $k."=".implode(':', $v);
+ else
+ $tmp[$k] = $k."=".$v;
+ }
+
+ // do get request
+ $this->redirect(implode(';', $tmp));
+ }
+ // sanitize input and build sql
+ else if (!empty($_GET['filter']))
+ {
+ $tmp = explode(';', $_GET['filter']);
+ $cr = $crs = $crv = [];
+
+ foreach (Filter::$criteria as $c)
+ {
+ foreach ($tmp as $i => $term)
+ {
+ if (strpos($term, $c.'=') === 0)
+ {
+ $$c = explode(':', explode('=', $term)[1]);
+ $this->setCr[$c] = json_encode($$c, JSON_NUMERIC_CHECK);
+ unset($tmp[$i]);
+ }
+ }
+ }
+
+ for ($i = 0; $i < max(count($cr), count($crv), count($crs)); $i++)
+ {
+ if (!isset($cr[$i]) || !isset($crs[$i]) || !isset($crv[$i]) ||
+ !intVal($cr[$i]) || $crs[$i] == '' || $crv[$i] == '')
+ {
+ $this->error = true;
+ continue;
+ }
+
+ $this->sanitize($crv[$i]);
+
+ if ($crv[$i] != '')
+ {
+ $this->fiData['c']['cr'][] = intVal($cr[$i]);
+ $this->fiData['c']['crs'][] = $crs[$i];
+ $this->fiData['c']['crv'][] = $crv[$i];
+ }
+ else
+ $this->error = true;
+
+ }
+
+ foreach ($tmp as $v)
+ {
+ $w = explode('=', $v);
+
+ if (strstr($w[1], ':'))
+ {
+ $tmp2 = explode(':', $w[1]);
+
+ $this->form[$w[0]] = $tmp2;
+
+ array_walk($tmp2, function(&$v) { $v = intVal($v); });
+ $this->fiData['v'][$w[0]] = $tmp2;
+
+ }
+ else
+ {
+ $this->form[$w[0]] = $w[1];
+
+ $this->sanitize($w[1]);
+
+ if ($w[1] != '')
+ $this->fiData['v'][$w[0]] = is_numeric($w[1]) ? (int)$w[1] : $w[1];
+ else
+ $this->error = true;
+ }
+ }
+
+ return $this->fiData;
+ }
+ }
+
+ public function buildQuery()
+ {
+ if (!empty($this->query))
+ return $this->query;
+
+ $parts = [];
+
+ // values
+ $parts = $this->createSQLForValues($this->fiData['v']);
+
+ // criteria
+ $c = &$this->fiData['c'];
+ if (!empty($c))
+ {
+ if (is_array($c['cr']))
+ {
+ for ($i = 0; $i < count($c['cr']); $i++)
+ $parts[] = $this->createSQLForCriterium(array($c['cr'][$i], $c['crs'][$i], $c['crv'][$i]));
+ }
+ else
+ $parts[] = $this->createSQLForCriterium(array($c['cr'], $c['crs'], $c['crv']));
+ }
+
+ $this->query = empty($parts) ? '' : '('.implode(empty($this->fiData['v']['ma']) ? ' AND ' : ' OR ', $parts).')';
+ return $this->query;
+ }
+
+ public function getQuery()
+ {
+ return $this->query;
+ }
+
+ public function getForm()
+ {
+ return $this->form;
+ }
+
+ public function getSetCriteria()
+ {
+ if (!empty($this->setCr['cr']))
+ return sprintf(Util::$setCriteriaString, $this->setCr['cr'], $this->setCr['crs'], $this->setCr['crv']);
+ else
+ return null;
+ }
+
+ // santas little helper..
+ protected function int2Op($int)
+ {
+ switch ($int)
+ {
+ case 1: return '>';
+ case 2: return '>=';
+ case 3: return '=';
+ case 4: return '<=';
+ case 5: return '<';
+ default: die('invalid op');
+ }
+ }
+
+ protected function int2Bool($int)
+ {
+ switch ($int)
+ {
+ case 1: return true;
+ case 2: return false;
+ default: die('invalid op');
+ }
+ }
+
+ protected function list2Mask($list)
+ {
+ $mask = 0x0;
+
+ if (is_array($list))
+ {
+ foreach ($list as $itm)
+ $mask += (1 << intVal($itm));
+ }
+ else
+ $mask = (1 << intVal($list));
+
+ return $mask;
+ }
+
+ private function sanitize(&$str)
+ {
+ $str = preg_replace(Filter::$pattern, '', trim($str));
+ $str = strtr($str, Filter::$wildcards);
+ }
+
+ // if called with POST-data, convert to GET request and call self
+ private function redirect($get)
+ {
+ header('Location: http://'.$_SERVER['SERVER_NAME'].str_replace('index.php', '', $_SERVER['PHP_SELF']).'?'.$_SERVER['QUERY_STRING'].'='.$get);
+ }
+
+ protected function createSQLForCommunity($cr)
+ {
+ switch ($cr[0])
+ {
+ case 14: // has Comments [y|n]
+ return ''; // IN / NOT IN (select Ids FROM aowow_comments ON type = X AND id Y and flags = valid)
+ case 15: // has Screenshots [y|n]
+ return ''; // IN / NOT IN (select Ids FROM aowow_screenshots ON type = X AND id Y and flags = valid)
+ case 16: // has Videos [y|n]
+ return ''; // IN / NOT IN (select Ids FROM aowow_videos ON type = X AND id Y and flags = valid)
+ }
+ }
+
+ // apply Util::sqlEscape() and intVal() in the implementation of these
+ abstract protected function createSQLForCriterium($cr);
+ abstract protected function createSQLForValues($vl);
+}
+
+?>
diff --git a/includes/class.item.php b/includes/class.item.php
index a23cd11b..0690cd0a 100644
--- a/includes/class.item.php
+++ b/includes/class.item.php
@@ -503,7 +503,7 @@ class ItemList extends BaseType
// required skill
if ($this->curTpl['RequiredSkill'])
{
- $skillText = DB::Aowow()->selectRow('SELECT * FROM ?_skill WHERE skillId = ?d', $this->curTpl['RequiredSkill']);
+ $skillText = DB::Aowow()->selectRow('SELECT * FROM ?_skill WHERE skillID = ?d', $this->curTpl['RequiredSkill']);
$x .= '
'.Lang::$game['requires'].' '.Util::localizedString($skillText, 'name').'';
if ($this->curTpl['RequiredSkillRank'])
$x .= ' ('.$this->curTpl['RequiredSkillRank'].')';
@@ -832,8 +832,9 @@ class ItemList extends BaseType
{
$eqpSplList = new SpellList(array(['id', $equipSpells]));
$stats = $eqpSplList->getStatGain();
- foreach ($stats as $mId => $qty)
- if ($qty > 0)
+
+ foreach ($stats as $stat)
+ foreach ($stat as $mId => $qty)
@$this->itemMods[$this->id][$mId] += $qty;
}
diff --git a/includes/class.itemset.php b/includes/class.itemset.php
index c0780cd3..98ed4a26 100644
--- a/includes/class.itemset.php
+++ b/includes/class.itemset.php
@@ -8,12 +8,12 @@ class ItemsetList extends BaseType
private $classes = []; // used to build g_classes
public $pieceToSet = []; // used to build g_items and search
- protected $setupQuery = 'SELECT *, id AS ARRAY_KEY FROM ?_itemset WHERE [filter] [cond] ORDER BY maxlevel ASC';
+ protected $setupQuery = 'SELECT *, id AS ARRAY_KEY FROM ?_itemset WHERE [filter] [cond] ORDER BY maxlevel DESC';
protected $matchQuery = 'SELECT COUNT(1) FROM ?_itemset WHERE [filter] [cond]';
- public function __construct($data)
+ public function __construct($data, $applyFilter = false)
{
- parent::__construct($data);
+ parent::__construct($data, $applyFilter);
// post processing
while ($this->iterate())
@@ -62,7 +62,8 @@ class ItemsetList extends BaseType
'heroic' => $this->curTpl['heroic'] == 1, // we want to be bool
'reqclass' => $this->curTpl['classMask'],
'classes' => $this->curTpl['classes'],
- 'pieces' => $this->curTpl['pieces']
+ 'pieces' => $this->curTpl['pieces'],
+ 'heroic' => $this->curTpl['heroic']
);
}
@@ -75,7 +76,7 @@ class ItemsetList extends BaseType
(new CharClassList(array(['id', $this->classes])))->addGlobalsToJscript($refs);
if ($this->pieceToSet)
- (new ItemList(array(['i.entry', array_keys($this->pieceToSet)])))->addGlobalsToJscript($refs);
+ (new ItemList(array(['i.entry', array_keys($this->pieceToSet)], 0)))->addGlobalsToJscript($refs);
}
public function addRewardsToJScript(&$ref) { }
diff --git a/includes/class.spell.php b/includes/class.spell.php
index 0c70126d..83dd439c 100644
--- a/includes/class.spell.php
+++ b/includes/class.spell.php
@@ -14,9 +14,9 @@ class SpellList extends BaseType
protected $setupQuery = 'SELECT *, id AS ARRAY_KEY FROM ?_spell WHERE [filter] [cond] GROUP BY Id ORDER BY Id ASC';
protected $matchQuery = 'SELECT COUNT(1) FROM ?_spell WHERE [filter] [cond]';
- public function __construct($conditions)
+ public function __construct($conditions, $applyFilter = false)
{
- parent::__construct($conditions);
+ parent::__construct($conditions, $applyFilter);
if ($this->error)
return;
@@ -50,10 +50,12 @@ class SpellList extends BaseType
// required for itemSet-bonuses and socket-bonuses
public function getStatGain()
{
- $stats = [];
+ $data = [];
while ($this->iterate())
{
+ $stats = [];
+
for ($i = 1; $i <= 3; $i++)
{
if (!in_array($this->curTpl["effect".$i."AuraId"], [13, 22, 29, 34, 35, 83, 84, 85, 99, 124, 135, 143, 158, 161, 189, 230, 235, 240, 250]))
@@ -216,9 +218,11 @@ class SpellList extends BaseType
break;
}
}
+
+ $data[$this->id] = $stats;
}
- return $stats;
+ return $data;
}
// description-, buff-parsing component
@@ -247,7 +251,7 @@ class SpellList extends BaseType
}
// description-, buff-parsing component
- private function resolveVariableString($variable, $level)
+ private function resolveVariableString($variable, $level, $interactive)
{
$signs = ['+', '-', '/', '*', '%', '^'];
@@ -323,7 +327,7 @@ class SpellList extends BaseType
}
// Aura end
- if ($rType)
+ if ($rType && $interactive)
$str .= ''.$base." (".Util::setRatingLevel($level, $rType, $base).")";
else
$str .= $base;
@@ -439,7 +443,7 @@ class SpellList extends BaseType
}
// Aura end
- if ($rType)
+ if ($rType && $interactive)
return ''.abs($base)." (".Util::setRatingLevel($level, $rType, abs($base)).")";
else
return $base;
@@ -549,7 +553,7 @@ class SpellList extends BaseType
}
// Aura end
- if ($rType && $equal)
+ if ($rType && $equal && $interactive)
return ''.$min." (".Util::setRatingLevel($level, $rType, $min).")";
else
return $min . (!$equal ? Lang::$game['valueDelim'] . $max : null);
@@ -603,7 +607,7 @@ class SpellList extends BaseType
}
// description-, buff-parsing component
- private function resolveFormulaString($formula, $precision = 0, $level)
+ private function resolveFormulaString($formula, $precision = 0, $level, $interactive)
{
// step 1: formula unpacking redux
while (($formStartPos = strpos($formula, '${')) !== false)
@@ -639,7 +643,7 @@ class SpellList extends BaseType
++$formCurPos; // for some odd reason the precision decimal survives if wo dont increment further..
}
- $formOutStr = $this->resolveFormulaString($formOutStr, $formPrecision, $level);
+ $formOutStr = $this->resolveFormulaString($formOutStr, $formPrecision, $level, $interactive);
$formula = substr_replace($formula, $formOutStr, $formStartPos, ($formCurPos - $formStartPos));
}
@@ -663,7 +667,7 @@ class SpellList extends BaseType
continue;
}
$pos += strlen($result[0]);
- $str .= $this->resolveVariableString($result, $level);
+ $str .= $this->resolveVariableString($result, $level, $interactive);
}
$str .= substr($formula, $pos);
$str = str_replace('#', '$', $str); // reset marks
@@ -676,7 +680,7 @@ class SpellList extends BaseType
// should probably used only once to create ?_spell. come to think of it, it yields the same results every time.. it absolutely has to!
// although it seems to be pretty fast, even on those pesky test-spells with extra complex tooltips (Ron Test Spell X))
- public function parseText($type = 'description', $level = MAX_LEVEL)
+ public function parseText($type = 'description', $level = MAX_LEVEL, $interactive = false)
{
// oooo..kaaayy.. parsing text in 6 or 7 easy steps
// we don't use the internal iterator here. This func has to be called for the individual template.
@@ -902,7 +906,7 @@ class SpellList extends BaseType
++$formCurPos; // for some odd reason the precision decimal survives if wo dont increment further..
}
- $formOutStr = $this->resolveFormulaString($formOutStr, $formPrecision, $level);
+ $formOutStr = $this->resolveFormulaString($formOutStr, $formPrecision, $level, $interactive);
$data = substr_replace($data, $formOutStr, $formStartPos, ($formCurPos - $formStartPos));
}
@@ -929,7 +933,7 @@ class SpellList extends BaseType
$pos += strlen($result[0]);
- $resolved = $this->resolveVariableString($result, $level);
+ $resolved = $this->resolveVariableString($result, $level, $interactive);
$str .= intVal($resolved) ? abs($resolved) : $resolved;
}
$str .= substr($data, $pos);
diff --git a/includes/defines.php b/includes/defines.php
index 9f3d96cb..a639afd2 100644
--- a/includes/defines.php
+++ b/includes/defines.php
@@ -106,6 +106,11 @@ define('ITEMINFO_LOOT', 0x8);
define('MAX_LEVEL', 80);
+// Sides
+define('SIDE_ALLIANCE', 1);
+define('SIDE_HORDE', 2);
+define('SIDE_BOTH', 3);
+
// ClassMask
define('CLASS_WARRIOR', 0x1);
define('CLASS_PALADIN', 0x2);
diff --git a/includes/kernel.php b/includes/kernel.php
index 94d293b1..747dc3d5 100644
--- a/includes/kernel.php
+++ b/includes/kernel.php
@@ -20,7 +20,7 @@ require 'includes/class.database.php';
// autoload any List-Classes
spl_autoload_register(function ($class) {
- if (strpos($class, 'List'))
+ if (strpos($class, 'List') && !strpos($class, 'Filter'))
require 'includes/class.'.strtr($class, ['List' => '']).'.php';
});
diff --git a/includes/utilities.php b/includes/utilities.php
index ee2186a0..9f169b91 100644
--- a/includes/utilities.php
+++ b/includes/utilities.php
@@ -35,20 +35,20 @@ abstract class BaseType
* results in
* WHERE id = 45 OR name NOT LIKE %test% LIMIT 5;
*/
- public function __construct($conditions = [])
+ public function __construct($conditions = [], $applyFilter = false)
{
global $AoWoWconf; // yes i hate myself..
$sql = [];
$linking = ' AND ';
$limit = ' LIMIT '.$AoWoWconf['sqlLimit'];
- $className = strtr(get_class($this), ['List' => '']);
+ $className = get_class($this);
if (!$this->setupQuery || !$this->matchQuery)
return;
// may be called without filtering
- if (class_exists($className.'Filter'))
+ if ($applyFilter && class_exists($className.'Filter'))
{
$fiName = $className.'Filter';
$this->filter = new $fiName();
@@ -78,20 +78,29 @@ abstract class BaseType
if (is_array($c[1]))
{
+ $val = implode(',', Util::sqlEscape($c[1]));
+ if (!$val)
+ continue;
+
$op = (isset($c[2]) && $c[2] == '!') ? 'NOT IN' : 'IN';
- $val = '('.implode(',', Util::sqlEscape($c[1])).')';
+ $val = '('.$val.')';
}
else if (is_string($c[1]))
{
- $op = (isset($c[2]) && $c[2] == '!') ? 'NOT LIKE' : 'LIKE';
- $val = '"%'.Util::sqlEscape($c[1]).'%"';
+ $val = Util::sqlEscape($c[1]);
+ if (!$val)
+ continue;
+ $op = (isset($c[2]) && $c[2] == '!') ? 'NOT LIKE' : 'LIKE';
+ $val = '"%'.$val.'%"';
}
else if (is_int($c[1]))
{
$op = (isset($c[2]) && $c[2] == '!') ? '<>' : '=';
$val = Util::sqlEscape($c[1]);
}
+ else // null for example
+ continue;
if (isset($c[2]) && $c[2] != '!')
$op = $c[2];
@@ -104,16 +113,15 @@ abstract class BaseType
$limit = $c > 0 ? ' LIMIT '.$c : '';
else
continue; // ignore other possibilities
-
}
// todo: add strings propperly without them being escaped by simpleDB..?
- $this->setupQuery = str_replace('[filter]', $this->filter && $this->filter->buildFilterQuery() ? $this->filter->query.' AND ' : NULL, $this->setupQuery);
- $this->setupQuery = str_replace('[cond]', empty($sql) ? '1' : '('.implode($linking, $sql).')', $this->setupQuery);
+ $this->setupQuery = str_replace('[filter]', $this->filter && $this->filter->buildQuery() ? $this->filter->getQuery().' AND ' : NULL, $this->setupQuery);
+ $this->setupQuery = str_replace('[cond]', empty($sql) ? '1' : '('.implode($linking, $sql).')', $this->setupQuery);
$this->setupQuery .= $limit;
- $this->matchQuery = str_replace('[filter]', $this->filter && $this->filter->buildFilterQuery() ? $this->filter->query.' AND ' : NULL, $this->matchQuery);
- $this->matchQuery = str_replace('[cond]', empty($sql) ? '1' : '('.implode($linking, $sql).')', $this->matchQuery);
+ $this->matchQuery = str_replace('[filter]', $this->filter && $this->filter->buildQuery() ? $this->filter->getQuery().' AND ' : NULL, $this->matchQuery);
+ $this->matchQuery = str_replace('[cond]', empty($sql) ? '1' : '('.implode($linking, $sql).')', $this->matchQuery);
$rows = DB::Aowow()->Select($this->setupQuery);
if (!$rows)
@@ -162,10 +170,10 @@ abstract class BaseType
return $this->curTpl[$field];
}
- public function filterGetJs()
+ public function filterGetSetCriteria()
{
- if ($this->filter && isset($this->filter->fiData['c']['cr']))
- return "fi_setCriteria([".@implode(',',$this->filter->fiData['c']['cr'])."], [".@implode(',',$this->filter->fiData['c']['crs'])."], ['".@implode('\', \'',$this->filter->fiData['c']['crv'])."']);";
+ if ($this->filter)
+ return $this->filter->getSetCriteria();
else
return null;
}
@@ -173,11 +181,19 @@ abstract class BaseType
public function filterGetForm()
{
if ($this->filter)
- return $this->filter->form;
+ return $this->filter->getForm();
else
return [];
}
+ public function filterGetError()
+ {
+ if ($this->filter)
+ return $this->filter->error;
+ else
+ return false;
+ }
+
// should return data required to display a listview of any kind
// this is a rudimentary example, that will not suffice for most Types
abstract public function getListviewData();
@@ -233,14 +249,15 @@ class Lang
public static $main;
public static $search;
public static $game;
- public static $filter;
public static $error;
public static $account;
public static $achievement;
public static $compare;
+ public static $currency;
public static $event;
public static $item;
+ public static $itemset;
public static $maps;
public static $spell;
public static $talent;
@@ -411,7 +428,7 @@ class SmartyAoWoW extends Smarty
$this->left_delimiter = '{';
$this->right_delimiter = '}';
$this->caching = false; // Total Cache, this site does not work
- $this->assign('app_name', $config['page']['name']);
+ $this->assign('appName', $config['page']['name']);
$this->assign('AOWOW_REVISION', AOWOW_REVISION);
$this->_tpl_vars['page'] = array(
'reqJS' => [], // <[string]> path to required JSFile
@@ -438,18 +455,14 @@ class SmartyAoWoW extends Smarty
public function display($tpl)
{
// since it's the same for every page, except index..
- if (!$this->_tpl_vars['query'][0])
- return;
+ if ($this->_tpl_vars['query'][0] && !preg_match('/[^a-z]/i', $this->_tpl_vars['query'][0]))
+ {
+ $ann = DB::Aowow()->Select('SELECT * FROM ?_announcements WHERE flags & 0x10 AND (page = ?s OR page = "*")', $this->_tpl_vars['query'][0]);
+ foreach ($ann as $k => $v)
+ $ann[$k]['text'] = Util::localizedString($v, 'text');
- // sanitize
- if (preg_match('/[^a-z]/i', $this->_tpl_vars['query'][0]))
- return;
-
- $ann = DB::Aowow()->Select('SELECT * FROM ?_announcements WHERE flags & 0x10 AND (page = ?s OR page = "*")', $this->_tpl_vars['query'][0]);
- foreach ($ann as $k => $v)
- $ann[$k]['text'] = Util::localizedString($v, 'text');
-
- $this->_tpl_vars['announcements'] = $ann;
+ $this->_tpl_vars['announcements'] = $ann;
+ }
parent::display($tpl);
}
@@ -597,6 +610,7 @@ class Util
public static $filterResultString = 'sprintf(%s, %s, %s) + LANG.dash + LANG.lvnote_tryfiltering.replace(\'\', \'\')';
public static $narrowResultString = 'sprintf(%s, %s, %s) + LANG.dash + LANG.lvnote_trynarrowing';
+ public static $setCriteriaString = "fi_setCriteria(%s, %s, %s);\n";
public static $expansionString = array( // 3 & 4 unused .. obviously
null, 'bc', 'wotlk', 'cata', 'mop'
@@ -1232,18 +1246,14 @@ class Util
return 0;
}
- private static function db_conform_array_callback(&$item, $key)
+ public static function sqlEscape($data)
{
- $item = Util::sqlEscape($item);
- }
+ if (!is_array($data))
+ return mysql_real_escape_string(trim($data));
- public static function sqlEscape($string)
- {
- if (!is_array($string))
- return mysql_real_escape_string(trim($string));
+ array_walk($data, function(&$item, $key) { $item = Util::sqlEscape($item); });
- array_walk($string, 'Util::db_conform_array_callback');
- return $string;
+ return $data;
}
public static function jsEscape($string)
@@ -1260,16 +1270,26 @@ class Util
public static function localizedString($data, $field)
{
+ $sqlLocales = ['EN', 2 => 'FR', 3 => 'DE', 6 => 'ES', 8 => 'RU'];
+
// default back to enUS if localization unavailable
// default case: selected locale available
if (!empty($data[$field.'_loc'.User::$localeId]))
return $data[$field.'_loc'.User::$localeId];
+ // dbc-case
+ else if (!empty($data[$field.$sqlLocales[User::$localeId]]))
+ return $data[$field.$sqlLocales[User::$localeId]];
+
// locale not enUS; aowow-type localization available; add brackets
else if (User::$localeId != LOCALE_EN && isset($data[$field.'_loc0']) && !empty($data[$field.'_loc0']))
return '['.$data[$field.'_loc0'].']';
+ // dbc-case
+ else if (User::$localeId != LOCALE_EN && isset($data[$field.$sqlLocales[0]]) && !empty($data[$field.$sqlLocales[0]]))
+ return '['.$data[$field.$sqlLocales[0]].']';
+
// locale not enUS; TC localization; add brackets
else if (User::$localeId != LOCALE_EN && isset($data[$field]) && !empty($data[$field]))
return '['.$data[$field].']';
@@ -1367,11 +1387,12 @@ class Util
break;
case 3:
case 7:
- $spl = new SpellList(array(['id', (int)$enchant['object'.$h]]));
- $gain = $spl->getStatGain();
+ $spl = new SpellList(array(['id', (int)$enchant['object'.$h]]));
+ $gains = $spl->getStatGain();
- foreach ($gain as $k => $v) // array_merge screws up somehow...
- @$jsonStats[$k] += $v;
+ foreach ($gains as $gain)
+ foreach ($gain as $k => $v) // array_merge screws up somehow...
+ @$jsonStats[$k] += $v;
break;
case 4:
switch ($enchant['object'.$h])
diff --git a/localization/locale_dede.php b/localization/locale_dede.php
index 790421d1..fdad5b07 100644
--- a/localization/locale_dede.php
+++ b/localization/locale_dede.php
@@ -18,7 +18,6 @@ $lang = array(
'profiles' => "Deine Charaktere",
'links' => "Links",
'pageNotFound' => "Diese|Dieser|Dieses %s existiert nicht.", // todo: dämliche Fälle...
- 'both' => "Beide",
'gender' => "Geschlecht",
'sex' => [null, 'Mann', 'Frau'],
'quickFacts' => "Kurzübersicht",
@@ -50,61 +49,20 @@ $lang = array(
// pwd_err = Gib bitte dein Passwort ein
// signin_msg = Gib bitte deinen Accountnamen ein
// c_pwd = Passwort wiederholen
- // create_filter = Filter erstellen
- // loading = Lädt ...
- // soldby = Verkauft von
- // droppedby = Gedroppt von
- // containedinobject = Enthalten in
- // containedinitem = Enthalten in Item
- // contain = Enthält
- // objectiveof = Ziel von
- // rewardof = Belohnung von
// facts = Übersicht
- // pickpocketingloot = Gestohlen von
- // prospectedfrom = Sondiert aus
- // canbeplacedin = Kann abgelegt werden in
- // minedfromobject = Abgebaut aus
- // gatheredfromobject = Gesammelt von
- // items = Gegenstände
- // objects = Objekte
- // quests = Quests
- // npcs = NPCs
- // drop = Drop
- // starts = Startet
- // ends = Beendet
- // skinning = Kürschnerei
- // pickpocketing = Taschendiebstahl
- // sells = Verkauft
- // reputationwith = Ruf mit der Fraktion
- // experience = Erfahrung
- // uponcompletionofthisquestyouwillgain = Bei Abschluss dieser Quest erhaltet Ihr
- // reagentfor = Reagenz für
- // skinnedfrom = Gekürschnert von
- // disenchanting = Entzaubern
// This_Object_cant_be_found = Der Standort dieses Objekts ist nicht bekannt.
- // itemsets = Sets
- // Spells = Zauber
- // Items = Gegenstände
- // Quests = Quests
- // Factions = Fraktionen
- // Item_Sets = Sets
- // Compare = Gegenstandsvergleichswerkzeug
- // NPCs = NPCs
- // Objects = Objekte
- // My_account = Mein Account
- // Comments = Kommentare
- // Latest_Comments = Neuste Kommentare
- // day = Tag.
- // hr = Std.
- // min = Min.
- // sec = Sek.
- // Respawn = Respawn
- // Class = Klasse
- // class = Klasse
- // race = Volk
- // Race = Volk
- // Races = Völker
+ // filter
+ 'extSearch' => "Erweiterte Suche",
+ 'addFilter' => "Weiteren Filter hinzufügen",
+ 'match' => "Verwendete Filter",
+ 'allFilter' => "Alle Filters",
+ 'oneFilter' => "Mindestens einer",
+ 'applyFilter' => "Filter anwenden",
+ 'resetForm' => "Formular zurücksetzen",
+ 'refineSearch' => "Tipp: Präzisiere deine Suche mit Durchsuchen einer Unterkategorie.",
+
+ // infobox
'disabled' => "Deaktiviert",
'disabledHint' => "Kann nicht erhalten oder abgeschlossen werden.",
'serverside' => "Serverseitig",
@@ -117,10 +75,10 @@ $lang = array(
'tryAgain' => "Bitte versucht es mit anderen Suchbegriffen oder überprüft deren Schreibweise.",
),
'game' => array(
- 'alliance' => "Allianz",
- 'horde' => "Horde",
'class' => "Klasse",
'classes' => "Klassen",
+ 'currency' => "Währung",
+ 'currencies' => "Währungen",
'races' => "Völker",
'title' => "Titel",
'titles' => "Titel",
@@ -128,15 +86,18 @@ $lang = array(
'event' => "Weltereigniss",
'events' => "Weltereignisse",
'cooldown' => "%s Abklingzeit",
+ 'itemset' => "Ausrüstungsset",
+ 'itemsets' => "Ausrüstungssets",
'requires' => "Benötigt",
'reqLevel' => "Benötigt Stufe %s",
'reqLevelHlm' => "Benötigt Stufe %s",
'valueDelim' => " - ", // " bis "
+ 'si' => array(-2 => "Nur für Horde", -1 => "Nur für Allianz", null, "Allianz", "Horde", "Beide"),
'resistances' => array(null, 'Heiligwiderstand', 'Feuerwiderstand', 'Naturwiderstand', 'Frostwiderstand', 'Schattenwiderstand', 'Arkanwiderstand'),
'sc' => array("Körperlich", "Heilig", "Feuer", "Natur", "Frost", "Schatten", "Arkan"),
'di' => array(null, "Magie", "Fluch", "Krankheit", "Gift", "Verstohlenheit", "Unsichtbarkeit", null, null, "Wut"),
- 'cl' => array("UNK_CL0", "Krieger", "Paladin", "Jäger", "Schurke", "Priester", "Todesritter", "Schamane", "Magier", "Hexenmeister", 'UNK_CL10', "Druide"),
- 'ra' => array(-2 => "Horde", -1 => "Allianz", "Beide", "Mensch", "Orc", "Zwerg", "Nachtelf", "Untoter", "Taure", "Gnom", "Troll", 'UNK_RA9', "Blutelf", "Draenei"),
+ 'cl' => array(null, "Krieger", "Paladin", "Jäger", "Schurke", "Priester", "Todesritter", "Schamane", "Magier", "Hexenmeister", null, "Druide"),
+ 'ra' => array(-2 => "Horde", -1 => "Allianz", "Beide", "Mensch", "Orc", "Zwerg", "Nachtelf", "Untoter", "Taure", "Gnom", "Troll", null, "Blutelf", "Draenei"),
'rep' => array("Hasserfüllt", "Feindselig", "Unfreundlich", "Neutral", "Freundlich", "Wohlwollend", "Respektvoll", "Ehrfürchtig"),
'st' => array(
null, "Katzengestalt", "Baum des Lebens", "Reisegestalt", "Wassergestalt",
@@ -155,18 +116,6 @@ $lang = array(
"Marschall / Kriegsherr", "Feldmarschall / Kriegsfürst", "Großmarschall / Oberster Kriegsfürst"
),
),
- 'filter' => array(
- 'extSearch' => "Erweiterte Suche",
- 'onlyAlliance' => "Nur für Allianz",
- 'onlyHorde' => "Nur für Horde",
- 'addFilter' => "Weiteren Filter hinzufügen",
- 'match' => "Verwendete Filter",
- 'allFilter' => "Alle Filters",
- 'oneFilter' => "Mindestens einer",
- 'applyFilter' => "Filter anwenden",
- 'resetForm' => "Formular zurücksetzen",
- 'refineSearch' => "Tipp: Präzisiere deine Suche mit Durchsuchen einer Unterkategorie.",
- ),
'error' => array(
'errNotFound' => "Seite nicht gefunden",
'errPage' => "Was? Wie hast du... vergesst es!\n
\n
\nAnscheinend konnte die von Euch angeforderte Seite nicht gefunden werden. Wenigstens nicht in dieser Dimension.\n
\n
\nVielleicht lassen einige Justierungen an der\n\n[WH-799 Großkonfabulierungsmaschine]\n\ndie Seite plötzlich wieder auftauchen!\n
\n\nOder, Ihr könnt es auch \nuns melden\n- die Stabilität des WH-799 ist umstritten, und wir möchten gern noch so ein Problem vermeiden...",
@@ -264,6 +213,27 @@ $lang = array(
'Allgemein', 'Spieler gegen Spieler', 'Ruf', 'Dungeon & Schlachtzug', 'Quests', 'Berufe', 'Weltereignisse'
)
),
+ 'currency' => array(
+ 'cat' => array(
+ 1 => "Verschiedenes", 2 => "Spieler gegen Spieler", 4 => "Classic", 21 => "Wrath of the Lich King", 22 => "Dungeon und Schlachtzug", 23 => "Burning Crusade", 41 => "Test", 3 => "Unbenutzt"
+ )
+ ),
+ 'itemset' => array(
+ 'notes' => array(
+ null, "Dungeon-Set 1", "Dungeon-Set 2", "Tier 1 Raid-Set",
+ "Tier 2 Raid-Set", "Tier 3 Raid-Set", "Level 60 PvP-Set (Rar)", "Level 60 PvP-Set (Rar, alt)",
+ "Level 60 PvP-Set (Episch)", "Set der Ruinen von Ahn'Qiraj", "Set des Tempels von Ahn'Qiraj", "Set von Zul'Gurub",
+ "Tier 4 Raid-Set", "Tier 5 Raid-Set", "Dungeon-Set 3", "Set des Arathibeckens",
+ "Level 70 PvP-Set (Rar)", "Arena-Set Saison 1", "Tier 6 Raid-Set", "Arena-Set Saison 2",
+ "Arena-Set Saison 3", "Level 70 PvP-Set 2 (Rar)", "Arena-Set Saison 4", "Tier 7 Raid-Set",
+ "Arena-Set Saison 5", "Tier 8 Raid-Set", "Arena-Set Saison 6", "Tier 9 Raid-Set",
+ "Arena-Set Saison 7", "Tier 10 Raid-Set", "Arena-Set Saison 8"
+ ),
+ 'types' => array(
+ null, "Stoff", "Leder", "Schwere R\u00fcstung", "Platte", "Dolch", "Ring",
+ "Faustwaffe", "Einhandaxt", "Einhandstreitkolben", "Einhandschwert", "Schmuck", "Amulett"
+ )
+ ),
'spell' => array(
'remaining' => "Noch %s",
'untilCanceled' => "bis Abbruch",
@@ -317,6 +287,10 @@ $lang = array(
'socket' => array (
"Metasockel", "Roter Sockel", "Gelber Sockel", "Blauer Sockel", -1 => "Prismatischer Sockel"
),
+ 'quality' => array (
+ "Schlecht", "Verbreitet", "Selten", "Rar",
+ "Episch", "Legendär", "Artefakt", "Erbstücke",
+ ),
'trigger' => array (
"Benutzen: ", "Anlegen: ", "Chance bei Treffer: ", null, null,
null, null
diff --git a/localization/locale_enus.php b/localization/locale_enus.php
index e46f07ce..5c59963e 100644
--- a/localization/locale_enus.php
+++ b/localization/locale_enus.php
@@ -18,7 +18,6 @@ $lang = array(
'profiles' => "Your Characters",
'links' => "Links",
'pageNotFound' => "This %s doesn't exist.",
- 'both' => "Both",
'gender' => "Gender",
'sex' => [null, 'Male', 'Female'],
'quickFacts' => "Quick Facts",
@@ -49,63 +48,20 @@ $lang = array(
// pwd_err = Enter your password
// signin_msg = Enter your game account
// c_pwd = Repeat password
- // create_filter = Create a filter
- // loading = Loading ...
- // soldby = Sold by
- // droppedby = Dropped by
- // containedinobject = Contained in
- // containedinitem = Contained in item
- // contain = Contains
- // objectiveof = Objective of
- // rewardof = Reward of
// facts = Facts
- // pickpocketingloot = Pickpocketing
- // prospectedfrom = Prospect from
- // canbeplacedin = Can be placed in
- // minedfromobject = Mined from
- // gatheredfromobject = Gathered from
- // items = Items
- // objects = Objects
- // quests = Quests
- // npcs = NPCs
- // drop = Drop
- // starts = Starts
- // ends = Ends
- // skinning = Skinning
- // pickpocketing = Pickpocketing
- // sells = Sells
- // reputationwith = Reputation with
- // experience = experience
- // uponcompletionofthisquestyouwillgain = Upon completion of quests, get
- // reagentfor = Reagent for
- // skinnedfrom = Skinned from
- // disenchanting = Disenchanting
// This_Object_cant_be_found = Object map not available, Object may be spawned via a script
- // itemsets = Item Sets
- // Spells = Spells
- // Items = Items
- // Quests = Quests
- // Factions = Factions
- // Item_Sets = Item sets
- // NPCs = NPCs
- // Objects = Objects
- // Compare = Item Comparison Tool
- // My_account = My account
- // Comments = Comments
- // Latest_Comments = Latest comments
- // day = days
- // hr = hr
- // min = min
- // sec = sec
- // Respawn = Respawn
- // Class = Class
- // class = class
- // race = race
- // Race = Race
- // Races = Races
- // name = name
- // Name = Name
- // slain = slain
+
+ // filter
+ 'extSearch' => "Extended search",
+ 'addFilter' => "Add another Filter",
+ 'match' => "Match",
+ 'allFilter' => "All filters",
+ 'oneFilter' => "At least one",
+ 'applyFilter' => "Apply filter",
+ 'resetForm' => "Reset Form",
+ 'refineSearch' => "Tip: Refine your search by browsing a subcategory.",
+
+ // infobox
'name' => "Name",
'disabled' => "Disabled",
'disabledHint' => "Cannot be attained or completed",
@@ -119,10 +75,10 @@ $lang = array(
'tryAgain' => "Please try some different keywords or check your spelling.",
),
'game' => array(
- 'alliance' => "Alliance",
- 'horde' => "Horde",
'class' => "class",
'classes' => "Classes",
+ 'currency' => "currency",
+ 'currencies' => "Currencies",
'races' => "Races",
'title' => "title",
'titles' => "Titles",
@@ -130,15 +86,18 @@ $lang = array(
'event' => "World Event",
'events' => "World Events",
'cooldown' => "%s cooldown",
+ 'itemset' => "item Set",
+ 'itemsets' => "Item Sets",
'requires' => "Requires",
'reqLevel' => "Requires Level %s",
'reqLevelHlm' => "Requires Level %s",
'valueDelim' => " to ",
+ 'si' => array(-2 => "Horde only", -1 => "Alliance only", null, "Alliance", "Horde", "Both"),
'resistances' => array(null, 'Holy Resistance', 'Fire Resistance', 'Nature Resistance', 'Frost Resistance', 'Shadow Resistance', 'Arcane Resistance'),
'di' => array(null, "Magic", "Curse", "Disease", "Poison", "Stealth", "Invisibility", null, null, "Enrage"),
'sc' => array("Physical", "Holy", "Fire", "Nature", "Frost", "Shadow", "Arcane"),
- 'cl' => array("UNK_CL0", "Warrior", "Paladin", "Hunter", "Rogue", "Priest", "Death Knight", "Shaman", "Mage", "Warlock", 'UNK_CL10', "Druid"),
- 'ra' => array(-2 => "Horde", -1 => "Alliance", "Both", "Human", "Orc", "Dwarf", "Night Elf", "Undead", "Tauren", "Gnome", "Troll", 'UNK_RA9', "Blood Elf", "Draenei"),
+ 'cl' => array(null, "Warrior", "Paladin", "Hunter", "Rogue", "Priest", "Death Knight", "Shaman", "Mage", "Warlock", null, "Druid"),
+ 'ra' => array(-2 => "Horde", -1 => "Alliance", "Both", "Human", "Orc", "Dwarf", "Night Elf", "Undead", "Tauren", "Gnome", "Troll", null, "Blood Elf", "Draenei"),
'rep' => array("Hated", "Hostile", "Unfriendly", "Neutral", "Friendly", "Honored", "Revered", "Exalted"),
'st' => array(
null, "Cat Form", "Tree of Life", "Travel Form", "Aquatic Form",
@@ -157,18 +116,6 @@ $lang = array(
"Marshal / General", "Field Marshal / Warlord", "Grand Marshal / High Warlord"
),
),
- 'filter' => array(
- 'extSearch' => "Extended search",
- 'onlyAlliance' => "Alliance only",
- 'onlyHorde' => "Horde only",
- 'addFilter' => "Add another Filter",
- 'match' => "Match",
- 'allFilter' => "All filters",
- 'oneFilter' => "At least one",
- 'applyFilter' => "Apply filter",
- 'resetForm' => "Reset Form",
- 'refineSearch' => "Tip: Refine your search by browsing a subcategory.",
- ),
'error' => array(
'errNotFound' => "Page not found",
'errPage' => "What? How did you... nevermind that!\n
\n
\nIt appears that the page you have requested cannot be found. At least, not in this dimension.\n
\n
\nPerhaps a few tweaks to the [WH-799 Major Confabulation Engine] may result in the page suddenly making an appearance!\n\n\nOr, you can try \ncontacting us\n- the stability of the WH-799 is debatable, and we wouldn't want another accident...",
@@ -266,6 +213,27 @@ $lang = array(
'General', 'Player vs. Player', 'Reputation', 'Dungeons & Raids', 'Quests', 'Professions', 'World Events'
)
),
+ 'currency' => array(
+ 'cat' => array(
+ 1 => "Miscellaneous", 2 => "Player vs. Player", 4 => "Classic", 21 => "Wrath of the Lich King", 22 => "Dungeon and Raid", 23 => "Burning Crusade", 41 => "Test", 3 => "Unused"
+ )
+ ),
+ 'itemset' => array(
+ 'notes' => array(
+ null, "Dungeon Set 1", "Dungeon Set 2", "Tier 1 Raid Set",
+ "Tier 2 Raid Set", "Tier 3 Raid Set", "Level 60 PvP Rare Set", "Level 60 PvP Rare Set (Old)",
+ "Level 60 PvP Epic Set", "Ruins of Ahn'Qiraj Set", "Temple of Ahn'Qiraj Set", "Zul'Gurub Set",
+ "Tier 4 Raid Set", "Tier 5 Raid Set", "Dungeon Set 3", "Arathi Basin Set",
+ "Level 70 PvP Rare Set", "Arena Season 1 Set", "Tier 6 Raid Set", "Arena Season 2 Set",
+ "Arena Season 3 Set", "Level 70 PvP Rare Set 2", "Arena Season 4 Set", "Tier 7 Raid Set",
+ "Arena Season 5 Set", "Tier 8 Raid Set", "Arena Season 6 Set", "Tier 9 Raid Set",
+ "Arena Season 7 Set", "Tier 10 Raid Set", "Arena Season 8 Set"
+ ),
+ 'types' => array(
+ null, "Cloth", "Leather", "Mail", "Plate", "Dagger", "Ring",
+ "Fist Weapon", "One-Handed Axe", "One-Handed Mace", "One-Handed Sword", "Trinket", "Amulet"
+ )
+ ),
'spell' => array(
'remaining' => "%s remaining",
'untilCanceled' => "until canceled",
@@ -319,6 +287,10 @@ $lang = array(
'socket' => array(
"Meta Socket", "Red Socket", "Yellow Socket", "Blue Socket", -1 => "Prismatic Socket"
),
+ 'quality' => array (
+ "Poor", "Common", "Uncommon", "Rare",
+ "Epic", "Legendary", "Artifact", "Heirloom"
+ ),
'trigger' => array (
"Use: ", "Equip: ", "Chance on hit: ", null, null,
null, null
diff --git a/localization/locale_eses.php b/localization/locale_eses.php
index db4dd456..4fd0cbc9 100644
--- a/localization/locale_eses.php
+++ b/localization/locale_eses.php
@@ -18,7 +18,6 @@ $lang = array(
'profiles' => "Tus personajes", // translate.google :x
'links' => "Enlaces",
'pageNotFound' => "Este %s no existe.",
- 'both' => "Ambos",
'gender' => "Género",
'sex' => [null, 'Hombre', 'Mujer'],
'quickFacts' => "Notas rápidas",
@@ -46,6 +45,17 @@ $lang = array(
'millisecsAbbr' => "[ms]",
'name' => "Nombre",
+ // filter
+ 'extSearch' => "Extender búsqueda",
+ 'addFilter' => "Añadir otro filtro",
+ 'match' => "Aplicar",
+ 'allFilter' => "Todos los filtros",
+ 'oneFilter' => "Por lo menos uno",
+ 'applyFilter' => "Aplicar filtro",
+ 'resetForm' => "Reiniciar formulario",
+ 'refineSearch' => "Sugerencia: Refina tu búsqueda llendo a una subcategoría.",
+
+ // infobox
'disabled' => "[Disabled]",
'disabledHint' => "[Cannot be attained or completed]",
'serverside' => "[Serverside]",
@@ -58,10 +68,10 @@ $lang = array(
'tryAgain' => "Por favor, introduzca otras palabras claves o verifique el término ingresado.",
),
'game' => array(
- 'alliance' => "Alianza",
- 'horde' => "Horda",
'class' => "clase",
'classes' => "Clases",
+ 'currency' => "monedas",
+ 'currencies' => "Monedas",
'races' => "Razas",
'title' => "título",
'titles' => "Títulos",
@@ -69,15 +79,18 @@ $lang = array(
'event' => "Suceso mundial ",
'events' => "Eventos del mundo",
'cooldown' => "%s de reutilización",
+ 'itemset' => "conjunto de objetos",
+ 'itemsets' => "Conjuntos de objetos",
'requires' => "Requiere",
'reqLevel' => "Necesitas ser de nivel %s",
'reqLevelHlm' => "Necesitas ser de nivel %s",
'valueDelim' => " - ",
+ 'si' => array(-2 => "Horda solamente", -1 => "Alianza solamente", null, "Alianza", "Horda", "Ambos"),
'resistances' => array(null, 'Resistencia a lo Sagrado', 'v', 'Resistencia a la Naturaleza', 'Resistencia a la Escarcha', 'Resistencia a las Sombras', 'Resistencia a lo Arcano'),
'sc' => array("Física", "Sagrado", "Fuego", "Naturaleza", "Escarcha", "Sombras", "Arcano"),
'di' => array(null, "Magia", "Maldición", "Enfermedad", "Veneno", "Sigilo", "Invisibilidad", null, null, "Enfurecer"),
- 'cl' => array("UNK_CL0", "Guerrero", "Paladín", "Cazador", "Pícaro", "Sacerdote", "Caballero de la Muerte", "Chamán", "Mago", "Brujo", 'UNK_CL10', "Druida"),
- 'ra' => array(-2 => "Horda", -1 => "Alianza", "Ambos", "Humano", "Orco", "Enano", "Elfo de la noche", "No-muerto", "Tauren", "Gnomo", "Trol ", 'UNK_RA9', "Blood Elf", "Elfo de sangre"),
+ 'cl' => array(null, "Guerrero", "Paladín", "Cazador", "Pícaro", "Sacerdote", "Caballero de la Muerte", "Chamán", "Mago", "Brujo", null, "Druida"),
+ 'ra' => array(-2 => "Horda", -1 => "Alianza", "Ambos", "Humano", "Orco", "Enano", "Elfo de la noche", "No-muerto", "Tauren", "Gnomo", "Trol ", null, "Blood Elf", "Elfo de sangre"),
'rep' => array("Odiado", "Hostil", "Adverso", "Neutral", "Amistoso", "Honorable", "Reverenciado", "Exaltado"),
'st' => array(
null, "Forma felina", "Árbol de vida", "Forma de viaje", "Forma acuática",
@@ -96,18 +109,6 @@ $lang = array(
"Marshal / General", "Field Marshal / Warlord", "Grand Marshal / High Warlord"
),
),
- 'filter' => array(
- 'extSearch' => "Extender búsqueda",
- 'onlyAlliance' => "Alianza solamente",
- 'onlyHorde' => "Horda solamente",
- 'addFilter' => "Añadir otro filtro",
- 'match' => "Aplicar",
- 'allFilter' => "Todos los filtros",
- 'oneFilter' => "Por lo menos uno",
- 'applyFilter' => "Aplicar filtro",
- 'resetForm' => "Reiniciar formulario",
- 'refineSearch' => "Sugerencia: Refina tu búsqueda llendo a una subcategoría.",
- ),
'error' => array(
'errNotFound' => "Page not found",
'errPage' => "What? How did you... nevermind that!\n
\n
\nIt appears that the page you have requested cannot be found. At least, not in this dimension.\n
\n
\nPerhaps a few tweaks to the [WH-799 Major Confabulation Engine] may result in the page suddenly making an appearance!\n\n\nOr, you can try \ncontacting us\n- the stability of the WH-799 is debatable, and we wouldn't want another accident...",
@@ -165,6 +166,27 @@ $lang = array(
'General', 'Jugador contra Jugador', 'Reputación', 'Mazmorras y bandas', 'Misiones', 'Profesiones', 'Eventos del mundo'
)
),
+ 'currency' => array(
+ 'cat' => array(
+ 1 => "Miscelánea", 2 => "Jugador contra Jugador", 4 => "Clásico", 21 => "Wrath of the Lich King", 22 => "Mazmorra y banda", 23 => "Burning Crusade", 41 => "Prueba", 3 => "No las uso"
+ )
+ ),
+ 'itemset' => array(
+ 'notes' => array(
+ null, "Set de mazmorra 1", "Set de mazmorra 2", "Set de banda tier 1",
+ "Set de banda tier 2", "Set de banda tier 3", "Set JcJ nivel 60 superior", "Set JcJ nivel 60 superior (obsoleto)",
+ "Set JcJ nivel 60 épico", "Set de las Ruinas de Ahn'Qiraj", "Set del Templo de Ahn'Qiraj", "Set de Zul'Gurub",
+ "Set de banda tier 4", "Set de banda tier 5", "Set de mazmorra 3", "Set de la Cuenca de Arathi",
+ "Set JcJ nivel 70 superior", "Set de la Temporada de Arenas 1", "Set de banda tier 6", "Set de la Temporada de Arenas 2",
+ "Set de la Temporada de Arenas 3", "Set JcJ nivel 70 superior 2", "Set de la Temporada de Arenas 4", "Set de banda tier 7",
+ "Set de la Temporada de Arenas 5", "Set de banda tier 8", "Set de la Temporada de Arenas 6", "Set de banda tier 9",
+ "Set de la Temporada de Arenas 7", "Set de banda tier 10", "Set de la Temporada de Arenas 8"
+ ),
+ 'types' => array(
+ null, "Tela", "Cuero", "Malla", "Placas", "Daga", "Anillo",
+ "Arma de puño", "Hacha de uno mano", "Maza de uno mano", "Espada de uno mano", "Abalorio", "Amuleto"
+ )
+ ),
'spell' => array(
'remaining' => "%s restantes",
'untilCanceled' => "hasta que se cancela",
@@ -218,6 +240,10 @@ $lang = array(
'socket' => array(
"Ranura meta", "Ranura roja", "Ranura amarilla", "Ranura azul", -1 => "Ranura prismática "
),
+ 'quality' => array (
+ "Pobre", "Común", "Poco Común", "Raro",
+ "Épica", "Legendaria", "Artefacto", "Reliquia"
+ ),
'trigger' => array (
"Uso: ", "Equipar: ", "Probabilidad al acertar: ", null, null,
null, null
diff --git a/localization/locale_frfr.php b/localization/locale_frfr.php
index 755199b5..678d184b 100644
--- a/localization/locale_frfr.php
+++ b/localization/locale_frfr.php
@@ -18,7 +18,6 @@ $lang = array(
'profiles' => "Vos personnages", // translate.google :x
'links' => "Liens",
'pageNotFound' => "Ce %s n'existe pas.",
- 'both' => "Les deux",
'gender' => "Genre",
'sex' => [null, 'Homme', 'Femme'],
'quickFacts' => "En bref",
@@ -46,6 +45,17 @@ $lang = array(
'millisecsAbbr' => "[ms]",
'name' => "Nom",
+ // filter
+ 'extSearch' => "Recherche avancée",
+ 'addFilter' => "Ajouter un autre filtre",
+ 'match' => "Critère",
+ 'allFilter' => "Tous les filtres",
+ 'oneFilter' => "Au moins un",
+ 'applyFilter' => "Appliquer le filtre",
+ 'resetForm' => "Rétablir",
+ 'refineSearch' => "Astuce : Affinez votre recherche en utilisant une sous-catégorie.",
+
+ // infobox
'disabled' => "[Disabled]",
'disabledHint' => "[Cannot be attained or completed]",
'serverside' => "[Serverside]",
@@ -58,10 +68,10 @@ $lang = array(
'tryAgain' => "Veuillez essayer d'autres mots ou vérifiez l'orthographe des termes de recherche.",
),
'game' => array (
- 'alliance' => "Alliance",
- 'horde' => "Horde",
'class' => "classe",
'classes' => "Classes",
+ 'currency' => "monnaies",
+ 'currencies' => "Monnaies",
'races' => "Races",
'title' => "titre",
'titles' => "Titres",
@@ -69,15 +79,18 @@ $lang = array(
'event' => "Évènement mondial",
'events' => "Évènements mondiaux",
'cooldown' => "%s de recharge",
+ 'itemset' => "ensemble d'objets",
+ 'itemsets' => "Ensembles d'objets",
'requires' => "Requiert",
'reqLevel' => "Niveau %s requis",
'reqLevelHlm' => "Requiert Niveau %s",
'valueDelim' => " - ",
+ 'si' => array(-2 => "Horde seulement", -1 => "Alliance seulement", null, "Alliance", "Horde", "Les deux"),
'resistances' => array(null, 'Résistance au Sacré', 'Résistance au Feu', 'Résistance à la Nature', 'Résistance au Givre', 'Résistance à l\'Ombre', 'Résistance aux Arcanes'),
'di' => array(null, "Magie", "Malédiction", "Maladie", "Poison", "Camouflage", "Invisibilité", null, null, "Enrager"),
'sc' => array("Physique", "Sacré", "Feu", "Nature", "Givre", "Ombre", "Arcane"),
- 'cl' => array("UNK_CL0", "Guerrier", "Paladin", "Chasseur", "Voleur", "Prêtre", "DeathChevalier de la mort", "Chaman", "Mage", "Démoniste", 'UNK_CL10', "Druide"),
- 'ra' => array(-2 => "Horde", -1 => "Alliance", "Les deux", "Humain", "Orc", "Nain", "Elfe de la nuit", "Mort-vivant", "Tauren", "Gnome", "Troll", 'UNK_RA9', "Elfe de sang", "Draeneï"),
+ 'cl' => array(null, "Guerrier", "Paladin", "Chasseur", "Voleur", "Prêtre", "DeathChevalier de la mort", "Chaman", "Mage", "Démoniste", null, "Druide"),
+ 'ra' => array(-2 => "Horde", -1 => "Alliance", "Les deux", "Humain", "Orc", "Nain", "Elfe de la nuit", "Mort-vivant", "Tauren", "Gnome", "Troll", null, "Elfe de sang", "Draeneï"),
'rep' => array("Détesté", "Hostile", "Inamical", "Neutre", "Amical", "Honoré", "Révéré", "Exalté"),
'st' => array(
null, "Forme de félin", "Arbre de vie", "Forme de voyage", "Aquatic Form",
@@ -96,18 +109,6 @@ $lang = array(
"Marshal / General", "Field Marshal / Warlord", "Grand Marshal / High Warlord"
),
),
- 'filter' => array(
- 'extSearch' => "Recherche avancée",
- 'onlyAlliance' => "Alliance seulement",
- 'onlyHorde' => "Horde seulement",
- 'addFilter' => "Ajouter un autre filtre",
- 'match' => "Critère",
- 'allFilter' => "Tous les filtres",
- 'oneFilter' => "Au moins un",
- 'applyFilter' => "Appliquer le filtre",
- 'resetForm' => "Rétablir",
- 'refineSearch' => "Astuce : Affinez votre recherche en utilisant une sous-catégorie.",
- ),
'error' => array(
'errNotFound' => "Page not found",
'errPage' => "What? How did you... nevermind that!\n
\n
\nIt appears that the page you have requested cannot be found. At least, not in this dimension.\n
\n
\nPerhaps a few tweaks to the [WH-799 Major Confabulation Engine] may result in the page suddenly making an appearance!\n\n\nOr, you can try \ncontacting us\n- the stability of the WH-799 is debatable, and we wouldn't want another accident...",
@@ -165,6 +166,27 @@ $lang = array(
'Général', 'Joueur ctr. Joueur', 'Réputation', 'Donjons & raids', 'Quêtes', 'Métiers', 'Évènements mondiaux'
)
),
+ 'currency' => array(
+ 'cat' => array(
+ 1 => "Divers", 2 => "JcJ", 4 => "Classique", 21 => "Wrath of the Lich King", 22 => "Raid", 23 => "Burning Crusade", 41 => "Test", 3 => "Inutilisées"
+ )
+ ),
+ 'itemset' => array(
+ 'notes' => array(
+ null, "Ensemble de donjon 1", "Ensemble de donjon 2", "Ensemble de raid palier 1",
+ "Ensemble de raid palier 2", "Ensemble de raid palier 3", "Ensemble JcJ niveau 60 supérieur", "Ensemble JcJ niveau 60 supérieur (désuet)",
+ "Ensemble JcJ niveau 60 épique", "Ensemble des ruines d'Ahn'Qiraj", "Ensemble d'Ahn'Qiraj", "Ensemble de Zul'Gurub",
+ "Ensemble de raid palier 4", "Ensemble de raid palier 5", "Ensemble de donjon 3", "Ensemble du bassin d'Arathi",
+ "Ensemble JcJ niveau 70 supérieur", "Ensemble d'arène saison 1", "Ensemble de raid palier 6", "Ensemble d'arène saison 2",
+ "Ensemble d'arène saison 3", "Ensemble JcJ niveau 70 supérieur 2", "Ensemble d'arène saison 4", "Ensemble de raid palier 7",
+ "Ensemble d'arène saison 5", "Ensemble de raid palier 8", "Ensemble d'arène saison 6", "Ensemble de raid palier 9",
+ "Ensemble d'arène saison 7", "Ensemble de raid palier 10", "Set d'Arena de la Saison 8"
+ ),
+ 'types' => array(
+ null, "Tissu", "Cuir", "Mailles", "Plaques", "Dague", "Anneau",
+ "Arme de pugilat", "Hache à une main", "Masse à une main", "Épée à une main", "Bijou", "Amulette"
+ )
+ ),
'spell' => array(
'remaining' => "%s restantes",
'untilCanceled' => "jusqu’à annulation",
@@ -218,6 +240,10 @@ $lang = array(
'socket' => array(
"Méta-châsse", "Châsse rouge", "Châsse jaune", "Châsse bleue", -1 => "Châsse prismatique"
),
+ 'quality' => array (
+ "Médiocre", "Classique", "Bonne", "Rare",
+ "Épique", "Légendaire", "Artefact", "Héritage"
+ ),
'trigger' => array (
"Utilise: ", "Équipé : ", "Chances quand vous touchez : ", null, null,
null, null
diff --git a/localization/locale_ruru.php b/localization/locale_ruru.php
index 1fc25eda..7814a0ae 100644
--- a/localization/locale_ruru.php
+++ b/localization/locale_ruru.php
@@ -18,7 +18,6 @@ $lang = array(
'profiles' => "Ваши персонажи", // translate.google :x
'links' => "Ссылки",
'pageNotFound' => "Такое %s не существует.",
- 'both' => "Обе",
'gender' => "Пол",
'sex' => [null, 'Мужчина', 'Женщина'],
'quickFacts' => "Краткая информация",
@@ -46,6 +45,17 @@ $lang = array(
'millisecsAbbr' => "[ms]",
'name' => "Название",
+ // filter
+ 'extSearch' => "Расширенный поиск",
+ 'addFilter' => "Добавить другой фильтр",
+ 'match' => "Совпадение",
+ 'allFilter' => "Все фильтры",
+ 'oneFilter' => "Любое совпадение",
+ 'applyFilter' => "Применить фильтр",
+ 'resetForm' => "Очистить форму",
+ 'refineSearch' => "Совет: Уточните поиск, добавив подкатегорию.",
+
+ // infobox
'disabled' => "[Disabled]",
'disabledHint' => "[Cannot be attained or completed]",
'serverside' => "[Serverside]",
@@ -58,10 +68,10 @@ $lang = array(
'tryAgain' => "Пожалуйста, попробуйте другие ключевые слова или проверьте правильность запроса.",
),
'game' => array(
- 'alliance' => "Альянс",
- 'horde' => "Орда",
'class' => "класс",
'classes' => "Классы",
+ 'currency' => "валюта",
+ 'currencies' => "Валюта",
'races' => "Расы",
'title' => "звание",
'titles' => "Звания",
@@ -69,15 +79,18 @@ $lang = array(
'event' => "Событие",
'events' => "Игровые события",
'cooldown' => "Восстановление: %s",
+ 'itemset' => "комплект",
+ 'itemsets' => "Комплекты",
'requires' => "Требует:",
'reqLevel' => "Требуется уровень: %s",
'reqLevelHlm' => "Требуется уровень: %s",
'valueDelim' => " - ",
+ 'si' => array(-2 => "Орда только", -1 => "Альянс только", null, "Альянс", "Орда", "Обе"),
'resistances' => array(null, 'Сопротивление светлой магии', 'Сопротивление огню', 'Сопротивление силам природы', 'Сопротивление магии льда', 'Сопротивление темной магии', 'Сопротивление тайной магии'),
'di' => array(null, "Magic", "Curse", "Disease", "Poison", "Stealth", "Invisibility", null, null, "Enrage"),
'sc' => array("Физический урон", "Свет", "Огонь", "природа", "Лед", "Тьма", "Тайная магия"),
- 'cl' => array("UNK_CL0", "Воин", "Паладин", "Охотник", "Разбойник", "Жрец", "Рыцарь смерти", "Шаман", "Маг", "Чернокнижник", 'UNK_CL10', "Друид"),
- 'ra' => array(-2 => "Орда", -1 => "Альянс", "Обе", "Человек", "Орк", "Дворф", "Ночной эльф", "Нежить", "Таурен", "Гном", "Тролль", 'UNK_RA9', "Эльф крови", "Дреней"),
+ 'cl' => array(null, "Воин", "Паладин", "Охотник", "Разбойник", "Жрец", "Рыцарь смерти", "Шаман", "Маг", "Чернокнижник", null, "Друид"),
+ 'ra' => array(-2 => "Орда", -1 => "Альянс", "Обе", "Человек", "Орк", "Дворф", "Ночной эльф", "Нежить", "Таурен", "Гном", "Тролль", null, "Эльф крови", "Дреней"),
'rep' => array("Ненависть", "Враждебность", "Неприязнь", "Равнодушие", "Дружелюбие", "Уважение", "Почтение", "Превознесение"),
'st' => array(
null, "Облик кошки", "TОблик Древа жизни", "Походный облик", "Водный облик",
@@ -96,18 +109,6 @@ $lang = array(
"Marshal / General", "Field Marshal / Warlord", "Grand Marshal / High Warlord"
),
),
- 'filter' => array(
- 'extSearch' => "Расширенный поиск",
- 'onlyAlliance' => "Альянс только",
- 'onlyHorde' => "Орда только",
- 'addFilter' => "Добавить другой фильтр",
- 'match' => "Совпадение",
- 'allFilter' => "Все фильтры",
- 'oneFilter' => "Любое совпадение",
- 'applyFilter' => "Применить фильтр",
- 'resetForm' => "Очистить форму",
- 'refineSearch' => "Совет: Уточните поиск, добавив подкатегорию.",
- ),
'error' => array(
'errNotFound' => "Page not found",
'errPage' => "What? How did you... nevermind that!\n
\n
\nIt appears that the page you have requested cannot be found. At least, not in this dimension.\n
\n
\nPerhaps a few tweaks to the [WH-799 Major Confabulation Engine] may result in the page suddenly making an appearance!\n\n\nOr, you can try \ncontacting us\n- the stability of the WH-799 is debatable, and we wouldn't want another accident...",
@@ -165,6 +166,27 @@ $lang = array(
'Общее', 'PvP', 'Репутация', 'Подземелья и рейды', 'Задания', 'Профессии', 'Игровые события'
)
),
+ 'currency' => array(
+ 'cat' => array(
+ 1 => "Разное", 2 => "PvP", 4 => "World of Warcraft", 21 => "Wrath of the Lich King", 22 => "Подземелья и рейды", 23 => "Burning Crusade", 41 => "Test", 3 => "Неактивно"
+ )
+ ),
+ 'itemset' => array(
+ 'notes' => array(
+ null, "Комплект подземелий 1", "Комплект подземелий 2", "Рейдовый комплект Tier 1",
+ "Рейдовый комплект Tier 2", "Рейдовый комплект Tier 3", "PvP Комплект для 60 уровня", "PvP Комплект для 60 уровня (старая версия)",
+ "Эпический PvP Комплект для 60 уровня", "Комплект из Руин Ан'Киража", "Комплект из Храма Ан'Киража", "Комплект Зул'Гуруба",
+ "Рейдовый комплект Tier 4", "Рейдовый комплект Tier 5", "Комплект подземелий 3", "Комплект Низин Арати",
+ "Редкий PvP Комплект для 70 уровня", "Комплект Арены 1 сезона", "Рейдовый комплект Tier 6", "Комплект Арены 2 сезона",
+ "Комплект Арены 3 сезона", "PvP Комплект для 70 уровня 2", "Комплект Арены 4 сезона", "Рейдовый комплект Tier 7",
+ "Комплект Арены 5 сезона", "Рейдовый комплект Tier 8", "Комплект Арены 6 сезона", "Рейдовый комплект Tier 9",
+ "Комплект Арены 7 сезона", "Рейдовый комплект Tier 10", "Комплект Арены 8 сезона"
+ ),
+ 'types' => array(
+ null, "Ткань", "Кожа", "Кольчуга", "Латы", "Кинжал", "Кольцо",
+ "Кистевое оружие", "Одноручный топор", "Одноручное дробящее", "Одноручный меч", "Аксессуар", "Амулет"
+ )
+ ),
'spell' => array(
'remaining' => "Осталось: %s",
'untilCanceled' => "до отмены",
@@ -218,6 +240,10 @@ $lang = array(
'socket' => array(
"Особое гнездо", "Красное гнездо", "Желтое гнездо", "Синее гнездо", -1 => "Бесцветное гнездо"
),
+ 'quality' => array (
+ "Низкий", "Обычный", "Необычный", "Редкий",
+ "Эпический", "Легендарный", "Артефакт", "Фамильная черта"
+ ),
'trigger' => array (
"Использование: ", "Если на персонаже: ", "Возможный эффект при попадании: ", null,
null, null, null
diff --git a/pages/compare.php b/pages/compare.php
index 42a21052..2d513f2b 100644
--- a/pages/compare.php
+++ b/pages/compare.php
@@ -48,7 +48,7 @@ if ($compareString)
$pageData['summary'] = json_encode($outSet, JSON_NUMERIC_CHECK);
$iList = new ItemList(array(['i.entry', $items]));
- $data = $iList->getListviewData(ITEMINFO_SUBITEMS | ITEMINFO_JSON);
+ $data = $iList->getListviewData(ITEMINFO_SUBITEMS | ITEMINFO_JSON);
foreach ($data as $id => $item)
{
while ($iList->id != $id)
diff --git a/pages/title.php b/pages/title.php
index 3f2376b0..b926933b 100644
--- a/pages/title.php
+++ b/pages/title.php
@@ -22,12 +22,12 @@ if (!$smarty->loadCache($cacheKeyPage, $pageData))
$infobox = [];
$colon = User::$localeId == LOCALE_FR ? ' : ' : ': '; // Je suis un prick! <_<
- if ($title->getField('side') == 1)
- $infobox[] = Lang::$main['side'].$colon.'[span class=alliance-icon]'.Lang::$game['alliance'].'[/span]';
- else if ($title->getField('side') == 2)
- $infobox[] = Lang::$main['side'].$colon.'[span class=horde-icon]'.Lang::$game['horde'].'[/span]';
+ if ($title->getField('side') == SIDE_ALLIANCE)
+ $infobox[] = Lang::$main['side'].$colon.'[span class=alliance-icon]'.Lang::$game['si'][SIDE_ALLIANCE].'[/span]';
+ else if ($title->getField('side') == SIDE_HORDE)
+ $infobox[] = Lang::$main['side'].$colon.'[span class=horde-icon]'.Lang::$game['si'][SIDE_HORDE].'[/span]';
else
- $infobox[] = Lang::$main['side'].$colon.Lang::$main['both'];
+ $infobox[] = Lang::$main['side'].$colon.Lang::$game['si'][SIDE_BOTH];
if ($g = $title->getField('gender'))
$infobox[] = Lang::$main['gender'].$colon.'[span class='.($g == 2 ? 'female' : 'male').'-icon]'.Lang::$main['sex'][$g].'[/span]';
diff --git a/search.php b/search.php
index 8c536feb..d458f2d1 100644
--- a/search.php
+++ b/search.php
@@ -232,7 +232,7 @@ if ($searchMask & 0x10)
if ($data = $money->getListviewData())
{
while ($money->iterate())
- $data[$money->id]['param1'] = strToLower($money->getField('iconString'));
+ $data[$money->id]['param1'] = '"'.strToLower($money->getField('iconString')).'"';
$found['currency'] = array(
'type' => TYPE_CURRENCY,
@@ -249,7 +249,7 @@ if ($searchMask & 0x10)
// 6 Itemsets
if ($searchMask & 0x20)
{
- $sets = new ItemsetList(array($maxResults, ['name_loc'.User::$localeId, $query]));
+ $sets = new ItemsetList(array($maxResults, ['item1', 0, '!'], ['name_loc'.User::$localeId, $query])); // remove empty sets from search
$sets->addGlobalsToJscript($jsGlobals);
if ($data = $sets->getListviewData())
@@ -274,19 +274,21 @@ if ($searchMask & 0x20)
if ($searchMask & 0x40)
{
if (($searchMask & SEARCH_TYPE_JSON) && $type == TYPE_ITEMSET && isset($found['itemset']))
- $conditions = [['i.entry', array_keys($found['itemset']['pcsToSet'])]];
+ $conditions = [['i.entry', array_keys($found['itemset']['pcsToSet'])], 0];
else if (($searchMask & SEARCH_TYPE_JSON) && $type == TYPE_ITEM)
$conditions = [['i.class', [2, 4]], [User::$localeId ? 'name_loc'.User::$localeId : 'name', $query], $AoWoWconf['sqlLimit']];
else
$conditions = [[User::$localeId ? 'name_loc'.User::$localeId : 'name', $query], $maxResults];
$items = new ItemList($conditions, @$found['itemset']['pcsToSet']);
+
$items->addGlobalsToJscript($jsGlobals);
if ($data = $items->getListviewData($searchMask & SEARCH_TYPE_JSON ? (ITEMINFO_SUBITEMS | ITEMINFO_JSON) : 0))
{
while ($items->iterate())
{
+ $data[$items->id]['name'] = substr($data[$items->id]['name'], 1);
$data[$items->id]['param1'] = '"'.$items->getField('icon').'"';
$data[$items->id]['param2'] = $items->getField('Quality');
}
diff --git a/template/js/filters.js b/template/js/filters.js
index 6f09918b..59ce6dee 100644
--- a/template/js/filters.js
+++ b/template/js/filters.js
@@ -3,1216 +3,1902 @@ var fi_weights = null;
var fi_weightsFactor;
var fi_nExtraCols;
var fi_gemScores;
-var fi_upgradeId;
+
var fi_filters = {
- items: [
- {id: 1, name: "sepgeneral"},
- {id: 131, name: "addedinwotlk", type: "yn"},
- {id: 110, name: "addedinbc", type: "yn"},
- {id: 82, name: "addedinp24", type: "yn"},
- {id: 2, name: "bindonpickup", type: "yn"},
- {id: 3, name: "bindonequip", type: "yn"},
- {id: 4, name: "bindonuse", type: "yn"},
- {id: 133, name: "bindtoaccount", type: "yn"},
- {id: 146, name: "heroicitem", type: "yn"},
- {id: 107, name: "effecttext", type: "str"},
- {id: 81, name: "fitsgemslot", type: "gem"},
- {id: 132, name: "glyphtype", type: "glyphtype"},
- {id: 80, name: "hassockets", type: "gem"},
- {id: 100, name: "nsockets", type: "num"},
- {id: 124, name: "randomenchants", type: "str"},
- {id: 125, name: "reqarenartng", type: "num"},
- {id: 111, name: "reqskillrank", type: "num"},
- {id: 99, name: "requiresprof", type: "profession"},
- {id: 66, name: "requiresprofspec", type: "profession"},
- {id: 17, name: "requiresrepwith", type: "faction-any+none"},
- {id: 15, name: "unique", type: "yn"},
- {id: 83, name: "uniqueequipped", type: "yn"},
- {id: 152, name: "classspecific", type: "classs"},
- {id: 153, name: "racespecific", type: "race"},
- {id: 19, name: "sepbasestats"},
- {id: 21, name: "agi", type: "num"},
- {id: 23, name: "int", type: "num"},
- {id: 22, name: "sta", type: "num"},
- {id: 24, name: "spi", type: "num"},
- {id: 20, name: "str", type: "num"},
- {id: 115, name: "health", type: "num"},
- {id: 116, name: "mana", type: "num"},
- {id: 60, name: "healthrgn", type: "num"},
- {id: 61, name: "manargn", type: "num"},
- {id: 120, name: "sepdefensivestats"},
- {id: 41, name: "armor", type: "num"},
- {id: 44, name: "blockrtng", type: "num"},
- {id: 43, name: "block", type: "num"},
- {id: 42, name: "defrtng", type: "num"},
- {id: 45, name: "dodgertng", type: "num"},
- {id: 46, name: "parryrtng", type: "num"},
- {id: 79, name: "resirtng", type: "num"},
- {id: 31, name: "sepoffensivestats"},
- {id: 77, name: "atkpwr", type: "num"},
- {id: 97, name: "feratkpwr", type: "num", indent: 1},
- {id: 114, name: "armorpenrtng", type: "num"},
- {id: 96, name: "critstrkrtng", type: "num"},
- {id: 117, name: "exprtng", type: "num"},
- {id: 103, name: "hastertng", type: "num"},
- {id: 119, name: "hitrtng", type: "num"},
- {id: 94, name: "splpen", type: "num"},
- {id: 123, name: "splpwr", type: "num"},
- {id: 52, name: "arcsplpwr", type: "num", indent: 1},
- {id: 53, name: "firsplpwr", type: "num", indent: 1},
- {id: 54, name: "frosplpwr", type: "num", indent: 1},
- {id: 55, name: "holsplpwr", type: "num", indent: 1},
- {id: 56, name: "natsplpwr", type: "num", indent: 1},
- {id: 57, name: "shasplpwr", type: "num", indent: 1},
- {id: 122, name: "sepweaponstats"},
- {id: 32, name: "dps", type: "num"},
- {id: 35, name: "damagetype", type: "resistance"},
- {id: 33, name: "dmgmin1", type: "num"},
- {id: 34, name: "dmgmax1", type: "num"},
- {id: 36, name: "speed", type: "num"},
- {id: 134, name: "mledps", type: "num"},
- {id: 135, name: "mledmgmin", type: "num"},
- {id: 136, name: "mledmgmax", type: "num"},
- {id: 137, name: "mlespeed", type: "num"},
- {id: 138, name: "rgddps", type: "num"},
- {id: 139, name: "rgddmgmin", type: "num"},
- {id: 140, name: "rgddmgmax", type: "num"},
- {id: 141, name: "rgdspeed", type: "num"},
- {id: 121, name: "sepresistances"},
- {id: 25, name: "arcres", type: "num"},
- {id: 26, name: "firres", type: "num"},
- {id: 28, name: "frores", type: "num"},
- {id: 30, name: "holres", type: "num"},
- {id: 27, name: "natres", type: "num"},
- {id: 29, name: "shares", type: "num"},
- {id: 67, name: "sepsource"},
- {id: 86, name: "craftedprof", type: "profession"},
- {id: 16, name: "dropsin", type: "zone"},
- {id: 105, name: "dropsinnormal", type: "heroicdungeon-any"},
- {id: 106, name: "dropsinheroic", type: "heroicdungeon-any"},
- {id: 147, name: "dropsinnormal10", type: "multimoderaid-any"},
- {id: 148, name: "dropsinnormal25", type: "multimoderaid-any"},
- {id: 149, name: "dropsinheroic10", type: "heroicraid-any"},
- {id: 150, name: "dropsinheroic25", type: "heroicraid-any"},
- {id: 68, name: "otdisenchanting", type: "yn"},
- {id: 69, name: "otfishing", type: "yn"},
- {id: 70, name: "otherbgathering", type: "yn"},
- {id: 71, name: "otitemopening", type: "yn"},
- {id: 72, name: "otlooting", type: "yn"},
- {id: 143, name: "otmilling", type: "yn"},
- {id: 73, name: "otmining", type: "yn"},
- {id: 74, name: "otobjectopening", type: "yn"},
- {id: 75, name: "otpickpocketing", type: "yn"},
- {id: 88, name: "otprospecting", type: "yn"},
- {id: 93, name: "otpvp", type: "pvp"},
- {id: 76, name: "otskinning", type: "yn"},
- {id: 118, name: "purchasablewith", type: "currency-any"},
- {id: 144, name: "purchasablewithhonor", type: "yn"},
- {id: 145, name: "purchasablewitharena", type: "yn"},
- {id: 18, name: "rewardedbyfactionquest", type: "side"},
- {id: 126, name: "rewardedbyquestin", type: "zone-any"},
- {id: 92, name: "soldbyvendor", type: "yn"},
- {id: 129, name: "soldbynpc", type: "str-small"},
- {id: 128, name: "sepsource", type: "itemsource"},
- {id: 47, name: "sepindividualstats"},
- {id: 37, name: "mleatkpwr", type: "num"},
- {id: 84, name: "mlecritstrkrtng", type: "num"},
- {id: 78, name: "mlehastertng", type: "num"},
- {id: 95, name: "mlehitrtng", type: "num"},
- {id: 38, name: "rgdatkpwr", type: "num"},
- {id: 40, name: "rgdcritstrkrtng", type: "num"},
- {id: 101, name: "rgdhastertng", type: "num"},
- {id: 39, name: "rgdhitrtng", type: "num"},
- {id: 49, name: "splcritstrkrtng", type: "num"},
- {id: 102, name: "splhastertng", type: "num"},
- {id: 48, name: "splhitrtng", type: "num"},
- {id: 51, name: "spldmg", type: "num"},
- {id: 50, name: "splheal", type: "num"},
- {id: 58, name: "sepmisc"},
- {id: 109, name: "armorbonus", type: "num"},
- {id: 90, name: "avgbuyout", type: "num"},
- {id: 65, name: "avgmoney", type: "num"},
- {id: 63, name: "buyprice", type: "num"},
- {id: 9, name: "conjureditem", type: "yn"},
- {id: 62, name: "cooldown", type: "num"},
- {id: 8, name: "disenchantable", type: "yn"},
- {id: 59, name: "dura", type: "num"},
- {id: 104, name: "flavortext", type: "str"},
- {id: 7, name: "hasflavortext", type: "yn"},
- {id: 142, name: "icon", type: "str"},
- {id: 10, name: "locked", type: "yn"},
- {id: 127, name: "notavailable", type: "yn"},
- {id: 85, name: "objectivequest", type: "side"},
- {id: 11, name: "openable", type: "yn"},
- {id: 12, name: "partofset", type: "yn"},
- {id: 98, name: "partyloot", type: "yn"},
- {id: 89, name: "prospectable", type: "yn"},
- {id: 5, name: "questitem", type: "yn"},
- {id: 13, name: "randomlyenchanted", type: "yn"},
- {id: 14, name: "readable", type: "yn"},
- {id: 87, name: "reagentforability", type: "profession"},
- {id: 64, name: "sellprice", type: "num"},
- {id: 6, name: "startsquest", type: "side"},
- {id: 91, name: "tool", type: "totemcategory"},
- {id: 151, name: "id", type: "num", before: "name"},
- {id: 112, name: "sepcommunity"},
- {id: 130, name: "hascomments", type: "yn"},
- {id: 113, name: "hasscreenshots", type: "yn"}
- ],
- npcs: [
- {id: 4, name: "sepgeneral"},
- {id: 36, name: "addedinwotlk", type: "yn"},
- {id: 26, name: "addedinbc", type: "yn"},
- {id: 13, name: "addedinp24", type: "yn"},
- {id: 5, name: "canrepair", type: "yn"},
- {id: 3, name: "faction", type: "faction"},
- {id: 6, name: "foundin", type: "zone"},
- {id: 1, name: "health", type: "num"},
- {id: 2, name: "mana", type: "num"},
- {id: 32, name: "instanceboss", type: "yn"},
- {id: 7, name: "startsquest", type: "side"},
- {id: 8, name: "endsquest", type: "side"},
- {id: 34, name: "usemodel", type: "str-small"},
- {id: 35, name: "useskin", type: "str"},
- {id: 37, name: "id", type: "num"},
- {id: 14, name: "seploot"},
- {id: 12, name: "averagemoneydropped", type: "num"},
- {id: 15, name: "gatherable", type: "yn"},
- {id: 9, name: "lootable", type: "yn"},
- {id: 16, name: "minable", type: "yn"},
- {id: 11, name: "pickpocketable", type: "yn"},
- {id: 10, name: "skinnable", type: "yn"},
- {id: 17, name: "sepgossipoptions"},
- {id: 18, name: "auctioneer", type: "yn"},
- {id: 19, name: "banker", type: "yn"},
- {id: 20, name: "battlemaster", type: "yn"},
- {id: 21, name: "flightmaster", type: "yn"},
- {id: 22, name: "guildmaster", type: "yn"},
- {id: 23, name: "innkeeper", type: "yn"},
- {id: 24, name: "talentunlearner", type: "yn"},
- {id: 25, name: "tabardvendor", type: "yn"},
- {id: 27, name: "stablemaster", type: "yn"},
- {id: 28, name: "trainer", type: "yn"},
- {id: 29, name: "vendor", type: "yn"},
- {id: 30, name: "sepcommunity"},
- {id: 33, name: "hascomments", type: "yn"},
- {id: 31, name: "hasscreenshots", type: "yn"}
- ],
- objects: [
- {id: 8, name: "sepgeneral"},
- {id: 14, name: "addedinwotlk", type: "yn"},
- {id: 12, name: "addedinbc", type: "yn"},
- {id: 6, name: "addedinp24", type: "yn"},
- {id: 1, name: "foundin", type: "zone"},
- {id: 7, name: "requiredskilllevel", type: "num"},
- {id: 2, name: "startsquest", type: "side"},
- {id: 3, name: "endsquest", type: "side"},
- {id: 15, name: "id", type: "num"},
- {id: 9, name: "seploot"},
- {id: 5, name: "averagemoneycontained", type: "num"},
- {id: 4, name: "openable", type: "yn"},
- {id: 10, name: "sepcommunity"},
- {id: 13, name: "hascomments", type: "yn"},
- {id: 11, name: "hasscreenshots", type: "yn"}
- ],
- quests: [
- {id: 12, name: "sepgeneral"},
- {id: 26, name: "addedinwotlk", type: "yn"},
- {id: 20, name: "addedinbc", type: "yn"},
- {id: 8, name: "addedinp24", type: "yn"},
- {id: 27, name: "daily", type: "yn"},
- {id: 28, name: "weekly", type: "yn"},
- {id: 29, name: "repeatable", type: "yn"},
- {id: 9, name: "objectiveearnrepwith", type: "faction-any+none"},
- {id: 5, name: "sharable", type: "yn"},
- {id: 19, name: "startsfrom", type: "queststart"},
- {id: 21, name: "endsat", type: "questend"},
- {id: 11, name: "suggestedplayers", type: "num"},
- {id: 6, name: "timer", type: "num"},
- {id: 30, name: "id", type: "num"},
- {id: 13, name: "sepgainsrewards"},
- {id: 2, name: "experiencegained", type: "num"},
- {id: 23, name: "itemchoices", type: "num"},
- {id: 22, name: "itemrewards", type: "num"},
- {id: 3, name: "moneyrewarded", type: "num"},
- {id: 4, name: "spellrewarded", type: "yn"},
- {id: 1, name: "increasesrepwith", type: "faction"},
- {id: 10, name: "decreasesrepwith", type: "faction"},
- {id: 14, name: "sepseries"},
- {id: 7, name: "firstquestseries", type: "yn"},
- {id: 15, name: "lastquestseries", type: "yn"},
- {id: 16, name: "partseries", type: "yn"},
- {id: 17, name: "sepcommunity"},
- {id: 25, name: "hascomments", type: "yn"},
- {id: 18, name: "hasscreenshots", type: "yn"},
- {id: 24, name: "lacksstartend", type: "yn"}
- ],
- spells: [
- {id: 6, name: "sepgeneral"},
- {id: 2, name: "prcntbasemanarequired", type: "num"},
- {id: 19, name: "scaling", type: "yn"},
- {id: 10, name: "firstrank", type: "yn"},
- {id: 12, name: "lastrank", type: "yn"},
- {id: 13, name: "rankno", type: "num"},
- {id: 1, name: "manaenergyragecost", type: "num"},
- {id: 3, name: "requiresnearbyobject", type: "yn"},
- {id: 5, name: "requiresprofspec", type: "yn"},
- {id: 9, name: "source", type: "spellsource"},
- {id: 4, name: "trainingcost", type: "num"},
- {id: 14, name: "id", type: "num"},
- {id: 15, name: "icon", type: "str"},
- {id: 7, name: "sepcommunity"},
- {id: 11, name: "hascomments", type: "yn"},
- {id: 8, name: "hasscreenshots", type: "yn"}
- ],
- achievements: [
- {id: 1, name: "sepgeneral"},
- {id: 2, name: "givesreward", type: "yn"},
- {id: 3, name: "rewardtext", type: "str"},
- {id: 4, name: "location", type: "zone"},
- {id: 9, name: "id", type: "num"},
- {id: 8, name: "sepseries"},
- {id: 5, name: "firstseries", type: "yn"},
- {id: 6, name: "lastseries", type: "yn"},
- {id: 7, name: "partseries", type: "yn"}
- ],
- profiles: [
- {id: 1, name: "sepgeneral"},
- {id: 2, name: "gearscore", type: "num"},
- {id: 3, name: "achievementpoints", type: "num"},
- {id: 21, name: "wearingitem", type: "str-small"},
- {id: 23, name: "completedachievement", type: "str-small"},
- {id: 24, name: "sepprofession"},
- {id: 25, name: "alchemy", type: "str-small"},
- {id: 26, name: "blacksmithing", type: "str-small"},
- {id: 27, name: "enchanting", type: "str-small"},
- {id: 28, name: "engineering", type: "str-small"},
- {id: 29, name: "herbalism", type: "str-small"},
- {id: 30, name: "inscription", type: "str-small"},
- {id: 31, name: "jewelcrafting", type: "str-small"},
- {id: 32, name: "leatherworking", type: "str-small"},
- {id: 33, name: "mining", type: "str-small"},
- {id: 34, name: "skinning", type: "str-small"},
- {id: 35, name: "tailoring", type: "str-small"},
- {id: 4, name: "septalent"},
- {id: 5, name: "talenttree1", type: "num"},
- {id: 6, name: "talenttree2", type: "num"},
- {id: 7, name: "talenttree3", type: "num"},
- {id: 8, name: "sepguild"},
- {id: 36, name: "hasguild", type: "yn"},
- {id: 9, name: "guildname", type: "str"},
- {id: 10, name: "guildrank", type: "num"},
- {id: 11, name: "separenateam"},
- {id: 12, name: "teamname2v2", type: "str"},
- {id: 13, name: "teamrtng2v2", type: "num"},
- {id: 14, name: "teamcontrib2v2", type: "num"},
- {id: 15, name: "teamname3v3", type: "str"},
- {id: 16, name: "teamrtng3v3", type: "num"},
- {id: 17, name: "teamcontrib3v3", type: "num"},
- {id: 18, name: "teamname5v5", type: "str"},
- {id: 19, name: "teamrtng5v5", type: "num"},
- {id: 20, name: "teamcontrib5v5", type: "num"}
- ]
+
+ items: [
+ { id: 1, name: 'sepgeneral' },
+ { id: 2, name: 'bindonpickup', type: 'yn' },
+ { id: 3, name: 'bindonequip', type: 'yn' },
+ { id: 4, name: 'bindonuse', type: 'yn' },
+ { id: 133, name: 'bindtoaccount', type: 'yn' },
+ { id: 146, name: 'heroicitem', type: 'yn' },
+ { id: 107, name: 'effecttext', type: 'str' },
+ { id: 81, name: 'fitsgemslot', type: 'gem' },
+ { id: 132, name: 'glyphtype', type: 'glyphtype' },
+ { id: 80, name: 'hassockets', type: 'gem' },
+ { id: 151, name: 'id', type: 'num', before: 'name', noweights: 1 },
+ { id: 100, name: 'nsockets', type: 'num', noweights: 1 },
+ { id: 124, name: 'randomenchants', type: 'str' },
+ { id: 125, name: 'reqarenartng', type: 'num', noweights: 1 },
+ { id: 111, name: 'reqskillrank', type: 'num', noweights: 1 },
+ { id: 99, name: 'requiresprof', type: 'profession' },
+ { id: 66, name: 'requiresprofspec', type: 'profession' },
+ { id: 17, name: 'requiresrepwith', type: 'faction-any+none' },
+ { id: 169, name: 'requiresevent', type: 'event-any+none' },
+ { id: 160, name: 'relatedevent', type: 'event-any+none' },
+ { id: 168, name: 'teachesspell', type: 'yn' },
+ { id: 15, name: 'unique', type: 'yn' },
+ { id: 83, name: 'uniqueequipped', type: 'yn' },
+ { id: 152, name: 'classspecific', type: 'classs' },
+ { id: 153, name: 'racespecific', type: 'race' },
+
+ { id: 19, name: 'sepbasestats' },
+ { id: 21, name: 'agi', type: 'num' },
+ { id: 23, name: 'int', type: 'num' },
+ { id: 22, name: 'sta', type: 'num' },
+ { id: 24, name: 'spi', type: 'num' },
+ { id: 20, name: 'str', type: 'num' },
+ { id: 115, name: 'health', type: 'num' },
+ { id: 116, name: 'mana', type: 'num' },
+ { id: 60, name: 'healthrgn', type: 'num' },
+ { id: 61, name: 'manargn', type: 'num' },
+
+ { id: 120, name: 'sepdefensivestats' },
+ { id: 41, name: 'armor', type: 'num' },
+ { id: 44, name: 'blockrtng', type: 'num' },
+ { id: 43, name: 'block', type: 'num' },
+ { id: 42, name: 'defrtng', type: 'num' },
+ { id: 45, name: 'dodgertng', type: 'num' },
+ { id: 46, name: 'parryrtng', type: 'num' },
+ { id: 79, name: 'resirtng', type: 'num' },
+
+ { id: 31, name: 'sepoffensivestats' },
+ { id: 77, name: 'atkpwr', type: 'num' },
+ { id: 97, name: 'feratkpwr', type: 'num', indent: 1 },
+ { id: 114, name: 'armorpenrtng', type: 'num' },
+ { id: 96, name: 'critstrkrtng', type: 'num' },
+ { id: 117, name: 'exprtng', type: 'num' },
+ { id: 103, name: 'hastertng', type: 'num' },
+ { id: 119, name: 'hitrtng', type: 'num' },
+ { id: 94, name: 'splpen', type: 'num' },
+ { id: 123, name: 'splpwr', type: 'num' },
+ { id: 52, name: 'arcsplpwr', type: 'num', indent: 1 },
+ { id: 53, name: 'firsplpwr', type: 'num', indent: 1 },
+ { id: 54, name: 'frosplpwr', type: 'num', indent: 1 },
+ { id: 55, name: 'holsplpwr', type: 'num', indent: 1 },
+ { id: 56, name: 'natsplpwr', type: 'num', indent: 1 },
+ { id: 57, name: 'shasplpwr', type: 'num', indent: 1 },
+
+ { id: 122, name: 'sepweaponstats' },
+ { id: 32, name: 'dps', type: 'num' },
+ { id: 35, name: 'damagetype', type: 'resistance' },
+ { id: 33, name: 'dmgmin1', type: 'num' },
+ { id: 34, name: 'dmgmax1', type: 'num' },
+ { id: 36, name: 'speed', type: 'num' },
+ { id: 134, name: 'mledps', type: 'num' },
+ { id: 135, name: 'mledmgmin', type: 'num' },
+ { id: 136, name: 'mledmgmax', type: 'num' },
+ { id: 137, name: 'mlespeed', type: 'num' },
+ { id: 138, name: 'rgddps', type: 'num' },
+ { id: 139, name: 'rgddmgmin', type: 'num' },
+ { id: 140, name: 'rgddmgmax', type: 'num' },
+ { id: 141, name: 'rgdspeed', type: 'num' },
+
+ { id: 121, name: 'sepresistances' },
+ { id: 25, name: 'arcres', type: 'num' },
+ { id: 26, name: 'firres', type: 'num' },
+ { id: 28, name: 'frores', ype: 'num' },
+ { id: 30, name: 'holres', type: 'num' },
+ { id: 27, name: 'natres', type: 'num' },
+ { id: 29, name: 'shares', type: 'num' },
+
+ { id: 67, name: 'sepsource' },
+ { id: 86, name: 'craftedprof', type: 'profession' },
+ { id: 16, name: 'dropsin', type: 'zone' },
+ { id: 105, name: 'dropsinnormal', type: 'heroicdungeon-any' },
+ { id: 106, name: 'dropsinheroic', type: 'heroicdungeon-any' },
+ { id: 147, name: 'dropsinnormal10', type: 'multimoderaid-any' },
+ { id: 148, name: 'dropsinnormal25', type: 'multimoderaid-any' },
+ { id: 149, name: 'dropsinheroic10', type: 'heroicraid-any' },
+ { id: 150, name: 'dropsinheroic25', type: 'heroicraid-any' },
+ { id: 68, name: 'otdisenchanting', type: 'yn' },
+ { id: 69, name: 'otfishing', type: 'yn' },
+ { id: 70, name: 'otherbgathering', type: 'yn' },
+ { id: 71, name: 'otitemopening', type: 'yn' },
+ { id: 72, name: 'otlooting', type: 'yn' },
+ { id: 143, name: 'otmilling', type: 'yn' },
+ { id: 73, name: 'otmining', type: 'yn' },
+ { id: 74, name: 'otobjectopening', type: 'yn' },
+ { id: 75, name: 'otpickpocketing', type: 'yn' },
+ { id: 88, name: 'otprospecting', type: 'yn' },
+ { id: 93, name: 'otpvp', type: 'pvp' },
+ { id: 171, name: 'otredemption', type: 'yn' },
+ { id: 76, name: 'otskinning', type: 'yn' },
+ { id: 158, name: 'purchasablewithcurrency', type: 'currency-any' },
+ { id: 118, name: 'purchasablewithitem', type: 'itemcurrency-any' },
+ { id: 144, name: 'purchasablewithhonor', type: 'yn' },
+ { id: 145, name: 'purchasablewitharena', type: 'yn' },
+ { id: 18, name: 'rewardedbyfactionquest', type: 'side' },
+ { id: 126, name: 'rewardedbyquestin', type: 'zone-any' },
+ { id: 172, name: 'rewardedbyachievement', type: 'yn' },
+ { id: 92, name: 'soldbyvendor', type: 'yn' },
+ { id: 129, name: 'soldbynpc', type: 'str-small' },
+ { id: 128, name: 'sepsource', type: 'itemsource' },
+
+ { id: 47, name: 'sepindividualstats' },
+ { id: 37, name: 'mleatkpwr', type: 'num' },
+ { id: 84, name: 'mlecritstrkrtng', type: 'num' },
+ { id: 78, name: 'mlehastertng', type: 'num' },
+ { id: 95, name: 'mlehitrtng', type: 'num' },
+ { id: 38, name: 'rgdatkpwr', type: 'num' },
+ { id: 40, name: 'rgdcritstrkrtng', type: 'num' },
+ { id: 101, name: 'rgdhastertng', type: 'num' },
+ { id: 39, name: 'rgdhitrtng', type: 'num' },
+ { id: 49, name: 'splcritstrkrtng', type: 'num' },
+ { id: 102, name: 'splhastertng', type: 'num' },
+ { id: 48, name: 'splhitrtng', type: 'num' },
+ { id: 51, name: 'spldmg', type: 'num' },
+ { id: 50, name: 'splheal', type: 'num' },
+
+ { id: 58, name: 'sepmisc' },
+ { id: 109, name: 'armorbonus', type: 'num' },
+ { id: 161, name: 'availabletoplayers', type: 'yn' },
+ { id: 90, name: 'avgbuyout', type: 'num', noweights: 1 },
+ { id: 65, name: 'avgmoney', type: 'num', noweights: 1 },
+ { id: 9, name: 'conjureditem', type: 'yn' },
+ { id: 62, name: 'cooldown', type: 'num', noweights: 1 },
+ { id: 162, name: 'deprecated', type: 'yn' },
+ { id: 8, name: 'disenchantable', type: 'yn' },
+ { id: 163, name: 'disenchantsinto', type: 'disenchanting' },
+ { id: 59, name: 'dura', type: 'num', noweights: 1 },
+ { id: 104, name: 'flavortext', type: 'str' },
+ { id: 7, name: 'hasflavortext', type: 'yn' },
+ { id: 142, name: 'icon', type: 'str' },
+ { id: 10, name: 'locked', type: 'yn' },
+ { id: 159, name: 'millable', type: 'yn' },
+ { id: 127, name: 'notavailable', type: 'yn' },
+ { id: 85, name: 'objectivequest', type: 'side' },
+ { id: 11, name: 'openable', type: 'yn' },
+ { id: 12, name: 'partofset', type: 'yn' },
+ { id: 98, name: 'partyloot', type: 'yn' },
+ { id: 89, name: 'prospectable', type: 'yn' },
+ { id: 5, name: 'questitem', type: 'yn' },
+ { id: 13, name: 'randomlyenchanted', type: 'yn' },
+ { id: 14, name: 'readable', type: 'yn' },
+ { id: 87, name: 'reagentforability', type: 'profession' },
+ { id: 63, name: 'buyprice', type: 'num', noweights: 1 },
+ { id: 154, name: 'refundable', type: 'yn' },
+ { id: 165, name: 'repaircost', type: 'num' },
+ { id: 64, name: 'sellprice', type: 'num', noweights: 1 },
+ { id: 157, name: 'smartloot', type: 'yn' },
+ { id: 6, name: 'startsquest', type: 'side' },
+ { id: 91, name: 'tool', type: 'totemcategory' },
+ { id: 155, name: 'usableinarenas', type: 'yn' },
+ { id: 156, name: 'usablewhenshapeshifted', type: 'yn' },
+
+ { id: 112, name: 'sepcommunity' },
+ { id: 130, name: 'hascomments', type: 'yn' },
+ { id: 113, name: 'hasscreenshots', type: 'yn' },
+ { id: 167, name: 'hasvideos', type: 'yn' },
+
+ { id: 1, name: 'sepstaffonly', staffonly: true },
+ { id: 176, name: 'flags', type: 'flags', staffonly: true },
+ { id: 177, name: 'flags2', type: 'flags', staffonly: true }
+ ],
+
+ itemsets: [
+ { id: 9999,name: 'sepgeneral' },
+ { id: 12, name: 'availabletoplayers', type: 'yn' },
+ { id: 3, name: 'pieces', type: 'num' },
+ { id: 4, name: 'bonustext', type: 'str' },
+ { id: 5, name: 'heroic', type: 'yn' },
+ { id: 6, name: 'relatedevent', type: 'event-any+none' },
+ { id: 2, name: 'id', type: 'num' },
+
+ { id: 9999,name: 'sepcommunity' },
+ { id: 8, name: 'hascomments', type: 'yn' },
+ { id: 9, name: 'hasscreenshots', type: 'yn' },
+ { id: 10, name: 'hasvideos', type: 'yn' }
+ ],
+
+ npcs: [
+ { id: 4, name: 'sepgeneral' },
+ { id: 5, name: 'canrepair', type: 'yn' },
+ { id: 3, name: 'faction', type: 'faction' },
+ { id: 6, name: 'foundin', type: 'zone' },
+ { id: 1, name: 'health', type: 'num' },
+ { id: 2, name: 'mana', type: 'num' },
+ { id: 32, name: 'instanceboss', type: 'yn' },
+ { id: 38, name: 'relatedevent', type: 'event-any+none' },
+ { id: 7, name: 'startsquest', type: 'side' },
+ { id: 8, name: 'endsquest', type: 'side' },
+ { id: 34, name: 'usemodel', type: 'str-small' },
+ { id: 35, name: 'useskin', type: 'str' },
+ { id: 37, name: 'id', type: 'num' },
+
+ { id: 14, name: 'seploot' },
+ { id: 12, name: 'averagemoneydropped', type: 'num' },
+ { id: 43, name: 'decreasesrepwith', type: 'faction' },
+ { id: 42, name: 'increasesrepwith', type: 'faction' },
+ { id: 15, name: 'gatherable', type: 'yn' },
+ { id: 44, name: 'salvageable', type: 'yn' },
+ { id: 9, name: 'lootable', type: 'yn' },
+ { id: 16, name: 'minable', type: 'yn' },
+ { id: 11, name: 'pickpocketable', type: 'yn' },
+ { id: 10, name: 'skinnable', type: 'yn' },
+
+ { id: 17, name: 'sepgossipoptions' },
+ { id: 18, name: 'auctioneer', type: 'yn' },
+ { id: 19, name: 'banker', type: 'yn' },
+ { id: 20, name: 'battlemaster', type: 'yn' },
+ { id: 21, name: 'flightmaster', type: 'yn' },
+ { id: 22, name: 'guildmaster', type: 'yn' },
+ { id: 23, name: 'innkeeper', type: 'yn' },
+ { id: 24, name: 'talentunlearner', type: 'yn' },
+ { id: 25, name: 'tabardvendor', type: 'yn' },
+ { id: 27, name: 'stablemaster', type: 'yn' },
+ { id: 28, name: 'trainer', type: 'yn' },
+ { id: 29, name: 'vendor', type: 'yn' },
+
+ { id: 30, name: 'sepcommunity' },
+ { id: 33, name: 'hascomments', type: 'yn' },
+ { id: 31, name: 'hasscreenshots', type: 'yn' },
+ { id: 40, name: 'hasvideos', type: 'yn' },
+
+ { id: 1, name: 'sepstaffonly', staffonly: true },
+ { id: 41, name: 'haslocation', type: 'yn', staffonly: true }
+ ],
+
+ objects: [
+ { id: 8, name: 'sepgeneral' },
+ { id: 1, name: 'foundin', type: 'zone' },
+ { id: 15, name: 'id', type: 'num' },
+ { id: 16, name: 'relatedevent', type: 'event-any+none' },
+ { id: 7, name: 'requiredskilllevel', type: 'num' },
+ { id: 2, name: 'startsquest', type: 'side' },
+ { id: 3, name: 'endsquest', type: 'side' },
+
+ { id: 9, name: 'seploot' },
+ { id: 5, name: 'averagemoneycontained', type: 'num' },
+ { id: 4, name: 'openable', type: 'yn' },
+
+ { id: 10, name: 'sepcommunity' },
+ { id: 13, name: 'hascomments', type: 'yn' },
+ { id: 11, name: 'hasscreenshots', type: 'yn' },
+ { id: 18, name: 'hasvideos', type: 'yn' }
+ ],
+
+ quests: [
+ { id: 12, name: 'sepgeneral' },
+ { id: 34, name: 'availabletoplayers', type: 'yn' },
+ { id: 37, name: 'classspecific', type: 'classs' },
+ { id: 38, name: 'racespecific', type: 'race' },
+ { id: 27, name: 'daily', type: 'yn' },
+ { id: 28, name: 'weekly', type: 'yn' },
+ { id: 29, name: 'repeatable', type: 'yn' },
+ { id: 30, name: 'id', type: 'num' },
+ { id: 44, name: 'countsforloremaster_stc', type: 'yn' },
+ { id: 9, name: 'objectiveearnrepwith', type: 'faction-any+none' },
+ { id: 33, name: 'relatedevent', type: 'event-any+none' },
+ { id: 5, name: 'sharable', type: 'yn' },
+ { id: 19, name: 'startsfrom', type: 'queststart' },
+ { id: 21, name: 'endsat', type: 'questend' },
+ { id: 11, name: 'suggestedplayers', type: 'num' },
+ { id: 6, name: 'timer', type: 'num' },
+
+ { id: 1, name: 'sepstaffonly', staffonly: true },
+ { id: 42, name: 'flags', type: 'flags', staffonly: true },
+
+ { id: 13, name: 'sepgainsrewards' },
+ { id: 2, name: 'experiencegained', type: 'num' },
+ { id: 43, name: 'currencyrewarded', type: 'currency' },
+ { id: 45, name: 'titlerewarded', type: 'yn' },
+ { id: 23, name: 'itemchoices', type: 'num' },
+ { id: 22, name: 'itemrewards', type: 'num' },
+ { id: 3, name: 'moneyrewarded', type: 'num' },
+ { id: 4, name: 'spellrewarded', type: 'yn' },
+ { id: 1, name: 'increasesrepwith', type: 'faction' },
+ { id: 10, name: 'decreasesrepwith', type: 'faction' },
+
+ { id: 14, name: 'sepseries' },
+ { id: 7, name: 'firstquestseries', type: 'yn' },
+ { id: 15, name: 'lastquestseries', type: 'yn' },
+ { id: 16, name: 'partseries', type: 'yn' },
+
+ { id: 17, name: 'sepcommunity' },
+ { id: 25, name: 'hascomments', type: 'yn' },
+ { id: 18, name: 'hasscreenshots', type: 'yn' },
+ { id: 36, name: 'hasvideos', type: 'yn' },
+
+ { id: 1, name: 'sepmisc' },
+ { id: 24, name: 'lacksstartend', type: 'yn'}
+ ],
+
+ spells: [
+ { id: 6, name: 'sepgeneral' },
+ { id: 1, name: 'manaenergyragecost', type: 'num' },
+ { id: 2, name: 'prcntbasemanarequired', type: 'num' },
+ { id: 14, name: 'id', type: 'num' },
+ { id: 15, name: 'icon', type: 'str' },
+ { id: 10, name: 'firstrank', type: 'yn' },
+ { id: 20, name: 'hasreagents', type: 'yn' },
+ { id: 12, name: 'lastrank', type: 'yn' },
+ { id: 13, name: 'rankno', type: 'num' },
+ { id: 22, name: 'proficiencytype', type: 'proficiencytype' },
+ { id: 19, name: 'scaling', type: 'yn' },
+ { id: 25, name: 'rewardsskillups', type: 'yn' },
+ { id: 3, name: 'requiresnearbyobject', type: 'yn' },
+ { id: 5, name: 'requiresprofspec', type: 'yn' },
+ { id: 9, name: 'source', type: 'spellsource' },
+ { id: 4, name: 'trainingcost', type: 'num' },
+
+ { id: 7, name: 'sepcommunity' },
+ { id: 11, name: 'hascomments', type: 'yn' },
+ { id: 8, name: 'hasscreenshots', type: 'yn' },
+ { id: 17, name: 'hasvideos', type: 'yn' }
+ ],
+
+ achievements: [
+ { id: 1, name: 'sepgeneral' },
+ { id: 2, name: 'givesreward', type: 'yn' },
+ { id: 3, name: 'rewardtext', type: 'str' },
+ { id: 4, name: 'location', type: 'zone' },
+ { id: 10, name: 'icon', type: 'str' },
+ { id: 9, name: 'id', type: 'num' },
+ { id: 11, name: 'relatedevent', type: 'event-any+none' },
+
+ { id: 8, name: 'sepseries' },
+ { id: 5, name: 'firstseries', type: 'yn' },
+ { id: 6, name: 'lastseries', type: 'yn' },
+ { id: 7, name: 'partseries', type: 'yn' },
+
+ { id: 9999,name: 'sepcommunity' },
+ { id: 14, name: 'hascomments', type: 'yn' },
+ { id: 15, name: 'hasscreenshots', type: 'yn' },
+ { id: 16, name: 'hasvideos', type: 'yn' },
+
+ { id: 9999,name: 'sepstaffonly', staffonly: true },
+ { id: 18, name: 'flags', type: 'flags', staffonly: true }
+ ],
+
+ profiles: [
+ { id: 1, name: 'sepgeneral' },
+ { id: 2, name: 'gearscore', type: 'num' },
+ { id: 3, name: 'achievementpoints', type: 'num' },
+ { id: 21, name: 'wearingitem', type: 'str-small' },
+ { id: 23, name: 'completedachievement', type: 'str-small' },
+
+ { id: 24, name: 'sepprofession' },
+ { id: 25, name: 'alchemy', type: 'str-small' },
+ { id: 26, name: 'blacksmithing', type: 'str-small' },
+ { id: 27, name: 'enchanting', type: 'str-small' },
+ { id: 28, name: 'engineering', type: 'str-small' },
+ { id: 29, name: 'herbalism', type: 'str-small' },
+ { id: 30, name: 'inscription', type: 'str-small' },
+ { id: 31, name: 'jewelcrafting', type: 'str-small' },
+ { id: 32, name: 'leatherworking', type: 'str-small' },
+ { id: 33, name: 'mining', type: 'str-small' },
+ { id: 34, name: 'skinning', type: 'str-small' },
+ { id: 35, name: 'tailoring', type: 'str-small' },
+
+ { id: 4, name: 'septalent' },
+ { id: 5, name: 'talenttree1', type: 'num' },
+ { id: 6, name: 'talenttree2', type: 'num' },
+ { id: 7, name: 'talenttree3', type: 'num' },
+
+ { id: 8, name: 'sepguild' },
+ { id: 36, name: 'hasguild', type: 'yn' },
+ { id: 9, name: 'guildname', type: 'str' },
+ { id: 10, name: 'guildrank', type: 'num' },
+
+ { id: 11, name: 'separenateam' },
+ { id: 12, name: 'teamname2v2', type: 'str' },
+ { id: 13, name: 'teamrtng2v2', type: 'num' },
+ { id: 14, name: 'teamcontrib2v2', type: 'num' },
+ { id: 15, name: 'teamname3v3', type: 'str' },
+ { id: 16, name: 'teamrtng3v3', type: 'num' },
+ { id: 17, name: 'teamcontrib3v3', type: 'num' },
+ { id: 18, name: 'teamname5v5', type: 'str' },
+ { id: 19, name: 'teamrtng5v5', type: 'num' },
+ { id: 20, name: 'teamcontrib5v5', type: 'num' }
+ ]
+
};
+
function fi_toggle() {
- var c = ge("fi");
- var b = g_toggleDisplay(c),
- e;
- var d = ge("fi_toggle");
- if (b) {
+ var c = ge('fi');
+ var b = g_toggleDisplay(c);
+ var d = ge('fi_toggle');
+
+ if (b) {
+ // Set focus on first textbox
d.firstChild.nodeValue = LANG.fihide;
- c = (c.parentNode.tagName == "FORM" ? c.parentNode: gE(c, "form")[0]);
- c = c.elements.na ? c.elements.na: c.elements.ti;
- c.focus();
- c.select()
- }
+ c = (c.parentNode.tagName == 'FORM' ? c.parentNode: gE(c, 'form')[0]);
+ c = c.elements.na ? c.elements.na: c.elements.ti;
+ c.focus();
+ c.select();
+ }
else {
- d.firstChild.nodeValue = LANG.fishow
- }
- d.className = "disclosure-" + (b ? "on": "off");
- return false
+ d.firstChild.nodeValue = LANG.fishow;
+ }
+ d.className = 'disclosure-' + (b ? 'on': 'off');
+
+ return false;
}
-function fi_submit(d) {
- var c = 0;
- var a = d.elements;
- for (var b = 0; b < a.length; ++b) {switch (a[b].nodeName) {
- case "INPUT":
- switch (a[b].type) {
- case "text":
- if (trim(a[b].value).length > 0) {
- ++c
- }
+
+function fi_submit(_this) {
+ var sum = 0;
+
+ var _ = _this.elements;
+ for (var i = 0; i < _.length; ++i) {
+ switch (_[i].nodeName) {
+ case 'INPUT':
+ switch (_[i].type) {
+ case 'text':
+ if (trim(_[i].value).length > 0) {
+ ++sum;
+ }
+ break;
+ case 'checkbox':
+ if ((_[i].value == 'ja' || _[i].name == 'gb') && _[i].checked) {
+ ++sum;
+ }
+ case 'radio':
+ if(_[i].name != 'ma' && _[i].checked && _[i].value)
+ ++sum;
+
break;
- case "checkbox":
- if ((a[b].value == "ja" || a[b].name == "gb") && a[b].checked) {
- ++c
- }
- break
- }
- break;
- case "SELECT":
- if (a[b].name != "cr[]" && a[b].name != "gm" && a[b].selectedIndex != -1 && a[b].options[a[b].selectedIndex].value) {
- ++c
- }
- break
- }
- }
- if (c == 0) {
+ }
+ break;
+
+ case 'SELECT':
+ if (_[i].name != 'cr[]' && _[i].name != 'gm' && _[i].selectedIndex != -1 && _[i].options[_[i].selectedIndex].value) {
+ ++sum;
+ }
+
+ break;
+ }
+ }
+
+ var g = g_getGets();
+ if (sum == 0 && !g.filter) {
alert(LANG.message_fillsomecriteria);
- return false
- }
- return true
+ return false;
+ }
+
+ return true;
}
+
function fi_initWeightedListview() {
- this._scoreMode = 0;
- if (this.sort[0] == -this.columns.length) {
- this.applySort()
- }
- if (this._minScore) {setTimeout(Listview.headerFilter.bind(this, this.columns[this.columns.length - 1], ">=" + this._minScore), 1);
- this._maxScore = this._minScore
- }
+ this._scoreMode = (this._upgradeIds ? 2 : 0); // Normalized or percent for upgrades
+
+ if (this.sort[0] == -this.columns.length) {
+ this.applySort();
+ }
+
+ if (this._upgradeIds && this._minScore) {
+ //todo: what did this do..? setTimeout(Listview.headerFilter.bind(this, this.columns[this.columns.length - 1], '>=' + this._minScore), 1);
+ this._maxScore = this._minScore; // Makes percentages relative to upgraded item
+ }
}
-function fi_reset(c) {
- fi_resetCriterion(ge("fi_criteria"));
- fi_resetCriterion(ge("fi_weight"));
- var a = ge("sdkgnsdkn436");
- if (a) {
- a.parentNode.style.display = "none";
- while (a.firstChild) {
- de(a.firstChild)
- }
- ae(a, ce("option"))
- }
- a = c.elements;
- for (var b = 0; b < a.length; ++b) {
- switch (a[b].nodeName) {
- case "INPUT":
- if (a[b].type == "text") {
- a[b].value = ""
+
+function fi_filterUpgradeListview(item, i) {
+ var nResults = 25;
+
+ if(!this._upgradeIds) {
+ return i < nResults;
+ }
+
+ if(this._upgradeRow == null) {
+ this._upgradeRow = nResults - 1;
+ }
+
+ if(in_array(this._upgradeIds, item.id) != -1) {
+ if(i < nResults) {
+ this._upgradeRow++;
+ }
+
+ return true;
+ }
+
+ return i < this._upgradeRow;
+}
+
+function fi_addUpgradeIndicator() {
+ if(this._upgradeIds) {
+ var upgradeUrl = fi_filterParamToJson(g_parseQueryString(location.href.replace(/^.*?filter=/, 'filter=')).filter).upg;
+ for(var i = 0; i < this.data.length; ++i) {
+ var
+ item = this.data[i],
+ newUpgrade = upgradeUrl.replace(item.id, '').replace(/(^:*|:*$)/g, '').replace('::', ':');
+
+ if(in_array(this._upgradeIds, item.id) != -1) {
+ this.createIndicator(sprintf(LANG.lvnote_upgradesfor, item.id, (7 - parseInt(item.name.charAt(0))), item.name.substr(1)), location.href.replace(';upg=' + upgradeUrl, (newUpgrade ? ';upg=' + newUpgrade : '')));
+ }
+ }
+ }
+}
+
+function fi_reset(_this) {
+ fi_resetCriterion(ge('fi_criteria'));
+ fi_resetCriterion(ge('fi_weight'));
+
+ var _ = ge('sdkgnsdkn436');
+ if (_) {
+ _.parentNode.style.display = 'none';
+ while (_.firstChild) {
+ de(_.firstChild);
+ }
+
+ ae(_, ce('option'));
+ }
+
+ _ = _this.elements;
+ for (var i = 0; i < _.length; ++i) {
+ switch (_[i].nodeName) {
+ case 'INPUT':
+ if (_[i].type == 'text') {
+ _[i].value = '';
+ }
+ else if (_[i].type == 'checkbox') {
+ _[i].checked = false;
+ }
+ else if (_[i].type == 'radio' && _[i].value.length == 0) {
+ _[i].checked = true;
+ }
+ break;
+
+ case 'SELECT':
+ _[i].selectedIndex = _[i].multiple ? -1 : 0;
+ if (_[i].i) {
+ _[i].i = _[i].selectedIndex;
+ }
+ break;
+ }
+ }
+
+ return false;
+}
+
+function fi_resetCriterion(_this) {
+ if (_this != null) {
+ var d;
+ while (_this.childNodes.length > 1) {
+ d = _this.childNodes[1];
+
+ while (d.childNodes.length > 1) {
+ d.removeChild(d.childNodes[1]);
+ }
+
+ _this.removeChild(d);
+ }
+
+ d = _this.childNodes[0];
+
+ while (d.childNodes.length > 1) {
+ d.removeChild(d.childNodes[1]);
+ }
+
+ d.firstChild.i = null;
+ d.firstChild.selectedIndex = 0;
+
+ if (_this.nextSibling.firstChild) {
+ _this.nextSibling.firstChild.style.display = _this.style.display;
+ }
+ }
+}
+
+function fi_addCriterion(_this, cr) {
+ var _ = ge(_this.id.replace('add', ''));
+
+ if (_.childNodes.length >= 19 || (_this.id.indexOf('criteria') > 0 && _.childNodes.length >= 4)) {
+ _this.style.display = 'none';
+ }
+
+ var a = _.childNodes[0].lastChild;
+ if (a.nodeName != 'A') {
+ fi_appendRemoveLink(_.childNodes[0]);
+ }
+ else {
+ a.firstChild.nodeValue = LANG.firemove;
+ a.onmouseup = fi_removeCriterion;
+ }
+
+ var
+ d = ce('div'),
+ c = _.childNodes[0].childNodes[0].cloneNode(true);
+
+ c.onchange = c.onkeyup = fi_criterionChange.bind(0, c);
+ c.i = null;
+
+ if (cr != null) {
+ var opts = c.getElementsByTagName('option');
+ for (var i = 0; i < opts.length; ++i) {
+ if (opts[i].value == cr) {
+ opts[i].selected = true;
+ break;
+ }
+ }
+ }
+ else {
+ c.firstChild.selected = true;
+ }
+
+ d.appendChild(c);
+ fi_appendRemoveLink(d);
+ _.appendChild(d);
+
+ return c;
+}
+
+function fi_removeCriterion() {
+ var
+ _,
+ d = this.parentNode,
+ c = d.parentNode,
+ n = (d.firstChild.name == 'wt[]');
+
+ c.removeChild(d);
+
+ if (c.childNodes.length == 1) {
+ _ = c.firstChild;
+ if (_.firstChild.selectedIndex > 0) {
+ var a = _.lastChild;
+ a.firstChild.nodeValue = LANG.ficlear;
+ a.onmouseup = fi_clearCriterion;
+ }
+ else {
+ _.removeChild(_.lastChild);
+ _.removeChild(_.lastChild);
+ }
+ }
+
+ if (c.nextSibling.firstChild) {
+ c.nextSibling.firstChild.style.display = '';
+ }
+
+ if (n) {
+ _ = ge('sdkgnsdkn436');
+ _.selectedIndex = 0;
+ _.i = 0;
+ fi_presetMatch();
+ }
+}
+
+function fi_clearCriterion() {
+ var d = this.parentNode;
+ d.firstChild.selectedIndex = 0;
+ fi_criterionChange(d.firstChild);
+}
+
+function fi_appendRemoveLink(d) {
+ d.appendChild(ct(String.fromCharCode(160, 160)));
+ var a = ce('a');
+ a.href = 'javascript:;';
+ a.appendChild(ct(LANG.firemove));
+ a.onmouseup = fi_removeCriterion;
+ a.onmousedown = a.onclick = rf;
+ d.appendChild(a);
+}
+
+function fi_appendClearLink(d) {
+ d.appendChild(ct(String.fromCharCode(160, 160)));
+ var a = ce('a');
+ a.href = 'javascript:;';
+ a.appendChild(ct(LANG.ficlear));
+ a.onmouseup = fi_clearCriterion;
+ a.onmousedown = a.onclick = rf;
+ d.appendChild(a);
+}
+
+function fi_Lookup(value, type) {
+ var c;
+
+ if (type == null) {
+ type = fi_type;
+ }
+
+ if (fi_Lookup.cache == null) {
+ fi_Lookup.cache = {};
+ }
+
+ if (fi_Lookup.cache[type] == null) {
+ c = {};
+
+ for (var i = 0, len = fi_filters[type].length; i < len; ++i) {
+ if(!(g_user.roles & U_GROUP_EMPLOYEE) && fi_filters[type][i].staffonly)
+ continue;
+
+ var f = fi_filters[type][i];
+
+ c[f.id] = f;
+ c[f.name] = f;
+ }
+
+ fi_Lookup.cache[type] = c;
+ }
+ else {
+ c = fi_Lookup.cache[type];
+ }
+
+ if (value && typeof value == 'string') {
+ var firstChar = value.charCodeAt(0);
+ if (firstChar >= '0'.charCodeAt(0) && firstChar <= '9'.charCodeAt(0)) {
+ value = parseInt(value);
+ }
+ }
+
+ return c[value];
+}
+
+function fi_criterionChange(_this, crs, crv) {
+ var _;
+
+ if (_this.selectedIndex != _this.i) {
+ var
+ o = _this.options[_this.selectedIndex],
+ d = _this.parentNode;
+
+ if (d.childNodes.length > 1) {
+ if (_this.selectedIndex > 0 && _this.i > 0) {
+ var a = fi_Lookup(o.value);
+ var b = fi_Lookup(_this.options[_this.i].value);
+
+ if (a.type == b.type) {
+ return;
+ }
+ }
+
+ while (d.childNodes.length > 1) {
+ d.removeChild(d.childNodes[1]);
+ }
+ }
+
+ if (_this.selectedIndex > 0) {
+ var p = fi_Lookup(o.value);
+ var parts = p.type.split('-');
+ var criteriaName = parts[0];
+ var criteriaParams = parts[1] || '';
+
+ if (LANG.fidropdowns[criteriaName] != null) {
+ if (_this.name == 'cr[]') {
+ var _c = LANG.fidropdowns[criteriaName];
+ _ = ce('select');
+ _.name = 'crs[]';
+
+ var group = _;
+
+ if (criteriaParams.indexOf('any') != -1) {
+ var o2 = ce('option');
+ o2.value = '-2323';
+ o2.appendChild(ct(LANG.fiany));
+ ae(group, o2);
+ if (crs != null && crs == '-2323') {
+ o2.selected = true;
+ }
+ }
+
+ for (var i = 0; i < _c.length; ++i) {
+ if (_c[i][0] !== null) {
+ var o2 = ce('option');
+ o2.value = _c[i][0];
+ o2.appendChild(ct(_c[i][1]));
+ ae(group, o2);
+ if (crs != null && crs == _c[i][0]) {
+ o2.selected = true;
+ }
+ }
+ else {
+ var group = ce('optgroup');
+ group.label = _c[i][1];
+ ae(_, group);
+ }
+ }
+
+ if (criteriaParams.indexOf('none') != -1) {
+ var o2 = ce('option');
+ o2.value = '-2324';
+ o2.appendChild(ct(LANG.finone));
+ ae(group, o2);
+ if (crs != null && crs == '-2324') {
+ o2.selected = true;
+ }
+ }
+
+ d.appendChild(ct(' '));
+ d.appendChild(_);
+ }
+
+ var n = (criteriaName == 'num');
+
+ if (n) {
+ d.appendChild(ct(' '));
+ }
+
+ _ = ce('input');
+ _.type = 'text';
+
+ if (crv != null) {
+ _.value = crv.toString();
}
else {
- if (a[b].type == "checkbox") {
- a[b].checked = false
+ _.value = '0';
+ }
+
+ if (_this.name == 'cr[]') {
+ _.name = 'crv[]';
+ }
+ else {
+ _.name = 'wtv[]';
+ _.onchange = fi_changeWeight.bind(0, _);
+ }
+
+ if (n) {
+ _.maxLength = 7;
+ _.style.textAlign = 'center';
+ _.style.width = '4.5em';
+ }
+ else {
+ _.type = 'hidden';
+ }
+
+ _.setAttribute('autocomplete', 'off');
+
+ d.appendChild(_);
+ if (_this.name == 'wt[]') {
+ fi_sortWeight(_);
+ }
+ }
+ else if (criteriaName == 'str') {
+ _ = ce('input');
+ _.name = 'crs[]';
+ _.type = 'hidden';
+ _.value = '0';
+ d.appendChild(_);
+
+ _ = ce('input');
+ _.type = 'text';
+ if (criteriaParams.indexOf('small') != -1) {
+ _.maxLength = 7;
+ _.style.textAlign = 'center';
+ _.style.width = '4.5em';
+ }
+ else {
+ _.maxLength = 50;
+ _.style.width = '9em';
+ }
+ _.name = 'crv[]';
+
+ if (crv != null) {
+ _.value = crv;
+ }
+
+ d.appendChild(ct(' '));
+ d.appendChild(_);
+ }
+ }
+
+ if (d.parentNode.childNodes.length == 1) {
+ if (_this.selectedIndex > 0) {
+ fi_appendClearLink(d);
+ }
+ }
+ else if (d.parentNode.childNodes.length > 1) {
+ fi_appendRemoveLink(d);
+ }
+
+ _this.i = _this.selectedIndex;
+ }
+}
+
+function fi_setCriteria(cr, crs, crv) {
+ var _ = ge('fi_criteria');
+
+ var
+ i,
+ c = _.childNodes[0].childNodes[0];
+
+ _ = c.getElementsByTagName('option');
+ for (i = 0; i < _.length; ++i) {
+ if (_[i].value == cr[0]) {
+ _[i].selected = true;
+ break;
+ }
+ }
+ fi_criterionChange(c, crs[0], crv[0]);
+
+ var a = ge('fi_addcriteria');
+ for (i = 1; i < cr.length && i < 5; ++i) {
+ fi_criterionChange(fi_addCriterion(a, cr[i]), crs[i], crv[i]);
+ }
+}
+
+function fi_setWeights(weights, nt, ids, stealth) {
+ if (ids) {
+ var
+ wt = weights[0],
+ wtv = weights[1],
+ weights = {};
+
+ for (var i = 0; i < wt.length; ++i) {
+ var a = fi_Lookup(wt[i]);
+ if (a && a.type == 'num' && !a.noweights && LANG.traits[a.name]) {
+ weights[a.name] = wtv[i];
+ }
+ }
+ }
+
+ var _ = ge('fi_weight');
+
+ if (fi_weights == null) {
+ fi_weights = {};
+ cO(fi_weights, weights);
+ }
+
+ var
+ a = ge('fi_addweight'),
+ c = _.childNodes[0].childNodes[0];
+
+ var i = 0;
+ for (var w in weights) {
+ if (!LANG.traits[w]) {
+ continue;
+ }
+
+ if (i++>0) {
+ c = fi_addCriterion(a, w);
+ }
+
+ var opts = c.getElementsByTagName('option');
+
+ for (var j = 0; j < opts.length; ++j) {
+ if (opts[j].value && w == fi_Lookup(opts[j].value).name) {
+ opts[j].selected = true;
+ break;
+ }
+ }
+
+ fi_criterionChange(c, 0, weights[w]);
+ }
+
+ fi_weightsFactor = fi_convertWeights(weights, true);
+
+ ge('fi_weight_toggle').className = 'disclosure-on';
+ ge('fi_weight').parentNode.style.display = '';
+
+ if (!nt) {
+ if (!fi_presetMatch(weights, stealth)) {
+ fi_presetDetails();
+ }
+ }
+}
+
+function fi_changeWeight(_this) {
+ var _ = ge('sdkgnsdkn436');
+ _.selectedIndex = 0;
+ _.i = 0;
+ fi_sortWeight(_this);
+ fi_presetMatch();
+}
+
+function fi_sortWeight(_this) {
+ var
+ i,
+ _ = ge('fi_weight'),
+ v = Number(_this.value);
+
+ _this = _this.parentNode;
+
+ n = 0;
+ for (i = 0; i < _.childNodes.length; ++i) {
+ var m = _.childNodes[i];
+ if (m.childNodes.length == 5) {
+ n++;
+ if (m.childNodes[2].nodeName == "INPUT" && v > Number(m.childNodes[2].value)) {
+ _.insertBefore(_this, m);
+ return;
+ }
+ }
+ }
+ _.insertBefore(_this, _.childNodes[n]);
+}
+
+function fi_convertWeights(weights, getf) {
+ var
+ f = 0,
+ m = 0;
+
+ for (var w in weights) {
+ if (!LANG.traits[w]) {
+ continue;
+ }
+ f += Math.abs(weights[w]);
+ if (Number(weights[w]) > m) {
+ m = Number(weights[w]);
+ }
+ }
+
+ if (getf) {
+ return f;
+ }
+
+ var result = {};
+ for (var w in weights) {
+ result[w] = (LANG.traits[w] ? Math.round(1000 * weights[w] / f) / 1000 : weights[w]);
+ }
+
+ return result;
+}
+
+function fi_convertScore(score, mode, maxScore) {
+ if (mode == 1) { // Raw
+ return parseInt(score * fi_weightsFactor);
+ }
+ else if (mode == 2) { // Percent
+ return ((score / maxScore) * 100).toFixed(1) + '%';
+ }
+ else { // Normalized
+ return score.toFixed(2);
+ }
+}
+
+function fi_updateScores() {
+ if (++this._scoreMode > 2) {
+ this._scoreMode = 0;
+ }
+
+ for (var i = 0; i < this.data.length; ++i) {
+ if (this.data[i].__tr) {
+ var cell = this.data[i].__tr.lastChild;
+ cell.firstChild.firstChild.nodeValue = fi_convertScore(this.data[i].score, this._scoreMode, this._maxScore);
+ }
+ }
+}
+
+function fi_presetClass(_this, stealth) {
+ if (_this.selectedIndex != _this.i) {
+ var
+ i,
+ _group,
+ c = _this.options[_this.selectedIndex],
+ d = _this.parentNode,
+ langref = LANG.presets;
+
+ fi_resetCriterion(_);
+
+ var _ = ge('sdkgnsdkn436');
+ _.parentNode.style.display = 'none';
+
+// todo: replace this
+ if (!stealth && (_this.form.ub.selectedIndex == 0 || _this.form.ub.selectedIndex == _this.i)) {
+ _this.form.ub.selectedIndex = _this.selectedIndex;
+ }
+/* with this
+ var oldValue = 1000;
+ if (_this.i) {
+ oldValue = $($('#fi_presets select option')[_this.i]).attr('value');
+ }
+
+ if(!stealth && (_this.form.ub.selectedIndex == 0 || _this.form.ub.value == oldValue)) {
+ $('select[name=ub] option[value=' + _this.value + ']').attr('selected', 'selected');
+ }
+*/
+
+ while (_.firstChild) {
+ de(_.firstChild);
+ }
+ ae(_, ce('option'));
+
+ if (_this.selectedIndex > 0) {
+ for (_group in c._presets) {
+ var weights = c._presets[_group];
+
+ if(langref[_group] != null) {
+ var group = ce('optgroup');
+ group.label = langref[_group];
+ }
+ else
+ group = _;
+
+ for (var p in weights) {
+ var o = ce('option');
+ o.value = p;
+ o._weights = weights[p];
+ ae(o, ct(weights[p].name ? weights[p].name : langref[p]));
+ ae(group, o);
+ }
+
+ if (langref[_group] != null && group && group.childNodes.length > 0) {
+ ae(_, group);
+ }
+ }
+
+ if (_.childNodes.length > 1) {
+ _.parentNode.style.display = '';
+ }
+ }
+
+ fi_presetChange(_);
+ _this.i = _this.selectedIndex;
+ }
+}
+
+function fi_presetChange(_this) {
+ if (_this.selectedIndex != _this.i) {
+ fi_resetCriterion(ge('fi_weight'));
+
+ var o = _this.options[_this.selectedIndex];
+ if (_this.selectedIndex > 0) {
+ // Default gem color
+ if (_this.form.elements.gm.selectedIndex == 0) {
+ _this.form.elements.gm.selectedIndex = 2; // Rare
+ }
+
+ fi_resetCriterion(ge('fi_weight'));
+ fi_setWeights(o._weights, 1, 0);
+ }
+
+ _this.i = _this.selectedIndex;
+
+ if (g_user.id > 0) {
+ var a = ge('fi_remscale');
+ a.style.display = (o._weights && o._weights.name ? '' : 'none');
+ }
+ }
+}
+
+function fi_presetDetails() {
+ var
+ _ = ge('fi_weight'),
+ _this = ge('fi_detail'),
+ n = ge('fi_addweight');
+
+ var a = g_toggleDisplay(_);
+
+ n.style.display = 'none';
+ if (a) {
+ _this.firstChild.nodeValue = LANG.fihidedetails;
+ if (_.childNodes.length < 19) {
+ n.style.display = '';
+ }
+ }
+ else {
+ _this.firstChild.nodeValue = LANG.fishowdetails;
+ }
+
+ return false;
+}
+
+function fi_presetMatch(weights, stealth) {
+ if (!weights) {
+ weights = {};
+ var _ = ge('fi_weight');
+
+ for (var i = 0; i < _.childNodes.length; ++i) {
+ if (_.childNodes[i].childNodes.length == 5) {
+ if (_.childNodes[i].childNodes[0].nodeName == "SELECT" && _.childNodes[i].childNodes[2].nodeName == "INPUT") {
+ var node = _.childNodes[i].childNodes[0].options[_.childNodes[i].childNodes[0].selectedIndex];
+
+ if (node.value) {
+ weights[fi_Lookup(node.value)] = Number(_.childNodes[i].childNodes[2].value);
}
- else {
- if (a[b].type == "radio" && a[b].value.length == 0) {
- a[b].checked = true
+ }
+ }
+ }
+ }
+
+ var _ = ge('fi_presets');
+ var s = _.getElementsByTagName('select');
+ if (s.length != 2) {
+ return false;
+ }
+
+ var n = fi_convertWeights(weights);
+ for (var l in wt_presets) {
+ for (var k in wt_presets[l]) {
+ for (var v in wt_presets[l][k]) {
+ p = fi_convertWeights(wt_presets[l][k][v]);
+
+ var match = true;
+ for (var w in p) {
+ if (!LANG.traits[w]) {
+ continue;
+ }
+ if (!n[w] || p[w] != n[w]) {
+ match = false;
+ break;
+ }
+ }
+
+ if (match) {
+ for (var i = 0; i < s[0].options.length; ++i) {
+ if (l == s[0].options[i].value) {
+ s[0].options[i].selected = true;
+ fi_presetClass(s[0], stealth);
+ break;
+ }
+ }
+
+ for (var j = 0; j < s[1].options.length; ++j) {
+ if (v == s[1].options[j].value) {
+ s[1].options[j].selected = true;
+ fi_presetChange(s[1]);
+ break;
+ }
+ }
+ return true;
+ }
+ }
+ }
+ }
+
+ return false;
+}
+
+
+function fi_presetSave() {
+ if (!g_user.id) {
+ return;
+ }
+
+ // todo: find out what the jquery stuff is supposed to do and use standards instead
+ alert('NYI, sorry!');
+ return;
+
+ var
+ o = $('#sdkgnsdkn436 option:selected').get(0),
+ name = '',
+ id = ((o._weights ? o._weights.id : 0) | 0),
+ scale = { id: id, name: name },
+ _ = ge('fi_weight'),
+ n = 0;
+
+ for(i = 0; i < _.childNodes.length; ++i) {
+ var
+ w = fi_Lookup($('[name=wt[]]', _.childNodes[i]).val()),
+ v = $('[name=wtv[]]', _.childNodes[i]).val();
+
+ if(w && v != 0) {
+ scale[w.name] = v;
+ ++n;
+ }
+ }
+
+ if(n < 1 || (!(o._weights && o._weights.id) && g_user.weightscales && g_user.weightscales.length >= 5)) {
+ return alert(LANG.message_weightscalesaveerror);
+ }
+
+ if(name = prompt(LANG.prompt_nameweightscale, $(o).text())) {
+ var data = { save: 1, name: urlencode(name), scale: '' };
+
+ if(id) {
+ data.id = id;
+ }
+
+ scale.name = name;
+ n = 0;
+
+ for(var w in scale) {
+ if(!LANG.traits[w]) {
+ continue;
+ }
+ if(n++ > 0) {
+ data.scale += ',';
+ }
+ data.scale += w + ':' + scale[w];
+ }
+
+ $.post('?account=weightscales', data, function(response) {
+ if(response > 0) {
+ if(g_user.weightscales == null) {
+ g_user.weightscales = [];
+ }
+
+ if(scale.id) {
+ g_user.weightscales = array_filter(g_user.weightscales, function(x) { return x.id != scale.id });
+ }
+
+ scale.id = response;
+ g_user.weightscales.push(scale);
+
+ var
+ s = $('#fi_presets select').get(0),
+ c = $('option[value=-1]', s).get(0);
+
+ if(!c) {
+ c = ce('option');
+ c.value = -1;
+ ae(c, ct(LANG.ficustom));
+ aef(s, c);
+ aef(s, $('option', s).get(1));
+ }
+
+ c._presets = { custom: {} };
+ for(var i = 0, len = g_user.weightscales.length; i < len; ++i) {
+ c._presets.custom[g_user.weightscales[i].id] = g_user.weightscales[i];
+ }
+
+ c.selected = true;
+ c.parentNode.onchange();
+
+ var o = $('#sdkgnsdkn436 option[value=' + scale.id + ']').get(0);
+ if(o) {
+ o.text = scale.name;
+ o.selected = true;
+ o.parentNode.onchange();
+ }
+
+ alert(LANG.message_saveok);
+ }
+ else {
+ alert(LANG.message_weightscalesaveerror);
+ }
+ });
+ }
+}
+
+function fi_presetDelete() {
+ if(!g_user.id) {
+ return;
+ }
+
+ // todo: find out what the jquery stuff is supposed to do and use standards instead
+ alert('NYI, sorry!');
+ return;
+
+ // sarjuuk: .get(0) - returns first element matched by X
+ var s = $('#fi_presets select').get(0),
+ c = $('option:selected', s).get(0);
+
+ if(c.value == -1) {
+ var o = $('#sdkgnsdkn436 option:selected').get(0);
+ if(o.value && confirm(LANG.confirm_deleteweightscale)) {
+ // sarjuuk send an ajax-POST to X with Y as param
+ $.post('?account=weightscales', { 'delete': 1, id: o.value });
+
+ g_user.weightscales = array_filter(g_user.weightscales, function(x) {
+ return x.id != o.value;
+ });
+
+ if(g_user.weightscales.length) {
+ c._presets = { custom: {} };
+ for(var i = 0, len = g_user.weightscales.length; i < len; ++i) {
+ c._presets.custom[g_user.weightscales[i].id] = g_user.weightscales[i];
+ }
+ }
+ else {
+ de(c);
+ }
+
+ de(o);
+
+ // sarjuuk: change() - manually triggers an onChange event on X
+ $('#fi_presets select').change();
+ }
+ }
+}
+
+function fi_scoreSockets(item) {
+ if (fi_gemScores != null) {
+ var match = 0, best = 0, sock = 0;
+ var mGems = [], bGems = [];
+ var mUniq = [], bUniq = [];
+ var mSock = {}, bSock = {};
+ var noMatch = false;
+
+ for (var i = 1; i <= 3; ++i) {
+ var
+ n = item['socket' + i],
+ s = (n == 1 ? 1 : 0);
+
+ if (n) {
+ if (fi_gemScores[n]) {
+ for (var j = 0; j < fi_gemScores[n].length; ++j) {
+ var t = fi_gemScores[n][j];
+ if (t.socketLevel <= item.level && (t.uniqEquip == 0 || in_array(mUniq, t.id) < 0)) {
+ match += t.score;
+ mGems.push(t.id);
+
+ mSock[i - 1] = 1;
+
+ if (t.uniqEquip == 1) {
+ mUniq.push(t.id);
+ }
+
+ break;
}
}
}
- break;
- case "SELECT":
- a[b].selectedIndex = a[b].multiple ? -1 : 0;
- if (a[b].i) {
- a[b].i = a[b].selectedIndex
- }
- break
- }
- }
- return false
-}
-function fi_resetCriterion(b) {
- if (b != null) {var a;
- while (b.childNodes.length > 1) {
- a = b.childNodes[1];
- while (a.childNodes.length > 1) {
- a.removeChild(a.childNodes[1])
- }
- b.removeChild(a)
- }
- a = b.childNodes[0];
- while (a.childNodes.length > 1) {
- a.removeChild(a.childNodes[1])
- }
- a.firstChild.i = null;
- a.firstChild.selectedIndex = 0;
- if (b.nextSibling.firstChild) {
- b.nextSibling.firstChild.style.display = b.style.display
- }
- }
-}
-function fi_addCriterion(l, h) {
- var e = ge(l.id.replace("add", ""));
- if (e.childNodes.length >= 19 || (l.id.indexOf("criteria") > 0 && e.childNodes.length >= 4)) {
- l.style.display = "none"
- }
- var b = e.childNodes[0].lastChild;
- if (b.nodeName != "A") {
- fi_appendRemoveLink(e.childNodes[0])
- } else {
- b.firstChild.nodeValue = LANG.firemove;
- b.onmouseup = fi_removeCriterion
- }
- var j = ce("div"),
- k = e.childNodes[0].childNodes[0].cloneNode(true);
- k.onchange = k.onkeyup = fi_criterionChange.bind(0, k);
- k.i = null;
- if (h != null) {
- var g = k.getElementsByTagName("option");
- for (var f = 0; f < g.length; ++f) {
- if (g[f].value == h) {
- g[f].selected = true;
- break
- }
- }
- } else {
- k.firstChild.selected = true
- }
- j.appendChild(k);
- fi_appendRemoveLink(j);
- e.appendChild(j);
- return k
-}
-function fi_removeCriterion() {
- var e, f = this.parentNode,
- h = f.parentNode,
- g = (f.firstChild.name == "wt[]");
- h.removeChild(f);
- if (h.childNodes.length == 1) {
- e = h.firstChild;
- if (e.firstChild.selectedIndex > 0) {
- var b = e.lastChild;
- b.firstChild.nodeValue = LANG.ficlear;
- b.onmouseup = fi_clearCriterion
- }
- else {
- e.removeChild(e.lastChild);
- e.removeChild(e.lastChild)
- }
- }
- if (h.nextSibling.firstChild) {
- h.nextSibling.firstChild.style.display = ""
- }
- if (g) {
- e = ge("sdkgnsdkn436");
- e.selectedIndex = 0;
- e.i = 0;
- fi_presetMatch()
- }
-}
-function fi_clearCriterion() {
- var a = this.parentNode;
- a.firstChild.selectedIndex = 0;
- fi_criterionChange(a.firstChild)
-}
-function fi_appendRemoveLink(c) {
- c.appendChild(ct(String.fromCharCode(160, 160)));
- var b = ce("a");
- b.href = "javascript:;";
- b.appendChild(ct(LANG.firemove));
- b.onmouseup = fi_removeCriterion;
- b.onmousedown = b.onclick = rf;
- c.appendChild(b)
-}
-function fi_appendClearLink(c) {
- c.appendChild(ct(String.fromCharCode(160, 160)));
- var b = ce("a");
- b.href = "javascript:;";
- b.appendChild(ct(LANG.ficlear));
- b.onmouseup = fi_clearCriterion;
- b.onmousedown = b.onclick = rf;
- c.appendChild(b)
-}
-function fi_Lookup(h, d) {
- var j;
- if (d == null) {
- d = fi_type
- }
- if (fi_Lookup.cache == null) {
- fi_Lookup.cache = {}
- }
- if (fi_Lookup.cache[d] == null) {j = {};
- for (var b = 0, a = fi_filters[d].length; b < a; ++b) {
- var g = fi_filters[d][b];
- j[g.id] = g;
- j[g.name] = g
- }
- fi_Lookup.cache[d] = j
- }
- else {
- j = fi_Lookup.cache[d]
- }
- if (h && typeof h == "string") {
- var e = h.charCodeAt(0);
- if (e >= "0".charCodeAt(0) && e <= "9".charCodeAt(0)) {
- h = parseInt(h)
- }
- }
- return j[h]
-}
-function fi_criterionChange(l, w, s) {
- var x;
- if (l.selectedIndex != l.i) {
- var e = l.options[l.selectedIndex],
- q = l.parentNode;
- if (q.childNodes.length > 1) {
- if (l.selectedIndex > 0 && l.i > 0) {
- var u = fi_Lookup(e.value);
- var r = fi_Lookup(l.options[l.i].value);
- if (u.type == r.type) {
- return
- }
- }
- while (q.childNodes.length > 1) {
- q.removeChild(q.childNodes[1])
- }
- }
- if (l.selectedIndex > 0) {
- var c = fi_Lookup(e.value);
- var j = c.type.split("-");
- var t = j[0];
- var h = j[1] || "";
- if (LANG.fidropdowns[t] != null) {
- if (l.name == "cr[]") {
- var m = LANG.fidropdowns[t];
- x = ce("select");
- x.name = "crs[]";
- var v = x;
- if (h.indexOf("any") != -1) {
- var g = ce("option");
- g.value = "-2323";
- g.appendChild(ct(LANG.fiany));
- ae(v, g);
- if (w != null && w == "-2323") {
- g.selected = true
- }
- }
- for (var k = 0; k < m.length; ++k) {
- if (m[k][0]) {
- var g = ce("option");
- g.value = m[k][0];
- g.appendChild(ct(m[k][1]));
- ae(v, g);
- if (w != null && w == m[k][0]) {
- g.selected = true
- }
- }
- else {
- var v = ce("optgroup");
- v.label = m[k][1];
- ae(x, v)
- }
- }
- if (h.indexOf("none") != -1) {
- var g = ce("option");
- g.value = "-2324";
- g.appendChild(ct(LANG.finone));
- ae(v, g);
- if (w != null && w == "-2324") {
- g.selected = true
- }
- }
- q.appendChild(ct(" "));
- q.appendChild(x)
- }
- var f = (t == "num");
- if (f) {
- q.appendChild(ct(" "))
- }
- x = ce("input");
- x.type = "text";
- if (s != null) {
- x.value = s.toString()
- }
else {
- x.value = "0"
- }
- if (l.name == "cr[]") {
- x.name = "crv[]"
- }
- else {
- x.name = "wtv[]";
- x.onchange = fi_changeWeight.bind(0, x)
- }
- if (f) {
- x.maxLength = 7;
- x.style.textAlign = "center";
- x.style.width = "4.5em"
- }
- else {
- x.type = "hidden"
- }
- x.setAttribute("autocomplete", "off");
- q.appendChild(x);
- if (l.name == "wt[]") {
- fi_sortWeight(x)
- }
- }
- else {
- if (t == "str") {
- x = ce("input");
- x.name = "crs[]";
- x.type = "hidden";
- x.value = "0";
- q.appendChild(x);
- x = ce("input");
- x.type = "text";
- if (h.indexOf("small") != -1) {
- x.maxLength = 7;
- x.style.textAlign = "center";
- x.style.width = "4.5em"
- }
- else {
- x.maxLength = 50;
- x.style.width = "9em"
- }
- x.name = "crv[]";
- if (s != null) {
- x.value = s
- }
- q.appendChild(ct(" "));
- q.appendChild(x)
- }
- }
- }
- if (q.parentNode.childNodes.length == 1) {
- if (l.selectedIndex > 0) {
- fi_appendClearLink(q)
- }
- }
- else {
- if (q.parentNode.childNodes.length > 1) {
- fi_appendRemoveLink(q)
- }
- }
- l.i = l.selectedIndex
- }
-}
-function fi_setCriteria(g, d, j) {
- var e = ge("fi_criteria");
- var f, h = e.childNodes[0].childNodes[0];
- e = h.getElementsByTagName("option");
- for (f = 0; f < e.length; ++f) {
- if (e[f].value == g[0]) {
- e[f].selected = true;
- break
- }
- }
- fi_criterionChange(h, d[0], j[0]);
- var b = ge("fi_addcriteria");
- for (f = 1; f < g.length && f < 5; ++f) {
- fi_criterionChange(fi_addCriterion(b, g[f]), d[f], j[f])
- }
-}
-function fi_setWeights(q, m, d, e) {
- if (d) {var k = q[0],
- g = q[1],
- q = {};
- for (var h = 0; h < k.length; ++h) {
- var o = fi_Lookup(k[h]);
- if (o.type == "num" && LANG.traits[o.name]) {
- q[o.name] = g[h]
- }
- }
- }
- var s = ge("fi_weight");
- if (fi_weights == null) {fi_weights = {};
- cO(fi_weights, q)
- }
- var o = ge("fi_addweight"),
- l = s.childNodes[0].childNodes[0];
- var h = 0;
- for (var r in q) {
- if (!LANG.traits[r]) {
- continue
- }
- if (h++>0) {
- l = fi_addCriterion(o, r)
- }
- var b = l.getElementsByTagName("option");
- for (var f = 0; f < b.length; ++f) {
- if (b[f].value && r == fi_Lookup(b[f].value).name) {
- b[f].selected = true;
- break
- }
- }
- fi_criterionChange(l, 0, q[r])
- }
- fi_weightsFactor = fi_convertWeights(q, true);
- ge("fi_weight_toggle").className = "disclosure-on";
- ge("fi_weight").parentNode.style.display = "";
- if (!m) {
- if (!fi_presetMatch(q, e)) {
- fi_presetDetails()
- }
- }
-}
-function fi_changeWeight(b) {
- var a = ge("sdkgnsdkn436");
- a.selectedIndex = 0;
- a.i = 0;
- fi_sortWeight(b);
- fi_presetMatch()
-}
-function fi_sortWeight(e) {
- var d, c = ge("fi_weight"),
- b = Number(e.value);
- e = e.parentNode;
- n = 0;
- for (d = 0; d < c.childNodes.length; ++d) {var a = c.childNodes[d];
- if (a.childNodes.length == 5) { n++;
- if (a.childNodes[2].nodeName == "INPUT" && b > Number(a.childNodes[2].value)) {
- c.insertBefore(e, a);
- return
- }
- }
- }
- c.insertBefore(e, c.childNodes[n])
-}
-function fi_convertWeights(c, g) {
- var e = 0,
- a = 0;
- for (var b in c) {
- if (!LANG.traits[b]) {
- continue
- }
- e += Math.abs(c[b]);
- if (Number(c[b]) > a) {
- a = Number(c[b])
- }
- }
- if (g) {
- return e
- }
- var d = {};
- for (var b in c) {
- d[b] = (LANG.traits[b] ? Math.round(1000 * c[b] / e) / 1000 : c[b])
- }
- return d
-}
-function fi_convertScore(b, a, c) {
- if (a == 1) {
- return parseInt(b * fi_weightsFactor)
- }
- else {
- if (a == 2) {
- return ((b / c) * 100).toFixed(1) + "%"
- }
- else {
- return b.toFixed(2)
- }
- }
-}
-function fi_updateScores() {
- if (++this._scoreMode > 2) {
- this._scoreMode = 0
- }
- for (var b = 0; b < this.data.length; ++b) {
- if (this.data[b].__tr) {
- var a = this.data[b].__tr.lastChild;
- a.firstChild.firstChild.nodeValue = fi_convertScore(this.data[b].score, this._scoreMode, this._maxScore)
- }
- }
-}
-function fi_presetClass(g, b) {
- if (g.selectedIndex != g.i) {
- var f, j, k = g.options[g.selectedIndex],
- h = g.parentNode,
- l = LANG.presets;
- fi_resetCriterion(r);
- var r = ge("sdkgnsdkn436");
- r.parentNode.style.display = "none";
- if (!b && (g.form.ub.selectedIndex == 0 || g.form.ub.selectedIndex == g.i)) {
- g.form.ub.selectedIndex = g.selectedIndex
- }
- while (r.firstChild) {
- de(r.firstChild)
- }
- ae(r, ce("option"));
- if (g.selectedIndex > 0) {
- for (j in k._presets) {
- var m = k._presets[j];
- var q = ce("optgroup");
- q.label = l[j];
- for (var a in m) {
- var e = ce("option");
- e.value = a;
- e._weights = m[a];
- ae(e, ct(l[a]));
- ae(q, e)
- }
- if (q && q.childNodes.length > 0) {
- ae(r, q)
- }
- }
- if (r.childNodes.length > 1) {
- r.parentNode.style.display = ""
- }
- }
- fi_presetChange(r);
- g.i = g.selectedIndex
- }
-}
-function fi_presetChange(b) {
- if (b.selectedIndex != b.i) {fi_resetCriterion(ge("fi_weight"));
- var a = b.options[b.selectedIndex];
- if (b.selectedIndex > 0) {
- if (b.form.elements.gm.selectedIndex == 0) {
- b.form.elements.gm.selectedIndex = 2
- }
- fi_resetCriterion(ge("fi_weight"));
- fi_setWeights(a._weights, 1, 0)
- }
- b.i = b.selectedIndex
- }
-}
-function fi_presetDetails() {
- var c = ge("fi_weight"),
- e = ge("fi_detail"),
- d = ge("fi_addweight");
- var b = g_toggleDisplay(c);
- d.style.display = "none";
- if (b) {
- e.firstChild.nodeValue = LANG.fihidedetails;
- if (c.childNodes.length < 19) {
- d.style.display = ""
- }
- }
- else {
- e.firstChild.nodeValue = LANG.fishowdetails
- }
- return false
-}
-function fi_presetMatch(m, a) {
- if (!m) {m = {};
- var r = ge("fi_weight");
- for (var f = 0; f < r.childNodes.length; ++f) {
- if (r.childNodes[f].childNodes.length == 5) {
- if (r.childNodes[f].childNodes[0].nodeName == "SELECT" && r.childNodes[f].childNodes[2].nodeName == "INPUT") {
- var d = r.childNodes[f].childNodes[0].options[r.childNodes[f].childNodes[0].selectedIndex];
- if (d.value) {
- m[fi_Lookup(d.value)] = Number(r.childNodes[f].childNodes[2].value)
- }
- }
- }
- }
- }
- var r = ge("fi_presets");
- var t = r.getElementsByTagName("select");
- if (t.length != 2) {
- return false
- }
- var b = fi_convertWeights(m);
- for (var l in wt_presets) {
- for (var k in wt_presets[l]) {
- for (var q in wt_presets[l][k]) {
- p = fi_convertWeights(wt_presets[l][k][q]);
- var h = true;
- for (var o in p) {
- if (!LANG.traits[o]) {
- continue
- }
- if (!b[o] || p[o] != b[o]) {
- h = false;
- break
- }
- }
- if (h) {
- for (var e = 0; e < t[0].options.length; ++e) {
- if (l == t[0].options[e].value) {
- t[0].options[e].selected = true;
- fi_presetClass(t[0], a);
- break
- }
- }
- for (e = 0; e < t[1].options.length; ++e) {
- if (q == t[1].options[e].value) {
- t[1].options[e].selected = true;
- fi_presetChange(t[1]);
- break
- }
- }
- return true
- }
- }
- }
- }
- return false
-}
-function fi_scoreSockets(r) {
- if (fi_gemScores != null) {
- var g = 0,
- d = 0,
- a = 0;
- var b = [],
- v = [];
- var k = [],
- h = [];
- var o = {},
- m = {};
- var l = false;
- for (var f = 1; f <= 3; ++f) {
- var c = r["socket" + f],
- u = (c == 1 ? 1 : 0);
- if (c && fi_gemScores[c]) {
- for (var e = 0; e < fi_gemScores[c].length; ++e) {
- var q = fi_gemScores[c][e];
- if (q.uniqEquip == 0 || in_array(k, q.id) < 0) {
- g += q.score;
- b.push(q.id);
- o[f - 1] = 1;
- if (q.uniqEquip == 1) {
- k.push(q.id)
- }
- break
- }
- }
- for (var e = 0; e < fi_gemScores[u].length; ++e) {
- var q = fi_gemScores[u][e];
- if (q.uniqEquip == 0 || in_array(h, q.id) < 0) {
- d += q.score;
- v.push(q.id);
- m[f - 1] = (q.colors & c);
- if (q.uniqEquip == 1) {
- h.push(q.id)
- }
- break
- }
- }
- }
- else {
- if (c) {
- l = true
- }
- }
- }
- if (r.socketbonusstat && fi_weights && fi_weightsFactor != 0) {
- for (var f in fi_weights) {
- if (r.socketbonusstat[f]) {
- a += r.socketbonusstat[f] * fi_weights[f] / fi_weightsFactor
- }
- }
- }
- r.scoreBest = d;
- r.scoreMatch = g + a;
- r.scoreSocket = a;
- if (r.scoreMatch >= r.scoreBest && !l) {
- r.matchSockets = o;
- r.gemGain = r.scoreMatch;
- r.gems = b
- }
- else {
- r.matchSockets = m;
- r.gemGain = r.scoreBest;
- r.gems = v
- }
- r.score += r.gemGain
- }
- if (r.score > this._maxScore || !this._maxScore) {
- this._maxScore = r.score
- }
- if (fi_upgradeId && r.id == fi_upgradeId) {
- this._minScore = r.score
- }
-}
-function fi_dropdownSync(a) {
- if (a.selectedIndex >= 0) {
- a.className = a.options[a.selectedIndex].className
- }
-}
-function fi_init(b) {
- fi_type = b;
- var a = ge("fi_subcat");
- if (g_initPath.lastIt && g_initPath.lastIt[3]) {
- if (a) {
- a.menu = g_initPath.lastIt[3];
- a.menuappend = "&filter";
- a.onmouseover = Menu.show;
- a.onmouseout = Menu.hide
- }
- }
- else if (a) {
- de(a.parentNode);
- }
+ noMatch = true;
+ }
- fi_initCriterion(ge("fi_criteria"), "cr[]", b);
- if (b == "items") {
- var d = ge("fi_presets");
- if (d) {
- fi_initPresets(ge("fi_presets"));
- fi_initCriterion(ge("fi_weight"), "wt[]", b)
- }
- }
- var c = ge("ma-0");
- if (c.getAttribute("checked")) {
- c.checked = true
- }
-}
-function fi_initCriterion(h, a, j) {
- var b = h.firstChild;
- var m = ce("select");
- m.name = a;
- m.onchange = m.onkeyup = fi_criterionChange.bind(0, m);
- ae(m, ce("option"));
- var l = null;
- var k = LANG["fi" + j];
- for (var f = 0, g = fi_filters[j].length; f < g; ++f) {
- var c = fi_filters[j][f];
- if (!c.type) {
- if (l && l.childNodes.length > 0) {
- ae(m, l)
- }
- l = ce("optgroup");
- l.label = (LANG.traits[c.name] ? LANG.traits[c.name] : k[c.name])
- }
+ if (fi_gemScores[s]) {
+ for (var j = 0; j < fi_gemScores[s].length; ++j) {
+ var t = fi_gemScores[s][j];
+ if (t.socketLevel <= item.level && (t.uniqEquip == 0 || in_array(bUniq, t.id) < 0)) {
+ best += t.score;
+ bGems.push(t.id);
+
+ bSock[i - 1] = (t.colors & n);
+
+ if (t.uniqEquip == 1) {
+ bUniq.push(t.id);
+ }
+
+ break;
+ }
+ }
+ }
+ }
+ }
+
+ if (item.socketbonusstat && fi_weights && fi_weightsFactor != 0) {
+ for (var i in fi_weights) {
+ if (item.socketbonusstat[i]) {
+ sock += item.socketbonusstat[i] * fi_weights[i] / fi_weightsFactor;
+ }
+ }
+ }
+
+ item.scoreBest = best;
+ item.scoreMatch = match + sock;
+ item.scoreSocket = sock;
+
+ if (item.scoreMatch >= item.scoreBest && !noMatch) {
+ item.matchSockets = mSock;
+ item.gemGain = item.scoreMatch;
+ item.gems = mGems;
+ }
else {
- if (a != "wt[]" || c.type == "num") {
- var d = ce("option");
- d.value = c.id;
- var e = LANG.traits[c.name] ? LANG.traits[c.name][0] : k[c.name];
- if (c.indent) {
- e = "- " + e
- }
- ae(d, ct(e));
- ae(l, d)
- }
- }
- }
- if (l && l.childNodes.length > 0) {
- ae(m, l)
- }
- ae(b, m)
+ item.matchSockets = bSock;
+ item.gemGain = item.scoreBest;
+ item.gems = bGems;
+ }
+
+ item.score += item.gemGain;
+ }
+
+ if (item.score > this._maxScore || !this._maxScore) {
+ this._maxScore = item.score;
+ }
+
+ if(this._upgradeIds && in_array(this._upgradeIds, item.id) != -1) {
+ this._minScore = item.score;
+ item.upgraded = 1;
+ }
}
-function fi_initPresets(g) {
- var d, m = ce("select");
- m.onchange = m.onkeyup = fi_presetClass.bind(0, m, 0);
- ae(m, ce("option"));
- var l = [];
- for (var h in wt_presets) {
- l.push(h)
- }
- l.sort(function (i, c) {
- return strcmp(g_chr_classes[i], g_chr_classes[c])
- });
- for (var e = 0, f = l.length; e < f; ++e) {
- var h = l[e],
- b = ce("option");
- b.value = h;
- b._presets = wt_presets[h];
- ae(b, ct(g_chr_classes[h]));
- ae(m, b)
- }
- ae(g, m);
- var k = ce("span");
- k.style.display = "none";
- var m = ce("select");
- m.id = "sdkgnsdkn436";
- m.onchange = m.onkeyup = fi_presetChange.bind(0, m);
- ae(m, ce("option"));
- ae(k, ct(" "));
- ae(k, m);
- ae(g, k);
- ae(g, ct(String.fromCharCode(160, 160)));
- var j = ce("a");
- j.href = "javascript:;";
- j.id = "fi_detail";
- j.appendChild(ct(LANG.fishowdetails));
- j.onclick = fi_presetDetails;
- j.onmousedown = rf;
- ae(g, j)
+
+function fi_dropdownSync(_this) {
+ if (_this.selectedIndex >= 0) {
+ _this.className = _this.options[_this.selectedIndex].className;
+ }
}
-function fi_getExtraCols(f, e, l) {
- if (!f.length) {
- return
- }
- var g = [],
- j = LANG.fiitems;
- var c = (fi_weightsFactor ? (e ? 8 : 9) : 10) - (l ? 1 : 0);
- for (var d = 0; d < f.length && d < c; ++d) {
- var k = fi_Lookup(f[d]);
- if (k && k.name && k.type == "num") {
- var h = {
- id: k.name,
- value: k.name,
- name: (LANG.traits[k.name] ? LANG.traits[k.name][2] : j[k.name]),
- tooltip: (LANG.traits[k.name] ? LANG.traits[k.name][0] : j[k.name]),
- before: (k.before ? k.before: "source")
- };
- if (k.name.indexOf("dps") != -1 || k.name.indexOf("speed") != -1) {
- h.compute = function (a, b) {
- return (a[k.name] || 0).toFixed(2)
- }
- }
- g.push(h)
- }
- }
- if (fi_weightsFactor) {
- if (e) {
- g.push({
- id: "gems",
- name: LANG.gems,
- getValue: function (a) {
- return a.gems.length
- },
- compute: function (q, r) {
- if (!q.nsockets || !q.gems) {
- return
- }
- var b = [];
- for (var m = 0; m < q.nsockets; m++) {
- b.push(q["socket" + (m + 1)])
- }
- var a = "",
- m = 0;
- for (var o in q.socketbonusstat) {
- if (LANG.traits[o]) {
- if (m++>0) {
- a += ", "
- }
- a += "+" + q.socketbonusstat[o] + " " + LANG.traits[o][2]
- }
- }
- Listview.funcBox.createSocketedIcons(b, r, q.gems, q.matchSockets, a)
- },
- sortFunc: function (m, i, o) {
- return strcmp((m.gems ? m.gems.length: 0), (i.gems ? i.gems.length: 0))
- }
- })
- }
- g.push({
- id: "score",
- name: LANG.score,
- width: "7%",
- value: "score",
- compute: function (i, m) {
- var b = ce("a");
- b.href = "javascript:;";
- b.onclick = fi_updateScores.bind(this);
- b.className = (i.gemGain > 0 ? "q2": "q1");
- ae(b, ct(fi_convertScore(i.score, this._scoreMode, this._maxScore)));
- ae(m, b)
- }
- })
- }
- if (l) {
- g.push(Listview.extraCols.cost)
- }
- fi_nExtraCols = g.length;
- return g
+
+function fi_init(type) {
+ fi_type = type;
+
+ var s = ge('fi_subcat');
+ if (g_initPath.lastIt && g_initPath.lastIt[3]) {
+ if (s) {
+ s.menu = g_initPath.lastIt[3];
+ s.menuappend = '&filter';
+ s.onmouseover = Menu.show;
+ s.onmouseout = Menu.hide;
+ }
+ }
+ else if (s) {
+ de(s.parentNode);
+ }
+
+ fi_initCriterion(ge('fi_criteria'), 'cr[]', type);
+ if (type == 'items') {
+ var foo = ge('fi_presets');
+ if (foo) {
+ fi_initPresets(ge('fi_presets'));
+ fi_initCriterion(ge('fi_weight'), 'wt[]', type);
+ }
+ }
+
+ var ma = ge('ma-0');
+ if (ma.getAttribute('checked')) {
+ ma.checked = true;
+ }
}
-function fi_GetReputationCols(factions) {
- var res = [];
- for (var i = 0, len = factions.length; i < len; ++i) {
+
+function fi_initCriterion(_this, sname, type) {
+ var div = _this.firstChild;
+
+ var s = ce('select');
+ s.name = sname;
+ s.onchange = s.onkeyup = fi_criterionChange.bind(0, s);
+ ae(s, ce('option'));
+
+ var group = null;
+ var langref = LANG['fi' + type];
+
+ for (var i = 0, len = fi_filters[type].length; i < len; ++i) {
+ if (!(g_user.roles & U_GROUP_EMPLOYEE) && fi_filters[type][i].staffonly) {
+ continue;
+ }
+
+ var p = fi_filters[type][i];
+
+ if (!p.type) {
+ if (group && group.childNodes.length > 0) {
+ ae(s, group);
+ }
+ group = ce('optgroup');
+ group.label = (LANG.traits[p.name] ? LANG.traits[p.name] : langref[p.name]);
+ }
+ else if (sname != 'wt[]' || (p.type == 'num' && !p.noweights)) {
+ var o = ce('option');
+ o.value = p.id;
+
+ var txt = LANG.traits[p.name] ? LANG.traits[p.name][0] : langref[p.name];
+ if (p.indent) {
+ txt = '- ' + txt;
+ }
+
+ ae(o, ct(txt));
+ ae(group, o);
+ }
+ }
+ if (group && group.childNodes.length > 0) {
+ ae(s, group);
+ }
+
+ ae(div, s);
+}
+
+function fi_initPresets(_this) {
+ var
+ _class,
+ s = ce('select');
+
+ s.onchange = s.onkeyup = fi_presetClass.bind(0, s, 0);
+
+ ae(s, ce('option'));
+
+ if (g_user.weightscales != null && g_user.weightscales.length) {
+ var o = ce('option');
+ o.value = -1;
+ o._presets = { custom: {} };
+ ae(o, ct(LANG.ficustom));
+ ae(s, o);
+
+ for (var i = 0, len = g_user.weightscales.length; i < len; ++i) {
+ o._presets.custom[g_user.weightscales[i].id] = g_user.weightscales[i];
+ }
+ }
+
+ var temp = [];
+ for (var c in wt_presets) {
+ temp.push(c);
+ }
+
+ temp.sort(function (a, b) {
+ return strcmp(g_chr_classes[a], g_chr_classes[b]);
+ });
+
+ for (var i = 0, len = temp.length; i < len; ++i) {
+ var
+ c = temp[i],
+ o = ce('option');
+
+ o.value = c;
+ o._presets = wt_presets[c];
+ ae(o, ct(g_chr_classes[c]));
+ ae(s, o);
+ }
+
+ ae(_this, s);
+
+ var _ = ce('span');
+ _.style.display = 'none';
+
+ var s = ce('select');
+ s.id = 'sdkgnsdkn436';
+ s.onchange = s.onkeyup = fi_presetChange.bind(0, s);
+ ae(s, ce('option'));
+
+ ae(_, ct(' '));
+ ae(_, s);
+ ae(_this, _);
+ ae(_this, ct(String.fromCharCode(160, 160)));
+
+ var a = ce('a');
+ a.href = 'javascript:;';
+ a.id = 'fi_detail';
+ a.appendChild(ct(LANG.fishowdetails));
+ a.onclick = fi_presetDetails;
+ a.onmousedown = rf;
+ ae(_this, a);
+
+ if(g_user.id > 0) {
+ ae(_this, ct(String.fromCharCode(160, 160)));
+
+ a = ce('a');
+ a.href = 'javascript:;';
+ a.className = 'save-icon';
+ a.appendChild(ct(LANG.fisavescale));
+ a.onclick = fi_presetSave;
+ a.onmousedown = rf;
+ ae(_this, a);
+
+ ae(_this, ct(String.fromCharCode(160, 160)));
+
+ a = ce('a');
+ a.href = 'javascript:;';
+ a.id = 'fi_remscale';
+ a.className = 'clear-icon';
+ a.style.display = 'none';
+ a.appendChild(ct(LANG.fideletescale));
+ a.onclick = fi_presetDelete;
+ a.onmousedown = rf;
+ ae(_this, a);
+ }
+
+ var helpLink = ge('statweight-help');
+ if (helpLink) {
+ g_addTooltip(helpLink, LANG.tooltip_statweighting, 'q');
+ }
+}
+
+function fi_getExtraCols(wt, gm, pu) {
+ if (!wt.length) {
+ return;
+ }
+
+ var
+ res = [],
+ langref = LANG.fiitems;
+
+ var nColsMax = 10;
+ if (fi_weightsFactor) {
+ nColsMax--;
+ }
+ if (gm) {
+ nColsMax--;
+ }
+ if (pu) {
+ nColsMax--;
+ }
+
+ for (var i = 0; i < wt.length && i < nColsMax; ++i) {
+ var a = fi_Lookup(wt[i]);
+ if (a && a.name && a.type == 'num') {
+ var b = {
+ id: a.name,
+ value: a.name,
+ name: (LANG.traits[a.name] ? LANG.traits[a.name][2] : langref[a.name]),
+ tooltip: (LANG.traits[a.name] ? LANG.traits[a.name][0] : langref[a.name]),
+ before: (a.before ? a.before: 'source')
+ };
+
+ // Fix display of decimal columns
+ if (a.name.indexOf('dps') != -1 || a.name.indexOf('speed') != -1) {
+ b.compute = function (item, td) {
+ return (item[a.name] || 0).toFixed(2);
+ }
+ }
+
+ res.push(b);
+ }
+ }
+
+ if (fi_weightsFactor) {
+ if (gm) {
+ res.push({
+ id: 'gems',
+ name: LANG.gems,
+ getValue: function (item) {
+ return item.gems.length;
+ },
+ compute: function (item, td) {
+ if (!item.nsockets || !item.gems) {
+ return;
+ }
+
+ var sockets = [];
+ for (var i = 0; i < item.nsockets; i++) {
+ sockets.push(item['socket' + (i + 1)]);
+ }
+
+ var
+ bonusText = '',
+ i = 0;
+
+ for (var s in item.socketbonusstat) {
+ if (LANG.traits[s]) {
+ if (i++ > 0) {
+ bonusText += ', ';
+ }
+ bonusText += '+' + item.socketbonusstat[s] + ' ' + LANG.traits[s][2];
+ }
+ }
+
+ Listview.funcBox.createSocketedIcons(sockets, td, item.gems, item.matchSockets, bonusText);
+ },
+ sortFunc: function (a, b, col) {
+ return strcmp((a.gems ? a.gems.length: 0), (b.gems ? b.gems.length: 0));
+ }
+ });
+ }
+
+ res.push({
+ id: 'score',
+ name: LANG.score,
+ width: '7%',
+ value: 'score',
+ compute: function (item, td) {
+ var a = ce('a');
+ a.href = 'javascript:;';
+ a.onclick = fi_updateScores.bind(this);
+ a.className = (item.gemGain > 0 ? 'q2': 'q1');
+
+ ae(a, ct(fi_convertScore(item.score, this._scoreMode, this._maxScore)));
+
+ ae(td, a);
+ }
+ });
+ }
+
+ if (pu) {
+ res.push(Listview.extraCols.cost);
+ }
+
+ fi_nExtraCols = res.length;
+
+ return res;
+}
+
+function fi_getReputationCols(factions) {
+ var res = [];
+
+ for (var i = 0, len = factions.length; i < len; ++i) {
var name = factions[i][1];
- if (name.length > 15) {
- var words = factions[i][1].split(" ");
- for (var j = 0, len2 = words.length; j < len2; ++j) {
+
+ if (name.length > 15) {
+ var words = factions[i][1].split(' ');
+ for (var j = 0, len2 = words.length; j < len2; ++j) {
if (words[j].length > 3) {
- name = (words[j].length > 15 ? words[j].substring(0, 12) + "...": words[j]);
- break
- }
- }
- }
- var col = { id: "faction-" + factions[i][0],
- name: name,
- tooltip: factions[i][1],
- type: "num",
- before: "category"
- };
- eval("col.getValue = function(quest) { return Listview.funcBox.getQuestReputation(" + factions[i][0] + ", quest) }");
- eval("col.compute = function(quest, td) { return Listview.funcBox.getQuestReputation(" + factions[i][0] + ", quest) }");
- eval("col.sortFunc = function(a, b, col) { var _ = Listview.funcBox.getQuestReputation; return strcmp(_(" + factions[i][0] + ", a), _(" + factions[i][0] + ", b)) }");
- res.push(col)
- }
- return res
+ name = (words[j].length > 15 ? words[j].substring(0, 12) + '...': words[j]);
+ break;
+ }
+ }
+ }
+
+ var col = {
+ id: 'faction-' + factions[i][0],
+ name: name,
+ tooltip: factions[i][1],
+ type: 'num',
+ before: 'category'
+ };
+
+ eval("col.getValue = function(quest) { return Listview.funcBox.getQuestReputation(" + factions[i][0] + ", quest) }");
+ eval("col.compute = function(quest, td) { return Listview.funcBox.getQuestReputation(" + factions[i][0] + ", quest) }");
+ eval("col.sortFunc = function(a, b, col) { var _ = Listview.funcBox.getQuestReputation; return strcmp(_(" + factions[i][0] + ", a), _(" + factions[i][0] + ", b)) }");
+
+ res.push(col);
+ }
+
+ return res;
+}
+
+function fi_setFilterParams(newParam, menuUrl) {
+ return fi_mergeFilterParams(null, newParam, menuUrl);
+}
+
+// This is used when propagating the active filter throughout the menu/breadcrumb.
+// If the item already had filter params, they will be combined.
+function fi_mergeFilterParams(oldParam, newParam, menuUrl) {
+ var oldJson = fi_filterParamToJson(oldParam);
+ var newJson = fi_filterParamToJson(newParam);
+
+ if(menuUrl && menuUrl.match('filter=')) { // Don't propegate child menu criteria
+ menuJson = fi_filterParamToJson(g_parseQueryString(menuUrl.replace(/^.*?filter=/, 'filter=')).filter);
+ newJson = fi_removeMenuCriteria(newJson, menuJson);
+ }
+
+ // original code for reference
+ // var jsonParam = $.extend(newJson, oldJson);
+
+ for (i in oldJson) { // Existing filter params have priority over new ones
+ newJson[i] = oldJson[i];
+ }
+
+ return fi_filterJsonToParam(newJson);
+}
+
+function fi_removeMenuCriteria(json, menu) {
+ if(menu.cr && json.cr && json.crs && json.crv) {
+ var
+ parts = menu.cr.split(':'),
+ filters = {
+ cr: json.cr.split(':'),
+ crs: json.crs.split(':'),
+ crv: json.crv.split(':')
+ };
+
+/* original code for reference
+ $.each(parts, function(idx, part)
+ {
+ var pos = $.inArray(part, filters.cr);
+ if(pos != -1) {
+ filters.cr.splice(pos, 1);
+ filters.crs.splice(pos, 1);
+ filters.crv.splice(pos, 1);
+ }
+ });
+*/
+
+ array_walk(parts, function(part) {
+ var pos = in_array(filters.cr, part);
+ if (pos != -1) {
+ filters.cr.splice(pos, 1);
+ filters.crs.splice(pos, 1);
+ filters.crv.splice(pos, 1);
+ }
+ });
+
+ json.cr = filters.cr.join(':');
+ json.crs = filters.crs.join(':');
+ json.crv = filters.crv.join(':');
+ }
+ else if (menu.fa && json.fa) {
+ delete json.fa;
+ }
+
+ return json;
+}
+
+function fi_filterParamToJson(filters) {
+ var result = {};
+
+ if(filters) {
+ var parts = filters.split(';');
+
+/* original code for reference
+ $.each(parts, function(idx, part)
+ {
+ g_splitQueryParam(part, result);
+ });
+*/
+ array_walk(parts, function(part){
+ g_splitQueryParam(part, result);
+ });
+ }
+
+ return result;
+}
+
+function fi_filterJsonToParam(json) {
+ var result = '';
+
+ var i = 0;
+
+/* original code for reference
+ $.each(json, function(name, value)
+ {
+ if(value !== '') {
+ if(i++ > 0) {
+ result += ';';
+ }
+ result += name + '=' + value;
+ }
+ });
+*/
+ array_walk(json, function(value, _, __, name) {
+ if(value !== '') {
+ if(i++ > 0) {
+ result += ';';
+ }
+ result += name + '=' + value;
+ }
+ });
+
+ return result;
}
diff --git a/template/js/global.js b/template/js/global.js
index 6c78e311..68e7a07f 100644
--- a/template/js/global.js
+++ b/template/js/global.js
@@ -4461,6 +4461,24 @@ Listview.prototype = {
ae(m, b);
ae(m, ct(")"))
}
+
+ if (this._errors) {
+ var
+ sp = ce('small'),
+ b = ce('b');
+
+ b.className = 'q10 report-icon';
+ if (m.innerHTML) {
+ b.style.marginLeft = '10px';
+ }
+
+ g_addTooltip(sp, LANG.lvnote_witherrors, 'q')
+
+ st(b, LANG.error);
+ ae(sp, b);
+ ae(m, sp);
+ }
+
if (!m.firstChild && this.mode != Listview.MODE_CHECKBOX) {
ae(m, ct(String.fromCharCode(160)))
}
diff --git a/template/js/locale_dede.js b/template/js/locale_dede.js
index a943797b..26c9d4bc 100644
--- a/template/js/locale_dede.js
+++ b/template/js/locale_dede.js
@@ -1125,52 +1125,55 @@ var g_item_subsubclasses = {
}
}
};
+
var g_itemset_types = {
- 1:"Stoff",
- 2:"Leder",
- 3:"Schwere R\u00fcstung",
- 4:"Platte",
- 5:"Dolch",
- 6:"Ring",
- 7:"Faustwaffe",
- 8:"Einhandaxt",
- 9:"Einhandstreitkolben",
- 10:"Einhandschwert",
- 11:"Schmuck",
- 12:"Amulett"
+ 1: "Stoff",
+ 2: "Leder",
+ 3: "Schwere R\u00fcstung",
+ 4: "Platte",
+ 5: "Dolch",
+ 6: "Ring",
+ 7: "Faustwaffe",
+ 8: "Einhandaxt",
+ 9: "Einhandstreitkolben",
+ 10: "Einhandschwert",
+ 11: "Schmuck",
+ 12: "Amulett"
};
+
var g_itemset_notes = {
- 1:"Dungeon-Set 1",
- 2:"Dungeon-Set 2",
- 14:"Dungeon-Set 3",
- 3:"Tier 1 Raid-Set",
- 4:"Tier 2 Raid-Set",
- 5:"Tier 3 Raid-Set",
- 12:"Tier 4 Raid-Set",
- 13:"Tier 5 Raid-Set",
- 18:"Tier 6 Raid-Set",
- 23:"Tier 7 Raid-Set",
- 25:"Tier 8 Raid-Set",
- 27:"Tier 9 Raid-Set",
- 29:"Tier 10 Raid-Set",
- 6:"Level 60 PvP-Set (Rar)",
- 7:"Level 60 PvP-Set (Rar, alt)",
- 8:"Level 60 PvP-Set (Episch)",
- 16:"Level 70 PvP-Set (Rar)",
- 21:"Level 70 PvP-Set 2 (Rar)",
- 17:"Arena-Set Saison 1",
- 19:"Arena-Set Saison 2",
- 20:"Arena-Set Saison 3",
- 22:"Arena-Set Saison 4",
- 24:"Arena-Set Saison 5",
- 26:"Arena-Set Saison 6",
- 28:"Arena-Set Saison 7",
- 30:"Arena-Set Saison 8",
- 15:"Set des Arathibeckens",
- 9:"Set der Ruinen von Ahn'Qiraj",
- 10:"Set des Tempels von Ahn'Qiraj",
- 11:"Set von Zul'Gurub"
+ 1: "Dungeon-Set 1",
+ 2: "Dungeon-Set 2",
+ 14: "Dungeon-Set 3",
+ 3: "Tier 1 Raid-Set",
+ 4: "Tier 2 Raid-Set",
+ 5: "Tier 3 Raid-Set",
+ 12: "Tier 4 Raid-Set",
+ 13: "Tier 5 Raid-Set",
+ 18: "Tier 6 Raid-Set",
+ 23: "Tier 7 Raid-Set",
+ 25: "Tier 8 Raid-Set",
+ 27: "Tier 9 Raid-Set",
+ 29: "Tier 10 Raid-Set",
+ 6: "Level 60 PvP-Set (Rar)",
+ 7: "Level 60 PvP-Set (Rar, alt)",
+ 8: "Level 60 PvP-Set (Episch)",
+ 16: "Level 70 PvP-Set (Rar)",
+ 21: "Level 70 PvP-Set 2 (Rar)",
+ 17: "Arena-Set Saison 1",
+ 19: "Arena-Set Saison 2",
+ 20: "Arena-Set Saison 3",
+ 22: "Arena-Set Saison 4",
+ 24: "Arena-Set Saison 5",
+ 26: "Arena-Set Saison 6",
+ 28: "Arena-Set Saison 7",
+ 30: "Arena-Set Saison 8",
+ 15: "Set des Arathibeckens",
+ 9: "Set der Ruinen von Ahn'Qiraj",
+ 10: "Set des Tempels von Ahn'Qiraj",
+ 11: "Set von Zul'Gurub"
};
+
var g_npc_classifications = {
0:"Normal",
1:"Elite",
@@ -2096,6 +2099,7 @@ var LANG = {
hyphen: " - ",
colon: ": ",
qty: " ($1)",
+ error: "Fehler",
date: "Datum",
date_colon: "Datum: ",
@@ -2294,6 +2298,7 @@ var LANG = {
lvnote_tryfiltering: "Versucht es mit gefilterten Suchergebnissen.",
lvnote_trynarrowing: "Versucht, Eure Suche weiter einzugrenzen",
lvnote_upgradesfor: 'Sucht nach Verbesserungen f\u00fcr $3.',
+ lvnote_witherrors: "Einige Filter in Eurer Suche waren nicht gültig und wurden ignoriert.",
lvnote_itemsfound: "$1 Gegenst\u00e4nde gefunden ($2 angezeigt)",
lvnote_itemsetsfound: "$1 Sets gefunden ($2 angezeigt)",
@@ -2730,37 +2735,51 @@ var LANG = {
myaccount_purged: "Gel\u00f6scht",
myaccount_purgefailed: "L\u00f6schen fehlgeschlagen :(",
myaccount_purgesuccess: "Bekanntmachungsdaten wurden erfolgreich gel\u00f6scht!",
- types: {
- 1: ["NPC", "NPC", "NPCs", "NPCs"],
- 2: ["Objekt", "Objekt", "Objekte", "Objekte"],
- 3: ["Gegenstand", "Gegenstand", "Gegenst\u00e4nde", "Gegenst\u00e4nde"],
- 4: ["Set", "Set", "Sets", "Sets"],
- 5: ["Quest", "Quest", "Quests", "Quests"],
- 6: ["Zauber", "Zauber", "Zauber", "Zauber"],
- 7: ["Zone", "Zone", "Gebiete", "Gebiete"],
- 8: ["Fraktion", "fraktion", "Fraktionen", "Fraktionen"],
- 9: ["Begleiter", "Begleiter", "Begleiter", "Begleiter"],
- 10: ["Erfolg", "Erfolg", "Erfolge", "Erfolge"],
- 11: ["Titel", "Titel", "Titel", "Titel"],
- 12: ["Weltereignis", "Weltereignis", "Weltereignisse", "Weltereignisse"],
- 13: ["Klasse", "Klasse", "Klassen", "Klassen"],
- 14: ["Volk", "Volk", "V\u00f6lker", "V\u00f6lker"],
- 15: ["Fertigkeit", "Fertigkeit", "Fertigkeiten", "Fertigkeiten"],
- 16: ["Statistik", "Statistik", "Statistiken", "Statistiken"]
- },
- timeunitssg: ["Jahr", "Monat", "Woche", "Tag", "Stunde", "Minute", "Sekunde"],
- timeunitspl: ["Jahre", "Monate", "Wochen", "Tagen", "Stunden", "Minuten", "Sekunden"],
+
+ types: {
+ 1: ["NPC", "NPC" , "NPCs", "NPCs"],
+ 2: ["Objekt", "Objekt", "Objekte", "Objekte"],
+ 3: ["Gegenstand", "Gegenstand", "Gegenstände", "Gegenstände"],
+ 4: ["Ausrüstungsset", "Ausrüstungsset", "Ausrüstungssets", "Ausrüstungssets"],
+ 5: ["Quest", "Quest", "Quests", "Quests"],
+ 6: ["Zauber", "Zauber", "Zauber", "Zauber"],
+ 7: ["Zone", "Zone", "Gebiete", "Gebiete"],
+ 8: ["Fraktion", "Fraktion", "Fraktionen", "Fraktionen"],
+ 9: ["Begleiter", "Begleiter", "Begleiter", "Begleiter"],
+ 10: ["Erfolg", "Erfolg", "Erfolge", "Erfolge"],
+ 11: ["Titel", "Titel", "Titel", "Titel"],
+ 12: ["Weltereignis", "Weltereignis", "Weltereignisse", "Weltereignisse"],
+ 13: ["Klasse", "Klasse", "Klassen", "Klassen"],
+ 14: ["Volk", "Volk", "Völker", "Völker"],
+ 15: ["Fertigkeit", "Fertigkeit", "Fertigkeiten", "Fertigkeiten"],
+ 16: ["Statistik", "Statistik", "Statistiken", "Statistiken"],
+ 17: ["Währung", "Währung", "Währungen", "Währungen"]
+ },
+
+ timeunitssg: ["Jahr", "Monat", "Woche", "Tag", "Stunde", "Minute", "Sekunde"],
+ timeunitspl: ["Jahre", "Monate", "Wochen", "Tagen", "Stunden", "Minuten", "Sekunden"],
timeunitsab: ["J.", "M.", "W.", "Tag", "Std.", "Min", "Sek."],
- fishow: "Filter erstellen",
- fihide: "Filteroptionen ausblenden",
- fiany: "Beliebig",
- finone: "Nichts",
- firemove: "entfernen",
- ficlear: "leeren",
- fishowdetails: "Details anzeigen",
- fihidedetails: "Details ausblenden",
- message_fillsomecriteria: "Bitte gebt einige Kriterien ein.",
- tooltip_jconlygems: "Wenn aktiviert, werden auch spezielle
\nJuwelenschleifer-Edelsteine für die
\nGewichtung von Werten in Betracht gezogen.",
+
+ fishow: "Filter erstellen",
+ fihide: "Filteroptionen ausblenden",
+
+ fiany: "Beliebig",
+ finone: "Nichts",
+
+ firemove: "entfernen",
+ ficlear: "leeren",
+ ficustom: "Individuell",
+
+ fishowdetails: "Details anzeigen",
+ fihidedetails: "Details ausblenden",
+ fisavescale: "Speichern",
+ fideletescale: "Löschen",
+
+ message_fillsomecriteria: "Bitte gebt einige Kriterien ein.",
+
+ tooltip_jconlygems: "Wenn aktiviert, werden auch spezielle
\nJuwelenschleifer-Edelsteine für die
\nGewichtung von Werten in Betracht gezogen.",
+ tooltip_genericrating: "Anlegen: Erhöht Eure $1 um $3 (0 @ L0).
",
+
fidropdowns: {
yn: [[1, "Ja"], [2, "Nein"]],
num: [[1, ">"], [2, ">="], [3, "="], [4, "<="], [5, "<"]],
diff --git a/template/js/locale_enus.js b/template/js/locale_enus.js
index 4ac262f2..855261ba 100644
--- a/template/js/locale_enus.js
+++ b/template/js/locale_enus.js
@@ -1171,52 +1171,55 @@ var g_item_subsubclasses = {
}
}
};
+
var g_itemset_types = {
- 1:"Cloth",
- 2:"Leather",
- 3:"Mail",
- 4:"Plate",
- 5:"Dagger",
- 6:"Ring",
- 7:"Fist Weapon",
- 8:"One-Handed Axe",
- 9:"One-Handed Mace",
- 10:"One-Handed Sword",
- 11:"Trinket",
- 12:"Amulet"
+ 1: "Cloth",
+ 2: "Leather",
+ 3: "Mail",
+ 4: "Plate",
+ 5: "Dagger",
+ 6: "Ring",
+ 7: "Fist Weapon",
+ 8: "One-Handed Axe",
+ 9: "One-Handed Mace",
+ 10: "One-Handed Sword",
+ 11: "Trinket",
+ 12: "Amulet"
};
+
var g_itemset_notes = {
- 1:"Dungeon Set 1",
- 2:"Dungeon Set 2",
- 14:"Dungeon Set 3",
- 3:"Tier 1 Raid Set",
- 4:"Tier 2 Raid Set",
- 5:"Tier 3 Raid Set",
- 12:"Tier 4 Raid Set",
- 13:"Tier 5 Raid Set",
- 18:"Tier 6 Raid Set",
- 23:"Tier 7 Raid Set",
- 25:"Tier 8 Raid Set",
- 27:"Tier 9 Raid Set",
- 29:"Tier 10 Raid Set",
- 6:"Level 60 PvP Rare Set",
- 7:"Level 60 PvP Rare Set (Old)",
- 8:"Level 60 PvP Epic Set",
- 16:"Level 70 PvP Rare Set",
- 21:"Level 70 PvP Rare Set 2",
- 17:"Arena Season 1 Set",
- 19:"Arena Season 2 Set",
- 20:"Arena Season 3 Set",
- 22:"Arena Season 4 Set",
- 24:"Arena Season 5 Set",
- 26:"Arena Season 6 Set",
- 28:"Arena Season 7 Set",
- 30:"Arena Season 8 Set",
- 15:"Arathi Basin Set",
- 9:"Ruins of Ahn'Qiraj Set",
- 10:"Temple of Ahn'Qiraj Set",
- 11:"Zul'Gurub Set"
+ 1: "Dungeon Set 1",
+ 2: "Dungeon Set 2",
+ 14: "Dungeon Set 3",
+ 3: "Tier 1 Raid Set",
+ 4: "Tier 2 Raid Set",
+ 5: "Tier 3 Raid Set",
+ 12: "Tier 4 Raid Set",
+ 13: "Tier 5 Raid Set",
+ 18: "Tier 6 Raid Set",
+ 23: "Tier 7 Raid Set",
+ 25: "Tier 8 Raid Set",
+ 27: "Tier 9 Raid Set",
+ 29: "Tier 10 Raid Set",
+ 6: "Level 60 PvP Rare Set",
+ 7: "Level 60 PvP Rare Set (Old)",
+ 8: "Level 60 PvP Epic Set",
+ 16: "Level 70 PvP Rare Set",
+ 21: "Level 70 PvP Rare Set 2",
+ 17: "Arena Season 1 Set",
+ 19: "Arena Season 2 Set",
+ 20: "Arena Season 3 Set",
+ 22: "Arena Season 4 Set",
+ 24: "Arena Season 5 Set",
+ 26: "Arena Season 6 Set",
+ 28: "Arena Season 7 Set",
+ 30: "Arena Season 8 Set",
+ 15: "Arathi Basin Set",
+ 9: "Ruins of Ahn'Qiraj Set",
+ 10: "Temple of Ahn'Qiraj Set",
+ 11: "Zul'Gurub Set"
};
+
var g_npc_classifications = {
0:"Normal",
1:"Elite",
@@ -2134,13 +2137,14 @@ var g_socket_names = {
14:"Prismatic Socket"
};
var LANG = {
- and: " and ",
- comma: ", ",
+ and: " and ",
+ comma: ", ",
ellipsis: "…",
- dash: " – ",
- hyphen: " - ",
- colon: ": ",
- qty: " ($1)",
+ dash: " – ",
+ hyphen: " - ",
+ colon: ": ",
+ qty: " ($1)",
+ error: "Error",
date: "Date",
date_colon: "Date: ",
@@ -2339,6 +2343,7 @@ var LANG = {
lvnote_tryfiltering: "Try filtering your results",
lvnote_trynarrowing: "Try narrowing your search",
lvnote_upgradesfor: 'Finding upgrades for $3.',
+ lvnote_witherrors: "Some filters in your search were invalid and have been ignored.",
lvnote_itemsfound: "$1 items found ($2 displayed)",
lvnote_itemsetsfound: "$1 item sets found ($2 displayed)",
@@ -2775,338 +2780,438 @@ var LANG = {
myaccount_purged: "Purged",
myaccount_purgefailed: "Purge failed : (",
myaccount_purgesuccess: "Announcement data has been successfully purged!",
+
types: {
- 1: ["NPC", "NPC", "NPCs", "NPCs"],
- 2: ["Object", "object", "Objects", "objects"],
- 3: ["Item", "item", "Items", "items"],
- 4: ["Item Set", "item set", "Item Sets", "item sets"],
- 5: ["Quest", "quest", "Quests", "quests"],
- 6: ["Spell", "spell", "Spells", "spells"],
- 7: ["Zone", "zone", "Zones", "zones"],
- 8: ["Faction", "faction", "Factions", "factions"],
- 9: ["Pet", "pet", "Pets", "pets"],
- 10: ["Achievement", "achievement", "Achievements", "achievements"],
- 11: ["Title", "title", "Titles", "titles"],
- 12: ["World Event", "world event", "World Events", "world events"],
- 13: ["Class", "class", "Classes", "classes"],
- 14: ["Race", "race", "Races", "races"],
- 15: ["Skill", "skill", "Skills", "skills"],
- 16: ["Statistic", "statistic", "Statistics", "statistics"]
+ 1: ["NPC", "NPC" , "NPCs", "NPCs"],
+ 2: ["Object", "object", "Objects", "objects"],
+ 3: ["Item", "item", "Items", "items"],
+ 4: ["Item Set", "item set", "Item Sets", "item sets"],
+ 5: ["Quest", "quest", "Quests", "quests"],
+ 6: ["Spell", "spell", "Spells", "spells"],
+ 7: ["Zone", "zone", "Zones", "zones"],
+ 8: ["Faction", "faction", "Factions", "factions"],
+ 9: ["Pet", "pet", "Pets", "pets"],
+ 10: ["Achievement", "achievement", "Achievements", "achievements"],
+ 11: ["Title", "title", "Titles", "titles"],
+ 12: ["World Event", "world event", "World Events", "world events"],
+ 13: ["Class", "class", "Classes", "classes"],
+ 14: ["Race", "race", "Races", "races"],
+ 15: ["Skill", "skill", "Skills", "skills"],
+ 16: ["Statistic", "statistic", "Statistics", "statistics"],
+ 17: ["Currency", "currency", "Currencies", "currencies"]
},
+
timeunitssg: ["year", "month", "week", "day", "hour", "minute", "second"],
timeunitspl: ["years", "months", "weeks", "days", "hours", "minutes", "seconds"],
timeunitsab: ["yr", "mo", "wk", "day", "hr", "min", "sec"],
- fishow: "Create a filter",
- fihide: "Hide filter options",
- fiany: "Any",
- finone: "None",
- firemove: "remove",
- ficlear: "clear",
- fishowdetails: "show details",
- fihidedetails: "hide details",
- message_fillsomecriteria: "Please fill in some criteria.",
- tooltip_jconlygems: "If checked, jewelcrafter-only gems
\nwill also be used to determine the best
\npossible gems for an item's weighted score.",
+
+ fishow: "Create a filter",
+ fihide: "Hide filter options",
+
+ fiany: "Any",
+ finone: "None",
+
+ firemove: "remove",
+ ficlear: "clear",
+ ficustom: "Custom",
+
+ fishowdetails: "show details",
+ fihidedetails: "hide details",
+ fisavescale: "Save",
+ fideletescale: "Delete",
+
+ message_fillsomecriteria: "Please fill in some criteria.",
+
+ tooltip_jconlygems: "If checked, jewelcrafter-only gems
\nwill also be used to determine the best
\npossible gems for an item's weighted score.",
+ tooltip_genericrating: "Equip: Increases your $1 by $3 (0 @ L0).
",
+
fidropdowns: {
- yn: [[1, "Yes"], [2, "No"]],
- num: [[1, ">"], [2, ">="], [3, "="], [4, "<="], [5, "<"]],
- side: [[1, "Yes"], [2, "Alliance"], [3, "Horde"], [4, "Both"], [5, "No"]],
- faction: [[1037, "Alliance Vanguard"], [1106, "Argent Crusade"], [529, "Argent Dawn"], [1012, "Ashtongue Deathsworn"], [87, "Bloodsail Buccaneers"], [21, "Booty Bay"], [910, "Brood of Nozdormu"], [609, "Cenarion Circle"], [942, "Cenarion Expedition"], [909, "Darkmoon Faire"], [530, "Darkspear Trolls"], [69, "Darnassus"], [577, "Everlook"], [930, "Exodar"], [1068, "Explorers' League"], [1104, "Frenzyheart Tribe"], [729, "Frostwolf Clan"], [369, "Gadgetzan"], [92, "Gelkis Clan Centaur"], [54, "Gnomeregan Exiles"], [946, "Honor Hold"], [1052, "Horde Expedition"], [749, "Hydraxian Waterlords"], [47, "Ironforge"], [989, "Keepers of Time"], [1090, "Kirin Tor"], [1098, "Knights of the Ebon Blade"], [978, "Kurenai"], [1011, "Lower City"], [93, "Magram Clan Centaur"], [1015, "Netherwing"], [1038, "Ogri'la"], [76, "Orgrimmar"], [470, "Ratchet"], [349, "Ravenholdt"], [1031, "Sha'tari Skyguard"], [1077, "Shattered Sun Offensive"], [809, "Shen'dralar"], [911, "Silvermoon City"], [890, "Silverwing Sentinels"], [970, "Sporeggar"], [730, "Stormpike Guard"], [72, "Stormwind"], [70, "Syndicate"], [932, "The Aldor"], [1156, "The Ashen Verdict"], [933, "The Consortium"], [510, "The Defilers"], [1126, "The Frostborn"], [1067, "The Hand of Vengeance"], [1073, "The Kalu'ak"], [509, "The League of Arathor"], [941, "The Mag'har"], [1105, "The Oracles"], [990, "The Scale of the Sands"], [934, "The Scryers"], [935, "The Sha'tar"], [1094, "The Silver Covenant"], [1119, "The Sons of Hodir"], [1124, "The Sunreavers"], [1064, "The Taunka"], [967, "The Violet Eye"], [1091, "The Wyrmrest Accord"], [59, "Thorium Brotherhood"], [947, "Thrallmar"], [81, "Thunder Bluff"], [576, "Timbermaw Hold"], [922, "Tranquillien"], [68, "Undercity"], [1050, "Valiance Expedition"], [1085, "Warsong Offensive"], [889, "Warsong Outriders"], [589, "Wintersaber Trainers"], [270, "Zandalar Tribe"]],
- // alt faction: [[469, "Alliance"], [1037, "Alliance Vanguard"], [1106, "Argent Crusade"], [529, "Argent Dawn"], [1012, "Ashtongue Deathsworn"], [87, "Bloodsail Buccaneers"], [21, "Booty Bay"], [910, "Brood of Nozdormu"], [609, "Cenarion Circle"], [942, "Cenarion Expedition"], [909, "Darkmoon Faire"], [530, "Darkspear Trolls"], [69, "Darnassus"], [577, "Everlook"], [930, "Exodar"], [1068, "Explorers' League"], [1104, "Frenzyheart Tribe"], [729, "Frostwolf Clan"], [369, "Gadgetzan"], [92, "Gelkis Clan Centaur"], [54, "Gnomeregan Exiles"], [946, "Honor Hold"], [67, "Horde"], [1052, "Horde Expedition"], [749, "Hydraxian Waterlords"], [47, "Ironforge"], [989, "Keepers of Time"], [1090, "Kirin Tor"], [1098, "Knights of the Ebon Blade"], [978, "Kurenai"], [1011, "Lower City"], [93, "Magram Clan Centaur"], [1015, "Netherwing"], [1038, "Ogri'la"], [76, "Orgrimmar"], [470, "Ratchet"], [349, "Ravenholdt"], [1031, "Sha'tari Skyguard"], [1077, "Shattered Sun Offensive"], [809, "Shen'dralar"], [911, "Silvermoon City"], [890, "Silverwing Sentinels"], [970, "Sporeggar"], [169, "Steamwheedle Cartel"], [730, "Stormpike Guard"], [72, "Stormwind"], [70, "Syndicate"], [932, "The Aldor"], [1156, "The Ashen Verdict"], [933, "The Consortium"], [510, "The Defilers"], [1126, "The Frostborn"], [1067, "The Hand of Vengeance"], [1073, "The Kalu'ak"], [509, "The League of Arathor"], [941, "The Mag'har"], [1105, "The Oracles"], [990, "The Scale of the Sands"], [934, "The Scryers"], [935, "The Sha'tar"], [1094, "The Silver Covenant"], [1119, "The Sons of Hodir"], [1124, "The Sunreavers"], [1064, "The Taunka"], [967, "The Violet Eye"], [1091, "The Wyrmrest Accord"], [59, "Thorium Brotherhood"], [947, "Thrallmar"], [81, "Thunder Bluff"], [576, "Timbermaw Hold"], [922, "Tranquillien"], [68, "Undercity"], [1050, "Valiance Expedition"], [1085, "Warsong Offensive"], [889, "Warsong Outriders"], [589, "Wintersaber Trainers"], [270, "Zandalar Tribe"]],
- zone: [[4494, "Ahn'kahet: The Old Kingdom"], [36, "Alterac Mountains"], [2597, "Alterac Valley"], [3358, "Arathi Basin"], [45, "Arathi Highlands"], [331, "Ashenvale"], [3790, "Auchenai Crypts"], [4277, "Azjol-Nerub"], [16, "Azshara"], [3524, "Azuremyst Isle"], [3, "Badlands"], [3959, "Black Temple"], [719, "Blackfathom Deeps"], [1584, "Blackrock Depths"], [25, "Blackrock Mountain"], [1583, "Blackrock Spire"], [2677, "Blackwing Lair"], [3522, "Blade's Edge Mountains"], [4, "Blasted Lands"], [3525, "Bloodmyst Isle"], [3537, "Borean Tundra"], [46, "Burning Steppes"], [2918, "Champions' Hall"], [2817, "Crystalsong Forest"], [4395, "Dalaran"], [4378, "Dalaran Sewers"], [148, "Darkshore"], [1657, "Darnassus"], [41, "Deadwind Pass"], [2257, "Deeprun Tram"], [405, "Desolace"], [2557, "Dire Maul"], [65, "Dragonblight"], [4196, "Drak'Tharon Keep"], [1, "Dun Morogh"], [14, "Durotar"], [10, "Duskwood"], [15, "Dustwallow Marsh"], [139, "Eastern Plaguelands"], [12, "Elwynn Forest"], [3430, "Eversong Woods"], [3820, "Eye of the Storm"], [361, "Felwood"], [357, "Feralas"], [3433, "Ghostlands"], [133, "Gnomeregan"], [394, "Grizzly Hills"], [3618, "Gruul's Lair"], [4416, "Gundrak"], [2917, "Hall of Legends"], [4272, "Halls of Lightning"], [4820, "Halls of Reflection"], [4264, "Halls of Stone"], [3483, "Hellfire Peninsula"], [3562, "Hellfire Ramparts"], [267, "Hillsbrad Foothills"], [495, "Howling Fjord"], [4742, "Hrothgar's Landing"], [3606, "Hyjal Summit"], [210, "Icecrown"], [4812, "Icecrown Citadel"], [1537, "Ironforge"], [4710, "Isle of Conquest"], [4080, "Isle of Quel'Danas"], [2562, "Karazhan"], [38, "Loch Modan"], [4095, "Magisters' Terrace"], [3836, "Magtheridon's Lair"], [3792, "Mana-Tombs"], [2100, "Maraudon"], [2717, "Molten Core"], [493, "Moonglade"], [215, "Mulgore"], [3518, "Nagrand"], [3456, "Naxxramas"], [3523, "Netherstorm"], [2367, "Old Hillsbrad Foothills"], [2159, "Onyxia's Lair"], [1637, "Orgrimmar"], [4813, "Pit of Saron"], [2437, "Ragefire Chasm"], [722, "Razorfen Downs"], [491, "Razorfen Kraul"], [44, "Redridge Mountains"], [3429, "Ruins of Ahn'Qiraj"], [3968, "Ruins of Lordaeron"], [796, "Scarlet Monastery"], [2057, "Scholomance"], [51, "Searing Gorge"], [3607, "Serpentshrine Cavern"], [3791, "Sethekk Halls"], [3789, "Shadow Labyrinth"], [209, "Shadowfang Keep"], [3520, "Shadowmoon Valley"], [3703, "Shattrath City"], [3711, "Sholazar Basin"], [1377, "Silithus"], [3487, "Silvermoon City"], [130, "Silverpine Forest"], [406, "Stonetalon Mountains"], [1519, "Stormwind City"], [4384, "Strand of the Ancients"], [33, "Stranglethorn Vale"], [2017, "Stratholme"], [1477, "Sunken Temple"], [4075, "Sunwell Plateau"], [8, "Swamp of Sorrows"], [440, "Tanaris"], [141, "Teldrassil"], [3428, "Temple of Ahn'Qiraj"], [3519, "Terokkar Forest"], [3848, "The Arcatraz"], [17, "The Barrens"], [2366, "The Black Morass"], [3713, "The Blood Furnace"], [3847, "The Botanica"], [3702, "The Circle of Blood"], [4100, "The Culling of Stratholme"], [1581, "The Deadmines"], [3557, "The Exodar"], [3842, "The Eye"], [4500, "The Eye of Eternity"], [4809, "The Forge of Souls"], [47, "The Hinterlands"], [3849, "The Mechanar"], [4120, "The Nexus"], [4493, "The Obsidian Sanctum"], [4228, "The Oculus"], [3698, "The Ring of Trials"], [4406, "The Ring of Valor"], [4298, "The Scarlet Enclave"], [3714, "The Shattered Halls"], [3717, "The Slave Pens"], [3715, "The Steamvault"], [717, "The Stockade"], [67, "The Storm Peaks"], [3716, "The Underbog"], [457, "The Veiled Sea"], [4415, "The Violet Hold"], [400, "Thousand Needles"], [1638, "Thunder Bluff"], [85, "Tirisfal Glades"], [4723, "Trial of the Champion"], [4722, "Trial of the Crusader"], [1337, "Uldaman"], [4273, "Ulduar"], [490, "Un'Goro Crater"], [1497, "Undercity"], [206, "Utgarde Keep"], [1196, "Utgarde Pinnacle"], [4603, "Vault of Archavon"], [718, "Wailing Caverns"], [3277, "Warsong Gulch"], [28, "Western Plaguelands"], [40, "Westfall"], [11, "Wetlands"], [4197, "Wintergrasp"], [618, "Winterspring"], [3521, "Zangarmarsh"], [3805, "Zul'Aman"], [66, "Zul'Drak"], [978, "Zul'Farrak"], [19, "Zul'Gurub"]],
- // alt zone: [[4494, "Ahn'kahet: The Old Kingdom"], [36, "Alterac Mountains"], [2597, "Alterac Valley"], [3358, "Arathi Basin"], [45, "Arathi Highlands"], [331, "Ashenvale"], [3790, "Auchenai Crypts"], [4277, "Azjol-Nerub"], [16, "Azshara"], [3524, "Azuremyst Isle"], [3, "Badlands"], [3959, "Black Temple"], [719, "Blackfathom Deeps"], [1584, "Blackrock Depths"], [25, "Blackrock Mountain"], [1583, "Blackrock Spire"], [2677, "Blackwing Lair"], [3702, "Blade's Edge Arena"], [3522, "Blade's Edge Mountains"], [4, "Blasted Lands"], [3525, "Bloodmyst Isle"], [3537, "Borean Tundra"], [46, "Burning Steppes"], [1941, "Caverns of Time"], [3905, "Coilfang Reservoir"], [4024, "Coldarra"], [2817, "Crystalsong Forest"], [4395, "Dalaran"], [4378, "Dalaran Arena"], [279, "Dalaran Crater"], [148, "Darkshore"], [393, "Darkspear Strand"], [1657, "Darnassus"], [41, "Deadwind Pass"], [2257, "Deeprun Tram"], [405, "Desolace"], [2557, "Dire Maul"], [65, "Dragonblight"], [4196, "Drak'Tharon Keep"], [1, "Dun Morogh"], [14, "Durotar"], [10, "Duskwood"], [15, "Dustwallow Marsh"], [139, "Eastern Plaguelands"], [12, "Elwynn Forest"], [3430, "Eversong Woods"], [3820, "Eye of the Storm"], [361, "Felwood"], [357, "Feralas"], [3433, "Ghostlands"], [721, "Gnomeregan"], [394, "Grizzly Hills"], [3923, "Gruul's Lair"], [4416, "Gundrak"], [4272, "Halls of Lightning"], [4820, "Halls of Reflection"], [4264, "Halls of Stone"], [3483, "Hellfire Peninsula"], [3562, "Hellfire Ramparts"], [267, "Hillsbrad Foothills"], [495, "Howling Fjord"], [4742, "Hrothgar's Landing"], [3606, "Hyjal Summit"], [210, "Icecrown"], [4812, "Icecrown Citadel"], [1537, "Ironforge"], [4710, "Isle of Conquest"], [4080, "Isle of Quel'Danas"], [3457, "Karazhan"], [38, "Loch Modan"], [4131, "Magisters' Terrace"], [3836, "Magtheridon's Lair"], [3792, "Mana-Tombs"], [2100, "Maraudon"], [2717, "Molten Core"], [493, "Moonglade"], [215, "Mulgore"], [3518, "Nagrand"], [3698, "Nagrand Arena"], [3456, "Naxxramas"], [3523, "Netherstorm"], [2367, "Old Hillsbrad Foothills"], [2159, "Onyxia's Lair"], [1637, "Orgrimmar"], [4813, "Pit of Saron"], [4298, "Plaguelands: The Scarlet Enclave"], [2437, "Ragefire Chasm"], [722, "Razorfen Downs"], [491, "Razorfen Kraul"], [44, "Redridge Mountains"], [3429, "Ruins of Ahn'Qiraj"], [3968, "Ruins of Lordaeron"], [796, "Scarlet Monastery"], [2057, "Scholomance"], [51, "Searing Gorge"], [3607, "Serpentshrine Cavern"], [3791, "Sethekk Halls"], [3789, "Shadow Labyrinth"], [209, "Shadowfang Keep"], [3520, "Shadowmoon Valley"], [3703, "Shattrath City"], [3711, "Sholazar Basin"], [1377, "Silithus"], [3487, "Silvermoon City"], [130, "Silverpine Forest"], [3679, "Skettis"], [406, "Stonetalon Mountains"], [1519, "Stormwind City"], [4384, "Strand of the Ancients"], [33, "Stranglethorn Vale"], [2017, "Stratholme"], [1477, "Sunken Temple"], [4075, "Sunwell Plateau"], [8, "Swamp of Sorrows"], [440, "Tanaris"], [141, "Teldrassil"], [3428, "Temple of Ahn'Qiraj"], [3519, "Terokkar Forest"], [3848, "The Arcatraz"], [17, "The Barrens"], [2366, "The Black Morass"], [3840, "The Black Temple"], [3713, "The Blood Furnace"], [3847, "The Botanica"], [4100, "The Culling of Stratholme"], [1581, "The Deadmines"], [3557, "The Exodar"], [3845, "The Eye"], [4500, "The Eye of Eternity"], [4809, "The Forge of Souls"], [47, "The Hinterlands"], [3849, "The Mechanar"], [4265, "The Nexus"], [4493, "The Obsidian Sanctum"], [4228, "The Oculus"], [4406, "The Ring of Valor"], [3714, "The Shattered Halls"], [3717, "The Slave Pens"], [3715, "The Steamvault"], [717, "The Stockade"], [67, "The Storm Peaks"], [3716, "The Underbog"], [457, "The Veiled Sea"], [4415, "The Violet Hold"], [400, "Thousand Needles"], [1638, "Thunder Bluff"], [1216, "Timbermaw Hold"], [85, "Tirisfal Glades"], [4723, "Trial of the Champion"], [4722, "Trial of the Crusader"], [1337, "Uldaman"], [4273, "Ulduar"], [490, "Un'Goro Crater"], [1497, "Undercity"], [206, "Utgarde Keep"], [1196, "Utgarde Pinnacle"], [4603, "Vault of Archavon"], [718, "Wailing Caverns"], [3277, "Warsong Gulch"], [28, "Western Plaguelands"], [40, "Westfall"], [11, "Wetlands"], [4197, "Wintergrasp"], [618, "Winterspring"], [3521, "Zangarmarsh"], [3805, "Zul'Aman"], [66, "Zul'Drak"], [1176, "Zul'Farrak"], [1977, "Zul'Gurub"]],
- resistance: [[6, "Arcane"], [2, "Fire"], [3, "Nature"], [4, "Frost"], [5, "Shadow"], [1, "Holy"], [0, "Physical"]],
- gem: [[5, "Yes"], [1, "Meta"], [2, "Red"], [3, "Yellow"], [4, "Blue"], [6, "No"]],
- profession: [[11, "Yes"], [1, "Alchemy"], [2, "Blacksmithing"], [3, "Cooking"], [4, "Enchanting"], [5, "Engineering"], [6, "First Aid"], [13, "Fishing"], [14, "Herbalism"], [15, "Inscription"], [7, "Jewelcrafting"], [8, "Leatherworking"], [9, "Mining"], [10, "Tailoring"], [12, "No"]],
- expansion: [[3, "Wrath of the Lich King"], [2, "The Burning Crusade"], [1, "None"]],
- totemcategory: [[3, "Air Totem"], [14, "Arclight Spanner"], [162, "Blacksmith Hammer"], [168, "Bladed Pickaxe"], [141, "Drums"], [2, "Earth Totem"], [4, "Fire Totem"], [169, "Flint and Tinder"], [161, "Gnomish Army Knife"], [15, "Gyromatic Micro-Adjustor"], [167, "Hammer Pick"], [81, "Hollow Quill"], [21, "Master Totem"], [165, "Mining Pick"], [12, "Philosopher's Stone"], [62, "Runed Adamantite Rod"], [10, "Runed Arcanite Rod"], [101, "Runed Azurite Rod"], [189, "Runed Cobalt Rod"], [6, "Runed Copper Rod"], [63, "Runed Eternium Rod"], [41, "Runed Fel Iron Rod"], [8, "Runed Golden Rod"], [7, "Runed Silver Rod"], [190, "Runed Titanium Rod"], [9, "Runed Truesilver Rod"], [166, "Skinning Knife"], [121, "Virtuoso Inking Set"], [5, "Water Totem"]],
- heroiczone: [[4494, "Ahn'kahet: The Old Kingdom"], [3790, "Auchenai Crypts"], [4277, "Azjol-Nerub"], [4196, "Drak'Tharon Keep"], [4416, "Gundrak"], [4272, "Halls of Lightning"], [4820, "Halls of Reflection"], [4264, "Halls of Stone"], [3562, "Hellfire Ramparts"], [4812, "Icecrown Citadel"], [4131, "Magisters' Terrace"], [3792, "Mana-Tombs"], [3456, "Naxxramas"], [2367, "Old Hillsbrad Foothills"], [4813, "Pit of Saron"], [3791, "Sethekk Halls"], [3789, "Shadow Labyrinth"], [3848, "The Arcatraz"], [2366, "The Black Morass"], [3713, "The Blood Furnace"], [3847, "The Botanica"], [4100, "The Culling of Stratholme"], [4500, "The Eye of Eternity"], [4809, "The Forge of Souls"], [3849, "The Mechanar"], [4265, "The Nexus"], [4493, "The Obsidian Sanctum"], [4228, "The Oculus"], [3714, "The Shattered Halls"], [3717, "The Slave Pens"], [3715, "The Steamvault"], [3716, "The Underbog"], [4415, "The Violet Hold"], [4723, "Trial of the Champion"], [4722, "Trial of the Crusader"], [4273, "Ulduar"], [206, "Utgarde Keep"], [1196, "Utgarde Pinnacle"], [4603, "Vault of Archavon"]],
- // alt heroiczone: [[4494, "Ahn'kahet: The Old Kingdom"], [3790, "Auchenai Crypts"], [4277, "Azjol-Nerub"], [4196, "Drak'Tharon Keep"], [4416, "Gundrak"], [4272, "Halls of Lightning"], [4820, "Halls of Reflection"], [4264, "Halls of Stone"], [3562, "Hellfire Ramparts"], [4812, "Icecrown Citadel"], [4131, "Magisters' Terrace"], [3792, "Mana-Tombs"], [3456, "Naxxramas"], [2367, "Old Hillsbrad Foothills"], [4813, "Pit of Saron"], [3791, "Sethekk Halls"], [3789, "Shadow Labyrinth"], [3848, "The Arcatraz"], [2366, "The Black Morass"], [3713, "The Blood Furnace"], [3847, "The Botanica"], [4100, "The Culling of Stratholme"], [4500, "The Eye of Eternity"], [4809, "The Forge of Souls"], [3849, "The Mechanar"], [4265, "The Nexus"], [4493, "The Obsidian Sanctum"], [4228, "The Oculus"], [3714, "The Shattered Halls"], [3717, "The Slave Pens"], [3715, "The Steamvault"], [3716, "The Underbog"], [4415, "The Violet Hold"], [4723, "Trial of the Champion"], [4722, "Trial of the Crusader"], [4273, "Ulduar"], [206, "Utgarde Keep"], [1196, "Utgarde Pinnacle"], [4603, "Vault of Archavon"]],
- heroicdungeon: [[4494, "Ahn'kahet: The Old Kingdom"], [3790, "Auchenai Crypts"], [4277, "Azjol-Nerub"], [4196, "Drak'Tharon Keep"], [4416, "Gundrak"], [4272, "Halls of Lightning"], [4820, "Halls of Reflection"], [4264, "Halls of Stone"], [3562, "Hellfire Ramparts"], [4131, "Magisters' Terrace"], [3792, "Mana-Tombs"], [2367, "Old Hillsbrad Foothills"], [4813, "Pit of Saron"], [3791, "Sethekk Halls"], [3789, "Shadow Labyrinth"], [3848, "The Arcatraz"], [2366, "The Black Morass"], [3713, "The Blood Furnace"], [3847, "The Botanica"], [4100, "The Culling of Stratholme"], [4809, "The Forge of Souls"], [3849, "The Mechanar"], [4265, "The Nexus"], [4228, "The Oculus"], [3714, "The Shattered Halls"], [3717, "The Slave Pens"], [3715, "The Steamvault"], [3716, "The Underbog"], [4415, "The Violet Hold"], [4723, "Trial of the Champion"], [206, "Utgarde Keep"], [1196, "Utgarde Pinnacle"]],
- // alt heroicdungeon: [[4494, "Ahn'kahet: The Old Kingdom"], [3790, "Auchenai Crypts"], [4277, "Azjol-Nerub"], [4196, "Drak'Tharon Keep"], [4416, "Gundrak"], [4272, "Halls of Lightning"], [4820, "Halls of Reflection"], [4264, "Halls of Stone"], [3562, "Hellfire Ramparts"], [4131, "Magisters' Terrace"], [3792, "Mana-Tombs"], [2367, "Old Hillsbrad Foothills"], [4813, "Pit of Saron"], [3791, "Sethekk Halls"], [3789, "Shadow Labyrinth"], [3848, "The Arcatraz"], [2366, "The Black Morass"], [3713, "The Blood Furnace"], [3847, "The Botanica"], [4100, "The Culling of Stratholme"], [4809, "The Forge of Souls"], [3849, "The Mechanar"], [4265, "The Nexus"], [4228, "The Oculus"], [3714, "The Shattered Halls"], [3717, "The Slave Pens"], [3715, "The Steamvault"], [3716, "The Underbog"], [4415, "The Violet Hold"], [4723, "Trial of the Champion"], [206, "Utgarde Keep"], [1196, "Utgarde Pinnacle"]],
- heroicraid: [[4812, "Icecrown Citadel"], [4722, "Trial of the Crusader"]],
- multimoderaid: [[4812, "Icecrown Citadel"], [3456, "Naxxramas"], [2159, "Onyxia's Lair"], [4500, "The Eye of Eternity"], [4493, "The Obsidian Sanctum"], [4722, "Trial of the Crusader"], [4273, "Ulduar"], [4603, "Vault of Archavon"]],
- event: [[372, "Brewfest"], [283, "Call to Arms: Alterac Valley"], [285, "Call to Arms: Arathi Basin"], [353, "Call to Arms: Eye of the Storm"], [420, "Call to Arms: Isle of Conquest"], [400, "Call to Arms: Strand of the Ancients"], [284, "Call to Arms: Warsong Gulch"], [201, "Children's Week"], [374, "Darkmoon Faire"], [409, "Day of the Dead"], [141, "Feast of Winter Veil"], [324, "Hallow's End"], [321, "Harvest Festival"], [424, "Kalu'ak Fishing Derby"], [335, "Love is in the Air"], [327, "Lunar Festival"], [341, "Midsummer Fire Festival"], [181, "Noblegarden"], [404, "Pilgrim's Bounty"], [398, "Pirates' Day"], [301, "Stranglethorn Fishing Extravaganza"]],
- pvp: [[1, "Yes"], [3, "Arena"], [4, "Battleground"], [5, "World"], [2, "No"]],
- currency: [[20560, "Alterac Valley Mark of Honor"], [32572, "Apexis Crystal"], [32569, "Apexis Shard"], [20559, "Arathi Basin Mark of Honor"], [29736, "Arcane Rune"], [44128, "Arctic Fur"], [29434, "Badge of Justice"], [34853, "Belt of the Forgotten Conqueror"], [34854, "Belt of the Forgotten Protector"], [34855, "Belt of the Forgotten Vanquisher"], [34856, "Boots of the Forgotten Conqueror"], [34857, "Boots of the Forgotten Protector"], [34858, "Boots of the Forgotten Vanquisher"], [34848, "Bracers of the Forgotten Conqueror"], [34851, "Bracers of the Forgotten Protector"], [34852, "Bracers of the Forgotten Vanquisher"], [40625, "Breastplate of the Lost Conqueror"], [40626, "Breastplate of the Lost Protector"], [40627, "Breastplate of the Lost Vanquisher"], [45632, "Breastplate of the Wayward Conqueror"], [45633, "Breastplate of the Wayward Protector"], [45634, "Breastplate of the Wayward Vanquisher"], [34169, "Breeches of Natural Aggression"], [37829, "Brewfest Prize Token"], [23247, "Burning Blossom"], [34186, "Chain Links of the Tumultuous Storm"], [44990, "Champion's Seal"], [29754, "Chestguard of the Fallen Champion"], [29753, "Chestguard of the Fallen Defender"], [29755, "Chestguard of the Fallen Hero"], [31089, "Chestguard of the Forgotten Conqueror"], [31091, "Chestguard of the Forgotten Protector"], [31090, "Chestguard of the Forgotten Vanquisher"], [40610, "Chestguard of the Lost Conqueror"], [40611, "Chestguard of the Lost Protector"], [40612, "Chestguard of the Lost Vanquisher"], [30236, "Chestguard of the Vanquished Champion"], [30237, "Chestguard of the Vanquished Defender"], [30238, "Chestguard of the Vanquished Hero"], [45635, "Chestguard of the Wayward Conqueror"], [45636, "Chestguard of the Wayward Protector"], [45637, "Chestguard of the Wayward Vanquisher"], [24368, "Coilfang Armaments"], [52027, "Conqueror's Mark of Sanctification"], [52030, "Conqueror's Mark of Sanctification (Heroic)"], [34245, "Cover of Ursol the Wise"], [34332, "Cowl of Gul'dan"], [34339, "Cowl of Light's Purity"], [34345, "Crown of Anasterian"], [40631, "Crown of the Lost Conqueror"], [40632, "Crown of the Lost Protector"], [40633, "Crown of the Lost Vanquisher"], [45638, "Crown of the Wayward Conqueror"], [45639, "Crown of the Wayward Protector"], [45640, "Crown of the Wayward Vanquisher"], [43016, "Dalaran Cooking Award"], [41596, "Dalaran Jewelcrafter's Token"], [34052, "Dream Shard"], [34244, "Duplicitous Guise"], [45624, "Emblem of Conquest"], [49426, "Emblem of Frost"], [40752, "Emblem of Heroism"], [47241, "Emblem of Triumph"], [40753, "Emblem of Valor"], [34208, "Equilibrium Epaulets"], [29024, "Eye of the Storm Mark of Honor"], [34180, "Felfury Legplates"], [34229, "Garments of Serene Shores"], [34350, "Gauntlets of the Ancient Shadowmoon"], [40628, "Gauntlets of the Lost Conqueror"], [40629, "Gauntlets of the Lost Protector"], [40630, "Gauntlets of the Lost Vanquisher"], [45641, "Gauntlets of the Wayward Conqueror"], [45642, "Gauntlets of the Wayward Protector"], [45643, "Gauntlets of the Wayward Vanquisher"], [29757, "Gloves of the Fallen Champion"], [29758, "Gloves of the Fallen Defender"], [29756, "Gloves of the Fallen Hero"], [31092, "Gloves of the Forgotten Conqueror"], [31094, "Gloves of the Forgotten Protector"], [31093, "Gloves of the Forgotten Vanquisher"], [40613, "Gloves of the Lost Conqueror"], [40614, "Gloves of the Lost Protector"], [40615, "Gloves of the Lost Vanquisher"], [30239, "Gloves of the Vanquished Champion"], [30240, "Gloves of the Vanquished Defender"], [30241, "Gloves of the Vanquished Hero"], [45644, "Gloves of the Wayward Conqueror"], [45645, "Gloves of the Wayward Protector"], [45646, "Gloves of the Wayward Vanquisher"], [24245, "Glowcap"], [26045, "Halaa Battle Token"], [26044, "Halaa Research Token"], [34342, "Handguards of the Dawn"], [34211, "Harness of Carnal Instinct"], [38425, "Heavy Borean Leather"], [34243, "Helm of Burning Righteousness"], [29760, "Helm of the Fallen Champion"], [29761, "Helm of the Fallen Defender"], [29759, "Helm of the Fallen Hero"], [31097, "Helm of the Forgotten Conqueror"], [31095, "Helm of the Forgotten Protector"], [31096, "Helm of the Forgotten Vanquisher"], [40616, "Helm of the Lost Conqueror"], [40617, "Helm of the Lost Protector"], [40618, "Helm of the Lost Vanquisher"], [30242, "Helm of the Vanquished Champion"], [30243, "Helm of the Vanquished Defender"], [30244, "Helm of the Vanquished Hero"], [45647, "Helm of the Wayward Conqueror"], [45648, "Helm of the Wayward Protector"], [45649, "Helm of the Wayward Vanquisher"], [34216, "Heroic Judicator's Chestguard"], [29735, "Holy Dust"], [29766, "Leggings of the Fallen Champion"], [29767, "Leggings of the Fallen Defender"], [29765, "Leggings of the Fallen Hero"], [31098, "Leggings of the Forgotten Conqueror"], [31100, "Leggings of the Forgotten Protector"], [31099, "Leggings of the Forgotten Vanquisher"], [34188, "Leggings of the Immortal Night"], [40619, "Leggings of the Lost Conqueror"], [40620, "Leggings of the Lost Protector"], [40621, "Leggings of the Lost Vanquisher"], [30245, "Leggings of the Vanquished Champion"], [30246, "Leggings of the Vanquished Defender"], [30247, "Leggings of the Vanquished Hero"], [45650, "Leggings of the Wayward Conqueror"], [45651, "Leggings of the Wayward Protector"], [45652, "Leggings of the Wayward Vanquisher"], [34167, "Legplates of the Holy Juggernaut"], [40634, "Legplates of the Lost Conqueror"], [40635, "Legplates of the Lost Protector"], [40636, "Legplates of the Lost Vanquisher"], [45653, "Legplates of the Wayward Conqueror"], [45654, "Legplates of the Wayward Protector"], [45655, "Legplates of the Wayward Vanquisher"], [40637, "Mantle of the Lost Conqueror"], [40638, "Mantle of the Lost Protector"], [40639, "Mantle of the Lost Vanquisher"], [45656, "Mantle of the Wayward Conqueror"], [45657, "Mantle of the Wayward Protector"], [45658, "Mantle of the Wayward Vanquisher"], [24579, "Mark of Honor Hold"], [24581, "Mark of Thrallmar"], [32897, "Mark of the Illidari"], [22484, "Necrotic Rune"], [34170, "Pantaloons of Calming Strife"], [34192, "Pauldrons of Perseverance"], [29763, "Pauldrons of the Fallen Champion"], [29764, "Pauldrons of the Fallen Defender"], [29762, "Pauldrons of the Fallen Hero"], [31101, "Pauldrons of the Forgotten Conqueror"], [31103, "Pauldrons of the Forgotten Protector"], [31102, "Pauldrons of the Forgotten Vanquisher"], [30248, "Pauldrons of the Vanquished Champion"], [30249, "Pauldrons of the Vanquished Defender"], [30250, "Pauldrons of the Vanquished Hero"], [52026, "Protector's Mark of Sanctification"], [52029, "Protector's Mark of Sanctification (Heroic)"], [34233, "Robes of Faltered Light"], [34234, "Shadowed Gauntlets of Paroxysm"], [34202, "Shawl of Wonderment"], [34195, "Shoulderpads of Vehemence"], [4291, "Silken Thread"], [34209, "Spaulders of Reclamation"], [40622, "Spaulders of the Lost Conqueror"], [40623, "Spaulders of the Lost Protector"], [40624, "Spaulders of the Lost Vanquisher"], [34193, "Spaulders of the Thalassian Savior"], [45659, "Spaulders of the Wayward Conqueror"], [45660, "Spaulders of the Wayward Protector"], [45661, "Spaulders of the Wayward Vanquisher"], [28558, "Spirit Shard"], [43228, "Stone Keeper's Shard"], [34212, "Sunglow Vest"], [34664, "Sunmote"], [34351, "Tranquil Majesty Wraps"], [47242, "Trophy of the Crusade"], [52025, "Vanquisher's Mark of Sanctification"], [52028, "Vanquisher's Mark of Sanctification (Heroic)"], [37836, "Venture Coin"], [34215, "Warharness of Reckless Fury"], [20558, "Warsong Gulch Mark of Honor"], [34597, "Winterfin Clam"], [43589, "Wintergrasp Mark of Honor"]],
- queststart: [[3, "Item"], [1, "NPC"], [2, "Object"]],
- questend: [[1, "NPC"], [2, "Object"]],
- spellsource: [[1, "Any"], [3, "Crafted"], [9, "Discovery"], [4, "Drop"], [6, "Quest"], [10, "Talent"], [8, "Trainer"], [7, "Vendor"], [2, "None"]],
- itemsource: [[1, "Any"], [3, "Crafted"], [4, "Drop"], [5, "PvP"], [6, "Quest"], [8, "Redemption"], [7, "Vendor"], [2, "None"]],
- glyphtype: [[1, "Major"], [2, "Minor"]],
- classs: [[12, "Any"], [6, "Death Knight"], [11, "Druid"], [3, "Hunter"], [8, "Mage"], [2, "Paladin"], [5, "Priest"], [4, "Rogue"], [7, "Shaman"], [9, "Warlock"], [1, "Warrior"], [13, "None"]],
- race: [[12, "Any"], [10, "Blood Elf"], [11, "Draenei"], [3, "Dwarf"], [7, "Gnome"], [1, "Human"], [4, "Night Elf"], [2, "Orc"], [6, "Tauren"], [8, "Troll"], [5, "Undead"], [13, "None"]],
- disenchanting: [[34057, "Abyss Crystal"], [22445, "Arcane Dust"], [11176, "Dream Dust"], [34052, "Dream Shard"], [11082, "Greater Astral Essence"], [34055, "Greater Cosmic Essence"], [16203, "Greater Eternal Essence"], [10939, "Greater Magic Essence"], [11135, "Greater Mystic Essence"], [11175, "Greater Nether Essence"], [22446, "Greater Planar Essence"], [16204, "Illusion Dust"], [34054, "Infinite Dust"], [14344, "Large Brilliant Shard"], [11084, "Large Glimmering Shard"], [11139, "Large Glowing Shard"], [22449, "Large Prismatic Shard"], [11178, "Large Radiant Shard"], [10998, "Lesser Astral Essence"], [34056, "Lesser Cosmic Essence"], [16202, "Lesser Eternal Essence"], [10938, "Lesser Magic Essence"], [11134, "Lesser Mystic Essence"], [11174, "Lesser Nether Essence"], [22447, "Lesser Planar Essence"], [20725, "Nexus Crystal"], [14343, "Small Brilliant Shard"], [34053, "Small Dream Shard"], [10978, "Small Glimmering Shard"], [11138, "Small Glowing Shard"], [22448, "Small Prismatic Shard"], [11177, "Small Radiant Shard"], [11083, "Soul Dust"], [10940, "Strange Dust"], [11137, "Vision Dust"], [22450, "Void Crystal"]],
+ yn: [[1, "Yes"], [2, "No"]],
+ num: [[1, ">"], [2, ">="], [3, "="], [4, "<="], [5, "<"]],
+ side: [[1, "Yes"], [2, "Alliance"], [3, "Horde"], [4, "Both"], [5, "No"]],
+ faction: [[1037, "Alliance Vanguard"], [1106, "Argent Crusade"], [529, "Argent Dawn"], [1012, "Ashtongue Deathsworn"], [87, "Bloodsail Buccaneers"], [21, "Booty Bay"], [910, "Brood of Nozdormu"], [609, "Cenarion Circle"], [942, "Cenarion Expedition"], [909, "Darkmoon Faire"], [530, "Darkspear Trolls"], [69, "Darnassus"], [577, "Everlook"], [930, "Exodar"], [1068, "Explorers' League"], [1104, "Frenzyheart Tribe"], [729, "Frostwolf Clan"], [369, "Gadgetzan"], [92, "Gelkis Clan Centaur"], [54, "Gnomeregan Exiles"], [946, "Honor Hold"], [1052, "Horde Expedition"], [749, "Hydraxian Waterlords"], [47, "Ironforge"], [989, "Keepers of Time"], [1090, "Kirin Tor"], [1098, "Knights of the Ebon Blade"], [978, "Kurenai"], [1011, "Lower City"], [93, "Magram Clan Centaur"], [1015, "Netherwing"], [1038, "Ogri'la"], [76, "Orgrimmar"], [470, "Ratchet"], [349, "Ravenholdt"], [1031, "Sha'tari Skyguard"], [1077, "Shattered Sun Offensive"], [809, "Shen'dralar"], [911, "Silvermoon City"], [890, "Silverwing Sentinels"], [970, "Sporeggar"], [730, "Stormpike Guard"], [72, "Stormwind"], [70, "Syndicate"], [932, "The Aldor"], [1156, "The Ashen Verdict"], [933, "The Consortium"], [510, "The Defilers"], [1126, "The Frostborn"], [1067, "The Hand of Vengeance"], [1073, "The Kalu'ak"], [509, "The League of Arathor"], [941, "The Mag'har"], [1105, "The Oracles"], [990, "The Scale of the Sands"], [934, "The Scryers"], [935, "The Sha'tar"], [1094, "The Silver Covenant"], [1119, "The Sons of Hodir"], [1124, "The Sunreavers"], [1064, "The Taunka"], [967, "The Violet Eye"], [1091, "The Wyrmrest Accord"], [59, "Thorium Brotherhood"], [947, "Thrallmar"], [81, "Thunder Bluff"], [576, "Timbermaw Hold"], [922, "Tranquillien"], [68, "Undercity"], [1050, "Valiance Expedition"], [1085, "Warsong Offensive"], [889, "Warsong Outriders"], [589, "Wintersaber Trainers"], [270, "Zandalar Tribe"]],
+// alt faction: [[469, "Alliance"], [1037, "Alliance Vanguard"], [1106, "Argent Crusade"], [529, "Argent Dawn"], [1012, "Ashtongue Deathsworn"], [87, "Bloodsail Buccaneers"], [21, "Booty Bay"], [910, "Brood of Nozdormu"], [609, "Cenarion Circle"], [942, "Cenarion Expedition"], [909, "Darkmoon Faire"], [530, "Darkspear Trolls"], [69, "Darnassus"], [577, "Everlook"], [930, "Exodar"], [1068, "Explorers' League"], [1104, "Frenzyheart Tribe"], [729, "Frostwolf Clan"], [369, "Gadgetzan"], [92, "Gelkis Clan Centaur"], [54, "Gnomeregan Exiles"], [946, "Honor Hold"], [67, "Horde"], [1052, "Horde Expedition"], [749, "Hydraxian Waterlords"], [47, "Ironforge"], [989, "Keepers of Time"], [1090, "Kirin Tor"], [1098, "Knights of the Ebon Blade"], [978, "Kurenai"], [1011, "Lower City"], [93, "Magram Clan Centaur"], [1015, "Netherwing"], [1038, "Ogri'la"], [76, "Orgrimmar"], [470, "Ratchet"], [349, "Ravenholdt"], [1031, "Sha'tari Skyguard"], [1077, "Shattered Sun Offensive"], [809, "Shen'dralar"], [911, "Silvermoon City"], [890, "Silverwing Sentinels"], [970, "Sporeggar"], [169, "Steamwheedle Cartel"], [730, "Stormpike Guard"], [72, "Stormwind"], [70, "Syndicate"], [932, "The Aldor"], [1156, "The Ashen Verdict"], [933, "The Consortium"], [510, "The Defilers"], [1126, "The Frostborn"], [1067, "The Hand of Vengeance"], [1073, "The Kalu'ak"], [509, "The League of Arathor"], [941, "The Mag'har"], [1105, "The Oracles"], [990, "The Scale of the Sands"], [934, "The Scryers"], [935, "The Sha'tar"], [1094, "The Silver Covenant"], [1119, "The Sons of Hodir"], [1124, "The Sunreavers"], [1064, "The Taunka"], [967, "The Violet Eye"], [1091, "The Wyrmrest Accord"], [59, "Thorium Brotherhood"], [947, "Thrallmar"], [81, "Thunder Bluff"], [576, "Timbermaw Hold"], [922, "Tranquillien"], [68, "Undercity"], [1050, "Valiance Expedition"], [1085, "Warsong Offensive"], [889, "Warsong Outriders"], [589, "Wintersaber Trainers"], [270, "Zandalar Tribe"]],
+ zone: [[4494, "Ahn'kahet: The Old Kingdom"], [36, "Alterac Mountains"], [2597, "Alterac Valley"], [3358, "Arathi Basin"], [45, "Arathi Highlands"], [331, "Ashenvale"], [3790, "Auchenai Crypts"], [4277, "Azjol-Nerub"], [16, "Azshara"], [3524, "Azuremyst Isle"], [3, "Badlands"], [3959, "Black Temple"], [719, "Blackfathom Deeps"], [1584, "Blackrock Depths"], [25, "Blackrock Mountain"], [1583, "Blackrock Spire"], [2677, "Blackwing Lair"], [3522, "Blade's Edge Mountains"], [4, "Blasted Lands"], [3525, "Bloodmyst Isle"], [3537, "Borean Tundra"], [46, "Burning Steppes"], [2918, "Champions' Hall"], [2817, "Crystalsong Forest"], [4395, "Dalaran"], [4378, "Dalaran Sewers"], [148, "Darkshore"], [1657, "Darnassus"], [41, "Deadwind Pass"], [2257, "Deeprun Tram"], [405, "Desolace"], [2557, "Dire Maul"], [65, "Dragonblight"], [4196, "Drak'Tharon Keep"], [1, "Dun Morogh"], [14, "Durotar"], [10, "Duskwood"], [15, "Dustwallow Marsh"], [139, "Eastern Plaguelands"], [12, "Elwynn Forest"], [3430, "Eversong Woods"], [3820, "Eye of the Storm"], [361, "Felwood"], [357, "Feralas"], [3433, "Ghostlands"], [133, "Gnomeregan"], [394, "Grizzly Hills"], [3618, "Gruul's Lair"], [4416, "Gundrak"], [2917, "Hall of Legends"], [4272, "Halls of Lightning"], [4820, "Halls of Reflection"], [4264, "Halls of Stone"], [3483, "Hellfire Peninsula"], [3562, "Hellfire Ramparts"], [267, "Hillsbrad Foothills"], [495, "Howling Fjord"], [4742, "Hrothgar's Landing"], [3606, "Hyjal Summit"], [210, "Icecrown"], [4812, "Icecrown Citadel"], [1537, "Ironforge"], [4710, "Isle of Conquest"], [4080, "Isle of Quel'Danas"], [2562, "Karazhan"], [38, "Loch Modan"], [4095, "Magisters' Terrace"], [3836, "Magtheridon's Lair"], [3792, "Mana-Tombs"], [2100, "Maraudon"], [2717, "Molten Core"], [493, "Moonglade"], [215, "Mulgore"], [3518, "Nagrand"], [3456, "Naxxramas"], [3523, "Netherstorm"], [2367, "Old Hillsbrad Foothills"], [2159, "Onyxia's Lair"], [1637, "Orgrimmar"], [4813, "Pit of Saron"], [2437, "Ragefire Chasm"], [722, "Razorfen Downs"], [491, "Razorfen Kraul"], [44, "Redridge Mountains"], [3429, "Ruins of Ahn'Qiraj"], [3968, "Ruins of Lordaeron"], [796, "Scarlet Monastery"], [2057, "Scholomance"], [51, "Searing Gorge"], [3607, "Serpentshrine Cavern"], [3791, "Sethekk Halls"], [3789, "Shadow Labyrinth"], [209, "Shadowfang Keep"], [3520, "Shadowmoon Valley"], [3703, "Shattrath City"], [3711, "Sholazar Basin"], [1377, "Silithus"], [3487, "Silvermoon City"], [130, "Silverpine Forest"], [406, "Stonetalon Mountains"], [1519, "Stormwind City"], [4384, "Strand of the Ancients"], [33, "Stranglethorn Vale"], [2017, "Stratholme"], [1477, "Sunken Temple"], [4075, "Sunwell Plateau"], [8, "Swamp of Sorrows"], [440, "Tanaris"], [141, "Teldrassil"], [3428, "Temple of Ahn'Qiraj"], [3519, "Terokkar Forest"], [3848, "The Arcatraz"], [17, "The Barrens"], [2366, "The Black Morass"], [3713, "The Blood Furnace"], [3847, "The Botanica"], [3702, "The Circle of Blood"], [4100, "The Culling of Stratholme"], [1581, "The Deadmines"], [3557, "The Exodar"], [3842, "The Eye"], [4500, "The Eye of Eternity"], [4809, "The Forge of Souls"], [47, "The Hinterlands"], [3849, "The Mechanar"], [4120, "The Nexus"], [4493, "The Obsidian Sanctum"], [4228, "The Oculus"], [3698, "The Ring of Trials"], [4406, "The Ring of Valor"], [4298, "The Scarlet Enclave"], [3714, "The Shattered Halls"], [3717, "The Slave Pens"], [3715, "The Steamvault"], [717, "The Stockade"], [67, "The Storm Peaks"], [3716, "The Underbog"], [457, "The Veiled Sea"], [4415, "The Violet Hold"], [400, "Thousand Needles"], [1638, "Thunder Bluff"], [85, "Tirisfal Glades"], [4723, "Trial of the Champion"], [4722, "Trial of the Crusader"], [1337, "Uldaman"], [4273, "Ulduar"], [490, "Un'Goro Crater"], [1497, "Undercity"], [206, "Utgarde Keep"], [1196, "Utgarde Pinnacle"], [4603, "Vault of Archavon"], [718, "Wailing Caverns"], [3277, "Warsong Gulch"], [28, "Western Plaguelands"], [40, "Westfall"], [11, "Wetlands"], [4197, "Wintergrasp"], [618, "Winterspring"], [3521, "Zangarmarsh"], [3805, "Zul'Aman"], [66, "Zul'Drak"], [978, "Zul'Farrak"], [19, "Zul'Gurub"]],
+// alt zone: [[4494, "Ahn'kahet: The Old Kingdom"], [36, "Alterac Mountains"], [2597, "Alterac Valley"], [3358, "Arathi Basin"], [45, "Arathi Highlands"], [331, "Ashenvale"], [3790, "Auchenai Crypts"], [4277, "Azjol-Nerub"], [16, "Azshara"], [3524, "Azuremyst Isle"], [3, "Badlands"], [3959, "Black Temple"], [719, "Blackfathom Deeps"], [1584, "Blackrock Depths"], [25, "Blackrock Mountain"], [1583, "Blackrock Spire"], [2677, "Blackwing Lair"], [3702, "Blade's Edge Arena"], [3522, "Blade's Edge Mountains"], [4, "Blasted Lands"], [3525, "Bloodmyst Isle"], [3537, "Borean Tundra"], [46, "Burning Steppes"], [1941, "Caverns of Time"], [3905, "Coilfang Reservoir"], [4024, "Coldarra"], [2817, "Crystalsong Forest"], [4395, "Dalaran"], [4378, "Dalaran Arena"], [279, "Dalaran Crater"], [148, "Darkshore"], [393, "Darkspear Strand"], [1657, "Darnassus"], [41, "Deadwind Pass"], [2257, "Deeprun Tram"], [405, "Desolace"], [2557, "Dire Maul"], [65, "Dragonblight"], [4196, "Drak'Tharon Keep"], [1, "Dun Morogh"], [14, "Durotar"], [10, "Duskwood"], [15, "Dustwallow Marsh"], [139, "Eastern Plaguelands"], [12, "Elwynn Forest"], [3430, "Eversong Woods"], [3820, "Eye of the Storm"], [361, "Felwood"], [357, "Feralas"], [3433, "Ghostlands"], [721, "Gnomeregan"], [394, "Grizzly Hills"], [3923, "Gruul's Lair"], [4416, "Gundrak"], [4272, "Halls of Lightning"], [4820, "Halls of Reflection"], [4264, "Halls of Stone"], [3483, "Hellfire Peninsula"], [3562, "Hellfire Ramparts"], [267, "Hillsbrad Foothills"], [495, "Howling Fjord"], [4742, "Hrothgar's Landing"], [3606, "Hyjal Summit"], [210, "Icecrown"], [4812, "Icecrown Citadel"], [1537, "Ironforge"], [4710, "Isle of Conquest"], [4080, "Isle of Quel'Danas"], [3457, "Karazhan"], [38, "Loch Modan"], [4131, "Magisters' Terrace"], [3836, "Magtheridon's Lair"], [3792, "Mana-Tombs"], [2100, "Maraudon"], [2717, "Molten Core"], [493, "Moonglade"], [215, "Mulgore"], [3518, "Nagrand"], [3698, "Nagrand Arena"], [3456, "Naxxramas"], [3523, "Netherstorm"], [2367, "Old Hillsbrad Foothills"], [2159, "Onyxia's Lair"], [1637, "Orgrimmar"], [4813, "Pit of Saron"], [4298, "Plaguelands: The Scarlet Enclave"], [2437, "Ragefire Chasm"], [722, "Razorfen Downs"], [491, "Razorfen Kraul"], [44, "Redridge Mountains"], [3429, "Ruins of Ahn'Qiraj"], [3968, "Ruins of Lordaeron"], [796, "Scarlet Monastery"], [2057, "Scholomance"], [51, "Searing Gorge"], [3607, "Serpentshrine Cavern"], [3791, "Sethekk Halls"], [3789, "Shadow Labyrinth"], [209, "Shadowfang Keep"], [3520, "Shadowmoon Valley"], [3703, "Shattrath City"], [3711, "Sholazar Basin"], [1377, "Silithus"], [3487, "Silvermoon City"], [130, "Silverpine Forest"], [3679, "Skettis"], [406, "Stonetalon Mountains"], [1519, "Stormwind City"], [4384, "Strand of the Ancients"], [33, "Stranglethorn Vale"], [2017, "Stratholme"], [1477, "Sunken Temple"], [4075, "Sunwell Plateau"], [8, "Swamp of Sorrows"], [440, "Tanaris"], [141, "Teldrassil"], [3428, "Temple of Ahn'Qiraj"], [3519, "Terokkar Forest"], [3848, "The Arcatraz"], [17, "The Barrens"], [2366, "The Black Morass"], [3840, "The Black Temple"], [3713, "The Blood Furnace"], [3847, "The Botanica"], [4100, "The Culling of Stratholme"], [1581, "The Deadmines"], [3557, "The Exodar"], [3845, "The Eye"], [4500, "The Eye of Eternity"], [4809, "The Forge of Souls"], [47, "The Hinterlands"], [3849, "The Mechanar"], [4265, "The Nexus"], [4493, "The Obsidian Sanctum"], [4228, "The Oculus"], [4406, "The Ring of Valor"], [3714, "The Shattered Halls"], [3717, "The Slave Pens"], [3715, "The Steamvault"], [717, "The Stockade"], [67, "The Storm Peaks"], [3716, "The Underbog"], [457, "The Veiled Sea"], [4415, "The Violet Hold"], [400, "Thousand Needles"], [1638, "Thunder Bluff"], [1216, "Timbermaw Hold"], [85, "Tirisfal Glades"], [4723, "Trial of the Champion"], [4722, "Trial of the Crusader"], [1337, "Uldaman"], [4273, "Ulduar"], [490, "Un'Goro Crater"], [1497, "Undercity"], [206, "Utgarde Keep"], [1196, "Utgarde Pinnacle"], [4603, "Vault of Archavon"], [718, "Wailing Caverns"], [3277, "Warsong Gulch"], [28, "Western Plaguelands"], [40, "Westfall"], [11, "Wetlands"], [4197, "Wintergrasp"], [618, "Winterspring"], [3521, "Zangarmarsh"], [3805, "Zul'Aman"], [66, "Zul'Drak"], [1176, "Zul'Farrak"], [1977, "Zul'Gurub"]],
+ resistance: [[6, "Arcane"], [2, "Fire"], [3, "Nature"], [4, "Frost"], [5, "Shadow"], [1, "Holy"], [0, "Physical"]],
+ gem: [[5, "Yes"], [1, "Meta"], [2, "Red"], [3, "Yellow"], [4, "Blue"], [6, "No"]],
+ profession: [[11, "Yes"], [1, "Alchemy"], [2, "Blacksmithing"], [3, "Cooking"], [4, "Enchanting"], [5, "Engineering"], [6, "First Aid"], [13, "Fishing"], [14, "Herbalism"], [15, "Inscription"], [7, "Jewelcrafting"], [8, "Leatherworking"], [9, "Mining"], [10, "Tailoring"], [12, "No"]],
+ expansion: [[3, "Wrath of the Lich King"], [2, "The Burning Crusade"], [1, "None"]],
+ totemcategory: [[3, "Air Totem"], [14, "Arclight Spanner"], [162, "Blacksmith Hammer"], [168, "Bladed Pickaxe"], [141, "Drums"], [2, "Earth Totem"], [4, "Fire Totem"], [169, "Flint and Tinder"], [161, "Gnomish Army Knife"], [15, "Gyromatic Micro-Adjustor"], [167, "Hammer Pick"], [81, "Hollow Quill"], [21, "Master Totem"], [165, "Mining Pick"], [12, "Philosopher's Stone"], [62, "Runed Adamantite Rod"], [10, "Runed Arcanite Rod"], [101, "Runed Azurite Rod"], [189, "Runed Cobalt Rod"], [6, "Runed Copper Rod"], [63, "Runed Eternium Rod"], [41, "Runed Fel Iron Rod"], [8, "Runed Golden Rod"], [7, "Runed Silver Rod"], [190, "Runed Titanium Rod"], [9, "Runed Truesilver Rod"], [166, "Skinning Knife"], [121, "Virtuoso Inking Set"], [5, "Water Totem"]],
+ heroiczone: [[4494, "Ahn'kahet: The Old Kingdom"], [3790, "Auchenai Crypts"], [4277, "Azjol-Nerub"], [4196, "Drak'Tharon Keep"], [4416, "Gundrak"], [4272, "Halls of Lightning"], [4820, "Halls of Reflection"], [4264, "Halls of Stone"], [3562, "Hellfire Ramparts"], [4812, "Icecrown Citadel"], [4131, "Magisters' Terrace"], [3792, "Mana-Tombs"], [3456, "Naxxramas"], [2367, "Old Hillsbrad Foothills"], [4813, "Pit of Saron"], [3791, "Sethekk Halls"], [3789, "Shadow Labyrinth"], [3848, "The Arcatraz"], [2366, "The Black Morass"], [3713, "The Blood Furnace"], [3847, "The Botanica"], [4100, "The Culling of Stratholme"], [4500, "The Eye of Eternity"], [4809, "The Forge of Souls"], [3849, "The Mechanar"], [4265, "The Nexus"], [4493, "The Obsidian Sanctum"], [4228, "The Oculus"], [3714, "The Shattered Halls"], [3717, "The Slave Pens"], [3715, "The Steamvault"], [3716, "The Underbog"], [4415, "The Violet Hold"], [4723, "Trial of the Champion"], [4722, "Trial of the Crusader"], [4273, "Ulduar"], [206, "Utgarde Keep"], [1196, "Utgarde Pinnacle"], [4603, "Vault of Archavon"]],
+// alt heroiczone: [[4494, "Ahn'kahet: The Old Kingdom"], [3790, "Auchenai Crypts"], [4277, "Azjol-Nerub"], [4196, "Drak'Tharon Keep"], [4416, "Gundrak"], [4272, "Halls of Lightning"], [4820, "Halls of Reflection"], [4264, "Halls of Stone"], [3562, "Hellfire Ramparts"], [4812, "Icecrown Citadel"], [4131, "Magisters' Terrace"], [3792, "Mana-Tombs"], [3456, "Naxxramas"], [2367, "Old Hillsbrad Foothills"], [4813, "Pit of Saron"], [3791, "Sethekk Halls"], [3789, "Shadow Labyrinth"], [3848, "The Arcatraz"], [2366, "The Black Morass"], [3713, "The Blood Furnace"], [3847, "The Botanica"], [4100, "The Culling of Stratholme"], [4500, "The Eye of Eternity"], [4809, "The Forge of Souls"], [3849, "The Mechanar"], [4265, "The Nexus"], [4493, "The Obsidian Sanctum"], [4228, "The Oculus"], [3714, "The Shattered Halls"], [3717, "The Slave Pens"], [3715, "The Steamvault"], [3716, "The Underbog"], [4415, "The Violet Hold"], [4723, "Trial of the Champion"], [4722, "Trial of the Crusader"], [4273, "Ulduar"], [206, "Utgarde Keep"], [1196, "Utgarde Pinnacle"], [4603, "Vault of Archavon"]],
+ heroicdungeon: [[4494, "Ahn'kahet: The Old Kingdom"], [3790, "Auchenai Crypts"], [4277, "Azjol-Nerub"], [4196, "Drak'Tharon Keep"], [4416, "Gundrak"], [4272, "Halls of Lightning"], [4820, "Halls of Reflection"], [4264, "Halls of Stone"], [3562, "Hellfire Ramparts"], [4131, "Magisters' Terrace"], [3792, "Mana-Tombs"], [2367, "Old Hillsbrad Foothills"], [4813, "Pit of Saron"], [3791, "Sethekk Halls"], [3789, "Shadow Labyrinth"], [3848, "The Arcatraz"], [2366, "The Black Morass"], [3713, "The Blood Furnace"], [3847, "The Botanica"], [4100, "The Culling of Stratholme"], [4809, "The Forge of Souls"], [3849, "The Mechanar"], [4265, "The Nexus"], [4228, "The Oculus"], [3714, "The Shattered Halls"], [3717, "The Slave Pens"], [3715, "The Steamvault"], [3716, "The Underbog"], [4415, "The Violet Hold"], [4723, "Trial of the Champion"], [206, "Utgarde Keep"], [1196, "Utgarde Pinnacle"]],
+// alt heroicdungeon: [[4494, "Ahn'kahet: The Old Kingdom"], [3790, "Auchenai Crypts"], [4277, "Azjol-Nerub"], [4196, "Drak'Tharon Keep"], [4416, "Gundrak"], [4272, "Halls of Lightning"], [4820, "Halls of Reflection"], [4264, "Halls of Stone"], [3562, "Hellfire Ramparts"], [4131, "Magisters' Terrace"], [3792, "Mana-Tombs"], [2367, "Old Hillsbrad Foothills"], [4813, "Pit of Saron"], [3791, "Sethekk Halls"], [3789, "Shadow Labyrinth"], [3848, "The Arcatraz"], [2366, "The Black Morass"], [3713, "The Blood Furnace"], [3847, "The Botanica"], [4100, "The Culling of Stratholme"], [4809, "The Forge of Souls"], [3849, "The Mechanar"], [4265, "The Nexus"], [4228, "The Oculus"], [3714, "The Shattered Halls"], [3717, "The Slave Pens"], [3715, "The Steamvault"], [3716, "The Underbog"], [4415, "The Violet Hold"], [4723, "Trial of the Champion"], [206, "Utgarde Keep"], [1196, "Utgarde Pinnacle"]],
+ heroicraid: [[4812, "Icecrown Citadel"], [4722, "Trial of the Crusader"]],
+ multimoderaid: [[4812, "Icecrown Citadel"], [3456, "Naxxramas"], [2159, "Onyxia's Lair"], [4500, "The Eye of Eternity"], [4493, "The Obsidian Sanctum"], [4722, "Trial of the Crusader"], [4273, "Ulduar"], [4603, "Vault of Archavon"]],
+ event: [[372, "Brewfest"], [283, "Call to Arms: Alterac Valley"], [285, "Call to Arms: Arathi Basin"], [353, "Call to Arms: Eye of the Storm"], [420, "Call to Arms: Isle of Conquest"], [400, "Call to Arms: Strand of the Ancients"], [284, "Call to Arms: Warsong Gulch"], [201, "Children's Week"], [374, "Darkmoon Faire"], [409, "Day of the Dead"], [141, "Feast of Winter Veil"], [324, "Hallow's End"], [321, "Harvest Festival"], [424, "Kalu'ak Fishing Derby"], [335, "Love is in the Air"], [327, "Lunar Festival"], [341, "Midsummer Fire Festival"], [181, "Noblegarden"], [404, "Pilgrim's Bounty"], [398, "Pirates' Day"], [301, "Stranglethorn Fishing Extravaganza"]],
+ pvp: [[1, "Yes"], [3, "Arena"], [4, "Battleground"], [5, "World"], [2, "No"]],
+ currency: [[20560, "Alterac Valley Mark of Honor"], [32572, "Apexis Crystal"], [32569, "Apexis Shard"], [20559, "Arathi Basin Mark of Honor"], [29736, "Arcane Rune"], [44128, "Arctic Fur"], [29434, "Badge of Justice"], [34853, "Belt of the Forgotten Conqueror"], [34854, "Belt of the Forgotten Protector"], [34855, "Belt of the Forgotten Vanquisher"], [34856, "Boots of the Forgotten Conqueror"], [34857, "Boots of the Forgotten Protector"], [34858, "Boots of the Forgotten Vanquisher"], [34848, "Bracers of the Forgotten Conqueror"], [34851, "Bracers of the Forgotten Protector"], [34852, "Bracers of the Forgotten Vanquisher"], [40625, "Breastplate of the Lost Conqueror"], [40626, "Breastplate of the Lost Protector"], [40627, "Breastplate of the Lost Vanquisher"], [45632, "Breastplate of the Wayward Conqueror"], [45633, "Breastplate of the Wayward Protector"], [45634, "Breastplate of the Wayward Vanquisher"], [34169, "Breeches of Natural Aggression"], [37829, "Brewfest Prize Token"], [23247, "Burning Blossom"], [34186, "Chain Links of the Tumultuous Storm"], [44990, "Champion's Seal"], [29754, "Chestguard of the Fallen Champion"], [29753, "Chestguard of the Fallen Defender"], [29755, "Chestguard of the Fallen Hero"], [31089, "Chestguard of the Forgotten Conqueror"], [31091, "Chestguard of the Forgotten Protector"], [31090, "Chestguard of the Forgotten Vanquisher"], [40610, "Chestguard of the Lost Conqueror"], [40611, "Chestguard of the Lost Protector"], [40612, "Chestguard of the Lost Vanquisher"], [30236, "Chestguard of the Vanquished Champion"], [30237, "Chestguard of the Vanquished Defender"], [30238, "Chestguard of the Vanquished Hero"], [45635, "Chestguard of the Wayward Conqueror"], [45636, "Chestguard of the Wayward Protector"], [45637, "Chestguard of the Wayward Vanquisher"], [24368, "Coilfang Armaments"], [52027, "Conqueror's Mark of Sanctification"], [52030, "Conqueror's Mark of Sanctification (Heroic)"], [34245, "Cover of Ursol the Wise"], [34332, "Cowl of Gul'dan"], [34339, "Cowl of Light's Purity"], [34345, "Crown of Anasterian"], [40631, "Crown of the Lost Conqueror"], [40632, "Crown of the Lost Protector"], [40633, "Crown of the Lost Vanquisher"], [45638, "Crown of the Wayward Conqueror"], [45639, "Crown of the Wayward Protector"], [45640, "Crown of the Wayward Vanquisher"], [43016, "Dalaran Cooking Award"], [41596, "Dalaran Jewelcrafter's Token"], [34052, "Dream Shard"], [34244, "Duplicitous Guise"], [45624, "Emblem of Conquest"], [49426, "Emblem of Frost"], [40752, "Emblem of Heroism"], [47241, "Emblem of Triumph"], [40753, "Emblem of Valor"], [34208, "Equilibrium Epaulets"], [29024, "Eye of the Storm Mark of Honor"], [34180, "Felfury Legplates"], [34229, "Garments of Serene Shores"], [34350, "Gauntlets of the Ancient Shadowmoon"], [40628, "Gauntlets of the Lost Conqueror"], [40629, "Gauntlets of the Lost Protector"], [40630, "Gauntlets of the Lost Vanquisher"], [45641, "Gauntlets of the Wayward Conqueror"], [45642, "Gauntlets of the Wayward Protector"], [45643, "Gauntlets of the Wayward Vanquisher"], [29757, "Gloves of the Fallen Champion"], [29758, "Gloves of the Fallen Defender"], [29756, "Gloves of the Fallen Hero"], [31092, "Gloves of the Forgotten Conqueror"], [31094, "Gloves of the Forgotten Protector"], [31093, "Gloves of the Forgotten Vanquisher"], [40613, "Gloves of the Lost Conqueror"], [40614, "Gloves of the Lost Protector"], [40615, "Gloves of the Lost Vanquisher"], [30239, "Gloves of the Vanquished Champion"], [30240, "Gloves of the Vanquished Defender"], [30241, "Gloves of the Vanquished Hero"], [45644, "Gloves of the Wayward Conqueror"], [45645, "Gloves of the Wayward Protector"], [45646, "Gloves of the Wayward Vanquisher"], [24245, "Glowcap"], [26045, "Halaa Battle Token"], [26044, "Halaa Research Token"], [34342, "Handguards of the Dawn"], [34211, "Harness of Carnal Instinct"], [38425, "Heavy Borean Leather"], [34243, "Helm of Burning Righteousness"], [29760, "Helm of the Fallen Champion"], [29761, "Helm of the Fallen Defender"], [29759, "Helm of the Fallen Hero"], [31097, "Helm of the Forgotten Conqueror"], [31095, "Helm of the Forgotten Protector"], [31096, "Helm of the Forgotten Vanquisher"], [40616, "Helm of the Lost Conqueror"], [40617, "Helm of the Lost Protector"], [40618, "Helm of the Lost Vanquisher"], [30242, "Helm of the Vanquished Champion"], [30243, "Helm of the Vanquished Defender"], [30244, "Helm of the Vanquished Hero"], [45647, "Helm of the Wayward Conqueror"], [45648, "Helm of the Wayward Protector"], [45649, "Helm of the Wayward Vanquisher"], [34216, "Heroic Judicator's Chestguard"], [29735, "Holy Dust"], [29766, "Leggings of the Fallen Champion"], [29767, "Leggings of the Fallen Defender"], [29765, "Leggings of the Fallen Hero"], [31098, "Leggings of the Forgotten Conqueror"], [31100, "Leggings of the Forgotten Protector"], [31099, "Leggings of the Forgotten Vanquisher"], [34188, "Leggings of the Immortal Night"], [40619, "Leggings of the Lost Conqueror"], [40620, "Leggings of the Lost Protector"], [40621, "Leggings of the Lost Vanquisher"], [30245, "Leggings of the Vanquished Champion"], [30246, "Leggings of the Vanquished Defender"], [30247, "Leggings of the Vanquished Hero"], [45650, "Leggings of the Wayward Conqueror"], [45651, "Leggings of the Wayward Protector"], [45652, "Leggings of the Wayward Vanquisher"], [34167, "Legplates of the Holy Juggernaut"], [40634, "Legplates of the Lost Conqueror"], [40635, "Legplates of the Lost Protector"], [40636, "Legplates of the Lost Vanquisher"], [45653, "Legplates of the Wayward Conqueror"], [45654, "Legplates of the Wayward Protector"], [45655, "Legplates of the Wayward Vanquisher"], [40637, "Mantle of the Lost Conqueror"], [40638, "Mantle of the Lost Protector"], [40639, "Mantle of the Lost Vanquisher"], [45656, "Mantle of the Wayward Conqueror"], [45657, "Mantle of the Wayward Protector"], [45658, "Mantle of the Wayward Vanquisher"], [24579, "Mark of Honor Hold"], [24581, "Mark of Thrallmar"], [32897, "Mark of the Illidari"], [22484, "Necrotic Rune"], [34170, "Pantaloons of Calming Strife"], [34192, "Pauldrons of Perseverance"], [29763, "Pauldrons of the Fallen Champion"], [29764, "Pauldrons of the Fallen Defender"], [29762, "Pauldrons of the Fallen Hero"], [31101, "Pauldrons of the Forgotten Conqueror"], [31103, "Pauldrons of the Forgotten Protector"], [31102, "Pauldrons of the Forgotten Vanquisher"], [30248, "Pauldrons of the Vanquished Champion"], [30249, "Pauldrons of the Vanquished Defender"], [30250, "Pauldrons of the Vanquished Hero"], [52026, "Protector's Mark of Sanctification"], [52029, "Protector's Mark of Sanctification (Heroic)"], [34233, "Robes of Faltered Light"], [34234, "Shadowed Gauntlets of Paroxysm"], [34202, "Shawl of Wonderment"], [34195, "Shoulderpads of Vehemence"], [4291, "Silken Thread"], [34209, "Spaulders of Reclamation"], [40622, "Spaulders of the Lost Conqueror"], [40623, "Spaulders of the Lost Protector"], [40624, "Spaulders of the Lost Vanquisher"], [34193, "Spaulders of the Thalassian Savior"], [45659, "Spaulders of the Wayward Conqueror"], [45660, "Spaulders of the Wayward Protector"], [45661, "Spaulders of the Wayward Vanquisher"], [28558, "Spirit Shard"], [43228, "Stone Keeper's Shard"], [34212, "Sunglow Vest"], [34664, "Sunmote"], [34351, "Tranquil Majesty Wraps"], [47242, "Trophy of the Crusade"], [52025, "Vanquisher's Mark of Sanctification"], [52028, "Vanquisher's Mark of Sanctification (Heroic)"], [37836, "Venture Coin"], [34215, "Warharness of Reckless Fury"], [20558, "Warsong Gulch Mark of Honor"], [34597, "Winterfin Clam"], [43589, "Wintergrasp Mark of Honor"]],
+/*check*/itemcurrency: [[34853,"Belt of the Forgotten Conqueror"],[34854,"Belt of the Forgotten Protector"],[34855,"Belt of the Forgotten Vanquisher"],[34856,"Boots of the Forgotten Conqueror"],[34857,"Boots of the Forgotten Protector"],[34858,"Boots of the Forgotten Vanquisher"],[34848,"Bracers of the Forgotten Conqueror"],[34851,"Bracers of the Forgotten Protector"],[34852,"Bracers of the Forgotten Vanquisher"],[40625,"Breastplate of the Lost Conqueror"],[40626,"Breastplate of the Lost Protector"],[40627,"Breastplate of the Lost Vanquisher"],[45632,"Breastplate of the Wayward Conqueror"],[45633,"Breastplate of the Wayward Protector"],[45634,"Breastplate of the Wayward Vanquisher"],[29754,"Chestguard of the Fallen Champion"],[29753,"Chestguard of the Fallen Defender"],[29755,"Chestguard of the Fallen Hero"],[31089,"Chestguard of the Forgotten Conqueror"],[31091,"Chestguard of the Forgotten Protector"],[31090,"Chestguard of the Forgotten Vanquisher"],[40610,"Chestguard of the Lost Conqueror"],[40611,"Chestguard of the Lost Protector"],[40612,"Chestguard of the Lost Vanquisher"],[30236,"Chestguard of the Vanquished Champion"],[30237,"Chestguard of the Vanquished Defender"],[30238,"Chestguard of the Vanquished Hero"],[45635,"Chestguard of the Wayward Conqueror"],[45636,"Chestguard of the Wayward Protector"],[45637,"Chestguard of the Wayward Vanquisher"],[52027,"Conqueror's Mark of Sanctification"],[52030,"Conqueror's Mark of Sanctification (Heroic)"],[40631,"Crown of the Lost Conqueror"],[40632,"Crown of the Lost Protector"],[40633,"Crown of the Lost Vanquisher"],[45638,"Crown of the Wayward Conqueror"],[45639,"Crown of the Wayward Protector"],[45640,"Crown of the Wayward Vanquisher"],[40628,"Gauntlets of the Lost Conqueror"],[40629,"Gauntlets of the Lost Protector"],[40630,"Gauntlets of the Lost Vanquisher"],[45641,"Gauntlets of the Wayward Conqueror"],[45642,"Gauntlets of the Wayward Protector"],[45643,"Gauntlets of the Wayward Vanquisher"],[29757,"Gloves of the Fallen Champion"],[29758,"Gloves of the Fallen Defender"],[29756,"Gloves of the Fallen Hero"],[31092,"Gloves of the Forgotten Conqueror"],[31094,"Gloves of the Forgotten Protector"],[31093,"Gloves of the Forgotten Vanquisher"],[40613,"Gloves of the Lost Conqueror"],[40614,"Gloves of the Lost Protector"],[40615,"Gloves of the Lost Vanquisher"],[30239,"Gloves of the Vanquished Champion"],[30240,"Gloves of the Vanquished Defender"],[30241,"Gloves of the Vanquished Hero"],[45644,"Gloves of the Wayward Conqueror"],[45645,"Gloves of the Wayward Protector"],[45646,"Gloves of the Wayward Vanquisher"],[29760,"Helm of the Fallen Champion"],[29761,"Helm of the Fallen Defender"],[29759,"Helm of the Fallen Hero"],[31097,"Helm of the Forgotten Conqueror"],[31095,"Helm of the Forgotten Protector"],[31096,"Helm of the Forgotten Vanquisher"],[63683,"Helm of the Forlorn Conqueror"],[63684,"Helm of the Forlorn Protector"],[63682,"Helm of the Forlorn Vanquisher"],[40616,"Helm of the Lost Conqueror"],[40617,"Helm of the Lost Protector"],[40618,"Helm of the Lost Vanquisher"],[30242,"Helm of the Vanquished Champion"],[30243,"Helm of the Vanquished Defender"],[30244,"Helm of the Vanquished Hero"],[45647,"Helm of the Wayward Conqueror"],[45648,"Helm of the Wayward Protector"],[45649,"Helm of the Wayward Vanquisher"],[78181,"Leggings of the Corrupted Conqueror"],[78872,"Leggings of the Corrupted Conqueror"],[78856,"Leggings of the Corrupted Conqueror (Heroic)"],[78176,"Leggings of the Corrupted Protector"],[78873,"Leggings of the Corrupted Protector"],[78857,"Leggings of the Corrupted Protector (Heroic)"],[78171,"Leggings of the Corrupted Vanquisher"],[78871,"Leggings of the Corrupted Vanquisher"],[78858,"Leggings of the Corrupted Vanquisher (Heroic)"],[29766,"Leggings of the Fallen Champion"],[29767,"Leggings of the Fallen Defender"],[29765,"Leggings of the Fallen Hero"],[31098,"Leggings of the Forgotten Conqueror"],[31100,"Leggings of the Forgotten Protector"],[31099,"Leggings of the Forgotten Vanquisher"],[67428,"Leggings of the Forlorn Conqueror"],[67427,"Leggings of the Forlorn Protector"],[67426,"Leggings of the Forlorn Vanquisher"],[40619,"Leggings of the Lost Conqueror"],[40620,"Leggings of the Lost Protector"],[40621,"Leggings of the Lost Vanquisher"],[30245,"Leggings of the Vanquished Champion"],[30246,"Leggings of the Vanquished Defender"],[30247,"Leggings of the Vanquished Hero"],[45650,"Leggings of the Wayward Conqueror"],[45651,"Leggings of the Wayward Protector"],[45652,"Leggings of the Wayward Vanquisher"],[40634,"Legplates of the Lost Conqueror"],[40635,"Legplates of the Lost Protector"],[40636,"Legplates of the Lost Vanquisher"],[45653,"Legplates of the Wayward Conqueror"],[45654,"Legplates of the Wayward Protector"],[45655,"Legplates of the Wayward Vanquisher"],[64315,"Mantle of the Forlorn Conqueror"],[64316,"Mantle of the Forlorn Protector"],[64314,"Mantle of the Forlorn Vanquisher"],[40637,"Mantle of the Lost Conqueror"],[40638,"Mantle of the Lost Protector"],[40639,"Mantle of the Lost Vanquisher"],[45656,"Mantle of the Wayward Conqueror"],[45657,"Mantle of the Wayward Protector"],[45658,"Mantle of the Wayward Vanquisher"],[29763,"Pauldrons of the Fallen Champion"],[29764,"Pauldrons of the Fallen Defender"],[29762,"Pauldrons of the Fallen Hero"],[31101,"Pauldrons of the Forgotten Conqueror"],[31103,"Pauldrons of the Forgotten Protector"],[31102,"Pauldrons of the Forgotten Vanquisher"],[30248,"Pauldrons of the Vanquished Champion"],[30249,"Pauldrons of the Vanquished Defender"],[30250,"Pauldrons of the Vanquished Hero"],[52026,"Protector's Mark of Sanctification"],[52029,"Protector's Mark of Sanctification (Heroic)"],[47557,"Regalia of the Grand Conqueror"],[47558,"Regalia of the Grand Protector"],[47559,"Regalia of the Grand Vanquisher"],[78180,"Shoulders of the Corrupted Conqueror"],[78875,"Shoulders of the Corrupted Conqueror"],[78859,"Shoulders of the Corrupted Conqueror (Heroic)"],[78175,"Shoulders of the Corrupted Protector"],[78876,"Shoulders of the Corrupted Protector"],[78860,"Shoulders of the Corrupted Protector (Heroic)"],[78170,"Shoulders of the Corrupted Vanquisher"],[78874,"Shoulders of the Corrupted Vanquisher"],[78861,"Shoulders of the Corrupted Vanquisher (Heroic)"],[65088,"Shoulders of the Forlorn Conqueror"],[65087,"Shoulders of the Forlorn Protector"],[65089,"Shoulders of the Forlorn Vanquisher"],[40622,"Spaulders of the Lost Conqueror"],[40623,"Spaulders of the Lost Protector"],[40624,"Spaulders of the Lost Vanquisher"],[45659,"Spaulders of the Wayward Conqueror"],[45660,"Spaulders of the Wayward Protector"],[45661,"Spaulders of the Wayward Vanquisher"],[47242,"Trophy of the Crusade"],[52025,"Vanquisher's Mark of Sanctification"],[52028,"Vanquisher's Mark of Sanctification (Heroic)"]],
+ queststart: [[3, "Item"], [1, "NPC"], [2, "Object"]],
+ questend: [[1, "NPC"], [2, "Object"]],
+ spellsource: [[1, "Any"], [3, "Crafted"], [9, "Discovery"], [4, "Drop"], [6, "Quest"], [10, "Talent"], [8, "Trainer"], [7, "Vendor"], [2, "None"]],
+ itemsource: [[1, "Any"], [3, "Crafted"], [4, "Drop"], [5, "PvP"], [6, "Quest"], [8, "Redemption"], [7, "Vendor"], [2, "None"]],
+ glyphtype: [[1, "Major"], [2, "Minor"]],
+ classs: [[12, "Any"], [6, "Death Knight"], [11, "Druid"], [3, "Hunter"], [8, "Mage"], [2, "Paladin"], [5, "Priest"], [4, "Rogue"], [7, "Shaman"], [9, "Warlock"], [1, "Warrior"], [13, "None"]],
+ race: [[12, "Any"], [10, "Blood Elf"], [11, "Draenei"], [3, "Dwarf"], [7, "Gnome"], [1, "Human"], [4, "Night Elf"], [2, "Orc"], [6, "Tauren"], [8, "Troll"], [5, "Undead"], [13, "None"]],
+ disenchanting: [[34057, "Abyss Crystal"], [22445, "Arcane Dust"], [11176, "Dream Dust"], [34052, "Dream Shard"], [11082, "Greater Astral Essence"], [34055, "Greater Cosmic Essence"], [16203, "Greater Eternal Essence"], [10939, "Greater Magic Essence"], [11135, "Greater Mystic Essence"], [11175, "Greater Nether Essence"], [22446, "Greater Planar Essence"], [16204, "Illusion Dust"], [34054, "Infinite Dust"], [14344, "Large Brilliant Shard"], [11084, "Large Glimmering Shard"], [11139, "Large Glowing Shard"], [22449, "Large Prismatic Shard"], [11178, "Large Radiant Shard"], [10998, "Lesser Astral Essence"], [34056, "Lesser Cosmic Essence"], [16202, "Lesser Eternal Essence"], [10938, "Lesser Magic Essence"], [11134, "Lesser Mystic Essence"], [11174, "Lesser Nether Essence"], [22447, "Lesser Planar Essence"], [20725, "Nexus Crystal"], [14343, "Small Brilliant Shard"], [34053, "Small Dream Shard"], [10978, "Small Glimmering Shard"], [11138, "Small Glowing Shard"], [22448, "Small Prismatic Shard"], [11177, "Small Radiant Shard"], [11083, "Soul Dust"], [10940, "Strange Dust"], [11137, "Vision Dust"], [22450, "Void Crystal"]],
proficiencytype: [[2, "Armor"], [3, "Armor Proficiencies"], [4, "Armor Specializations"], [5, "Languages"], [1, "Weapons"]],
+ flags: [
+ [1, '0x00000001'],
+ [2, '0x00000002'],
+ [3, '0x00000004'],
+ [4, '0x00000008'],
+ [5, '0x00000010'],
+ [6, '0x00000020'],
+ [7, '0x00000040'],
+ [8, '0x00000080'],
+ [9, '0x00000100'],
+ [10,'0x00000200'],
+ [11,'0x00000400'],
+ [12,'0x00000800'],
+ [13,'0x00001000'],
+ [14,'0x00002000'],
+ [15,'0x00004000'],
+ [16,'0x00008000'],
+ [17,'0x00010000'],
+ [18,'0x00020000'],
+ [19,'0x00040000'],
+ [20,'0x00080000'],
+ [21,'0x00100000'],
+ [22,'0x00200000'],
+ [23,'0x00400000'],
+ [24,'0x00800000'],
+ [25,'0x01000000'],
+ [26,'0x02000000'],
+ [27,'0x04000000'],
+ [28,'0x08000000'],
+ [29,'0x10000000'],
+ [30,'0x20000000'],
+ [31,'0x40000000'],
+ [32,'0x80000000']
+ ]
},
+
fiitems: {
- addedinexpansion: "Added in expansion",
- bindonequip: "Binds when equipped",
- bindonpickup: "Binds when picked up",
- bindonuse: "Binds when used",
- bindtoaccount: "Binds to account",
- heroicitem: "Heroic item",
- changedinwotlk: "Changed in Wrath of the Lich King",
- conjureditem: "Conjured item",
- craftedprof: "Crafted by a profession",
- damagetype: "Damage type",
- disenchantable: "Disenchantable",
- disenchantsinto: "Disenchants into...",
- dropsin: "Drops in...",
- dropsinheroic: "Drops in Heroic mode... (Dungeon)",
- dropsinnormal: "Drops in Normal mode... (Dungeon)",
- dropsinnormal10: "Drops in Normal 10 mode... (Raid)",
- dropsinnormal25: "Drops in Normal 25 mode... (Raid)",
- dropsinheroic10: "Drops in Heroic 10 mode... (Raid)",
- dropsinheroic25: "Drops in Heroic 25 mode... (Raid)",
- effecttext: "Effect text",
- fitsgemslot: "Fits a gem slot",
- flavortext: "Flavor text",
- glyphtype: "Glyph type",
- hascomments: "Has comments",
- hasflavortext: "Has a flavor text",
- hasscreenshots: "Has screenshots",
- hasvideos: "Has videos",
- hassockets: "Has sockets",
- icon: "Icon",
- locked: "Locked",
- notavailable: "Not available to players",
- objectivequest: "Objective of a quest",
- openable: "Openable",
- otdisenchanting: "Obtained through disenchanting",
- otfishing: "Obtained through fishing",
- otherbgathering: "Obtained through herb gathering",
- otitemopening: "Obtained through item opening",
- otlooting: "Obtained through looting",
- otmilling: "Obtained through milling",
- otmining: "Obtained through mining",
- otobjectopening: "Obtained through object opening",
- otpickpocketing: "Obtained through pick pocketing",
- otprospecting: "Obtained through prospecting",
- otpvp: "Obtained through PvP",
- otskinning: "Obtained through skinning",
- partofset: "Part of an item set",
- partyloot: "Party loot",
- prospectable: "Prospectable",
- millable: "Millable",
- purchasablewithcurrency: "Purchasable with a currency",
- purchasablewith: "Purchasable with a currency...",
- purchasablewithhonor: "Purchasable with honor points",
- purchasablewitharena: "Purchasable with arena points",
- questitem: "Quest item",
- randomenchants: "Random enchantments (of the...)",
- repaircost: "Repair cost (coppers)",
- randomlyenchanted: "Randomly enchanted",
- readable: "Readable",
- reagentforability: "Reagent for ability/profession",
- refundable: "Refundable",
- requiresprof: "Requires a profession",
- requiresprofspec: "Requires a profession specialization",
- requiresrepwith: "Requires reputation with...",
- rewardedbyfactionquest: "Rewarded by a quest",
- rewardedbyquestin: "Rewarded by a quest in...",
- sepcommunity: "Community",
- sepsource: "Source",
- smartloot: "Smart loot",
- soldbynpc: "Sold by NPC #...",
- soldbyvendor: "Sold by a vendor",
- startsquest: "Starts a quest",
- teachesspell: "Teaches a spell",
- tool: "Tool",
- id: "ID",
- usableinarenas: "Usable in arenas",
- usablewhenshapeshifted: "Usable when shapeshifted",
- unique: "Unique",
- uniqueequipped: "Unique-Equipped",
- classspecific: "Class-specific",
- racespecific: "Race-specific",
- relatedevent: "Related world event",
- requiresevent: "Requires a world event"
+ addedinexpansion: "Added in expansion",
+ availabletoplayers: "Available to players",
+ avgbuyout: "Average buyout price",
+ avgmoney: "Average money contained",
+ bindonequip: "Binds when equipped",
+ bindonpickup: "Binds when picked up",
+ bindonuse: "Binds when used",
+ bindtoaccount: "Binds to account",
+ changedinwotlk: "Changed in Wrath of the Lich King",
+ classspecific: "Class-specific",
+ conjureditem: "Conjured item",
+ cooldown: "Cooldown (seconds)",
+ craftedprof: "Crafted by a profession",
+ damagetype: "Damage type",
+ deprecated: "Deprecated",
+ disenchantable: "Disenchantable",
+ disenchantsinto: "Disenchants into...",
+ dropsin: "Drops in...",
+ dropsinheroic: "Drops in Heroic mode... (Dungeon)",
+ dropsinheroic10: "Drops in Heroic 10 mode... (Raid)",
+ dropsinheroic25: "Drops in Heroic 25 mode... (Raid)",
+ dropsinnormal: "Drops in Normal mode... (Dungeon)",
+ dropsinnormal10: "Drops in Normal 10 mode... (Raid)",
+ dropsinnormal25: "Drops in Normal 25 mode... (Raid)",
+ dura: "Durability",
+ effecttext: "Effect text",
+ fitsgemslot: "Fits a gem slot",
+ flavortext: "Flavor text",
+ glyphtype: "Glyph type",
+ hascomments: "Has comments",
+ hasflavortext: "Has a flavor text",
+ hasscreenshots: "Has screenshots",
+ hassockets: "Has sockets",
+ hasvideos: "Has videos",
+ heroicitem: "Heroic item",
+ icon: "Icon",
+ id: "ID",
+ locked: "Locked",
+ millable: "Millable",
+ notavailable: "Not available to players",
+ objectivequest: "Objective of a quest",
+ openable: "Openable",
+ otdisenchanting: "Obtained through disenchanting",
+ otfishing: "Obtained through fishing",
+ otherbgathering: "Obtained through herb gathering",
+ otitemopening: "Obtained through item opening",
+ otlooting: "Obtained through looting",
+ otmilling: "Obtained through milling",
+ otmining: "Obtained through mining",
+ otobjectopening: "Obtained through object opening",
+ otpickpocketing: "Obtained through pick pocketing",
+ otprospecting: "Obtained through prospecting",
+ otpvp: "Obtained through PvP",
+ otredemption: "Obtained through redemption",
+ otskinning: "Obtained through skinning",
+ partofset: "Part of an item set",
+ partyloot: "Party loot",
+ prospectable: "Prospectable",
+ purchasablewithitem: "Purchasable with an item...",
+ purchasablewithhonor: "Purchasable with honor points",
+ purchasablewitharena: "Purchasable with arena points",
+ purchasablewithcurrency: "Purchasable with a currency...",
+ questitem: "Quest item",
+ racespecific: "Race-specific",
+ randomenchants: "Random enchantments (of the...)",
+ randomlyenchanted: "Randomly enchanted",
+ readable: "Readable",
+ reagentforability: "Reagent for ability/profession",
+ refundable: "Refundable",
+ relatedevent: "Related world event",
+ repaircost: "Repair cost (coppers)",
+ reqskillrank: "Required skill level",
+ requiresevent: "Requires a world event",
+ requiresprof: "Requires a profession",
+ requiresprofspec: "Requires a profession specialization",
+ requiresrepwith: "Requires reputation with...",
+ rewardedbyachievement: "Rewarded by an achievement",
+ rewardedbyfactionquest: "Rewarded by a quest",
+ rewardedbyquestin: "Rewarded by a quest in...",
+ sellprice: "Sale price (coppers)",
+ sepcommunity: "Community",
+ sepgeneral: "General",
+ sepsource: "Source",
+ smartloot: "Smart loot",
+ soldbynpc: "Sold by NPC #...",
+ soldbyvendor: "Sold by a vendor",
+ startsquest: "Starts a quest",
+ teachesspell: "Teaches a spell",
+ tool: "Tool",
+ unique: "Unique",
+ uniqueequipped: "Unique-Equipped",
+ usableinarenas: "Usable in arenas",
+ usablewhenshapeshifted: "Usable when shapeshifted",
+
+ sepstaffonly: 'Staff Only',
+ flags: 'Flags',
+ flags2: 'Flags (2)'
},
+
fiitemsets: {
- sepgeneral: "General",
- id: "ID",
- pieces: "Number of pieces",
- bonustext: "Bonus effect text",
- heroic: "Heroic",
- relatedevent: "Related world event",
- sepcommunity: "Community",
- hascomments: "Has comments",
- hasscreenshots: "Has screenshots",
- hasvideos: "Has videos"
+ sepgeneral: "General",
+ availabletoplayers: "Available to players",
+ id: "ID",
+ pieces: "Number of pieces",
+ bonustext: "Bonus effect text",
+ heroic: "Heroic",
+ relatedevent: "Related world event",
+
+ sepcommunity: "Community",
+ hascomments: "Has comments",
+ hasscreenshots: "Has screenshots",
+ hasvideos: "Has videos"
},
+
finpcs: {
- sepgeneral: "General",
- addedinexpansion: "Added in expansion",
- canrepair: "Can repair",
- faction: "Faction",
- relatedevent: "Related world event",
- foundin: "Found in...",
- health: "Health",
- mana: "Mana",
- instanceboss: "Instance boss",
- startsquest: "Starts a quest",
- endsquest: "Ends a quest",
- usemodel: "Uses model #...",
- useskin: "Uses skin...",
- id: "ID",
- seploot: "Loot",
+ sepgeneral: "General",
+ canrepair: "Can repair",
+ faction: "Faction",
+ relatedevent: "Related world event",
+ foundin: "Found in...",
+ health: "Health",
+ mana: "Mana",
+ instanceboss: "Instance boss",
+ startsquest: "Starts a quest",
+ endsquest: "Ends a quest",
+ usemodel: "Uses model #...",
+ useskin: "Uses skin...",
+ id: "ID",
+
+ seploot: "Loot",
averagemoneydropped: "Average money dropped",
- gatherable: "Gatherable (herbalism)",
- salvageable: "Salvageable (engineering)",
- lootable: "Lootable",
- minable: "Minable (mining)",
- pickpocketable: "Pick pocketable",
- skinnable: "Skinnable",
- sepgossipoptions: "Gossip options",
- auctioneer: "Auctioneer",
- banker: "Banker",
- battlemaster: "Battlemaster",
- flightmaster: "Flight master",
- guildmaster: "Guild master",
- innkeeper: "Innkeeper",
- talentunlearner: "Talent unlearner",
- tabardvendor: "Tabard vendor",
- stablemaster: "Stable master",
- trainer: "Trainer",
- vendor: "Vendor",
- increasesrepwith: "Increases Reputation with...",
- decreasesrepwith: "Decreases Reputation with...",
- sepcommunity: "Community",
- hascomments: "Has comments",
- hasscreenshots: "Has screenshots",
- hasvideos: "Has videos",
- haslocation: "Has location"
+ gatherable: "Gatherable (herbalism)",
+ salvageable: "Salvageable (engineering)",
+ lootable: "Lootable",
+ minable: "Minable (mining)",
+ pickpocketable: "Pick pocketable",
+ skinnable: "Skinnable",
+ increasesrepwith: "Increases reputation with...",
+ decreasesrepwith: "Decreases reputation with...",
+
+ sepgossipoptions: "Gossip options",
+ auctioneer: "Auctioneer",
+ banker: "Banker",
+ battlemaster: "Battlemaster",
+ flightmaster: "Flight master",
+ guildmaster: "Guild master",
+ innkeeper: "Innkeeper",
+ talentunlearner: "Talent unlearner",
+ tabardvendor: "Tabard vendor",
+ stablemaster: "Stable master",
+ trainer: "Trainer",
+ vendor: "Vendor",
+
+ sepcommunity: "Community",
+ hascomments: "Has comments",
+ hasscreenshots: "Has screenshots",
+ hasvideos: "Has videos",
+
+ sepstaffonly: "Staff only",
+ haslocation: "Has location"
},
+
fiobjects: {
- sepgeneral: "General",
- addedinexpansion: "Added in expansion",
- foundin: "Found in...",
- requiredskilllevel: "Required skill level (herbs/veins/footlockers)",
- relatedevent: "Related world event",
- startsquest: "Starts a quest",
- endsquest: "Ends a quest",
- id: "ID",
- seploot: "Loot",
+ sepgeneral: "General",
+ foundin: "Found in...",
+ requiredskilllevel: "Required skill level (herbs/veins/footlockers)",
+ relatedevent: "Related world event",
+ startsquest: "Starts a quest",
+ endsquest: "Ends a quest",
+ id: "ID",
+
+ seploot: "Loot",
averagemoneycontained: "Average money contained",
- openable: "Openable",
- sepcommunity: "Community",
- hascomments: "Has comments",
- hasscreenshots: "Has screenshots",
- hasvideos: "Has videos"
+ openable: "Openable",
+
+ sepcommunity: "Community",
+ hascomments: "Has comments",
+ hasscreenshots: "Has screenshots",
+ hasvideos: "Has videos"
},
+
fiquests: {
- sepgeneral: "General",
- addedinexpansion: "Added in expansion",
- relatedevent: "Related world event",
- daily: "Daily",
- weekly: "Weekly",
- repeatable: "Repeatable",
- objectiveearnrepwith: "Objective: Earn reputation with...",
- sharable: "Sharable",
- startsfrom: "Starts from...",
- endsat: "Ends at...",
- suggestedplayers: "Suggested players",
- timer: "Timer (seconds)",
- id: "ID",
- classspecific: "Class-specific",
- racespecific: "Race-specific",
- sepgainsrewards: "Gains/rewards",
- experiencegained: "Experience gained",
- arenagained: "Arena points gained",
- honorgained: "Honor gained",
- itemchoices: "Item choices",
- itemrewards: "Item rewards",
- moneyrewarded: "Money rewarded",
- spellrewarded: "Spell rewarded",
- titlerewarded: "Title rewarded",
- currencyrewarded: "Currency rewarded...",
- increasesrepwith: "Increases reputation with...",
- decreasesrepwith: "Decreases reputation with...",
- sepseries: "Series",
- firstquestseries: "First quest of a series",
- lastquestseries: "Last quest of a series",
- partseries: "Part of a series",
- sepcommunity: "Community",
- hascomments: "Has comments",
- hasscreenshots: "Has screenshots",
- hasvideos: "Has videos",
- lacksstartend: "Lacks start or end"
+ sepgeneral: "General",
+ relatedevent: "Related world event",
+ daily: "Daily",
+ weekly: "Weekly",
+ repeatable: "Repeatable",
+ objectiveearnrepwith: "Objective: Earn reputation with...",
+ countsforloremaster_stc: "Loremaster quest",
+ sharable: "Sharable",
+ startsfrom: "Starts from...",
+ endsat: "Ends at...",
+ suggestedplayers: "Suggested players",
+ timer: "Timer (seconds)",
+ availabletoplayers: "Available to players",
+ id: "ID",
+ classspecific: "Class-specific",
+ racespecific: "Race-specific",
+
+ sepgainsrewards: "Gains/rewards",
+ experiencegained: "Experience gained",
+ arenagained: "Arena points gained",
+ honorgained: "Honor gained",
+ itemchoices: "Item choices",
+ itemrewards: "Item rewards",
+ moneyrewarded: "Money rewarded",
+ spellrewarded: "Spell rewarded",
+ titlerewarded: "Title rewarded",
+ increasesrepwith: "Increases reputation with...",
+ decreasesrepwith: "Decreases reputation with...",
+ currencyrewarded: "Currency rewarded...",
+
+ sepseries: "Series",
+ firstquestseries: "First quest of a series",
+ lastquestseries: "Last quest of a series",
+ partseries: "Part of a series",
+
+ sepcommunity: "Community",
+ hascomments: "Has comments",
+ hasscreenshots: "Has screenshots",
+ hasvideos: "Has videos",
+ lacksstartend: "Lacks start or end",
+
+ sepstaffonly: "Staff only",
+ flags: "Flags"
},
+
fispells: {
- sepgeneral: "General",
+ sepgeneral: "General",
prcntbasemanarequired: "% of base mana required",
- firstrank: "First rank",
- lastrank: "Last rank",
- rankno: "Rank #...",
- proficiencytype: "Proficiency type",
- manaenergyragecost: "Mana/energy/rage cost",
- requiresnearbyobject: "Requires a nearby object",
- hasreagents: "Has reagents",
- requiresprofspec: "Requires a profession specialization",
- source: "Source",
- trainingcost: "Training cost",
- id: "ID",
- icon: "Icon",
- sepcommunity: "Community",
- hascomments: "Has comments",
- hasscreenshots: "Has screenshots",
- hasvideos: "Has videos"
+ firstrank: "First rank",
+ lastrank: "Last rank",
+ rankno: "Rank #...",
+ proficiencytype: "Proficiency type",
+ specializationtype: "Specialization type",
+ rewardsskillups: "Rewards skill points",
+ manaenergyragecost: "Mana/energy/rage cost",
+ requiresnearbyobject: "Requires a nearby object",
+ hasreagents: "Has reagents",
+ scaling: "Scales with level",
+ requiresprofspec: "Requires a profession specialization",
+ source: "Source",
+ trainingcost: "Training cost",
+ id: "ID",
+ icon: "Icon",
+
+ sepcommunity: "Community",
+ hascomments: "Has comments",
+ hasscreenshots: "Has screenshots",
+ hasvideos: "Has videos"
},
+
fiachievements: {
- sepgeneral: "General",
- givesreward: "Gives a reward",
- rewardtext: "Reward text",
- location: "Location...",
- relatedevent: "Related world event",
- id: "ID",
- icon: "Icon",
- sepseries: "Series",
- firstseries: "First of a series",
- lastseries: "Last of a series",
- partseries: "Part of a series",
- sepcommunity: "Community",
- hascomments: "Has comments",
+ sepgeneral: "General",
+ givesreward: "Gives a reward",
+ rewardtext: "Reward text",
+ location: "Location...",
+ relatedevent: "Related world event",
+ id: "ID",
+ icon: "Icon",
+
+ sepseries: "Series",
+ firstseries: "First of a series",
+ lastseries: "Last of a series",
+ partseries: "Part of a series",
+
+ sepcommunity: "Community",
+ hascomments: "Has comments",
hasscreenshots: "Has screenshots",
- hasvideos: "Has videos"
+ hasvideos: "Has videos",
+
+ sepstaffonly: 'Staff Only',
+ flags: 'Flags'
},
+
fiprofiles: {
- sepgeneral: "General",
- gearscore: "Gear score",
- achievementpoints: "Achievement points",
- wearingitem: "Wearing item #...",
- wearingpermenchant: "Wearing enchantment #...",
+ sepgeneral: "General",
+ gearscore: "Gear score",
+ achievementpoints: "Achievement points",
+ wearingitem: "Wearing item #...",
+ wearingpermenchant: "Wearing enchantment #...",
completedachievement: "Completed achievement #...",
- sepprofession: "Professions",
- alchemy: "Alchemy skill",
- blacksmithing: "Blacksmithing skill",
- enchanting: "Enchanting skill",
- engineering: "Engineering skill",
- herbalism: "Herbalism skill",
- inscription: "Inscription skill",
- jewelcrafting: "Jewelcrafting skill",
- leatherworking: "Leatherworking skill",
- mining: "Mining skill",
- skinning: "Skinning skill",
- tailoring: "Tailoring skill",
- septalent: "Talents",
- talenttree1: "Points spent in first talent tree",
- talenttree2: "Points spent in second talent tree",
- talenttree3: "Points spent in third talent tree",
- sepguild: "Guilds",
- hasguild: "Has a guild",
- guildname: "Guild name",
- guildrank: "Guild member rank",
- separenateam: "Arena teams",
- teamname2v2: "2v2 arena team name",
- teamrtng2v2: "2v2 arena team rating",
- teamcontrib2v2: "2v2 arena team contribution",
- teamname3v3: "3v3 arena team name",
- teamrtng3v3: "3v3 arena team rating",
- teamcontrib3v3: "3v3 arena team contribution",
- teamname5v5: "5v5 arena team name",
- teamrtng5v5: "5v5 arena team rating",
- teamcontrib5v5: "5v5 arena team contribution"
+
+ sepprofession: "Professions",
+ alchemy: "Alchemy skill",
+ blacksmithing: "Blacksmithing skill",
+ enchanting: "Enchanting skill",
+ engineering: "Engineering skill",
+ herbalism: "Herbalism skill",
+ inscription: "Inscription skill",
+ jewelcrafting: "Jewelcrafting skill",
+ leatherworking: "Leatherworking skill",
+ mining: "Mining skill",
+ skinning: "Skinning skill",
+ tailoring: "Tailoring skill",
+
+ septalent: "Talents",
+ talenttree1: "Points spent in first talent tree",
+ talenttree2: "Points spent in second talent tree",
+ talenttree3: "Points spent in third talent tree",
+
+ sepguild: "Guilds",
+ hasguild: "Has a guild",
+ guildname: "Guild name",
+ guildrank: "Guild member rank",
+
+ separenateam: "Arena teams",
+ teamname2v2: "2v2 arena team name",
+ teamrtng2v2: "2v2 arena team rating",
+ teamcontrib2v2: "2v2 arena team contribution",
+ teamname3v3: "3v3 arena team name",
+ teamrtng3v3: "3v3 arena team rating",
+ teamcontrib3v3: "3v3 arena team contribution",
+ teamname5v5: "5v5 arena team name",
+ teamrtng5v5: "5v5 arena team rating",
+ teamcontrib5v5: "5v5 arena team contribution"
},
+
presets: {
pve: "PvE",
pvp: "PvP",
diff --git a/template/js/locale_eses.js b/template/js/locale_eses.js
index 392f2eb6..8aca0583 100644
--- a/template/js/locale_eses.js
+++ b/template/js/locale_eses.js
@@ -1125,52 +1125,55 @@ var g_item_subsubclasses = {
}
}
};
+
var g_itemset_types = {
- 1:"Tela",
- 2:"Cuero",
- 3:"Malla",
- 4:"Placas",
- 5:"Daga",
- 6:"Anillo",
- 7:"Arma de puño",
- 8:"Hacha de uno mano",
- 9:"Maza de uno mano",
- 10:"Espada de uno mano",
- 11:"Abalorio",
- 12:"Amuleto"
+ 1: "Tela",
+ 2: "Cuero",
+ 3: "Malla",
+ 4: "Placas",
+ 5: "Daga",
+ 6: "Anillo",
+ 7: "Arma de puño",
+ 8: "Hacha de uno mano",
+ 9: "Maza de uno mano",
+ 10: "Espada de uno mano",
+ 11: "Abalorio",
+ 12: "Amuleto"
};
+
var g_itemset_notes = {
- 1:"Set de mazmorra 1",
- 2:"Set de mazmorra 2",
- 14:"Set de mazmorra 3",
- 3:"Set de banda tier 1",
- 4:"Set de banda tier 2",
- 5:"Set de banda tier 3",
- 12:"Set de banda tier 4",
- 13:"Set de banda tier 5",
- 18:"Set de banda tier 6",
- 23:"Set de banda tier 7",
- 25:"Set de banda tier 8",
- 27:"Set de banda tier 9",
- 29:"Set de banda tier 10",
- 6:"Set JcJ nivel 60 superior",
- 7:"Set JcJ nivel 60 superior (obsoleto)",
- 8:"Set JcJ nivel 60 épico",
- 16:"Set JcJ nivel 70 superior",
- 21:"Set JcJ nivel 70 superior 2",
- 17:"Set de la Temporada de Arenas 1",
- 19:"Set de la Temporada de Arenas 2",
- 20:"Set de la Temporada de Arenas 3",
- 22:"Set de la Temporada de Arenas 4",
- 24:"Set de la Temporada de Arenas 5",
- 26:"Set de la Temporada de Arenas 6",
- 28:"Set de la Temporada de Arenas 7",
- 30:"Set de la Temporada de Arenas 8",
- 15:"Set de la Cuenca de Arathi",
- 9:"Set de las Ruinas de Ahn'Qiraj",
- 10:"Set del Templo de Ahn'Qiraj",
- 11:"Set de Zul'Gurub"
+ 1: "Set de mazmorra 1",
+ 2: "Set de mazmorra 2",
+ 14: "Set de mazmorra 3",
+ 3: "Set de banda tier 1",
+ 4: "Set de banda tier 2",
+ 5: "Set de banda tier 3",
+ 12: "Set de banda tier 4",
+ 13: "Set de banda tier 5",
+ 18: "Set de banda tier 6",
+ 23: "Set de banda tier 7",
+ 25: "Set de banda tier 8",
+ 27: "Set de banda tier 9",
+ 29: "Set de banda tier 10",
+ 6: "Set JcJ nivel 60 superior",
+ 7: "Set JcJ nivel 60 superior (obsoleto)",
+ 8: "Set JcJ nivel 60 épico",
+ 16: "Set JcJ nivel 70 superior",
+ 21: "Set JcJ nivel 70 superior 2",
+ 17: "Set de la Temporada de Arenas 1",
+ 19: "Set de la Temporada de Arenas 2",
+ 20: "Set de la Temporada de Arenas 3",
+ 22: "Set de la Temporada de Arenas 4",
+ 24: "Set de la Temporada de Arenas 5",
+ 26: "Set de la Temporada de Arenas 6",
+ 28: "Set de la Temporada de Arenas 7",
+ 30: "Set de la Temporada de Arenas 8",
+ 15: "Set de la Cuenca de Arathi",
+ 9: "Set de las Ruinas de Ahn'Qiraj",
+ 10: "Set del Templo de Ahn'Qiraj",
+ 11: "Set de Zul'Gurub"
};
+
var g_npc_classifications = {
0:"Normal",
1:"Élite",
@@ -2088,13 +2091,15 @@ var g_socket_names = {
8:"Ranura azul",
14:"Ranura prismática"
};
-var LANG = {and:" y ",
- comma:", ",
- ellipsis:"…",
- dash:" – ",
- hyphen:" - ",
- colon:": ",
- qty:" ($1)",
+var LANG = {
+ and: " y ",
+ comma: ", ",
+ ellipsis: "…",
+ dash: " – ",
+ hyphen: " - ",
+ colon: ": ",
+ qty: " ($1)",
+ error: "Error",
date: "Fecha",
date_colon: "Fecha: ",
@@ -2294,9 +2299,10 @@ var LANG = {and:" y ",
lvnodata_vi2:"¡Sé el primero en sugerir un vídeo para esta página!",
lvnodata_vi3:"Por favor inicia sesión para sugerir un vídeo, o crea tu cuenta si aun no tienes una.",
- lvnote_tryfiltering: "Trata de filtrar tus resultados",
+ lvnote_tryfiltering: "Trata de filtrar tus resultados",
lvnote_trynarrowing: "Trata de ser más específica(o) en tu búsqueda",
lvnote_upgradesfor: 'Buscando mejoras para $3.',
+ lvnote_witherrors: "Algunos filtros en tus búsquedas eran inválidos y han sido ignorados.",
lvnote_itemsfound: "$1 objetos encontrados (mostrando $2)",
lvnote_itemsetsfound: "$1 conjuntos de objetos encontrados (mostrando $2)",
@@ -2802,23 +2808,27 @@ var LANG = {and:" y ",
myaccount_purged:"Purgado",
myaccount_purgefailed:"La purga ha fallado :(",
myaccount_purgesuccess:"¡Se han purgado los datos de los anuncios correctamente!",
- types:{
- 1:["PNJ","PNJ","PNJs","PNJs"],
- 2:["Entidad","entidad","Entidades","entidades"],
- 3:["Objeto","objeto","Objetos","objetos"],
- 4:["Conjunto de objetos","conjunto de objetos","Conjuntos de objetos","conjuntos de objetos"],
- 5:["Misión","misión","Misiones","misiones"],
- 6:["Hechizo","hechizo","Hechizos","hechizos"],
- 7:["Zona","zona","Zonas","zonas"],
- 8:["Facción","facción","Facciones","facciones"],
- 9:["Mascota","mascota","Mascotas","mascotas"],
- 10:["Logro","logro","Logros","logros"],
- 11:["Título","título","Títulos","títulos"],
- 12:["Suceso mundial","evento del mundo","Eventos del mundo","eventos del mundo"],
- 13:["Clase","Clase","Clases","Clases"],
- 14:["Raza","raza","Razas","razas"],
- 15:["Habilidad","habilidad","Habilidades","habilidades"]
+
+ types:{
+ 1: ["PNJ", "PNJ" , "PNJs", "PNJs"],
+ 2: ["Entidad", "entidad", "Entidades", "entidades"],
+ 3: ["Objeto", "objeto", "Objetos", "objetos"],
+ 4: ["Conjunto de objetos", "conjunto de objetos", "Conjuntos de objetos", "conjuntos de objetos"],
+ 5: ["Misión", "misión", "Misiones", "misiones"],
+ 6: ["Hechizo", "hechizo", "Hechizos", "hechizos"],
+ 7: ["Zona", "zona", "Zonas", "zonas"],
+ 8: ["Facción", "facción", "Facciones", "facciones"],
+ 9: ["Mascota", "mascota", "Mascotas", "mascotas"],
+ 10: ["Logro", "logro", "Logros", "logros"],
+ 11: ["Título", "título", "Títulos", "títulos"],
+ 12: ["Suceso mundial", "evento del mundo", "Eventos del mundo", "eventos del mundo"],
+ 13: ["Clase", "Clase", "Clases", "Clases"],
+ 14: ["Raza", "raza", "Razas", "razas"],
+ 15: ["Habilidad", "habilidad", "Habilidades", "habilidades"],
+ 16: ["Atributo", "atributo", "Atributos", "atributos"],
+ 17: ["Monedas", "monedas", "Monedas", "monedas"]
},
+
timeunitssg:["año","mes","semana","día","hora","minuto","segundo"],
timeunitspl:["años","meses","semanas","dias","horas","minutos","segundos"],
timeunitsab:["año","mes","sem","","h","min","seg"],
@@ -2942,16 +2952,27 @@ var LANG = {and:" y ",
sta:["Aguante","Agu","Agu"],
str:["Fuerza","Fue","Fue"]
},
- fishow:"Crear un filtro",
- fihide:"Esconder opciones de filtros",
- fiany:"Cualquiera",
- finone:"Ninguno",
- firemove:"remover",
- ficlear:"borrar",
- fishowdetails:"mostrar detalles",
- fihidedetails:"ocultar detalles",
- message_fillsomecriteria:"Por favor ingrese algún criterio.",
- tooltip_jconlygems:"Si está marcado, las gemas exclusivas de
\njoyero, se usarán para determinar las posibles
\nmejores gemas para una puntuación de objeto.",
+
+ fishow: "Crear un filtro",
+ fihide: "Esconder opciones de filtros",
+
+ fiany: "Cualquiera",
+ finone: "Ninguno",
+
+ firemove: "remover",
+ ficlear: "borrar",
+ ficustom: "Personalizado",
+
+ fishowdetails: "Mostrar detalles",
+ fihidedetails: "Ocultar detalles",
+ fisavescale: "Guardar",
+ fideletescale: "Borrar",
+
+ message_fillsomecriteria: "Por favor ingrese algún criterio.",
+
+ tooltip_jconlygems: "Si está marcado, las gemas exclusivas de
\njoyero, se usarán para determinar las posibles
\nmejores gemas para una puntuación de objeto.",
+ tooltip_genericrating: "Equipar: Aumenta tu $1 en $3 (0 @ L0).
",
+
fidropdowns:{
yn:[[1,"Sí"],[2,"No"]],
num:[[1,">"],[2,">="],[3,"="],[4,"<="],[5,"<"]],
diff --git a/template/js/locale_frfr.js b/template/js/locale_frfr.js
index 50cfbda3..2980de61 100644
--- a/template/js/locale_frfr.js
+++ b/template/js/locale_frfr.js
@@ -1125,52 +1125,55 @@ var g_item_subsubclasses = {
}
}
};
+
var g_itemset_types = {
- 1:"Tissu",
- 2:"Cuir",
- 3:"Mailles",
- 4:"Plaques",
- 5:"Dague",
- 6:"Anneau",
- 7:"Arme de pugilat",
- 8:"Hache à une main",
- 9:"Masse à une main",
- 10:"Épée à une main",
- 11:"Bijou",
- 12:"Amulette"
+ 1: "Tissu",
+ 2: "Cuir",
+ 3: "Mailles",
+ 4: "Plaques",
+ 5: "Dague",
+ 6: "Anneau",
+ 7: "Arme de pugilat",
+ 8: "Hache à une main",
+ 9: "Masse à une main",
+ 10: "Épée à une main",
+ 11: "Bijou",
+ 12: "Amulette"
};
+
var g_itemset_notes = {
- 1:"Ensemble de donjon 1",
- 2:"Ensemble de donjon 2",
- 14:"Ensemble de donjon 3",
- 3:"Ensemble de raid palier 1",
- 4:"Ensemble de raid palier 2",
- 5:"Ensemble de raid palier 3",
- 12:"Ensemble de raid palier 4",
- 13:"Ensemble de raid palier 5",
- 18:"Ensemble de raid palier 6",
- 23:"Ensemble de raid palier 7",
- 25:"Ensemble de raid palier 8",
- 27:"Ensemble de raid palier 9",
- 29:"Ensemble de raid palier 10",
- 6:"Ensemble JcJ niveau 60 supérieur",
- 7:"Ensemble JcJ niveau 60 supérieur (désuet)",
- 8:"Ensemble JcJ niveau 60 épique",
- 16:"Ensemble JcJ niveau 70 supérieur",
- 21:"Ensemble JcJ niveau 70 supérieur 2",
- 17:"Ensemble d'arène saison 1",
- 19:"Ensemble d'arène saison 2",
- 20:"Ensemble d'arène saison 3",
- 22:"Ensemble d'arène saison 4",
- 24:"Ensemble d'arène saison 5",
- 26:"Ensemble d'arène saison 6",
- 28:"Ensemble d'arène saison 7",
- 30:"Set d'Arena de la Saison 8",
- 15:"Ensemble du bassin d'Arathi",
- 9:"Ensemble des ruines d'Ahn'Qiraj",
- 10:"Ensemble d'Ahn'Qiraj",
- 11:"Ensemble de Zul'Gurub"
+ 1: "Ensemble de donjon 1",
+ 2: "Ensemble de donjon 2",
+ 14: "Ensemble de donjon 3",
+ 3: "Ensemble de raid palier 1",
+ 4: "Ensemble de raid palier 2",
+ 5: "Ensemble de raid palier 3",
+ 12: "Ensemble de raid palier 4",
+ 13: "Ensemble de raid palier 5",
+ 18: "Ensemble de raid palier 6",
+ 23: "Ensemble de raid palier 7",
+ 25: "Ensemble de raid palier 8",
+ 27: "Ensemble de raid palier 9",
+ 29: "Ensemble de raid palier 10",
+ 6: "Ensemble JcJ niveau 60 supérieur",
+ 7: "Ensemble JcJ niveau 60 supérieur (désuet)",
+ 8: "Ensemble JcJ niveau 60 épique",
+ 16: "Ensemble JcJ niveau 70 supérieur",
+ 21: "Ensemble JcJ niveau 70 supérieur 2",
+ 17: "Ensemble d'arène saison 1",
+ 19: "Ensemble d'arène saison 2",
+ 20: "Ensemble d'arène saison 3",
+ 22: "Ensemble d'arène saison 4",
+ 24: "Ensemble d'arène saison 5",
+ 26: "Ensemble d'arène saison 6",
+ 28: "Ensemble d'arène saison 7",
+ 30: "Set d'Arena de la Saison 8",
+ 15: "Ensemble du bassin d'Arathi",
+ 9: "Ensemble des ruines d'Ahn'Qiraj",
+ 10: "Ensemble d'Ahn'Qiraj",
+ 11: "Ensemble de Zul'Gurub"
};
+
var g_npc_classifications = {
0:"Standard",
1:"Élite",
@@ -2076,7 +2079,14 @@ var g_socket_names = {
14:"Châsse prismatique"
};
var LANG = {
- and:" et ",comma:", ",ellipsis:"…",dash:" – ",hyphen:" - ",colon:" : ",qty:" ($1)",
+ and: " et ",
+ comma: ", ",
+ ellipsis: "…",
+ dash: " – ",
+ hyphen: " - ",
+ colon: " : ",
+ qty: " ($1)",
+ error: "Erreur",
date: "Date",
date_colon: "Date : ",
@@ -2119,9 +2129,10 @@ var LANG = {
lvcomment_add:"Ajouter votre commentaire",lvcomment_sort:"Trier par : ",lvcomment_sortdate:"Date",lvcomment_sortrating:"Le plus haut noté",lvcomment_patchfilter:"Filtrer par mise-à-jour : ",lvcomment_by:"Par ",lvcomment_patch:" (Mise à jour $1)",lvcomment_show:"Afficher le commentaire",lvcomment_hide:"Cacher le commentaire",lvcomment_rating:"Note : ",lvcomment_lastedit:"Dernière modification par ",lvcomment_nedits:"modifié $1 fois",lvcomment_edit:"Édition",lvcomment_delete:"Supprimer",lvcomment_detach:"Détacher",lvcomment_reply:"Répondre",lvcomment_report:"Rapporter",lvcomment_reported:"Rapporté !",lvcomment_deleted:" (Supprimé)",lvcomment_purged:" (Effacé)",lvdrop_outof:"sur $1",lvitem_dd:" ($1$2)",lvitem_normal:"N",lvitem_heroic:"H",lvitem_raid10:"10",lvitem_raid25:"25",lvitem_heroicitem:"Héroïque",lvitem_vendorin:"Marchand dans ",lvitem_reqlevel:"Req. ",lvnpc_alliance:"A",lvnpc_horde:"H",premium_title:"Partisan Wowhead",lvquest_daily:"$1 journalière",lvquest_weekly:"$1 hebdomadaire",lvquest_pickone:"Choisir une : ",lvquest_alsoget:"Obtenez aussi : ",lvquest_xp:"$1 PX",lvquest_removed:"Supprimé",lvzone_xman:"$1-joueur",lvzone_xvx:"$1c$2",lvpet_exotic:"Exotique",lvpage_of:" de ",lvpage_first:" Première",lvpage_previous:" Préc.",lvpage_next:"Suiv. ",lvpage_last:"Dernière ",lvscreenshot_submit:"Envoyer une capture d'écran",lvscreenshot_from:"Par ",lvscreenshot_hires:"Voir",lvscreenshot_hires2:" une version plus détaillée ($1x$2)",lvvideo_suggest:"Suggérez un vidéo",lvvideo_from:"Par ",lvnodata:"Il n'y a aucune donnée à afficher.",lvnodata2:"Aucun résultat.",lvnodata_co1:"Aucun commentaire n'a été posté jusqu'à maintenant.",lvnodata_co2:"Soyez le premier à en ajouter un sur cette page !",lvnodata_co3:"Veuillez vous connecter pour ajouter votre commentaire, ou enregistrez-vous si vous n'avez pas encore de compte.",lvnodata_ss1:"Aucune capture d'écran n'a été envoyée jusqu'à maintenant.",lvnodata_ss2:"Soyez le premier à en envoyer une pour cette page !",lvnodata_ss3:"Veuillez vous connecter pour envoyer une capture, ou enregistrez-vous si vous n'avez pas encore de compte.",lvnodata_vi1:"Aucun vidéos n'a encore été soumis.",lvnodata_vi2:"Soyez le premier suggérer un vidéo pour cette page!",lvnodata_vi3:"Veuillez vous connecter pour suggérer un vidéo ou enregistrez vous si vous n'avez pas de compte.",
- lvnote_tryfiltering: "Essayez de filtrer vos résultats",
+ lvnote_tryfiltering: "Essayez de filtrer vos résultats",
lvnote_trynarrowing: "Essayez de restreindre votre recherche",
lvnote_upgradesfor: 'En train de trouver des améliorations pour $3.',
+ lvnote_witherrors: "Certains filtres dans votre recherche étaient invalides et on été ignorés.",
lvnote_itemsfound: "$1 objets trouvés ($2 affichés)",
lvnote_itemsetsfound: "$1 ensembles d'objets trouvés ($2 affichés)",
@@ -2357,22 +2368,50 @@ var LANG = {
tab_world: "Monde",
tab_zones: "Zones",
- menu_browse:"Consulter",mapper_tipzoom:"Astuce : Cliquer pour agrandir la carte",mapper_tippin:"Astuce : Cliquer sur la carte pour ajouter/enlever des marqueurs",mapper_hidepins:"Cacher les marqueurs",mapper_showpins:"Montrer les marqueurs",mapper_floor:"Changer de niveau...",mapper_relevantlocs:"Emplacements pertinents",mapper_entiretyinzone:"L'entièreté de cette quête se déroule dans $$",mapper_happensin:"Une partie de cette quête se déroule dans $$.",mapper_objectives:{ox:"Cette quête a des objectifs dans $$.",sx:"Cette quête débute dans $$.",ex:"Cette quête finie dans $$.",sex:"Cette quête débute et finie dans $$.",osx:"Cette quête a des objectifs et débute dans $$.",oex:"Cette quête a des objectifs et fini dans $$.",osx_ey:"Cette quête a des objectifs et débute dans $$ fini dans $$.",oex_sy:"Cette quête a des objectifs et fini dans $$ et débute dans $$.",sx_ey:"Cette quête débute dans $$ et finie dans $$.",ox_sy:"Cette quête débute dans $$, a des objectifs dans $$.",ox_ey:"Cette quête a des objectifs dans $$ et fini dans $$.",ox_sey:"Cette quête débute et fini dans $$ et a des objectifs dans $$.",ox_sy_ez:"Cette quête débute dans $$, a des objectifs dans $$ et fini dans $$."},mapper_startsquest:"Débute la quête",mapper_endsquest:"Termine la quête",mapper_requiredquest:"Objectif de la quête",mapper_sourcestart:"Source du début de la quête: ",mapper_sourceend:"Source de la fin de la quête: ",mapper_sourcereq:"Source de l'objectif d'une quête: ",mapper_clicktoview:"Cliquez pour voir ce $1",showonmap:"Afficher sur la carte...",som_nothing:"Rien",som_questgivers:"Donneurs de quêtes",som_viewnpc:"Cliquez pour voir ce PNJ",som_viewobj:"Cliquez pour voir cette entité",som_view:"Cliquez pour voir...",som_startsquest:"Débute la quête suivante :",som_startsquestpl:"Débute les quêtes suivantes :",som_legend:"Légende: ",som_legend_alliance:"Alliance",som_legend_horde:"Horde",som_legend_neutral:"Neutre",som:{all:"Tous",alliance:"Alliance",horde:"Horde",quest:"Donneur de quêtes",alliancequests:"Donneur de quêtes",hordequests:"Donneur de quêtes",repair:"Réparateurs",rare:"PNJs rares",auctioneer:"Actionnaires",banker:"Banquiers",battlemaster:"Maitre de bataille",innkeeper:"Aubergiste",guildmaster:"Maitre de guilde",stablemaster:"Maitre d'écurie",flightmaster:"Maitres de vol",trainer:"Entraineurs",vendor:"Marchands",book:"Livres",herb:"Herbes",vein:"Filons de minerai",spirithealer:"Esprits soigneurs"},markup_b:"Gras",markup_i:"Italique",markup_u:"Souligné",markup_s:"Barré",markup_small:"Petits caractères",markup_url:"Lien",markup_quote:"Citation",markup_code:"Bout de code",markup_ul:"Liste à puces",markup_ol:"Liste numérotée",markup_li:"Élément de liste",markup_img:"Image",markup_said:"a dit : ",markup_toc:"Table des matières",ct_dialog_captcha:"Veuillez entrer le code ci-dessus : ",ct_dialog_contactwowhead:"Contactez Wowhead",ct_dialog_description:"Description",ct_dialog_desc_caption:"Soyez aussi spécifique que possible.",ct_dialog_email:"Courriel : ",ct_dialog_email_caption:"Seulement si vous voulez être contacté.",ct_dialog_optional:"Optionnel",ct_dialog_reason:"Raison: ",ct_dialog_relatedurl:"URL relié: ",ct_dialog_currenturl:"URL actuel:",ct_dialog_report:"Rapporter",ct_dialog_reportchar:"Signalez le personnage",ct_dialog_reportcomment:"Signalez le commentaire de $1",ct_dialog_reportpost:"Signalez le message de $1",ct_dialog_reportscreen:"Signalez la capture d'écran de $1",ct_dialog_reportvideo:"Rapportez le vidéo de $1",ct_dialog_reporttopic:"Signalez le sujet de $1",ct_dialog_thanks:"Votre message à été reçu. Merci de nous avoir contacté!",ct_dialog_thanks_user:"Votre message à été reçu, $1. Merci de nous avoir contacté!",ct_dialog_error_captcha:"Le CAPTCHA que vous avez écrit n'est pas valide. Veuillez réessayer.",ct_dialog_error_desc:"Veuillez fournir une description complète, mais pas trop longue.",ct_dialog_error_email:"Veuillez entrer une adresse e-mail valide.",ct_dialog_error_emaillen:"Veuillez entrer une adresse e-mail avec moins de 100 caractères.",ct_dialog_error_reason:"Veuillez choisir une raison pour nous contacter.",ct_dialog_error_relatedurl:"Veuillez fournir un URL avec moins de 250 caractères.",ct_dialog_error_invalidurl:"Veuillez entrer un URL valide.",cn_fieldrequired:"$1 est requis.",cn_fieldinvalid:"$1 doit être valide.",cn_confirm:"Vérifiez que vous avez entré les bonnes informations, ensuite cliquez sur OK.",cn_entrylogin:'Veuillez vous connecter pour participer au concours ou inscrivez-vous si vous n\'en avez pas.',cn_entryerror:"Une erreur est survenue. Veuillez réessayer.",cn_entrywhen:"Vous vous êtes inscrit au concours le $1.",cn_entrywhen2:"Vous tees déjà inscrit à ce concours.",cn_entrysuccess:"Vous venez de vous inscrire au concours. Bonne chance!",cn_entryended:"Ce concours est terminé.",cn_entryupcoming:"Ce concours n'a pas encore débuté. Restez à l'affut!",cn_entryregion:"Vous ne pouvez participer à ce concours dans votre région.",cn_mustbe18:"Vouz devez être agé de 18 ans ou plus pour participer au concours.",cn_winnerslist:"Liste des gagnants",cn_updated:"Actualisé",ct_resp_error1:"Le CAPTCHA que vous avez écrit n'est pas valide. Veuillez réessayer.",ct_resp_error2:"Veuillez fournir une description complète, mais pas trop longue.",ct_resp_error3:"Veuillez choisir une raison pour nous contacter.",ct_resp_error7:"Vous avez déjà rapporté ceci.",compose_mode:"Mode : ",compose_edit:"Édition",compose_preview:"Aperçu",compose_livepreview:"Aperçu rapide",compose_save:"Sauver",compose_cancel:"Annuler",compose_limit:"Jusqu'à $1 caractères",compose_limit2:"Jusqu'à $1 caractères et/ou $2 lignes",compose_remaining:"$1 caractères restants.",user_nodescription:"Cet utilisateur n'a pas encore composé une description publique.",user_nodescription2:"Vous n'en avez pas composée une encore.",user_composeone:"En composer une !",user_editdescription:"Édition",myaccount_passmatch:"Correspondent",myaccount_passdontmatch:"Ne correspondent pas",myaccount_purged:"Purgé",myaccount_purgefailed:"La purge a échouée :(",myaccount_purgesuccess:"Les données d'annonce ont été purgées correctement!",types:{1:["PNJ","PNJ","PNJs","PNJs"],
- 2:["Entité","entité","Entités","entités"],
- 3:["Objet","objet","Objets","objets"],
- 4:["Ensemble d'objets","ensemble d'objets","Ensembles d'objets","ensembles d'objets"],
- 5:["Quête","quête","Quêtes","quêtes"],
- 6:["Sort","sort","Sorts","sorts"],
- 7:["Zone","zone","Zones","zones"],
- 8:["Faction","faction","Factions","factions"],
- 9:["Familier","familier","Familiers","familiers"],
- 10:["Haut fait","haut fait","Hauts faits","hauts faits"],
- 11:["Titre","titre","Titres","titres"],
- 12:["Événement mondial","évènement mondial","Évènements mondiaux","évènements mondiaux"],
- 13:["Classe","classe","Classes","classes"],
- 14:["Race","race","Races","races"],
- 15:["Compétence","compétence","Compétences","compétences"],
- 16:["Statistique","statistique","Statistiques","statistiques"]},timeunitssg:["année","mois","semaine","jour","heure","minute","seconde"],timeunitspl:["années","mois","semaines","jours","heures","minutes","secondes"],timeunitsab:["an","mo","sem","jour","h","min","s"],presets:{pve:"JcE",pvp:"JcJ",afflic:"Affliction",arcane:"Arcanes",arms:"Armes (DPS)",assas:"Assassinat",balance:"Equilibre (DPS)",beast:"Maîtrise des bêtes",blooddps:"Sang (DPS)",bloodtank:"Sang (Tank)",combat:"Combat",demo:"Démonologie",destro:"Destruction",disc:"Discipline (Soins)",elem:"Combat élémentaire (DPS)",enhance:"Amélioration (DPS)",feraldps:"Combat farouche (DPS)",feraltank:"Combat farouche (Tank)",fire:"Feu",frost:"Givre",frostdps:"Givre (DPS)",frosttank:"Givre (Tank)",fury:"Fureur (DPS)",generic:"Générique",holy:"Sacré (Soins)",marks:"Précision",prot:"Protection (Tank)",resto:"Restauration (Soins)",retrib:"Vindicte (DPS)",shadow:"Magie de l'ombre (DPS)",subtle:"Finesse",surv:"Survie",unholydps:"Impie (DPS)"},traits:{agi:["Agilité","Agi","Agi"],arcres:["Résistance aux Arcanes","Rés. arcanes","RArc"],arcsplpwr:["Puissance des sorts des arcanes","Puiss. arcanes","PArc"],armor:["Armure","Armure","Armure"],armorbonus:["Armure supplémentaire","Armure suppl.","ArmSup"],armorpenrtng:["Score de pénétration d'armure","Pén. d'armure","Pén"],atkpwr:["Puissance d'attaque","PA","PA"],avgbuyout:["Prix d'achat immédiat moyen","Achat immédiat","HV"],avgmoney:["Argent contenu en moyenne","Argent","Argent"],block:["Valeur de blocage","Valeur de Blocage","VaBlc"],blockrtng:["Score de blocage","Bloc","Bloc"],buyprice:["Prix d'achat","Achat","Achat"],cooldown:["Temps de recharge (secondes)","Recharge","Rech"],critstrkrtng:["Score de coup critique","Crit","Crit"],defrtng:["Score de défense","Défense","Déf"],dmg:["Dégâts d'arme","Dégâts","Dégâts"],dmgmax1:["Dégâts maximaux","Dégâts max","Max"],dmgmin1:["Dégâts minimaux","Dégâts min","Min"],dodgertng:["Score d'esquive","Esqui","Esqui"],dps:["Dégâts par seconde","DPS","DPS"],dura:["Durabilité","Durabilité","Dura"],exprtng:["Score d'expertise","Expertise","Exp"],feratkpwr:["Puissance d'attaque en combat farouche","PA farouche","PAF"],firres:["Résistance au Feu","Rés. feu","RFeu"],firsplpwr:["Puissance des sorts de feu","Puiss. feu","PFeu"],frores:["Résistance au Givre","Rés. givre","RGiv"],frosplpwr:["Puissance des sorts de givre","Puiss. givre","PGiv"],hastertng:["Score de hâte","Hâte","Hâte"],health:["Vie","Vie","Vie"],healthrgn:["Régénération de vie","VP5","VP5"],hitrtng:["Score de toucher","Touch","Touch"],holres:["Résistance au Sacré","Rés. sacré","RSac"],holsplpwr:["Puissance des sorts sacrés","Puiss. sacrés","PSac"],"int":["Intelligence","Int","Int"],level:["Niveau","Niveau","Niv"],mana:["Mana","Mana","Mana"],manargn:["Régénération de mana","MP5","MP5"],masteryrtng:["Score de Maitrise","Maitrise","Maitrise"],mleatkpwr:["Puissance d'attaque en mêlée","PA en mêlée","PA"],mlecritstrkrtng:["Score de coup critique en mêlée","Crit en mêlée","Crit"],mledmgmax:["Dégâts maximaux en mêlée","Dégâts max mêlée","Max"],mledmgmin:["Dégâts minimaux en mêlée","Dégâts min mêlée","Min"],mledps:["DPS mêlée","DPS mêlée","DPS"],mlehastertng:["Score de hâte en mêlée","Hâte en mêlée","Hâte"],mlehitrtng:["Score de toucher en mêlée","Toucher en mêlée","Touch"],mlespeed:["Vitesse mêlée","Vitesse de corps à corps","Vitesse"],natres:["Résistance à la Nature","Rés. nature","RNat"],natsplpwr:["Puissance des sorts de la nature","Puiss. nature","PNat"],nsockets:["Nombre de châsses","Châsses","Châsse"],parryrtng:["Score de parade","Parade","Parade"],reqarenartng:["Requiert une cote d'arène personnelle et en équipe","Score requis","Score"],reqlevel:["Niveau requis","Niveau requis","Niveau"],reqskillrank:["Niveau de compétence requis","Compétence requise","Compétence"],resirtng:["Score de résilience","Résilience","Résil"],rgdatkpwr:["Puissance d'attaque à distance","PA à distance","PAD"],rgdcritstrkrtng:["Score de coup critique à distance","Crit à distance","Crit"],rgddmgmax:["Dégâts maximaux à distance","Dégâts max distance","Max"],rgddmgmin:["Dégâts minimaux à distance","Dégâts min distance","Min"],rgddps:["DPS à distance","DPS à distance","DPS"],rgdhastertng:["Score de hâte à distance","Hâte à distance","Hâte"],rgdhitrtng:["Score de toucher à distance","Toucher à distance","Touch"],rgdspeed:["Vitesse distance","Vitesse d'attaque à distance","Vitesse"],sellprice:["Prix de vente","Vente","Vente"],sepbasestats:"Caractéristiques",sepdefensivestats:"Caractéristiques défensives",sepgeneral:"Général",sepindividualstats:"Caractéristiques individuelles",sepmisc:"Divers",sepoffensivestats:"Caractéristiques offensives",sepresistances:"Résistances",sepweaponstats:"Caractéristiques d'armes",shares:["Résistance à l'Ombre","Rés. ombre","ROmb"],shasplpwr:["Puissance des sorts de l'ombre","Puiss. ombre","POmb"],speed:["Vitesse","Vitesse","Vitesse"],spi:["Esprit","Esp","Esp"],splcritstrkrtng:["Score de coup critique des sorts","Crit des sorts","Crit"],spldmg:["Dégâts infligés par les sorts","Dégâts sorts","Dégâts"],splheal:["Soins prodigués par les sorts","Soins","Soins"],splpwr:["Puiss. sorts","Puissance des sorts","PS"],splhastertng:["Score de hâte des sorts","Hâte des sorts","Hâte"],splhitrtng:["Score de toucher des sorts","Toucher des sorts","Touch"],splpen:["Pénétration des sorts","Pén. des sorts","Pén"],sta:["Endurance","End","End"],str:["Force","For","For"]},fishow:"Créer un filtre",fihide:"Masquer les options de filtrage",fiany:"N'importe quelle",finone:"Aucun",firemove:"enlever",ficlear:"effacer",fishowdetails:"montrer les détails",fihidedetails:"cacher les détails",message_fillsomecriteria:"Vous devez utiliser au moins un critère.",tooltip_jconlygems:"Si coché, les gemmes pour joailler,
\nvont aussi être utilisé pour déterminer les meilleurs
\ngemmes possible pour le score pondéré d'un objet.",fidropdowns:{yn:[[1,"Oui"],
+ menu_browse:"Consulter",mapper_tipzoom:"Astuce : Cliquer pour agrandir la carte",mapper_tippin:"Astuce : Cliquer sur la carte pour ajouter/enlever des marqueurs",mapper_hidepins:"Cacher les marqueurs",mapper_showpins:"Montrer les marqueurs",mapper_floor:"Changer de niveau...",mapper_relevantlocs:"Emplacements pertinents",mapper_entiretyinzone:"L'entièreté de cette quête se déroule dans $$",mapper_happensin:"Une partie de cette quête se déroule dans $$.",mapper_objectives:{ox:"Cette quête a des objectifs dans $$.",sx:"Cette quête débute dans $$.",ex:"Cette quête finie dans $$.",sex:"Cette quête débute et finie dans $$.",osx:"Cette quête a des objectifs et débute dans $$.",oex:"Cette quête a des objectifs et fini dans $$.",osx_ey:"Cette quête a des objectifs et débute dans $$ fini dans $$.",oex_sy:"Cette quête a des objectifs et fini dans $$ et débute dans $$.",sx_ey:"Cette quête débute dans $$ et finie dans $$.",ox_sy:"Cette quête débute dans $$, a des objectifs dans $$.",ox_ey:"Cette quête a des objectifs dans $$ et fini dans $$.",ox_sey:"Cette quête débute et fini dans $$ et a des objectifs dans $$.",ox_sy_ez:"Cette quête débute dans $$, a des objectifs dans $$ et fini dans $$."},mapper_startsquest:"Débute la quête",mapper_endsquest:"Termine la quête",mapper_requiredquest:"Objectif de la quête",mapper_sourcestart:"Source du début de la quête: ",mapper_sourceend:"Source de la fin de la quête: ",mapper_sourcereq:"Source de l'objectif d'une quête: ",mapper_clicktoview:"Cliquez pour voir ce $1",showonmap:"Afficher sur la carte...",som_nothing:"Rien",som_questgivers:"Donneurs de quêtes",som_viewnpc:"Cliquez pour voir ce PNJ",som_viewobj:"Cliquez pour voir cette entité",som_view:"Cliquez pour voir...",som_startsquest:"Débute la quête suivante :",som_startsquestpl:"Débute les quêtes suivantes :",som_legend:"Légende: ",som_legend_alliance:"Alliance",som_legend_horde:"Horde",som_legend_neutral:"Neutre",som:{all:"Tous",alliance:"Alliance",horde:"Horde",quest:"Donneur de quêtes",alliancequests:"Donneur de quêtes",hordequests:"Donneur de quêtes",repair:"Réparateurs",rare:"PNJs rares",auctioneer:"Actionnaires",banker:"Banquiers",battlemaster:"Maitre de bataille",innkeeper:"Aubergiste",guildmaster:"Maitre de guilde",stablemaster:"Maitre d'écurie",flightmaster:"Maitres de vol",trainer:"Entraineurs",vendor:"Marchands",book:"Livres",herb:"Herbes",vein:"Filons de minerai",spirithealer:"Esprits soigneurs"},markup_b:"Gras",markup_i:"Italique",markup_u:"Souligné",markup_s:"Barré",markup_small:"Petits caractères",markup_url:"Lien",markup_quote:"Citation",markup_code:"Bout de code",markup_ul:"Liste à puces",markup_ol:"Liste numérotée",markup_li:"Élément de liste",markup_img:"Image",markup_said:"a dit : ",markup_toc:"Table des matières",ct_dialog_captcha:"Veuillez entrer le code ci-dessus : ",ct_dialog_contactwowhead:"Contactez Wowhead",ct_dialog_description:"Description",ct_dialog_desc_caption:"Soyez aussi spécifique que possible.",ct_dialog_email:"Courriel : ",ct_dialog_email_caption:"Seulement si vous voulez être contacté.",ct_dialog_optional:"Optionnel",ct_dialog_reason:"Raison: ",ct_dialog_relatedurl:"URL relié: ",ct_dialog_currenturl:"URL actuel:",ct_dialog_report:"Rapporter",ct_dialog_reportchar:"Signalez le personnage",ct_dialog_reportcomment:"Signalez le commentaire de $1",ct_dialog_reportpost:"Signalez le message de $1",ct_dialog_reportscreen:"Signalez la capture d'écran de $1",ct_dialog_reportvideo:"Rapportez le vidéo de $1",ct_dialog_reporttopic:"Signalez le sujet de $1",ct_dialog_thanks:"Votre message à été reçu. Merci de nous avoir contacté!",ct_dialog_thanks_user:"Votre message à été reçu, $1. Merci de nous avoir contacté!",ct_dialog_error_captcha:"Le CAPTCHA que vous avez écrit n'est pas valide. Veuillez réessayer.",ct_dialog_error_desc:"Veuillez fournir une description complète, mais pas trop longue.",ct_dialog_error_email:"Veuillez entrer une adresse e-mail valide.",ct_dialog_error_emaillen:"Veuillez entrer une adresse e-mail avec moins de 100 caractères.",ct_dialog_error_reason:"Veuillez choisir une raison pour nous contacter.",ct_dialog_error_relatedurl:"Veuillez fournir un URL avec moins de 250 caractères.",ct_dialog_error_invalidurl:"Veuillez entrer un URL valide.",cn_fieldrequired:"$1 est requis.",cn_fieldinvalid:"$1 doit être valide.",cn_confirm:"Vérifiez que vous avez entré les bonnes informations, ensuite cliquez sur OK.",cn_entrylogin:'Veuillez vous connecter pour participer au concours ou inscrivez-vous si vous n\'en avez pas.',cn_entryerror:"Une erreur est survenue. Veuillez réessayer.",cn_entrywhen:"Vous vous êtes inscrit au concours le $1.",cn_entrywhen2:"Vous tees déjà inscrit à ce concours.",cn_entrysuccess:"Vous venez de vous inscrire au concours. Bonne chance!",cn_entryended:"Ce concours est terminé.",cn_entryupcoming:"Ce concours n'a pas encore débuté. Restez à l'affut!",cn_entryregion:"Vous ne pouvez participer à ce concours dans votre région.",cn_mustbe18:"Vouz devez être agé de 18 ans ou plus pour participer au concours.",cn_winnerslist:"Liste des gagnants",cn_updated:"Actualisé",ct_resp_error1:"Le CAPTCHA que vous avez écrit n'est pas valide. Veuillez réessayer.",ct_resp_error2:"Veuillez fournir une description complète, mais pas trop longue.",ct_resp_error3:"Veuillez choisir une raison pour nous contacter.",ct_resp_error7:"Vous avez déjà rapporté ceci.",compose_mode:"Mode : ",compose_edit:"Édition",compose_preview:"Aperçu",compose_livepreview:"Aperçu rapide",compose_save:"Sauver",compose_cancel:"Annuler",compose_limit:"Jusqu'à $1 caractères",compose_limit2:"Jusqu'à $1 caractères et/ou $2 lignes",compose_remaining:"$1 caractères restants.",user_nodescription:"Cet utilisateur n'a pas encore composé une description publique.",user_nodescription2:"Vous n'en avez pas composée une encore.",user_composeone:"En composer une !",user_editdescription:"Édition",myaccount_passmatch:"Correspondent",myaccount_passdontmatch:"Ne correspondent pas",myaccount_purged:"Purgé",myaccount_purgefailed:"La purge a échouée :(",myaccount_purgesuccess:"Les données d'annonce ont été purgées correctement!",
+
+ types: {
+ 1: ["PNJ", "PNJ" , "PNJs", "PNJs"],
+ 2: ["Entité", "entité", "Entités", "entités"],
+ 3: ["Objet", "objet", "Objets", "objets"],
+ 4: ["Ensemble d'objets", "ensemble d'objets", "Ensembles d'objets", "ensembles d'objets"],
+ 5: ["Quête", "quête", "Quêtes", "quêtes"],
+ 6: ["Sort", "sort", "Sorts", "sorts"],
+ 7: ["Zone", "zone", "Zones", "zones"],
+ 8: ["Faction", "faction", "Factions", "factions"],
+ 9: ["Familier", "familier", "Familiers", "familiers"],
+ 10: ["Haut fait", "haut fait", "Hauts faits", "hauts faits"],
+ 11: ["Titre", "titre", "Titres", "titres"],
+ 12: ["Événement mondial", "évènement mondial", "Évènements mondiaux", "évènements mondiaux"],
+ 13: ["Classe", "classe", "Classes", "classes"],
+ 14: ["Race", "race", "Races", "races"],
+ 15: ["Compétence", "compétence", "Compétences", "compétences"],
+ 16: ["Statistique", "statistique", "Statistiques", "statistiques"],
+ 17: ["Monnaies", "monnaie", "Monnaies", "monnaies"]
+ },
+
+ timeunitssg:["année","mois","semaine","jour","heure","minute","seconde"],timeunitspl:["années","mois","semaines","jours","heures","minutes","secondes"],timeunitsab:["an","mo","sem","jour","h","min","s"],presets:{pve:"JcE",pvp:"JcJ",afflic:"Affliction",arcane:"Arcanes",arms:"Armes (DPS)",assas:"Assassinat",balance:"Equilibre (DPS)",beast:"Maîtrise des bêtes",blooddps:"Sang (DPS)",bloodtank:"Sang (Tank)",combat:"Combat",demo:"Démonologie",destro:"Destruction",disc:"Discipline (Soins)",elem:"Combat élémentaire (DPS)",enhance:"Amélioration (DPS)",feraldps:"Combat farouche (DPS)",feraltank:"Combat farouche (Tank)",fire:"Feu",frost:"Givre",frostdps:"Givre (DPS)",frosttank:"Givre (Tank)",fury:"Fureur (DPS)",generic:"Générique",holy:"Sacré (Soins)",marks:"Précision",prot:"Protection (Tank)",resto:"Restauration (Soins)",retrib:"Vindicte (DPS)",shadow:"Magie de l'ombre (DPS)",subtle:"Finesse",surv:"Survie",unholydps:"Impie (DPS)"},traits:{agi:["Agilité","Agi","Agi"],arcres:["Résistance aux Arcanes","Rés. arcanes","RArc"],arcsplpwr:["Puissance des sorts des arcanes","Puiss. arcanes","PArc"],armor:["Armure","Armure","Armure"],armorbonus:["Armure supplémentaire","Armure suppl.","ArmSup"],armorpenrtng:["Score de pénétration d'armure","Pén. d'armure","Pén"],atkpwr:["Puissance d'attaque","PA","PA"],avgbuyout:["Prix d'achat immédiat moyen","Achat immédiat","HV"],avgmoney:["Argent contenu en moyenne","Argent","Argent"],block:["Valeur de blocage","Valeur de Blocage","VaBlc"],blockrtng:["Score de blocage","Bloc","Bloc"],buyprice:["Prix d'achat","Achat","Achat"],cooldown:["Temps de recharge (secondes)","Recharge","Rech"],critstrkrtng:["Score de coup critique","Crit","Crit"],defrtng:["Score de défense","Défense","Déf"],dmg:["Dégâts d'arme","Dégâts","Dégâts"],dmgmax1:["Dégâts maximaux","Dégâts max","Max"],dmgmin1:["Dégâts minimaux","Dégâts min","Min"],dodgertng:["Score d'esquive","Esqui","Esqui"],dps:["Dégâts par seconde","DPS","DPS"],dura:["Durabilité","Durabilité","Dura"],exprtng:["Score d'expertise","Expertise","Exp"],feratkpwr:["Puissance d'attaque en combat farouche","PA farouche","PAF"],firres:["Résistance au Feu","Rés. feu","RFeu"],firsplpwr:["Puissance des sorts de feu","Puiss. feu","PFeu"],frores:["Résistance au Givre","Rés. givre","RGiv"],frosplpwr:["Puissance des sorts de givre","Puiss. givre","PGiv"],hastertng:["Score de hâte","Hâte","Hâte"],health:["Vie","Vie","Vie"],healthrgn:["Régénération de vie","VP5","VP5"],hitrtng:["Score de toucher","Touch","Touch"],holres:["Résistance au Sacré","Rés. sacré","RSac"],holsplpwr:["Puissance des sorts sacrés","Puiss. sacrés","PSac"],"int":["Intelligence","Int","Int"],level:["Niveau","Niveau","Niv"],mana:["Mana","Mana","Mana"],manargn:["Régénération de mana","MP5","MP5"],masteryrtng:["Score de Maitrise","Maitrise","Maitrise"],mleatkpwr:["Puissance d'attaque en mêlée","PA en mêlée","PA"],mlecritstrkrtng:["Score de coup critique en mêlée","Crit en mêlée","Crit"],mledmgmax:["Dégâts maximaux en mêlée","Dégâts max mêlée","Max"],mledmgmin:["Dégâts minimaux en mêlée","Dégâts min mêlée","Min"],mledps:["DPS mêlée","DPS mêlée","DPS"],mlehastertng:["Score de hâte en mêlée","Hâte en mêlée","Hâte"],mlehitrtng:["Score de toucher en mêlée","Toucher en mêlée","Touch"],mlespeed:["Vitesse mêlée","Vitesse de corps à corps","Vitesse"],natres:["Résistance à la Nature","Rés. nature","RNat"],natsplpwr:["Puissance des sorts de la nature","Puiss. nature","PNat"],nsockets:["Nombre de châsses","Châsses","Châsse"],parryrtng:["Score de parade","Parade","Parade"],reqarenartng:["Requiert une cote d'arène personnelle et en équipe","Score requis","Score"],reqlevel:["Niveau requis","Niveau requis","Niveau"],reqskillrank:["Niveau de compétence requis","Compétence requise","Compétence"],resirtng:["Score de résilience","Résilience","Résil"],rgdatkpwr:["Puissance d'attaque à distance","PA à distance","PAD"],rgdcritstrkrtng:["Score de coup critique à distance","Crit à distance","Crit"],rgddmgmax:["Dégâts maximaux à distance","Dégâts max distance","Max"],rgddmgmin:["Dégâts minimaux à distance","Dégâts min distance","Min"],rgddps:["DPS à distance","DPS à distance","DPS"],rgdhastertng:["Score de hâte à distance","Hâte à distance","Hâte"],rgdhitrtng:["Score de toucher à distance","Toucher à distance","Touch"],rgdspeed:["Vitesse distance","Vitesse d'attaque à distance","Vitesse"],sellprice:["Prix de vente","Vente","Vente"],sepbasestats:"Caractéristiques",sepdefensivestats:"Caractéristiques défensives",sepgeneral:"Général",sepindividualstats:"Caractéristiques individuelles",sepmisc:"Divers",sepoffensivestats:"Caractéristiques offensives",sepresistances:"Résistances",sepweaponstats:"Caractéristiques d'armes",shares:["Résistance à l'Ombre","Rés. ombre","ROmb"],shasplpwr:["Puissance des sorts de l'ombre","Puiss. ombre","POmb"],speed:["Vitesse","Vitesse","Vitesse"],spi:["Esprit","Esp","Esp"],splcritstrkrtng:["Score de coup critique des sorts","Crit des sorts","Crit"],spldmg:["Dégâts infligés par les sorts","Dégâts sorts","Dégâts"],splheal:["Soins prodigués par les sorts","Soins","Soins"],splpwr:["Puiss. sorts","Puissance des sorts","PS"],splhastertng:["Score de hâte des sorts","Hâte des sorts","Hâte"],splhitrtng:["Score de toucher des sorts","Toucher des sorts","Touch"],splpen:["Pénétration des sorts","Pén. des sorts","Pén"],sta:["Endurance","End","End"],str:["Force","For","For"]},
+
+ fishow: "Créer un filtre",
+ fihide: "Masquer les options de filtrage",
+
+ fiany: "N'importe quelle",
+ finone: "Aucun",
+
+ firemove: "enlever",
+ ficlear: "effacer",
+ ficustom: "Personnalisé",
+
+ fishowdetails: "Afficher les détails",
+ fihidedetails: "Cacher les détails",
+ fisavescale: "Sauver",
+ fideletescale: "Supprimer",
+
+ message_fillsomecriteria: "Vous devez utiliser au moins un critère.",
+
+ tooltip_jconlygems: "Si coché, les gemmes pour joailler,
\nvont aussi être utilisé pour déterminer les meilleurs
\ngemmes possible pour le score pondéré d'un objet.",fidropdowns:{yn:[[1,"Oui"],
+ tooltip_genericrating: "Equipé: Augmente votre $1 de $3 (0 @ L0).
",
+
[2,"Non"]],num:[[1,">"],
[2,">="],
[3,"="],
diff --git a/template/js/locale_ruru.js b/template/js/locale_ruru.js
index 2847d122..695930f9 100644
--- a/template/js/locale_ruru.js
+++ b/template/js/locale_ruru.js
@@ -1125,52 +1125,55 @@ var g_item_subsubclasses = {
}
}
};
+
var g_itemset_types = {
- 1:"Ткань",
- 2:"Кожа",
- 3:"Кольчуга",
- 4:"Латы",
- 5:"Кинжал",
- 6:"Кольцо",
- 7:"Кистевое оружие",
- 8:"Одноручный топор",
- 9:"Одноручное дробящее",
- 10:"Одноручный меч",
- 11:"Аксессуар",
- 12:"Амулет"
+ 1: "Ткань",
+ 2: "Кожа",
+ 3: "Кольчуга",
+ 4: "Латы",
+ 5: "Кинжал",
+ 6: "Кольцо",
+ 7: "Кистевое оружие",
+ 8: "Одноручный топор",
+ 9: "Одноручное дробящее",
+ 10: "Одноручный меч",
+ 11: "Аксессуар",
+ 12: "Амулет"
};
+
var g_itemset_notes = {
- 1:"Комплект подземелий 1",
- 2:"Комплект подземелий 2",
- 14:"Комплект подземелий 3",
- 3:"Рейдовый комплект Tier 1",
- 4:"Рейдовый комплект Tier 2",
- 5:"Рейдовый комплект Tier 3",
- 12:"Рейдовый комплект Tier 4",
- 13:"Рейдовый комплект Tier 5",
- 18:"Рейдовый комплект Tier 6",
- 23:"Рейдовый комплект Tier 7",
- 25:"Рейдовый комплект Tier 8",
- 27:"Рейдовый комплект Tier 9",
- 29:"Рейдовый комплект Tier 10",
- 6:"PvP Комплект для 60 уровня",
- 7:"PvP Комплект для 60 уровня (старая версия)",
- 8:"Эпический PvP Комплект для 60 уровня",
- 16:"Редкий PvP Комплект для 70 уровня",
- 21:"PvP Комплект для 70 уровня 2",
- 17:"Комплект Арены 1 сезона",
- 19:"Комплект Арены 2 сезона",
- 20:"Комплект Арены 3 сезона",
- 22:"Комплект Арены 4 сезона",
- 24:"Комплект Арены 5 сезона",
- 26:"Комплект Арены 6 сезона",
- 28:"Комплект Арены 7 сезона",
- 30:"Комплект Арены 8 сезона",
- 15:"Комплект Низин Арати",
- 9:"Комплект из Руин Ан'Киража",
- 10:"Комплект из Храма Ан'Киража",
- 11:"Комплект Зул'Гуруба"
+ 1: "Комплект подземелий 1",
+ 2: "Комплект подземелий 2",
+ 14: "Комплект подземелий 3",
+ 3: "Рейдовый комплект Tier 1",
+ 4: "Рейдовый комплект Tier 2",
+ 5: "Рейдовый комплект Tier 3",
+ 12: "Рейдовый комплект Tier 4",
+ 13: "Рейдовый комплект Tier 5",
+ 18: "Рейдовый комплект Tier 6",
+ 23: "Рейдовый комплект Tier 7",
+ 25: "Рейдовый комплект Tier 8",
+ 27: "Рейдовый комплект Tier 9",
+ 29: "Рейдовый комплект Tier 10",
+ 6: "PvP Комплект для 60 уровня",
+ 7: "PvP Комплект для 60 уровня (старая версия)",
+ 8: "Эпический PvP Комплект для 60 уровня",
+ 16: "Редкий PvP Комплект для 70 уровня",
+ 21: "PvP Комплект для 70 уровня 2",
+ 17: "Комплект Арены 1 сезона",
+ 19: "Комплект Арены 2 сезона",
+ 20: "Комплект Арены 3 сезона",
+ 22: "Комплект Арены 4 сезона",
+ 24: "Комплект Арены 5 сезона",
+ 26: "Комплект Арены 6 сезона",
+ 28: "Комплект Арены 7 сезона",
+ 30: "Комплект Арены 8 сезона",
+ 15: "Комплект Низин Арати",
+ 9: "Комплект из Руин Ан'Киража",
+ 10: "Комплект из Храма Ан'Киража",
+ 11: "Комплект Зул'Гуруба"
};
+
var g_npc_classifications = {
0:"Обычный",
1:"Элитный",
@@ -2076,7 +2079,14 @@ var g_socket_names = {
14:"Бесцветное гнездо"
};
var LANG = {
- and:" и ",comma:", ",ellipsis:"…",dash:" – ",hyphen:" - ",colon:": ",qty:" ($1)",
+ and: " и ",
+ comma: ", ",
+ ellipsis: "…",
+ dash: " – ",
+ hyphen: " - ",
+ colon: ": ",
+ qty: " ($1)",
+ error: "Ошибка",
date: "По дате",
date_colon: "Дата: ",
@@ -2119,9 +2129,10 @@ var LANG = {
lvcomment_add:"Разместить комментарий",lvcomment_sort:"Сортировать: ",lvcomment_sortdate:"По дате",lvcomment_sortrating:"По рейтингу",lvcomment_patchfilter:"Обновление: ",lvcomment_by:"От ",lvcomment_patch:" (Обновление $1)",lvcomment_show:"Показать",lvcomment_hide:"Скрыть",lvcomment_rating:"Рейтинг: ",lvcomment_lastedit:"Последний раз редактировалось ",lvcomment_nedits:"всего редактировалось $1 раз(а)",lvcomment_edit:"Редактировать",lvcomment_delete:"Удалить",lvcomment_detach:"Открепить",lvcomment_reply:"Ответить",lvcomment_report:"Жалоба",lvcomment_reported:"Получена жалоба!",lvcomment_deleted:" (Удалено)",lvcomment_purged:" (Удалено)",lvdrop_outof:"из $1",lvitem_dd:" ($1$2)",lvitem_normal:" Норм.",lvitem_heroic:"О",lvitem_raid10:"10",lvitem_raid25:"25",lvitem_heroicitem:"Героический",lvitem_vendorin:"Торговец в ",lvitem_reqlevel:"Треб. ",lvnpc_alliance:"A",lvnpc_horde:"О",premium_title:"Спонсор Wowhead",lvquest_daily:"Ежедневный $1",lvquest_weekly:"Еженедельный $1",lvquest_pickone:"Возьмите: ",lvquest_alsoget:"Вы получите: ",lvquest_xp:"$1 очков опыта",lvquest_removed:"Удалено",lvzone_xman:"$1 игроков",lvzone_xvx:"$1x$2",lvpet_exotic:"Экзотический",lvpage_of:" из ",lvpage_first:" Начало",lvpage_previous:" Назад",lvpage_next:"Далее ",lvpage_last:"Конец ",lvscreenshot_submit:"Отправить изображение",lvscreenshot_from:"От ",lvscreenshot_hires:"Просмотр",lvscreenshot_hires2:" в высоком разрешении ($1x$2)",lvvideo_suggest:"Предложить видео",lvvideo_from:"От ",lvnodata:"Нет данных для отображения.",lvnodata2:"Не найдено ни одного совпадения, соответствующего запросу.",lvnodata_co1:"На этой странице нет комментариев.",lvnodata_co2:"Будьте первым, кто оставит комментарий на этой странице!",lvnodata_co3:"Войдите, чтобы оставить комментарий, или зарегистрируйтесь, если у вас еще нет учетной записи.",lvnodata_ss1:"К этой странице не добавлено изображений.",lvnodata_ss2:"Будьте первым, кто добавит изображение к этой странице!",lvnodata_ss3:"Войдите, чтобы разместить изображение, или зарегистрируйтесь, если у вас еще нет учетной записи.",lvnodata_vi1:"К этой странице не добавлено видео.",lvnodata_vi2:"Будьте первым, кто предложит видео к этой странице!",lvnodata_vi3:"Войдите, чтобы предложить видео, или зарегистрируйтесь, если у вас еще нет учетной записи.",
- lvnote_tryfiltering: "Попробуйте отфильтровать результаты",
+ lvnote_tryfiltering: "Попробуйте отфильтровать результаты",
lvnote_trynarrowing: "Попытайтесь сузить поиск",
lvnote_upgradesfor: 'Предметы лучше, чем $3.',
+ lvnote_witherrors: "Некоторые фильтры в вашем поиске некорректны и были проигнорированы.",
lvnote_itemsfound: "Найдено предметов: $1 (показано: $2)",
lvnote_itemsetsfound: "Найдено комплектов: $1 (показано: $2)",
@@ -2358,22 +2369,29 @@ var LANG = {
tab_world: "Игровой мир",
tab_zones: "Местности",
- menu_browse:"Просмотр",mapper_tipzoom:"Щелкните по карте для увеличения",mapper_tippin:"Щелкните по карте для добавления или удаления маркеров",mapper_hidepins:"Скрыть маркеры",mapper_showpins:"Показать маркеры",mapper_floor:"Уровень...",mapper_relevantlocs:"Связанные местности",mapper_entiretyinzone:"Действия этого задания происходят в $$",mapper_happensin:"Часть этого задания происходит в $$.",mapper_objectives:{ox:"Цели этого задания находятся в $$.",sx:"Начало этого задания находится в $$.",ex:"Конец этого задания находится в $$.",sex:"Начало и конец задания находятся в $$.",osx:"Начало и цели этого задания находятся в $$.",oex:"Цели и конец этого задания находятся в $$.",osx_ey:"Начало и цели этого задания находятся в $$, а конец - в $$.",oex_sy:"Цели и конец этого задания находятся в $$, а начало - в $$.",sx_ey:"Начало этого задания находится в $$, а конец - в $$.",ox_sy:"Начало этого задания находится в $$, а цели - в $$.",ox_ey:"Цели этого задания находятся в $$, а конец - в $$.",ox_sey:"Начало и конец этого задания находятся в $$, а цели - в $$.",ox_sy_ez:"Начало этого задания находится в $$, цели в $$, а конец - в $$."},mapper_startsquest:"Начинает задание",mapper_endsquest:"Завершает задание",mapper_requiredquest:"Цель задания",mapper_sourcestart:"Начало задания:",mapper_sourceend:"Конец задания:",mapper_sourcereq:"Цель задания: ",mapper_clicktoview:"Нажмите для просмотра этого $1",showonmap:"Показать на карте...",som_nothing:"Ничего",som_questgivers:"НИП, дающие задания",som_viewnpc:"Нажмите для просмотра этого НИП",som_viewobj:"Нажмите для просмотра этого объекта",som_view:"Нажмите для просмотра...",som_startsquest:"Начинает следующие задания:",som_startsquestpl:"Начинает следующие задания:",som_legend:"Легенда: ",som_legend_alliance:"Альянс",som_legend_horde:"Орда",som_legend_neutral:"Равнодушие",som:{all:"Все",alliance:"Альянс",horde:"Орда",quest:"Квестодатели",alliancequests:"Квестодатели",hordequests:"Квестодатели",repair:"Ремонтники",rare:"Редкие НИПы",auctioneer:"Аукционеры",banker:"Банкиры",battlemaster:"Военачальники",innkeeper:"Смотрители таверн",guildmaster:"Регистраторы гильдий",stablemaster:"Смотрители стойл",flightmaster:"Распорядители полетов",trainer:"Учителя",vendor:"Торговцы",book:"Книги",herb:"Травы",vein:"Полезные ископаемые",spirithealer:"Целители душ"},markup_b:"Жирный",markup_i:"Наклонный",markup_u:"Подчеркнутый",markup_s:"Зачеркнутый",markup_small:"Мелкий",markup_url:"Ссылка",markup_quote:"Цитата",markup_code:"Код",markup_ul:"Список",markup_ol:"Маркированный список",markup_li:"Элемент списка",markup_img:"Изображение",markup_said:"сказал: ",markup_toc:"Содержание",ct_dialog_captcha:"Пожалуйста, введите код: ",ct_dialog_contactwowhead:"Связь с Wowhead",ct_dialog_description:"Описание",ct_dialog_desc_caption:"Пожалуйста, будьте как можно более точны.",ct_dialog_email:"Email: ",ct_dialog_email_caption:"Только если вы хотите получить ответ.",ct_dialog_optional:"Не обязательно",ct_dialog_reason:"Причина: ",ct_dialog_relatedurl:"Дополнительная ссылка: ",ct_dialog_currenturl:"Эта страница: ",ct_dialog_report:"Жалоба",ct_dialog_reportchar:"Жалоба на персонажа",ct_dialog_reportcomment:"Жалоба на комментарий от $1",ct_dialog_reportpost:"Жалоба на сообщение от $1",ct_dialog_reportscreen:"Жалоба на изображение от $1",ct_dialog_reportvideo:"Жалоба на видео от $1",ct_dialog_reporttopic:"Жалоба на тему от $1",ct_dialog_thanks:"Ваше сообщение было получено. Спасибо!",ct_dialog_thanks_user:"Ваше сообщение было получено, $1. Спасибо!",ct_dialog_error_captcha:"Введенный вами CAPTCHA код неверен. Пожалуйста, повторите попытку.",ct_dialog_error_desc:"Пожалуйста, оставьте исчерпывающее описание, но не слишком длинное.",ct_dialog_error_email:"Пожалуйста, введите корректный email адрес.",ct_dialog_error_emaillen:"Пожалуйста, введите адрес электронной почты не длиннее 100 символов.",ct_dialog_error_reason:"Пожалуйста, выберите причину связи с нами.",ct_dialog_error_relatedurl:"Пожалуйста, введите ссылку размером менее 250 символов.",ct_dialog_error_invalidurl:"Пожалуйста, введите корректную ссылку.",cn_fieldrequired:"Требуется $1.",cn_fieldinvalid:"Некорректно: $1",cn_confirm:"Проверьте всю введенную вами информацию и нажмите ОК.",cn_entrylogin:'Пожалуйста, авторизуйтесь чтобы принять участие в конкурсе, или создайте аккаунт если у вас его еще нет.',cn_entryerror:"Произошла ошибка. Пожалуйста, попробуйте еще раз.",cn_entrywhen:"Вы приняли участие в конкурсе $1.",cn_entrywhen2:"Вы уже приняли участие в конкурсе.",cn_entrysuccess:"Вы приняли участие в конкурсе. Удачи!",cn_entryended:"Это конкурс закончен.",cn_entryupcoming:"Этот конкурс еще не начался. Ожидайте объявления!",cn_entryregion:"Вы не можете принять участие в конкурсе в вашем регионе.",cn_mustbe18:"Вы должны быть не младше 18-ти лет чтобы принять участие в конкурсе.",cn_winnerslist:"Победители",cn_updated:"Обновлено ",ct_resp_error1:"Введенный вами CAPTCHA код неверен. Пожалуйста, повторите попытку.",ct_resp_error2:"Пожалуйста, оставьте исчерпывающее описание, но не слишком длинное.",ct_resp_error3:"Пожалуйста, выберите причину связи с нами.",ct_resp_error7:"Вы уже подали на это жалобу.",compose_mode:"Режим: ",compose_edit:"Редактировать",compose_preview:"Предварительный просмотр",compose_livepreview:"Предпросмотр",compose_save:"Сохранить",compose_cancel:"Отмена",compose_limit:"Не более $1 знаков",compose_limit2:"Не более $1 знаков или $2 строк",compose_remaining:"Осталось символов: $1",user_nodescription:"Пользователь еще не составил публичное описание.",user_nodescription2:"Вы еще не разместили описания.",user_composeone:"Разместите сейчас!",user_editdescription:"Редактировать",myaccount_passmatch:"Пароли совпадают",myaccount_passdontmatch:"Пароли не совпадают",myaccount_purged:"Сброшено",myaccount_purgefailed:"Ошибка сброса :(",myaccount_purgesuccess:"Закрытые объявления успешно сброшены!",types:{1:["НИП","НИП","НИП","НИП"],
- 2:["Объект","объект","Объекты","объекты"],
- 3:["Предмет","предмет","Предметы","предметы"],
- 4:["Комплект","комплект","Комплекты","комплекты"],
- 5:["Задание","задание","Задания","задание"],
- 6:["Заклинание","заклинание","Заклинания","заклинания"],
- 7:["Игровая зона","Игровая зона","Местности","местности"],
- 8:["Фракция","фракция","Фракции","фракции"],
- 9:["Питомец","питомец","Питомцы","питомцы"],
- 10:["Достижение","достижение","Достижения","достижения"],
- 11:["Звание","звание","Звания","звания"],
- 12:["Событие","игровое событие","Игровые события","игровые события"],
- 13:["Класс","класс","Классы","классы"],
- 14:["Раса","раса","Расы","расы"],
- 15:["Уровень навыка","навык","Умения","навыки"],
- 16:["Статистика","характеристика","Характеристики","характеристики"]},timeunitssg:["год","месяц","неделя","день","час","минута","секунда"],timeunitspl:["годы","месяцы","недели","дн.","часы","мин","секунды"],timeunitsab:["г.","мес.","нед.","дн","ч.","мин","сек."],presets:{pve:"PvE",pvp:"PvP",afflic:"Колдовство",arcane:"Тайная магия",arms:"Оружие (УВС)",assas:"Ликвидация",balance:"Баланс (УВС)",beast:"Повелитель зверей",blooddps:"Кровь (УВС)",bloodtank:"Кровь (Танк)",combat:"Бой",demo:"Демонология",destro:"Разрушение",disc:"Послушание (Исцеление)",elem:"Стихии (УВС)",enhance:"Совершенствование (УВС)",feraldps:"Сила зверя (УВС)",feraltank:"Сила зверя (Танк)",fire:"Огонь",frost:"Лед",frostdps:"Лед (УВС)",frosttank:"Лед (Танк)",fury:"Неистовство (УВС)",generic:"Общий",holy:"Свет (Исцеление)",marks:"Стрельба",prot:"Защита (Танк)",resto:"Исцеление (Исцеление)",retrib:"Воздаяние (УВС)",shadow:"Темная магия (УВС)",subtle:"Скрытность",surv:"Выживание",unholydps:"Нечестивость (УВС)"},
+ menu_browse:"Просмотр",mapper_tipzoom:"Щелкните по карте для увеличения",mapper_tippin:"Щелкните по карте для добавления или удаления маркеров",mapper_hidepins:"Скрыть маркеры",mapper_showpins:"Показать маркеры",mapper_floor:"Уровень...",mapper_relevantlocs:"Связанные местности",mapper_entiretyinzone:"Действия этого задания происходят в $$",mapper_happensin:"Часть этого задания происходит в $$.",mapper_objectives:{ox:"Цели этого задания находятся в $$.",sx:"Начало этого задания находится в $$.",ex:"Конец этого задания находится в $$.",sex:"Начало и конец задания находятся в $$.",osx:"Начало и цели этого задания находятся в $$.",oex:"Цели и конец этого задания находятся в $$.",osx_ey:"Начало и цели этого задания находятся в $$, а конец - в $$.",oex_sy:"Цели и конец этого задания находятся в $$, а начало - в $$.",sx_ey:"Начало этого задания находится в $$, а конец - в $$.",ox_sy:"Начало этого задания находится в $$, а цели - в $$.",ox_ey:"Цели этого задания находятся в $$, а конец - в $$.",ox_sey:"Начало и конец этого задания находятся в $$, а цели - в $$.",ox_sy_ez:"Начало этого задания находится в $$, цели в $$, а конец - в $$."},mapper_startsquest:"Начинает задание",mapper_endsquest:"Завершает задание",mapper_requiredquest:"Цель задания",mapper_sourcestart:"Начало задания:",mapper_sourceend:"Конец задания:",mapper_sourcereq:"Цель задания: ",mapper_clicktoview:"Нажмите для просмотра этого $1",showonmap:"Показать на карте...",som_nothing:"Ничего",som_questgivers:"НИП, дающие задания",som_viewnpc:"Нажмите для просмотра этого НИП",som_viewobj:"Нажмите для просмотра этого объекта",som_view:"Нажмите для просмотра...",som_startsquest:"Начинает следующие задания:",som_startsquestpl:"Начинает следующие задания:",som_legend:"Легенда: ",som_legend_alliance:"Альянс",som_legend_horde:"Орда",som_legend_neutral:"Равнодушие",som:{all:"Все",alliance:"Альянс",horde:"Орда",quest:"Квестодатели",alliancequests:"Квестодатели",hordequests:"Квестодатели",repair:"Ремонтники",rare:"Редкие НИПы",auctioneer:"Аукционеры",banker:"Банкиры",battlemaster:"Военачальники",innkeeper:"Смотрители таверн",guildmaster:"Регистраторы гильдий",stablemaster:"Смотрители стойл",flightmaster:"Распорядители полетов",trainer:"Учителя",vendor:"Торговцы",book:"Книги",herb:"Травы",vein:"Полезные ископаемые",spirithealer:"Целители душ"},markup_b:"Жирный",markup_i:"Наклонный",markup_u:"Подчеркнутый",markup_s:"Зачеркнутый",markup_small:"Мелкий",markup_url:"Ссылка",markup_quote:"Цитата",markup_code:"Код",markup_ul:"Список",markup_ol:"Маркированный список",markup_li:"Элемент списка",markup_img:"Изображение",markup_said:"сказал: ",markup_toc:"Содержание",ct_dialog_captcha:"Пожалуйста, введите код: ",ct_dialog_contactwowhead:"Связь с Wowhead",ct_dialog_description:"Описание",ct_dialog_desc_caption:"Пожалуйста, будьте как можно более точны.",ct_dialog_email:"Email: ",ct_dialog_email_caption:"Только если вы хотите получить ответ.",ct_dialog_optional:"Не обязательно",ct_dialog_reason:"Причина: ",ct_dialog_relatedurl:"Дополнительная ссылка: ",ct_dialog_currenturl:"Эта страница: ",ct_dialog_report:"Жалоба",ct_dialog_reportchar:"Жалоба на персонажа",ct_dialog_reportcomment:"Жалоба на комментарий от $1",ct_dialog_reportpost:"Жалоба на сообщение от $1",ct_dialog_reportscreen:"Жалоба на изображение от $1",ct_dialog_reportvideo:"Жалоба на видео от $1",ct_dialog_reporttopic:"Жалоба на тему от $1",ct_dialog_thanks:"Ваше сообщение было получено. Спасибо!",ct_dialog_thanks_user:"Ваше сообщение было получено, $1. Спасибо!",ct_dialog_error_captcha:"Введенный вами CAPTCHA код неверен. Пожалуйста, повторите попытку.",ct_dialog_error_desc:"Пожалуйста, оставьте исчерпывающее описание, но не слишком длинное.",ct_dialog_error_email:"Пожалуйста, введите корректный email адрес.",ct_dialog_error_emaillen:"Пожалуйста, введите адрес электронной почты не длиннее 100 символов.",ct_dialog_error_reason:"Пожалуйста, выберите причину связи с нами.",ct_dialog_error_relatedurl:"Пожалуйста, введите ссылку размером менее 250 символов.",ct_dialog_error_invalidurl:"Пожалуйста, введите корректную ссылку.",cn_fieldrequired:"Требуется $1.",cn_fieldinvalid:"Некорректно: $1",cn_confirm:"Проверьте всю введенную вами информацию и нажмите ОК.",cn_entrylogin:'Пожалуйста, авторизуйтесь чтобы принять участие в конкурсе, или создайте аккаунт если у вас его еще нет.',cn_entryerror:"Произошла ошибка. Пожалуйста, попробуйте еще раз.",cn_entrywhen:"Вы приняли участие в конкурсе $1.",cn_entrywhen2:"Вы уже приняли участие в конкурсе.",cn_entrysuccess:"Вы приняли участие в конкурсе. Удачи!",cn_entryended:"Это конкурс закончен.",cn_entryupcoming:"Этот конкурс еще не начался. Ожидайте объявления!",cn_entryregion:"Вы не можете принять участие в конкурсе в вашем регионе.",cn_mustbe18:"Вы должны быть не младше 18-ти лет чтобы принять участие в конкурсе.",cn_winnerslist:"Победители",cn_updated:"Обновлено ",ct_resp_error1:"Введенный вами CAPTCHA код неверен. Пожалуйста, повторите попытку.",ct_resp_error2:"Пожалуйста, оставьте исчерпывающее описание, но не слишком длинное.",ct_resp_error3:"Пожалуйста, выберите причину связи с нами.",ct_resp_error7:"Вы уже подали на это жалобу.",compose_mode:"Режим: ",compose_edit:"Редактировать",compose_preview:"Предварительный просмотр",compose_livepreview:"Предпросмотр",compose_save:"Сохранить",compose_cancel:"Отмена",compose_limit:"Не более $1 знаков",compose_limit2:"Не более $1 знаков или $2 строк",compose_remaining:"Осталось символов: $1",user_nodescription:"Пользователь еще не составил публичное описание.",user_nodescription2:"Вы еще не разместили описания.",user_composeone:"Разместите сейчас!",user_editdescription:"Редактировать",myaccount_passmatch:"Пароли совпадают",myaccount_passdontmatch:"Пароли не совпадают",myaccount_purged:"Сброшено",myaccount_purgefailed:"Ошибка сброса :(",myaccount_purgesuccess:"Закрытые объявления успешно сброшены!",
+
+ types: {
+ 1: ["НИП", "НИП" , "НИП", "НИП"],
+ 2: ["Объект", "объект", "Объекты", "объекты"],
+ 3: ["Предмет", "предмет", "Предметы", "предметы"],
+ 4: ["Комплект", "комплект", "Комплекты", "комплекты"],
+ 5: ["Задание", "задание", "Задания", "задание"],
+ 6: ["Заклинание", "заклинание", "Заклинания", "заклинания"],
+ 7: ["Игровая зона", "Игровая зона", "Местности", "местности"],
+ 8: ["Фракция", "фракция", "Фракции", "фракции"],
+ 9: ["Питомец", "питомец", "Питомцы", "питомцы"],
+ 10: ["Достижение", "достижение", "Достижения", "достижения"],
+ 11: ["Звание", "звание", "Звания", "звания"],
+ 12: ["Событие", "игровое событие", "Игровые события", "игровые события"],
+ 13: ["Класс", "класс", "Классы", "классы"],
+ 14: ["Раса", "раса", "Расы", "расы"],
+ 15: ["Уровень навыка", "навык", "Умения", "навыки"],
+ 16: ["Статистика", "характеристика", "Характеристики", "характеристики"],
+ 17: ["Валюта", "валюта", "Валюта", "валюта"]
+ },
+
+ timeunitssg:["год","месяц","неделя","день","час","минута","секунда"],timeunitspl:["годы","месяцы","недели","дн.","часы","мин","секунды"],timeunitsab:["г.","мес.","нед.","дн","ч.","мин","сек."],presets:{pve:"PvE",pvp:"PvP",afflic:"Колдовство",arcane:"Тайная магия",arms:"Оружие (УВС)",assas:"Ликвидация",balance:"Баланс (УВС)",beast:"Повелитель зверей",blooddps:"Кровь (УВС)",bloodtank:"Кровь (Танк)",combat:"Бой",demo:"Демонология",destro:"Разрушение",disc:"Послушание (Исцеление)",elem:"Стихии (УВС)",enhance:"Совершенствование (УВС)",feraldps:"Сила зверя (УВС)",feraltank:"Сила зверя (Танк)",fire:"Огонь",frost:"Лед",frostdps:"Лед (УВС)",frosttank:"Лед (Танк)",fury:"Неистовство (УВС)",generic:"Общий",holy:"Свет (Исцеление)",marks:"Стрельба",prot:"Защита (Танк)",resto:"Исцеление (Исцеление)",retrib:"Воздаяние (УВС)",shadow:"Темная магия (УВС)",subtle:"Скрытность",surv:"Выживание",unholydps:"Нечестивость (УВС)"},
traits:{
agi:["Ловкость","Ловк","Ловк"],
arcres:["Сопротивление тайной магии","к сопр. тайной магии","Сопр"],
@@ -2458,7 +2476,29 @@ var LANG = {
splhitrtng:["Рейтинг меткости заклинаний","Метк. заклинаний","Метк"],
splpen:["Проникающая способность заклинания","к проник. способн.","ПБ"],
sta:["Выносливость","Выно","Выно"],
- str:["Сила","Сила","Сила"]},fishow:"Применить фильтр",fihide:"Убрать фильтр",fiany:"Все",finone:"Нет",firemove:"Удалить",ficlear:"Очистить",fishowdetails:"показать детали",fihidedetails:"скрыть детали",message_fillsomecriteria:"Укажите критерии поиска",tooltip_jconlygems:"Использовать особые драгоценные камни ювелиров
\nдля определения лучших возможных самоцветов.",
+ str:["Сила","Сила","Сила"]
+ },
+
+ fishow: "Применить фильтр",
+ fihide: "Убрать фильтр",
+
+ fiany: "Все",
+ finone: "Нет",
+
+ firemove: "Удалить",
+ ficlear: "Очистить",
+ ficustom: "Свой",
+
+ fishowdetails: "Показать подробности",
+ fihidedetails: "Скрыть подробности",
+ fisavescale: "Сохранить",
+ fideletescale: "Удалить",
+
+ message_fillsomecriteria: "Укажите критерии поиска",
+
+ tooltip_jconlygems:"Использовать особые драгоценные камни ювелиров
\nдля определения лучших возможных самоцветов.",
+ tooltip_genericrating: "На персонаже: Увеличивает $1 на $3 (0 @ L0).
",
+
fidropdowns:{yn:[[1,"Да"],
[2,"Нет"]],num:[[1,">"],
[2,">="],