Imported AoWoW.

This version of AoWoW is based on https://github.com/udw/udwbase and is
not yet usable.

An initial amount of testing has been finished, and you can import the
aowow.sql database into your world database, and create a local copy of
config.php.in as config.php to test this version.

FirePHP (http://firephp.org/) has been added for testing purposes.

Signed-off-by: TheLuda <theluda@getmangos.com>
This commit is contained in:
TheLuda
2011-09-25 20:57:24 +02:00
parent 0fab20e9d4
commit 947f95fb20
12244 changed files with 102011 additions and 0 deletions
+76
View File
@@ -0,0 +1,76 @@
function Book(D) {
if (!D.parent || !D.pages || D.pages.length == 0) {
return
}
D.parent = $(D.parent);
var E, A, B;
this.nPages = D.pages.length;
this.parent = $(D.parent);
this.parent.className += " book";
E = ce("div");
E.className = "header";
if (this.nPages == 1) {
E.style.display = "none"
}
ns(E);
B = ce("div");
B.style.visibility = "hidden";
B.className = "previous";
A = ce("a");
A.appendChild(ct(String.fromCharCode(8249) + LANG.book_previous));
A.href = "javascript:;";
A.onclick = this.previous.bind(this);
B.appendChild(A);
E.appendChild(B);
B = ce("div");
B.style.visibility = "hidden";
B.className = "next";
A = ce("a");
A.appendChild(ct(LANG.book_next + String.fromCharCode(8250)));
A.href = "javascript:;";
A.onclick = this.next.bind(this);
B.appendChild(A);
E.appendChild(B);
B = ce("b");
B.appendChild(ct("1"));
E.appendChild(B);
E.appendChild(ct(LANG.book_of));
B = ce("b");
B.appendChild(ct(this.nPages));
E.appendChild(B);
D.parent.appendChild(E);
for (var C = 0; C < this.nPages; ++C) {
E = ce("div");
E.className = "page";
E.style.display = "none";
E.innerHTML = D.pages[C];
D.parent.appendChild(E)
}
this.page = 1;
this.changePage(D.page || 1)
}
Book.prototype = {
changePage: function (B) {
if (B < 1) {
B = 1
} else {
if (B > this.nPages) {
B = this.nPages
}
}
var A = this.parent.childNodes;
A[this.page].style.display = "none";
A[B].style.display = "";
this.page = B;
A = A[0].childNodes;
A[0].style.visibility = (B == 1) ? "hidden" : "visible";
A[1].style.visibility = (B == this.nPages) ? "hidden" : "visible";
A[2].innerHTML = B
},
next: function () {
this.changePage(this.page + 1)
},
previous: function () {
this.changePage(this.page - 1)
}
};
+388
View File
@@ -0,0 +1,388 @@
function Mapper(C, D) {
cO(this, C);
if (this.parent) {
this.parent = $(this.parent)
} else {
return
}
var B;
this.mouseX = this.mouseY = 0;
this.editable = this.editable || false;
if (this.editable) {
this.zoomable = this.toggle = false;
this.show = this.mouse = true
} else {
this.zoomable = (this.zoomable == null ? true : this.zoomable);
this.toggle = (this.toggle == null ? true : this.toggle);
this.show = (this.show == null ? true : this.show);
this.mouse = (this.mouse == null ? false : this.mouse)
}
this.zoneLink = (this.zoneLink == null ? true : this.zoneLink);
if (location.href.indexOf("zone=") != -1) {
this.zoneLink = false
}
this.zoom = (this.zoom == null ? 0 : this.zoom);
this.zone = (this.zone == null ? 0 : this.zone);
this.locale = (this.locale == null ? "enus" : this.locale);
this.pins = [];
this.nCoords = 0;
this.parent.className = "mapper";
this.parent.appendChild(this.span = ce("span"));
B = this.span.style;
B.display = "block";
B.position = "relative";
ns(this.span);
if (this.editable) {
this.span.onmouseup = this.addPin.bind(this);
B = g_createGlow(LANG.mapper_tippin);
B.style.fontSize = "11px";
B.style.position = "absolute";
B.style.bottom = B.style.right = "0";
ns(B);
this.parent.appendChild(B)
} else {
this.sToggle = B = g_createGlow(LANG.mapper_hidepins);
B.style.position = "absolute";
B.style.top = B.style.right = "0";
B.onclick = this.toggleShow.bind(this);
B.style.display = "none";
ns(B);
this.parent.appendChild(B)
}
if (this.zoomable) {
this.span.onclick = this.toggleZoom.bind(this);
this.sZoom = B = g_createGlow(LANG.mapper_tipzoom);
B.style.fontSize = "11px";
B.style.position = "absolute";
B.style.bottom = B.style.right = "0";
ns(B);
this.span.appendChild(B)
}
if (this.zoneLink) {
this.sZoneLink = B = g_createGlow("zone link");
var E = B.childNodes[4];
var A = ce("a");
A.href = "?zones";
ae(A, ct(E.firstChild.nodeValue));
de(E.firstChild);
ae(E, A);
B.style.display = "none";
B.style.position = "absolute";
B.style.top = B.style.left = "0";
this.parent.appendChild(B)
}
if (this.mouse) {
this.parent.onmouseout = (function () {
this.timeout = setTimeout((function () {
this.sMouse.style.display = "none"
}).bind(this), 1)
}).bind(this);
this.parent.onmouseover = (function () {
clearTimeout(this.timeout);
this.sMouse.style.display = ""
}).bind(this);
this.span.onmousemove = this.span.onmousedown = this.getMousePos.bind(this);
this.sMouse = B = g_createGlow("(0.0, 0.0)");
B.style.display = "none";
B.style.position = "absolute";
B.style.bottom = B.style.left = "0";
B.onmouseup = sp;
ns(B);
this.span.appendChild(B)
}
this.pinBag = B = ce("div");
ae(this.span, this.pinBag);
if (C.coords != null) {
this.setCoords(C.coords)
} else {
if (C.link != null) {
this.setLink(C.link)
}
}
this.updateMap(D)
}
Mapper.sizes = [[488, 325, "normal"], [772, 515, "zoom"]];
Mapper.prototype = {
update: function (A, B) {
if (A.zoom != null) {
this.zoom = A.zoom
}
if (A.zone != null) {
this.zone = A.zone
}
if (A.locale != null) {
this.locale = A.locale
}
if (A.show != null) {
this.show = A.show
}
if (A.coords != null) {
this.setCoords(A.coords)
} else {
if (A.link != null) {
this.setLink(A.link)
}
}
this.updateMap(B)
},
getZone: function () {
return this.zone
},
setZone: function (A, B) {
this.zone = A;
this.updateMap(B);
return true
},
getLocale: function () {
return this.locale
},
setLocale: function (A, B) {
this.locale = A;
this.updateMap(B)
},
getZoom: function () {
return this.zoom
},
setZoom: function (A, B) {
this.zoom = A;
this.updateMap(B)
},
toggleZoom: function (A) {
this.zoom = 1 - this.zoom;
this.updateMap();
this.getMousePos(A);
if (this.sZoom) {
this.sZoom.style.display = "none";
this.sZoom = null
}
},
getShow: function () {
return this.show
},
setShow: function (A) {
this.show = A;
var B = this.show ? "" : "none";
this.pinBag.style.display = B;
g_setTextNodes(this.sToggle, (this.show ? LANG.mapper_hidepins : LANG.mapper_showpins))
},
toggleShow: function () {
this.setShow(!this.show)
},
getCoords: function () {
var A = [];
for (var B in this.pins) {
if (!this.pins[B].free) {
A.push([this.pins[B].x, this.pins[B].y])
}
}
return A
},
setCoords: function (D) {
var A;
for (var C in this.pins) {
this.pins[C].style.display = "none";
this.pins[C].free = true
}
this.nCoords = D.length;
for (var C in D) {
var E = D[C];
var B = E[2];
A = this.getPin();
A.x = E[0];
A.y = E[1];
A.style.left = A.x + "%";
A.style.top = A.y + "%";
if (this.editable) {
A.a.onmouseup = this.delPin.bind(this, A)
} else {
if (B && B.url) {
A.a.href = B.url;
A.a.style.cursor = "pointer"
}
}
if (B && B.label) {
A.a.tt = B.label
} else {
A.a.tt = "$"
}
if (B && B.type) {
A.className += " pin-" + B.type
}
A.a.tt = str_replace(A.a.tt, "$", A.x.toFixed(1) + ", " + A.y.toFixed(1))
}
this.onPinUpdate && this.onPinUpdate(this)
},
getLink: function () {
var B = "";
for (var A in this.pins) {
if (!this.pins[A].free) {
B += (this.pins[A].x < 10 ? "0" : "") + (this.pins[A].x * 10).toFixed(0) + (this.pins[A].y < 10 ? "0" : "") + (this.pins[A].y * 10).toFixed(0)
}
}
return (this.zone ? this.zone : "") + (B ? ":" + B : "")
},
setLink: function (D) {
var B = [];
D = D.split(":");
if (!this.setZone(D[0])) {
return false
}
if (D.length == 2) {
for (var C = 0; C < D[1].length; C += 6) {
var A = D[1].substr(C, 3) / 10;
var E = D[1].substr(C + 3, 3) / 10;
if (isNaN(A) || isNaN(E)) {
break
}
B.push([A, E])
}
}
this.setCoords(B);
return true
},
updateMap: function (C) {
this.parent.style.width = this.span.style.width = Mapper.sizes[this.zoom][0] + "px";
this.parent.style.height = this.span.style.height = Mapper.sizes[this.zoom][1] + "px";
if (!this.editable) {
this.parent.style.cssFloat = this.parent.style.styleFloat = "left"
}
if (this.zone == "0") {
this.span.style.background = "black"
} else {
this.span.style.background = "url(images/maps/" + this.locale + "/" + Mapper.sizes[this.zoom][2] + "/" + this.zone + ".jpg)"
}
if (this.zoneLink) {
var A = parseInt(this.zone);
var B = g_zones[A] != null;
if (B) {
g_setTextNodes(this.sZoneLink, g_zones[A]);
this.sZoneLink.childNodes[4].firstChild.href = "?zone=" + A
}
this.sZoneLink.style.display = B ? "" : "none"
}
if (this.sToggle) {
this.sToggle.style.display = (this.toggle && this.nCoords ? "" : "none")
}
if (!C) {
g_scrollTo(this.parent, 3)
}
this.onMapUpdate && this.onMapUpdate(this)
},
cleanPin: function (B) {
var A = this.pins[B];
A.style.display = "";
A.free = false;
A.className = "pin";
A.a.onmousedown = rf;
A.a.onmouseup = rf;
A.a.href = "javascript:;";
A.a.style.cursor = "default";
return A
},
getPin: function () {
for (var C = 0; C < this.pins.length; ++C) {
if (this.pins[C].free) {
return this.cleanPin(C)
}
}
var B = ce("div"),
A = ce("a");
B.className = "pin";
B.appendChild(A);
B.a = A;
A.onmouseover = this.pinOver;
A.onmouseout = Tooltip.hide;
A.onclick = sp;
this.pins.push(B);
this.cleanPin(this.pins.length - 1);
ae(this.pinBag, B);
return B
},
addPin: function (B) {
B = $E(B);
if (B._button >= 2) {
return
}
this.getMousePos(B);
var A = this.getPin();
A.x = this.mouseX;
A.y = this.mouseY;
A.style.left = A.x.toFixed(1) + "%";
A.style.top = A.y.toFixed(1) + "%";
A.a.onmouseup = this.delPin.bind(this, A);
A.a.tt = A.x.toFixed(1) + ", " + A.y.toFixed(1);
this.onPinUpdate && this.onPinUpdate(this);
return false
},
delPin: function (A, B) {
B = $E(B);
A.style.display = "none";
A.free = true;
sp(B);
this.onPinUpdate && this.onPinUpdate(this);
return
},
pinOver: function () {
Tooltip.show(this, this.tt, 4, 0)
},
getMousePos: function (B) {
B = $E(B);
var C = ac(this.parent);
var A = g_getScroll();
this.mouseX = Math.floor((B.clientX + A.x - C[0] - 3) / Mapper.sizes[this.zoom][0] * 1000) / 10;
this.mouseY = Math.floor((B.clientY + A.y - C[1] - 3) / Mapper.sizes[this.zoom][1] * 1000) / 10;
if (this.mouseX < 0) {
this.mouseX = 0
} else {
if (this.mouseX > 100) {
this.mouseX = 100
}
}
if (this.mouseY < 0) {
this.mouseY = 0
} else {
if (this.mouseY > 100) {
this.mouseY = 100
}
}
if (this.mouse) {
g_setTextNodes(this.sMouse, "(" + this.mouseX.toFixed(1) + ", " + this.mouseY.toFixed(1) + ")")
}
}
};
function ma_initShowOnMap() {
var D = ge("lenrlkn4");
var A = ce("select");
var C = ce("option");
C.value = "";
C.style.color = "#bbbbbb";
ae(C, ct(LANG.showonmap));
ae(A, C);
if (showOnMap.qg_alliance || showOnMap.qg_horde) {
var B = ce("optgroup", {
label: LANG.som_questgivers
});
if (showOnMap.qg_alliance) {
ae(B, ce("option", {
value: "qg_alliance",
innerHTML: g_sides[1] + sprintf(LANG.qty, showOnMap.qg_alliance.count)
}))
}
if (showOnMap.qg_horde) {
ae(B, ce("option", {
value: "qg_horde",
innerHTML: g_sides[2] + sprintf(LANG.qty, showOnMap.qg_horde.count)
}))
}
ae(A, B)
}
A.onchange = A.onkeyup = function () {
var E = this.options[this.selectedIndex].value;
myMapper.update({
zone: g_pageInfo.id,
coords: E ? showOnMap[E].coords : []
})
};
ae(D, A)
};
+526
View File
@@ -0,0 +1,526 @@
var Markup = {
MODE_COMMENT: 1,
MODE_ARTICLE: 2,
MODE_QUICKFACTS: 3,
MODE_SIGNATURE: 4,
simpleTags: {
img: 1,
pad: 1,
item: 1,
spell: 1
},
_prepare: function (D, C) {
Markup.tags = [];
Markup.links = [];
Markup.nTags = 0;
Markup.nLinks = 0;
D = D.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");
D = D.replace(/^(\s*)|\r|(\s*)$/g, "");
D = D.replace(/\n(\s+)\n/g, "\n\n");
var B = "b|i|u|s|small";
var A = "b|i|u|s|small|url";
switch (C) {
case Markup.MODE_ARTICLE:
Markup.maps = [];
D = D.replace(/(.)?\[toggler\s*[\s+=:]\s*(.+?)\]/gi, function (F, E, H) {
if (E == "\\") {
return F.substr(1)
} else {
var G = Markup._yank(H, [["id", "[a-z0-9]+"]]);
Markup.tags.push({
name: "toggler",
close: false,
other: G
});
return (E || "") + "<t" + (Markup.nTags++) + ">"
}
});
D = D.replace(/(.)?\[div\s*[\s+=:]\s*(.+?)\]/gi, function (F, E, H) {
if (E == "\\") {
return F.substr(1)
} else {
var G = Markup._yank(H, [["id", "[a-z0-9]+"], ["hidden", ""]]);
Markup.tags.push({
name: "div",
close: false,
other: G
});
return (E || "") + "<t" + (Markup.nTags++) + ">"
}
});
D = D.replace(/(.)?\[img\s*[\s+=:]\s*(.+?)\]/gi, function (F, E, H) {
if (E == "\\") {
return F.substr(1)
} else {
var G = Markup._yank(H, [["src", "\\S+"], ["width", "[0-9]+"], ["height", "[0-9]+"], ["float", "left|right"]]);
Markup.tags.push({
name: "img",
close: false,
other: G
});
return (E || "") + "<t" + (Markup.nTags++) + ">"
}
});
D = D.replace(/(.)?\[map\s*[\s+=:]\s*(.+?)\]/gi, function (F, E, H) {
if (E == "\\") {
return F.substr(1)
} else {
var G = Markup._yank(H, [["zone", "[0-9]+[a-z]?"], ["source", "\\S+"]]);
Markup.tags.push({
name: "map",
close: false,
other: G
});
return (E || "") + "<t" + (Markup.nTags++) + ">"
}
});
D = D.replace(/(.)?\[pin\s*[\s+=:]\s*(.+?)\]/gi, function (F, E, H) {
if (E == "\\") {
return F.substr(1)
} else {
var G = Markup._yank(H, [["x", "[0-9]{1,2}(\\.[0-9])?"], ["y", "[0-9]{1,2}(\\.[0-9])?"], ["url", "\\S+"], ["type", "[0-9]+"]]);
Markup.tags.push({
name: "pin",
close: false,
other: G
});
return (E || "") + "<t" + (Markup.nTags++) + ">"
}
});
B += "|h3|minibox";
A += "|h3|minibox|toggler|div|map|pin";
case Markup.MODE_QUICKFACTS:
D = D.replace(/(.)?\[color\s*[\s+=:]\s*(aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|purple|red|silver|teal|white|yellow|q[0-8]?|#[a-f0-9]{6})\]/gi, function (F, E, G) {
if (E == "\\") {
return F.substr(1)
} else {
Markup.tags.push({
name: "color",
color: false,
other: (G).toLowerCase()
});
return (E || "") + "<t" + (Markup.nTags++) + ">"
}
});
D = D.replace(/(.)?\[(item|spell)\s*[\s+=:]\s*(\d+?)\]/gi, function (F, E, I, H) {
if (E == "\\") {
return F.substr(1)
} else {
var G = Markup.tags.push({
name: (I).toLowerCase(),
close: false,
other: H
});
return (E || "") + "<t" + (Markup.nTags++) + ">"
}
});
B += "|pad";
A += "|color";
case Markup.MODE_COMMENT:
D = D.replace(/(.)?\[quote(\s*[\s+=:]\s*([^\]]+?))?\]/gi, function (F, E, I, H) {
if (E == "\\") {
return F.substr(1)
} else {
var G = Markup.tags.push({
name: "quote",
close: false,
other: H
});
return (E || "") + "<t" + (Markup.nTags++) + ">"
}
});
B += "|code|ul|ol|li";
A += "|code|quote|ul|ol|li";
default:
D = D.replace(/(.)?\[url\s*[\s+=:]\s*([^\]]+?)\]/gi, function (F, E, G) {
if (E == "\\") {
return F.substr(1)
} else {
Markup.tags.push({
name: "url",
close: false,
other: G
});
return (E || "") + "<t" + (Markup.nTags++) + ">"
}
})
}
D = D.replace(new RegExp("(.)?\\[(" + B + ")\\]", "gi"), function (F, E, G) {
if (E == "\\") {
return F.substr(1)
} else {
Markup.tags.push({
name: (G).toLowerCase(),
close: false,
other: ""
});
return (E || "") + "<t" + (Markup.nTags++) + ">"
}
});
D = D.replace(new RegExp("(.)?\\[/(" + A + ")\\]", "gi"), function (F, E, G) {
if (E == "\\") {
return F.substr(1)
} else {
Markup.tags.push({
name: (G).toLowerCase(),
close: true,
other: ""
});
return (E || "") + "<t" + (Markup.nTags++) + ">"
}
});
D = D.replace(/(https?:\/\/|www\.)([\/_a-z0-9\%\?#@\-\+~&=;:'\(\)]|\.\S|,\S)+/gi, function (E) {
Markup.links.push(E);
return "<l" + (Markup.nLinks++) + ">"
});
return D
},
_parseCode: function (G, K, E) {
var B = [],
I = [],
D = "",
C;
var F = G.length;
while (E < F) {
if (G.charAt(E) == "<" && G.charAt(E + 1) == "t") {
if (D.length) {
if (K == "ol" || K == "ul") {
if (trim(D).length) {
I.push(["<text>", D])
}
} else {
if (K != "map") {
B.push(["<text>", D])
}
}
D = ""
}
E += 2;
C = "";
while (G.charAt(E) != ">") {
C += G.charAt(E);
++E
}++E;
var L = Markup.tags[parseInt(C)];
if (L.close) {
if (L.name == K) {
break
}
} else {
var H = Markup.simpleTags[L.name] != null;
var J = [];
if (!H) {
var A = Markup._parseCode(G, L.name, E);
J = A[0];
E = A[1]
}
if (J.length || H) {
if (L.name == "url" && !Markup._isUrlSafe(L.other)) {
L.name = "<node>"
}
if (K == "ol" || K == "ul") {
if (L.name == "li") {
I = Markup._cleanNodes(I);
if (I.length) {
B.push(["li", I]);
I = []
}
B.push(["li", J])
} else {
I.push([L.name, J, L.other])
}
} else {
if (K == "map") {
if (L.name == "pin") {
B.push(["pin", J, L.other])
}
} else {
if (L.name == "li") {
B.push(["<node>", J, L.other])
} else {
if (L.name != "pin") {
B.push([L.name, J, L.other])
}
}
}
}
}
}
} else {
D += G.charAt(E);
++E
}
}
if (D.length) {
if (K == "ol" || K == "ul") {
if (trim(D).length) {
I.push(["<text>", D])
}
} else {
if (K != "map") {
B.push(["<text>", D])
}
}
}
I = Markup._cleanNodes(I);
if (I.length) {
B.push(["li", I]);
I = []
}
return [B, E]
},
_cleanNodes: function (B) {
var D = [];
for (var C = 0, A = B.length; C < A; ++C) {
if (B[C][0] == "<text>") {
if (C == 0) {
B[C][1] = B[C][1].replace(/^\n+/g, "")
}
if (C == B.length - 1) {
B[C][1] = B[C][1].replace(/\n+$/g, "")
}
if (B[C][1] != "") {
D.push(B[C])
}
} else {
D.push(B[C])
}
}
return D
},
_yank: function (D, C) {
var E = {};
D = " " + D + " ";
for (var B = 0, A = C.length; B < A; ++B) {
if (C[B][1] == "") {
D = D.replace(new RegExp("\\s" + C[B][0] + "\\s", "ig"), function (F) {
E[C[B][0]] = true;
return " "
})
} else {
D = D.replace(new RegExp("\\s" + C[B][0] + "\\s*[\\s=:]\\s*(" + C[B][1] + ")\\s", "ig"), function (G, F) {
E[C[B][0]] = F;
return " "
})
}
}
return E
},
_isUrlSafe: function (A) {
if (!A) {
return true
}
return !A.match(/^[a-z0-9]+?:/i) || A.match(/^https?:/i)
},
_htmlmize: function (B) {
var G = "";
for (var D = 0, A = B.length; D < A; ++D) {
switch (B[D][0]) {
case "<text>":
G += B[D][1];
break;
case "<node>":
G += Markup._htmlmize(B[D][1]);
break;
case "minibox":
G += '<div class="minibox">' + Markup._htmlmize(B[D][1]) + "</div>";
break;
case "code":
G += '<pre class="code">' + Markup._htmlmize(B[D][1]) + "</pre>";
break;
case "quote":
G += '<div class="quote">';
if (B[D][2]) {
var H = trim(B[D][2]);
if (H.length > 0) {
G += "<small><b>";
if (H.match(/[^a-z0-9]/i) == null && H.length >= 4 && H.length <= 16) {
G += '<a href="?user=' + H + '">' + H + "</a>"
} else {
G += H
}
G += "</b> " + LANG.markup_said + '</small><div class="pad"></div>'
}
}
G += Markup._htmlmize(B[D][1]) + "</div>";
break;
case "url":
G += '<a href="' + B[D][2] + '"';
if (B[D][2].indexOf("wowhead.com") == -1 && B[D][2].substr(0, 5) == "http:") {
G += ' target="_blank"'
}
G += ">" + Markup._htmlmize(B[D][1]) + "</a>";
break;
case "li":
G += "<li><div>" + Markup._htmlmize(B[D][1]) + "</div></li>";
break;
case "u":
G += "<ins>" + Markup._htmlmize(B[D][1]) + "</ins>";
break;
case "s":
G += "<del>" + Markup._htmlmize(B[D][1]) + "</del>";
break;
case "pad":
G += '<div class="pad">' + Markup._htmlmize(B[D][1]) + "</div>";
break;
case "color":
G += "<span " + ((B[D][2].charAt(0) == "q") ? 'class="' : 'style="color: ') + B[D][2] + '">' + Markup._htmlmize(B[D][1]) + "</span>";
break;
case "toggler":
var F = B[D][2];
if (F.id != null) {
G += '<a href="javascript:;" class="disclosure-' + (F.hidden ? "on" : "off") + '" onmousedown="return false" onclick="this.className = \'disclosure-\' + (g_toggleDisplay(ge(\'ov4io23-' + F.id + "')) ? 'on' : 'off')\">" + Markup._htmlmize(B[D][1]) + "</a>"
}
break;
case "div":
var F = B[D][2];
if (F.id != null) {
G += '<div id="ov4io23-' + F.id + '"';
if (F.hidden) {
G += ' style="display: none"'
}
G += ">" + Markup._htmlmize(B[D][1]) + "</div>"
}
break;
case "img":
var F = B[D][2];
if (F.src != "" && Markup._isUrlSafe(F.src)) {
G += '<img src="' + F.src + '" alt="" class="border"';
if (F.width) {
G += ' width="' + F.width + '"'
}
if (F.height) {
G += ' height="' + F.height + '"'
}
G += ' style="margin: 8px;';
if (F["float"]) {
G += " float: " + F["float"]
}
G += '" />'
}
break;
case "item":
G += '<a href="?item=' + B[D][2] + '">(Item #' + B[D][2] + ")</a>";
break;
case "spell":
G += '<a href="?spell=' + B[D][2] + '">(Spell #' + B[D][2] + ")</a>";
break;
case "map":
var F = B[D][2];
if (F.zone != null) {
var E = Markup._htmlmize(B[D][1]);
G += '<a href="javascript:;" onclick="Markup.mapperPreview(' + Markup.maps.length + ')">(Map: Zone #' + parseInt(F.zone) + ", " + E.length + " pin" + (E.length == 1 ? "" : "s") + ")</a>";
Markup.maps.push([F.zone, E])
}
break;
case "pin":
var F = B[D][2];
if (!Markup._isUrlSafe(F.url)) {
F.url = ""
}
if (G == "") {
G = []
}
var C = Markup._htmlmize(B[D][1]).replace(/\n/g, "<br />");
if (F.url && F.url.indexOf("?npc=") != -1) {
C = '<b class="q">' + C + '</b><br/ ><span class="q2">Click to view this NPC</span>'
}
G.push([parseFloat(F.x || 0), parseFloat(F.y || 0),
{
label: C,
url: F.url,
type: F.type
}]);
break;
default:
G += "<" + B[D][0] + ">" + Markup._htmlmize(B[D][1]) + "</" + B[D][0] + ">"
}
}
return G
},
_tagless: function (B) {
var E = "";
for (var C = 0, A = B.length; C < A; ++C) {
switch (B[C][0]) {
case "<text>":
E += B[C][1];
break;
case "img":
var D = B[C][2];
if (D.src != "" && Markup._isUrlSafe(D.src)) {
E += "(Image: " + D.src + ")"
}
break;
case "item":
E += "(Item #" + B[C][2] + ")";
break;
case "spell":
E += "(Spell #" + B[C][2] + ")";
break;
case "map":
E += "(Map)";
break;
case "pin":
break;
default:
E += Markup._tagless(B[C][1])
}
}
return E
},
toHtml: function (D, C) {
C = C || {};
C.root = C.root || "";
if (C.mode != null && C.mode != Markup.MODE_SIGNATURE) {
D = D.replace(/\s*\[(ol|ul|h3)\]/ig, function (F, E) {
return "[" + E + "]"
});
D = D.replace(/\[\/(ol|ul|h3|minibox|code|quote)\]\s*/ig, function (F, E) {
return "[/" + E + "]"
});
D = D.replace(/\s*\[(pad)\]\s*/ig, function (F, E) {
return "[" + E + "]"
})
}
D = Markup._prepare(D, C.mode);
var A = Markup._parseCode(D, C.root, 0)[0];
var B = Markup._htmlmize(A);
B = B.replace(/<l([0-9]+)>/g, function (G, E) {
var F = Markup.links[parseInt(E)];
return '<a href="' + F.replace(/^www/, "http://www") + (F.indexOf("wowhead.com") == -1 ? '" target="_blank">' : '">') + (F.length > 100 ? F.substr(0, 97) + "..." : F) + "</a>"
});
B = B.replace(/\n/g, "<br />");
return B
},
removeTags: function (D, C) {
C = C || {};
C.root = C.root || "";
if (C.mode != null && C.mode != Markup.MODE_SIGNATURE) {
D = D.replace(/\s*\[(ol|ul|h3)\]\s?/ig, function (F, E) {
return " [" + E + "]"
});
D = D.replace(/\s?\[\/(ol|ul|h3|minibox|code|quote)\]\s*/ig, function (F, E) {
return "[/" + E + "]"
});
D = D.replace(/\s*\[(pad)\]\s*/ig, function (F, E) {
return "[" + E + "]"
})
}
D = Markup._prepare(D, C.mode);
var A = Markup._parseCode(D, C.root, 0)[0];
var B = Markup._tagless(A);
B = B.replace(/<l([0-9]+)>/g, function (G, E) {
var F = Markup.links[parseInt(E)];
return F
});
B = B.replace(/&amp;/g, "&").replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&quot;/g, '"');
return B
},
mapperPreview: function (C) {
try {
window.mapper = Markup.maps[C];
var B = window.open("?edit=mapperpreview", "mapperpreview", "toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=no,resizable=no,width=800,height=540");
B.focus()
} catch (A) {}
}
};
File diff suppressed because it is too large Load Diff
+889
View File
@@ -0,0 +1,889 @@
var mn_items = [[2, "Weapons", , [[0, "One-Handed Axes"], [1, "Two-Handed Axes"], [2, "Bows"], [3, "Guns"], [4, "One-Handed Maces"], [5, "Two-Handed Maces"], [6, "Polearms"], [7, "One-Handed Swords"], [8, "Two-Handed Swords"], [10, "Staves"], [13, "Fist Weapons"], [14, "Miscellaneous"], [15, "Daggers"], [16, "Thrown"], [18, "Crossbows"], [19, "Wands"], [20, "Fishing Poles"]], , "INV_Sword_27"], [4, "Armor", , [[1, "Cloth" /*, , [[5, "Chest", "?items=4.1&filter=sl=5"], [8, "Feet", "?items=4.1&filter=sl=8"], [10, "Hands", "?items=4.1&filter=sl=10"], [1, "Head", "?items=4.1&filter=sl=1"], [7, "Legs", "?items=4.1&filter=sl=7"], [3, "Shoulder", "?items=4.1&filter=sl=3"], [6, "Waist", "?items=4.1&filter=sl=6"], [9, "Wrist", "?items=4.1&filter=sl=9"]]*/ ], [2, "Leather" /*, , [[5, "Chest", "?items=4.2&filter=sl=5"], [8, "Feet", "?items=4.2&filter=sl=8"], [10, "Hands", "?items=4.2&filter=sl=10"], [1, "Head", "?items=4.2&filter=sl=1"], [7, "Legs", "?items=4.2&filter=sl=7"], [3, "Shoulder", "?items=4.2&filter=sl=3"], [6, "Waist", "?items=4.2&filter=sl=6"], [9, "Wrist", "?items=4.2&filter=sl=9"]]*/ ], [3, "Mail" /*, , [[5, "Chest", "?items=4.3&filter=sl=5"], [8, "Feet", "?items=4.3&filter=sl=8"], [10, "Hands", "?items=4.3&filter=sl=10"], [1, "Head", "?items=4.3&filter=sl=1"], [7, "Legs", "?items=4.3&filter=sl=7"], [3, "Shoulder", "?items=4.3&filter=sl=3"], [6, "Waist", "?items=4.3&filter=sl=6"], [9, "Wrist", "?items=4.3&filter=sl=9"]]*/ ], [4, "Plate" /*, , [[5, "Chest", "?items=4.4&filter=sl=5"], [8, "Feet", "?items=4.4&filter=sl=8"], [10, "Hands", "?items=4.4&filter=sl=10"], [1, "Head", "?items=4.4&filter=sl=1"], [7, "Legs", "?items=4.4&filter=sl=7"], [3, "Shoulder", "?items=4.4&filter=sl=3"], [6, "Waist", "?items=4.4&filter=sl=6"], [9, "Wrist", "?items=4.4&filter=sl=9"]]*/ ], /*[ - 3, "Amulets"], [ - 6, "Cloaks"], [ - 2, "Rings"], [ - 4, "Trinkets"], [ - 5, "Off-hand Frills"],*/ [6, "Shields"], [7, "Librams"], [8, "Idols"], [9, "Totems"], [0, "Miscellaneous"]], , "INV_Chest_Plate16"], [1, "Containers", , [[0, "Bags"], [1, "Soul Bags"], [2, "Herb Bags"], [3, "Enchanting Bags"], [4, "Engineering Bags"], [7, "Leatherworking Bags"]], , "INV_Misc_Bag_13"], [0, "Consumables", , [[0, "Consumables"], [1, "Potions"], [2, "Elixirs", , /*[[1, "Battle"], [2, "Guardian"]]*/ ], [3, "Flasks"], [4, "Scrolls"], [5, "Food & Drinks"], [6, "Permanent Item Enhancements"], /*[ - 3, "Temporary Item Enhancements"],*/ [7, "Bandages"], [8, "Other"]], , "INV_Potion_07"], [7, "Trade Goods", , [[1, "Parts"], [2, "Explosives"], [3, "Devices"], [5, "Cloth"], [6, "Leather"], [7, "Metal & Stone"], [8, "Meat"], [9, "Herbs"], [10, "Elemental"], [12, "Enchanting"], [13, "Material"], [11, "Other"]], , "INV_Gizmo_BronzeFramework_01"], [6, "Projectiles", , [[2, "Arrows"], [3, "Bullets"]], , "INV_Ammo_Bullet_02"], [11, "Quivers", , [[2, "Quivers"], [3, "Ammo Pouches"]], , "INV_Misc_Quiver_08"], [9, "Recipes", , [[0, "Books"], [6, "Alchemy"], [4, "Blacksmithing"], [5, "Cooking"], [8, "Enchanting"], [3, "Engineering"], [7, "First Aid"], [9, "Fishing"], [1, "Leatherworking"], [2, "Tailoring"]], , "INV_Scroll_04"], [15, "Miscellaneous", , [[0, "Junk"], [1, "Reagents"], [3, "Holiday"], /*[ - 4, "Mounts"], [ - 7, "Flying Mounts"], [ - 6, "Combat Pets"],*/ [2, "Small Pets"], /*[ - 2, "Armor Tokens"],*/ [4, "Other"]], , "INV_Qiraj_JewelBlessed"], [12, "Quest", , , , "INV_Misc_Bone_OrcSkull_01"], [13, "Keys", , , , "INV_Misc_Key_04"]];
var mn_itemSets = [[11, "Druid"], [3, "Hunter"], [8, "Mage"], [2, "Paladin"], [5, "Priest"], [4, "Rogue"], [7, "Shaman"], [9, "Warlock"], [1, "Warrior"]];
var mn_npcs = [[1, "Beasts"], [8, "Critters"], [3, "Demons"], [2, "Dragonkin"], [4, "Elementals"], [5, "Giants"], [7, "Humanoids"], [9, "Mechanicals"], [12, "Small Pets"], [6, "Undead"], [10, "Uncategorized"]];
var mn_objects = [[9, "Books"], [3, "Containers"], [-5, "Footlockers"], [-3, "Herbs"], [-4, "Mineral Veins"], [-2, "Quest"]];
var mn_quests = [[0, "Eastern Kingdoms", , [[36, "Alterac Mountains"], [45, "Arathi Highlands"], [3, "Badlands"], [25, "Blackrock Mountain"], [4, "Blasted Lands"], [46, "Burning Steppes"], [41, "Deadwind Pass"], [2257, "Deeprun Tram"], [1, "Dun Morogh"], [10, "Duskwood"], [139, "Eastern Plaguelands"], [12, "Elwynn Forest"], [267, "Hillsbrad Foothills"], [1537, "Ironforge"], [38, "Loch Modan"], [44, "Redridge Mountains"], [51, "Searing Gorge"], [130, "Silverpine Forest"], [1519, "Stormwind City"], [33, "Stranglethorn Vale"], [8, "Swamp of Sorrows"], [47, "The Hinterlands"], [85, "Tirisfal Glades"], [1497, "Undercity"], [28, "Western Plaguelands"], [40, "Westfall"], [11, "Wetlands"]]], [1, "Kalimdor", , [[331, "Ashenvale"], [16, "Azshara"], [148, "Darkshore"], [1657, "Darnassus"], [405, "Desolace"], [14, "Durotar"], [15, "Dustwallow Marsh"], [361, "Felwood"], [357, "Feralas"], [493, "Moonglade"], [215, "Mulgore"], [1637, "Orgrimmar"], [1377, "Silithus"], [406, "Stonetalon Mountains"], [440, "Tanaris"], [141, "Teldrassil"], [17, "The Barrens"], [400, "Thousand Needles"], [1638, "Thunder Bluff"], [1216, "Timbermaw Hold"], [490, "Un'Goro Crater"], [618, "Winterspring"]]], [2, "Dungeons", , [[719, "Blackfathom Deeps"], [1584, "Blackrock Depths"], [1583, "Blackrock Spire"], [2557, "Dire Maul"], [133, "Gnomeregan"], [2100, "Maraudon"], [2437, "Ragefire Chasm"], [722, "Razorfen Downs"], [491, "Razorfen Kraul"], [796, "Scarlet Monastery"], [2057, "Scholomance"], [209, "Shadowfang Keep"], [2017, "Stratholme"], [1581, "The Deadmines"], [717, "The Stockade"], [1337, "Uldaman"], [718, "Wailing Caverns"], [978, "Zul'Farrak"]]], [3, "Raids", , [[2677, "Blackwing Lair"], [2717, "Molten Core"], [3456, "Naxxramas"], [2159, "Onyxia's Lair"], [3429, "Ruins of Ahn'Qiraj"], [3428, "Temple of Ahn'Qiraj"], [19, "Zul'Gurub"]]], [4, "Classes", , [[-263, "Druid"], [-261, "Hunter"], [-161, "Mage"], [-141, "Paladin"], [-262, "Priest"], [-162, "Rogue"], [-82, "Shaman"], [-61, "Warlock"], [-81, "Warrior"]]], [5, "Professions", , [[-181, "Alchemy"], [-121, "Blacksmithing"], [-304, "Cooking"], [-201, "Engineering"], [-324, "First Aid"], [-101, "Fishing"], [-24, "Herbalism"], [-182, "Leatherworking"], [-264, "Tailoring"]]], [6, "Battlegrounds", , [[-25, "All"], [3358, "Arathi Basin"], [2597, "Alterac Valley"], [3277, "Warsong Gulch"]]], [9, "Seasonal", , [[-364, "Darkmoon Faire"], [-1003, "Hallow's End"], [-366, "Lunar Festival"], [-369, "Midsummer Fire Festival"]]], [7, "Miscellaneous", , [[-365, "Ahn'Qiraj War Effort"], [-241, "Argent Tournament"], [-1, "Epic"], [-344, "Legendary"], [-367, "Reputation"]]], [-2, "Uncategorized"]];
var mn_spells = [[7, "Class Skills", , [[11, "Druid", , [[574, "Balance"], [134, "Feral Combat"], [573, "Restoration"]]], [3, "Hunter", , [[50, "Beast Mastery"], [163, "Marksmanship"], [51, "Survival"]]], [8, "Mage", , [[237, "Arcane"], [8, "Fire"], [6, "Frost"]]], [2, "Paladin", , [[594, "Holy"], [267, "Protection"], [184, "Retribution"]]], [5, "Priest", , [[613, "Discipline"], [56, "Holy"], [78, "Shadow Magic"]]], [4, "Rogue", , [[253, "Assassination"], [38, "Combat"], [633, "Lockpicking"], [39, "Subtlety"]]], [7, "Shaman", , [[375, "Elemental Combat"], [373, "Enhancement"], [374, "Restoration"]]], [9, "Warlock", , [[355, "Affliction"], [354, "Demonology"], [593, "Destruction"]]], [1, "Warrior", , [[26, "Arms"], [256, "Fury"], [257, "Protection"]]]]], [-3, "Pet Skills", , [[782, "Ghoul"], [, "Hunter"], [270, "Generic"], [653, "Bat"], [210, "Bear"], [655, "Bird of Prey"], [211, "Boar"], [213, "Carrion Bird"], [209, "Cat"], [780, "Chimera"], [787, "Core Hound"], [214, "Crab"], [212, "Crocolisk"], [781, "Devilsaur"], [763, "Dragonhawk"], [215, "Gorilla"], [654, "Hyena"], [775, "Moth"], [217, "Raptor"], [767, "Ravager"], [786, "Rhino"], [236, "Scorpid"], [768, "Serpent"], [783, "Silithid"], [203, "Spider"], [788, "Spirit Beast"], [765, "Sporebat"], [218, "Tallstrider"], [251, "Turtle"], [766, "Warp Stalker"], [785, "Wasp"], [656, "Wind Serpent"], [208, "Wolf"], [784, "Worm"], [, "Warlock"], [761, "Felguard"], [189, "Felhunter"], [188, "Imp"], [205, "Succubus"], [204, "Voidwalker"]]], [11, "Professions", , [[171, "Alchemy"], [164, "Blacksmithing", , [[9788, "Armorsmithing"], [9787, "Weaponsmithing"], [17041, "Master Axesmithing"], [17040, "Master Hammersmithing"], [17039, "Master Swordsmithing"]]], [333, "Enchanting"], [202, "Engineering", , [[20219, "Gnomish Engineering"], [20222, "Goblin Engineering"]]], [182, "Herbalism"], [165, "Leatherworking", , [[10656, "Dragonscale Leatherworking"], [10658, "Elemental Leatherworking"], [10660, "Tribal Leatherworking"]]], [186, "Mining"], [393, "Skinning"], [197, "Tailoring", , [[26798, "Mooncloth Tailoring"], [26801, "Shadoweave Tailoring"], [26797, "Spellfire Tailoring"]]]]], [9, "Secondary Skills", , [[185, "Cooking"], [129, "First Aid"], [356, "Fishing"], [762, "Riding"]]], [8, "Armor Proficiencies"], [10, "Languages"], [-4, "Racial Traits"], [6, "Weapon Skills"], [0, "Uncategorized"]];
var mn_zones = [[0, "Eastern Kingdoms"], [1, "Kalimdor"], [2, "Dungeons"], [3, "Raids"], [6, "Battlegrounds"]];
var mn_talentCalc = [["0", "Druid"], ["c", "Hunter"], ["o", "Mage"], ["s", "Paladin"], ["b", "Priest"], ["f", "Rogue"], ["h", "Shaman"], ["I", "Warlock"], ["L", "Warrior"]];
var mn_database = [[, "Browse"], [0, "Items", "?items", mn_items], [2, "Item Sets", "?itemsets" ], [4, "NPCs", "?npcs", mn_npcs], [5, "Objects", "?objects", mn_objects], [3, "Quests", "?quests", mn_quests], [1, "Spells", "?spells", mn_spells], /*[6, "Zones", "?zones", mn_zones],*/ [7, "Factions", "?factions"], [, "Utilities"], [30, "Latest Comments", "?latest=comments"] /*, [31, "Latest Screenshots", "?latest=screenshots"] */ ];
var mn_tools = [ /*[0, "Talent Calculator", "?talent", mn_talentCalc],*/ [1, "Maps", "?maps"]];
var mn_path = [[0, "Database", , mn_database], [1, "Tools", , mn_tools]];
var g_chr_classes = {
11: "Druid",
3: "Hunter",
8: "Mage",
2: "Paladin",
5: "Priest",
4: "Rogue",
7: "Shaman",
9: "Warlock",
1: "Warrior"
};
var g_chr_races = {
3: "Dwarf",
7: "Gnome",
1: "Human",
4: "Night Elf",
2: "Orc",
6: "Tauren",
8: "Troll",
5: "Undead"
};
var g_item_slots = {
1: "Head",
2: "Neck",
3: "Shoulder",
4: "Shirt",
5: "Chest",
6: "Waist",
7: "Legs",
8: "Feet",
9: "Wrist",
10: "Hands",
11: "Finger",
12: "Trinket",
13: "One-Hand",
14: "Shield",
15: "Ranged",
16: "Back",
17: "Two-Hand",
18: "Bag",
19: "Tabard",
21: "Main Hand",
22: "Off Hand",
23: "Held In Off-hand",
24: "Projectile",
25: "Thrown",
28: "Relic"
};
var g_item_classes = {
5: "Reagent",
12: "Quest",
13: "Key"
};
var g_item_subclasses = {
0: {
0: "Consumable",
1: "Potion",
2: "Elixir",
3: "Flask",
4: "Scroll",
5: "Food & Drink",
6: "Perm. Enhancement",
"-3": "Temp. Enhancement",
7: "Bandage",
8: "Other (Consumables)"
},
1: {
0: "Bag",
1: "Soul Bag",
2: "Herb Bag",
3: "Enchanting Bag",
4: "Engineering Bag",
5: "Leatherworking Bag"
},
2: {
0: "One-Handed Axe",
1: "Two-Handed Axe",
2: "Bow",
3: "Gun",
4: "One-Handed Mace",
5: "Two-Handed Mace",
6: "Polearm",
7: "One-Handed Sword",
8: "Two-Handed Sword",
10: "Staff",
13: "Fist Weapon",
14: "Miscellaneous",
15: "Dagger",
16: "Thrown",
18: "Crossbow",
19: "Wand",
20: "Fishing Pole"
},
4: {
"-6": "Cloak",
"-5": "Off-hand Frill",
"-4": "Trinket",
"-3": "Amulet",
"-2": "Ring",
0: "Miscellaneous",
1: "Cloth",
2: "Leather",
3: "Mail",
4: "Plate",
6: "Shield",
7: "Libram",
8: "Idol",
9: "Totem"
},
6: {
2: "Arrow",
3: "Bullet"
},
7: {
1: "Part",
2: "Explosive",
3: "Device",
5: "Cloth",
6: "Leather",
7: "Metal & Stone",
8: "Meat",
9: "Herb",
10: "Elemental",
12: "Enchanting",
11: "Other (Trade Goods)"
},
9: {
0: "Book",
1: "Leatherworking",
2: "Tailoring",
3: "Engineering",
4: "Blacksmithing",
5: "Cooking",
6: "Alchemy",
7: "First Aid",
8: "Enchanting",
9: "Fishing",
},
11: {
2: "Quiver",
3: "Ammo Pouch"
},
15: {
"-6": "Combat Pet",
"-4": "Mount",
"-2": "Armor Token",
0: "Junk",
1: "Reagent",
2: "Small Pet",
3: "Holiday",
4: "Other (Miscellaneous)"
}
};
var g_item_subsubclasses = {
0: {
2: {
1: "Battle Elixir",
2: "Guardian Elixir"
}
}
};
var g_itemset_types = {
1: "Cloth",
2: "Leather",
3: "Mail",
4: "Plate",
5: "Dagger",
6: "Ring",
7: "Fist Weapon",
8: "One-Handed Axe",
9: "One-Handed Mace",
10: "One-Handed Sword",
11: "Trinket",
12: "Amulet"
};
var g_itemset_notes = {
1: "Dungeon Set 1",
2: "Dungeon Set 2",
3: "Tier 1 Raid Set",
4: "Tier 2 Raid Set",
5: "Tier 3 Raid Set",
6: "Level 60 PvP Rare Set",
7: "Level 60 PvP Rare Set (Old)",
8: "Level 60 PvP Epic Set",
15: "Arathi Basin Set",
9: "Ruins of Ahn'Qiraj Set",
10: "Temple of Ahn'Qiraj Set",
11: "Zul'Gurub Set"
};
var g_npc_classifications = {
0: "Normal",
1: "Elite",
2: "Rare Elite",
3: "Boss",
4: "Rare"
};
var g_npc_types = {
1: "Beast",
8: "Critter",
3: "Demon",
4: "Elemental",
2: "Dragonkin",
5: "Giant",
7: "Humanoid",
9: "Mechanical",
6: "Undead",
10: "Uncategorized",
12: "Small Pet"
};
var g_object_types = {
9: "Book",
3: "Container",
"-5": "Footlocker",
"-3": "Herb",
"-4": "Mineral Vein",
"-2": "Quest"
};
var g_reputation_standings = {
0: "Hated",
1: "Hostile",
2: "Unfriendly",
3: "Neutral",
4: "Friendly",
5: "Honored",
6: "Revered",
7: "Exalted"
};
var g_quest_sorts = {
1: "Epic",
24: "Herbalism",
25: "All Battlegrounds",
61: "Warlock",
81: "Warrior",
82: "Shaman",
101: "Fishing",
121: "Blacksmithing",
141: "Paladin",
161: "Mage",
162: "Rogue",
181: "Alchemy",
182: "Leatherworking",
201: "Engineering",
221: "Treasure Map",
261: "Hunter",
262: "Priest",
263: "Druid",
264: "Tailoring",
284: "Special",
304: "Cooking",
324: "First Aid",
344: "Legendary",
364: "Darkmoon Faire",
365: "Ahn'Qiraj War Effort",
366: "Lunar Festival",
367: "Reputation",
369: "Midsummer Fire Festival",
370: "Brewfest",
373: "Jewelcrafting",
1001: "Winter Veil",
1002: "Children's Week",
1003: "Hallow's End",
1004: "Love is in the Air",
1005: "Harvest Festival",
1006: "New Year's Eve"
};
var g_quest_types = {
0: "Normal",
1: "Group",
81: "Dungeon",
62: "Raid",
41: "PvP",
82: "World Event",
84: "Escort",
85: "Heroic"
};
var g_sides = {
1: "Alliance",
2: "Horde",
3: "Both"
};
var g_sources = {
1: "Crafted",
2: "Drop",
3: "PvP",
4: "Quest",
5: "Vendor",
6: "Trainer",
7: "Discovery",
8: "Redemption"
};
var g_spell_resistances = {
0: "Physical",
1: "Holy",
2: "Fire",
3: "Nature",
4: "Frost",
5: "Shadow",
6: "Arcane"
};
var g_spell_skills = {
6: "Frost",
8: "Fire",
26: "Arms",
38: "Combat",
39: "Subtlety",
40: "Poisons",
43: "Swords",
44: "Axes",
45: "Bows",
46: "Guns",
50: "Beast Mastery",
51: "Survival",
54: "Maces",
55: "Two-Handed Swords",
56: "Holy",
78: "Shadow Magic",
95: "Defense",
98: "Common",
101: "Dwarven",
109: "Orcish",
111: "Dwarven",
113: "Darnassian",
115: "Taurahe",
118: "Dual Wield",
124: "Tauren",
125: "Orc",
126: "Night Elf",
129: "First Aid",
134: "Feral Combat",
136: "Staves",
137: "Thalassian",
138: "Draconic",
139: "Demon Tongue",
140: "Titan",
141: "Old Tongue",
142: "Survival",
148: "Horse Riding",
149: "Wolf Riding",
150: "Tiger Riding",
152: "Ram Riding",
155: "Swimming",
160: "Two-Handed Maces",
162: "Unarmed",
163: "Marksmanship",
164: "Blacksmithing",
165: "Leatherworking",
171: "Alchemy",
172: "Two-Handed Axes",
173: "Daggers",
176: "Thrown",
182: "Herbalism",
183: "GENERIC (DND)",
184: "Retribution",
185: "Cooking",
186: "Mining",
188: "Imp",
189: "Felhunter",
197: "Tailoring",
202: "Engineering",
203: "Spider",
204: "Voidwalker",
205: "Succubus",
206: "Infernal",
207: "Doomguard",
208: "Wolf",
209: "Cat",
210: "Bear",
211: "Boar",
212: "Crocilisk",
213: "Carrion Bird",
214: "Crab",
215: "Gorilla",
217: "Raptor",
218: "Tallstrider",
220: "Undead",
226: "Crossbows",
228: "Wands",
229: "Polearms",
236: "Scorpid",
237: "Arcane",
251: "Turtle",
253: "Assassination",
256: "Fury",
257: "Protection",
261: "Beast Training",
267: "Protection",
270: "Generic",
293: "Plate Mail",
313: "Gnomish",
315: "Troll",
333: "Enchanting",
354: "Demonology",
355: "Affliction",
356: "Fishing",
373: "Enhancement",
374: "Restoration",
375: "Elemental Combat",
393: "Skinning",
413: "Mail",
414: "Leather",
415: "Cloth",
433: "Shield",
473: "Fist Weapons",
533: "Raptor Riding",
553: "Mechanostrider Piloting",
554: "Undead Horsemanship",
573: "Restoration",
574: "Balance",
593: "Destruction",
594: "Holy",
613: "Discipline",
633: "Lockpicking",
653: "Bat",
654: "Hyena",
655: "Bird of Prey",
656: "Wind Serpent",
673: "Gutterspeak",
713: "Kodo Riding",
733: "Troll",
753: "Gnome",
754: "Human",
758: "Remote Control",
762: "Riding",
};
var g_zones = {
1: "Dun Morogh",
3: "Badlands",
4: "Blasted Lands",
8: "Swamp of Sorrows",
9: "Northshire Valley",
10: "Duskwood",
11: "Wetlands",
12: "Elwynn Forest",
14: "Durotar",
15: "Dustwallow Marsh",
16: "Azshara",
17: "The Barrens",
19: "Zul'Gurub",
24: "Northshire Abbey",
25: "Blackrock Mountain",
28: "Western Plaguelands",
33: "Stranglethorn Vale",
35: "Booty Bay",
36: "Alterac Mountains",
38: "Loch Modan",
40: "Westfall",
41: "Deadwind Pass",
44: "Redridge Mountains",
45: "Arathi Highlands",
46: "Burning Steppes",
47: "The Hinterlands",
51: "Searing Gorge",
65: "Dragonblight",
66: "Zul'Drak",
67: "The Storm Peaks",
85: "Tirisfal Glades",
130: "Silverpine Forest",
131: "Kharanos",
132: "Coldridge Valley",
133: "Gnomeregan",
139: "Eastern Plaguelands",
141: "Teldrassil",
148: "Darkshore",
154: "Deathknell",
188: "Shadowglen",
209: "Shadowfang Keep",
210: "Icecrown",
215: "Mulgore",
220: "Red Cloud Mesa",
221: "Camp Narache",
267: "Hillsbrad Foothills",
279: "Dalaran Crater",
331: "Ashenvale",
357: "Feralas",
361: "Felwood",
363: "Valley of Trials",
394: "Grizzly Hills",
400: "Thousand Needles",
405: "Desolace",
406: "Stonetalon Mountains",
440: "Tanaris",
457: "The Veiled Sea",
490: "Un'Goro Crater",
491: "Razorfen Kraul",
493: "Moonglade",
495: "Howling Fjord",
618: "Winterspring",
702: "Rut'theran Village",
717: "The Stockade",
718: "Wailing Caverns",
719: "Blackfathom Deeps",
722: "Razorfen Downs",
796: "Scarlet Monastery",
978: "Zul'Farrak",
1116: "Feathermoon Stronghold",
1216: "Timbermaw Hold",
1337: "Uldaman",
1377: "Silithus",
1417: "Sunken Temple",
1497: "Undercity",
1519: "Stormwind City",
1537: "Ironforge",
1581: "The Deadmines",
1583: "Blackrock Spire",
1584: "Blackrock Depths",
1637: "Orgrimmar",
1638: "Thunder Bluff",
1657: "Darnassus",
1941: "Caverns of Time",
2017: "Stratholme",
2057: "Scholomance",
2079: "Alcaz Island",
2100: "Maraudon",
2159: "Onyxia's Lair",
2257: "Deeprun Tram",
2366: "The Black Morass",
2367: "Old Hillsbrad Foothills",
2437: "Ragefire Chasm",
2557: "Dire Maul",
2562: "Karazhan",
2597: "Alterac Valley",
2677: "Blackwing Lair",
2717: "Molten Core",
2817: "Crystalsong Forest",
2917: "Hall of Legends",
2918: "Champions' Hall",
3277: "Warsong Gulch",
3358: "Arathi Basin",
3428: "Temple of Ahn'Qiraj",
3429: "Ruins of Ahn'Qiraj",
};
var g_zone_categories = {
0: "Eastern Kingdoms",
1: "Kalimdor",
2: "Dungeons",
3: "Raids",
6: "Battlegrounds",
};
var g_zone_instancetypes = {
1: "Transit",
2: "Dungeon",
3: "Raid",
4: "Battleground",
5: "Dungeon",
};
var g_zone_territories = {
0: "Alliance",
1: "Horde",
2: "Contested",
3: "Sanctuary",
4: "PvP"
};
var g_user_roles = {
1: "Tester",
2: "Administrator",
3: "Editor",
4: "Moderator",
5: "Bureaucrat"
};
var LANG = {
comma: ", ",
ellipsis: "...",
dash: " " + String.fromCharCode(8211) + " ",
hyphen: " - ",
colon: ": ",
qty: " ($1)",
date_on: "on ",
date_ago: "$1 ago",
date_at: " at ",
date_simple: "$2/$1/$3",
armor: "Armor",
author: "Author",
category: "Category",
classes: "Classes",
cost: "Cost",
count: "Count",
daily: "Daily",
dps: "DPS",
group: "Group",
instancetype: "Instance type",
lastpost: "Last post",
level: "Level",
location: "Location",
name: "Name",
react: "React",
reagents: "Reagents",
rep: "Rep.",
req: "Req.",
reputation: "Reputation",
rewards: "Rewards",
petfamily: "Pet family",
pieces: "Pieces",
posted: "Posted",
preview: "Preview",
replies: "Replies",
school: "School",
side: "Side",
source: "Source",
skill: "Skill",
skin: "Skin",
slot: "Slot",
slots: "Slots",
speed: "Speed",
stack: "Stack",
standing: "Standing",
stock: "Stock",
subject: "Subject",
territory: "Territory",
tp: "TP",
type: "Type",
views: "Views",
male: "Male",
female: "Female",
infobox_noneyet: "None yet &ndash; $1!",
infobox_submitone: "Submit one",
infobox_showall: "Show all ($1)",
lvcomment_add: "Add your comment",
lvcomment_sort: "Sort comments by: ",
lvcomment_sortdate: "Date",
lvcomment_sortrating: "Highest rated first",
lvcomment_by: "By ",
lvcomment_patch1: " (Patch ",
lvcomment_patch2: ")",
lvcomment_show: "Show comment",
lvcomment_hide: "Hide comment",
lvcomment_rating: "Rating: ",
lvcomment_lastedit: "Last edited by ",
lvcomment_nedits: "edited $1 times",
lvcomment_edit: "Edit",
lvcomment_delete: "Delete",
lvcomment_detach: "Detach",
lvcomment_reply: "Reply",
lvdrop_outof: "out of $1",
lvitem_reqlevel: "Req. ",
lvnpc_alliance: "A",
lvnpc_horde: "H",
lvquest_daily: "Daily $1",
lvquest_pickone: "Pick one:",
lvquest_alsoget: "Also get:",
lvquest_xp: "$1 XP",
lvzone_xman: "$1-man",
lvzone_xvx: "$1v$2",
lvpage_of: " of ",
lvpage_first: " First",
lvpage_previous: " Previous",
lvpage_next: "Next ",
lvpage_last: "Last ",
lvscreenshot_submit: "Submit a screenshot",
lvscreenshot_from: "From ",
lvscreenshot_hires: "View",
lvscreenshot_hires2: " higher resolution version ($1x$2)",
lvnodata: "There is no data to display.",
lvnodata_co1: "No comments have been posted yet.",
lvnodata_co2: "Be the first to <a>add a comment</a> to this page!",
lvnodata_co3: "Please <a>sign in</a> to add your comment, or <a>sign up</a> if you don't already have an account.",
lvnodata_ss1: "No screenshots have been submitted yet.",
lvnodata_ss2: "Be the first to <a>submit a screenshot</a> for this page!",
lvnodata_ss3: "Please <a>sign in</a> to submit a screenshot, or <a>sign up</a> if you don't already have an account.",
lvnote_tryfiltering: 'Try <a href="javascript:;" onclick="fi_Toggle()">filtering</a> your results',
lvnote_trynarrowing: "Try narrowing your search",
lvnote_itemsfound: "$1 items found",
lvnote_itemsetsfound: "$1 item sets found",
lvnote_npcsfound: "$1 NPCs found",
lvnote_objectsfound: "$1 objects found",
lvnote_questsfound: "$1 quests found",
lvnote_spellsfound: "$1 spells found",
lvnote_zonesfound: "$1 zones found",
lvnote_factionsfound: "$1 factions found",
lvnote_createafilter: '<small><a href="$1">Create a filter</a></small>',
lvnote_questgivers: '<small><a href="?zone=$1">View</a> quest givers in <b>$2</b> &nbsp;<b>|</b>&nbsp; <a href="?items&filter=cr=126;crs=$3;crv=0">Filter</a> quest rewards</small>',
lvnote_allpets: '<small><a href="?npcs&filter=fa=$1">Browse</a> all available <b>$2</b> pets</small>',
lvnote_zonequests: '<small><a href="?quests=$1.$2">Browse quests</a> in the <b>$3</b> category &nbsp;<b>|</b>&nbsp; <a href="?items&filter=cr=126;crs=$4;crv=0">Filter</a> quest rewards</small>',
lvnote_itemdisenchanting: "This item has been disenchanted $1 times.",
lvnote_itemdropsinnormalonly: "This item only drops in Normal mode.",
lvnote_itemdropsinheroiconly: "This item only drops in Heroic mode.",
lvnote_itemdropsinnormalheroic: "This item drops in both Normal and Heroic modes.",
lvnote_itemopening: "This item has been opened $1 times.",
lvnote_itemprospecting: "This mineral ore has been prospected $1 times.",
lvnote_npcdrops: "This NPC has been looted $1 times.",
lvnote_npcdropsnormal: "This NPC has been looted $1 times in Normal mode.",
lvnote_npcdropsheroic: "This NPC has been looted $1 times in Heroic mode.",
lvnote_npcherbgathering: "This NPC has been skinned with Herbalism $1 times.",
lvnote_npcmining: "This NPC has been skinned with Mining $1 times.",
lvnote_npcpickpocketing: "This NPC has been pickpocketed $1 times.",
lvnote_npcskinning: "This NPC has been skinned $1 times.",
lvnote_objectherbgathering: "This herb has been gathered $1 times.",
lvnote_objectmining: "This mineral vein has been mined $1 times.",
lvnote_objectopening: "This object has been opened $1 times.",
lvnote_objectopeningnormal: "This object has been opened $1 times in Normal mode.",
lvnote_objectopeningheroic: "This object has been opened $1 times in Heroic mode.",
lvnote_zonefishing: "Waters in this zone have been fished $1 times.",
lvnote_usercomments: "This user has posted a total of $1 comments.",
lvnote_userscreenshots: "This user has submitted a total of $1 screenshots.",
lvnote_usertopics: "This user has posted a total of $1 topics.",
lvnote_userreplies: "This user has posted a total of $1 replies.",
message_ajaxnotsupported: "Please upgrade to a modern browser (such as Firefox) that supports 'Ajax' requests.",
message_codenotentered: "You did not enter the code.",
message_cantdeletecomment: "This comment has been automatically purged due to a negative rating. It cannot be deleted.",
message_cantdetachcomment: "This comment has already been detached.",
message_commentdetached: "This comment is now detached.",
message_noscreenshot: "Please select the screenshot to upload.",
message_forumposttooshort: "Your post is empty!",
message_commenttooshort: "Your comment must be at least 10 characters long.\n\nPlease elaborate a little.",
message_descriptiontooshort: "Your description must be at least 10 characters long.\n\nPlease elaborate a little.",
message_ingamelink: "Shift-click this to place a link into a chat message: $1",
message_entercurrpass: "Please enter your current password.",
message_enternewpass: "Please enter your new password.",
message_newpassdifferent: "Your new password must be different than your previous one.",
message_passwordsdonotmatch: "Passwords do not match.",
message_enternewemail: "Please enter your new email address.",
message_newemaildifferent: "Your new email address must be different than your previous one.",
message_emailnotvalid: "That email address is not valid.",
message_enterusername: "Please enter your username.",
message_enterpassword: "Please enter your password.",
message_enteremail: "Please enter your email address.",
message_usernamenotvalid: "Your username can only contain letters and numbers.",
message_usernamemin: "Your username must be at least 4 characters long.",
message_passwordmin: "Your password must be at least 6 characters long.",
message_saved: "Saved.",
confirm_deletecomment: "Are you sure that you want to delete this comment?",
confirm_detachcomment: "Are you sure that you want to make this comment a standalone one?",
confirm_commenttoolong: "Your comment is longer than 7500 characters and will be truncated after:\n\n$1\n\nDo you want to proceed anyway?",
confirm_descriptiontoolong: "Your description is longer than 7500 characters and will be truncated after:\n\n$1\n\nDo you want to proceed anyway?",
confirm_forumposttoolong: "Your post is longer than 7500 characters and will be truncated after:\n\n$1\n\nDo you want to proceed anyway?",
confirm_signaturetoolong: "Your signature is longer than 250 characters and will be truncated after:\n\n$1\n\nDo you want to proceed anyway?",
confirm_signaturetoomanylines: "Your signature contains more than 3 lines and will be truncated.\n\nDo you want to proceed anyway?",
prompt_customrating: "Please enter a rating value between -$1 and $2:",
prompt_linkurl: "Please enter the URL of your link:",
prompt_ratinglevel: "Please enter the level used in the calculation (1 - 70):",
prompt_ingamelink: "Copy/paste the following to your in-game chat window:",
tooltip_dailyquest: "You may complete up to<br />25 daily quests per day.",
tooltip_extendedquestsearch: "Check this option to search in the<br />objectives and description as well.",
tooltip_extendedspellsearch: "Check this option to search in the<br />description and buff as well.",
tooltip_sellsfor: "Sells for $1",
tooltip_zonelink: "Clicking on this link will<br />take you to the zone page.",
tooltip_combatrating: "$1&nbsp;@&nbsp;L$2",
tooltip_armorbonus: "Has $1 more armor than the default<br />range for this armor type.",
tooltip_reqlevel: "Required level",
tooltip_repgain: "Reputation gain",
tooltip_trainingpoints: "Training points",
tooltip_honorpoints: "Honor Points",
tooltip_arenapoints: "Arena Points",
tooltip_customrating: "Custom rating",
tooltip_uprate: "Insightful/funny",
tooltip_downrate: "Poor/redundant",
tooltip_normal: "Normal",
tooltip_sticky: "Sticky",
tooltip_pending: "Pending",
tooltip_totaldatauploads: "Total size of all data uploads",
tooltip_totalratings: "Sum of the ratings of all of their comments",
tooltip_avgmoneycontained: "Average money contained",
tooltip_avgmoneydropped: "Average money dropped",
tooltip_buyoutprice: "Average buyout price (AH)",
tooltip_reqenchanting: "Required enchanting skill",
tooltip_reqjewelcrafting: "Required jewelcrafting skill",
tooltip_reqlockpicking: "Required lockpicking skill",
tooltip_partyloot: "When this item drops, each<br />member of the group can loot one.",
tooltip_loading: "Loading...",
tooltip_noresponse: "No response from server :(",
tooltip_itemnotfound: "Item not found :(",
tooltip_questnotfound: "Quest not found :(",
tooltip_spellnotfound: "Spell not found :(",
tooltip_captcha: "Click to generate a new one",
tab_items: "Items",
tab_itemsets: "Item sets",
tab_npcs: "NPCs",
tab_objects: "Objects",
tab_quests: "Quests",
tab_zones: "Zones",
tab_abilities: "Abilities",
tab_recipes: "Recipes",
tab_skills: "Skills",
tab_uncategorizedspells: "Uncategorized spells",
tab_factions: "Factions",
tab_articles: "Articles",
tab_bosses: "Bosses",
tab_canbeplacedin: "Can be placed in",
tab_cancontain: "Can contain",
tab_comments: "Comments",
tab_containedin: "Contained in",
tab_contains: "Contains",
tab_createdby: "Created by",
tab_currencyfor: "Currency for",
tab_disenchantedfrom: "Disenchanted from",
tab_disenchanting: "Disenchanting",
tab_droppedby: "Dropped by",
tab_drops: "Drops",
tab_ends: "Ends",
tab_fishedin: "Fished in",
tab_fishing: "Fishing",
tab_gatheredfrom: "Gathered from",
tab_herbalism: "Herbalism",
tab_heroicdrops: "Heroic drops",
tab_latestcomments: "Latest comments",
tab_latestreplies: "Latest replies",
tab_latestscreenshots: "Latest screenshots",
tab_latesttopics: "Latest topics",
tab_members: "Members",
tab_minedfrom: "Mined from",
tab_mining: "Mining",
tab_normaldrops: "Normal drops",
tab_objectiveof: "Objective of",
tab_pickpocketedfrom: "Pickpocketed from",
tab_pickpocketing: "Pickpocketing",
tab_prospectedfrom: "Prospected from",
tab_prospecting: "Prospecting",
tab_providedfor: "Provided for",
tab_questrewards: "Quest rewards",
tab_reagentfor: "Reagent for",
tab_replies: "Replies",
tab_rewardfrom: "Reward from",
tab_samemodelas: "Same model as",
tab_screenshots: "Screenshots",
tab_seealso: "See also",
tab_sharedcooldown: "Shared cooldown",
tab_skinnedfrom: "Skinned from",
tab_skinning: "Skinning",
tab_sells: "Sells",
tab_soldby: "Sold by",
tab_starts: "Starts",
tab_taughtby: "Taught by",
tab_teaches: "Teaches",
tab_toolfor: "Tool for",
tab_topics: "Topics",
tab_triggeredby: "Triggered by",
tab_unlocks: "Unlocks",
tab_usedby: "Used by",
tab_addyourcomment: "Add your comment",
tab_submitascreenshot: "Submit a screenshot",
book_of: " of ",
book_previous: " Previous",
book_next: "Next ",
mapper_tipzoom: "Tip: Click map to zoom",
mapper_tippin: "Tip: Click map to add/remove pins",
mapper_hidepins: "[hide pins]",
mapper_showpins: "[show pins]",
showonmap: "Show on map...",
som_questgivers: "Quest givers",
markup_b: "Bold",
markup_i: "Italic",
markup_u: "Underline",
markup_s: "Strikethrough",
markup_small: "Small text",
markup_url: "Link",
markup_quote: "Quote box",
markup_code: "Code box",
markup_ul: "Unordered list (bullets)",
markup_ol: "Ordered list (numbers)",
markup_li: "List item",
markup_said: "said:",
compose_mode: "Mode:",
compose_edit: "Edit",
compose_preview: "Preview",
compose_livepreview: "Live Preview",
compose_save: "Save",
compose_cancel: "Cancel",
compose_limit: "Up to $1 characters.",
compose_limit2: "Up to $1 characters and/or 3 lines.",
user_nodescription: "This user hasn't composed one yet.",
user_nodescription2: "You haven't composed one yet.",
user_composeone: "Compose one now!",
user_editdescription: "Edit",
myaccount_passmatch: "Passwords match",
myaccount_passdontmatch: "Passwords do not match",
types: {
1: ["NPC", "NPC", "NPCs", "NPCs"],
2: ["Object", "object", "Objects", "objects"],
3: ["Item", "item", "Items", "items"],
4: ["Item Set", "item set", "Item Sets", "item sets"],
5: ["Quest", "quest", "Quests", "quests"],
6: ["Spell", "spell", "Spells", "spells"],
7: ["Zone", "zone", "Zones", "zones"],
8: ["Faction", "faction", "Factions", "factions"]
},
timeunitssg: ["year", "month", "week", "day", "hour", "minute", "second"],
timeunitspl: ["years", "months", "weeks", "days", "hours", "minutes", "seconds"],
timeunitsab: ["yr", "mo", "wk", "", "hr", "min", "sec"]
};