TheLuda 027850c5e2 - Fix display of menu icons.
Signed-off-by: TheLuda <theluda@getmangos.com>
2012-09-19 17:44:44 +02:00

6062 lines
175 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

function $(C) {
if (arguments.length > 1) {
var D = [];
for (var B = 0, A = arguments.length; B < A; ++B) {
D.push($(arguments[B]))
}
return D
}
if (typeof C == "string") {
C = ge(C)
}
return C
}
function $E(A) {
if (!A) {
A = event
}
A._button = A.which ? A.which : A.button;
A._target = A.target ? A.target : A.srcElement;
return A
}
function $A(B) {
var D = [];
for (var C = 0, A = B.length; C < A; ++C) {
D.push(B[C])
}
return D
}
Function.prototype.bind = function () {
var A = this,
C = $A(arguments),
B = C.shift();
return function () {
return A.apply(B, C.concat($A(arguments)))
}
};
function strcmp(B, A) {
if (B == A) {
return 0
}
if (B == null) {
return -1
}
if (A == null) {
return 1
}
return B < A ? -1 : 1
}
function trim(A) {
return A.replace(/(^\s*|\s*$)/g, "")
}
function rtrim(B, C) {
var A = B.length;
while (--A > 0 && B.charAt(A) == C) {}
B = B.substring(0, A + 1);
if (B == C) {
B = ""
}
return B
}
function sprintf(C) {
for (var B = 1, A = arguments.length; B < A; ++B) {
C = C.replace("$" + B, arguments[B])
}
return C
}
function str_replace(C, B, A) {
while (C.indexOf(B) != -1) {
C = C.replace(B, A)
}
return C
}
function urlencode(A) {
A = encodeURIComponent(A);
A = str_replace(A, "+", "%2B");
return A
}
function number_format(A) {
A = "" + parseInt(A);
if (A.length <= 3) {
return A
}
return number_format(A.substr(0, A.length - 3)) + "," + A.substr(A.length - 3)
}
function in_array(B, E, F, D) {
if (B == null) {
return -1
}
if (F) {
return in_arrayf(B, E, F, D)
}
for (var C = D || 0, A = B.length; C < A; ++C) {
if (B[C] == E) {
return C
}
}
return -1
}
function in_arrayf(B, E, F, D) {
for (var C = D || 0, A = B.length; C < A; ++C) {
if (F(B[C]) == E) {
return C
}
}
return -1
}
function array_walk(C, F, B) {
var E;
for (var D = 0, A = C.length; D < A; ++D) {
E = F(C[D], B, C, D);
if (E != null) {
C[D] = E
}
}
}
function array_apply(C, F, B) {
var E;
for (var D = 0, A = C.length; D < A; ++D) {
F(C[D], B, C, D)
}
}
function ge(A) {
return document.getElementById(A)
}
function gE(A, B) {
return A.getElementsByTagName(B)
}
function ce(C, B) {
var A = document.createElement(C);
if (B) {
cOr(A, B)
}
return A
}
function de(A) {
A.parentNode.removeChild(A)
}
function ae(A, B) {
return A.appendChild(B)
}
function ct(A) {
return document.createTextNode(A)
}
function rf() {
return false
}
function rf2(A) {
A = $E(A);
if (A.ctrlKey || A.shiftKey || A.altKey || A.metaKey) {
return
}
return false
}
function tb() {
this.blur()
}
function ac(C) {
var B = 0,
A = 0;
while (C) {
B += C.offsetLeft;
A += C.offsetTop;
C = C.offsetParent
}
return [B, A]
}
function aE(B, C, A) {
if (Browser.ie) {
B.attachEvent("on" + C, A)
} else {
B.addEventListener(C, A, false)
}
}
function dE(B, C, A) {
if (Browser.ie) {
B.detachEvent("on" + C, A)
} else {
B.removeEventListener(C, A, false)
}
}
function sp(A) {
if (!A) {
A = event
}
if (Browser.ie) {
A.cancelBubble = true
} else {
A.stopPropagation()
}
}
function sc(F, G, B, D, E) {
var C = new Date();
var A = F + "=" + escape(B) + "; ";
C.setDate(C.getDate() + G);
A += "expires=" + C.toUTCString() + "; ";
if (D) {
A += "path=" + D + "; "
}
if (E) {
A += "domain=" + E + "; "
}
document.cookie = A
}
function dc(A) {
sc(A, -1)
}
function gc(D) {
var A, E;
if (!D) {
var B = [];
E = document.cookie.split("; ");
for (var C = 0; C < E.length; ++C) {
A = E[C].split("=");
B[A[0]] = unescape(A[1])
}
return B
} else {
A = document.cookie.indexOf(D + "=");
if (A != -1) {
if (A == 0 || document.cookie.substring(A - 2, A) == "; ") {
A += D.length + 1;
E = document.cookie.indexOf("; ", A);
if (E == -1) {
E = document.cookie.length
}
return unescape(document.cookie.substring(A, E))
}
}
}
return null
}
function ns(A) {
A.onmousedown = A.onselectstart = A.ondragstart = rf;
if (Browser.ie) {
A.onfocus = tb
}
}
function cO(C, A) {
for (var B in A) {
C[B] = A[B]
}
}
function cOr(C, A) {
for (var B in A) {
if (typeof A[B] == "object") {
if (!C[B]) {
C[B] = {}
}
cOr(C[B], A[B])
} else {
C[B] = A[B]
}
}
}
var Browser = {
ie: !! (window.attachEvent && !window.opera),
opera: !! window.opera,
safari: navigator.userAgent.indexOf("Safari") != -1,
gecko: navigator.userAgent.indexOf("Gecko") != -1 && navigator.userAgent.indexOf("KHTML") == -1
};
Browser.ie7 = Browser.ie && navigator.userAgent.indexOf("MSIE 7.0") != -1;
Browser.ie6 = Browser.ie && navigator.userAgent.indexOf("MSIE 6.0") != -1 && !Browser.ie7;
navigator.userAgent.match(/Gecko\/([0-9]+)/);
Browser.geckoVersion = parseInt(RegExp.$1) | 0;
var OS = {
windows: navigator.appVersion.indexOf("Windows") != -1,
mac: navigator.appVersion.indexOf("Macintosh") != -1,
linux: navigator.appVersion.indexOf("Linux") != -1
};
function g_getWindowSize() {
var B = 0,
A = 0;
if (typeof window.innerWidth == "number") {
B = window.innerWidth;
A = window.innerHeight
} else {
if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
B = document.documentElement.clientWidth;
A = document.documentElement.clientHeight
} else {
if (document.body && (document.body.clientWidth || document.body.clientHeight)) {
B = document.body.clientWidth;
A = document.body.clientHeight
}
}
}
return {
w: B,
h: A
}
}
function g_getScroll() {
var A = 0,
B = 0;
if (typeof (window.pageYOffset) == "number") {
A = window.pageXOffset;
B = window.pageYOffset
} else {
if (document.body && (document.body.scrollLeft || document.body.scrollTop)) {
A = document.body.scrollLeft;
B = document.body.scrollTop
} else {
if (document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop)) {
A = document.documentElement.scrollLeft;
B = document.documentElement.scrollTop
}
}
}
return {
x: A,
y: B
}
}
function g_getCursorPos(C) {
var B, D;
if (window.innerHeight) {
B = C.pageX;
D = C.pageY
} else {
var A = g_getScroll();
B = C.clientX + A.x;
D = C.clientY + A.y
}
return {
x: B,
y: D
}
}
function g_scrollTo(C, B) {
var M, K = g_getWindowSize(),
L = g_getScroll(),
I = K.w,
E = K.h,
G = L.x,
D = L.y;
C = $(C);
if (B == null) {
B = []
} else {
if (typeof B == "number") {
B = [B]
}
}
M = B.length;
if (M == 0) {
B[0] = B[1] = B[2] = B[3] = 0
} else {
if (M == 1) {
B[1] = B[2] = B[3] = B[0]
} else {
if (M == 2) {
B[2] = B[0];
B[3] = B[1]
} else {
if (M == 3) {
B[3] = B[1]
}
}
}
}
M = ac(C);
var A = M[0] - B[3];
var H = M[1] - B[0];
var J = M[0] + C.offsetWidth + B[1];
var F = M[1] + C.offsetHeight + B[2];
if (J - A > I || A < G) {
G = A
} else {
if (J - I > G) {
G = J - I
}
}
if (F - H > E || H < D) {
D = H
} else {
if (F - E > D) {
D = F - E
}
}
scrollTo(G, D)
}
function g_setTextNodes(C, B) {
if (C.nodeType == 3) {
C.nodeValue = B
} else {
for (var A = 0; A < C.childNodes.length; ++A) {
g_setTextNodes(C.childNodes[A], B)
}
}
}
function g_getTextContent(C) {
var A = "";
for (var B = 0; B < C.childNodes.length; ++B) {
if (C.childNodes[B].nodeValue) {
A += C.childNodes[B].nodeValue
} else {
if (C.childNodes[B].nodeName == "BR") {
if (Browser.ie) {
A += "\r"
} else {
A += "\n"
}
}
}
A += g_getTextContent(C.childNodes[B])
}
return A
}
function g_setSelectedLink(C, B) {
if (!g_setSelectedLink.groups) {
g_setSelectedLink.groups = {}
}
var A = g_setSelectedLink.groups;
if (A[B]) {
A[B].className = ""
}
C.className = "selected";
A[B] = C
}
function g_toggleDisplay(A) {
if (A.style.display == "none") {
A.style.display = "";
return true
} else {
A.style.display = "none";
return false
}
}
function g_initHeader(B) {
var H = ce("dl");
g_expandSite()
for (var G = 0, J = mn_path.length; G < J; ++G) {
var E = ce("dt");
var L = ce("a");
var I = ce("ins");
var F = ce("big");
var D = ce("span");
if (mn_path[G][0] != B) {
L.menu = mn_path[G][3];
L.onmouseover = Menu.show;
L.onmouseout = Menu.hide
}
if (mn_path[G][2]) {
L.href = mn_path[G][2]
} else {
L.href = "javascript:;";
ns(L);
L.style.cursor = "default"
}
if (B != null && mn_path[G][0] == B) {
L.className = "selected"
}
ae(F, ct(mn_path[G][1].charAt(0)));
ae(I, F);
ae(I, ct(mn_path[G][1].substr(1)));
ae(L, I);
ae(L, D);
ae(E, L);
ae(H, E)
}
ae(ge("toptabs-right-generic"), H);
var A = ge("menu-buttons-generic");
if (B != null && B >= 0 && B < mn_path.length) {
switch (B) {
case 0:
Menu.addButtons(A, Menu.explode(mn_database));
break;
case 1:
Menu.addButtons(A, mn_tools);
break;
case 2:
Menu.addButtons(A, Menu.explode(mn_more));
break;
}
} else {
ae(A, ct(String.fromCharCode(160)))
}
g_initLanguageChanger();
var M = ge("live-search-generic");
var K = M.previousSibling;
var C = M.parentNode;
ns(K);
K.onclick = function () {
this.parentNode.onsubmit()
};
if (M.value == "") {
M.className = "search-database"
}
M.onmousemove = function () {
if (trim(this.value) != "") {
M.className = ""
}
};
M.onfocus = function () {
M.className = ""
};
M.onblur = function () {
if (trim(this.value) == "") {
M.className = "search-database"
}
};
C.onsubmit = function () {
var N = this.elements[0].value;
if (trim(N) == "") {
return false
}
this.submit()
}
}
function g_initLanguageChanger() {
var A = ge("language-changer");
if (!A) {
return
}
A.menu = [[0, "English", (g_locale.id != 0 ? "?locale=0" : null)] /*, [NOTE] deactivated [0, "Русский", (g_locale.id != 8 ? "?locale=8" : null)]*/ ];
A.menu.rightAligned = 1;
if (g_locale.id != 25) {
A.menu[{
0: 0,
8: 1
}[g_locale.id]].checked = 1
}
A.onmouseover = Menu.show;
A.onmouseout = Menu.hide
}
function g_initPath(K, D) {
var G = mn_path,
H = null,
C = null,
L = 0,
I = ge("main-precontents"),
A = ce("div");
A.className = "path";
if (D != null) {
var J = ce("div");
J.className = "path-right";
var M = ce("a");
M.href = "javascript:;";
M.id = "fi_toggle";
ns(M);
M.onclick = fi_Toggle;
if (D) {
M.className = "disclosure-on";
ae(M, ct(LANG.fihide))
} else {
M.className = "disclosure-off";
ae(M, ct(LANG.fishow))
}
ae(J, M);
ae(I, J)
}
for (var F = 0; F < K.length; ++F) {
var M, B, N = 0;
for (var E = 0; E < G.length; ++E) {
if (G[E][0] == K[F]) {
N = 1;
G = G[E];
G.checked = 1;
break
}
}
if (!N) {
L = 1;
break
}
M = ce("a");
B = ce("span");
if (G[2]) {
M.href = G[2]
} else {
M.href = "javascript:;";
ns(M);
M.style.textDecoration = "none";
M.style.color = "white";
M.style.cursor = "default"
}
if (F < K.length - 1 && G[3]) {
B.className = "menuarrow"
}
ae(M, ct(G[4] == null ? G[1] : G[4]));
if (F == 0) {
M.menu = mn_path
} else {
M.menu = H[3]
}
M.onmouseover = Menu.show;
M.onmouseout = Menu.hide;
ae(B, M);
ae(A, B);
C = B;
H = G;
G = G[3];
if (!G) {
L = 1;
break
}
}
if (L && C) {
C.className = ""
}
var J = ce("div");
J.className = "clear";
ae(A, J);
ae(I, A);
g_initPath.lastIt = H
}
function g_formatTimeElapsed(D) {
function G(L, K, J) {
if (J && LANG.timeunitsab[K] == "") {
J = 0
}
if (J) {
return L + " " + LANG.timeunitsab[K]
} else {
return L + " " + (L == 1 ? LANG.timeunitssg[K] : LANG.timeunitspl[K])
}
}
var E = [31557600, 2629800, 604800, 86400, 3600, 60, 1];
var H = [1, 3, 3, -1, 5, -1, -1];
D = Math.max(D, 1);
for (var C = 3, F = E.length; C < F; ++C) {
if (D >= E[C]) {
var B = C;
var I = Math.floor(D / E[B]);
if (H[B] != -1) {
var A = H[B];
D %= E[B];
v2 = Math.floor(D / E[A]);
if (v2 > 0) {
return G(I, B, 1) + " " + G(v2, A, 1)
}
}
return G(I, B, 0)
}
}
return "(n/a)"
}
function g_formatDateSimple(E, A) {
function C(J) {
return (J < 10 ? "0" + J : J)
}
var H = "",
G = E.getDate(),
D = E.getMonth() + 1,
F = E.getFullYear();
H += sprintf(LANG.date_simple, C(G), C(D), F);
if (A == 1) {
var I = E.getHours() + 1,
B = E.getMinutes() + 1;
H += LANG.date_at + C(I) + ":" + C(B)
}
return H
}
function g_createGlow(A, G) {
var D = ce("span");
for (var C = -1; C <= 1; ++C) {
for (var B = -1; B <= 1; ++B) {
var F = ce("div");
F.style.position = "absolute";
F.style.whiteSpace = "nowrap";
F.style.left = C + "px";
F.style.top = B + "px";
if (C == 0 && B == 0) {
F.style.zIndex = 4
} else {
F.style.color = "black";
F.style.zIndex = 2
}
ae(F, ct(A));
ae(D, F)
}
}
D.style.position = "relative";
D.className = "glow" + (G != null ? " " + G : "");
var E = ce("span");
E.style.visibility = "hidden";
ae(E, ct(A));
ae(D, E);
return D
}
function g_appendReputation(G, F, D, E) {
G = $(G);
var B = ce("a");
B.href = "javascript:;";
B.className = "reputation";
var H = ce("div");
H.className = "reputation-text";
var A = ce("del");
ae(A, ct(g_reputation_standings[F]));
ae(H, A);
var C = ce("ins");
ae(C, ct(E));
ae(H, C);
ae(B, H);
H = ce("div");
H.className = "reputation-bar" + F;
if (D <= 0 || D > 100) {
H.style.visibility = "hidden"
}
H.style.width = D + "%";
ae(H, ct(String.fromCharCode(160)));
ae(B, H);
ae(G, B)
}
function g_convertRatingToPercent(E, A, D) {
var C = {
12: 1.5,
13: 12,
14: 15,
15: 5,
16: 10,
17: 10,
18: 8,
19: 14,
20: 14,
21: 14,
22: 0,
23: 0,
24: 0,
25: 0,
26: 0,
27: 0,
28: 10,
29: 10,
30: 10,
31: 10,
32: 14,
33: 0,
34: 0,
35: 25,
36: 10,
37: 2.5
};
if (E < 10) {
E = 10
} else {
if (E > 70) {
E = 70
}
}
if (D < 0) {
D = 0
}
var B;
if (C[A] == null) {
B = 0
} else {
f = C[A];
if (E >= 1 && E <= 59) {
B = D / f / ((1 / 52) * E - (8 / 52))
} else {
if (E >= 60 && E <= 70) {
B = D / f * ((-3 / 82) * E + (131 / 41))
} else {
B = 0
}
}
}
return B
}
function g_setRatingLevel(F, E, A, C) {
var D = prompt(LANG.prompt_ratinglevel, E);
if (D != null) {
D |= 0;
if (D != E && D >= 1 && D <= 70) {
E = D;
var B = g_convertRatingToPercent(E, A, C);
B = (Math.round(B * 100) / 100);
if (A != 12 && A != 37) {
B += "%"
}
F.innerHTML = sprintf(LANG.tooltip_combatrating, B, E);
F.onclick = g_setRatingLevel.bind(0, F, E, A, C)
}
}
}
function g_getMoneyHtml(C) {
var B = 0,
A = "";
if (C >= 10000) {
B = 1;
A += '<span class="moneygold">' + Math.floor(C / 10000) + "</span>";
C %= 10000
}
if (C >= 100) {
if (B) {
A += " "
} else {
B = 1
}
A += '<span class="moneysilver">' + Math.floor(C / 100) + "</span>";
C %= 100
}
if (C >= 1) {
if (B) {
A += " "
} else {
B = 1
}
A += '<span class="moneycopper">' + C + "</span>"
}
return A
}
function g_getPatchVersion(E) {
var D = g_getPatchVersion;
var B = 0,
C = D.T.length - 2,
A;
while (C > B) {
A = Math.floor((C + B) / 2);
if (E >= D.T[A] && E < D.T[A + 1]) {
return D.V[A]
}
if (E >= D.T[A]) {
B = A + 1
} else {
C = A - 1
}
}
A = Math.ceil((C + B) / 2);
return D.V[A]
}
g_getPatchVersion.V = ["1.12.0", "1.12.1", "1.12.2"];
g_getPatchVersion.T = [1153540800000, 1159243200000, 1160712000000];
function g_expandSite() {
de(ge("sidebar"));
de(ge("header-ad"));
ge("wrapper").className = "noads";
var A = ge("contribute-ad");
if (A) {
de(A)
}
}
function g_insertTag(E, H, A, J) {
var C = $(E);
C.focus();
if (C.selectionStart != null) {
var K = C.selectionStart,
G = C.selectionEnd,
I = C.scrollLeft,
D = C.scrollTop;
var B = C.value.substring(K, G);
if (typeof J == "function") {
B = J(B)
}
C.value = C.value.substr(0, K) + H + B + A + C.value.substr(G);
C.selectionStart = C.selectionEnd = G + H.length;
C.scrollLeft = I;
C.scrollTop = D
} else {
if (document.selection && document.selection.createRange) {
var F = document.selection.createRange();
if (F.parentElement() != C) {
return
}
var B = F.text;
if (typeof J == "function") {
B = J(B)
}
F.text = H + B + A
}
}
if (C.onkeyup) {
C.onkeyup()
}
}
function g_getLocaleFromDomain(B) {
var A = g_getLocaleFromDomain.L;
return (A[B] ? A[B] : 0)
}
g_getLocaleFromDomain.L = {
fr: 2,
de: 3,
es: 6,
wotlk: 25
};
function g_getIdFromTypeName(A) {
var B = g_getIdFromTypeName.L;
return (B[A] ? B[A] : -1)
}
g_getIdFromTypeName.L = {
npc: 1,
object: 2,
item: 3,
itemset: 4,
quest: 5,
spell: 6,
zone: 7,
faction: 8
};
function g_getIngameLink(A, C, B) {
prompt(LANG.prompt_ingamelink, '/script DEFAULT_CHAT_FRAME:AddMessage("' + sprintf(LANG.message_ingamelink, "\\124c" + A + "\\124H" + C + "\\124h[" + B + ']\\124h\\124r");'))
}
function g_isEmailValid(A) {
return A.match(/^[A-Z0-9._-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i) != null
}
function g_userDescription() {
var C = ge("description");
var D = (typeof g_pageInfo == "object" && g_user.name == g_pageInfo.username);
var B = (C.childNodes.length == 0);
if (B) {
if (D) {
ae(C, ct(LANG.user_nodescription2))
} else {
ae(C, ct(LANG.user_nodescription))
}
}
if (D) {
var A = ce("button"),
E = ce("div");
E.className = "pad";
A.onclick = function () {
location.href = "?account#public-description"
};
if (B) {
ae(A, ct(LANG.user_composeone))
} else {
ae(A, ct(LANG.user_editdescription))
}
ae(C, E);
ae(C, A)
}
}
function co_addYourComment() {
tabsContribute.focus(0);
var A = gE(document.forms.addcomment, "textarea")[0];
A.focus()
}
function co_cancelReply() {
ge("replybox-generic").style.display = "none";
document.forms.addcomment.elements.replyto.value = ""
}
function co_validateForm(B) {
var A = gE(B, "textarea")[0];
if (Listview.funcBox.coValidate(A)) {
if (g_user.permissions & 1) {
return true
}
}
return false
}
function ss_submitAScreenshot() {
tabsContribute.focus(1)
}
function ss_validateForm(A) {
if (!A.elements.screenshotfile.value.length) {
alert(LANG.message_noscreenshot);
return false
}
return true
}
function ss_appendSticky() {
var J = ge("infobox-sticky");
var F = g_pageInfo.type;
var A = g_pageInfo.typeId;
}
function Ajax(B, C) {
if (!B) {
return
}
var A;
try {
A = new XMLHttpRequest()
} catch (D) {
try {
A = new ActiveXObject("Msxml2.XMLHTTP")
} catch (D) {
try {
A = new ActiveXObject("Microsoft.XMLHTTP")
} catch (D) {
if (window.createRequest) {
A = window.createRequest()
} else {
alert(LANG.message_ajaxnotsupported);
return
}
}
}
}
this.request = A;
cO(this, C);
this.method = this.method || (this.params && "POST") || "GET";
A.open(this.method, B, this.async == null ? true : this.async);
A.onreadystatechange = Ajax.onReadyStateChange.bind(this);
if (this.method.toUpperCase() == "POST") {
A.setRequestHeader("Content-Type", (this.contentType || "application/x-www-form-urlencoded") + "; charset=" + (this.encoding || "UTF-8"))
}
A.send(this.params)
}
Ajax.onReadyStateChange = function () {
if (this.request.readyState == 4) {
if (this.request.status == 0 || (this.request.status >= 200 && this.request.status < 300)) {
this.onSuccess != null && this.onSuccess(this.request, this)
} else {
this.onFailure != null && this.onFailure(this.request, this)
}
if (this.onComplete != null) {
this.onComplete(this.request, this)
}
}
};
function g_ajaxIshRequest(A) {
var B = document.getElementsByTagName("head")[0];
ae(B, ce("script", {
type: "text/javascript",
src: A
}))
}
var Menu = {
iframes: [],
divs: [],
selection: [],
show: function () {
try {
clearTimeout(Menu.timer);
if (Menu.currentLink) {
Menu._show(this)
} else {
this.className = "open";
Menu.timer = setTimeout(Menu._show.bind(0, this), 100)
}
} catch (A) {}
},
_show: function (B) {
if (Menu.currentLink != B) {
var A = ac(B);
Menu._hide();
Menu.selection = [-1];
Menu.currentLink = B;
Menu.showDepth(0, B.menu, A[0], A[1] + B.offsetHeight + 1, B.offsetHeight + 8, B.offsetWidth, A[1]);
B.className = "open"
} else {
Menu.truncate(0);
Menu.clean(0)
}
},
showAtCursor: function (A) {
A = $E(A);
clearTimeout(Menu.timer);
Menu._hide();
Menu.selection = [-1];
Menu.currentLink = null;
var B = g_getCursorPos(A);
Menu.showDepth(0, this.menu, B.x, B.y, 0, 0, 0)
},
hide: function () {
try {
clearTimeout(Menu.timer);
if (Menu.currentLink) {
Menu.timer = setTimeout(Menu._hide, 333)
} else {
this.className = ""
}
} catch (A) {}
},
_hide: function () {
for (var B = 0, A = Menu.selection.length; B < A; ++B) {
Menu.divs[B].style.display = "none";
Menu.divs[B].style.visibility = "hidden";
if (Browser.ie6) {
Menu.iframes[B].style.display = "none"
}
}
Menu.selection = [];
if (Menu.currentLink) {
Menu.currentLink.className = ""
}
Menu.currentLink = null
},
sepOver: function () {
var B = this.d;
var A = B.i;
Menu.truncate(A);
Menu.clean(A);
Menu.selection[A] = -1
},
elemOver: function () {
var E = this.d;
var D = E.i;
var C = this.i;
var A = this.k;
var B = this.firstChild.className == "menusub";
Menu.truncate(D + B);
if (B && C != Menu.selection[D]) {
var F = ac(this);
Menu.selection[D + 1] = -1;
Menu.showDepth(D + 1, E.menuArray[C][3], F[0], F[1] - 2, this.offsetHeight, this.offsetWidth - 3, 0)
}
Menu.clean(D);
Menu.selection[D] = A;
if (this.className.length) {
this.className += " open"
} else {
this.className = "open"
}
},
getIframe: function (A) {
var B;
if (Menu.iframes[A] == null) {
B = ce("iframe");
B.src = "javascript:0;";
B.frameBorder = 0;
ae(ge("layers"), B);
Menu.iframes[A] = B
} else {
B = Menu.iframes[A]
}
return B
},
getDiv: function (B, A) {
var C;
if (Menu.divs[B] == null) {
C = ce("div");
C.className = "menu";
ae(ge("layers"), C);
Menu.divs[B] = C
} else {
C = Menu.divs[B]
}
C.i = B;
C.menuArray = A;
return C
},
showDepth: function (Z, V, M, L, g, N, D) {
var r, n = Menu.getDiv(Z, V);
while (n.firstChild) {
de(n.firstChild)
}
var l = ce("table"),
A = ce("tbody"),
E = ce("tr"),
I = ce("td"),
Q = ce("div"),
G = ce("div");
var S = 999;
var P = g_getWindowSize(),
C = g_getScroll(),
J = P.w,
T = P.h,
B = C.x,
o = C.y;
if (g > 0) {
if ((25 + 1) * V.length > T - 25 - D) {
for (var X = 2; X < 4; ++X) {
if (g / X * V.length + 30 < T - D) {
break
}
}
S = Math.floor(V.length / X)
}
}
var H = 0;
var U = 0;
for (var X = 0, e = V.length; X < e; ++X) {
if (V[X][0] == null) {
var Y = ce("span");
Y.className = "separator";
ns(Y);
ae(Y, ct(V[X][1]));
Y.d = n;
Y.onmouseover = Menu.sepOver;
ae(G, Y)
} else {
var q = ce("a");
q.d = n;
q.k = U++;
q.i = X;
if (V[X][2]) {
if (Menu.currentLink && Menu.currentLink.menuappend) {
if (V[X][2].indexOf(Menu.currentLink.menuappend) == -1) {
q.href = V[X][2] + Menu.currentLink.menuappend
} else {
q.href = V[X][2]
}
} else {
if (typeof V[X][2] == "function") {
q.href = "javascript:;";
q.onclick = V[X][2];
ns(q)
} else {
q.href = V[X][2]
}
}
} else {
q.href = "javascript:;";
q.style.cursor = "default";
ns(q)
}
q.onmouseover = Menu.elemOver;
var O = ce("span"),
F = ce("span");
if (V[X][3] != null) {
O.className = "menusub"
}
if (V[X][5] != null) {
V[X][5] = V[X][5].toLowerCase();
F.className = "icontiny";
F.style.backgroundImage = "url(images/icons/small/" + V[X][5] + ".png)";
if (V[X].checked) {
var K = ce("span");
K.className = "menucheck";
ae(K, ct(V[X][1]));
ae(F, K);
} else {
ae(F, ct(V[X][1]));
}
} else {
if (V[X].checked) {
F.className = "menucheck"
}
ae(F, ct(V[X][1]));
}
ae(O, F);
ae(q, O);
ae(G, q)
}
if (H++ == S) {
Q.onmouseover = Menu.divOver;
Q.onmouseout = Menu.divOut;
ae(Q, G);
if (!Browser.ie6) {
var R = ce("p");
ae(R, ce("em"));
ae(R, ce("var"));
ae(R, ce("strong"));
ae(R, Q);
ae(I, R)
} else {
ae(I, Q)
}
ae(E, I);
I = ce("td");
R = ce("p");
Q = ce("div");
G = ce("div");
H = 0
}
}
Q.onmouseover = Menu.divOver;
Q.onmouseout = Menu.divOut;
ae(Q, G);
if (!Browser.ie6) {
if (S != 999) {
var R = ce("p");
ae(R, ce("em"));
ae(R, ce("var"));
ae(R, ce("strong"));
ae(R, Q);
ae(I, R)
} else {
ae(n, ce("em"));
ae(n, ce("var"));
ae(n, ce("strong"));
ae(I, Q)
}
} else {
ae(I, Q)
}
ae(E, I);
ae(A, E);
ae(l, A);
ae(n, l);
n.style.left = n.style.top = "-2323px";
n.style.display = "";
var K = l.offsetWidth,
W = l.offsetHeight;
if (V.rightAligned) {
M = M + N - K
} else {
if (M + N + K + 15 > J) {
M = Math.max(0, M - K - 3)
} else {
if (Z > 0) {
M += N
}
}
}
if (L + W > T + o) {
L = Math.max(o + 5, T + o - W - 10)
}
n.style.left = M + "px";
n.style.top = L + "px";
if (Browser.ie6) {
r = Menu.getIframe(Z);
r.style.left = M + "px";
r.style.top = L + "px";
r.style.width = K + "px";
r.style.height = W + "px";
r.style.display = "";
r.style.visibility = "visible"
}
n.style.visibility = "visible";
if (Browser.opera) {
n.style.display = "none";
n.style.display = ""
}
},
divOver: function () {
clearTimeout(Menu.timer)
},
divOut: function () {
clearTimeout(Menu.timer);
Menu.timer = setTimeout(Menu._hide, 333)
},
truncate: function (A) {
var B;
while (Menu.selection.length - 1 > A) {
B = Menu.selection.length - 1;
Menu.divs[B].style.display = "none";
Menu.divs[B].style.visibility = "hidden";
if (Browser.ie6) {
Menu.iframes[B].style.display = "none"
}
Menu.selection.pop()
}
},
clean: function (A) {
for (var B = A; B < Menu.selection.length; ++B) {
if (Menu.selection[B] != -1) {
d = gE(Menu.divs[B], "a")[Menu.selection[B]];
if (d.className.indexOf("sub") != -1) {
d.className = "sub"
} else {
d.className = ""
}
Menu.selection[B] = -1
}
}
},
append: function (A, B) {
A[2] += B;
if (A[3] != null) {
Menu._append(A[3], B)
}
},
_append: function (A, C) {
var D, E = 0;
for (var B = 0; B < A.length; ++B) {
if (A[B][2].indexOf("sl=") != -1) {
C = C.replace(/sl=([0-9]:?)+/, "");
E = 1
} else {
if (A[B][2].indexOf("cl=") != -1) {
C = C.replace(/cl=[0-9]+/, "");
E = 1
}
}
if (E) {
C = C.replace("&filter=", ";");
C = rtrim(C, ";");
C = C.replace(";;", ";")
}
A[B][2] += C;
if (A[B][3]) {
Menu._append(A[B][3], C)
}
}
},
fixUrls: function (E, B, D) {
for (var C = 0, A = E.length; C < A; ++C) {
if (E[C][2] == null) {
E[C][2] = B + E[C][0]
}
if (E[C][3]) {
if (D) {
Menu.fixUrls(E[C][3], B, D)
} else {
Menu.fixUrls(E[C][3], B + E[C][0] + ".", D)
}
}
}
},
addButtons: function (F, E) {
for (var C = 0, A = E.length; C < A; ++C) {
if (E[C][0] == null) {
continue
}
var B = ce("a"),
D = ce("span");
if (E[C][2]) {
B.href = E[C][2]
} else {
B.href = "javascript:;";
B.style.cursor = "default";
B.style.textDecoration = "none";
ns(B)
}
if (E[C][3] != null) {
D.className = "menuarrowd";
B.menu = E[C][3];
B.onmouseover = Menu.show;
B.onmouseout = Menu.hide
}
ae(D, ct(E[C][1]));
ae(B, D);
ae(F, B)
}
},
explode: function (F) {
var B = [],
E = null,
D;
for (var C = 0, A = F.length; C < A; ++C) {
if (F[C][0] != null) {
if (E != null) {
D.push(F[C])
} else {
B.push(F[C])
}
}
if (E != null && (F[C][0] == null || C == A - 1)) {
B.push([0, E[1], , D])
}
if (F[C][0] == null) {
E = F[C];
D = []
}
}
return B
}
};
function Tabs(A) {
cO(this, A);
if (this.parent) {
this.parent = $(this.parent)
} else {
return
}
this.oldMode = (Browser.geckoVersion > 20000000 && Browser.geckoVersion <= 20060414);
this.selectedTab = -1;
this.uls = [];
this.tabs = [];
this.nShows = 0;
if (this.poundable == null) {
this.poundable = 1
}
this.poundedTab = null;
if (this.onLoad == null) {
this.onLoad = Tabs.onLoad.bind(this)
}
if (this.onShow == null) {
this.onShow = Tabs.onShow.bind(this)
}
if (this.onHide) {
this.onHide = this.onHide.bind(this)
}
}
Tabs.prototype = {
add: function (A, D) {
var C, B = this.tabs.length;
C = {
caption: A,
index: B,
owner: this
};
cO(C, D);
this.tabs.push(C);
return B
},
focus: function (A) {
if (A < 0) {
A = this.tabs.length + A
}
this.forceScroll = 1;
gE(this.uls[this.oldMode ? 0 : 2], "a")[A].onclick({}, true);
this.forceScroll = null
},
show: function (C, E) {
var B;
if (isNaN(C) || C < 0) {
C = 0
} else {
if (C >= this.tabs.length) {
C = this.tabs.length - 1
}
}
if (E == null && C == this.selectedTab) {
return
}
if (this.selectedTab != -1) {
B = this.tabs[this.selectedTab];
if (this.onHide && !this.onHide(B)) {
return
}
if (B.onHide && !B.onHide()) {
return
}
}++this.nShows;
var A = this.oldMode ? 0 : 3;
for (var D = 0; D <= A; ++D) {
B = gE(this.uls[D], "a");
if (this.selectedTab != -1) {
B[this.selectedTab].className = ""
}
B[C].className = "selected"
}
B = this.tabs[C];
if (B.onLoad) {
B.onLoad();
B.onLoad = null
}
this.onShow(this.tabs[C], this.tabs[this.selectedTab]);
if (B.onShow) {
B.onShow(this.tabs[this.selectedTab])
}
this.selectedTab = C
},
flush: function (J) {
if (this.oldMode) {
var H, M, C, K;
H = ce("ul");
H.className = "old-tabs";
for (var G = 0; G < this.tabs.length; ++G) {
var D = this.tabs[G];
M = ce("li");
C = ce("div");
K = ce("a");
if (this.poundable) {
K.href = "#" + D.id
} else {
K.href = "javascript:;"
}
ns(K);
K.onclick = Tabs.onClick.bind(D, K);
ae(K, ct(D.caption));
ae(M, C);
ae(M, K);
ae(H, M)
}
this.uls[0] = H;
ae(this.parent, H)
} else {
var L, E, K, I, A;
var B = ce("div");
B.className = "tabs-container";
I = ce("div");
I.style.visibility = "hidden";
this.uls[0] = ce("ul");
this.uls[0].className = "tabs";
ae(I, this.uls[0]);
ae(B, I);
I = ce("div");
I.className = "tabs-levels";
for (var G = 1; G <= 3; ++G) {
A = ce("div");
A.className = "tabs-level";
this.uls[G] = ce("ul");
this.uls[G].className = "tabs";
this.uls[G].style.top = (-30 * (3 - G)) + "px";
ae(A, this.uls[G]);
ae(I, A)
}
ae(B, I);
for (var G = 0; G < this.tabs.length; ++G) {
var D = this.tabs[G];
for (var F = 0; F <= 3; ++F) {
E = ce("li");
K = ce("a");
b = ce("b");
if (this.poundable) {
K.href = "#" + D.id
} else {
K.href = "javascript:;"
}
if (F > 0) {
ns(K);
K.onclick = Tabs.onClick.bind(D, K)
}
if (!Browser.ie6) {
I = ce("div");
ae(I, ct(D.caption));
ae(K, I)
}
ae(b, ct(D.caption));
ae(K, b);
ae(E, K);
ae(this.uls[F], E)
}
}
ae(this.parent, B)
}
if (this.onLoad) {
L = this.onLoad();
if (L != null) {
this.poundedTab = J = L
}
}
this.show(J)
},
setTabName: function (C, B) {
var A = this.oldMode ? 0 : 3;
for (var D = 0; D <= A; ++D) {
_ = gE(this.uls[D], "a");
g_setTextNodes(_[C], B)
}
},
setTabPound: function (C, A) {
if (!this.poundable) {
return
}
var B = this.oldMode ? 0 : 3;
for (var D = 0; D <= B; ++D) {
_ = gE(this.uls[D], "a");
_[C].href = "#" + this.tabs[C].id + ":" + A
}
}
};
Tabs.onClick = function (A, E, D) {
if (D == null && this.index == this.owner.selectedTab) {
return
}
var C = rf2(E);
if (C == null) {
return
}
this.owner.show(this.index, D);
if (this.owner.poundable) {
var B = A.href.indexOf("#");
B != -1 && location.replace(A.href.substr(B))
}
return C
};
Tabs.onLoad = function () {
if (!this.poundable || !location.hash.length) {
return
}
var A = location.hash.substr(1).split(":")[0];
if (A) {
return in_array(this.tabs, A, function (B) {
return B.id
})
}
};
Tabs.onShow = function (E, D) {
var B;
if (D) {
ge("tab-" + D.id).style.display = "none"
}
B = ge("tab-" + E.id);
B.style.display = "";
if ((this.nShows == 1 && this.poundedTab != null && this.poundedTab >= 0) || this.forceScroll) {
var C, A;
if (this.__st) {
C = this.__st;
A = 15
} else {
C = B;
A = this.parent.offsetHeight + 15
}
if (Browser.ie) {
setTimeout(g_scrollTo.bind(this, C, A), 1)
} else {
g_scrollTo(C, A)
}
}
};
var Icon = {
sizes: ["small", "medium", "large"],
create: function (A, J, I, D, B, H) {
var G;
var E = ce("div"),
C = ce("div");
E.className = "icon" + Icon.sizes[J];
if (A != null) {
E.style.backgroundImage = "url(images/icons/" + Icon.sizes[J] + "/" + A.toLowerCase() + ".png)"
}
C.className = "tile";
if (I || D) {
var F = ce("a");
if (I && I.length) {
F.tooltip = I;
F.onmouseover = Icon.over;
F.onmouseout = Icon.out
}
if (D) {
F.href = D
} else {
F.href = "javascript:;";
ns(F)
}
ae(C, F)
} else {
if (J == 2) {
E.ondblclick = function () {
prompt("", A)
}
}
}
if (B != null && (B > 1 || B.length)) {
G = g_createGlow(B, "q1");
G.style.right = "0";
G.style.bottom = "0";
G.style.position = "absolute";
ae(C, G)
}
if (H != null && H > 0) {
G = g_createGlow("(" + H + ")", "q");
G.style.left = "0";
G.style.top = "0";
G.style.position = "absolute";
ae(C, G)
}
ae(E, C);
return E
},
over: function () {
if (this.tooltip != null) {
Tooltip.show(this, this.tooltip, 0, 0)
}
},
out: function () {
Tooltip.hide()
}
};
var Tooltip = {
clip: "main-contents",
create: function (G) {
var E = ce("div"),
J = ce("table"),
C = ce("tbody"),
D = ce("tr"),
B = ce("tr"),
A = ce("td"),
I = ce("th"),
H = ce("th"),
F = ce("th");
E.className = "tooltip";
I.style.backgroundPosition = "top right";
H.style.backgroundPosition = "bottom left";
F.style.backgroundPosition = "bottom right";
if (G) {
A.innerHTML = G
}
ae(D, A);
ae(D, I);
ae(C, D);
ae(B, H);
ae(B, F);
ae(C, B);
ae(J, C);
Tooltip.icon = ce("p");
Tooltip.icon.style.visibility = "hidden";
ae(Tooltip.icon, ce("div"));
ae(E, Tooltip.icon);
ae(E, J);
return E
},
fix: function (D, B, E) {
var C = gE(D, "table")[0],
G = gE(C, "td")[0],
F = G.childNodes;
if (F.length >= 2 && F[0].nodeName == "TABLE" && F[1].nodeName == "TABLE") {
var A;
if (F[1].offsetWidth > 300) {
A = Math.max(300, F[0].offsetWidth) + 20
} else {
A = Math.max(F[0].offsetWidth, F[1].offsetWidth) + 20
}
if (A > 20) {
D.style.width = A + "px";
F[0].style.width = F[1].style.width = "100%";
if (!B && D.offsetHeight > document.body.clientHeight) {
C.className = "shrink"
}
}
}
if (E) {
D.style.visibility = "visible"
}
},
fixSafe: function (C, B, A) {
if (Browser.ie) {
setTimeout(Tooltip.fix.bind(this, C, B, A), 1)
} else {
Tooltip.fix(C, B, A)
}
},
append: function (B, A) {
var B = $(B);
var C = Tooltip.create(A);
ae(B, C);
Tooltip.fixSafe(C, 1, 1)
},
prepare: function () {
if (!Tooltip.tooltip) {
var B = Tooltip.create();
B.style.position = "absolute";
B.style.left = B.style.top = "-2323px";
var A = ge("layers");
ae(A, B);
Tooltip.tooltip = B;
Tooltip.tooltipTable = gE(B, "table")[0];
Tooltip.tooltipTd = gE(B, "td")[0];
if (Browser.ie6) {
B = ce("iframe");
B.src = "javascript:1;";
B.frameBorder = 0;
ae(A, B);
Tooltip.iframe = B
}
}
},
move: function (O, M, P, K, B, A, U, H, N, T) {
if (!Tooltip.tooltipTable) {
return
}
var W, G = O,
R = M,
J = O,
I = M,
F = 0,
E = 0,
Q = g_getWindowSize(),
D = g_getScroll(),
L = Q.w,
S = Q.h,
C = D.x,
V = D.y;
if (U == null) {
U = Tooltip.clip
}
if (H == null) {
H = Tooltip.tooltip;
N = Tooltip.tooltipTable.offsetWidth;
T = Tooltip.tooltipTable.offsetHeight
}
H.style.width = N + "px";
if (U) {
W = ge(U);
if (W) {
c = ac(W);
F = c[0];
E = c[1];
if (W.offsetWidth + F <= C + L) {
L = W.offsetWidth + F - C
}
if (W.offsetHeight + E <= V + S) {
S = W.offsetHeight + E - V
}
}
}
if (G + P + N > L) {
G = Math.max(G - N, F) - B
} else {
G += P + B
}
if (G < F) {
G = F
} else {
if (G + N > C + L) {
G = C + L - N
}
}
if (R - T > Math.max(V, E)) {
R -= T + A
} else {
R += K + A
}
if (R < E) {
R = E
} else {
if (R + T > V + S) {
R = Math.max(V, V + S - T)
}
}
if (Tooltip.iconVisible) {
if (J >= G - 48 && J <= G && I >= R - 4 && I <= R + 48) {
R -= 48 - (I - R)
}
}
H.style.left = G + "px";
H.style.top = R + "px";
H.style.visibility = "visible";
if (Browser.ie6 && Tooltip.iframe) {
W = Tooltip.iframe;
W.style.left = G + "px";
W.style.top = R + "px";
W.style.width = N + "px";
W.style.height = T + "px";
W.style.display = "";
W.style.visibility = "visible"
}
},
show: function (G, E, A, F, C) {
if (Tooltip.disabled) {
return
}
var B;
Tooltip.prepare();
if (C) {
E = '<span class="' + C + '">' + E + "</span>"
}
B = Tooltip.tooltip;
B.style.width = "550px";
B.style.left = "-2323px";
B.style.top = "-2323px";
Tooltip.tooltipTd.innerHTML = E;
B.style.display = "";
var D = ac(G);
Tooltip.fix(B, 0, 0);
Tooltip.move(D[0], D[1], G.offsetWidth, G.offsetHeight, A, F)
},
showAtCursor: function (B, E, A, G, D) {
if (Tooltip.disabled) {
return
}
if (!A || A < 10) {
A = 10
}
if (!G || G < 10) {
G = 10
}
B = $E(B);
Tooltip.prepare();
if (D) {
E = '<span class="' + D + '">' + E + "</span>"
}
var C;
C = Tooltip.tooltip;
C.style.width = "550px";
C.style.left = "-2323px";
C.style.top = "-2323px";
Tooltip.tooltipTd.innerHTML = E;
C.style.display = "";
var F = g_getCursorPos(B);
Tooltip.fix(C, 0, 0);
Tooltip.move(F.x, F.y, 0, 0, A, G)
},
showAtXY: function (E, A, F, D, C) {
if (Tooltip.disabled) {
return
}
Tooltip.prepare();
var B;
B = Tooltip.tooltip;
B.style.width = "550px";
B.style.left = "-2323px";
B.style.top = "-2323px";
Tooltip.tooltipTd.innerHTML = E;
B.style.display = "";
Tooltip.fix(B, 0, 0);
Tooltip.move(A, F, 0, 0, D, C, null, null, null, null)
},
cursorUpdate: function (B, A, D) {
if (Tooltip.disabled || !Tooltip.tooltip) {
return
}
B = $E(B);
if (!A || A < 10) {
A = 10
}
if (!D || D < 10) {
D = 10
}
var C = g_getCursorPos(B);
Tooltip.move(C.x, C.y, 0, 0, A, D)
},
hide: function () {
if (Tooltip.tooltip) {
Tooltip.tooltip.style.display = "none";
Tooltip.tooltip.visibility = "hidden";
Tooltip.tooltipTable.className = "";
if (Browser.ie6) {
Tooltip.iframe.style.display = "none"
}
Tooltip.setIcon(null)
}
},
setIcon: function (A) {
Tooltip.prepare();
if (A) {
Tooltip.icon.style.backgroundImage = "url(images/icons/medium/" + A.toLowerCase() + ".png)";
Tooltip.icon.style.visibility = "visible"
} else {
Tooltip.icon.style.backgroundImage = "none";
Tooltip.icon.style.visibility = "hidden"
}
Tooltip.iconVisible = A ? 1 : 0
}
};
var g_listviews = {};
function Listview(A) {
cO(this, A);
if (this.id) {
var K = (this.tabs ? "tab-" : "lv-") + this.id;
if (this.parent) {
var H = ce("div");
H.id = K;
ae($(this.parent), H);
this.container = H
} else {
this.container = ge(K)
}
} else {
return
}
if (this.template) {
this.template = Listview.templates[this.template]
} else {
return
}
g_listviews[this.id] = this;
if (this.poundable == null) {
if (this.template.poundable != null) {
this.poundable = this.template.poundable
} else {
this.poundable = 1
}
}
if (this.hideBands == null) {
this.hideBands = this.template.hideBands
}
if (this.computeDataFunc == null && this.template.computeDataFunc != null) {
this.computeDataFunc = this.template.computeDataFunc
}
if (this.createCbControls == null && this.template.createCbControls != null) {
this.createCbControls = this.template.createCbControls
}
if (this.onBeforeCreate == null && this.template.onBeforeCreate != null) {
this.onBeforeCreate = this.template.onBeforeCreate
}
if (this.onAfterCreate == null && this.template.onAfterCreate != null) {
this.onAfterCreate = this.template.onAfterCreate
}
if (this.createNote == null && this.template.createNote != null) {
this.createNote = this.template.createNote
}
this.rowOffset = 0;
if (this.mode == null) {
this.mode = this.template.mode
}
this.mode |= 0;
if (this.nItemsPerPage == null) {
var N = this.template.nItemsPerPage;
this.nItemsPerPage = (N != null ? N : 50)
}
this.nItemsPerPage |= 0;
if (this.nItemsPerPage <= 0) {
this.nItemsPerPage = 0
}
if (this.mode == 3) {
if (this.nItemsPerRow == null) {
var M = this.template.nItemsPerRow;
this.nItemsPerRow = (M != null ? M : 4)
}
this.nItemsPerRow |= 0;
if (this.nItemsPerRow <= 1) {
this.nItemsPerRow = 1
}
} else {
this.nItemsPerRow = 1
}
this.columns = this.template.columns.slice(0);
if (this.extraCols != null) {
for (var D = 0, G = this.extraCols.length; D < G; ++D) {
var I = null;
var C = this.extraCols[D];
if (C.after != null) {
var F = in_array(this.columns, C.after, function (O) {
return O.id
});
if (F != -1) {
I = F + 1
}
}
if (I == null) {
I = this.columns.length
}
this.columns.splice(I, 0, C)
}
}
this.visibility = [];
var L = [],
J = [];
if (this.visibleCols != null) {
array_walk(this.visibleCols, function (O) {
L[O] = 1
})
}
if (this.hiddenCols != null) {
array_walk(this.hiddenCols, function (O) {
J[O] = 1
})
}
for (var D = 0, G = this.columns.length; D < G; ++D) {
var C = this.columns[D];
if (L[C.id] != null || (!C.hidden && J[C.id] == null)) {
this.visibility.push(D)
}
}
if (this.sort == null && this.template.sort) {
this.sort = this.template.sort.slice(0)
} else {
if (this.sort != null) {
var B = this.sort;
this.sort = [];
for (var D = 0, G = B.length; D < G; ++D) {
var C = parseInt(B[D]);
if (isNaN(C)) {
var E = 0;
if (B[D].charAt(0) == "-") {
E = 1;
B[D] = B[D].substring(1)
}
var F = in_array(this.columns, B[D], function (O) {
return O.id
});
if (F != -1) {
if (E) {
this.sort.push(-(F + 1))
} else {
this.sort.push(F + 1)
}
}
} else {
this.sort.push(C)
}
}
}
}
if (this.tabs) {
this.tabIndex = this.tabs.add(this.getTabName(), {
id: this.id,
onLoad: this.initialize.bind(this)
})
} else {
this.initialize()
}
}
Listview.prototype = {
initialize: function () {
if (!this.data.length) {
this.showNoData();
return
}
if (this.computeDataFunc != null) {
for (var E = 0, C = this.data.length; E < C; ++E) {
this.computeDataFunc(this.data[E])
}
}
if (this.tabs) {
this.pounded = (this.tabs.poundedTab == this.tabIndex);
if (this.pounded) {
this.readPound()
}
} else {
this.readPound()
}
this.updateSortIndex();
var B;
if (this.onBeforeCreate != null) {
B = this.onBeforeCreate()
}
if (this.mode == 2) {
this.mainDiv = ce("div");
this.mainDiv.className = "listview-mode2";
this.refreshRows();
this.createBands(this.mainDiv)
} else {
this.table = ce("table");
this.thead = ce("thead");
this.tbody = ce("tbody");
if (this.mode == 3) {
this.tbody.className = "listview-mode3";
var A = ce("colgroup");
var F = (100 / this.nItemsPerRow) + "%";
for (var E = 0; E < this.nItemsPerRow; ++E) {
var D = ce("col");
D.style.width = F;
ae(A, D)
}
ae(this.table, A)
} else {
this.tbody.className = "listview-std";
this.createHeader();
this.updateSortArrow()
}
ae(this.table, this.thead);
ae(this.table, this.tbody);
this.refreshRows();
this.createBands(this.table);
if (this.mode == 1 && Browser.ie) {
setTimeout(Listview.cbIeFix.bind(this), 1)
}
}
// Сортируем при загрузке, дабы снизить нагрузку с сервера
this.applySort();
this.refreshRows();
if (this.onAfterCreate != null) {
this.onAfterCreate(B)
}
},
createHeader: function () {
var H = ce("tr");
if (this.mode == 1) {
var C = ce("th");
var B = ce("div");
var J = ce("a");
C.style.width = "33px";
if (this.poundable == 2) {
J.style.cursor = "default";
J.style.backgroundColor = "#585858"
}
J.href = "javascript:;";
J.className = "listview-cb";
ns(J);
ae(J, ct(String.fromCharCode(160)));
ae(B, J);
ae(C, B);
ae(H, C)
}
for (var E = 0, G = this.visibility.length; E < G; ++E) {
var I = this.visibility[E];
var D = this.columns[I];
var C = ce("th");
var B = ce("div");
var J = ce("a");
var A = ce("span");
var F = ce("span");
if (this.poundable == 2) {
J.style.cursor = "default";
J.style.backgroundColor = "#585858"
}
J.href = "javascript:;";
J.onclick = this.sortBy.bind(this, I + 1);
ns(J);
if (D.tooltip != null) {
J.onmouseover = Listview.headerOver.bind(J, D.tooltip);
J.onmousemove = Tooltip.cursorUpdate;
J.onmouseout = Tooltip.hide
}
if (D.width != null) {
C.style.width = D.width
}
if (D.align != null) {
C.style.textAlign = D.align
}
if (D.span != null) {
C.colSpan = D.span
}
ae(F, ct(D.name));
ae(A, F);
ae(J, A);
ae(B, J);
ae(C, B);
ae(H, C)
}
ae(this.thead, H)
},
createBands: function (E) {
var C = ce("div"),
D = ce("div");
C.className = "listview-band-top";
D.className = "listview-band-bottom";
this.navTop = this.createNav();
this.navBot = this.createNav();
var A = ce("div"),
B = ce("div");
A.className = B.className = "listview-note";
if (this.note) {
A.innerHTML = this.note
} else {
if (this.createNote) {
this.createNote(A, B)
}
}
if (!A.firstChild && this.mode != 1) {
ae(A, ct(String.fromCharCode(160)))
}
if (this.mode != 1) {
ae(B, ct(String.fromCharCode(160)))
}
ae(C, this.navTop);
ae(D, this.navBot);
ae(C, A);
ae(D, B);
if (this.mode == 1) {
ae(C, this.createCbBar());
ae(D, this.createCbBar())
}
this.bandTop = C;
this.bandBot = D;
this.updateNav();
if (this.hideBands != null) {
C.style.display = D.style.display = "none"
}
ae(this.container, this.bandTop);
ae(this.container, E);
ae(this.container, this.bandBot)
},
createNav: function () {
var B = ce("div");
B.className = "listview-nav";
var D = ce("a"),
C = ce("a"),
A = ce("a"),
I = ce("a");
D.href = C.href = A.href = I.href = "javascript:;";
ae(D, ct(String.fromCharCode(171) + LANG.lvpage_first));
ae(C, ct(String.fromCharCode(8249) + LANG.lvpage_previous));
ae(A, ct(LANG.lvpage_next + String.fromCharCode(8250)));
ae(I, ct(LANG.lvpage_last + String.fromCharCode(187)));
ns(D);
ns(C);
ns(A);
ns(I);
D.onclick = this.firstPage.bind(this);
C.onclick = this.previousPage.bind(this);
A.onclick = this.nextPage.bind(this);
I.onclick = this.lastPage.bind(this);
var H = ce("span");
var G = ce("b"),
F = ce("b"),
E = ce("b");
ae(G, ct("a"));
ae(F, ct("a"));
ae(E, ct("a"));
ae(H, G);
ae(H, ct(LANG.hyphen));
ae(H, F);
ae(H, ct(LANG.lvpage_of));
ae(H, E);
ae(B, D);
ae(B, C);
ae(B, H);
ae(B, A);
ae(B, I);
return B
},
createCbBar: function () {
var F = ce("div");
var C = ce("div");
var B = ce("a"),
A = ce("a"),
E = ce("a");
B.href = A.href = E.href = "javascript:;";
ae(B, ct("All"));
ae(A, ct("None"));
ae(E, ct("Inverse"));
B.onclick = Listview.cbSelect.bind(this, true);
A.onclick = Listview.cbSelect.bind(this, false);
E.onclick = Listview.cbSelect.bind(this, null);
ns(B);
ns(A);
ns(E);
ae(C, ct("Select: "));
ae(C, B);
ae(C, ct(LANG.comma));
ae(C, A);
ae(C, ct(LANG.comma));
ae(C, E);
if (this.createCbControls) {
var D = ce("div");
this.createCbControls(D, C);
D.style.paddingBottom = "6px";
ae(F, D)
}
ae(F, C);
return F
},
refreshRows: function () {
var B = this.data.length;
var D = (this.mode == 2 ? this.mainDiv : this.tbody);
while (D.firstChild) {
D.removeChild(D.firstChild)
}
if (B > 0) {
var G, A, F;
if (this.nItemsPerPage > 0) {
G = this.rowOffset;
A = Math.min(B, this.rowOffset + this.nItemsPerPage)
} else {
G = 0;
A = B
}
if (this.mode == 2) {
for (var E = G; E < A; ++E) {
ae(this.mainDiv, this.getDiv(E))
}
} else {
if (this.mode == 3) {
var C = 0,
H = ce("tr");
for (var E = G; E < A; ++E) {
ae(H, this.getCell(E));
if (++C == this.nItemsPerRow) {
ae(this.tbody, H);
if (E + 1 < A) {
H = ce("tr")
}
C = 0
}
}
if (C != 0) {
for (; C < 4; ++C) {
D = ce("td");
D.className = "empty-cell";
ae(H, D)
}
ae(this.tbody, H)
}
} else {
for (var E = G; E < A; ++E) {
ae(this.tbody, this.getRow(E))
}
}
}
} else {
this.bandTop.style.display = this.bandBot.style.display = "none";
if (this.mode == 2) {
this.mainDiv.style.display = "none"
} else {
this.table.style.display = "none"
}
this.showNoData()
}
},
showNoData: function () {
var B = ce("div");
B.className = "listview-nodata";
var A = -1;
if (this.template.onNoData) {
A = (this.template.onNoData.bind(this, B))()
}
if (A == -1) {
ae(B, ct(LANG.lvnodata))
}
ae(this.container, B)
},
getDiv: function (B) {
var A = this.data[B];
if (A.__div == null) {
this.createDiv(A, B)
}
return A.__div
},
createDiv: function (A, B) {
var C = ce("div");
A.__div = C;
(this.template.compute.bind(this, A, C, B))()
},
getCell: function (B) {
var A = this.data[B];
if (A.__div == null) {
this.createCell(A, B)
}
return A.__td
},
createCell: function (A, B) {
var C = ce("td");
A.__td = C;
(this.template.compute.bind(this, A, C, B))();
if (this.template.getItemLink) {
C.onclick = this.itemClick.bind(this, A)
}
if (Browser.ie6) {
C.onmouseover = Listview.itemOver;
C.onmouseout = Listview.itemOut
}
},
getRow: function (A) {
var B = this.data[A];
if (B.__tr == null) {
this.createRow(B)
}
return B.__tr
},
createRow: function (I) {
var F = ce("tr");
I.__tr = F;
if (this.mode == 1) {
var B = ce("td");
B.className = "listview-cb";
B.onclick = Listview.cbCellClick;
var C = ce("input");
ns(C);
C.type = "checkbox";
C.onclick = Listview.cbClick;
if (I.__chk) {
C.checked = true;
if (Browser.ie) {
C.defaultChecked = true
}
}
I.__cb = C;
ae(B, C);
ae(F, B)
}
for (var D = 0, E = this.visibility.length; D < E; ++D) {
var G = this.visibility[D];
var A = this.columns[G];
var B = ce("td");
if (A.align != null) {
B.style.textAlign = A.align
}
var H = null;
if (A.compute) {
H = (A.compute.bind(this, I, B, F, G))()
} else {
if (I[A.value] != null) {
ae(B, ct(I[A.value]))
} else {
H = -1
}
}
if (H != -1 && H != null) {
B.insertBefore(ct(H), B.firstChild)
}
ae(F, B)
}
if (this.mode == 1 && I.__chk) {
F.className = "checked"
}
if (this.template.getItemLink) {
F.onclick = this.itemClick.bind(this, I)
}
if (Browser.ie6) {
F.onmouseover = Listview.itemOver;
F.onmouseout = Listview.itemOut
}
},
itemClick: function (A, D) {
D = $E(D);
var B = 0,
C = D._target;
while (C && B < 3) {
if (C.nodeName == "A") {
return
}
C = C.parentNode
}
location.href = this.template.getItemLink(A)
},
validatePage: function () {
var C = this.nItemsPerPage,
B = this.rowOffset,
A = this.data.length;
if (B < 0) {
this.rowOffset = 0
} else {
this.rowOffset = this.getRowOffset(B + C > A ? A - 1 : B)
}
},
getRowOffset: function (B) {
var A = this.nItemsPerPage;
return (A > 0 && B > 0 ? Math.floor(B / A) * A : 0)
},
changePage: function () {
this.validatePage();
this.refreshRows();
this.updateNav();
this.updatePound();
var A = g_getScroll(),
B = ac(this.container);
if (A.y > B[1]) {
scrollTo(A.x, B[1])
}
},
firstPage: function () {
this.rowOffset = 0;
this.changePage();
return false
},
previousPage: function () {
this.rowOffset -= this.nItemsPerPage;
this.changePage();
return false
},
nextPage: function () {
this.rowOffset += this.nItemsPerPage;
this.changePage();
return false
},
lastPage: function () {
this.rowOffset = 99999999;
this.changePage();
return false
},
addSort: function (A, C) {
var B = in_array(A, C, function (D) {
return Math.abs(D)
});
if (B != -1) {
C = A[B];
A.splice(B, 1)
}
A.splice(0, 0, C)
},
sortBy: function (A) {
if (this.poundable == 2 || A <= 0 || A > this.columns.length) {
return
}
if (Math.abs(this.sort[0]) == A) {
this.sort[0] = -this.sort[0]
} else {
this.addSort(this.sort, A)
}
this.applySort();
if (this.template.onSort) {
(this.template.onSort.bind(this))()
}
this.refreshRows();
if (this.mode != 2) {
this.updateSortArrow()
}
this.updatePound()
},
applySort: function () {
Listview.sort = this.sort;
Listview.columns = this.columns;
if (this.indexCreated) {
this.data.sort(Listview.sortIndexedRows)
} else {
this.data.sort(Listview.sortRows)
}
this.updateSortIndex()
},
setSort: function (B, A, C) {
if (this.sort.toString() != B.toString()) {
this.sort = B;
this.applySort();
if (A) {
this.refreshRows()
}
if (C) {
this.updatePound()
}
}
},
readPound: function () {
if (!this.poundable || !location.hash.length) {
return
}
var B = location.hash.substr(1);
if (this.tabs) {
var G = B.indexOf(":");
if (G == -1) {
return
}
B = B.substr(G + 1)
}
var A = parseInt(B);
if (!isNaN(A)) {
this.rowOffset = A;
this.validatePage();
if (this.poundable != 2) {
var D = [];
var F = B.match(/(\+|\-)[0-9]+/g);
if (F != null) {
for (var C = F.length - 1; C >= 0; --C) {
var E = parseInt(F[C]) | 0;
var B = Math.abs(E);
if (B <= 0 || B > this.columns.length) {
break
}
this.addSort(D, E)
}
this.setSort(D, false, false)
}
}
if (this.tabs) {
this.tabs.setTabPound(this.tabIndex, this.getTabPound())
}
}
},
updateSortArrow: function () {
if (!this.sort.length) {
return
}
var A = in_array(this.visibility, Math.abs(this.sort[0]) - 1);
if (A == -1) {
return
}
if (this.mode == 1) {
++A
}
var B = this.thead.firstChild.childNodes[A].firstChild.firstChild.firstChild;
if (this.lsa && this.lsa != B) {
this.lsa.className = ""
}
B.className = (this.sort[0] < 0 ? "sortdesc" : "sortasc");
this.lsa = B
},
updateSortIndex: function () {
var B = this.data;
for (var C = 0, A = B.length; C < A; ++C) {
B[C].__si = C
}
this.indexCreated = true
},
updateTabName: function () {
if (this.tabIndex != null) {
this.tabs.setTabName(this.tabIndex, this.getTabName())
}
},
updatePound: function () {
if (!this.poundable) {
return
}
var A = this.getTabPound();
if (this.tabs) {
this.tabs.setTabPound(this.tabIndex, A);
location.replace("#" + this.id + ":" + A)
} else {
location.replace("#" + A)
}
},
updateNav: function () {
var J = this.nItemsPerPage,
H = this.rowOffset,
D = this.data.length;
var B = 0,
F = 0,
C = 0,
I = 0;
if (J) {
if (H > 0) {
F = 1;
if (H >= J + J) {
B = 1
}
}
if (H + J < D) {
C = 1;
if (H + J + J < D) {
I = 1
}
}
}
var E = [this.navTop, this.navBot];
for (var A = 0; A < 2; ++A) {
var G = E[A].childNodes;
G[0].style.display = (B ? "" : "none");
G[1].style.display = (F ? "" : "none");
G[3].style.display = (C ? "" : "none");
G[4].style.display = (I ? "" : "none");
G = G[2].childNodes;
G[0].firstChild.nodeValue = H + 1;
G[2].firstChild.nodeValue = J ? Math.min(H + J, D) : D;
G[4].firstChild.nodeValue = D
}
},
getTabName: function () {
var A = this.name;
var B = this.data.length;
if (B > 0) {
A += sprintf(LANG.qty, B)
}
return A
},
getTabPound: function () {
var A = "";
A += this.rowOffset;
if (this.poundable != 2 && this.sort.length) {
A += ("+" + this.sort.join("+")).replace(/\+\-/g, "-")
}
return A
},
getCheckedRows: function () {
var D = [];
for (var C = 0, A = this.data.length; C < A; ++C) {
var B = this.data[C];
if ((B.__cb && B.__cb.checked) || (!B.__cb && B.__chk)) {
D.push(B)
}
}
return D
},
deleteRows: function (M) {
if (!M.length) {
return
}
var C = 0;
var H = 0;
for (var E = M.length - 1; E >= 0; --E) {
var L = M[E];
var G = -1;
if (L.__tr && L.__tr.rowIndex > 0) {
G = this.rowOffset + L.__tr.rowIndex - 1
} else {
G = in_array(this.data, L);
H = 1
}
if (G == -1) {
continue
}++C;
var K = this.nItemsPerPage;
var F = this.rowOffset;
var J = F + (K > 0 ? K : this.data.length) - 1;
if (G >= F && G <= J) {
if (this.mode == 2) {
de(L.__div)
} else {
de(L.__tr)
}
}
this.data.splice(G, 1)
}
if (C == 0) {
return
}
this.updateTabName();
if (this.rowOffset >= this.data.length) {
this.previousPage()
} else {
if (this.data.length == 0 || H) {
this.refreshRows()
}
this.updateNav();
var K = this.nItemsPerPage;
var A = (this.mode == 2 ? this.mainDiv : this.tbody);
var B = (this.mode == 2 ? this.getDiv : this.getRow);
var I = A.childNodes.length;
if (K > 0 && this.rowOffset + I < this.data.length) {
for (var E = this.rowOffset + I, D = E + K - I; E < D; ++E) {
ae(A, B(E))
}
}
}
}
};
Listview.sortRows = function (C, B) {
var G = Listview.sort,
H = Listview.columns;
for (var F = 0, A = G.length; F < A; ++F) {
var E, D = H[Math.abs(G[F]) - 1];
if (D.sortFunc) {
E = D.sortFunc(C, B, G[F])
} else {
E = strcmp(C[D.value], B[D.value])
}
if (E != 0) {
return E * G[F]
}
}
return 0
}, Listview.sortIndexedRows = function (B, A) {
var E = Listview.sort,
F = Listview.columns;
var D, C = F[Math.abs(E[0]) - 1];
if (C.sortFunc) {
D = C.sortFunc(B, A, E[0])
} else {
D = strcmp(B[C.value], A[C.value])
}
if (D != 0) {
return D * E[0]
}
return B.__si - A.__si
}, Listview.cbSelect = function (B) {
for (var D = 0, A = this.data.length; D < A; ++D) {
var C = this.data[D];
var F = B;
if (C.__tr) {
var E = C.__tr.firstChild.firstChild;
if (F == null) {
F = !E.checked
}
if (E.checked != F) {
E.checked = F;
C.__tr.className = (E.checked ? "checked" : "");
if (Browser.ie) {
E.defaultChecked = F;
if (Browser.ie6) {
(Listview.itemOut.bind(C.__tr))()
}
}
}
} else {
if (F == null) {
F = true
}
}
C.__chk = F
}
};
Listview.cbClick = function (A) {
setTimeout(Listview.cbUpdate.bind(0, 0, this, this.parentNode.parentNode), 1);
sp(A)
};
Listview.cbCellClick = function (A) {
setTimeout(Listview.cbUpdate.bind(0, 1, this.firstChild, this.parentNode), 1);
sp(A)
};
Listview.cbIeFix = function () {
var D = gE(this.tbody, "tr");
for (var C = 0, A = D.length; C < A; ++C) {
var B = D[C].firstChild.firstChild;
B.checked = B.defaultChecked = false
}
};
Listview.cbUpdate = function (B, A, C) {
if (B) {
A.checked = !A.checked
}
C.className = (A.checked ? "checked" : "");
if (Browser.ie) {
A.defaultChecked = A.checked;
if (Browser.ie6) {
(Listview.itemOver.bind(C))()
}
}
};
Listview.itemOver = function () {
this.style.backgroundColor = (this.className == "checked" ? "#2C2C2C" : "#202020")
};
Listview.itemOut = function () {
this.style.backgroundColor = (this.className == "checked" ? "#242424" : "transparent")
};
Listview.headerOver = function (B, A) {
Tooltip.showAtCursor(A, B, 0, 0, "q")
};
Listview.extraCols = {
cost: {
id: "cost",
name: LANG.cost,
compute: function (A, B) {
Listview.funcBox.appendMoney(B, A.cost[0], null, A.cost[1], A.cost[2], A.cost[3])
},
sortFunc: function (B, A, C) {
var E = 0,
D = 0;
if (B.cost[3] != null) {
array_walk(B.cost[3], function (F, G, G, H) {
E += Math.pow(10, H) + F[1]
})
}
if (A.cost[3] != null) {
array_walk(A.cost[3], function (F, G, G, H) {
D += Math.pow(10, H) + F[1]
})
}
return strcmp(E, D) || strcmp(B.cost[2], A.cost[2]) || strcmp(B.cost[1], A.cost[1]) || strcmp(B.cost[0], A.cost[0])
}
},
count: {
id: "count",
name: LANG.count,
width: "11%",
value: "count",
compute: function (B, C) {
if (B.outof) {
var A = ce("div");
A.className = "small q0";
ae(A, ct(sprintf(LANG.lvdrop_outof, B.outof)));
ae(C, A)
}
return B.count
}
},
percent: {
id: "percent",
name: "%",
width: "10%",
value: "percent",
compute: function (A, B) {
if (A.percent >= 1.95) {
return A.percent.toFixed(0)
} else if (A.percent < 0) {
return ((-1 * A.percent) + ' (' + LANG.types[5][0] + ')')
} else {
return parseFloat(A.percent.toFixed(4))
}
}
},
stock: {
id: "stock",
name: LANG.stock,
width: "10%",
value: "stock",
compute: function (A, B) {
if (A.stock > 0) {
return A.stock
} else {
B.style.fontFamily = "Verdana, sans-serif";
return String.fromCharCode(8734)
}
}
}
};
Listview.funcBox = {
createSimpleCol: function (C, D, A, B) {
return {
id: C,
name: LANG[D],
width: A,
value: B
}
},
initLootTable: function (A) {
if (this._totalCount != null) {
A.percent = A.count / this._totalCount
} else {
A.percent = A.count / A.outof
}
A.percent *= 100
},
beforeUserComments: function () {
if ((g_user.roles & 26) != 0) {
this.mode = 1;
this.createCbControls = function (B) {
var A = ce("input");
A.type = "button";
A.value = "Delete";
A.onclick = (function () {
var E = this.getCheckedRows();
if (!E.length) {
alert("No comments selected.")
} else {
if (confirm("Are you sure that you want to delete " + (E.length == 1 ? "this comment" : "these " + E.length + " comments") + "?")) {
var C = "";
var D = 0;
array_walk(E, function (F) {
if (F.purged == 0 && F.deleted == 0) {
F.deleted = 1;
if (F.__tr != null) {
F.__tr.childNodes[2].lastChild.lastChild.firstChild.nodeValue = " (Deleted)"
}
C += F.id + ","
} else {
if (F.purged == 1) {
++D
}
}
});
C = rtrim(C, ",");
if (C != "") {
new Ajax("?comment=delete&id=" + C + "&username=" + g_pageInfo.username)
}(Listview.cbSelect.bind(this, false))();
if (D > 0) {
alert("Purged comments cannot be deleted.\n\nA purged comment is a comment that has been\nautomatically removed from the site due to a negative rating.")
}
}
}
}).bind(this);
ae(B, A);
if (g_user.roles & 26) {
var A = ce("input");
A.type = "button";
A.value = "Undelete";
A.onclick = (function () {
var D = this.getCheckedRows();
if (!D.length) {
alert("No comments selected.")
} else {
var C = "";
array_walk(D, function (E) {
if (E.deleted == 1) {
E.deleted = 0;
if (E.__tr != null) {
E.__tr.childNodes[2].lastChild.lastChild.firstChild.nodeValue = ""
}
C += E.id + ","
}
});
C = rtrim(C, ",");
if (C != "") {
new Ajax("?comment=undelete&id=" + C + "&username=" + g_pageInfo.username)
}(Listview.cbSelect.bind(this, false))()
}
}).bind(this);
ae(B, A)
}
}
}
},
assocArrCmp: function (C, B, A) {
if (C == null) {
return -1
} else {
if (B == null) {
return 1
}
}
var F = Math.max(C.length, B.length);
for (var E = 0; E < F; ++E) {
if (C[E] == null) {
return -1
} else {
if (B[E] == null) {
return 1
}
}
var D = strcmp(A[C[E]], A[B[E]]);
if (D != 0) {
return D
}
}
return 0
},
location: function (E, F) {
if (E.location == null) {
return -1
}
for (var D = 0, B = E.location.length; D < B; ++D) {
if (D > 0) {
ae(F, ct(LANG.comma))
}
var A = E.location[D];
if (A == -1) {
ae(F, ct(LANG.ellipsis))
} else {
var C = ce("a");
C.className = "q1";
C.href = "?zone=" + A;
ae(C, ct(g_zones[A]));
ae(F, C)
}
}
},
createCenteredIcons: function (I, C, L) {
if (I != null) {
var H = ce("div"),
A = ce("div");
if (L) {
var G = ce("div");
G.style.position = "relative";
G.style.width = "1px";
var J = ce("div");
J.className = "q0";
J.style.position = "absolute";
J.style.right = "2px";
J.style.lineHeight = "26px";
J.style.fontSize = "11px";
J.style.whiteSpace = "nowrap";
ae(J, ct(L));
ae(G, J);
ae(H, G)
}
for (var D = 0, F = I.length; D < F; ++D) {
var B, E;
if (typeof I[D] == "object") {
B = I[D][0];
E = I[D][1]
} else {
B = I[D]
}
var K = g_items.createIcon(B, 0, E);
K.style.cssFloat = K.style.styleFloat = "left";
ae(H, K)
}
H.style.margin = "0 auto";
H.style.textAlign = "left";
H.style.width = (26 * I.length) + "px";
A.className = "clear";
ae(C, H);
ae(C, A);
return true
}
},
getItemType: function (C, B, A) {
if (A != null && g_item_subsubclasses[C] != null && g_item_subsubclasses[C][B] != null) {
return g_item_subsubclasses[C][B][A]
}
if (g_item_subclasses[C] != null) {
return g_item_subclasses[C][B]
} else {
return g_item_classes[C]
}
},
getQuestCategory: function (A) {
if (A > 0) {
return g_zones[A]
} else {
return g_quest_sorts[-A]
}
},
createTextRange: function (B, A) {
B |= 0;
A |= 0;
if (B > 1 || A > 1) {
if (B != A && A > 0) {
return B + "-" + A
} else {
return B + ""
}
}
return null
},
coGetColor: function (C, A) {
if (C.user && g_customColors[C.user]) {
return " comment-" + g_customColors[C.user]
}
switch (A) {
case -1:
var B = C.divPost.childNodes[1].className.match(/comment-([a-z]+)/);
if (B != null) {
return " comment-" + B[1]
}
break;
case 3:
case 4:
if (C.roles & 24) {
return " comment-green"
}
break
}
if (C.roles & 2) {
return " comment-blue"
} else {
if (C.rating >= 10) {
return " comment-green"
} else {
if (C.rating < 0) {
return " comment-bt"
}
}
}
return ""
},
coToggleVis: function (A) {
this.firstChild.nodeValue = (g_toggleDisplay(A.divBody) ? LANG.lvcomment_hide : LANG.lvcomment_show);
if (A.ratable) {
A.divHeader.firstChild.lastChild.style.display = ""
}
g_toggleDisplay(A.divLinks);
if (A.lastEdit != null) {
g_toggleDisplay(A.divLastEdit)
}
},
coRate: function (D, B) {
if (B == 0) {
var A = 5;
if (g_user.roles & 2) {
A = 25
} else {
if (g_user.roles & 16) {
A = 15
}
}
var C = prompt(sprintf(LANG.prompt_customrating, A, A), 0);
if (C == null) {
return
} else {
C |= 0;
if (C != 0 && Math.abs(C) <= A) {
B = C
}
}
if (B == 0) {
return
}
} else {
if (g_user.roles & 26) {
B *= 5
}
}
new Ajax("?comment=rate&id=" + D.id + "&rating=" + B);
D.rating += B;
_ = D.divHeader.firstChild;
_ = _.childNodes[_.childNodes.length - 3];
_.lastChild.firstChild.nodeValue = (D.rating > 0 ? "+" : "") + D.rating;
Tooltip.hide();
de(_.nextSibling);
de(_.nextSibling)
},
coDelete: function (A) {
if (A.purged) {
alert(LANG.message_cantdeletecomment)
} else {
if (confirm(LANG.confirm_deletecomment)) {
new Ajax("?comment=delete&id=" + A.id);
this.deleteRows([A])
}
}
},
coDetach: function (A) {
if (A.replyTo == 0) {
alert(LANG.message_cantdetachcomment)
} else {
if (confirm(LANG.confirm_detachcomment)) {
new Ajax("?comment=detach&id=" + A.id);
A.replyTo = 0;
alert(LANG.message_commentdetached)
}
}
},
coEdit: function (G, E) {
G.divBody.style.display = "none";
G.divLinks.firstChild.style.display = "none";
var F = ce("div");
F.className = "comment-edit";
G.divEdit = F;
if (E == -1) {
if (g_users[G.user] != null) {
G.roles = g_users[G.user].roles
}
}
var C = Listview.funcBox.coEditAppend(F, G, E);
var B = ce("div");
B.className = "comment-edit-buttons";
var D = ce("input");
D.type = "button";
D.value = LANG.compose_save;
D.onclick = Listview.funcBox.coEditButton.bind(D, G, true, E);
ae(B, D);
ae(B, ct(" "));
D = ce("input");
D.type = "button";
D.value = LANG.compose_cancel;
D.onclick = Listview.funcBox.coEditButton.bind(D, G, false, E);
ae(B, D);
ae(F, B);
var A = F;
if (Browser.ie6) {
A = ce("div");
A.style.width = "99%";
ae(A, F)
}
if (E == -1) {
G.divPost.insertBefore(A, G.divBody.nextSibling)
} else {
G.__div.insertBefore(A, G.divBody.nextSibling)
}
C.focus()
},
coEditAppend: function (L, C, K) {
var F = Listview.funcBox.coGetCharLimit(K);
if (K == 1 || K == 3 || K == 4) {
C.user = g_user.name;
C.roles = g_user.roles;
C.rating = 1
} else {
if (K >= 1) {
C.roles = 0;
C.rating = 1
}
}
if (K == -1 || K == 0) {
var J = ce("div");
J.className = "comment-edit-modes";
ae(J, ct(LANG.compose_mode));
var P = ce("a");
P.className = "selected";
P.onclick = Listview.funcBox.coModeLink.bind(P, 1, K);
P.href = "javascript:;";
ae(P, ct(LANG.compose_edit));
ae(J, P);
ae(J, ct("|"));
var N = ce("a");
N.onclick = Listview.funcBox.coModeLink.bind(N, 2, K);
N.href = "javascript:;";
ae(N, ct(LANG.compose_preview));
ae(J, N);
ae(L, J)
}
var A = ce("div");
A.style.display = "none";
A.className = "comment-body" + Listview.funcBox.coGetColor(C, K);
ae(L, A);
var H = ce("div");
H.className = "comment-edit-body";
var G = ce("div");
G.className = "toolbar";
var I = ce("textarea");
I.className = "comment-editbox";
I.rows = 10;
I.value = C.body;
switch (K) {
case 1:
I.name = "commentbody";
break;
case 2:
I.name = "desc";
I.originalValue = C.body;
break;
case 3:
I.name = "body";
break;
case 4:
I.name = "sig";
I.originalValue = C.body;
I.rows = (Browser.gecko ? 2 : 3);
I.style.height = "auto";
break
}
if (K != -1 && K != 0) {
var E = ce("h3"),
W = ce("a"),
O = ce("div"),
V = ce("div");
var D = Listview.funcBox.coLivePreview.bind(I, C, K, O);
if (C.body) {
W.className = "disclosure-off";
O.style.display = "none"
} else {
W.className = "disclosure-on"
}
ae(W, ct(LANG.compose_livepreview));
ae(E, W);
W.href = "javascript:;";
W.onclick = function () {
D(1);
W.className = "disclosure-" + (g_toggleDisplay(O) ? "on" : "off")
};
ns(W);
E.className = "first";
V.className = "pad";
ae(A, E);
ae(A, O);
ae(A, V);
var U;
var T = function () {
if (U) {
clearTimeout(U);
U = null
}
U = setTimeout(D, 50)
};
I.onchange = T;
I.onkeyup = T;
aE(I, "focus", function () {
D();
A.style.display = "";
if (K != 4) {
I.style.height = "22em"
}
})
} else {
if (K != 4) {
aE(I, "focus", function () {
I.style.height = "22em"
})
}
}
var S = [{
id: "b",
title: LANG.markup_b,
pre: "[b]",
post: "[/b]"
},
{
id: "i",
title: LANG.markup_i,
pre: "[i]",
post: "[/i]"
},
{
id: "u",
title: LANG.markup_u,
pre: "[u]",
post: "[/u]"
},
{
id: "s",
title: LANG.markup_s,
pre: "[s]",
post: "[/s]"
},
{
id: "small",
title: LANG.markup_small,
pre: "[small]",
post: "[/small]"
},
{
id: "url",
title: LANG.markup_url,
onclick: function () {
var Y = prompt(LANG.prompt_linkurl, "http://");
if (Y) {
g_insertTag(I, "[url=" + Y + "]", "[/url]")
}
}
},
{
id: "quote",
title: LANG.markup_quote,
pre: "[quote]",
post: "[/quote]"
},
{
id: "code",
title: LANG.markup_code,
pre: "[code]",
post: "[/code]"
},
{
id: "ul",
title: LANG.markup_ul,
pre: "[ul]\n[li]",
post: "[/li]\n[/ul]",
rep: function (Y) {
return Y.replace(/\n/g, "[/li]\n[li]")
}
},
{
id: "ol",
title: LANG.markup_ol,
pre: "[ol]\n[li]",
post: "[/li]\n[/ol]",
rep: function (Y) {
return Y.replace(/\n/g, "[/li]\n[li]")
}
},
{
id: "li",
title: LANG.markup_li,
pre: "[li]",
post: "[/li]"
}];
for (var Q = 0, R = S.length; Q < R; ++Q) {
var B = S[Q];
if (K == 4 && B.id == "quote") {
break
}
var M = ce("button");
var X = ce("img");
M.setAttribute("type", "button");
M.title = B.title;
if (B.onclick != null) {
M.onclick = B.onclick
} else {
M.onclick = g_insertTag.bind(0, I, B.pre, B.post, B.rep)
}
X.src = "templates/wowhead/images/pixel.gif";
X.className = "toolbar-" + B.id;
ae(M, X);
ae(G, M)
}
ae(H, G);
ae(H, I);
ae(H, ce("br"));
if (K == 4) {
ae(H, ct(sprintf(LANG.compose_limit2, F)))
} else {
ae(H, ct(sprintf(LANG.compose_limit, F)))
}
ae(L, H);
return I
},
coLivePreview: function (E, F, A, B) {
if (B != 1 && A.style.display == "none") {
return
}
var C = this,
I = Listview.funcBox.coGetCharLimit(F),
G = (C.value.length > I ? C.value.substring(0, I) : C.value);
if (F == 4) {
var H;
if ((H = G.indexOf("\n")) != -1 && (H = G.indexOf("\n", H + 1)) != -1 && (H = G.indexOf("\n", H + 1)) != -1) {
G = G.substring(0, H)
}
}
var D = Markup.toHtml(G, {
mode: Markup.MODE_COMMENT
});
if (D) {
A.innerHTML = D
} else {
A.innerHTML = '<span class="q6">...</span>'
}
},
coEditButton: function (E, D, B) {
if (D) {
var A = gE(E.divEdit, "textarea")[0];
if (!Listview.funcBox.coValidate(A, B)) {
return
}
if (A.value != E.body) {
var C = 0;
if (E.lastEdit != null) {
C = E.lastEdit[1]
}++C;
E.lastEdit = [g_serverTime, C, g_user.name];
Listview.funcBox.coUpdateLastEdit(E);
E.divBody.innerHTML = Markup.toHtml((A.value.length > 7500 ? A.value.substring(0, 7500) : A.value), {
mode: Markup.MODE_COMMENT
});
E.body = A.value;
if (B == -1) {
new Ajax("?forums=editpost&id=" + E.id, {
method: "POST",
params: "body=" + urlencode(E.body)
})
} else {
new Ajax("?comment=edit&id=" + E.id, {
method: "POST",
params: "body=" + urlencode(E.body)
})
}
}
}
E.divBody.style.display = "";
E.divLinks.firstChild.style.display = "";
de(E.divEdit);
E.divEdit = null
},
coGetCharLimit: function (A) {
if (A == 4) {
return 250
} else {
return 7500
}
},
coModeLink: function (D, A) {
var I = Listview.funcBox.coGetCharLimit(D);
var B = Markup.MODE_COMMENT;
array_walk(gE(this.parentNode, "a"), function (J) {
J.className = ""
});
this.className = "selected";
var C = gE(this.parentNode.parentNode, "textarea")[0],
H = C.parentNode,
E = H.previousSibling;
if (A == 4) {
B = Markup.MODE_SIGNATURE
}
switch (D) {
case 1:
H.style.display = "";
E.style.display = "none";
H.firstChild.focus();
break;
case 2:
H.style.display = "none";
var F = (C.value.length > I ? C.value.substring(0, I) : C.value);
if (A == 4) {
var G;
if ((G = F.indexOf("\n")) != -1 && (G = F.indexOf("\n", G + 1)) != -1 && (G = F.indexOf("\n", G + 1)) != -1) {
F = F.substring(0, G)
}
}
E.innerHTML = Markup.toHtml(F, {
mode: B
});
E.style.display = "";
break
}
},
coReply: function (B) {
document.forms.addcomment.elements.replyto.value = B.replyTo;
var A = ge("replybox-generic");
gE(A, "span")[0].innerHTML = B.user;
A.style.display = "";
co_addYourComment()
},
coValidate: function (A, B) {
B |= 0;
if (B == 1 || B == -1) {
if (trim(A.value).length < 1) {
alert(LANG.message_forumposttooshort);
return false
}
} else {
if (trim(A.value).length < 10) {
alert(LANG.message_commenttooshort);
return false
}
}
if (A.value.length > 7500) {
if (!confirm(sprintf((B == 1 ? LANG.confirm_forumposttoolong : LANG.confirm_commenttoolong), A.value.substring(7470, 7500)))) {
return false
}
}
return true
},
coCustomRatingOver: function (A) {
Tooltip.showAtCursor(A, LANG.tooltip_customrating, 0, 0, "q")
},
coPlusRatingOver: function (A) {
Tooltip.showAtCursor(A, LANG.tooltip_uprate, 0, 0, "q2")
},
coMinusRatingOver: function (A) {
Tooltip.showAtCursor(A, LANG.tooltip_downrate, 0, 0, "q7")
},
coSortDate: function (A) {
A.nextSibling.nextSibling.className = "";
A.className = "selected";
this.mainDiv.className = "listview-aci";
this.setSort([1], true, false)
},
coSortHighestRatedFirst: function (A) {
A.previousSibling.previousSibling.className = "";
A.className = "selected";
this.mainDiv.className = "";
this.setSort([-3, 2], true, false)
},
coUpdateLastEdit: function (F) {
var B = F.divLastEdit;
if (!B) {
return
}
if (F.lastEdit != null) {
var E = F.lastEdit;
B.childNodes[1].firstChild.nodeValue = E[2];
B.childNodes[1].href = "?user=" + E[2];
var D = new Date(E[0]);
var A = (g_serverTime - D) / 1000;
if (B.childNodes[3].firstChild) {
de(B.childNodes[3].firstChild)
}
Listview.funcBox.coFormatDate(B.childNodes[3], A, D);
var C = "";
if (F.rating != null) {
C += LANG.lvcomment_patch1 + g_getPatchVersion(D) + LANG.lvcomment_patch2
}
if (E[1] > 1) {
C += LANG.dash + sprintf(LANG.lvcomment_nedits, E[1])
}
B.childNodes[4].nodeValue = C;
B.style.display = ""
} else {
B.style.display = "none"
}
},
coFormatDate: function (E, A, D, F, G) {
var C;
if (A < 2592000) {
txt = sprintf(LANG.date_ago, g_formatTimeElapsed(A));
var B = D;
B.setTime(B.getTime() + (g_localTime - g_serverTime));
E.style.cursor = "help";
E.title = B.toLocaleString()
} else {
txt = LANG.date_on + g_formatDateSimple(D, F);
E.style.cursor = E.title = ""
}
if (G == 1) {
txt = txt.substr(0, 1).toUpperCase() + txt.substr(1)
}
C = ct(txt);
ae(E, C)
},
ssCellOver: function () {
this.className = "screenshot-caption-over"
},
ssCellOut: function () {
this.className = "screenshot-caption"
},
ssCellClick: function (B, D) {
D = $E(D);
if (D.shiftKey || D.ctrlKey) {
return
}
var A = 0,
C = D._target;
while (C && A < 3) {
if (C.nodeName == "A") {
return
}
if (C.nodeName == "IMG") {
break
}
C = C.parentNode
}
ScreenshotViewer.show({
screenshots: this.data,
pos: B
})
},
moneyHonorOver: function (A) {
Tooltip.showAtCursor(A, "<b>" + LANG.tooltip_honorpoints + "</b>", 0, 0, "q")
},
moneyArenaOver: function (A) {
Tooltip.showAtCursor(A, "<b>" + LANG.tooltip_arenapoints + "</b>", 0, 0, "q")
},
appendMoney: function (E, A, F, J, K, B) {
var I, H = 0;
if (A >= 10000) {
H = 1;
I = ce("span");
I.className = "moneygold";
ae(I, ct(Math.floor(A / 10000)));
ae(E, I);
A %= 10000
}
if (A >= 100) {
if (H) {
ae(E, ct(" "))
} else {
H = 1
}
I = ce("span");
I.className = "moneysilver";
ae(I, ct(Math.floor(A / 100)));
ae(E, I);
A %= 100
}
if (A >= 1 || F != null) {
if (H) {
ae(E, ct(" "))
} else {
H = 1
}
I = ce("span");
I.className = "moneycopper";
ae(I, ct(A));
ae(E, I)
}
if (J != null && J != 0) {
if (H) {
ae(E, ct(" "))
} else {
H = 1
}
I = ce("span");
I.className = "money" + (J < 0 ? "horde" : "alliance") + " tip";
I.onmouseover = Listview.funcBox.moneyHonorOver;
I.onmousemove = Tooltip.cursorUpdate;
I.onmouseout = Tooltip.hide;
ae(I, ct(number_format(Math.abs(J))));
ae(E, I)
}
if (K >= 1) {
if (H) {
ae(E, ct(" "))
} else {
H = 1
}
I = ce("span");
I.className = "moneyarena tip";
I.onmouseover = Listview.funcBox.moneyArenaOver;
I.onmousemove = Tooltip.cursorUpdate;
I.onmouseout = Tooltip.hide;
ae(I, ct(number_format(K)));
ae(E, I)
}
if (B != null) {
for (var C = 0; C < B.length; ++C) {
if (H) {
ae(E, ct(" "))
} else {
H = 1
}
var G = B[C][0];
var D = B[C][1];
I = ce("a");
I.href = "?item=" + G;
I.className = "moneyitem";
I.style.backgroundImage = "url(images/icons/small/" + g_items.getIcon(G).toLowerCase() + ".png)";
ae(I, ct(D));
ae(E, I)
}
}
}
};
Listview.templates = {
faction: {
sort: [1],
nItemsPerPage: -1,
columns: [{
id: "name",
name: LANG.name,
align: "left",
value: "name",
compute: function (C, D) {
var A = ce("a");
A.style.fontFamily = "Verdana, sans-serif";
A.href = this.template.getItemLink(C);
ae(A, ct(C.name));
if (C.expansion == 1) {
var B = ce("span");
B.className = "bc-icon";
ae(B, A);
ae(D, B)
} else {
ae(D, A)
}
}
},
{
id: "group",
name: LANG.group,
value: "group",
compute: function (A, B) {
if (A.group != null) {
return A.group
}
}
},
{
id: "side",
name: LANG.side,
width: "10%",
compute: function (B, C) {
if (B.side) {
var A = ce("span");
A.className = (B.side == 1 ? "alliance-icon" : "horde-icon");
ae(A, ct(g_sides[B.side]));
ae(C, A)
}
},
sortFunc: function (B, A, C) {
return strcmp(g_sides[B.side], g_sides[A.side])
}
}],
getItemLink: function (A) {
return "?faction=" + A.id
}
},
item: {
sort: [1],
columns: [{
id: "name",
name: LANG.name,
align: "left",
span: 2,
value: "name",
compute: function (D, G, E) {
var C = ce("td");
C.style.width = "1px";
C.style.padding = "0";
C.style.borderRight = "none";
var B = null,
F = null;
if (D.stack != null) {
B = Listview.funcBox.createTextRange(D.stack[0], D.stack[1])
}
if (D.avail != null) {
F = D.avail
}
ae(C, g_items.createIcon(D.id, 1, B, F));
ae(E, C);
G.style.borderLeft = "none";
var A = ce("a");
A.className = "q" + (6 - parseInt(D.name.charAt(0)));
A.style.fontFamily = "Verdana, sans-serif";
A.href = this.template.getItemLink(D);
ae(A, ct(D.name.substring(1)));
ae(G, A)
}
},
{
id: "level",
name: LANG.level,
width: "7%",
value: "level",
sortFunc: function (B, A, C) {
return strcmp(B.level, A.level) || strcmp(B.reqlevel, A.reqlevel)
}
},
{
id: "reqlevel",
name: LANG.req,
tooltip: LANG.tooltip_reqlevel,
width: "7%",
value: "reqlevel",
compute: function (A, B) {
if (A.reqlevel > 1) {
return A.reqlevel
}
},
sortFunc: function (B, A, C) {
return strcmp(B.reqlevel, A.reqlevel) || strcmp(B.level, A.level)
}
},
{
id: "dps",
name: LANG.dps,
width: "10%",
value: "dps",
compute: function (A, B) {
return (A.dps || 0).toFixed(1)
},
hidden: true
},
{
id: "speed",
name: LANG.speed,
width: "10%",
value: "speed",
compute: function (A, B) {
return (A.speed || 0).toFixed(2)
},
hidden: true
},
{
id: "armor",
name: LANG.armor,
width: "10%",
value: "armor",
compute: function (A, B) {
if (A.armor > 0) {
return A.armor
}
},
hidden: true
},
{
id: "slot",
name: LANG.slot,
width: "10%",
compute: function (A, B) {
return g_item_slots[A.slot]
},
sortFunc: function (B, A, C) {
return strcmp(g_item_slots[B.slot], g_item_slots[A.slot])
},
hidden: true
},
{
id: "slots",
name: LANG.slots,
width: "10%",
value: "nslots",
hidden: true
},
{
id: "skill",
name: LANG.skill,
width: "10%",
value: "skill",
hidden: true
},
{
id: "source",
name: LANG.source,
width: "12%",
compute: function (C, D) {
if (C.source != null) {
for (var B = 0, A = C.source.length; B < A; ++B) {
if (B > 0) {
ae(D, ct(LANG.comma))
}
ae(D, ct(g_sources[C.source[B]]))
}
}
},
sortFunc: function (B, A, C) {
return Listview.funcBox.assocArrCmp(B.source, A.source, g_sources)
}
},
{
id: "type",
name: LANG.type,
width: "14%",
compute: function (C, D) {
D.className = "small q1";
var A = ce("a");
var B = "?items=" + C.classs;
if (g_item_subclasses[C.classs] != null) {
B += "." + C.subclass
}
if (C.subsubclass != null && g_item_subsubclasses[C.classs][C.subclass] != null) {
B += "." + C.subsubclass
}
A.href = B;
ae(A, ct(Listview.funcBox.getItemType(C.classs, C.subclass, C.subsubclass)));
ae(D, A)
},
sortFunc: function (B, A, D) {
var C = Listview.funcBox.getItemType;
return strcmp(C(B.classs, B.subclass, B.subsubclass), C(A.classs, A.subclass, A.subsubclass))
}
}],
getItemLink: function (A) {
return "?item=" + A.id
}
},
itemset: {
sort: [1],
nItemsPerPage: 75,
columns: [{
id: "name",
name: LANG.name,
align: "left",
value: "name",
compute: function (B, D) {
var A = ce("a");
A.className = "q" + (6 - parseInt(B.name.charAt(0)));
A.style.fontFamily = "Verdana, sans-serif";
A.href = this.template.getItemLink(B);
ae(A, ct(B.name.substring(1)));
ae(D, A);
if (B.note) {
var C = ce("div");
C.className = "small";
ae(C, ct(g_itemset_notes[B.note]));
ae(D, C)
}
}
},
{
id: "level",
name: LANG.level,
compute: function (A, B) {
if (A.minlevel > 0 && A.maxlevel > 0) {
if (A.minlevel != A.maxlevel) {
return A.minlevel + LANG.hyphen + A.maxlevel
} else {
return A.minlevel
}
} else {
return -1
}
},
sortFunc: function (B, A, C) {
if (C > 0) {
return strcmp(B.minlevel, A.minlevel) || strcmp(B.maxlevel, A.maxlevel)
} else {
return strcmp(B.maxlevel, A.maxlevel) || strcmp(B.minlevel, A.minlevel)
}
}
},
{
id: "pieces",
name: LANG.pieces,
compute: function (A, B) {
B.style.padding = "0";
Listview.funcBox.createCenteredIcons(A.pieces, B)
},
sortFunc: function (B, A) {
var D = (B.pieces != null ? B.pieces.length : 0);
var C = (A.pieces != null ? A.pieces.length : 0);
return strcmp(D, C)
}
},
{
id: "type",
name: LANG.type,
compute: function (A, B) {
return g_itemset_types[A.type]
},
sortFunc: function (B, A, C) {
return strcmp(g_itemset_types[B.type], g_itemset_types[A.type])
}
},
{
id: "classes",
name: LANG.classes,
compute: function (C, D) {
if (C.classes != null) {
for (var B = 0, A = C.classes.length; B < A; ++B) {
if (B > 0) {
ae(D, ct(LANG.comma))
}
ae(D, ct(g_chr_classes[C.classes[B]]))
}
}
},
sortFunc: function (B, A, C) {
return Listview.funcBox.assocArrCmp(B.classes, A.classes, g_chr_classes)
}
}],
getItemLink: function (A) {
return "?itemset=" + A.id
}
},
npc: {
sort: [1],
nItemsPerPage: 100,
columns: [{
id: "name",
name: LANG.name,
align: "left",
value: "name",
compute: function (B, D) {
var A = ce("a");
A.style.fontFamily = "Verdana, sans-serif";
A.href = this.template.getItemLink(B);
ae(A, ct(B.name));
ae(D, A);
if (B.tag != null) {
var C = ce("div");
C.className = "small";
ae(C, ct("<" + B.tag + ">"));
ae(D, C)
}
}
},
{
id: "level",
name: LANG.level,
width: "10%",
compute: function (A, C) {
if (A.classification) {
var B = ce("div");
B.className = "small";
ae(B, ct(g_npc_classifications[A.classification]));
ae(C, B)
}
if (A.classification == 3) {
return "??"
}
if (A.minlevel > 0 && A.maxlevel > 0) {
if (A.minlevel != A.maxlevel) {
return A.minlevel + LANG.hyphen + A.maxlevel
} else {
return A.minlevel
}
}
return -1
},
sortFunc: function (B, A, C) {
if (C > 0) {
return strcmp(B.minlevel, A.minlevel) || strcmp(B.maxlevel, A.maxlevel) || strcmp(B.classification, A.classification)
} else {
return strcmp(B.maxlevel, A.maxlevel) || strcmp(B.minlevel, A.minlevel) || strcmp(B.classification, A.classification)
}
}
},
{
id: "location",
name: LANG.location,
compute: function (A, B) {
return Listview.funcBox.location(A, B)
},
sortFunc: function (B, A, C) {
return Listview.funcBox.assocArrCmp(B.location, A.location, g_zones)
}
},
{
id: "react",
name: LANG.react,
width: "10%",
value: "react",
compute: function (B, G) {
if (B.react == null) {
return -1
}
var D = [LANG.lvnpc_alliance, LANG.lvnpc_horde];
var C = "";
var F = 0;
for (var A = 0; A < 2; ++A) {
if (B.react[A] != null) {
if (F++ > 0) {
ae(G, ct(" "))
}
var E = ce("span");
E.className = (B.react[A] < 0 ? "q7" : (B.react[A] > 0 ? "q2" : "q"));
ae(E, ct(D[A]));
ae(G, E)
}
}
}
},
{
id: "petfamily",
name: LANG.petfamily,
width: "12%",
compute: function (B, C) {
C.className = "q1";
var A = ce("a");
A.href = "?spells=-3." + B.family;
ae(A, ct(g_spell_skills[B.family]));
ae(C, A)
},
sortFunc: function (B, A, C) {
return strcmp(g_spell_skills[B.family], g_spell_skills[A.family])
},
hidden: 1
},
{
id: "type",
name: LANG.type,
width: "12%",
compute: function (B, C) {
C.className = "small q1";
var A = ce("a");
A.href = "?npcs=" + B.type;
ae(A, ct(g_npc_types[B.type]));
ae(C, A)
},
sortFunc: function (B, A, C) {
return strcmp(g_npc_types[B.type], g_npc_types[A.type])
}
}],
getItemLink: function (A) {
return "?npc=" + A.id
}
},
object: {
sort: [1],
nItemsPerPage: 100,
columns: [{
id: "name",
name: LANG.name,
align: "left",
value: "name",
compute: function (B, C) {
var A = ce("a");
A.style.fontFamily = "Verdana, sans-serif";
A.href = this.template.getItemLink(B);
ae(A, ct(B.name));
ae(C, A)
}
},
{
id: "location",
name: LANG.location,
compute: function (A, B) {
return Listview.funcBox.location(A, B)
},
sortFunc: function (B, A, C) {
return Listview.funcBox.assocArrCmp(B.location, A.location, g_zones)
}
},
{
id: "skill",
name: LANG.skill,
width: "10%",
value: "skill",
hidden: true
},
{
id: "type",
name: LANG.type,
width: "12%",
compute: function (B, C) {
C.className = "small q1";
var A = ce("a");
A.href = "?objects=" + B.type;
ae(A, ct(g_object_types[B.type]));
ae(C, A)
},
sortFunc: function (B, A, C) {
return strcmp(g_object_types[B.type], g_object_types[A.type])
}
}],
getItemLink: function (A) {
return "?object=" + A.id
}
},
quest: {
sort: [1, 2],
nItemsPerPage: 100,
columns: [{
id: "name",
name: LANG.name,
align: "left",
value: "name",
compute: function (B, C) {
var A = ce("a");
A.style.fontFamily = "Verdana, sans-serif";
A.href = this.template.getItemLink(B);
ae(A, ct(B.name));
ae(C, A)
}
},
{
id: "level",
name: LANG.level,
width: "7%",
compute: function (A, C) {
if (A.type || A.daily) {
var B = ce("div");
B.className = "small";
B.style.whiteSpace = "nowrap";
if (A.type && A.daily) {
ae(B, ct(sprintf(LANG.lvquest_daily, g_quest_types[A.type])))
} else {
if (A.daily) {
ae(B, ct(LANG.daily))
} else {
if (A.type) {
ae(B, ct(g_quest_types[A.type]))
}
}
}
ae(C, B)
}
return A.level
},
sortFunc: function (B, A, C) {
return strcmp(B.level, A.level) || strcmp(B.type, A.type) || strcmp(B.reqlevel, A.reqlevel)
}
},
{
id: "reqlevel",
name: LANG.req,
tooltip: LANG.tooltip_reqlevel,
width: "7%",
value: "reqlevel",
sortFunc: function (B, A, C) {
return strcmp(B.reqlevel, A.reqlevel) || strcmp(B.level, A.level)
}
},
{
id: "side",
name: LANG.side,
width: "10%",
compute: function (A, C) {
if (A.side) {
var B = ce("span");
if (A.side == 1) {
B.className = "alliance-icon"
} else {
if (A.side == 2) {
B.className = "horde-icon"
}
}
ae(B, ct(g_sides[A.side]));
ae(C, B)
} else {
return -1
}
},
sortFunc: function (B, A, C) {
return strcmp(g_sides[B.side], g_sides[A.side])
}
},
{
id: "rewards",
name: LANG.rewards,
width: "25%",
compute: function (B, F) {
var A = (B.itemchoices != null || B.itemrewards != null);
if (A) {
F.style.padding = "0";
var E, D;
if (B.itemchoices && B.itemchoices.length > 1) {
E = LANG.lvquest_pickone;
if (B.itemrewards && B.itemrewards.length > 0) {
D = LANG.lvquest_alsoget
}
}
Listview.funcBox.createCenteredIcons(B.itemchoices, F, E);
Listview.funcBox.createCenteredIcons(B.itemrewards, F, D)
}
if (B.xp > 0 || B.money > 0) {
var C = ce("div");
if (A) {
C.style.padding = "4px"
}
if (B.xp > 0) {
ae(C, ct(sprintf(LANG.lvquest_xp, B.xp) + (B.money > 0 ? " + " : "")))
}
if (B.money > 0) {
Listview.funcBox.appendMoney(C, B.money)
}
ae(F, C)
}
},
sortFunc: function (B, A, C) {
var E = (B.itemchoices != null ? B.itemchoices.length : 0) + (B.itemrewards != null ? B.itemrewards.length : 0);
var D = (A.itemchoices != null ? A.itemchoices.length : 0) + (A.itemrewards != null ? A.itemrewards.length : 0);
return strcmp(E, D) || strcmp((B.xp | 0) + (B.money | 0), (A.xp | 0) + (A.money | 0))
}
},
{
id: "reputation",
name: LANG.reputation,
width: "14%",
value: "id",
hidden: true
},
{
id: "category",
name: LANG.category,
width: "16%",
compute: function (B, C) {
if (B.category != 0) {
C.className = "small q1";
var A = ce("a");
A.href = "?quests=" + B.category2 + "." + B.category;
ae(A, ct(Listview.funcBox.getQuestCategory(B.category)));
ae(C, A)
}
},
sortFunc: function (B, A, D) {
var C = Listview.funcBox.getQuestCategory;
return strcmp(C(B.category), C(A.category))
}
}],
getItemLink: function (A) {
return "?quest=" + A.id
}
},
spell: {
sort: [1, 2],
columns: [{
id: "name",
name: LANG.name,
align: "left",
span: 2,
value: "name",
compute: function (F, C, J) {
var E = ce("td"),
M;
E.style.width = "44px";
E.style.padding = "0";
E.style.borderRight = "none";
if (F.creates != null) {
M = g_items.createIcon(F.creates[0], 1, Listview.funcBox.createTextRange(F.creates[1], F.creates[2]))
} else {
M = g_spells.createIcon(F.id, 1)
}
M.style.cssFloat = M.style.styleFloat = "left";
ae(E, M);
ae(J, E);
C.style.borderLeft = "none";
var A = ce("div");
var L = ce("a");
var I = F.name.charAt(0);
if (I != "@") {
L.className = "q" + (6 - parseInt(I))
}
L.style.fontFamily = "Verdana, sans-serif";
L.href = this.template.getItemLink(F);
ae(L, ct(F.name.substring(1)));
ae(A, L);
var B = F.talent != null && this._noTalents == null;
if (F.rank != null || B) {
var H = ce("div");
H.className = "small2";
var D = "";
if (F.rank != null) {
D += F.rank;
if (B) {
D += " "
}
}
if (B) {
D += "(Talent)"
}
ae(H, ct(D));
ae(A, H)
}
if (F.races != null) {
A.style.position = "relative";
var H = ce("div");
H.className = "small";
H.style.fontStyle = "italic";
H.style.position = "absolute";
H.style.right = H.style.bottom = "3px";
var K = F.races.toString();
if (K == "1,3,4,7,11") {
ae(H, ct(g_sides[1]))
} else {
if (K == "2,5,6,8,10") {
ae(H, ct(g_sides[2]))
} else {
for (var E = 0, G = F.races.length; E < G; ++E) {
if (E > 0) {
ae(H, ct(LANG.comma))
}
ae(H, ct(g_chr_races[F.races[E]]))
}
}
}
ae(A, H)
}
ae(C, A)
}
},
{
id: "level",
name: LANG.level,
width: "10%",
value: "level",
compute: function (A, B) {
if (A.level > 0) {
return A.level
}
},
hidden: true
},
{
id: "school",
name: LANG.school,
width: "10%",
hidden: true,
compute: function (A, B) {
return g_spell_resistances[A.school]
},
sortFunc: function (B, A, C) {
return strcmp(g_spell_resistances[B.school], g_spell_resistances[A.school])
}
},
{
id: "reagents",
name: LANG.reagents,
align: "left",
width: "15%",
compute: function (F, C) {
var A = (F.reagents != null);
if (A) {
C.style.padding = "0";
var H = ce("div");
var I = F.reagents;
H.style.width = (44 * I.length) + "px";
for (var D = 0, G = I.length; D < G; ++D) {
var B = I[D][0];
var E = I[D][1];
var J = g_items.createIcon(B, 1, E);
J.style.cssFloat = J.style.styleFloat = "left";
ae(H, J)
}
ae(C, H)
}
},
sortFunc: function (B, A) {
var D = (B.reagents != null ? B.reagents.length : 0);
var C = (A.reagents != null ? A.reagents.length : 0);
if (D > 0 && D == C) {
return strcmp(B.reagents.toString(), A.reagents.toString())
} else {
return strcmp(D, C)
}
}
},
{
id: "tp",
name: LANG.tp,
tooltip: LANG.tooltip_trainingpoints,
width: "7%",
hidden: true,
value: "tp",
compute: function (A, B) {
if (A.tp > 0) {
return A.tp
}
}
},
{
id: "source",
name: LANG.source,
width: "12%",
hidden: true,
compute: function (B, D) {
if (B.source != null) {
for (var C = 0, A = B.source.length; C < A; ++C) {
if (C > 0) {
ae(D, ct(LANG.comma))
}
ae(D, ct(g_sources[B.source[C]]))
}
}
},
sortFunc: function (B, A, C) {
return Listview.funcBox.assocArrCmp(B.source, A.source, g_sources)
}
},
{
id: "skill",
name: LANG.skill,
width: "16%",
compute: function (E, C) {
if (E.skill != null) {
var B = ce("div");
B.className = "small";
for (var D = 0, G = E.skill.length; D < G; ++D) {
if (D > 0) {
ae(B, ct(LANG.comma))
}
if (E.skill[D] == -1) {
ae(B, ct(LANG.ellipsis))
} else {
if (in_array([7, -2, -3, 11, 9], E.cat) != -1) {
var H = ce("a");
H.className = "q1";
H.href = "?spells=" + E.cat + "." + (E.chrclass ? E.chrclass + "." : "") + E.skill[D];
ae(H, ct(g_spell_skills[E.skill[D]]));
ae(B, H)
} else {
ae(B, ct(g_spell_skills[E.skill[D]]))
}
}
}
if (E.learnedat > 0) {
ae(B, ct(" ("));
var F = ce("span");
if (E.learnedat == 9999) {
F.className = "q0";
ae(F, ct("??"))
} else {
if (E.learnedat > 0) {
ae(F, ct(E.learnedat));
F.style.fontWeight = "bold"
}
}
ae(B, F);
ae(B, ct(")"))
}
ae(C, B);
if (E.colors != null) {
var A = E.colors,
I = 0;
for (var D = 0; D < A.length; ++D) {
if (A[D] > 0) {
++I;
break
}
}
if (I > 0) {
I = 0;
B = ce("div");
B.className = "small";
B.style.fontWeight = "bold";
for (var D = 0; D < A.length; ++D) {
if (A[D] > 0) {
if (I++ > 0) {
ae(B, ct(" "))
}
var J = ce("span");
J.className = "r" + (D + 1);
ae(J, ct(A[D]));
ae(B, J)
}
}
ae(C, B)
}
}
}
},
sortFunc: function (B, A) {
var D = strcmp(B.learnedat, A.learnedat);
if (D != 0) {
return D
}
if (B.colors != null && A.colors != null) {
for (var C = 0; C < 4; ++C) {
D = strcmp(B.colors[C], A.colors[C]);
if (D != 0) {
return D
}
}
}
return Listview.funcBox.assocArrCmp(B.skill, A.skill, g_spell_skills)
}
}],
getItemLink: function (A) {
return "?spell=" + A.id
}
},
zone: {
sort: [1],
nItemsPerPage: -1,
columns: [{
id: "name",
name: LANG.name,
align: "left",
value: "name",
compute: function (B, D) {
var A = ce("a");
A.style.fontFamily = "Verdana, sans-serif";
A.href = this.template.getItemLink(B);
ae(A, ct(B.name));
if (B.expansion == 1) {
var C = ce("span");
C.className = "bc-icon";
ae(C, A);
ae(D, C)
} else {
ae(D, A)
}
}
},
{
id: "level",
name: LANG.level,
width: "10%",
compute: function (A, B) {
if (A.minlevel > 0 && A.maxlevel > 0) {
if (A.minlevel != A.maxlevel) {
return A.minlevel + LANG.hyphen + A.maxlevel
} else {
return A.minlevel
}
}
},
sortFunc: function (B, A, C) {
if (C > 0) {
return strcmp(B.minlevel, A.minlevel) || strcmp(B.maxlevel, A.maxlevel)
} else {
return strcmp(B.maxlevel, A.maxlevel) || strcmp(B.minlevel, A.minlevel)
}
}
},
{
id: "territory",
name: LANG.territory,
width: "13%",
compute: function (A, C) {
var B = ce("span");
switch (A.territory) {
case 0:
B.className = "alliance-icon";
break;
case 1:
B.className = "horde-icon";
break;
case 4:
B.className = "ffapvp-icon";
break
}
ae(B, ct(g_zone_territories[A.territory]));
ae(C, B)
},
sortFunc: function (B, A, C) {
return strcmp(g_zone_territories[B.territory], g_zone_territories[A.territory])
}
},
{
id: "instancetype",
name: LANG.instancetype,
compute: function (A, D) {
if (A.instance > 0) {
var B = ce("span");
if (A.instance >= 1 && A.instance <= 5) {
B.className = "instance-icon" + A.instance
}
var C = g_zone_instancetypes[A.instance];
if (A.nplayers > 0 && ((A.instance != 2 && A.instance != 5) || A.nplayers > 5)) {
C += " (";
if (A.instance == 4) {
C += sprintf(LANG.lvzone_xvx, A.nplayers, A.nplayers)
} else {
C += sprintf(LANG.lvzone_xman, A.nplayers)
}
C += ")"
}
ae(B, ct(C));
ae(D, B)
}
},
sortFunc: function (B, A, C) {
return strcmp(g_zone_instancetypes[B.instance], g_zone_instancetypes[A.instance]) || strcmp(B.instance, A.instance) || strcmp(B.nplayers, A.nplayers)
}
},
{
id: "category",
name: LANG.category,
width: "15%",
compute: function (B, C) {
C.className = "small q1";
var A = ce("a");
A.href = "?zones=" + B.category;
ae(A, ct(g_zone_categories[B.category]));
ae(C, A)
},
sortFunc: function (B, A, C) {
return strcmp(g_zone_categories[B.category], g_zone_categories[A.category])
}
}],
getItemLink: function (A) {
return "?zone=" + A.id
}
},
comment: {
sort: [1],
mode: 2,
nItemsPerPage: 40,
poundable: 2,
columns: [{
value: "number"
},
{
value: "id"
},
{
value: "rating"
}],
compute: function (A, R) {
var l, h = new Date(A.date),
F = (g_serverTime - h) / 1000,
j = (g_user.roles & 26) != 0,
I = A.rating < 0 || A.purged || A.deleted,
X = j || A.user.toLowerCase() == g_user.name.toLowerCase(),
K = X && A.deleted == 0,
G = X && A.replyTo != A.id,
g = A.purged == 0 && A.deleted == 0 && g_user.id && A.user.toLowerCase() != g_user.name.toLowerCase() && in_array(A.raters, g_user.id, function (n) {
return n[0]
}) == -1,
m = A.rating >= 0 && (g_user.id == 0 || g);
A.ratable = g;
R.className = "comment";
if (A.indent) {
R.className += " comment-indent"
}
var V = ce("div");
var N = ce("div");
var Q = ce("div");
A.divHeader = V;
A.divBody = N;
A.divLinks = Q;
V.className = (I ? "comment-header-bt" : "comment-header");
var L = ce("div");
L.className = "comment-rating";
if (I) {
var J = ce("a");
J.href = "javascript:;";
J.onclick = Listview.funcBox.coToggleVis.bind(J, A);
ae(J, ct(LANG.lvcomment_show));
ae(L, J);
ae(L, ct(" " + String.fromCharCode(160) + " "))
}
var C = ce("b");
ae(C, ct(LANG.lvcomment_rating));
var U = ce("span");
ae(U, ct((A.rating > 0 ? "+" : "") + A.rating));
ae(C, U);
ae(L, C);
ae(L, ct(" "));
var O = ce("span");
var i = ce("a"),
H = ce("a");
if (g) {
i.href = H.href = "javascript:;";
i.onclick = Listview.funcBox.coRate.bind(i, A, 1);
H.onclick = Listview.funcBox.coRate.bind(H, A, -1);
if (j) {
var W = ce("a");
W.href = "javascript:;";
W.onclick = Listview.funcBox.coRate.bind(W, A, 0);
W.onmouseover = Listview.funcBox.coCustomRatingOver;
W.onmousemove = Tooltip.cursorUpdate;
W.onmouseout = Tooltip.hide;
ae(W, ct("[~]"));
ae(O, W);
ae(O, ct(" "))
}
} else {
i.href = H.href = "?account=signin"
}
ae(i, ct("[+]"));
i.onmouseover = Listview.funcBox.coPlusRatingOver;
H.onmouseover = Listview.funcBox.coMinusRatingOver;
i.onmousemove = H.onmousemove = Tooltip.cursorUpdate;
i.onmouseout = H.onmouseout = Tooltip.hide;
ae(H, ct("[-]"));
ae(O, H);
ae(O, ct(" "));
ae(O, i);
ae(L, O);
if (!m) {
O.style.display = "none"
}
ae(V, L);
ae(V, ct(LANG.lvcomment_by));
var B = ce("a");
B.href = "?user=" + A.user;
ae(B, ct(A.user));
ae(V, B);
ae(V, ct(" "));
var M = ce("a");
M.className = "q0";
M.href = "#comments:id=" + A.id;
Listview.funcBox.coFormatDate(M, F, h);
M.style.cursor = "pointer";
ae(V, M);
ae(V, ct(LANG.lvcomment_patch1 + g_getPatchVersion(h) + LANG.lvcomment_patch2));
ae(R, V);
N.className = "comment-body" + Listview.funcBox.coGetColor(A);
if (A.indent) {
N.className += " comment-body-indent"
}
N.innerHTML = Markup.toHtml(A.body, {
mode: Markup.MODE_COMMENT
});
ae(R, N);
if ((A.roles & 26) == 0 || g_user.roles & 26) {
var e = ce("div");
A.divLastEdit = e;
e.className = "comment-lastedit";
ae(e, ct(LANG.lvcomment_lastedit));
var Z = ce("a");
ae(Z, ct(" "));
ae(e, Z);
ae(e, ct(" "));
var a = ce("span");
ae(e, a);
ae(e, ct(" "));
Listview.funcBox.coUpdateLastEdit(A);
if (I) {
e.style.display = "none"
}
ae(R, e)
}
Q.className = "comment-links";
if (X) {
var E = ce("span");
var Y = ce("a");
ae(Y, ct(LANG.lvcomment_edit));
Y.onclick = Listview.funcBox.coEdit.bind(this, A, 0);
ns(Y);
Y.href = "javascript:;";
ae(E, Y);
ae(E, ct("|"));
ae(Q, E)
}
if (K) {
var k = ce("span");
var P = ce("a");
ae(P, ct(LANG.lvcomment_delete));
P.onclick = Listview.funcBox.coDelete.bind(this, A);
ns(P);
P.href = "javascript:;";
ae(k, P);
ae(k, ct("|"));
ae(Q, k)
}
if (G) {
var D = ce("span");
var T = ce("a");
ae(T, ct(LANG.lvcomment_detach));
T.onclick = Listview.funcBox.coDetach.bind(this, A);
ns(T);
T.href = "javascript:;";
ae(D, T);
ae(D, ct("|"));
ae(Q, D)
}
var S = ce("a");
ae(S, ct(LANG.lvcomment_reply));
if (g_user.id > 0) {
S.onclick = Listview.funcBox.coReply.bind(this, A);
S.href = "javascript:;"
} else {
S.href = "?account=signin"
}
ae(Q, S);
if (I) {
N.style.display = "none";
Q.style.display = "none"
}
ae(R, Q)
},
createNote: function (F) {
var E = ce("small");
var A = ce("a");
if (g_user.id > 0) {
A.href = "javascript:;";
A.onclick = co_addYourComment
} else {
A.href = "?account=signin"
}
ae(A, ct(LANG.lvcomment_add));
ae(E, A);
var D = ce("span");
D.style.padding = "0 5px";
D.style.color = "white";
ae(D, ct("|"));
ae(E, D);
ae(E, ct(LANG.lvcomment_sort));
var C = ce("a");
C.href = "javascript:;";
ae(C, ct(LANG.lvcomment_sortdate));
C.onclick = Listview.funcBox.coSortDate.bind(this, C);
ae(E, C);
ae(E, ct(LANG.comma));
var B = ce("a");
B.href = "javascript:;";
ae(B, ct(LANG.lvcomment_sortrating));
B.onclick = Listview.funcBox.coSortHighestRatedFirst.bind(this, B);
ae(E, B);
C.onclick();
ae(F, E)
},
onNoData: function (C) {
if (typeof g_pageInfo == "object" && g_pageInfo.type > 0) {
var A = "<b>" + LANG.lvnodata_co1 + "</b><br /><br />";
if (g_user.id > 0) {
var B = LANG.lvnodata_co2;
B = B.replace("<a>", '<a href="javascript:;" onclick="co_addYourComment()" onmousedown="return false">');
A += B
} else {
var B = LANG.lvnodata_co3;
B = B.replace("<a>", '<a href="?account=signin">');
B = B.replace("<a>", '<a href="?account=signup">');
A += B
}
C.style.padding = "1.5em 0";
C.innerHTML = A
}
},
onBeforeCreate: function () {
if (location.hash.match(/:id=([0-9]+)/) != null) {
var A = in_array(this.data, parseInt(RegExp.$1), function (B) {
return B.id
});
this.rowOffset = this.getRowOffset(A);
return this.data[A]
}
},
onAfterCreate: function (A) {
if (A != null) {
var B = A.__div;
this.tabs.__st = B;
B.firstChild.style.border = "1px solid #505050"
}
}
},
commentpreview: {
sort: [3],
nItemsPerPage: 75,
columns: [{
id: "subject",
name: LANG.subject,
align: "left",
value: "subject",
compute: function (D, C) {
var A = ce("a");
A.style.fontFamily = "Verdana, sans-serif";
A.href = this.template.getItemLink(D);
ae(A, ct(D.subject));
ae(C, A);
var B = ce("div");
B.className = "small";
ae(B, ct(LANG.types[D.type][0]));
ae(C, B)
}
},
{
id: "preview",
name: LANG.preview,
align: "left",
width: "50%",
value: "preview",
compute: function (H, G) {
var E = ce("div");
E.className = "crop";
if (H.rating >= 10) {
E.className += " comment-green"
}
ae(E, ct(Markup.removeTags(H.preview, {
mode: (H.rating != null ? Markup.MODE_COMMENT : Markup.MODE_ARTICLE)
})));
ae(G, E);
var A = H.rating != null;
var D = H.user != null;
if (A || D) {
E = ce("div");
E.className = "small3";
if (D) {
ae(E, ct(LANG.lvcomment_by));
var B = ce("a");
B.href = "?user=" + H.user;
ae(B, ct(H.user));
ae(E, B);
if (A) {
ae(E, ct(LANG.hyphen))
}
}
if (A) {
ae(E, ct(LANG.lvcomment_rating + (H.rating > 0 ? "+" : "") + H.rating));
var C = ce("span"),
F = "";
C.className = "q7";
if (H.deleted) {
F = " (Deleted)"
} else {
if (H.purged) {
F = " (Purged)"
}
}
ae(C, ct(F));
ae(E, C)
}
ae(G, E)
}
}
},
{
id: "posted",
name: LANG.posted,
width: "16%",
value: "elapsed",
compute: function (E, D) {
var B = new Date(E.date),
A = (g_serverTime - B) / 1000;
var C = ce("span");
Listview.funcBox.coFormatDate(C, A, B, 0, 1);
ae(D, C)
}
}],
getItemLink: function (A) {
return "?" + g_types[A.type] + "=" + A.typeId + (A.id != null ? "#comments:id=" + A.id : "")
}
},
screenshot: {
sort: [],
mode: 3,
nItemsPerPage: 40,
nItemsPerRow: 4,
poundable: 2,
columns: [],
compute: function (J, C, E) {
var N, G = new Date(J.date),
O = (g_serverTime - G) / 1000;
C.className = "screenshot-cell";
C.vAlign = "bottom";
var M = ce("a");
M.href = "#screenshots:id=" + J.id;
M.onclick = rf2;
var F = ce("img"),
B = Math.min(150 / J.width, 150 / J.height);
F.src = "http://upload.wowhead.com/images/screenshots/thumb/" + J.id + ".jpg";
F.width = parseInt(B * J.width);
F.height = parseInt(B * J.height);
ae(M, F);
ae(C, M);
var I = ce("div");
I.className = "screenshot-cell-user";
var P = (J.user != null && J.user.length);
if (P) {
M = ce("a");
M.href = "?user=" + J.user;
ae(M, ct(J.user));
ae(I, ct(LANG.lvscreenshot_from));
ae(I, M);
ae(I, ct(" "))
}
var Q = ce("span");
if (P) {
Listview.funcBox.coFormatDate(Q, O, G)
} else {
Listview.funcBox.coFormatDate(Q, O, G, 0, 1)
}
ae(I, Q);
ae(C, I);
I = ce("div");
I.style.position = "relative";
I.style.height = "1em";
if (g_locale.id != 0 && g_locale.id != 25 && J.caption) {
J.caption = ""
}
var H = (J.caption != null && J.caption.length);
var D = (J.subject != null && J.subject.length);
if (H || D) {
var A = ce("div");
A.className = "screenshot-caption";
if (D) {
var L = ce("small");
ae(L, ct(LANG.types[J.type][0] + LANG.colon));
var K = ce("a");
ae(K, ct(J.subject));
K.href = "?" + g_types[J.type] + "=" + J.typeId;
ae(L, K);
ae(A, L);
if (H && J.caption.length) {
ae(L, ct(" (...)"))
}
ae(L, ce("br"))
}
if (H) {
aE(C, "mouseover", Listview.funcBox.ssCellOver.bind(A));
aE(C, "mouseout", Listview.funcBox.ssCellOut.bind(A));
ae(A, ct('"' + J.caption + '"'))
}
ae(I, A)
}
aE(C, "click", Listview.funcBox.ssCellClick.bind(this, E));
ae(C, I)
},
createNote: function (C) {
if (typeof g_pageInfo == "object" && g_pageInfo.type > 0) {
var B = ce("small");
var A = ce("a");
if (g_user.id > 0) {
A.href = "javascript:;";
A.onclick = ss_submitAScreenshot
} else {
A.href = "?account=signin"
}
ae(A, ct(LANG.lvscreenshot_submit));
ae(B, A);
ae(C, B)
}
},
onNoData: function (C) {
if (typeof g_pageInfo == "object" && g_pageInfo.type > 0) {
var A = "<b>" + LANG.lvnodata_ss1 + "</b><br /><br />";
if (g_user.id > 0) {
var B = LANG.lvnodata_ss2;
B = B.replace("<a>", '<a href="javascript:;" onclick="ss_submitAScreenshot()" onmousedown="return false">');
A += B
} else {
var B = LANG.lvnodata_ss3;
B = B.replace("<a>", '<a href="?account=signin">');
B = B.replace("<a>", '<a href="?account=signup">');
A += B
}
C.style.padding = "1.5em 0";
C.innerHTML = A
} else {
return -1
}
},
onBeforeCreate: function () {
if (location.hash.match(/:id=([0-9]+)/) != null) {
var A = in_array(this.data, parseInt(RegExp.$1), function (B) {
return B.id
});
this.rowOffset = this.getRowOffset(A);
return A
}
},
onAfterCreate: function (A) {
if (A != null) {
setTimeout((function () {
ScreenshotViewer.show({
screenshots: this.data,
pos: A
})
}).bind(this), 1)
}
}
}
};
Menu.fixUrls(mn_items, "?items=");
Menu.fixUrls(mn_itemSets, "?itemsets&filter=cl=");
Menu.fixUrls(mn_npcs, "?npcs=");
Menu.fixUrls(mn_objects, "?objects=");
Menu.fixUrls(mn_quests, "?quests=");
Menu.fixUrls(mn_spells, "?spells=");
Menu.fixUrls(mn_zones, "?zones=");
Menu.fixUrls(mn_talentCalc, "?talent=");
var g_locale = {
id: 0,
name: "enus"
};
var g_localTime = new Date();
var g_user = {
id: 0,
name: "",
roles: 0
};
var g_items = [];
var g_quests = [];
var g_spells = [];
var g_users = [];
var g_types = {
1: "npc",
2: "object",
3: "item",
4: "itemset",
5: "quest",
6: "spell",
7: "zone",
8: "faction"
};
var g_locales = {
0: "enus",
2: "frfr",
3: "dede",
6: "eses",
25: "wotlk"
};
var g_customColors = {
Miyari: "pink"
};
g_items.getIcon = function (A) {
if (g_items[A] != null) {
return g_items[A].icon
} else {
return "temp"
}
};
g_items.createIcon = function (D, B, A, C) {
return Icon.create(g_items.getIcon(D), B, null, "?item=" + D, A, C)
};
g_spells.getIcon = function (A) {
if (g_spells[A] != null) {
return g_spells[A].icon
} else {
return "temp"
}
};
g_spells.createIcon = function (D, B, A, C) {
return Icon.create(g_spells.getIcon(D), B, null, "?spell=" + D, A, C)
};
var $WowheadPower = new
function () {
var V, a, L, // language
T, F, J, H, R = 0,
i = 0,
K = 1,
E = 2,
M = 3,
N = 4,
G = 3,
O = 5,
g = 6,
j = 15,
W = 15,
S = {
3: [g_items, "item"],
5: [g_quests, "quest"],
6: [g_spells, "spell"]
};
function Z() {
aE(document, "mouseover", U)
}
function A(k) {
var l = g_getCursorPos(k);
J = l.x;
H = l.y
}
function e(u, q) {
if (u.nodeName != "A") {
return -2323
}
if (!u.href.length) {
return
}
var o, n, l, k;
n = 2;
l = 3;
// if (u.href.indexOf("http://") == 0) {
// o = 1;
// k = u.href.match(/http:\/\/(www|dev|fr|es|de|wotlk)?\.?wowhead\.com\/\?(item|quest|spell)=([0-9]+)/)
// } else {
k = u.href.match(/()\?(item|quest|spell)=([0-9]+)/)
// }
if (k == null && u.rel) {
o = 0;
n = 1;
l = 2;
k = u.rel.match(/(item|quest|spell).?([0-9]+)/)
}
if (k) {
// var s,
// p = "www";
// if (o && k[o]) {
// p = k[o]
// } else {
// var r = location.hostname.match(/(www|dev|fr|es|de|wotlk)\.?wowhead\.com/);
// if (r != null) {
// p = r[1]
// }
// }
// s = g_getLocaleFromDomain(p);
// T = p;
s = 0;
F = u;
if (u.href.indexOf("#") != -1 && document.location.href.indexOf(k[n] + "=" + k[l]) != -1) {
return
}
R = (u.parentNode.className == "tile" ? 1 : 0);
if (!u.onmouseout) {
if (R == 0) {
u.onmousemove = Q
}
u.onmouseout = P
}
A(q);
Y(g_getIdFromTypeName(k[n]), k[l], s)
}
}
function U(m) {
m = $E(m);
var l = m._target;
var k = 0;
while (l != null && k < 3 && e(l, m) == -2323) {
l = l.parentNode;
++k
}
}
function Q(k) {
k = $E(k);
A(k);
Tooltip.move(J, H, 0, 0, j, W)
}
function P() {
V = null;
F = null;
Tooltip.hide()
}
function X(k) {
return "tooltip"
}
function h(m, n, l) {
var k = S[m][0];
if (k[n] == null) {
k[n] = {}
}
if (k[n].status == null) {
k[n].status = {}
}
if (k[n].status[l] == null) {
k[n].status[l] = i
}
}
function Y(m, n, l) {
// m - type ('item', etc)
// n - id
// l - language
V = m;
a = n;
L = l;
h(m, n, l);
var k = S[m][0];
if (k[n].status[l] == N || k[n].status[l] == M) {
C(k[n][X(l)], k[n].icon)
} else {
if (k[n].status[l] == K) {
C(LANG.tooltip_loading)
} else {
D(m, n, l)
}
}
}
function D(n, o, l, m) {
var k = S[n][0];
if (k[o].status[l] != i && k[o].status[l] != E) {
return
}
k[o].status[l] = K;
if (!m) {
k[o].timer = setTimeout(function () {
B.apply(this, [n, o, l])
}, 333)
}
g_ajaxIshRequest("ajax.php?" + S[n][1] + "=" + o)
}
function C(k, l) {
if (F._fixTooltip) {
k = F._fixTooltip(k, V, a, F)
}
// if (!k) {
// k = LANG["tooltip_" + g_types[V] + "notfound"];
// l = "Temp"
// }
if (R == 1) {
Tooltip.setIcon(null);
Tooltip.show(F, k, 0, 0)
} else {
Tooltip.setIcon(l);
Tooltip.showAtXY(k, J, H, j, W)
}
}
function B(m, n, l) {
if (V == m && a == n && L == l) {
C(LANG.tooltip_loading);
var k = S[m][0];
k[n].timer = setTimeout(function () {
I.apply(this, [m, n, l])
}, 3850)
}
}
function I(m, n, l) {
var k = S[m][0];
k[n].status[l] = E;
if (V == m && a == n && L == l) {
C(LANG.tooltip_noresponse)
}
}
this.register = function (n, o, l, m) {
var k = S[n][0];
clearTimeout(k[o].timer);
cO(k[o], m);
if (k[o][X(l)]) {
k[o].status[l] = N
} else {
k[o].status[l] = M
}
if (V == n && o == a && L == l) {
C(k[o][X(l)], k[o].icon)
}
};
this.registerItem = function (m, k, l) {
this.register(G, m, k, l)
};
this.registerQuest = function (m, k, l) {
this.register(O, m, k, l)
};
this.registerSpell = function (m, k, l) {
this.register(g, m, k, l)
};
this.request = function (l, m, k) {
h(l, m, k);
D(l, m, k, 1)
};
this.requestItem = function (k) {
this.request(G, g_locale.id, k)
};
this.requestSpell = function (k) {
this.request(g, g_locale.id, k)
};
this.getStatus = function (m, n, l) {
var k = S[m][0];
if (k[n] != null) {
return k[n].status[l]
} else {
return i
}
};
this.getItemStatus = function (l, k) {
this.getStatus(G, l, k)
};
this.requestSpell = function (l, k) {
this.getStatus(g, l, k)
};
Z()
};
LiveSearch = new
function () {
var currentTextbox, lastSearch = {},
lastDiv, timer, prepared, container, cancelNext, hasData;
function setText(textbox, txt) {
textbox.value = txt;
textbox.selectionStart = textbox.selectionEnd = txt.length
}
function colorDiv(div, fromOver) {
if (lastDiv) {
lastDiv.className = lastDiv.className.replace("live-search-selected", "")
}
lastDiv = div;
lastDiv.className += " live-search-selected";
if (!fromOver) {
show();
setTimeout(setText.bind(0, currentTextbox, g_getTextContent(div.firstChild.firstChild.childNodes[1])), 1);
cancelNext = 1
}
}
function aOver() {
colorDiv(this.parentNode.parentNode, 1)
}
function isVisible() {
if (!container) {
return false
}
return container.style.display != "none"
}
function adjust(fromResize) {
if (fromResize == 1 && !isVisible()) {
return
}
if (currentTextbox == null) {
return
}
var c = ac(currentTextbox);
container.style.left = (c[0] - 2) + "px";
container.style.top = (c[1] + currentTextbox.offsetHeight + 1) + "px";
container.style.width = currentTextbox.offsetWidth + "px"
}
function prepare() {
if (prepared) {
return
}
prepared = 1;
container = ce("div");
container.className = "live-search";
container.style.display = "none";
ae(ge("layers"), container);
aE(window, "resize", adjust.bind(0, 1));
aE(document, "click", hide)
}
function show() {
if (container && !isVisible()) {
adjust();
container.style.display = ""
}
}
function hide() {
if (container) {
container.style.display = "none"
}
}
function boldify(match) {
return "<b>" + match + "</b>"
}
function display(textbox, search, suggz, dataz) {
prepare();
show();
lastA = null;
hasData = 1;
while (container.firstChild) {
de(container.firstChild)
}
if (!Browser.ie6) {
ae(container, ce("em"));
ae(container, ce("var"));
ae(container, ce("strong"))
}
search = search.replace(/[^a-z0-9'\-]/, " ");
search = trim(search.replace(/\s+/g, " "));
var parts = search.split(" "),
strRegex = "";
for (var j = 0, len = parts.length; j < len; ++j) {
if (j > 0) {
strRegex += "|"
}
strRegex += parts[j]
}
var regex = new RegExp("(" + strRegex + ")", "gi");
for (var i = 0, len = suggz.length; i < len; ++i) {
var pos = suggz[i].lastIndexOf("(");
if (pos != -1) {
suggz[i] = suggz[i].substr(0, pos - 1)
}
var type = dataz[i][0],
typeId = dataz[i][1],
param1 = dataz[i][2],
param2 = dataz[i][3],
a = ce("a"),
sp = ce("i"),
sp2 = ce("span"),
div = ce("div"),
div2 = ce("div");
a.onmouseover = aOver;
a.href = "?" + g_types[type] + "=" + typeId;
if (type == 3 && param2) {
a.className += " q" + param2
}
if ((type == 3 || type == 6) && param1) {
div.className += " live-search-icon";
div.style.backgroundImage = "url(images/icons/small/" + param1.toLowerCase() + ".png)"
} else {
if (type == 5 && param1 >= 1 && param1 <= 2) {
div.className += " live-search-icon-quest-" + (param1 == 1 ? "alliance" : "horde")
}
}
ae(sp, ct(LANG.types[type][0]));
ae(a, sp);
var buffer = suggz[i];
buffer = buffer.replace(regex, boldify);
sp2.innerHTML = buffer;
ae(a, sp2);
if (type == 6 && param2) {
ae(a, ct(" (" + param2 + ")"))
}
ae(div2, a);
ae(div, div2);
ae(container, div)
}
}
function receive(xhr, opt) {
var text = xhr.responseText;
if (text.charAt(0) != "[" || text.charAt(text.length - 1) != "]") {
return
}
var a = eval(text);
var search = a[0];
if (search == opt.search) {
if (a.length == 8) {
display(opt.textbox, search, a[1], a[7])
} else {
hide()
}
}
}
function fetch(textbox, search) {
new Ajax("opensearch.php?search=" + urlencode(search), {
onSuccess: receive,
textbox: textbox,
search: search
})
}
function preFetch(textbox, search) {
if (cancelNext) {
cancelNext = 0;
return
}
hasData = 0;
if (timer > 0) {
clearTimeout(timer);
timer = 0
}
timer = setTimeout(fetch.bind(0, textbox, search), 200)
}
function cycle(dir) {
if (!isVisible()) {
if (hasData) {
show()
}
return
}
var firstNode = (container.childNodes[0].nodeName == "EM" ? container.childNodes[3] : container.firstChild);
var bakDiv = dir ? firstNode : container.lastChild;
if (lastDiv == null) {
colorDiv(bakDiv)
} else {
var div = dir ? lastDiv.nextSibling : lastDiv.previousSibling;
if (div) {
if (div.nodeName == "STRONG") {
div = container.lastChild
}
colorDiv(div)
} else {
colorDiv(bakDiv)
}
}
}
function onKeyUp(e) {
e = $E(e);
var textbox = e._target;
if (Browser.gecko && e.ctrlKey) {
switch (e.keyCode) {
case 48:
case 96:
case 107:
case 109:
adjust(textbox);
break
}
}
var search = trim(textbox.value.replace(/\s+/g, " "));
if (search == lastSearch[textbox.id]) {
return
}
lastSearch[textbox.id] = search;
if (search.length) {
preFetch(textbox, search)
} else {
hide()
}
}
function onKeyDown(e) {
e = $E(e);
var textbox = e._target;
switch (e.keyCode) {
case 27:
hide();
break;
case 38:
cycle(0);
break;
case 40:
cycle(1);
break
}
}
function onFocus(e) {
e = $E(e);
var textbox = e._target;
if (textbox != document) {
currentTextbox = textbox
}
}
this.attach = function (textbox) {
textbox.setAttribute("autocomplete", "off");
aE(textbox, "focus", onFocus);
aE(textbox, "keyup", onKeyUp);
aE(textbox, Browser.opera ? "keypress" : "keydown", onKeyDown)
}
};
Lightbox = new
function () {
var F, N, Q, J = {},
C = {},
P, D, E;
function O() {
aE(F, "click", G);
aE(N, "mousewheel", B);
aE(document, Browser.opera ? "keypress" : "keydown", H);
aE(window, "resize", A);
if (Browser.ie6) {
aE(window, "scroll", M)
}
}
function K() {
dE(F, "click", G);
dE(N, "mousewheel", B);
dE(document, Browser.opera ? "keypress" : "keydown", H);
dE(window, "resize", A);
if (Browser.ie6) {
dE(window, "scroll", M)
}
}
function I() {
if (P) {
return
}
P = 1;
var R = ge("layers");
F = ce("div");
F.className = "lightbox-overlay";
N = ce("div");
N.className = "lightbox-outer";
Q = ce("div");
Q.className = "lightbox-inner";
F.style.display = N.style.display = "none";
ae(R, F);
ae(N, Q);
ae(R, N)
}
function B(R) {
R = $E(R);
R.returnValue = false
}
function H(R) {
R = $E(R);
switch (R.keyCode) {
case 27:
G();
break
}
}
function A(R) {
if (R != 1234) {
if (C.onResize) {
C.onResize()
}
}
F.style.height = document.body.offsetHeight + "px";
if (Browser.ie6) {
M()
}
}
function M() {
var S = g_getScroll().y,
R = g_getWindowSize().h;
N.style.top = (S + R / 2) + "px"
}
function G() {
K();
if (C.onHide) {
C.onHide()
}
E = 0;
F.style.display = N.style.display = "none";
array_apply(gE(document, "iframe"), function (R) {
R.style.display = ""
})
}
function L() {
F.style.display = N.style.display = J[D].style.display = ""
}
this.setSize = function (R, S) {
Q.style.visibility = "hidden";
Q.style.width = R + "px";
Q.style.height = S + "px";
Q.style.left = -parseInt(R / 2) + "px";
Q.style.top = -parseInt(S / 2) + "px";
Q.style.visibility = "visible"
};
this.show = function (V, S, R) {
E = 1;
C = S || {};
array_apply(gE(document, "iframe"), function (W) {
W.style.display = "none"
});
I();
O();
if (D != V && J[D] != null) {
J[D].style.display = "none"
}
D = V;
var U = 0,
T;
if (J[V] == null) {
U = 1;
T = ce("div");
ae(Q, T);
J[V] = T
} else {
T = J[V]
}
if (C.onShow) {
C.onShow(T, U, R)
}
A(1234);
L()
};
this.reveal = function () {
L()
};
this.hide = function () {
G()
};
this.isVisible = function () {
return E
}
};