User:Eleazaros/questtooltip.js

From Lotro-Wiki.com
Jump to navigation Jump to search

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
// from http://www.wowwiki.com/User:Pcj/questtooltip.js
/*
<pre>
*/

function parseQuestText() {
//Check to see if the XmlHttpRequests state is finished.
if (getRequest.readyState == 4) {
rawText = getRequest.responseText;
var tip = document.getElementById('tfb');
tip.innerHTML = ttError("quest");
if (rawText) {
rawName = "";
rawIcon = "";
rawStart = "";
rawEnd = "";
rawLevel = "";
rawXP = "";
rawRewards = "";
rawText = rawText.replace(crlf, "");
nameHTML = new RegExp('<span[^>]*class="questname">.*?</span>');
rawNameM = nameHTML.exec(rawText);
if (rawNameM) {
reName = new RegExp('.*<span[^>]*class="questname">(.*?)</span>.*');
rawName = rawNameM[0].replace(reName, "$1");
}
iconHTML = new RegExp('<span[^>]*class="questicon">.*?</span>');
rawIconM = iconHTML.exec(rawText);
if (rawIconM) {
reIcon = new RegExp('.*<span[^>]*class="questicon">(.*?)</span>.*');
rawIcon = '<div style="float:left;">' + rawIconM[0].replace(reIcon, "$1") + '</div>';
}
startHTML = new RegExp('<div class="queststart">.*?</div>');
rawStartM = startHTML.exec(rawText);
if (rawStartM) {
reStart = new RegExp('.*<div class="queststart">(.*?)</div>.*');
rawStart = "<br /><img src='http://lotro-wiki.com/images/7/72/Quest-icon.png'> " + rawStartM[0].replace(reStart, "$1");
}
endHTML = new RegExp('<div class="questend">.*?</div>');
rawEndM = endHTML.exec(rawText);
if (rawEndM) {
reEnd = new RegExp('.*<div class="questend">(.*?)</div>.*');
rawEnd = "<br /><img src='http://lotro-wiki.com/images/2/2f/Quest_End-icon.png'> " + rawEndM[0].replace(reEnd, "$1");
}
levelHTML = new RegExp('<div class="questlevel">.*?</div>');
rawLevelM = levelHTML.exec(rawText);
if (rawLevelM) {
reLevel = new RegExp('.*<div class="questlevel">(.*?)</div>.*');
rawLevel = "<br />Level: " + rawLevelM[0].replace(reLevel, "$1");
}
xpHTML = new RegExp('<div class="questxp">.*?</div>');
rawXPM = xpHTML.exec(rawText);
if (rawXPM) {
reXP = new RegExp('.*<div class="questxp">(.*?)</div>.*');
rawXP = "<br />XP: " + rawXPM[0].replace(reXP, "$1");
}
rewardsHTML = new RegExp('<div class="questrewards">.*?</div>');
rawRewardsM = rewardsHTML.exec(rawText);
if (rawRewardsM) {
reRewards = new RegExp('.*<div class="questrewards">(.*?)</div>.*');
rawRewards = "<br />Rewards:<br />" + rawRewardsM[0].replace(reRewards, "$1");
}
tooltip = rawIcon + rawName + rawLevel + rawStart + rawEnd + rawXP + rawRewards;
if (tooltip != null && tooltip != "") {
tip.innerHTML = ttHTMLStart + '<div align="center">' + tooltip + '</div></div>';
}
}
displayTip_Eleazaros();
}
}

function showQuestTip(i) {
if (tooltipsOn) {
var Span = document.getElementById( "qtt" + i );
var ttLink = Span.parentNode;
if (ttLink.getAttribute("class") != "selflink") {
Span.setAttribute("title", "");
if (ttLink.getAttribute("title")) {
questname = ttLink.getAttribute("title");
ttLink.setAttribute("title", "");
newSpan = document.createElement("span");
newSpan.setAttribute("title", questname);
ttLink.appendChild(newSpan);
} else {
questname = ttLink.lastChild.getAttribute("title");
}
getInfo(questname, 4);
}
}
}

function qttMouseOver_Eleazaros() {
var Spans = document.getElementsByTagName( "span" );
for ( var i = 0; i < Spans.length; i++ ) {
if ( hasClass( Spans[i], "questlink" ) ) {
Spans[i].setAttribute("id", "qtt" + i);
Spans[i].onmouseover = showQuestTip.bind(Spans[i],i);
Spans[i].onmouseout = hideTip_Eleazaros.bind(Spans[i],i);
Spans[i].onmousemove = moveTip_Eleazaros;
}
}
}

qttMouseOver_Eleazaros();

/*
</pre>
*/