* moved duplicate utility/dom-functions from global.js to basic.js

- consequentially prepended $WH to those functions (since i do have issues with regEx, some errors may occur)
* simplified including required JS and CSS files per page
* replaced old Menu-class with (almost) current version. Since it relies heavily on jQuery it is also loaded.
This commit is contained in:
Sarjuuk 2013-08-02 15:57:27 +02:00
parent b47be3c14a
commit e834f1aee3
70 changed files with 6122 additions and 5917 deletions

View file

@ -50,13 +50,13 @@ class User
{
self::$id = $userId;
$ipBan = DB::Auth()->SelectRow('SELECT count, unbanDate AS unbanDateIP FROM ?_account_bannedIPs WHERE ip = ?s AND type = 0',
$ipBan = DB::Aowow()->SelectRow('SELECT count, unbanDate AS unbanDateIP FROM ?_account_bannedIPs WHERE ip = ?s AND type = 0',
$_SERVER['REMOTE_ADDR']
);
// explicit " > "; incremented first, checked after
self::$bannedIP = $ipBan && $ipBan['count'] > $GLOBALS['AoWoWconf']['loginFailCount'] && $ipBan['unbanDateIP'] > time();
$query = !$userId ? null : DB::Auth()->SelectRow('
$query = !$userId ? null : DB::Aowow()->SelectRow('
SELECT
a.id, a.authId, a.user, a.passHash, a.displayName, a.email, a.lastIP, a.lastLogin, a.joindate, a.locale, a.avatar, a.description, a.userGroups, a.userPerms, a.timeout,
ab.bannedBy, ab.banReason, ab.isActive, ab.unbanDate
@ -109,7 +109,7 @@ class User
$loc = isset(Util::$localeStrings[$set]) ? $set : 0;
if (self::$id)
{
DB::Auth()->query('UPDATE ?_account SET locale = ? WHERE id = ?',
DB::Aowow()->query('UPDATE ?_account SET locale = ? WHERE id = ?',
$loc,
self::$id
);
@ -175,7 +175,7 @@ class User
// return AUTH_TIMEDOUT;
if (self::$timeout > 0)
DB::Auth()->query('UPDATE ?_account SET timeout = ?d WHERE id = ?d',
DB::Aowow()->query('UPDATE ?_account SET timeout = ?d WHERE id = ?d',
time() + $GLOBALS['AoWoWconf']['sessionTimeout'],
self::$id
);
@ -247,7 +247,7 @@ class User
{
self::$passHash = self::hashCrypt($pass);
DB::Auth()->query('UPDATE ?_account SET passHash = ?s WHERE id = ?d',
DB::Aowow()->query('UPDATE ?_account SET passHash = ?s WHERE id = ?d',
self::$passHash,
self::$id
);

View file

@ -395,13 +395,15 @@ trait spawnHelper
class Lang
{
public static $main;
public static $search;
public static $account;
public static $game;
public static $error;
public static $account;
public static $achievement;
public static $search;
public static $compare;
public static $talent;
public static $achievement;
public static $currency;
public static $event;
public static $item;
@ -411,7 +413,6 @@ class Lang
public static $pet;
public static $quest;
public static $spell;
public static $talent;
public static $title;
public static $zone;
@ -765,7 +766,7 @@ class SmartyAoWoW extends Smarty
case TYPE_CLASS: $jsg[TYPE_CLASS] = ['classes', []]; break;
case TYPE_RACE: $jsg[TYPE_RACE] = ['races', []]; break;
case TYPE_SKILL: $jsg[TYPE_SKILL] = ['skills', []]; break;
case TYPE_CURRENCY: $jsg[TYPE_CURRENCY] = ['curencies', []]; break;
case TYPE_CURRENCY: $jsg[TYPE_CURRENCY] = ['currencies', []]; break;
}
}
@ -970,10 +971,10 @@ class Util
public static $dateFormatLong = "Y/m/d H:i:s";
public static $changeLevelString = '<a href="javascript:;" onmousedown="return false" class="tip" style="color: white; cursor: pointer" onclick="$WH.g_staticTooltipLevelClick(this, null, 0)" onmouseover="$WH.Tooltip.showAtCursor(event, \'<span class=\\\'q2\\\'>\' + LANG.tooltip_changelevel + \'</span>\')" onmousemove="$WH.Tooltip.cursorUpdate(event)" onmouseout="$WH.Tooltip.hide()"><!--lvl-->%s</a>';
public static $setRatingLevelString = '<a href="javascript:;" onmousedown="return false" class="tip" style="color: white; cursor: pointer" onclick="g_setRatingLevel(this, %s, %s, %s)" onmouseover="$WH.Tooltip.showAtCursor(event, \'<span class=\\\'q2\\\'>\' + LANG.tooltip_changelevel + \'</span>\')" onmousemove="$WH.Tooltip.cursorUpdate(event)" onmouseout="$WH.Tooltip.hide()">%s</a>';
public static $setRatingLevelString = '<a href="javascript:;" onmousedown="return false" class="tip" style="color: white; cursor: pointer" onclick="$WH.g_setRatingLevel(this, %s, %s, %s)" onmouseover="$WH.Tooltip.showAtCursor(event, \'<span class=\\\'q2\\\'>\' + LANG.tooltip_changelevel + \'</span>\')" onmousemove="$WH.Tooltip.cursorUpdate(event)" onmouseout="$WH.Tooltip.hide()">%s</a>';
public static $filterResultString = 'sprintf(%s, %s, %s) + LANG.dash + LANG.lvnote_tryfiltering.replace(\'<a>\', \'<a href="javascript:;" onclick="fi_toggle()">\')';
public static $narrowResultString = 'sprintf(%s, %s, %s) + LANG.dash + LANG.lvnote_trynarrowing';
public static $filterResultString = '$WH.sprintf(%s, %s, %s) + LANG.dash + LANG.lvnote_tryfiltering.replace(\'<a>\', \'<a href="javascript:;" onclick="fi_toggle()">\')';
public static $narrowResultString = '$WH.sprintf(%s, %s, %s) + LANG.dash + LANG.lvnote_trynarrowing';
public static $setCriteriaString = "fi_setCriteria(%s, %s, %s);\n";
public static $dfnString = '<dfn title="%s" class="w">%s</dfn>';
@ -1580,6 +1581,8 @@ class Util
'large' => 'style="background-image: url(%s/images/icons/large/%s.jpg)"',
);
public static $tcEncoding = '0zMcmVokRsaqbdrfwihuGINALpTjnyxtgevElBCDFHJKOPQSUWXYZ123456789';
private static $execTime = 0.0;
public static function execTime($set = false)

View file

@ -62,8 +62,9 @@ switch ($pageCall)
else
$smarty->error();
break;
case 'talent': // tool: talent calculator
case 'petcalc': // tool: pet talent calculator
$petCalc = true;
case 'talent': // tool: talent calculator
require 'pages/talent.php';
break;
/* called by script */

View file

@ -39,27 +39,27 @@ function signin()
$remember = $_POST['remember_me'] == 'yes';
// handle login try limitation
$ipBan = DB::Auth()->selectRow('SELECT ip, count, UNIX_TIMESTAMP(unbanDate) as unbanDate FROM ?_account_bannedIPs WHERE type = 0 AND ip = ?s',
$ipBan = DB::Aowow()->selectRow('SELECT ip, count, UNIX_TIMESTAMP(unbanDate) as unbanDate FROM ?_account_bannedIPs WHERE type = 0 AND ip = ?s',
$_SERVER['REMOTE_ADDR']
);
if (!$ipBan) // no entry exists; set count to 1
DB::Auth()->query('INSERT INTO ?_account_bannedIPs VALUES (?s, 0, 1, FROM_UNIXTIME(?))',
DB::Aowow()->query('INSERT INTO ?_account_bannedIPs VALUES (?s, 0, 1, FROM_UNIXTIME(?))',
$_SERVER['REMOTE_ADDR'],
time() + $GLOBALS['AoWoWconf']['loginFailTime']
);
else if ($ipBan['unbanDate'] < time()) // ip has accumulated counts but time expired; reset count to 1
DB::Auth()->query('INSERT IGNORE INTO ?_account_bannedIPs VALUES (?s, 0, 1, ?)',
DB::Aowow()->query('INSERT IGNORE INTO ?_account_bannedIPs VALUES (?s, 0, 1, ?)',
$_SERVER['REMOTE_ADDR'],
time() + $GLOBALS['AoWoWconf']['loginFailTime']
);
else // entry already exists; increment count
DB::Auth()->query('UPDATE ?_account_bannedIPs SET count = count + 1, unbanDate = FROM_UNIXTIME(?) WHERE ip = ?s',
DB::Aowow()->query('UPDATE ?_account_bannedIPs SET count = count + 1, unbanDate = FROM_UNIXTIME(?) WHERE ip = ?s',
time() + $GLOBALS['AoWoWconf']['loginFailTime'],
$_SERVER['REMOTE_ADDR']
);
$id = DB::Auth()->SelectCell('SELECT id FROM ?_account WHERE user = ?',
$id = DB::Aowow()->SelectCell('SELECT id FROM ?_account WHERE user = ?',
Util::sqlEscape($username)
);
@ -71,10 +71,10 @@ function signin()
switch (User::Auth($password))
{
case AUTH_OK:
DB::Auth()->query('DELETE FROM ?_account_bannedIPs WHERE type = 0 AND ip = ?s',
DB::Aowow()->query('DELETE FROM ?_account_bannedIPs WHERE type = 0 AND ip = ?s',
$_SERVER['REMOTE_ADDR']
);
DB::Auth()->query('UPDATE ?_account SET lastLogin = FROM_UNIXTIME(?), timeout = FROM_UNIXTIME(?) WHERE id = ?',
DB::Aowow()->query('UPDATE ?_account SET lastLogin = FROM_UNIXTIME(?), timeout = FROM_UNIXTIME(?) WHERE id = ?',
time(),
$remember ? 0 : time() + $GLOBALS['AoWoWconf']['sessionTimeout'],
$id
@ -247,16 +247,15 @@ function recoverUser()
{
}
$page = array(
$smarty->updatePageVars(array(
'reqCSS' => array(
array('path' => 'template/css/Profiler.css', 'condition' => false),
['path' => 'template/css/Profiler.css'],
),
'reqJS' => array(
array('path' => 'template/js/user.js'),
array('path' => 'template/js/profile.js'),
'reqJS' => array(
'template/js/user.js',
'template/js/profile.js',
),
);
$smarty->updatePageVars($page);
));
$smarty->assign('lang', array_merge(Lang::$main, Lang::$account));

View file

@ -387,6 +387,7 @@ if (!$smarty->loadCache($cacheKeyPage, $pageData))
$smarty->saveCache($cacheKeyPage, $pageData);
}
// menuId 9: Achievement g_initPath()
// tabId 0: Database g_initHeader()
$smarty->updatePageVars(array(
@ -396,7 +397,6 @@ $smarty->updatePageVars(array(
'type' => TYPE_ACHIEVEMENT,
'typeId' => $id
));
$smarty->assign('community', CommunityContent::getAll(TYPE_ACHIEVEMENT, $id)); // comments, screenshots, videos
$smarty->assign('lang', array_merge(Lang::$main, Lang::$game, Lang::$achievement));
$smarty->assign('lvData', $pageData);

View file

@ -101,23 +101,26 @@ if (!$smarty->loadCache($cacheKey, $pageData, $filter))
$smarty->saveCache($cacheKey, $pageData, $filter);
}
$page = array(
'tab' => 0, // for g_initHeader($tab)
'subCat' => $pageParam ? '='.$pageParam : '',
'title' => implode(" - ", $title),
'path' => "[".implode(", ", $path)."]",
'reqJS' => array(
array('path' => 'template/js/filters.js', 'conditional' => false),
),
);
// sort for dropdown-menus
asort(Lang::$game['si']);
$smarty->updatePageVars($page);
// menuId 9: Achievement g_initPath()
// tabId 0: Database g_initHeader()
$smarty->updatePageVars(array(
'title' => implode(" - ", $title),
'path' => "[".implode(", ", $path)."]",
'tab' => 0,
'subCat' => $pageParam ? '='.$pageParam : '',
'reqJS' => array(
'template/js/filters.js'
)
));
$smarty->assign('filter', $filter);
$smarty->assign('lang', array_merge(Lang::$main, Lang::$game, Lang::$achievement));
$smarty->assign('lvData', $pageData);
// load the page
$smarty->display('achievements.tpl');
?>

View file

@ -20,15 +20,17 @@ if (!$smarty->loadCache($cacheKey, $pageData))
}
$page = array(
'tab' => 0, // for g_initHeader($tab)
// menuId 12: Class g_initPath()
// tabId 0: Database g_initHeader()
$smarty->updatePageVars(array(
'title' => Util::ucFirst(Lang::$game['classes']),
'path' => "[0, 12]",
);
$smarty->updatePageVars($page);
'tab' => 0
));
$smarty->assign('lang', Lang::$main);
$smarty->assign('lvData', $pageData);
// load the page
$smarty->display('generic-no-filter.tpl');
?>

View file

@ -53,23 +53,26 @@ if ($compareString)
}
// tabId 1: Tools g_initHeader()
$smarty->updatePageVars(array(
'title' => Lang::$compare['compare'],
'tab' => 1,
'reqCSS' => array(
array('path' => 'template/css/Summary.css', 'condition' => false),
array('path' => 'template/css/Summary_ie6.css', 'condition' => 'lte IE 6'),
['path' => 'template/css/Summary.css'],
['path' => 'template/css/Summary_ie6.css', 'ieCond' => 'lte IE 6'],
),
'reqJS' => array(
array('path' => 'template/js/Draggable.js'),
array('path' => 'template/js/filters.js'),
array('path' => 'template/js/Summary.js'),
array('path' => 'template/js/swfobject.js'),
array('path' => '?data=weight-presets.gems.enchants.itemsets'),
'template/js/Draggable.js',
'template/js/filters.js',
'template/js/Summary.js',
'template/js/swfobject.js',
'?data=weight-presets.gems.enchants.itemsets'
),
));
$smarty->assign('lvData', $pageData);
$smarty->assign('lang', array_merge(Lang::$main, Lang::$compare));
// load the page
$smarty->display('compare.tpl');
?>

View file

@ -35,15 +35,17 @@ if (!$smarty->loadCache($cacheKey, $pageData))
}
$page = array(
'tab' => 0, // for g_initHeader($tab)
// menuId 15: Currency g_initPath()
// tabId 0: Database g_initHeader()
$smarty->updatePageVars(array(
'tab' => 0,
'title' => implode(" - ", $title),
'path' => "[".implode(", ", $path)."]"
);
$smarty->updatePageVars($page);
));
$smarty->assign('lang', Lang::$main);
$smarty->assign('lvData', $pageData);
// load the page
$smarty->display('generic-no-filter.tpl');
?>

View file

@ -78,15 +78,17 @@ foreach ($pageData['data'] as &$data)
}
$page = array(
'tab' => 0, // for g_initHeader($tab)
// menuId 11: Event g_initPath()
// tabId 0: Database g_initHeader()
$smarty->updatePageVars(array(
'title' => implode(" - ", $title),
'path' => "[".implode(", ", $path)."]"
);
$smarty->updatePageVars($page);
'path' => "[".implode(", ", $path)."]",
'tab' => 0
));
$smarty->assign('lang', Lang::$main);
$smarty->assign('lvData', $pageData);
// load the page
$smarty->display('generic-no-filter.tpl');
?>

View file

@ -809,6 +809,7 @@ if (!$smarty->loadCache($cacheKeyPage, $item))
$smarty->saveCache($cacheKeyPage, $pageData);
}
// menuId 0: Item g_initPath()
// tabId 0: Database g_initHeader()
$smarty->updatePageVars(array(
@ -819,7 +820,6 @@ $smarty->updatePageVars(array(
'type' => TYPE_ITEM,
'typeid' => $id
));
$smarty->assign('community', CommunityContent::getAll(TYPE_ITEM, $id)); // comments, screenshots, videos
$smarty->assign('lang', array_merge(Lang::$main, Lang::$game, Lang::$item, ['colon' => Lang::$colon]));
$smarty->assign('lvData', $pageData);

View file

@ -237,22 +237,25 @@ if (!$smarty->loadCache($cacheKeyPage, $pageData))
$smarty->saveCache($cacheKeyPage, $pageData);
}
// menuId 2: Itemset g_initPath()
// tabId 0: Database g_initHeader()
$smarty->updatePageVars(array(
'title' => $pageData['title']." - ".Util::ucfirst(Lang::$game['itemset']),
'path' => json_encode($pageData['path'], JSON_NUMERIC_CHECK),
'tab' => 0, // for g_initHeader($tab)
'type' => TYPE_ITEMSET, // 4:Itemset
'tab' => 0,
'type' => TYPE_ITEMSET,
'typeId' => $id,
'reqJS' => array(
array('path' => 'template/js/Summary.js', 'conditional' => false),
array('path' => 'template/js/swfobject.js', 'conditional' => false)
'template/js/Summary.js',
'template/js/swfobject.js'
)
));
$smarty->assign('community', CommunityContent::getAll(TYPE_ITEMSET, $id)); // comments, screenshots, videos
$smarty->assign('lang', array_merge(Lang::$main, Lang::$itemset));
$smarty->assign('lvData', $pageData);
// load the page
$smarty->display('itemset.tpl');
?>

View file

@ -44,25 +44,27 @@ if (!$smarty->loadCache($cacheKey, $pageData))
}
$page = array(
'tab' => 0, // for g_initHeader($tab)
'subCat' => $pageParam ? '='.$pageParam : '',
'title' => Util::ucFirst(Lang::$game['itemsets']),
'path' => json_encode($path, JSON_NUMERIC_CHECK),
'reqJS' => array(
array('path' => 'template/js/filters.js', 'conditional' => false),
array('path' => '?data=weight-presets', 'conditional' => false),
)
);
// sort for dropdown-menus
asort(Lang::$itemset['notes'], SORT_NATURAL);
asort(Lang::$game['cl']);
$smarty->updatePageVars($page);
// menuId 2: Itemset g_initPath()
// tabId 0: Database g_initHeader()
$smarty->updatePageVars(array(
'title' => Util::ucFirst(Lang::$game['itemsets']),
'path' => json_encode($path, JSON_NUMERIC_CHECK),
'tab' => 0,
'subCat' => $pageParam ? '='.$pageParam : '',
'reqJS' => array(
'template/js/filters.js',
'?data=weight-presets'
)
));
$smarty->assign('filter', $filter);
$smarty->assign('lang', array_merge(Lang::$main, Lang::$game, Lang::$itemset, Lang::$item));
$smarty->assign('lvData', $pageData);
// load the page
$smarty->display('itemsets.tpl');
?>

View file

@ -19,6 +19,8 @@ foreach ($rows as $i => $row)
$smarty->assign('news', isset($rows) ? $rows : NULL);
$smarty->assign('lang', Lang::$main);
// load the page
$smarty->display('main.tpl');
?>

View file

@ -4,24 +4,24 @@ if (!defined('AOWOW_REVISION'))
die('illegal access');
$page = array(
// tabId 1: Tools g_initHeader()
$smarty->updatePageVars(array(
'title' => Lang::$maps['maps'],
'tab' => 1,
'reqCSS' => array(
array('string' => 'zone-picker { margin-left: 4px }'),
array('path' => 'template/css/Mapper.css', 'condition' => false),
array('path' => 'template/css/Mapper_ie6.css', 'condition' => 'lte IE 6'),
['string' => 'zone-picker { margin-left: 4px }'],
['path' => 'template/css/Mapper.css'],
['path' => 'template/css/Mapper_ie6.css', 'ieCond' => 'lte IE 6']
),
'reqJS' => array(
array('path' => 'template/js/maps.js'),
array('path' => 'template/js/Mapper.js'),
array('path' => '?data=zones'),
),
'title' => Lang::$maps['maps'],
'tab' => 1
);
$smarty->updatePageVars($page);
'template/js/maps.js',
'template/js/Mapper.js',
'?data=zones'
)
));
$smarty->assign('lang', array_merge(Lang::$main, Lang::$maps));
// load the page
$smarty->display('maps.tpl');
?>

View file

@ -467,7 +467,8 @@ $rows_qe = $DB->select('
$smarty->saveCache($cacheKeyPage, $pageData);
}
// menuId 4: Npc g_initPath()
// menuId 4: NPC g_initPath()
// tabId 0: Database g_initHeader()
$smarty->updatePageVars(array(
'mapper' => true,
@ -477,7 +478,6 @@ $smarty->updatePageVars(array(
'type' => TYPE_NPC,
'typeId' => $id
));
$smarty->assign('community', CommunityContent::getAll(TYPE_NPC, $id)); // comments, screenshots, videos
$smarty->assign('lang', array_merge(Lang::$main, Lang::$game, Lang::$npc, ['colon' => Lang::$colon]));
$smarty->assign('lvData', $pageData);

View file

@ -6,9 +6,7 @@ if (!defined('AOWOW_REVISION'))
require 'includes/class.community.php';
$id = intVal($pageParam);
$petCalc = '0zMcmVokRsaqbdrfwihuGINALpTjnyxtgevElBCDFHJKOPQSUWXYZ123456789';
$id = intVal($pageParam);
$cacheKeyPage = implode('_', [CACHETYPE_PAGE, TYPE_PET, $id, -1, User::$localeId]);
@ -34,7 +32,7 @@ if (!$smarty->loadCache($cacheKeyPage, $pageData))
'title' => $pet->getField('name', true),
'path' => '[0, 8, '.$pet->getField('type').']',
'page' => array(
'petCalc' => $petCalc[(int)($id / 10)] . $petCalc[(2 * ($id % 10) + ($pet->getField('exotic') ? 1 : 0))],
'petCalc' => Util::$tcEncoding[(int)($id / 10)] . Util::$tcEncoding[(2 * ($id % 10) + ($pet->getField('exotic') ? 1 : 0))],
'name' => $pet->getField('name', true),
'id' => $id,
'icon' => $pet->getField('iconString'),
@ -165,21 +163,24 @@ if (!$smarty->loadCache($cacheKeyPage, $pageData))
$smarty->saveCache($cacheKeyPage, $pageData);
}
// menuId 8: Pets g_initPath()
// tabid 0: Database g_initHeader()
$smarty->updatePageVars(array(
'title' => $pageData['title']." - ".Util::ucfirst(Lang::$game['pet']),
'path' => $pageData['path'],
'tab' => 0, // for g_initHeader($tab)
'type' => TYPE_PET, // 9:Pets
'tab' => 0,
'type' => TYPE_PET,
'typeId' => $id,
'reqJS' => array(
array('path' => 'template/js/swfobject.js')
'template/js/swfobject.js'
)
));
$smarty->assign('community', CommunityContent::getAll(TYPE_PET, $id)); // comments, screenshots, videos
$smarty->assign('lang', array_merge(Lang::$main, Lang::$game));
$smarty->assign('lvData', $pageData);
// load the page
$smarty->display('pet.tpl');
?>

View file

@ -40,15 +40,17 @@ if (!$smarty->loadCache($cacheKey, $pageData))
}
$page = array(
'tab' => 0, // for g_initHeader($tab)
// menuId 8: Pets g_initPath()
// tabid 0: Database g_initHeader()
$smarty->updatePageVars(array(
'title' => implode(" - ", $title),
'path' => "[".implode(", ", $path)."]"
);
$smarty->updatePageVars($page);
'path' => "[".implode(", ", $path)."]",
'tab' => 0
));
$smarty->assign('lang', Lang::$main);
$smarty->assign('lvData', $pageData);
// load the page
$smarty->display('generic-no-filter.tpl');
?>

View file

@ -599,6 +599,7 @@ if (!$smarty->loadCache($cacheKeyPage, $pageData))
$smarty->saveCache($cacheKeyPage, $pageData);
}
// menuId 3: Quest g_initPath()
// tabId 0: Database g_initHeader()
$smarty->updatePageVars(array(

View file

@ -20,15 +20,17 @@ if (!$smarty->loadCache($cacheKey, $pageData))
}
$page = array(
'tab' => 0, // for g_initHeader($tab)
// menuId 13: Race g_initPath()
// tabId 0: Database g_initHeader()
$smarty->updatePageVars(array(
'title' => Util::ucFirst(Lang::$game['races']),
'path' => "[0, 13]",
);
$smarty->updatePageVars($page);
'tab' => 0
));
$smarty->assign('lang', Lang::$main);
$smarty->assign('lvData', $pageData);
// load the page
$smarty->display('generic-no-filter.tpl');
?>

View file

@ -921,6 +921,7 @@ if (!$smarty->loadCache($cacheKeyPage, $pageData))
$smarty->saveCache($cacheKeyPage, $pageData);
}
// menuId 1: Spell g_initPath()
// tabId 0: Database g_initHeader()
$smarty->updatePageVars(array(
@ -929,11 +930,10 @@ $smarty->updatePageVars(array(
'tab' => 0,
'type' => TYPE_SPELL,
'typeId' => $id,
'reqJS' => array (
array('path' => 'template/js/swfobject.js')
'reqJS' => array(
'template/js/swfobject.js'
)
));
$smarty->assign('community', CommunityContent::getAll(TYPE_SPELL, $id)); // comments, screenshots, videos
$smarty->assign('lang', array_merge(Lang::$main, Lang::$game, Lang::$spell, ['colon' => Lang::$colon]));
$smarty->assign('lvData', $pageData);

View file

@ -424,15 +424,6 @@ if (isset($filter['gl']) && !is_array($filter['gl']))
$path[] = $filter['gl'];
}
$page = array(
'tab' => 0, // for g_initHeader($tab)
'subCat' => $pageParam !== null ? '='.$pageParam : '',
'title' => implode(" - ", $title),
'path' => "[".implode(", ", $path)."]",
'reqJS' => array(
array('path' => 'template/js/filters.js', 'conditional' => false),
),
);
// sort for dropdown-menus
asort(Lang::$game['ra']);
@ -441,10 +432,22 @@ asort(Lang::$game['sc']);
asort(Lang::$game['me']);
Lang::$game['race'] = Util::ucFirst(Lang::$game['race']);
$smarty->updatePageVars($page);
// menuId 1: Spell g_initPath()
// tabId 0: Database g_initHeader()
$smarty->updatePageVars(array(
'title' => implode(" - ", $title),
'path' => "[".implode(", ", $path)."]",
'tab' => 0,
'subCat' => $pageParam !== null ? '='.$pageParam : '',
'reqJS' => array(
'template/js/filters.js'
)
));
$smarty->assign('filter', $filter);
$smarty->assign('lang', array_merge(Lang::$main, Lang::$game, Lang::$achievement));
$smarty->assign('lvData', $pageData);
// load the page
$smarty->display('spells.tpl');
?>

View file

@ -4,37 +4,31 @@ if (!defined('AOWOW_REVISION'))
die('illegal access');
$petCalc = $pageCall == 'petcalc';
if (!isset($petCalc))
$petCalc = false;
$page = array(
// tabId 1: Tools g_initHeader()
$smarty->updatePageVars(array(
'title' => $petCalc ? Lang::$talent['petCalc'] : Lang::$talent['talentCalc'],
'tab' => 1,
'reqCSS' => array(
array('path' => 'template/css/TalentCalc.css', 'condition' => false),
array('path' => 'template/css/talent.css', 'condition' => false),
array('path' => 'template/css/TalentCalc_ie6.css', 'condition' => 'lte IE 6'),
array('path' => 'template/css/TalentCalc_ie67.css', 'condition' => 'lte IE 7')
['path' => 'template/css/TalentCalc.css'],
['path' => 'template/css/talent.css'],
['path' => 'template/css/TalentCalc_ie6.css', 'ieCond' => 'lte IE 6'],
['path' => 'template/css/TalentCalc_ie67.css', 'ieCond' => 'lte IE 7'],
$petCalc ? ['path' => 'template/css/petcalc.css'] : null
),
'reqJS' => array(
array('path' => '?data=glyphs'),
array('path' => 'template/js/talent.js'),
array('path' => 'template/js/TalentCalc.js')
),
'title' => Lang::$talent['talentCalc'],
'tab' => 1,
);
if ($petCalc)
{
$page['reqCSS'][] = array('path' => 'template/css/petcalc.css', 'condition' => false);
$page['reqJS'][0] = array('path' => '?data=pet-talents.pets');
$page['reqJS'][1] = array('path' => 'template/js/petcalc.js');
$page['reqJS'][] = array('path' => 'template/js/swfobject.js');
$page['title'] = Lang::$talent['petCalc'];
}
$smarty->updatePageVars($page);
'template/js/TalentCalc.js',
$petCalc ? '?data=pet-talents.pets' : '?data=glyphs',
$petCalc ? 'template/js/petcalc.js' : 'template/js/talent.js',
$petCalc ? 'template/js/swfobject.js' : null
)
));
$smarty->assign('tcType', $petCalc ? 'pc' : 'tc');
$smarty->assign('lang', array_merge(Lang::$main, Lang::$talent));
// load the page
$smarty->display('talent.tpl');
?>

View file

@ -83,18 +83,21 @@ if (!$smarty->loadCache($cacheKeyPage, $pageData))
$smarty->saveCache($cacheKeyPage, $pageData);
}
// menuId 10: Title g_initPath()
// tabId 0: Database g_initHeader()
$smarty->updatePageVars(array(
'title' => $pageData['title']." - ".Util::ucfirst(Lang::$game['title']),
'path' => $pageData['path'],
'tab' => 0, // for g_initHeader($tab)
'type' => TYPE_TITLE, // 11:Titles
'tab' => 0,
'type' => TYPE_TITLE,
'typeId' => $id
));
$smarty->assign('community', CommunityContent::getAll(TYPE_TITLE, $id)); // comments, screenshots, videos
$smarty->assign('lang', array_merge(Lang::$main));
$smarty->assign('lvData', $pageData);
// load the page
$smarty->display('title.tpl');
?>

View file

@ -38,15 +38,17 @@ if (!$smarty->loadCache($cacheKey, $pageData))
}
$page = array(
'tab' => 0, // for g_initHeader($tab)
// menuId 10: Title g_initPath()
// tabId 0: Database g_initHeader()
$smarty->updatePageVars(array(
'title' => implode(" - ", $title),
'path' => "[".implode(", ", $path)."]"
);
$smarty->updatePageVars($page);
'path' => "[".implode(", ", $path)."]",
'tab' => 0
));
$smarty->assign('lang', Lang::$main);
$smarty->assign('lvData', $pageData);
// load the page
$smarty->display('generic-no-filter.tpl');
?>

View file

@ -122,23 +122,26 @@ if (!$smarty->loadCache($cacheKey, $pageData))
$smarty->saveCache($cacheKey, $pageData);
}
$page = array(
'tab' => 0, // for g_initHeader($tab)
// menuId 6: Zone g_initPath()
// tabId 0: Database g_initHeader()
$smarty->updatePageVars(array(
'title' => implode(' - ', $title),
'path' => json_encode($path, JSON_NUMERIC_CHECK),
'reqJS' => array(
array('path' => 'template/js/Mapper.js', 'conditional' => false),
array('path' => 'template/js/ShowOnMap.js', 'conditional' => false),
),
'tab' => 0,
'reqCSS' => array(
array('path' => 'template/css/Mapper.css', 'condition' => false),
array('path' => 'template/css/Mapper_ie6.css', 'condition' => 'lte IE 6'),
['path' => 'template/css/Mapper.css'],
['path' => 'template/css/Mapper_ie6.css', 'ieCond' => 'lte IE 6']
),
);
$smarty->updatePageVars($page);
'reqJS' => array(
'template/js/Mapper.js',
'template/js/ShowOnMap.js'
)
));
$smarty->assign('lang', Lang::$main);
$smarty->assign('lvData', $pageData);
// load the page
$smarty->display('generic-no-filter.tpl');
?>

View file

@ -63,12 +63,12 @@ if (typeof $WowheadPower == "undefined") {
achievementcomplete: "Achievement earned by $1 on $2/$3/$4"
},
LOOKUPS = {
1 : [npcs, "npc", "NPC"],
2 : [objects, "object", "Object"],
3 : [items, "item", "Item"],
5 : [quests, "quest", "Quest"],
6 : [spells, "spell", "Spell"],
10 : [achievements, "achievement", "Achievement"],
1 : [npcs, "npc", "NPC"],
2 : [objects, "object", "Object"],
3 : [items, "item", "Item"],
5 : [quests, "quest", "Quest"],
6 : [spells, "spell", "Spell"],
10 : [achievements, "achievement", "Achievement"],
100 : [profiles, "profile", "Profile"]
},
LOCALES = {
@ -76,8 +76,7 @@ if (typeof $WowheadPower == "undefined") {
2 : "frfr",
3 : "dede",
6 : "eses",
8 : "ruru",
25 : "ptr"
8 : "ruru"
},
REDIRECTS = {
wotlk: "www",
@ -455,7 +454,7 @@ if (typeof $WowheadPower == "undefined") {
// custom start
if ($WH.gc('compare_level') && window.location.href.match(/\?compare/i)) {
html = $WH.g_setTooltipItemLevel(html, gc('compare_level'));
html = $WH.g_setTooltipItemLevel(html, $WH.gc('compare_level'));
}
// custom end

View file

@ -1020,13 +1020,15 @@ else /* if ($searchMask & SEARCH_TYPE_REGULAR) */
die();
}
$vars = array(
'title' => $search.' - '.Lang::$search['search'],
'tab' => 0, // tabId 0: Database for g_initHeader($tab)
'reqJS' => [array('path' => 'template/js/swfobject.js', 'conditional' => false)]
);
$smarty->updatePageVars($vars);
// tabId 0: Database g_initHeader()
$smarty->updatePageVars(array(
'title' => $search.' - '.Lang::$search['search'],
'tab' => 0,
'reqJS' => array(
'template/js/swfobject.js'
)
));
$smarty->assign('lang', array_merge(Lang::$main, Lang::$search));
$smarty->assign('found', $found);
$smarty->assign('lvData', $jsGlobals);

View file

@ -64,7 +64,7 @@
<div id="h1-icon-generic" class="h1-icon"></div>
<script type="text/javascript">//<![CDATA[
ge('h1-icon-generic').appendChild(Icon.create('{$lvData.page.iconname|escape:"javascript"}', 1));
$WH.ge('h1-icon-generic').appendChild(Icon.create('{$lvData.page.iconname|escape:"javascript"}', 1));
//]]></script>
<a href="javascript:;" id="open-links-button" class="button-red" onclick="this.blur(); Links.show({ldelim} type: 10, typeId: {$lvData.page.id}, linkColor: 'ffffff00', linkId: '{$lvData.page.id}:&quot;..UnitGUID(&quot;player&quot;)..&quot;:0:0:0:0:0:0:0:0', linkName: '{$lvData.page.name|escape:'javascript'}' {rdelim});"><em><b><i>{$lang.links}</i></b><span>{$lang.links}</span></em></a>
@ -108,7 +108,7 @@
<script type="text/javascript">//<![CDATA[
{foreach from=$lvData.page.icons item=ic}
ge('iconlist-icon{$ic.itr}').appendChild({$ic.type}.createIcon({$ic.id}, 0, {if isset($ic.count) && $ic.count > 0}{$ic.count}{else}0{/if}));
$WH.ge('iconlist-icon{$ic.itr}').appendChild({$ic.type}.createIcon({$ic.id}, 0, {if isset($ic.count) && $ic.count > 0}{$ic.count}{else}0{/if}));
{/foreach}
//]]></script>
@ -124,7 +124,7 @@
{/foreach}
<script type="text/javascript">//<![CDATA[
{foreach from=$lvData.page.itemReward item=i name=item key=id}
ge('icontab-icon{$smarty.foreach.item.index}').appendChild(g_items.createIcon({$id}, 1, 1));
$WH.ge('icontab-icon{$smarty.foreach.item.index}').appendChild(g_items.createIcon({$id}, 1, 1));
{/foreach}
//]]></script>
</tr>
@ -148,7 +148,7 @@
<div id="tabs-generic"></div>
<div id="listview-generic" class="listview"></div>
<script type="text/javascript">//<![CDATA[
var tabsRelated = new Tabs({ldelim}parent: ge('tabs-generic'){rdelim});
var tabsRelated = new Tabs({ldelim}parent: $WH.ge('tabs-generic'){rdelim});
{if $lvData.page.saData} {include file='bricks/listviews/achievement.tpl' data=$lvData.page.saData params=$lvData.page.saParams}{/if}
{if isset($lvData.page.coData)} {include file='bricks/listviews/achievement.tpl' data=$lvData.page.coData params=$lvData.page.coParams}{/if}
new Listview({ldelim}template: 'comment', id: 'comments', name: LANG.tab_comments, tabs: tabsRelated, parent: 'listview-generic', data: lv_comments{rdelim});

View file

@ -12,7 +12,9 @@
<script type="text/javascript">
g_initPath({$page.path}, {if empty($filter.query)} 0 {else} 1 {/if});
{if isset($filter.query)}Menu.append(mn_database[1], '&filter={$filter.query|escape:'quotes'}'); // todo: menu order varies per locale{/if}
{if isset($filter.query)}
Menu.modifyUrl(Menu.findItem(mn_database, [9]), {ldelim} filter: '+={$filter.query|escape:'quotes'}' {rdelim}, {ldelim} onAppendCollision: fi_mergeFilterParams, onAppendEmpty: fi_setFilterParams, menuUrl: Menu.getItemUrl(Menu.findItem(mn_database, [9])) {rdelim});
{/if}
</script>
<div id="fi" style="display:{if empty($filter.query)}none{else}block{/if};">

View file

@ -16,7 +16,7 @@
<div class="pad"></div>
</div>
<div id="funcbox-generic"></div>
<script type="text/javascript">Listview.funcBox.coEditAppend(ge('funcbox-generic'), {ldelim}body: ''{rdelim}, 1)</script>
<script type="text/javascript">Listview.funcBox.coEditAppend($WH.ge('funcbox-generic'), {ldelim}body: ''{rdelim}, 1)</script>
<div class="pad"></div>
<input type="submit" value="Submit"></input>
<input type="hidden" name="replyto" value=""></input>

View file

@ -16,7 +16,7 @@
<div class="pad"></div>
</div>
<div id="funcbox-generic"></div>
<script type="text/javascript">Listview.funcBox.coEditAppend(ge('funcbox-generic'), {ldelim}body: ''{rdelim}, 1)</script>
<script type="text/javascript">Listview.funcBox.coEditAppend($WH.ge('funcbox-generic'), {ldelim}body: ''{rdelim}, 1)</script>
<div class="pad"></div>
<input type="submit" value="Submit"></input>
<input type="hidden" name="replyto" value=""></input>

View file

@ -16,7 +16,7 @@
<div class="pad"></div>
</div>
<div id="funcbox-generic"></div>
<script type="text/javascript">Listview.funcBox.coEditAppend(ge('funcbox-generic'), {ldelim}body: ''{rdelim}, 1)</script>
<script type="text/javascript">Listview.funcBox.coEditAppend($WH.ge('funcbox-generic'), {ldelim}body: ''{rdelim}, 1)</script>
<div class="pad"></div>
<input type="submit" value="Absenden"></input>
<input type="hidden" name="replyto" value=""></input>

View file

@ -16,7 +16,7 @@
<div class="pad"></div>
</div>
<div id="funcbox-generic"></div>
<script type="text/javascript">Listview.funcBox.coEditAppend(ge('funcbox-generic'), {ldelim}body: ''{rdelim}, 1)</script>
<script type="text/javascript">Listview.funcBox.coEditAppend($WH.ge('funcbox-generic'), {ldelim}body: ''{rdelim}, 1)</script>
<div class="pad"></div>
<input type="submit" value="Submit"></input>
<input type="hidden" name="replyto" value=""></input>

View file

@ -16,7 +16,7 @@
<div class="pad"></div>
</div>
<div id="funcbox-generic"></div>
<script type="text/javascript">Listview.funcBox.coEditAppend(ge('funcbox-generic'), {ldelim}body: ''{rdelim}, 1)</script>
<script type="text/javascript">Listview.funcBox.coEditAppend($WH.ge('funcbox-generic'), {ldelim}body: ''{rdelim}, 1)</script>
<div class="pad"></div>
<input type="submit" value="Submit"></input>
<input type="hidden" name="replyto" value=""></input>

View file

@ -8,7 +8,7 @@
</div>
</div>
<script type="text/javascript">
var tabsContribute = new Tabs({ldelim}parent: ge('tabs-contribute-generic'){rdelim});
var tabsContribute = new Tabs({ldelim}parent: $WH.ge('tabs-contribute-generic'){rdelim});
tabsContribute.add(LANG.tab_addyourcomment, {ldelim}id: 'add-your-comment'{rdelim});
tabsContribute.add(LANG.tab_submitascreenshot, {ldelim}id: 'submit-a-screenshot'{rdelim});
if(g_user && g_user.roles & (U_GROUP_ADMIN | U_GROUP_BUREAU | U_GROUP_VIDEO))

View file

@ -473,22 +473,6 @@ a#toptabs-menu-language
font-size: 13px;
}
.menu-buttons a
{
text-decoration: none;
color: white;
padding: 3px 8px;
border: 1px solid #383838;
font-size: 13px;
white-space: nowrap;
}
.menu-buttons a.open
{
background-color: #484848;
border: 1px solid #282828;
}
#morelink
{
padding: 3px 0 3px 8px;
@ -731,102 +715,150 @@ span.breadcrumb-ellipsis {
margin: 0 0 5px;
}
.menu
{
position: absolute;
z-index: 100000002;
/********/
/* MENU */
/********/
.menu {
position: absolute;
z-index: 100000002;
}
.menu table td
{
padding: 0;
vertical-align: top;
.menu .menu-outer {
float: left;
border: 1px solid #181818;
-webkit-box-shadow: 1px 1px 5px black;
-moz-box-shadow: 1px 1px 5px black;
box-shadow: 1px 1px 5px black;
}
.menu p
{
margin: 0;
padding: 0;
position: relative;
.menu .menu-inner {
border: 2px solid #484848;
border-top: 1px solid #484848;
}
.menu div
{
border: 1px solid #202020;
.menu a {
display: block;
padding: 4px 4px 4px 24px;
text-decoration: none;
border-top: 1px solid #484848;
border-bottom: 1px solid #101010;
white-space: nowrap;
font-size: 13px;
}
.menu div div
{
border: 2px solid #484848;
border-top: 1px solid #484848;
white-space: nowrap;
font-size: 13px;
.menu a span {
display: block;
padding-right: 20px;
}
.menu span
{
display: block;
padding: 0 18px 0 0;
.menu a span.hassubmenu {
background: url(../images/Menu/arrow-right.gif) right center no-repeat;
}
.menu span span
{
padding: 0 0 0 18px;
.menu a, .menu a span { /* Setting the background color on both the <a> and the <span> so the hover effect works in IE7 */
background-color: #282828;
}
.menu span.separator
{
padding: 4px 9px;
background: #141414;
border-top: 1px solid #484848;
font-weight: bold;
cursor: default;
.menu a.open, .menu a:hover, .menu a.open span, .menu a:hover span {
background-color: #383838;
}
.menu a
{
display: block;
padding: 4px;
text-decoration: none;
background-color: #282828;
border-top: 1px solid #484848;
border-bottom: 1px solid #101010;
.menu a.open, .menu a:hover {
border-bottom: 1px solid #202020;
}
.menu a.open, .menu a:hover
{
border-bottom: 1px solid #202020;
background-color: #383838;
.menu a.separator {
color: white;
font-weight: bold;
padding: 4px 8px;
background-color: #181818;
}
.menu a.input:hover
{
background-color: #282828;
border-bottom: 1px solid #101010;
cursor: default;
.menu a.separator:hover {
text-decoration: underline;
background-color: #181818;
border-bottom: 1px solid #101010;
}
.menucheck
{
background: url(../images/menu_check.gif) left center no-repeat;
.menu a.unlinked {
text-decoration: none !important;
cursor: default;
}
.menusub
{
background: url(../images/menu_arrow.gif) right center no-repeat;
.menu a.checked {
background-image: url(../images/Menu/check.gif);
background-position: 9px center;
background-repeat: no-repeat;
}
.menu a.icon, .menu a.tinyicon {
background-position: 4px center;
background-repeat: no-repeat;
padding-left: 24px;
}
.menu a.socket-meta, .menu a.socket-red, .menu a.socket-yellow, .menu a.socket-blue, .menu a.socket-prismatic, .menu a.socket-hydraulic, .menu a.socket-cogwheel {
background-position: 5px center;
}
.menu a.icon-star-right span
{
padding-right: 21px;
background: url(../images/icons/star.png) no-repeat right center;
}
/****************/
/* MENU BUTTONS */
/****************/
.menu-buttons {
padding: 4px 0 0 5px;
}
span.menu-buttons a {
text-decoration: none;
color: white;
padding: 4px 11px;
font-size: 13px;
white-space: nowrap;
}
span.menu-buttons a:hover {
text-decoration: underline;
}
span.menu-buttons a.open {
background-color: #484848;
padding: 3px 10px;
border: 1px solid #282828;
}
span.menu-buttons a.unlinked {
text-decoration: none !important;
cursor: default;
}
span.menu-buttons span.hassubmenu {
padding-right: 13px;
background: url(../images/Menu/arrow-down.gif) right center no-repeat;
}
/* start note: remove with breadcrumbs */
.menuarrow
{
padding-right: 16px;
background: url(../images/menu_arrow.gif) right center no-repeat;
background: url(../images/Menu/arrow-right.gif) right center no-repeat;
}
.menuarrowd
{
padding-right: 11px;
background: url(../images/menu_arrowd.gif) right center no-repeat;
background: url(../images/Menu/arrow-down.gif) right center no-repeat;
}
/* end note */
.tabs li
{

View file

@ -11,23 +11,22 @@
{foreach from=$page.reqCSS item=css}
{if isset($css.string)}
<style type="text/css">{$css.string}</style>
{else}
{if $css.condition}<!--[if {$css.condition}]>{/if}<link rel="stylesheet" type="text/css" href="{$css.path}?{$AOWOW_REVISION}" />{if $css.condition}<![endif]-->{/if}
{else}
{if isset($css.ieCond)}<!--[if {$css.ieCond}]>{/if}<link rel="stylesheet" type="text/css" href="{$css.path}?{$AOWOW_REVISION}" />{if isset($css.ieCond)}<![endif]-->{/if}
{/if}
{/foreach}
<script type="text/javascript">
var g_serverTime = new Date('{$smarty.now|date_format:"%Y/%m/%d %H:%M:%S"}');
var g_staticUrl = "{$smarty.const.STATIC_URL}";
</script>
<script src="template/js/jquery-1.4.2.min.js" type="text/javascript"></script>
<script src="template/js/basic.js?{$AOWOW_REVISION}" type="text/javascript"></script>
<script src="power/aowowPower.js?lang={$user.language|substr:2}" type="text/javascript"></script>
<script src="template/js/locale_{$user.language}.js?{$AOWOW_REVISION}" type="text/javascript"></script>
<script src="template/js/global.js?{$AOWOW_REVISION}" type="text/javascript"></script>
<script src="template/js/Markup.js?{$AOWOW_REVISION}" type="text/javascript"></script>
{foreach from=$page.reqJS item=file}
<script src="{$file.path}{*?$AOWOW_REVISION*}" type="text/javascript"></script>
<script src="{$file}{*?$AOWOW_REVISION*}" type="text/javascript"></script>
{/foreach}
<script type="text/javascript">
var g_locale = {ldelim} id:{$user.locale}, name:'{$user.language}' {rdelim};

View file

@ -30,7 +30,7 @@
<div id="topbar"><span id="topbar-generic" class="menu-buttons"></span><div class="clear"></div></div>
{strip}<script type="text/javascript">
g_initHeader({$page.tab});
LiveSearch.attach(ge('livesearch-generic'));
LiveSearch.attach($WH.ge('livesearch-generic'));
{foreach from=$jsGlobals item="glob"}
{include file="bricks/globals/`$glob[0]`.tpl" data=$glob[1]}
{/foreach}

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 B

View file

Before

Width:  |  Height:  |  Size: 61 B

After

Width:  |  Height:  |  Size: 61 B

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 B

View file

@ -43,7 +43,7 @@
<script type="text/javascript">//<![CDATA[
{section name=i loop=$lvData.pieces}
ge('iconlist-icon{$smarty.section.i.index + 1}').appendChild(g_items.createIcon({$lvData.pieces[i].id}, 0, 0));
$WH.ge('iconlist-icon{$smarty.section.i.index + 1}').appendChild(g_items.createIcon({$lvData.pieces[i].id}, 0, 0));
{/section}
//]]></script>
@ -73,7 +73,7 @@
<div id="tabs-generic"></div>
<div id="listview-generic" class="listview"></div>
<script type="text/javascript">//<![CDATA[
var tabsRelated = new Tabs({ldelim}parent: ge('tabs-generic'){rdelim});
var tabsRelated = new Tabs({ldelim}parent: $WH.ge('tabs-generic'){rdelim});
{if !empty($lvData.related)} {include file='bricks/listviews/itemset.tpl' data=$lvData.related.data params=$lvData.related.params} {/if}
new Listview({ldelim}template: 'comment', id: 'comments', name: LANG.tab_comments, tabs: tabsRelated, parent: 'listview-generic', data: lv_comments{rdelim});
new Listview({ldelim}template: 'screenshot', id: 'screenshots', name: LANG.tab_screenshots, tabs: tabsRelated, parent: 'listview-generic', data: lv_screenshots{rdelim});

View file

@ -18,7 +18,7 @@
<div id="fi" style="display:{if empty($filter.query)}none{else}block{/if};">
<form action="?itemsets&filter" method="post" name="fi" onsubmit="return fi_submit(this)" onreset="return fi_reset(this)">
<div class="rightpanel">
<div style="float: left">Quality: </div><small><a href="javascript:;" onclick="document.forms['fi'].elements['qu[]'].selectedIndex = -1; return false" onmousedown="return false">clear</a></small>
<div style="float: left">Quality: </div><small><a href="javascript:;" onclick="document.forms['fi'].elements['qu[]'].selectedIndex = -1; return false" onmousedown="return false">{$lang.clear}</a></small>
<div class="clear"></div>
<select name="qu[]" size="7" multiple="multiple" class="rightselect" style="background-color: #181818">
{foreach from=$lang.quality key=i item=str}{if $str}
@ -28,7 +28,7 @@
</div>
<div class="rightpanel2">
<div style="float: left">Type: </div><small><a href="javascript:;" onclick="document.forms['fi'].elements['ty[]'].selectedIndex = -1; return false" onmousedown="return false">clear</a></small>
<div style="float: left">Type: </div><small><a href="javascript:;" onclick="document.forms['fi'].elements['ty[]'].selectedIndex = -1; return false" onmousedown="return false">{$lang.clear}</a></small>
<div class="clear"></div>
<select name="ty[]" size="7" multiple="multiple" class="rightselect">
{foreach from=$lang.types key=i item=str}{if $str}

View file

@ -6,7 +6,7 @@ var Draggable = new function () {
dragObj;
function onMouseDown(e) {
e = $E(e);
e = $WH.$E(e);
if (this._handle) {
var _ = e._target,
@ -30,10 +30,10 @@ var Draggable = new function () {
clickObj = this;
start = g_getCursorPos(e);
start = $WH.g_getCursorPos(e);
aE(document, 'mousemove', onMouseMove);
aE(document, 'mouseup', onMouseUp);
$WH.aE(document, 'mousemove', onMouseMove);
$WH.aE(document, 'mouseup', onMouseUp);
if (clickObj.onClick) {
clickObj.onClick(e, clickObj);
@ -43,9 +43,9 @@ var Draggable = new function () {
}
function onMouseMove(e) {
e = $E(e);
e = $WH.$E(e);
var pos = g_getCursorPos(e);
var pos = $WH.g_getCursorPos(e);
if (clickObj) {
if (Math.abs(pos.x - start.x) > 5 || Math.abs(pos.y - start.y) > 5) {
@ -72,7 +72,7 @@ var Draggable = new function () {
}
function onMouseUp(e) {
e = $E(e);
e = $WH.$E(e);
clickObj = null;
@ -86,7 +86,7 @@ var Draggable = new function () {
onDragEnd(e);
}
var foo = ac(obj);
var foo = $WH.ac(obj);
mouse.x = foo[0];
mouse.y = foo[1];
@ -94,8 +94,8 @@ var Draggable = new function () {
dragObj = obj.cloneNode(true);
dragObj._orig = obj;
ae(ge('layers'), dragObj);
// ae(document.body, dragObj); // 5.0.. why does it do that?
$WH.ae($WH.ge('layers'), dragObj);
// $WH.ae(document.body, dragObj); // 5.0.. why does it do that?
setPosition(-2323, -2323);
}
else {
@ -116,7 +116,7 @@ var Draggable = new function () {
function onDragEnd(e) {
var
found = false,
cursor = g_getCursorPos(e);
cursor = $WH.g_getCursorPos(e);
if (dragObj._orig && dragObj._orig._targets.length) {
clearPosition();
@ -128,7 +128,7 @@ var Draggable = new function () {
y2: dragObj._y + parseInt(dragObj.offsetHeight)
};
de(dragObj);
$WH.de(dragObj);
dragObj = dragObj._orig;
for (var i = 0, len = dragObj._targets.length; i < len; ++i) {
@ -141,7 +141,7 @@ var Draggable = new function () {
dragObj.onDrop(e, dragObj, targObj, (cursor.x >= bounds.x1 && cursor.x <= bounds.x2 && cursor.y >= bounds.y1 && cursor.y <= bounds.y2));
}
else {
ae(targObj, dragObj);
$WH.ae(targObj, dragObj);
}
}
}
@ -151,8 +151,8 @@ var Draggable = new function () {
dragObj.onDrop(e, dragObj, null);
}
dE(document, 'mousemove', onMouseMove);
dE(document, 'mouseup', onMouseUp);
$WH.dE(document, 'mousemove', onMouseMove);
$WH.dE(document, 'mouseup', onMouseUp);
Tooltip.disabled = false;
@ -175,7 +175,7 @@ var Draggable = new function () {
}
function getBounds(obj) {
var pos = ac(obj);
var pos = $WH.ac(obj);
return {
x1: pos[0],
@ -190,7 +190,7 @@ var Draggable = new function () {
var a = obj.getElementsByTagName('a');
for (var i = 0, len = a.length; i < len; ++i) {
ns(a[i]);
$WH.ns(a[i]);
}
if (!obj._targets) {
@ -204,12 +204,12 @@ var Draggable = new function () {
if (opt != null) {
if (opt.targets) {
for (var i = 0, len = opt.targets.length; i < len; ++i) {
obj._targets.push(ge(opt.targets[i]));
obj._targets.push($WH.ge(opt.targets[i]));
}
}
if (opt.container) {
obj._container = $(opt.container);
obj._container = $WH.ge(opt.container);
}
// Functions

View file

@ -1,8 +1,8 @@
function Mapper(opt, noScroll) {
cO(this, opt);
$WH.cO(this, opt);
if(this.parent && !this.parent.nodeName) {
this.parent = ge(this.parent);
this.parent = $WH.ge(this.parent);
}
else if(!this.parent) {
return;
@ -44,21 +44,21 @@ function Mapper(opt, noScroll) {
this.tempHeight = null;
this.parent.className = 'mapper';
this.parent.appendChild(this.span = ce('span'));
this.parent.appendChild(this.span = $WH.ce('span'));
_ = this.span.style;
_.display = 'block';
_.position = 'relative';
ns(this.span);
$WH.ns(this.span);
this.overlaySpan = _ = ce('div');
this.overlaySpan = _ = $WH.ce('div');
_.style.display = 'block';
_.style.width = '100%';
_.style.height = '100%';
this.span.appendChild(_);
this.buttonDiv = _ = ce('div');
this.buttonDiv = _ = $WH.ce('div');
_.style.position = 'absolute';
_.style.top = _.style.right = '3px';
@ -73,7 +73,7 @@ function Mapper(opt, noScroll) {
_.style.position = 'absolute';
_.style.bottom = _.style.right = '0';
ns(_);
$WH.ns(_);
this.parent.appendChild(_);
}
else {
@ -83,7 +83,7 @@ function Mapper(opt, noScroll) {
_.style.display = 'none';
ns(_);
$WH.ns(_);
this.buttonDiv.appendChild(_);
}
@ -96,7 +96,7 @@ function Mapper(opt, noScroll) {
_.style.position = 'absolute';
_.style.bottom = _.style.right = '0';
ns(_);
$WH.ns(_);
this.span.appendChild(_);
}
@ -127,9 +127,9 @@ function Mapper(opt, noScroll) {
_.style.position = 'absolute';
_.style.bottom = _.style.left = '0';
_.onmouseup = sp;
_.onmouseup = $WH.sp;
ns(_);
$WH.ns(_);
this.span.appendChild(_);
}
@ -206,11 +206,11 @@ Mapper.prototype = {
this.nCoords = 0;
for(var i in this.floorPins)
if(this.floorPins[i].parentNode)
de(this.floorPins[i]);
$WH.de(this.floorPins[i]);
this.floorPins = {};
if(this.floorButton)
{
de(this.floorButton);
$WH.de(this.floorButton);
this.floorButton = null;
}
@ -220,9 +220,9 @@ Mapper.prototype = {
else
level = this.level;
var mapperData = false;
if(isset('g_mapperData'))
if($WH.isset('g_mapperData'))
mapperData = g_mapperData;
else if(isset('g_mapper_data'))
else if($WH.isset('g_mapper_data'))
mapperData = g_mapper_data;
if(mapperData && mapperData[this.zone] && !opt.coords)
{
@ -244,7 +244,7 @@ Mapper.prototype = {
}
this.level = level;
if(this.floorPins[this.level])
ae(this.span, this.floorPins[this.level]);
$WH.ae(this.span, this.floorPins[this.level]);
}
else if(opt.coords != null)
{
@ -262,7 +262,7 @@ Mapper.prototype = {
this.level = lowestLevel;
if(this.floorPins[this.level])
ae(this.span, this.floorPins[this.level]);
$WH.ae(this.span, this.floorPins[this.level]);
}
// this.setCoords(opt.coords);
else if(opt.link != null)
@ -294,11 +294,11 @@ Mapper.prototype = {
this.pins = [];
this.nCoords = 0;
if(this.floorPins[this.level])
de(this.floorPins[this.level]);
$WH.de(this.floorPins[this.level]);
this.floorPins = {};
if(this.floorButton)
{
de(this.floorButton);
$WH.de(this.floorButton);
this.floorButton = null;
}
@ -314,7 +314,7 @@ Mapper.prototype = {
if(!Mapper.multiLevelZones[this.zone])
return;
this.menu = [];
var menu = [];
var _ = Mapper.multiLevelZones[this.zone];
var src = g_zone_areas;
@ -329,11 +329,10 @@ Mapper.prototype = {
if(i == this.level || (this.level === undefined && i == 0))
menuItem.checked = true;
this.menu.push(menuItem);
menu.push(menuItem);
}
// Menu.showAtCursor(menu, event);
(Menu.showAtCursor.bind(this, event))()
Menu.showAtCursor(menu, event);
},
setMap: function(map, level, forceUpdate)
@ -341,19 +340,19 @@ Mapper.prototype = {
if(level != this.level)
{
if(this.floorPins[this.level])
de(this.floorPins[this.level]);
$WH.de(this.floorPins[this.level]);
if(this.floorPins[level])
ae(this.span, this.floorPins[level]);
$WH.ae(this.span, this.floorPins[level]);
this.level = level;
}
var type = g_locale.name;
if(isset('g_ptr') && g_ptr)
if($WH.isset('g_ptr') && g_ptr)
type = 'ptr';
else if(isset('g_beta') && g_beta)
else if($WH.isset('g_beta') && g_beta)
type = 'beta';
else if(isset('g_old') && g_old)
else if($WH.isset('g_old') && g_old)
type = 'old';
this.span.style.background = 'url(' + g_staticUrl + '/images/maps/' + type + '/' + Mapper.sizes[this.zoom][2] + '/' + map + '.jpg)';
@ -421,8 +420,7 @@ Mapper.prototype = {
setZones: function(div, zones)
{
// div = $('#'+div);
div = ge(div);
div = $WH.ge(div);
if(!div || !zones || zones.length == 0 || !this.objectives)
return;
@ -431,13 +429,13 @@ Mapper.prototype = {
var maxIdx = [false, -1];
for(var i = 0; i < zoneList.length; ++i)
{
if(i > 0) ae(span, (i == zoneList.length-1 ? LANG.and : LANG.comma));
if(i > 0) $WH.ae(span, (i == zoneList.length-1 ? LANG.and : LANG.comma));
var entry = null;
if(self.objectives[zoneList[i][0]].mappable > 0)
{
entry = ce('a');
entry = $WH.ce('a');
entry.href = 'javascript:;';
ae(entry, ct(self.objectives[zoneList[i][0]].zone));
$WH.ae(entry, $WH.ct(self.objectives[zoneList[i][0]].zone));
entry.onClick = function(link, zone) {
self.update({ zone: zone });
g_setSelectedLink(link, 'mapper');
@ -446,9 +444,9 @@ Mapper.prototype = {
}
else
{
entry = ce('a');
entry = $WH.ce('a');
entry.href = '?zone=' + zoneList[i][0];
ae(entry, ct(self.objectives[zoneList[i][0]].zone));
$WH.ae(entry, $WH.ct(self.objectives[zoneList[i][0]].zone));
g_addTooltip(entry, LANG.tooltip_zonelink);
}
@ -474,7 +472,7 @@ Mapper.prototype = {
entry.style += ' padding-left', '16px';
}
}
ae(container, entry);
$WH.ae(container, entry);
if(zoneList[i][1] > maxIdx[1])
maxIdx = [entry, zoneList[i][1]];
@ -525,26 +523,26 @@ Mapper.prototype = {
}
}
var h3 = ce('h3');
ae(h3, ct(LANG.mapper_relevantlocs));
ae(div, h3);
var h3 = $WH.ce('h3');
$WH.ae(h3, $WH.ct(LANG.mapper_relevantlocs));
$WH.ae(div, h3);
if(zones.length == 1 && this.missing == 0)
{
var span = ce('span');
var span = $WH.ce('span');
span.innerHTML = LANG.mapper_entiretyinzone.replace('$$', '<b>' + this.objectives[zones[0][0]].zone + '</b>.');
ae(div, span);
$WH.ae(div, span);
this.update({ zone: zones[0][0] });
}
else if(this.missing > 0)
{
var span = ce('span');
var span = $WH.ce('span');
var primaryLink = false, secondaryLink = false, tertiaryLink = false;
types.objective = array_unique(types.objective);
types.start = array_unique(types.start);
types.end = array_unique(types.end);
var startEnd = types.start.length > 0 && array_compare(types.start, types.end);
var startObj = types.start.length > 0 && array_compare(types.start, types.objective);
var endObj = types.end.length > 0 && array_compare(types.end, types.objective);
types.objective = $WH.array_unique(types.objective);
types.start = $WH.array_unique(types.start);
types.end = $WH.array_unique(types.end);
var startEnd = types.start.length > 0 && $WH.array_compare(types.start, types.end);
var startObj = types.start.length > 0 && $WH.array_compare(types.start, types.objective);
var endObj = types.end.length > 0 && $WH.array_compare(types.end, types.objective);
var objZones = getZoneList(zones, typesByZone, 'objective');
var startZones = getZoneList(zones, typesByZone, 'start');
@ -553,125 +551,125 @@ Mapper.prototype = {
if(startEnd && startObj) // everything in the same zones
{
var parts = LANG.mapper_happensin.split('$$');
ae(span, ct(parts[0]));
$WH.ae(span, $WH.ct(parts[0]));
primaryLink = zoneLinks(this, span, zones, typesByZone);
ae(span, parts[1]);
$WH.ae(span, parts[1]);
}
else if(startEnd && types.objective.length == 0) // starts and ends in x
{
var parts = LANG.mapper_objectives.sex.split('$$');
ae(span, ct(parts[0]));
$WH.ae(span, $WH.ct(parts[0]));
primaryLink = zoneLinks(this, span, zones, typesByZone);
ae(span, parts[1]);
$WH.ae(span, parts[1]);
}
else if(startEnd) // objectives in x, starts and ends in y
{
var parts = LANG.mapper_objectives.ox_sey.split('$$');
ae(span, ct(parts[0]));
$WH.ae(span, $WH.ct(parts[0]));
primaryLink = zoneLinks(this, span, startZones, typesByZone);
ae(span, parts[1]);
$WH.ae(span, parts[1]);
secondaryLink = zoneLinks(this, span, objZones, typesByZone);
ae(span, parts[2]);
$WH.ae(span, parts[2]);
}
else if(startObj && types.end.length == 0) // objectives and starts in x
{
var parts = LANG.mapper_objectives.osx.split('$$');
ae(span, ct(parts[0]));
$WH.ae(span, $WH.ct(parts[0]));
primaryLink = zoneLinks(this, span, zones, typesByZone);
ae(span, parts[1]);
$WH.ae(span, parts[1]);
}
else if(startObj) // objectives and starts in x, ends in y
{
var parts = LANG.mapper_objectives.osx_ey.split('$$');
ae(span, ct(parts[0]));
$WH.ae(span, $WH.ct(parts[0]));
primaryLink = zoneLinks(this, span, objZones, typesByZone);
ae(span, parts[1]);
$WH.ae(span, parts[1]);
secondaryLink = zoneLinks(this, span, endZones, typesByZone);
ae(span, parts[2]);
$WH.ae(span, parts[2]);
}
else if(endObj && types.start.length == 0) // objectives and ends in x
{
var parts = LANG.mapper_objectives.oex.split('$$');
ae(span, ct(parts[0]));
$WH.ae(span, $WH.ct(parts[0]));
primaryLink = zoneLinks(this, span, zones, typesByZone);
ae(span, parts[1]);
$WH.ae(span, parts[1]);
}
else if(endObj) // objectives and ends in x, starts in y
{
var parts = LANG.mapper_objectives.oex_sy.split('$$');
ae(span, ct(parts[0]));
$WH.ae(span, $WH.ct(parts[0]));
primaryLink = zoneLinks(this, span, startZones, typesByZone);
ae(span, parts[1]);
$WH.ae(span, parts[1]);
secondaryLink = zoneLinks(this, span, objZones, typesByZone);
ae(span, parts[1]);
$WH.ae(span, parts[1]);
}
else if(types.start.length > 0 && types.end.length > 0 && types.objective.length > 0) // objectives in x, starts in y, ends in z
{
var parts = LANG.mapper_objectives.ox_sy_ez.split('$$');
ae(span, ct(parts[0]));
$WH.ae(span, $WH.ct(parts[0]));
primaryLink = zoneLinks(this, span, startZones, typesByZone);
ae(span, parts[1]);
$WH.ae(span, parts[1]);
secondaryLink = zoneLinks(this, span, objZones, typesByZone);
ae(span, parts[1]);
$WH.ae(span, parts[1]);
tertiaryLink = zoneLinks(this, span, endZones, typesByZone);
ae(span, parts[3]);
$WH.ae(span, parts[3]);
}
else if(types.start.length > 0 && types.end.length > 0) // starts in x, ends in y
{
var parts = LANG.mapper_objectives.sx_ey.split('$$');
ae(span, ct(parts[0]));
$WH.ae(span, $WH.ct(parts[0]));
primaryLink = zoneLinks(this, span, startZones, typesByZone);
ae(span, parts[1]);
$WH.ae(span, parts[1]);
secondaryLink = zoneLinks(this, span, endZones, typesByZone);
ae(span, parts[2]);
$WH.ae(span, parts[2]);
}
else if(types.start.length > 0 && types.objective.length > 0) // objectives in x, starts in y
{
var parts = LANG.mapper_objectives.ox_sy.split('$$');
ae(span, ct(parts[0]));
$WH.ae(span, $WH.ct(parts[0]));
primaryLink = zoneLinks(this, span, startZones, typesByZone);
ae(span, parts[1]);
$WH.ae(span, parts[1]);
secondaryLink = zoneLinks(this, span, objZones, typesByZone);
ae(span, parts[2]);
$WH.ae(span, parts[2]);
}
else if(types.end.length > 0 && types.objective.length > 0) // objectives in x, ends in y
{
var parts = LANG.mapper_objectives.ox_ey.split('$$');
ae(span, ct(parts[0]));
$WH.ae(span, $WH.ct(parts[0]));
primaryLink = zoneLinks(this, span, objZones, typesByZone);
ae(span, parts[1]);
$WH.ae(span, parts[1]);
secondaryLink = zoneLinks(this, span, endZones, typesByZone);
ae(span, parts[2]);
$WH.ae(span, parts[2]);
}
else if(types.start.length > 0) // starts in x
{
var parts = LANG.mapper_objectives.sx.split('$$');
ae(span, ct(parts[0]));
$WH.ae(span, $WH.ct(parts[0]));
primaryLink = zoneLinks(this, span, zones, typesByZone);
ae(span, parts[1]);
$WH.ae(span, parts[1]);
}
else if(types.end.length > 0) // ends in x
{
var parts = LANG.mapper_objectives.ex.split('$$');
ae(span, ct(parts[0]));
$WH.ae(span, $WH.ct(parts[0]));
primaryLink = zoneLinks(this, span, zones, typesByZone);
ae(span, parts[1]);
$WH.ae(span, parts[1]);
}
else if(types.objective.length > 0) // objectives in x
{
var parts = LANG.mapper_objectives.ox.split('$$');
ae(span, ct(parts[0]));
$WH.ae(span, $WH.ct(parts[0]));
primaryLink = zoneLinks(this, span, zones, typesByZone);
ae(span, parts[1]);
$WH.ae(span, parts[1]);
}
else // wat?
{
var parts = LANG.mapper_happensin.split('$$');
ae(span, ct(parts[0]));
$WH.ae(span, $WH.ct(parts[0]));
primaryLink = zoneLinks(this, span, zones, typesByZone);
ae(span, parts[1]);
$WH.ae(span, parts[1]);
}
ae(div, span);
$WH.ae(div, span);
if(primaryLink && primaryLink.isLink)
primaryLink.click();
@ -683,11 +681,11 @@ Mapper.prototype = {
else
{
var parts = LANG.mapper_happensin.split('$$');
var span = ce('span');
ae(span, ct(parts[0]));
var span = $WH.ce('span');
$WH.ae(span, $WH.ct(parts[0]));
var primaryLink = zoneLinks(this, span, zones, typesByZone);
ae(span, parts[1]);
ae(div, span);
$WH.ae(span, parts[1]);
$WH.ae(div, span);
if(primaryLink && primaryLink.isLink)
primaryLink.click();
@ -848,23 +846,23 @@ Mapper.prototype = {
if(opt && opt.menu)
{
_.a.menu = opt.menu;
//Menu.add(_.a, _.a.menu, { showAtCursor: true });
_.a.onclick = function() {
(Menu.show.bind(this))();
Tooltip.hide();
this.onmouseout = function() {
Menu.hide();
this.onmouseout = Tooltip.hide();
}.bind(this);
sp();
return false;
}.bind(_.a);
Menu.add(_.a, _.a.menu, { showAtCursor: true });
// _.a.onclick = function() {
// (Menu.show.bind(this))();
// Tooltip.hide();
// this.onmouseout = function() {
// Menu.hide();
// this.onmouseout = Tooltip.hide();
// }.bind(this);
// $WH.sp();
// return false;
// }.bind(_.a);
}
if(opt && opt.type)
_.className += ' pin-' + opt.type;
_.a.tt = str_replace(_.a.tt, '$', _.x.toFixed(1) + ', ' + _.y.toFixed(1));
_.a.tt = $WH.str_replace(_.a.tt, '$', _.x.toFixed(1) + ', ' + _.y.toFixed(1));
if(opt && opt.lines)
{
@ -878,7 +876,7 @@ Mapper.prototype = {
var size = Mapper.sizes[s];
_ = Line(coord[0] * size[0] / 100, coord[1] * size[1] / 100, opt.lines[p][0] * size[0] / 100, opt.lines[p][1] * size[1] / 100, opt.type);
_.className += ' ' + size[2];
ae(this.floorPins[level], _);
$WH.ae(this.floorPins[level], _);
}
}
}
@ -961,7 +959,7 @@ Mapper.prototype = {
_.style['float'] = 'right';
ns(_);
$WH.ns(_);
this.buttonDiv.appendChild(_);
}
else if(this.floorButton)
@ -972,7 +970,7 @@ Mapper.prototype = {
this.sToggle.style.display = (this.toggle && this.nCoords ? '' : 'none');
if(!noScroll)
g_scrollTo(this.parent, 3);
$WH.g_scrollTo(this.parent, 3);
// replacement start
// $('.line', this.floorPins[level]).hide();
@ -1004,8 +1002,8 @@ Mapper.prototype = {
_.free = false;
_.className = 'pin';
_.a.onmousedown = rf;
_.a.onmouseup = rf;
_.a.onmousedown = $WH.rf;
_.a.onmouseup = $WH.rf;
_.a.href = 'javascript:;';
_.a.style.cursor = 'default';
_.floor = floor;
@ -1019,32 +1017,32 @@ Mapper.prototype = {
if(this.pins[i].free)
return this.cleanPin(i, floor);
var _ = ce('div'), a = ce('a');
var _ = $WH.ce('div'), a = $WH.ce('a');
_.className = 'pin';
_.appendChild(a);
_.a = a;
_.floor = floor;
a.onmouseover = this.pinOver;
a.onmouseout = Tooltip.hide;
a.onclick = sp;
a.onclick = $WH.sp;
this.pins.push(_);
this.cleanPin(this.pins.length - 1, floor);
if(!this.floorPins[floor])
{
this.floorPins[floor] = ce('div');
this.floorPins[floor] = $WH.ce('div');
this.floorPins[floor].style.display = this.show ? '' : 'none';
if(floor == this.level)
ae(this.span, this.floorPins[floor]);
$WH.ae(this.span, this.floorPins[floor]);
}
ae(this.floorPins[floor], _);
$WH.ae(this.floorPins[floor], _);
return _;
},
addPin: function(e)
{
e = $E(e);
e = $WH.$E(e);
if(e._button >= 2) return;
this.getMousePos(e);
@ -1066,11 +1064,11 @@ Mapper.prototype = {
delPin: function(pin, e)
{
e = $E(e);
e = $WH.$E(e);
pin.style.display = 'none';
pin.free = true;
sp(e);
$WH.sp(e);
this.onPinUpdate && this.onPinUpdate(this);
@ -1084,11 +1082,11 @@ Mapper.prototype = {
getMousePos: function(e)
{
e = $E(e);
e = $WH.$E(e);
var c = ac(this.parent);
var c = $WH.ac(this.parent);
var scroll = g_getScroll();
var scroll = $WH.g_getScroll();
this.mouseX = Math.floor((e.clientX + scroll.x - c[0] - 3) / Mapper.sizes[this.zoom][0] * 1000) / 10;
this.mouseY = Math.floor((e.clientY + scroll.y - c[1] - 3) / Mapper.sizes[this.zoom][1] * 1000) / 10;

View file

@ -232,7 +232,7 @@ var Markup = {
if (G.charAt(E) == "<" && G.charAt(E + 1) == "t") {
if (D.length) {
if (K == "ol" || K == "ul") {
if (trim(D).length) {
if ($WH.trim(D).length) {
I.push(["<text>", D])
}
} else {
@ -298,7 +298,7 @@ var Markup = {
}
if (D.length) {
if (K == "ol" || K == "ul") {
if (trim(D).length) {
if ($WH.trim(D).length) {
I.push(["<text>", D])
}
} else {
@ -378,7 +378,7 @@ var Markup = {
case "quote":
G += '<div class="quote">';
if (B[D][2]) {
var H = trim(B[D][2]);
var H = $WH.trim(B[D][2]);
if (H.length > 0) {
G += "<small><b>";
if (H.match(/[^a-z0-9]/i) == null && H.length >= 4 && H.length <= 16) {
@ -416,7 +416,7 @@ var Markup = {
case "toggler":
var F = B[D][2];
if (F.id != null) {
G += '<a href="javascript:;" class="disclosure-' + (F.hidden ? "on": "off") + '" onmousedown="return false" onclick="this.className = \'disclosure-\' + (g_toggleDisplay(ge(\'ov4io23-' + F.id + "')) ? 'on' : 'off')\">" + Markup._htmlmize(B[D][1]) + "</a>"
G += '<a href="javascript:;" class="disclosure-' + (F.hidden ? "on": "off") + '" onmousedown="return false" onclick="this.className = \'disclosure-\' + (g_toggleDisplay($WH.ge(\'ov4io23-' + F.id + "')) ? 'on' : 'off')\">" + Markup._htmlmize(B[D][1]) + "</a>"
}
break;
case "div":
@ -689,7 +689,7 @@ var Markup = {
} catch(A) {}
},
printHtml: function (c, d, b) {
d = ge(d);
d = $WH.ge(d);
var a = Markup.toHtml(c, b);
d.innerHTML = a;
}

View file

@ -38,10 +38,10 @@ ShowOnMap.prototype.construct = function() {
return;
}
var d = ge('som-generic');
var d = $WH.ge('som-generic');
var cmpFunc = function(a, b) {
return strcmp(a[1], b[1]);
return $WH.strcmp(a[1], b[1]);
};
var allianceMenu = [];
@ -108,7 +108,7 @@ ShowOnMap.prototype.construct = function() {
if (nCoords > 0) {
var url = (g_types[group[p][0].type] && group[p][0].id ? '?' + g_types[group[p][0].type] + '=' + group[p][0].id : '');
legend[submenu.length+1] = [p, url];
entry.push(p + sprintf(LANG.qty, nPins));
entry.push(p + $WH.sprintf(LANG.qty, nPins));
entry.push(this.showStuff.bind(this, coords, [i, i2], legend));
submenu.push(entry);
for (var l in coords) {
@ -281,29 +281,29 @@ ShowOnMap.prototype.construct = function() {
}
if (nCoords > 0) {
var entry = [idx, LANG.som[idx] + sprintf(LANG.qty, nPins), this.showStuff.bind(this, coords, [idx], legend)];
var entry = [idx, LANG.som[idx] + $WH.sprintf(LANG.qty, nPins), this.showStuff.bind(this, coords, [idx], legend)];
this._menu.push(entry);
}
if (nHordeCoords > 0) {
var entry = [idx, LANG.som[idx] + sprintf(LANG.qty, nHordeCoords), this.showStuff.bind(this, hordeCoords, ['horde', idx], hordeLegend), null];
var entry = [idx, LANG.som[idx] + $WH.sprintf(LANG.qty, nHordeCoords), this.showStuff.bind(this, hordeCoords, ['horde', idx], hordeLegend), null];
if (idx == 'quest') {
entry.push({ tinyIcon: 'quest_start' });
if (nHordeDailyCoords > 0) {
hordeMenu.push(entry);
entry = ['daily', LANG.som.daily + sprintf(LANG.qty, nHordeDailyCoords), this.showStuff.bind(this, hordeDailyCoords, ['horde', 'daily'], hordeLegend), null, { tinyIcon: 'quest_start_daily' }];
entry = ['daily', LANG.som.daily + $WH.sprintf(LANG.qty, nHordeDailyCoords), this.showStuff.bind(this, hordeDailyCoords, ['horde', 'daily'], hordeLegend), null, { tinyIcon: 'quest_start_daily' }];
}
}
hordeMenu.push(entry);
}
if (nAllianceCoords > 0) {
var entry = [idx, LANG.som[idx] + sprintf(LANG.qty, nAllianceCoords), this.showStuff.bind(this, allianceCoords, ['alliance', idx], allianceLegend), null];
var entry = [idx, LANG.som[idx] + $WH.sprintf(LANG.qty, nAllianceCoords), this.showStuff.bind(this, allianceCoords, ['alliance', idx], allianceLegend), null];
if (idx == 'quest') {
entry.push({ tinyIcon: 'quest_start' });
if (nAllianceDailyCoords > 0) {
allianceMenu.push(entry);
entry = ['daily', LANG.som.daily + sprintf(LANG.qty, nAllianceDailyCoords), this.showStuff.bind(this, allianceDailyCoords, ['alliance', 'daily'], allianceLegend), null, { tinyIcon: 'quest_start_daily' }];
entry = ['daily', LANG.som.daily + $WH.sprintf(LANG.qty, nAllianceDailyCoords), this.showStuff.bind(this, allianceDailyCoords, ['alliance', 'daily'], allianceLegend), null, { tinyIcon: 'quest_start_daily' }];
}
}
allianceMenu.push(entry);
@ -328,49 +328,37 @@ ShowOnMap.prototype.construct = function() {
var redButton = RedButton.create(LANG.showonmap, true);
redButton.className += ' mapper-som-button';
// Menu.add(redButton, this._menu, { showAtCursor: true });
redButton.menu = this._menu;
redButton.onclick = function() {
(Menu.show.bind(this))();
Tooltip.hide();
this.onmouseout = function() {
Menu.hide();
this.onmouseout = Tooltip.hide();
}.bind(this);
sp();
return false;
}.bind(redButton);
// replace end
ae(d, redButton);
Menu.add(redButton, this._menu, { showAtCursor: true });
$WH.ae(d, redButton);
var clear;
if (!this._legend) {
this._legend = ce('div');
this._legend = $WH.ce('div');
this._legend.className = 'mapper-legend';
this._legend.style.display = 'none';
var d2 = ce('div');
var d2 = $WH.ce('div');
d2.className = 'mapper-legend-container';
this._legendLabel = ce('b')
ae(this._legendLabel, ct(LANG.som_legend));
ae(d2, this._legendLabel);
this._legendLabel = $WH.ce('b')
$WH.ae(this._legendLabel, $WH.ct(LANG.som_legend));
$WH.ae(d2, this._legendLabel);
this._legendContents = ce('div');
this._legendContents = $WH.ce('div');
this._legendContents.style.cssFloat = 'right';
ae(d2, this._legendContents);
$WH.ae(d2, this._legendContents);
var clear = ce('div');
var clear = $WH.ce('div');
clear.style.clear = 'right';
ae(d2, clear);
$WH.ae(d2, clear);
ae(this._legend, d2);
$WH.ae(this._legend, d2);
}
ae(d, this._legend);
$WH.ae(d, this._legend);
var clear = ce('div');
var clear = $WH.ce('div');
clear.style.clear = 'left';
ae(d, clear);
$WH.ae(d, clear);
var components = [];
var hash = g_getHash();
@ -414,31 +402,31 @@ ShowOnMap.prototype.construct = function() {
};
ShowOnMap.prototype.setLegend = function(info) {
ee(this._legendContents);
$WH.ee(this._legendContents);
var div = ce('div');
var div = $WH.ce('div');
var count = 0;
for (var i in info) {
var sp = ce('span');
var sp = $WH.ce('span');
sp.className = 'mapper-pin mapper-pin-' + i + ' mapper-legend-pin';
if (info[i][1]) {
var a = ce('a');
var a = $WH.ce('a');
a.href = info[i][1];
ae(a, ct(info[i][0]));
ae(sp, a);
$WH.ae(a, $WH.ct(info[i][0]));
$WH.ae(sp, a);
}
else {
sp.innerText = info[i][0];
}
ae(div, sp);
$WH.ae(div, sp);
if ((++count) % 4 == 0) {
ae(div, ce('br'));
$WH.ae(div, $WH.ce('br'));
}
}
ae(this._legendContents, div);
$WH.ae(this._legendContents, div);
};
ShowOnMap.prototype.showStuff = function(coords, path, legendInfo) {
@ -495,17 +483,9 @@ ShowOnMap.prototype.checkMenu = function(path) {
var singlePinOptions = { 'rare': true, 'herb': true, 'vein': true };
for (var i = 0; i < label.length; ++i) {
if (i > 0 && singlePinOptions[label[0][0]]) {
/* unsure, kept for reference, replacement below
var span = $('span', this._legendContents);
span.removeClass('mapper-legend-pin');
span.append($('<b/>', { text: ' ' + label[i][1].substr(label[i][1].lastIndexOf('(')) }));
*/
var span = gE(this._legendContents[0], 'span')[0];
span.className.replace(/\mapper-legend-pin\b/,'');
var b = ce('b');
b.innerText = ' ' + label[i][1].substr(label[i][1].lastIndexOf('('));
ae(span, b);
// replace end
}
else {
if (i == maxLabel) {
@ -569,7 +549,7 @@ ShowOnMap.combinePins = function(pins, dailyOnly, hasPaths) {
// Don't combine pins that have paths
coord = getCoord([pin.id, 0], true);
x = coord[0]; y = coord[1];
var newPin = dO(pin);
var newPin = $WH.dO(pin);
newPin.coord = pin.coords[0];
combined[x][y].push(newPin);
@ -597,7 +577,7 @@ ShowOnMap.combinePins = function(pins, dailyOnly, hasPaths) {
for (var c = 0; c < pin.coords.length; ++c) {
coord = getCoord(pin.coords[c]);
x = coord[0]; y = coord[1];
var newPin = dO(pin);
var newPin = $WH.dO(pin);
newPin.coord = pin.coords[c];
if (combined[x][y].length > 3) {
@ -809,7 +789,7 @@ ShowOnMap.buildTooltip = function(list, dailyOnly) {
};
// !sarjuuk: tempfix!
// // !sarjuuk: tempfix!
Markup._fixUrl = function(url) {
if(!url) {
return '';

File diff suppressed because it is too large Load diff

View file

@ -107,7 +107,7 @@ function TalentCalc() {
}
}
blizz = rtrim(blizz, '0');
blizz = $WH.rtrim(blizz, '0');
return blizz;
};
@ -244,7 +244,7 @@ function TalentCalc() {
blizz += c[tree].t[i].k;
}
blizz = rtrim(blizz, '0');
blizz = $WH.rtrim(blizz, '0');
wh += _convertBlizzToWh(blizz);
@ -267,7 +267,7 @@ function TalentCalc() {
res = _encoding.charAt(_getOldIdFromClassId(_currentClass) * 3);
}
res += rtrim(wh, _newTree);
res += $WH.rtrim(wh, _newTree);
return res;
};
@ -306,7 +306,7 @@ function TalentCalc() {
}
}
res = rtrim(res, _newTree);
res = $WH.rtrim(res, _newTree);
return res;
};
@ -316,7 +316,7 @@ function TalentCalc() {
return;
}
container = $(container);
container = $WH.ge(container);
if (!container) {
return;
}
@ -368,9 +368,9 @@ function TalentCalc() {
}
_pointsToSpend = _basePoints + _bonusPoints;
_divWrapper = ce('div');
_divWrapper = $WH.ce('div');
_divWrapper.className = 'talentcalc-wrapper';
ae(_container, _divWrapper);
$WH.ae(_container, _divWrapper);
_createSidebar();
_createUpper();
@ -594,10 +594,10 @@ function TalentCalc() {
buffer += '<h2>';
if (_mode == MODE_PET) {
buffer += sprintf(LANG.tc_printh, _getRequiredLevel(), g_pet_families[c.n]);
buffer += $WH.sprintf(LANG.tc_printh, _getRequiredLevel(), g_pet_families[c.n]);
}
else {
buffer += sprintf(LANG.tc_printh, _getRequiredLevel(), g_chr_classes[c.n]) + ' (' + c[0].k + '/' + c[1].k + '/' + c[2].k + ')';
buffer += $WH.sprintf(LANG.tc_printh, _getRequiredLevel(), g_chr_classes[c.n]) + ' (' + c[0].k + '/' + c[1].k + '/' + c[2].k + ')';
}
buffer += '</h2>';
@ -614,7 +614,7 @@ function TalentCalc() {
buffer += '<br /><br />';
}
buffer += '<b>' + c[i].t[j].n + '</b>' + LANG.hyphen + sprintf(LANG.tc_rank, c[i].t[j].k, c[i].t[j].m) + '<br />';
buffer += '<b>' + c[i].t[j].n + '</b>' + LANG.hyphen + $WH.sprintf(LANG.tc_rank, c[i].t[j].k, c[i].t[j].m) + '<br />';
buffer += _getTalentDescription(c[i].t[j]);
++k;
}
@ -764,7 +764,7 @@ function TalentCalc() {
function _createArrow(arrowType, width, height) {
var
d = ce('div'),
d = $WH.ce('div'),
t,
_;
@ -844,7 +844,7 @@ function TalentCalc() {
d.style.width = width + 'px';
d.style.height = height + 'px';
ae(d, t);
$WH.ae(d, t);
return d;
}
@ -854,39 +854,39 @@ function TalentCalc() {
__,
___;
_divLower = ce('div');
_divLower = $WH.ce('div');
_divLower.className = 'talentcalc-lower';
_divLower.style.display = 'none';
for (var tree = 0; tree < _nTrees; ++tree) {
_ = _lblTreePoints[tree] = ce('div');
_ = _lblTreePoints[tree] = $WH.ce('div');
_.className = 'talentcalc-lower-tree' + (tree + 1);
__ = ce('p');
__ = $WH.ce('p');
__.className = 'rcorners';
ae(__, ce('b'));
ae(__, ce('span'));
___ = ce('a');
$WH.ae(__, $WH.ce('b'));
$WH.ae(__, $WH.ce('span'));
___ = $WH.ce('a');
___.href = 'javascript:;';
___.onclick = _self.reset.bind(null, tree);
g_addTooltip(___, LANG.tc_resettree);
ae(__, ___);
ae(_, __);
ae(_divLower, _);
$WH.ae(__, ___);
$WH.ae(_, __);
$WH.ae(_divLower, _);
}
ae(_divWrapper, _divLower);
$WH.ae(_divWrapper, _divLower);
}
function _createMain() {
_divMain = ce("div");
_divMain = $WH.ce("div");
_divMain.className = "talentcalc-main";
var clear = ce("div");
var clear = $WH.ce("div");
clear.className = "clear";
ae(_divMain, clear);
$WH.ae(_divMain, clear);
ae(_divWrapper, _divMain);
$WH.ae(_divWrapper, _divMain);
}
function _createModel() {
@ -894,20 +894,20 @@ function TalentCalc() {
return;
}
_divModel = ce('div');
_divModel = $WH.ce('div');
_divModel.className = 'talentcalc-model';
_divModel.style.display = "none";
_swfModel = ce('div');
_swfModel = $WH.ce('div');
_swfModel.id = 'shg09yrhlnk';
ae(_divModel, _swfModel);
$WH.ae(_divModel, _swfModel);
var clear = ce('div');
var clear = $WH.ce('div');
clear.className = 'clear';
ae(_divModel, clear);
$WH.ae(_divModel, clear);
ae(_divWrapper, _divModel);
$WH.ae(_divWrapper, _divModel);
}
function _createPetTalents(classId) {
@ -919,7 +919,7 @@ function TalentCalc() {
for (var i = 0, len = g_pet_talents.length; i < len; ++i) {
var talents = g_pet_talents[i];
if (in_array(talents.f, classId) >= 0) {
if ($WH.in_array(talents.f, classId) >= 0) {
data[0].n = talents.n;
data[0].t = [];
data[0].i = i;
@ -929,9 +929,9 @@ function TalentCalc() {
talent = talents.t[j];
_ = data[0].t[j] = {};
cO(_, talent);
$WH.cO(_, talent);
if (talent.f && in_array(talent.f, classId) == -1)
if (talent.f && $WH.in_array(talent.f, classId) == -1)
_.hidden = true;
}
break;
@ -947,119 +947,119 @@ function TalentCalc() {
__,
___;
_divSidebar = ce('div');
_divSidebar = $WH.ce('div');
_divSidebar.className = 'talentcalc-sidebar rcorners';
sidebarDivInner = ce('div');
sidebarDivInner = $WH.ce('div');
sidebarDivInner.className = 'talentcalc-sidebar-inner';
_ = ce('a');
_ = $WH.ce('a');
_.className = 'talentcalc-button-help';
_.href = (_mode == MODE_PET ? 'http://petopia.brashendeavors.net/html/patch30/patch30faq_talents.php' : '?help=talent-calculator');
_.target = '_blank';
ae(_, ct(LANG.tc_help));
ae(sidebarDivInner, _);
$WH.ae(_, $WH.ct(LANG.tc_help));
$WH.ae(sidebarDivInner, _);
_controlsDiv = ce('div');
_controlsDiv = $WH.ce('div');
_controlsDiv.className = 'talentcalc-sidebar-controls';
_controlsDiv.style.display = 'none';
_ = ce('a');
_ = $WH.ce('a');
_.className = 'talentcalc-button-reset';
_.href = 'javascript:;';
_.onclick = _self.resetAll;
ae(_, ct(LANG.tc_resetall));
ae(_controlsDiv, _);
$WH.ae(_, $WH.ct(LANG.tc_resetall));
$WH.ae(_controlsDiv, _);
_ = _lnkLock = ce('a');
_ = _lnkLock = $WH.ce('a');
_.className = 'talentcalc-button-lock';
_.href = 'javascript:;';
_.onclick = _toggleLock;
ae(_, ct(LANG.tc_lock));
ae(_controlsDiv, _);
$WH.ae(_, $WH.ct(LANG.tc_lock));
$WH.ae(_controlsDiv, _);
_ = ce('div');
_ = $WH.ce('div');
_.className = 'clear';
ae(_controlsDiv, _);
$WH.ae(_controlsDiv, _);
ae(sidebarDivInner, _controlsDiv);
$WH.ae(sidebarDivInner, _controlsDiv);
_ = ce('div');
_ = $WH.ce('div');
_.className = 'talentcalc-sidebar-controls2';
__ = ce('a');
__ = $WH.ce('a');
__.className = 'talentcalc-button-import';
__.href = 'javascript:;';
__.onclick = (_opt.profiler ? _self.promptWhBuild : _self.promptBlizzBuild);
ae(__, ct(LANG.tc_import));
ae(_, __);
$WH.ae(__, $WH.ct(LANG.tc_import));
$WH.ae(_, __);
__ = _lnkSummary = ce('a');
__ = _lnkSummary = $WH.ce('a');
__.className = 'talentcalc-button-summary';
__.style.display = 'none';
__.href = 'javascript:;';
__.onclick = _self.showSummary.bind(null, 1);
ae(__, ct(LANG.tc_summary));
ae(_, __);
$WH.ae(__, $WH.ct(LANG.tc_summary));
$WH.ae(_, __);
__ = _lnkRestore = ce('a');
__ = _lnkRestore = $WH.ce('a');
__.className = 'talentcalc-button-restore';
__.style.display = 'none';
__.href = 'javascript:;';
__.onclick = _restore;
ae(__, ct(LANG.tc_restore));
ae(_, __);
$WH.ae(__, $WH.ct(LANG.tc_restore));
$WH.ae(_, __);
__ = _lnkExport = ce('a');
__ = _lnkExport = $WH.ce('a');
__.className = 'talentcalc-button-export';
__.style.display = 'none';
__.href = 'javascript:;';
__.target = '_blank';
ae(__, ct(LANG.tc_link));
ae(_, __);
$WH.ae(__, $WH.ct(LANG.tc_link));
$WH.ae(_, __);
__ = ce('div');
__ = $WH.ce('div');
__.className = 'clear';
ae(_, __);
$WH.ae(_, __);
ae(sidebarDivInner, _);
$WH.ae(sidebarDivInner, _);
_ = ce('div');
ae(sidebarDivInner, _);
_ = $WH.ce('div');
$WH.ae(sidebarDivInner, _);
if (_mode == MODE_DEFAULT) {
_glyphDiv = ce('div');
_glyphDiv = $WH.ce('div');
_glyphDiv.style.display = 'none';
_ = ce('h3');
ae(_, ct(LANG.tc_glyphs));
ae(_glyphDiv, _);
_ = $WH.ce('h3');
$WH.ae(_, $WH.ct(LANG.tc_glyphs));
$WH.ae(_glyphDiv, _);
__ = ce('a');
__ = $WH.ce('a');
__.href = 'javascript:;';
__.onclick = _self.resetGlyphs;
g_addTooltip(__, LANG.tc_resetglyphs);
ae(__, ct('[x]'));
ae(_, __);
_ = ce('div');
$WH.ae(__, $WH.ct('[x]'));
$WH.ae(_, __);
_ = $WH.ce('div');
_.className = 'talentcalc-sidebar-majorglyphs q9';
__ = ce('b');
ae(__, ct(g_item_glyphs[1]));
ae(_, __);
ae(_glyphDiv, _);
_ = ce('div');
__ = $WH.ce('b');
$WH.ae(__, $WH.ct(g_item_glyphs[1]));
$WH.ae(_, __);
$WH.ae(_glyphDiv, _);
_ = $WH.ce('div');
_.className = 'talentcalc-sidebar-minorglyphs q9';
__ = ce('b');
ae(__, ct(g_item_glyphs[2]));
ae(_, __);
ae(_glyphDiv, _);
_ = ce('div');
__ = $WH.ce('b');
$WH.ae(__, $WH.ct(g_item_glyphs[2]));
$WH.ae(_, __);
$WH.ae(_glyphDiv, _);
_ = $WH.ce('div');
_.className = 'clear';
ae(_glyphDiv, _);
$WH.ae(_glyphDiv, _);
var
table = ce('table'),
tbody = ce('tbody'),
table = $WH.ce('table'),
tbody = $WH.ce('tbody'),
tr,
th,
td,
@ -1070,27 +1070,27 @@ function TalentCalc() {
table.className = 'icontab';
for (var y = 0; y < 3; ++y) {
tr = ce('tr');
tr = $WH.ce('tr');
for (var z = 0; z < 2; ++z) {
var slot = (z * 3) + y;
th = ce('th');
th = $WH.ce('th');
icon = Icon.create('inventoryslot_empty', 1, null, 'javascript:;');
link = Icon.getLink(icon);
_glyphIcons[slot] = icon;
ae(th, icon);
ae(tr, th);
td = ce('td');
$WH.ae(th, icon);
$WH.ae(tr, th);
td = $WH.ce('td');
a = ce('a');
a = $WH.ce('a');
_glyphLinks[slot] = a;
ae(td, a);
ae(tr, td);
$WH.ae(td, a);
$WH.ae(tr, td);
a.target = link.target = '_blank';
a.rel = link.rel = 'np';
a.onmousedown = link.onmousedown = rf;
a.onclick = link.onclick = rf;
a.onmousedown = link.onmousedown = $WH.rf;
a.onclick = link.onclick = $WH.rf;
g_onClick(a, _glyphClick.bind(a, slot));
a.onmouseover = _showGlyphTooltip.bind(null, a, slot);
@ -1101,50 +1101,50 @@ function TalentCalc() {
link.onmouseover = _showGlyphTooltip.bind(null, link, slot);
link.onmouseout = Tooltip.hide;
td.oncontextmenu = rf;
td.oncontextmenu = $WH.rf;
}
ae(tbody, tr);
$WH.ae(tbody, tr);
}
ae(table, tbody);
ae(_glyphDiv, table);
ae(sidebarDivInner, _glyphDiv);
$WH.ae(table, tbody);
$WH.ae(_glyphDiv, table);
$WH.ae(sidebarDivInner, _glyphDiv);
}
ae(_divSidebar, sidebarDivInner);
$WH.ae(_divSidebar, sidebarDivInner);
_ = ce('div');
_ = $WH.ce('div');
_.className = 'talentcalc-sidebar-anchor';
ae(_, _divSidebar);
$WH.ae(_, _divSidebar);
ae(_container, _);
$WH.ae(_container, _);
}
function _createTable(nCols, nRows, arrowMaker) {
var
t = ce('table'),
tb = ce('tbody'),
t = $WH.ce('table'),
tb = $WH.ce('tbody'),
tr,
_;
for (var y = 0; y < nRows; ++y) {
tr = ce('tr');
tr = $WH.ce('tr');
for (var x = 0; x < nCols; ++x) {
if (arrowMaker && y > 0) {
_ = ce('th');
_ = $WH.ce('th');
_.colSpan = 2;
ae(tr, _);
$WH.ae(tr, _);
break;
}
else {
var td = ce('td');
var td = $WH.ce('td');
td.className = 'talentcalc-main-cell';
ae(tr, td);
$WH.ae(tr, td);
}
}
ae(tb, tr);
$WH.ae(tb, tr);
}
ae(t, tb);
$WH.ae(t, tb);
return t;
}
@ -1156,16 +1156,16 @@ function TalentCalc() {
c.k = 0;
c.div = ce('div');
c.div = $WH.ce('div');
c.div.style.display = 'none';
aef(_divMain, c.div);
$WH.aef(_divMain, c.div);
for (var tree = 0; tree < _nTrees; ++tree) {
c[tree].k = 0;
var
d = ce('div'),
d2 = ce('div');
d = $WH.ce('div'),
d2 = $WH.ce('div');
d.style.backgroundRepeat = 'no-repeat';
d.style.cssFloat = d.style.styleFloat = 'left';
@ -1176,13 +1176,13 @@ function TalentCalc() {
d2.style.overflow = 'hidden';
d2.style.width = (_mode == MODE_DEFAULT ? '204px' : '244px');
ae(d2, _createTable(4, _nTiers));
$WH.ae(d2, _createTable(4, _nTiers));
ae(d, d2);
ae(c.div, d);
$WH.ae(d, d2);
$WH.ae(c.div, d);
var
tds = gE(d, 'td'),
tds = $WH.gE(d, 'td'),
iconBg,
afterUrl = '?' + _versionBuild;
@ -1206,23 +1206,23 @@ function TalentCalc() {
link.rel = 'np';
link.target = '_blank';
link.onmousedown = rf;
link.onclick = rf;
link.onmousedown = $WH.rf;
link.onclick = $WH.rf;
g_onClick(link, _iconClick.bind(link, talent));
link.onmouseover = _showTooltip.bind(null, link, talent);
link.onmouseout = Tooltip.hide;
var
border = ce('div'),
bubble = ce('div');
border = $WH.ce('div'),
bubble = $WH.ce('div');
ae(bubble, ct('0'));
$WH.ae(bubble, $WH.ct('0'));
border.className = 'icon-border';
bubble.className = 'icon-bubble';
ae(icon, border);
ae(icon, bubble);
$WH.ae(icon, border);
$WH.ae(icon, bubble);
talent.k = 0;
talent.i = i;
@ -1235,7 +1235,7 @@ function TalentCalc() {
talent.bubble = bubble;
if (!talent.hidden) {
ae(targetTd, icon);
$WH.ae(targetTd, icon);
}
if (talent.r) {
@ -1330,9 +1330,9 @@ function TalentCalc() {
arrow.style.left = l + 'px';
arrow.style.top = t + 'px';
var div = ce('div');
var div = $WH.ce('div');
div.className = 'talentcalc-arrow-anchor';
ae(div, arrow);
$WH.ae(div, arrow);
if (!talent.hidden) {
targetTd.insertBefore(div, targetTd.firstChild);
@ -1349,45 +1349,45 @@ function TalentCalc() {
_,
__;
_divUpper = ce('div');
_divUpper = $WH.ce('div');
_divUpper.className = 'talentcalc-upper rcorners';
_divUpper.style.display = 'none';
_ = ce('span');
_ = $WH.ce('span');
_.className = 'talentcalc-upper-class';
_lblClass = a = ce('a');
_lblClass = a = $WH.ce('a');
a.target = '_blank';
a.style.fontWeight = 'bold';
ae(_, a);
ae(_, ct(' '));
_lblSpec = ce('b');
ae(_, _lblSpec);
ae(_divUpper, _);
$WH.ae(_, a);
$WH.ae(_, $WH.ct(' '));
_lblSpec = $WH.ce('b');
$WH.ae(_, _lblSpec);
$WH.ae(_divUpper, _);
_ = ce('span');
_ = $WH.ce('span');
_.className = 'talentcalc-upper-ptsleft';
ae(_, ct(LANG.tc_ptsleft));
_lblPtsLeft = ce('b');
ae(_, _lblPtsLeft);
ae(_divUpper, _);
$WH.ae(_, $WH.ct(LANG.tc_ptsleft));
_lblPtsLeft = $WH.ce('b');
$WH.ae(_, _lblPtsLeft);
$WH.ae(_divUpper, _);
if (_mode == MODE_PET) {
__ = _lnkBonusPoints = ce('a');
__ = _lnkBonusPoints = $WH.ce('a');
__.href = 'javascript:;';
__.onclick = _bonusPointsOnClick.bind(null, __);
__.onmouseover = _bonusPointsOnMouseOver.bind(null, __);
__.onmousemove = Tooltip.cursorUpdate;
__.onmouseout = Tooltip.hide;
ae(_, __);
$WH.ae(_, __);
}
_ = ce('span');
_ = $WH.ce('span');
_.className = 'talentcalc-upper-reqlevel';
ae(_, ct(LANG.tc_reqlevel));
_lblReqLevel = ce('b');
ae(_, _lblReqLevel);
$WH.ae(_, $WH.ct(LANG.tc_reqlevel));
_lblReqLevel = $WH.ce('b');
$WH.ae(_, _lblReqLevel);
__ = _lnkMaxLevel = ce('a');
__ = _lnkMaxLevel = $WH.ce('a');
__.className = 'q1';
__.href = 'javascript:;';
__.onclick = _setLevelCapOnClick.bind(null, __);
@ -1396,18 +1396,18 @@ function TalentCalc() {
__.onmouseout = Tooltip.hide;
if (!_opt.profiler) {
ae(_, ct(' ('));
ae(_, __);
ae(_, ct(')'));
$WH.ae(_, $WH.ct(' ('));
$WH.ae(_, __);
$WH.ae(_, $WH.ct(')'));
}
ae(_divUpper, _);
$WH.ae(_divUpper, _);
_ = ce('div');
_ = $WH.ce('div');
_.className = 'clear';
ae(_divUpper, _);
$WH.ae(_divUpper, _);
ae(_divWrapper, _divUpper);
$WH.ae(_divWrapper, _divUpper);
}
function _convertBlizzToWh(blizz) {
@ -1519,7 +1519,7 @@ function TalentCalc() {
}
function _isGlyphLocked(slot) {
var notFound = (in_array(_glyphSlots[_getGlyphTypeFromSlot(slot)], slot) == -1);
var notFound = ($WH.in_array(_glyphSlots[_getGlyphTypeFromSlot(slot)], slot) == -1);
return (notFound || _getGlyphSlotLevel(slot) > _maxLevel);
}
@ -1598,9 +1598,9 @@ function TalentCalc() {
var
dataz = [],
div = ce("div"),
anch = ce("a"),
clear = ce("div");
div = $WH.ce("div"),
anch = $WH.ce("a"),
clear = $WH.ce("div");
dataz.push({ none: 1 });
@ -1609,16 +1609,16 @@ function TalentCalc() {
}
div.className = "listview";
ae(dest, div);
$WH.ae(dest, div);
anch.className = "screenshotviewer-close";
anch.href = "javascript:;";
anch.onclick = Lightbox.hide;
ae(anch, ce("span"));
ae(dest, anch);
$WH.ae(anch, $WH.ce("span"));
$WH.ae(dest, anch);
clear.className = "clear";
ae(dest, clear);
$WH.ae(dest, clear);
lv = new Listview({
template: "glyph",
@ -1629,8 +1629,8 @@ function TalentCalc() {
createNote: _createGlyphPickerNote
});
if (Browser.firefox) {
aE(lv.getClipDiv(), "DOMMouseScroll", g_pickerWheel);
if ($WH.Browser.firefox) {
$WH.aE(lv.getClipDiv(), "DOMMouseScroll", g_pickerWheel);
}
else {
lv.getClipDiv().onmousewheel = g_pickerWheel;
@ -1778,26 +1778,26 @@ function TalentCalc() {
_info.pointsSpent = (_mode == MODE_PET ? c[0].k: [c[0].k, c[1].k, c[2].k]);
_info.bonusPoints = _bonusPoints;
st(_lblSpec, '(' + (_mode == MODE_PET ? c.k: _info.pointsSpent.join('/')) + ')');
st(_lblReqLevel, _info.requiredLevel ? _info.requiredLevel: '-');
st(_lnkMaxLevel, _maxLevel);
st(_lblPtsLeft, _info.pointsLeft);
$WH.st(_lblSpec, '(' + (_mode == MODE_PET ? c.k: _info.pointsSpent.join('/')) + ')');
$WH.st(_lblReqLevel, _info.requiredLevel ? _info.requiredLevel: '-');
$WH.st(_lnkMaxLevel, _maxLevel);
$WH.st(_lblPtsLeft, _info.pointsLeft);
if (_locked) {
st(_lnkLock, LANG.tc_unlock);
$WH.st(_lnkLock, LANG.tc_unlock);
_lnkLock.className = 'talentcalc-button-unlock';
}
else {
st(_lnkLock, LANG.tc_lock);
$WH.st(_lnkLock, LANG.tc_lock);
_lnkLock.className = 'talentcalc-button-lock';
}
if (_mode == MODE_PET) {
if (_bonusPoints) {
st(_lnkBonusPoints, '[-]');
$WH.st(_lnkBonusPoints, '[-]');
_lnkBonusPoints.className = 'q10';
} else {
st(_lnkBonusPoints, '[+]');
$WH.st(_lnkBonusPoints, '[+]');
_lnkBonusPoints.className = 'q2';
}
}
@ -1808,7 +1808,7 @@ function TalentCalc() {
for (var tree = 0; tree < _nTrees; ++tree) {
var span = _lblTreePoints[tree].firstChild.childNodes[1];
st(span, ' (' + c[tree].k + ')');
$WH.st(span, ' (' + c[tree].k + ')');
}
if (_onChangeCallback) {
@ -1817,7 +1817,7 @@ function TalentCalc() {
}
function _onClassChange() {
st(_lblClass, _referenceArray[_currentClass]);
$WH.st(_lblClass, _referenceArray[_currentClass]);
if (_mode == MODE_PET) {
_lblClass.href = '?pet=' + _currentClass;
_updateModel(_currentClass);
@ -1852,7 +1852,7 @@ function TalentCalc() {
if (_mode == MODE_DEFAULT) {
span.style.backgroundImage = 'url(images/talent/classes/trees/' + g_file_classes[_currentClass] + '_' + (tree + 1) + '.gif)';
}
st(span, c[tree].n);
$WH.st(span, c[tree].n);
}
_afterCapDecrease();
@ -2243,7 +2243,7 @@ function TalentCalc() {
c.div.style.display = "";
}
else {
g_ajaxIshRequest("?data=talents&class=" + classId + "&" + _versionBuild);
$WH.g_ajaxIshRequest("?data=talents&class=" + classId + "&" + _versionBuild);
}
}
@ -2457,7 +2457,7 @@ function TalentCalc() {
else {
upper += '<b class="q0">' + LANG.tc_locked + '</b>';
upper += '<br /><span class="q9">' + LANG[slot <= 2 ? "tc_majgly": "tc_mingly"] + '</span>';
lower += '<span class="q10">' + sprintf(LANG.tc_lockgly, _getGlyphSlotLevel(slot)) + '</span>';
lower += '<span class="q10">' + $WH.sprintf(LANG.tc_lockgly, _getGlyphSlotLevel(slot)) + '</span>';
}
if (glyph && _this.parentNode.className.indexOf("icon") != 0) {
@ -2479,18 +2479,18 @@ function TalentCalc() {
buffer += '<span style="float: right" class="q0">' + talent.z + '</span>';
}
buffer += talent.n + '</b><br />' + sprintf(LANG.tc_rank, talent.k, talent.m) + '<br />';
buffer += talent.n + '</b><br />' + $WH.sprintf(LANG.tc_rank, talent.k, talent.m) + '<br />';
if (talent.r) {
if (c[talent.tree].t[talent.r[0]].k < talent.r[1]) {
buffer += '<span class="q10">';
buffer += sprintf(LANG[talent.r[1] == 1 ? 'tc_prereq' : 'tc_prereqpl'], talent.r[1], c[talent.tree].t[talent.r[0]].n);
buffer += $WH.sprintf(LANG[talent.r[1] == 1 ? 'tc_prereq' : 'tc_prereqpl'], talent.r[1], c[talent.tree].t[talent.r[0]].n);
buffer += '</span><br />';
}
}
if (c[talent.tree].k < talent.y * _pointsPerTier) {
buffer += '<span class="q10">' + sprintf(LANG.tc_tier, (talent.y * _pointsPerTier), c[talent.tree].n) + '</span><br />';
buffer += '<span class="q10">' + $WH.sprintf(LANG.tc_tier, (talent.y * _pointsPerTier), c[talent.tree].n) + '</span><br />';
}
if (talent.t && talent.t.length >= 1) {
@ -2584,7 +2584,7 @@ function TalentCalc() {
Icon.setTexture(icon, 1, glyph.icon);
a.href = link.href = '?item=' + glyph.id;
st(a, _simplifyGlyphName(glyph.name));
$WH.st(a, _simplifyGlyphName(glyph.name));
a.className = 'q1';
return true;
@ -2593,7 +2593,7 @@ function TalentCalc() {
Icon.setTexture(icon, 1, 'inventoryslot_empty');
a.href = link.href = 'javascript:;';
st(a, (!locked ? LANG.tc_empty : LANG.tc_locked));
$WH.st(a, (!locked ? LANG.tc_empty : LANG.tc_locked));
a.className = 'q0';
return false;
@ -2727,7 +2727,7 @@ function TalentCalc() {
model: g_pets[c.npcId].displayId,
modelType: 8,
contentPath: swfUrl + '/modelviewer/',
blur: (OS.mac ? '0' : '1')
blur: ($WH.OS.mac ? '0' : '1')
};
var params = {
@ -2797,7 +2797,7 @@ Listview.templates.glyph = {
return;
}
var i = ce('td');
var i = $WH.ce('td');
i.style.width = '1px';
i.style.padding = '0';
i.style.borderRight = 'none';
@ -2805,20 +2805,20 @@ Listview.templates.glyph = {
var
icon = Icon.create(glyph.icon, 0, null, '?item=' + glyph.id),
link = Icon.getLink(icon);
ae(i, icon);
ae(tr, i);
$WH.ae(i, icon);
$WH.ae(tr, i);
td.style.borderLeft = 'none';
link.onclick = rf;
link.onclick = $WH.rf;
var a = ce('a');
var a = $WH.ce('a');
a.style.fontFamily = 'Verdana, sans-serif';
a.href = '?item=' + glyph.id;
ae(a, ct($WowheadTalentCalculator.simplifyGlyphName(glyph.name)));
$WH.ae(a, $WH.ct($WowheadTalentCalculator.simplifyGlyphName(glyph.name)));
td.style.whiteSpace = 'nowrap';
ae(td, a);
$WH.ae(td, a);
tr.onclick = function(e) {
if (e.which != 2 || e.target != a) {
@ -2832,7 +2832,7 @@ Listview.templates.glyph = {
return -1;
}
return strcmp(a.name, b.name);
return $WH.strcmp(a.name, b.name);
}
},
{
@ -2845,11 +2845,11 @@ Listview.templates.glyph = {
return;
}
var d = ce('div');
var d = $WH.ce('div');
d.className = 'small crop';
td.title = glyph.description;
ae(d, ct(glyph.description));
ae(td, d);
$WH.ae(d, $WH.ct(glyph.description));
$WH.ae(td, d);
}
},
{
@ -2880,7 +2880,7 @@ Listview.templates.glyph = {
},
compute: function (glyph, td, tr) {
if (glyph.none) {
ee(tr);
$WH.ee(tr);
tr.onclick = $WowheadTalentCalculator.addGlyph.bind(null, 0);
td.colSpan = 5;
@ -2894,12 +2894,12 @@ Listview.templates.glyph = {
td.className = 'small q1';
td.style.whiteSpace = 'nowrap';
var a = ce('a');
var a = $WH.ce('a');
a.style.fontFamily = 'Verdana, sans-serif';
a.href = '?skill=' + glyph.skill;
ae(a, ct(g_spell_skills[glyph.skill]));
ae(td, a);
$WH.ae(a, $WH.ct(g_spell_skills[glyph.skill]));
$WH.ae(td, a);
}
}
}

File diff suppressed because it is too large Load diff

View file

@ -406,14 +406,14 @@ var fi_filters = {
};
function fi_toggle() {
var c = ge('fi');
var c = $WH.ge('fi');
var b = g_toggleDisplay(c);
var d = ge('fi_toggle');
var d = $WH.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.parentNode.tagName == 'FORM' ? c.parentNode: $WH.gE(c, 'form')[0]);
c = c.elements.na ? c.elements.na: c.elements.ti;
c.focus();
c.select();
@ -435,7 +435,7 @@ function fi_submit(_this) {
case 'INPUT':
switch (_[i].type) {
case 'text':
if (trim(_[i].value).length > 0) {
if ($WH.trim(_[i].value).length > 0) {
++sum;
}
break;
@ -460,7 +460,7 @@ function fi_submit(_this) {
}
}
var g = g_getGets();
var g = $WH.g_getGets();
if (sum == 0 && !g.filter) {
alert(LANG.message_fillsomecriteria);
return false;
@ -477,7 +477,7 @@ function fi_initWeightedListview() {
}
if (this._upgradeIds && this._minScore) {
//todo: what did this do..? setTimeout(Listview.headerFilter.bind(this, this.columns[this.columns.length - 1], '>=' + this._minScore), 1);
setTimeout(Listview.headerFilter.bind(this, this.columns[this.columns.length - 1], '>=' + this._minScore), 1);
this._maxScore = this._minScore; // Makes percentages relative to upgraded item
}
}
@ -493,7 +493,7 @@ function fi_filterUpgradeListview(item, i) {
this._upgradeRow = nResults - 1;
}
if(in_array(this._upgradeIds, item.id) != -1) {
if($WH.in_array(this._upgradeIds, item.id) != -1) {
if(i < nResults) {
this._upgradeRow++;
}
@ -506,31 +506,31 @@ function fi_filterUpgradeListview(item, i) {
function fi_addUpgradeIndicator() {
if(this._upgradeIds) {
var upgradeUrl = fi_filterParamToJson(g_parseQueryString(location.href.replace(/^.*?filter=/, 'filter=')).filter).upg;
var upgradeUrl = fi_filterParamToJson($WH.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 : '')));
if($WH.in_array(this._upgradeIds, item.id) != -1) {
this.createIndicator($WH.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'));
fi_resetCriterion($WH.ge('fi_criteria'));
fi_resetCriterion($WH.ge('fi_weight'));
var _ = ge('sdkgnsdkn436');
var _ = $WH.ge('sdkgnsdkn436');
if (_) {
_.parentNode.style.display = 'none';
while (_.firstChild) {
de(_.firstChild);
$WH.de(_.firstChild);
}
ae(_, ce('option'));
$WH.ae(_, $WH.ce('option'));
}
_ = _this.elements;
@ -589,7 +589,7 @@ function fi_resetCriterion(_this) {
}
function fi_addCriterion(_this, cr) {
var _ = ge(_this.id.replace('add', ''));
var _ = $WH.ge(_this.id.replace('add', ''));
if (_.childNodes.length >= 19 || (_this.id.indexOf('criteria') > 0 && _.childNodes.length >= 4)) {
_this.style.display = 'none';
@ -605,7 +605,7 @@ function fi_addCriterion(_this, cr) {
}
var
d = ce('div'),
d = $WH.ce('div'),
c = _.childNodes[0].childNodes[0].cloneNode(true);
c.onchange = c.onkeyup = fi_criterionChange.bind(0, c);
@ -658,7 +658,7 @@ function fi_removeCriterion() {
}
if (n) {
_ = ge('sdkgnsdkn436');
_ = $WH.ge('sdkgnsdkn436');
_.selectedIndex = 0;
_.i = 0;
fi_presetMatch();
@ -672,22 +672,22 @@ function fi_clearCriterion() {
}
function fi_appendRemoveLink(d) {
d.appendChild(ct(String.fromCharCode(160, 160)));
var a = ce('a');
d.appendChild($WH.ct(String.fromCharCode(160, 160)));
var a = $WH.ce('a');
a.href = 'javascript:;';
a.appendChild(ct(LANG.firemove));
a.appendChild($WH.ct(LANG.firemove));
a.onmouseup = fi_removeCriterion;
a.onmousedown = a.onclick = rf;
a.onmousedown = a.onclick = $WH.rf;
d.appendChild(a);
}
function fi_appendClearLink(d) {
d.appendChild(ct(String.fromCharCode(160, 160)));
var a = ce('a');
d.appendChild($WH.ct(String.fromCharCode(160, 160)));
var a = $WH.ce('a');
a.href = 'javascript:;';
a.appendChild(ct(LANG.ficlear));
a.appendChild($WH.ct(LANG.ficlear));
a.onmouseup = fi_clearCriterion;
a.onmousedown = a.onclick = rf;
a.onmousedown = a.onclick = $WH.rf;
d.appendChild(a);
}
@ -763,16 +763,16 @@ function fi_criterionChange(_this, crs, crv) {
if (LANG.fidropdowns[criteriaName] != null) {
if (_this.name == 'cr[]') {
var _c = LANG.fidropdowns[criteriaName];
_ = ce('select');
_ = $WH.ce('select');
_.name = 'crs[]';
var group = _;
if (criteriaParams.indexOf('any') != -1) {
var o2 = ce('option');
var o2 = $WH.ce('option');
o2.value = '-2323';
o2.appendChild(ct(LANG.fiany));
ae(group, o2);
o2.appendChild($WH.ct(LANG.fiany));
$WH.ae(group, o2);
if (crs != null && crs == '-2323') {
o2.selected = true;
}
@ -780,42 +780,42 @@ function fi_criterionChange(_this, crs, crv) {
for (var i = 0; i < _c.length; ++i) {
if (_c[i][0] !== null) {
var o2 = ce('option');
var o2 = $WH.ce('option');
o2.value = _c[i][0];
o2.appendChild(ct(_c[i][1]));
ae(group, o2);
o2.appendChild($WH.ct(_c[i][1]));
$WH.ae(group, o2);
if (crs != null && crs == _c[i][0]) {
o2.selected = true;
}
}
else {
var group = ce('optgroup');
var group = $WH.ce('optgroup');
group.label = _c[i][1];
ae(_, group);
$WH.ae(_, group);
}
}
if (criteriaParams.indexOf('none') != -1) {
var o2 = ce('option');
var o2 = $WH.ce('option');
o2.value = '-2324';
o2.appendChild(ct(LANG.finone));
ae(group, o2);
o2.appendChild($WH.ct(LANG.finone));
$WH.ae(group, o2);
if (crs != null && crs == '-2324') {
o2.selected = true;
}
}
d.appendChild(ct(' '));
d.appendChild($WH.ct(' '));
d.appendChild(_);
}
var n = (criteriaName == 'num');
if (n) {
d.appendChild(ct(' '));
d.appendChild($WH.ct(' '));
}
_ = ce('input');
_ = $WH.ce('input');
_.type = 'text';
if (crv != null) {
@ -850,13 +850,13 @@ function fi_criterionChange(_this, crs, crv) {
}
}
else if (criteriaName == 'str') {
_ = ce('input');
_ = $WH.ce('input');
_.name = 'crs[]';
_.type = 'hidden';
_.value = '0';
d.appendChild(_);
_ = ce('input');
_ = $WH.ce('input');
_.type = 'text';
if (criteriaParams.indexOf('small') != -1) {
_.maxLength = 7;
@ -873,7 +873,7 @@ function fi_criterionChange(_this, crs, crv) {
_.value = crv;
}
d.appendChild(ct(' '));
d.appendChild($WH.ct(' '));
d.appendChild(_);
}
}
@ -892,7 +892,7 @@ function fi_criterionChange(_this, crs, crv) {
}
function fi_setCriteria(cr, crs, crv) {
var _ = ge('fi_criteria');
var _ = $WH.ge('fi_criteria');
var
i,
@ -907,7 +907,7 @@ function fi_setCriteria(cr, crs, crv) {
}
fi_criterionChange(c, crs[0], crv[0]);
var a = ge('fi_addcriteria');
var a = $WH.ge('fi_addcriteria');
for (i = 1; i < cr.length && i < 5; ++i) {
fi_criterionChange(fi_addCriterion(a, cr[i]), crs[i], crv[i]);
}
@ -928,15 +928,15 @@ function fi_setWeights(weights, nt, ids, stealth) {
}
}
var _ = ge('fi_weight');
var _ = $WH.ge('fi_weight');
if (fi_weights == null) {
fi_weights = {};
cO(fi_weights, weights);
$WH.cO(fi_weights, weights);
}
var
a = ge('fi_addweight'),
a = $WH.ge('fi_addweight'),
c = _.childNodes[0].childNodes[0];
var i = 0;
@ -963,8 +963,8 @@ function fi_setWeights(weights, nt, ids, stealth) {
fi_weightsFactor = fi_convertWeights(weights, true);
ge('fi_weight_toggle').className = 'disclosure-on';
ge('fi_weight').parentNode.style.display = '';
$WH.ge('fi_weight_toggle').className = 'disclosure-on';
$WH.ge('fi_weight').parentNode.style.display = '';
if (!nt) {
if (!fi_presetMatch(weights, stealth)) {
@ -974,7 +974,7 @@ function fi_setWeights(weights, nt, ids, stealth) {
}
function fi_changeWeight(_this) {
var _ = ge('sdkgnsdkn436');
var _ = $WH.ge('sdkgnsdkn436');
_.selectedIndex = 0;
_.i = 0;
fi_sortWeight(_this);
@ -984,7 +984,7 @@ function fi_changeWeight(_this) {
function fi_sortWeight(_this) {
var
i,
_ = ge('fi_weight'),
_ = $WH.ge('fi_weight'),
v = Number(_this.value);
_this = _this.parentNode;
@ -1066,14 +1066,9 @@ function fi_presetClass(_this, stealth) {
fi_resetCriterion(_);
var _ = ge('sdkgnsdkn436');
var _ = $WH.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');
@ -1082,34 +1077,33 @@ function fi_presetClass(_this, stealth) {
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);
$WH.de(_.firstChild);
}
ae(_, ce('option'));
$WH.ae(_, $WH.ce('option'));
if (_this.selectedIndex > 0) {
for (_group in c._presets) {
var weights = c._presets[_group];
if(langref[_group] != null) {
var group = ce('optgroup');
var group = $WH.ce('optgroup');
group.label = langref[_group];
}
else
group = _;
for (var p in weights) {
var o = ce('option');
var o = $WH.ce('option');
o.value = p;
o._weights = weights[p];
ae(o, ct(weights[p].name ? weights[p].name : langref[p]));
ae(group, o);
$WH.ae(o, $WH.ct(weights[p].name ? weights[p].name : langref[p]));
$WH.ae(group, o);
}
if (langref[_group] != null && group && group.childNodes.length > 0) {
ae(_, group);
$WH.ae(_, group);
}
}
@ -1125,7 +1119,7 @@ function fi_presetClass(_this, stealth) {
function fi_presetChange(_this) {
if (_this.selectedIndex != _this.i) {
fi_resetCriterion(ge('fi_weight'));
fi_resetCriterion($WH.ge('fi_weight'));
var o = _this.options[_this.selectedIndex];
if (_this.selectedIndex > 0) {
@ -1134,14 +1128,14 @@ function fi_presetChange(_this) {
_this.form.elements.gm.selectedIndex = 2; // Rare
}
fi_resetCriterion(ge('fi_weight'));
fi_resetCriterion($WH.ge('fi_weight'));
fi_setWeights(o._weights, 1, 0);
}
_this.i = _this.selectedIndex;
if (g_user.id > 0) {
var a = ge('fi_remscale');
var a = $WH.ge('fi_remscale');
a.style.display = (o._weights && o._weights.name ? '' : 'none');
}
}
@ -1149,9 +1143,9 @@ function fi_presetChange(_this) {
function fi_presetDetails() {
var
_ = ge('fi_weight'),
_this = ge('fi_detail'),
n = ge('fi_addweight');
_ = $WH.ge('fi_weight'),
_this = $WH.ge('fi_detail'),
n = $WH.ge('fi_addweight');
var a = g_toggleDisplay(_);
@ -1172,7 +1166,7 @@ function fi_presetDetails() {
function fi_presetMatch(weights, stealth) {
if (!weights) {
weights = {};
var _ = ge('fi_weight');
var _ = $WH.ge('fi_weight');
for (var i = 0; i < _.childNodes.length; ++i) {
if (_.childNodes[i].childNodes.length == 5) {
@ -1187,7 +1181,7 @@ function fi_presetMatch(weights, stealth) {
}
}
var _ = ge('fi_presets');
var _ = $WH.ge('fi_presets');
var s = _.getElementsByTagName('select');
if (s.length != 2) {
return false;
@ -1241,61 +1235,59 @@ function fi_presetSave() {
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'),
_ = $WH.ge('fi_weight'),
n = 0;
for(i = 0; i < _.childNodes.length; ++i) {
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) {
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)) {
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 (name = prompt(LANG.prompt_nameweightscale, $(o).text())) {
var data = { save: 1, name: $WH.urlencode(name), scale: '' };
if(id) {
if (id) {
data.id = id;
}
scale.name = name;
n = 0;
for(var w in scale) {
if(!LANG.traits[w]) {
for (var w in scale) {
if (!LANG.traits[w]) {
continue;
}
if(n++ > 0) {
if (n++ > 0) {
data.scale += ',';
}
data.scale += w + ':' + scale[w];
}
$.post('?account=weightscales', data, function(response) {
if(response > 0) {
if(g_user.weightscales == null) {
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 });
if (scale.id) {
g_user.weightscales = $WH.array_filter(g_user.weightscales, function(x) {
return x.id != scale.id
});
}
scale.id = response;
@ -1305,16 +1297,16 @@ function fi_presetSave() {
s = $('#fi_presets select').get(0),
c = $('option[value=-1]', s).get(0);
if(!c) {
c = ce('option');
if (!c) {
c = $WH.ce('option');
c.value = -1;
ae(c, ct(LANG.ficustom));
aef(s, c);
aef(s, $('option', s).get(1));
$WH.ae(c, $WH.ct(LANG.ficustom));
$WH.aef(s, c);
$WH.aef(s, $('option', s).get(1));
}
c._presets = { custom: {} };
for(var i = 0, len = g_user.weightscales.length; i < len; ++i) {
for (var i = 0, len = g_user.weightscales.length; i < len; ++i) {
c._presets.custom[g_user.weightscales[i].id] = g_user.weightscales[i];
}
@ -1322,7 +1314,7 @@ function fi_presetSave() {
c.parentNode.onchange();
var o = $('#sdkgnsdkn436 option[value=' + scale.id + ']').get(0);
if(o) {
if (o) {
o.text = scale.name;
o.selected = true;
o.parentNode.onchange();
@ -1342,37 +1334,31 @@ function fi_presetDelete() {
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),
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
if (o.value && confirm(LANG.confirm_deleteweightscale)) {
$.post('?account=weightscales', { 'delete': 1, id: o.value });
g_user.weightscales = array_filter(g_user.weightscales, function(x) {
g_user.weightscales = $WH.array_filter(g_user.weightscales, function(x) {
return x.id != o.value;
});
if(g_user.weightscales.length) {
if (g_user.weightscales.length) {
c._presets = { custom: {} };
for(var i = 0, len = g_user.weightscales.length; i < len; ++i) {
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);
$WH.de(c);
}
de(o);
$WH.de(o);
// sarjuuk: change() - manually triggers an onChange event on X
$('#fi_presets select').change();
}
}
@ -1395,7 +1381,7 @@ function fi_scoreSockets(item) {
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)) {
if (t.socketLevel <= item.level && (t.uniqEquip == 0 || $WH.in_array(mUniq, t.id) < 0)) {
match += t.score;
mGems.push(t.id);
@ -1416,7 +1402,7 @@ function fi_scoreSockets(item) {
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)) {
if (t.socketLevel <= item.level && (t.uniqEquip == 0 || $WH.in_array(bUniq, t.id) < 0)) {
best += t.score;
bGems.push(t.id);
@ -1463,7 +1449,7 @@ function fi_scoreSockets(item) {
this._maxScore = item.score;
}
if(this._upgradeIds && in_array(this._upgradeIds, item.id) != -1) {
if(this._upgradeIds && $WH.in_array(this._upgradeIds, item.id) != -1) {
this._minScore = item.score;
item.upgraded = 1;
}
@ -1478,29 +1464,26 @@ function fi_dropdownSync(_this) {
function fi_init(type) {
fi_type = type;
var s = ge('fi_subcat');
var s = $WH.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;
Menu.add(s, g_initPath.lastIt[3]);
}
}
else if (s) {
de(s.parentNode);
$WH.de(s.parentNode);
}
fi_initCriterion(ge('fi_criteria'), 'cr[]', type);
fi_initCriterion($WH.ge('fi_criteria'), 'cr[]', type);
if (type == 'items') {
var foo = ge('fi_presets');
var foo = $WH.ge('fi_presets');
if (foo) {
fi_initPresets(ge('fi_presets'));
fi_initCriterion(ge('fi_weight'), 'wt[]', type);
fi_initPresets($WH.ge('fi_presets'));
fi_initCriterion($WH.ge('fi_weight'), 'wt[]', type);
}
}
var ma = ge('ma-0');
var ma = $WH.ge('ma-0');
if (ma.getAttribute('checked')) {
ma.checked = true;
}
@ -1509,10 +1492,10 @@ function fi_init(type) {
function fi_initCriterion(_this, sname, type) {
var div = _this.firstChild;
var s = ce('select');
var s = $WH.ce('select');
s.name = sname;
s.onchange = s.onkeyup = fi_criterionChange.bind(0, s);
ae(s, ce('option'));
$WH.ae(s, $WH.ce('option'));
var group = null;
var langref = LANG['fi' + type];
@ -1526,13 +1509,13 @@ function fi_initCriterion(_this, sname, type) {
if (!p.type) {
if (group && group.childNodes.length > 0) {
ae(s, group);
$WH.ae(s, group);
}
group = ce('optgroup');
group = $WH.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');
var o = $WH.ce('option');
o.value = p.id;
var txt = LANG.traits[p.name] ? LANG.traits[p.name][0] : langref[p.name];
@ -1540,32 +1523,32 @@ function fi_initCriterion(_this, sname, type) {
txt = '- ' + txt;
}
ae(o, ct(txt));
ae(group, o);
$WH.ae(o, $WH.ct(txt));
$WH.ae(group, o);
}
}
if (group && group.childNodes.length > 0) {
ae(s, group);
$WH.ae(s, group);
}
ae(div, s);
$WH.ae(div, s);
}
function fi_initPresets(_this) {
var
_class,
s = ce('select');
s = $WH.ce('select');
s.onchange = s.onkeyup = fi_presetClass.bind(0, s, 0);
ae(s, ce('option'));
$WH.ae(s, $WH.ce('option'));
if (g_user.weightscales != null && g_user.weightscales.length) {
var o = ce('option');
var o = $WH.ce('option');
o.value = -1;
o._presets = { custom: {} };
ae(o, ct(LANG.ficustom));
ae(s, o);
$WH.ae(o, $WH.ct(LANG.ficustom));
$WH.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];
@ -1578,68 +1561,68 @@ function fi_initPresets(_this) {
}
temp.sort(function (a, b) {
return strcmp(g_chr_classes[a], g_chr_classes[b]);
return $WH.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 = $WH.ce('option');
o.value = c;
o._presets = wt_presets[c];
ae(o, ct(g_chr_classes[c]));
ae(s, o);
$WH.ae(o, $WH.ct(g_chr_classes[c]));
$WH.ae(s, o);
}
ae(_this, s);
$WH.ae(_this, s);
var _ = ce('span');
var _ = $WH.ce('span');
_.style.display = 'none';
var s = ce('select');
var s = $WH.ce('select');
s.id = 'sdkgnsdkn436';
s.onchange = s.onkeyup = fi_presetChange.bind(0, s);
ae(s, ce('option'));
$WH.ae(s, $WH.ce('option'));
ae(_, ct(' '));
ae(_, s);
ae(_this, _);
ae(_this, ct(String.fromCharCode(160, 160)));
$WH.ae(_, $WH.ct(' '));
$WH.ae(_, s);
$WH.ae(_this, _);
$WH.ae(_this, $WH.ct(String.fromCharCode(160, 160)));
var a = ce('a');
var a = $WH.ce('a');
a.href = 'javascript:;';
a.id = 'fi_detail';
a.appendChild(ct(LANG.fishowdetails));
a.appendChild($WH.ct(LANG.fishowdetails));
a.onclick = fi_presetDetails;
a.onmousedown = rf;
ae(_this, a);
a.onmousedown = $WH.rf;
$WH.ae(_this, a);
if(g_user.id > 0) {
ae(_this, ct(String.fromCharCode(160, 160)));
$WH.ae(_this, $WH.ct(String.fromCharCode(160, 160)));
a = ce('a');
a = $WH.ce('a');
a.href = 'javascript:;';
a.className = 'save-icon';
a.appendChild(ct(LANG.fisavescale));
a.appendChild($WH.ct(LANG.fisavescale));
a.onclick = fi_presetSave;
a.onmousedown = rf;
ae(_this, a);
a.onmousedown = $WH.rf;
$WH.ae(_this, a);
ae(_this, ct(String.fromCharCode(160, 160)));
$WH.ae(_this, $WH.ct(String.fromCharCode(160, 160)));
a = ce('a');
a = $WH.ce('a');
a.href = 'javascript:;';
a.id = 'fi_remscale';
a.className = 'clear-icon';
a.style.display = 'none';
a.appendChild(ct(LANG.fideletescale));
a.appendChild($WH.ct(LANG.fideletescale));
a.onclick = fi_presetDelete;
a.onmousedown = rf;
ae(_this, a);
a.onmousedown = $WH.rf;
$WH.ae(_this, a);
}
var helpLink = ge('statweight-help');
var helpLink = $WH.ge('statweight-help');
if (helpLink) {
g_addTooltip(helpLink, LANG.tooltip_statweighting, 'q');
}
@ -1721,7 +1704,7 @@ function fi_getExtraCols(wt, gm, pu) {
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));
return $WH.strcmp((a.gems ? a.gems.length: 0), (b.gems ? b.gems.length: 0));
}
});
}
@ -1732,14 +1715,14 @@ function fi_getExtraCols(wt, gm, pu) {
width: '7%',
value: 'score',
compute: function (item, td) {
var a = ce('a');
var a = $WH.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)));
$WH.ae(a, $WH.ct(fi_convertScore(item.score, this._scoreMode, this._maxScore)));
ae(td, a);
$WH.ae(td, a);
}
});
}
@ -1779,7 +1762,7 @@ function fi_getReputationCols(factions) {
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)) }");
eval("col.sortFunc = function(a, b, col) { var _ = Listview.funcBox.getQuestReputation; return $WH.strcmp(_(" + factions[i][0] + ", a), _(" + factions[i][0] + ", b)) }");
res.push(col);
}
@ -1798,18 +1781,13 @@ function fi_mergeFilterParams(oldParam, newParam, menuUrl) {
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);
menuJson = fi_filterParamToJson($WH.g_parseQueryString(menuUrl.replace(/^.*?filter=/, 'filter=')).filter);
newJson = fi_removeMenuCriteria(newJson, menuJson);
}
// original code for reference
// var jsonParam = $.extend(newJson, oldJson);
var combinedJson = $.extend(newJson, oldJson); // Existing filter params have priority over new ones
for (i in oldJson) { // Existing filter params have priority over new ones
newJson[i] = oldJson[i];
}
return fi_filterJsonToParam(newJson);
return fi_filterJsonToParam(combinedJson);
}
function fi_removeMenuCriteria(json, menu) {
@ -1822,20 +1800,8 @@ function fi_removeMenuCriteria(json, menu) {
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);
$WH.array_walk(parts, function(part) {
var pos = $WH.in_array(filters.cr, part);
if (pos != -1) {
filters.cr.splice(pos, 1);
filters.crs.splice(pos, 1);
@ -1860,14 +1826,8 @@ function fi_filterParamToJson(filters) {
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);
$WH.array_walk(parts, function(part){
$WH.g_splitQueryParam(part, result);
});
}
@ -1879,20 +1839,9 @@ function fi_filterJsonToParam(json) {
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) {
$WH.array_walk(json, function(value, _, __, name) {
if (value !== '') {
if (i++ > 0) {
result += ';';
}
result += name + '=' + value;

File diff suppressed because it is too large Load diff

View file

@ -1525,12 +1525,16 @@ var g_quest_sorts = {
var g_quest_types = {
0: 'Normal',
1: 'Gruppe',
81: 'Dungeon',
62: 'Schlachtzug',
21: 'Leben',
41: 'PvP',
62: 'Schlachtzug',
81: 'Dungeon',
82: 'Weltereignis',
83: 'Legendär',
84: 'Eskorte',
85: 'Heroisch'
85: 'Heroisch',
88: 'Schlachtzug (10)',
89: 'Schlachtzug (25)'
};
var g_sides = {
@ -1570,6 +1574,21 @@ var g_spell_resistances = {
6: 'Arkan'
};
var g_spell_categories = {
'-13': 'Glyphen',
'-11': 'Sachverstand',
'-8': 'NPC-Fähigkeiten',
'-7': 'Begleitertalente',
'-6': 'Haustiere',
'-5': 'Reittiere',
'-4': 'Völkerfertigkeiten',
'-3': 'Begleiterfertigkeiten',
'-2': 'Talente',
7: 'Klassenfertigkeiten',
9: 'Nebenberufe',
11: 'Berufe'
};
var g_spell_types = {
"-11": {
1: 'Waffen',
@ -3700,6 +3719,8 @@ var LANG = {
menu_newprofile: "Neues individuelles Profil",
menu_chooseclassspec: "Wählt Eure Klasse/Spezialisierung",
pr_selectregion: "Wählt eine Region",
pr_menu_equip: "Anlegen...",
pr_menu_replace: "Ersetzen...",
pr_menu_add: "Hinzufügen...",

View file

@ -1570,12 +1570,16 @@ var g_quest_sorts = {
var g_quest_types = {
0: 'Normal',
1: 'Group',
81: 'Dungeon',
62: 'Raid',
21: 'Life',
41: 'PvP',
62: 'Raid',
81: 'Dungeon',
82: 'World Event',
83: 'Legendary',
84: 'Escort',
85: 'Heroic'
85: 'Heroic',
88: 'Raid (10)',
89: 'Raid (25)'
};
var g_sides = {
@ -1615,6 +1619,21 @@ var g_spell_resistances = {
6: 'Arcane'
};
var g_spell_categories = {
'-13': 'Glyphs',
'-11': 'Proficiencies',
'-8': 'NPC Abilities',
'-7': 'Pet Talents',
'-6': 'Companions',
'-5': 'Mounts',
'-4': 'Racial Traits',
'-3': 'Pet Skills',
'-2': 'Talents',
7: 'Class Skills',
9: 'Secondary Skills',
11: 'Professions'
};
var g_spell_types = {
"-11": {
1: 'Weapons',
@ -3745,6 +3764,8 @@ var LANG = {
menu_newprofile: "New Custom Profile",
menu_chooseclassspec: "Choose Your Class/Spec",
pr_selectregion: "Select a region",
pr_menu_equip: "Equip...",
pr_menu_replace: "Replace...",
pr_menu_add: "Add...",

View file

@ -1525,12 +1525,16 @@ var g_quest_sorts = {
var g_quest_types = {
0: 'Normal',
1: 'Grupo',
81: 'Mazmorra',
62: 'Banda',
21: 'Vida',
41: 'JcJ',
62: 'Banda',
81: 'Mazmorra',
82: 'Suceso mundial',
83: 'Legendaria',
84: 'Acompañante',
85: 'Heroico'
85: 'Heroico',
88: 'Banda (10)',
89: 'Banda (25)'
};
var g_sides = {
@ -1570,6 +1574,21 @@ var g_spell_resistances = {
6: 'Arcano'
};
var g_spell_categories = {
'-13': 'Glifos',
'-11': 'Proficiencies',
'-8': 'Habilidades de PNJ',
'-7': 'Talentos de mascotas',
'-6': 'Compañeros',
'-5': 'Monturas',
'-4': 'Habilidades de raza',
'-3': 'Habilidades de mascota',
'-2': 'Talentos',
7: 'Habilidades',
9: 'Habilidades secundarias',
11: 'Habilidades'
};
var g_spell_types = {
"-11": {
1: 'Armas',

View file

@ -1512,12 +1512,16 @@ var g_quest_sorts = {
var g_quest_types = {
0: 'Standard',
1: 'Groupe',
81: 'Donjon',
62: 'Raid',
21: 'Vie',
41: 'JcJ',
62: 'Raid',
81: 'Donjon',
82: 'Événement mondial',
83: 'Légendaire',
84: 'Escorte',
85: 'Héroïque'
85: 'Héroïque',
88: 'Raid (10)',
89: 'Raid (25)'
};
var g_sides = {
@ -1556,6 +1560,21 @@ var g_spell_resistances = {
5: 'Ombre',
6: 'Arcane'
};
var g_spell_categories = {
'-13': 'Glyphes',
'-11': 'Compétences',
'-8': 'Habilité de PNJ',
'-7': 'Talents de familiers',
'-6': 'Compagnons',
'-5': 'Montures',
'-4': 'Traits raciaux',
'-3': 'Habilité de familier',
'-2': 'Talents',
7: 'Techniques',
9: 'Compétences secondaires',
11: 'Métiers'
};
var g_spell_types = {
"-11": {
@ -3664,9 +3683,9 @@ var LANG = {
pr_datasource: 'Les données dans cette table ont été updatées $2 par <a href="?user=$1" target="_blank">$1</a> en utilisant le <a href="?client" target="_blank"> Client Wowhead</a>.',
pr_purgedata: "Cliquer pour supprimer toutes les données d'accomplissement dans l'onglet présent.<br />Seul l'utilisateur qui a uploadé les données peut les effacer.",
message_nocharacterselected: "Aucun personnage sélectionné.",
message_nocharacterselected: "Aucun personnage sélectionné.",
message_toomanycharacters: "Veuillez sélectionner 1 seul personnage.",
message_noprofileselected: "Aucun profile de sélectionné.",
message_noprofileselected: "Aucun profile de sélectionné.",
message_norowselected: "Veuillez sélectionner un ou plusieurs objets à $1 de cette liste.",
message_characterresync: "Une resynchronisation de l'Armurerie a été demandée pour le personnage sélectionné.",
message_resyncerror: "Une erreur est survenue lors de la resynchronisation de ce personnage:",
@ -3678,7 +3697,7 @@ var LANG = {
message_missingrealm: "Veuillez sélectionner un royaume.",
message_missingcharacter: "Veuillez entrer un nom de personnage.",
message_profilenotsaved: "$1Attention:$2 Vos changements n'ont pas été sauvegardés!",
message_nosignatureselected: "Aucune signature de sélectionnée.",
message_nosignatureselected: "Aucune signature de sélectionnée.",
message_toomanysignatures: "Veuillez sélectionner 1 seule signature.",
message_nosigbookmarks: "Vous n'avez signé aucun personnage. Veuillez en ajouter pour continuer.",
message_bookmarkforsig: "Veuillez mettre ce personnage en favori avant de créer une signature.",
@ -3945,30 +3964,30 @@ var LANG = {
pr_note_view: "Vue : ",
pr_note_type: "Type : ",
pr_note_name: "Nom : ",
pr_note_family: "Famille : ",
pr_note_sort: "Trier par : ",
pr_note_family: "Famille : ",
pr_note_sort: "Trier par : ",
ddaysago: "$1 jours avant",
ddaysago: "$1 jours avant",
pr_note_all: "Tous",
pr_note_bc: "BC",
pr_note_subcategories: "Sous-catégories",
pr_note_subcategories: "Sous-catégories",
pr_note_earned: "Accomplis",
pr_note_complete: "Complète",
pr_note_incomplete: "Incomplet",
pr_note_excluded: "Exclus",
pr_note_excluded: "Exclus",
pr_note_items: "Objets",
pr_note_match: "Critère",
pr_note_profs: "Métiers",
pr_note_wotlk: "WotLK",
pr_note_wotlk: "WotLK",
pr_note_usable: "Utilisable",
pr_note_known: "Connu",
pr_note_missing: "Manquant",
pr_note_normal: "Standard",
pr_note_normal: "Standard",
pr_note_exotic: "Exotique",
pr_note_weighted:"Valorisé", /* some relic text..? */
pr_note_weighted:"Valorisé", /* some relic text..? */
su_notice: 'Première visite? &ndash; Ne soyez pas intimidé! Vous n\'avez qu\'à lire notre <a href="?help=item-comparison" target="_blank">page d\'aide</a> !',
su_itemtip: "Conseil: Tenir Shift enfoncé ou clique-droit sur l'objet pour plus d'options.",

View file

@ -1512,12 +1512,16 @@ var g_quest_sorts = {
var g_quest_types = {
0: 'Обычный',
1: 'Группа',
81: 'Подземелье',
62: 'Рейд',
21: 'Жизнь',
41: 'PvP',
62: 'Рейд',
81: 'Подземелье',
82: 'Событие',
83: 'Легенда',
84: 'Сопровождение',
85: 'Героический'
85: 'Героический',
88: 'Рейд (10)',
89: 'Рейд (25)'
};
var g_sides = {
@ -1557,6 +1561,21 @@ var g_spell_resistances = {
6: 'Тайная магия'
};
var g_spell_categories = {
'-13': 'Символы',
'-11': 'Умения',
'-8': 'Способности НИП',
'-7': 'Таланты питомцев',
'-6': 'Спутники',
'-5': 'Транспорт',
'-4': 'Классовые навыки',
'-3': 'Способности питомцев',
'-2': 'Таланты',
7: 'Способности',
9: 'Вторичные навыки',
11: 'Профессии'
};
var g_spell_types = {
"-11": {
1: 'Оружие',

View file

@ -1,17 +1,17 @@
function ma_Init() {
ma_AddOptions(ge('maps-ek'), [1, 3, 4, 8, 10, 11, 12, 28, 33, 36, 38, 40, 41, 44, 45, 46, 47, 51, 85, 130, 139, 267, 1497, 1519, 1537, 3430, 3433, 3487, 4080, 4298]);
ma_AddOptions(ge('maps-kalimdor'), [14, 15, 16, 17, 141, 148, 215, 331, 357, 361, 400, 405, 406, 440, 490, 493, 618, 1377, 1637, 1638, 1657, 3524, 3525, 3557]);
ma_AddOptions(ge('maps-outland'), [3483, 3518, 3519, 3520, 3521, 3522, 3523, 3703]);
ma_AddOptions(ge('maps-northrend'), [65, 66, 67, 210, 394, 495, 2817, 3537, 3711, 4197, 4395, 4742]);
ma_AddOptions(ge('maps-battlegrounds'), [2597, 3277, 4384, 3358, 3820, 4710]);
ma_AddOptions(ge('maps-raids'), [
ma_AddOptions($WH.ge('maps-ek'), [1, 3, 4, 8, 10, 11, 12, 28, 33, 36, 38, 40, 41, 44, 45, 46, 47, 51, 85, 130, 139, 267, 1497, 1519, 1537, 3430, 3433, 3487, 4080, 4298]);
ma_AddOptions($WH.ge('maps-kalimdor'), [14, 15, 16, 17, 141, 148, 215, 331, 357, 361, 400, 405, 406, 440, 490, 493, 618, 1377, 1637, 1638, 1657, 3524, 3525, 3557]);
ma_AddOptions($WH.ge('maps-outland'), [3483, 3518, 3519, 3520, 3521, 3522, 3523, 3703]);
ma_AddOptions($WH.ge('maps-northrend'), [65, 66, 67, 210, 394, 495, 2817, 3537, 3711, 4197, 4395, 4742]);
ma_AddOptions($WH.ge('maps-battlegrounds'), [2597, 3277, 4384, 3358, 3820, 4710]);
ma_AddOptions($WH.ge('maps-raids'), [
1977, 2677, 2717, 3428, 3429, // Classic: Zul'Gurub, Blackwing Lair, Molten Core, Ahn'Qiraj, Ruins of Ahn'Qiraj
3457, 3606, 3607, 3805, 3836, // BC: Karazhan, Hyjal Summit, Serpentshrine Cavern, Zul'Aman, Magtheridon's Lair
3845, 3923, 3959, 4075, // BC: Tempest Keep, Gruul's Lair, Black Temple, Sunwell Plateau
2159, 3456, 4273, 4493, 4500, // WotLK: Onyxia's Lair, Naxxramas, Ulduar, The Obsidian Sanctum, The Eye of Eternity
4603, 4722, 4812, 4987 // WotlK: Vault of Archavon, Trial of the Crusader, Icecrown Citadel, The Ruby Sanctum
]);
ma_AddOptions(ge('maps-dungeons'), [
ma_AddOptions($WH.ge('maps-dungeons'), [
209, 491, 717, 718, 719, // Classic: Shadowfang Keep, Razorfen Kraul, The Stockade, Wailing Caverns, Blackfathom Deeps
721, 722, 796, 1176, 1337, // Classic: Gnomeregan, Razorfen Downs, Scarlet Monastery, Zul'Farrak, Uldaman
1477, 1581, 1583, 1584, 2017, // Classic: The Temple of Atal'Hakkar, The Deadmines, Blackrock Spire, Blackrock Depths, Stratholme
@ -38,7 +38,7 @@ function ma_Init() {
if (_ != -1) {
_ = location.href.substr(_ + 5);
if (myMapper.setLink(_)) {
ge('mapper').style.display = '';
$WH.ge('mapper').style.display = '';
}
}
}
@ -46,11 +46,11 @@ function ma_Init() {
function ma_AddOptions(s, a) {
a.sort(ma_Sort);
array_apply(a, function (x) {
var o = ce('option');
$WH.array_apply(a, function (x) {
var o = $WH.ce('option');
o.value = x
ae(o, ct(g_zones[typeof x == 'string' ? parseInt(x) : x]));
ae(s, o);
$WH.ae(o, $WH.ct(g_zones[typeof x == 'string' ? parseInt(x) : x]));
$WH.ae(s, o);
});
}
@ -63,13 +63,13 @@ function ma_Sort(a, b) {
b = parseInt(b);
}
return strcmp(g_zones[a], g_zones[b]);
return $WH.strcmp(g_zones[a], g_zones[b]);
}
function ma_ChooseZone(s) {
if (s.value && s.value != '0') {
if (myMapper.getZone() == 0) {
ge('mapper').style.display = '';
$WH.ge('mapper').style.display = '';
}
myMapper.setZone(s.value);
@ -87,5 +87,5 @@ function ma_UpdateLink(_) {
b += '=' + l;
}
ge('link-to-this-map').href = b;
$WH.ge('link-to-this-map').href = b;
};

View file

@ -12,15 +12,15 @@ function pc_init() {
g_initPath([1, 2]);
ge('pc-classes').className = 'choose';
$WH.ge('pc-classes').className = 'choose';
var
families = g_sortJsonArray(g_pet_families, g_pet_families),
div = ce('div');
div = $WH.ce('div');
div.className = 'pc-classes-inner-family';
_ = ge('pc-classes-inner');
_ = $WH.ge('pc-classes-inner');
for (var i = 0, len = families.length; i < len; ++i) {
var
classId = families[i],
@ -29,7 +29,7 @@ function pc_init() {
pc_classIcons[classId] = icon;
if (Browser.ie6) {
if ($WH.Browser.ie6) {
link.onfocus = tb;
}
@ -37,17 +37,17 @@ function pc_init() {
link.onmouseover = pc_classOver.bind(link, classId);
link.onmouseout = Tooltip.hide;
ae(div, icon);
$WH.ae(div, icon);
}
ae(_, div);
$WH.ae(_, div);
clear = ce('div');
clear = $WH.ce('div');
clear.className = 'clear';
ae(div, clear);
$WH.ae(div, clear);
clear = ce('div');
clear = $WH.ce('div');
clear.className = 'clear';
ae(_, clear);
$WH.ae(_, clear);
pc_object = new TalentCalc();
pc_object.initialize('pc-itself', {
@ -55,7 +55,7 @@ function pc_init() {
mode: TalentCalc.MODE_PET
});
ge('pc-itself').className += ' choose';
$WH.ge('pc-itself').className += ' choose';
pc_readPound();
setInterval(pc_readPound, 1000);
@ -78,11 +78,11 @@ function pc_onChange(tc, info, data) {
if (info.classId != pc_classId) { // Class change
if (!pc_loaded) {
_ = ge('pc-itself');
_ = $WH.ge('pc-itself');
_.className = _.className.replace('choose', '');
_ = ge('pc-classes');
de(gE(_, 'p')[0]); // Removes 'Choose a pet family:'
_ = $WH.ge('pc-classes');
$WH.de($WH.gE(_, 'p')[0]); // Removes 'Choose a pet family:'
_.className = '';
pc_loaded = true;

View file

@ -13,11 +13,11 @@ function tc_init() {
g_initPath([1, 0]);
ge('tc-classes').className = 'choose';
$WH.ge('tc-classes').className = 'choose';
var classes = g_sortJsonArray(g_chr_classes, g_chr_classes);
_ = ge('tc-classes-inner');
_ = $WH.ge('tc-classes-inner');
for (var i = 0, len = classes.length; i < len; ++i) {
var
classId = classes[i],
@ -26,7 +26,7 @@ function tc_init() {
tc_classIcons[classId] = icon;
if (Browser.ie6) {
if ($WH.Browser.ie6) {
link.onfocus = tb;
}
@ -34,11 +34,11 @@ function tc_init() {
link.onmouseover = tc_classOver.bind(link, classId);
link.onmouseout = Tooltip.hide;
ae(_, icon);
$WH.ae(_, icon);
}
clear = ce('div');
clear = $WH.ce('div');
clear.className = 'clear';
ae(_, clear);
$WH.ae(_, clear);
tc_object = new TalentCalc();
tc_object.initialize('tc-itself', {
@ -46,7 +46,7 @@ function tc_init() {
mode: TalentCalc.MODE_DEFAULT
});
ge('tc-itself').className += ' choose';
$WH.ge('tc-itself').className += ' choose';
tc_readPound();
setInterval(tc_readPound, 1000);
@ -69,11 +69,11 @@ function tc_onChange(tc, info, data) {
if (info.classId != tc_classId) { // Class change
if (!tc_loaded) {
_ = ge('tc-itself');
_ = $WH.ge('tc-itself');
_.className = _.className.replace('choose', '');
_ = ge('tc-classes');
de(gE(_, 'p')[0]); // Removes 'Choose a class:'
_ = $WH.ge('tc-classes');
$WH.de($WH.gE(_, 'p')[0]); // Removes 'Choose a class:'
_.className = '';
tc_loaded = true;

View file

@ -18,16 +18,16 @@
<div id="home">
<span id="menu_buttons-generic" class="menu-buttons"></span>
<script type="text/javascript">
Menu.addButtons(ge('menu_buttons-generic'), mn_path);
Menu.addButtons($WH.ge('menu_buttons-generic'), mn_path);
</script>
<div class="pad"></div>
<form method="get" action="." onsubmit="if(trim(this.elements[0].value) == '') return false">
<form method="get" action="." onsubmit="if($WH.trim(this.elements[0].value) == '') return false">
<input type="text" name="search" size="38" id="livesearch-generic" /><input type="submit" value="{$lang.searchButton}" />
</form>
<script type="text/javascript">var _ = ge('livesearch-generic'); LiveSearch.attach(_); _.focus();</script>
<script type="text/javascript">var _ = $WH.ge('livesearch-generic'); LiveSearch.attach(_); _.focus();</script>
{if isset($news)}
<div class="news">

View file

@ -25,7 +25,7 @@
<div id="h1-icon-generic" class="h1-icon"></div>
<script type="text/javascript">//<![CDATA[
ge('h1-icon-generic').appendChild(Icon.create('{$lvData.page.icon}', 1));
$WH.ge('h1-icon-generic').appendChild(Icon.create('{$lvData.page.icon}', 1));
//]]></script>
<h1 class="h1-icon">{if isset($lvData.page.expansion)}<span class="{$lvData.page.expansion}-icon-right">{$lvData.page.name}</span>{else}{$lvData.page.name}{/if}</h1>
@ -38,7 +38,7 @@
<div id="tabs-generic"></div>
<div id="listview-generic" class="listview"></div>
<script type="text/javascript">//<![CDATA[
var tabsRelated = new Tabs({ldelim}parent: ge('tabs-generic'){rdelim});
var tabsRelated = new Tabs({ldelim}parent: $WH.ge('tabs-generic'){rdelim});
{if isset($lvData.gallery)} {include file='bricks/listviews/model.tpl' data=$lvData.gallery.data params=$lvData.gallery.params } {/if}
{if isset($lvData.tameable)} {include file='bricks/listviews/creature.tpl' data=$lvData.tameable.data params=$lvData.tameable.params } {/if}
{if isset($lvData.abilities)} {include file='bricks/listviews/spell.tpl' data=$lvData.abilities.data params=$lvData.abilities.params} {/if}

View file

@ -16,7 +16,7 @@
<div id="tabs-generic"></div>
<div id="listview-generic" class="listview"></div>
<script type="text/javascript">
var myTabs = new Tabs({ldelim}parent: ge('tabs-generic'){rdelim});
var myTabs = new Tabs({ldelim}parent: $WH.ge('tabs-generic'){rdelim});
{foreach from=$found item="f"}
{include file="bricks/listviews/`$f.file`.tpl" data=$f.data params=$f.params}
{/foreach}

View file

@ -34,8 +34,8 @@
<div style="clear: left"></div>
<script type="text/javascript">
ge('headicon-generic').appendChild(Icon.create('{$lvData.page.icon}', 2, 0, 0, {$lvData.page.stack}));
Tooltip.fix(ge('tooltip{$lvData.page.id}-generic'), 1, 1);
$WH.ge('headicon-generic').appendChild(Icon.create('{$lvData.page.icon}', 2, 0, 0, {$lvData.page.stack}));
Tooltip.fix($WH.ge('tooltip{$lvData.page.id}-generic'), 1, 1);
</script>
{if !empty($lvData.page.buff)}
@ -44,7 +44,7 @@
<table><tr><td>{$lvData.page.buff}</td><th style="background-position: top right"></th></tr><tr><th style="background-position: bottom left"></th><th style="background-position: bottom right"></th></tr></table>
</div>
<script type="text/javascript">
Tooltip.fixSafe(ge('btt{$lvData.page.id}'), 1, 1)
Tooltip.fixSafe($WH.ge('btt{$lvData.page.id}'), 1, 1)
</script>
{/if}
@ -57,7 +57,7 @@
</table>
<script type="text/javascript">
{section name=i loop=$lvData.page.reagents}
ge('iconlist-icon{$iconlist2++}').appendChild(g_items.createIcon({$lvData.page.reagents[i].entry}, 0, {$lvData.page.reagents[i].count}));
$WH.ge('iconlist-icon{$iconlist2++}').appendChild(g_items.createIcon({$lvData.page.reagents[i].entry}, 0, {$lvData.page.reagents[i].count}));
{/section}
</script>
{if $lvData.page.tools}</div>{/if}{/if}
@ -70,7 +70,7 @@
</table>
<script type="text/javascript">
{section name=i loop=$lvData.page.tools}{if isset($lvData.page.tools[i].itemId)}
ge('iconlist-icon{$iconlist2++}').appendChild(g_items.createIcon({$lvData.page.tools[i].itemId}, 0, 1));
$WH.ge('iconlist-icon{$iconlist2++}').appendChild(g_items.createIcon({$lvData.page.tools[i].itemId}, 0, 1));
{/if}{/section}
</script>
{if $lvData.page.reagents}</div>{/if}{/if}
@ -173,7 +173,7 @@
</tr>
</table>
<script type="text/javascript">
ge('icontab-icon{$smarty.section.i.index}').appendChild({if isset($lvData.page.effect[i].icon.quality)}g_items{else}g_spells{/if}.createIcon({$lvData.page.effect[i].icon.id}, 1, {$lvData.page.effect[i].icon.count}));
$WH.ge('icontab-icon{$smarty.section.i.index}').appendChild({if isset($lvData.page.effect[i].icon.quality)}g_items{else}g_spells{/if}.createIcon({$lvData.page.effect[i].icon.id}, 1, {$lvData.page.effect[i].icon.count}));
</script>
{/if}
</td>
@ -188,7 +188,7 @@
<div id="tabs-generic"></div>
<div id="listview-generic" class="listview"></div>
<script type="text/javascript">//<![CDATA[
var tabsRelated = new Tabs({ldelim}parent: ge('tabs-generic'){rdelim});
var tabsRelated = new Tabs({ldelim}parent: $WH.ge('tabs-generic'){rdelim});
{if isset($lvData.modifiedBy)} {include file='bricks/listviews/spell.tpl' data=$lvData.modifiedBy.data params=$lvData.modifiedBy.params } {/if}
{if isset($lvData.modifies)} {include file='bricks/listviews/spell.tpl' data=$lvData.modifies.data params=$lvData.modifies.params } {/if}
{if isset($lvData.seeAlso)} {include file='bricks/listviews/spell.tpl' data=$lvData.seeAlso.data params=$lvData.seeAlso.params } {/if}

View file

@ -31,7 +31,7 @@
<div id="tabs-generic"></div>
<div id="listview-generic" class="listview"></div>
<script type="text/javascript">//<![CDATA[
var tabsRelated = new Tabs({ldelim}parent: ge('tabs-generic'){rdelim});
var tabsRelated = new Tabs({ldelim}parent: $WH.ge('tabs-generic'){rdelim});
{if isset($lvData.page.acvReward)} {include file='bricks/listviews/achievement.tpl' data=$lvData.page.acvReward params=$lvData.page.acvParams } {/if}
{if isset($lvData.page.questReward)} {include file='bricks/listviews/quest.tpl' data=$lvData.page.questReward params=$lvData.page.questParams} {/if}
new Listview({ldelim}template: 'comment', id: 'comments', name: LANG.tab_comments, tabs: tabsRelated, parent: 'listview-generic', data: lv_comments{rdelim});