There are 9 previous versions of this script.
Add Syntax Highlighting (this will take a few seconds, probably freezing your browser while it works)
// ==UserScript==
// @name AppleDaily News Loader
// @namespace mt@live.hk
// @description Load All News In One Page
// @include http://*hk.apple.nextmedia.com/template/apple*/art_main.php?*
// ==/UserScript==
// Author: FatTunG
// Contact: mt@live.hk
// Version: 2.4
/**
* === Version History ===
* Version 2.4 (10 JUNE 2009)
* - Fix: Blank page problem
* - Add: Remove video in news page
*
* Version 2.3 (24 MAY 2009)
* - Modify: Disable ANL in some pages which have different structure from standard page
*
* Version 2.2 (22 MAY 2009)
* - Add: Original link of each news, this script will be temporarily disabled if
* user click on this link because I added "#stopanl" at the end of the original link
*
* Version 2.1 (19 MAY 2009)
* - Fix: Problem occurs when selecting multiple images in intro photo box
*
* Version 2.0 (18 MAY 2009)
* - Fix: Compatible with the new php version of appledaily
* - Add: Change the link of image to point to the real image directly
*
* Version 1.2 (7 SEP 2008)
* - Fix: Hitrate display problem
*
* Version 1.1 (13 AUG 2008)
* - Modify: Add info at the top-right-hand corner
* - Modify: Remove useless div and tidy up the layout
* - Feature Add: Show loading icon when loading the news
*
* Version 1.0 (11 AUG 2008)
* - First Release
*/
var ANL = {
"version": "2.4",
"stopFlag": "stopanl",
"init": function()
{
var enable = this.checkEnable();
if (enable)
{
this.addCssStyle();
this.appendANLInfo();
this.loadNews();
}
},
"checkEnable": function()
{
if (location.href.indexOf("#" + this.stopFlag) > -1) return false; else return true;
},
"pageCleanUp": function()
{
// Remove current content
document.getElementById("container").style.display = "none";
},
"addCssStyle": function()
{
var strBodyFontCss = '* { font-family: "微軟正黑體","新細明體","細明體" !important; }';
var strGroupNameCss = '.groupname { padding-left: 3px; font-size: 160%; background-color: #CCFF99; }';
var strNewsTitleCss = '.newstitle { font-size:24px; font-weight: bold; line-height: 1.2em; border-bottom: 3px dotted; margin-left: 0px !important; margin-bottom: 5px !important; width: auto !important; }';
var strNewsContentCss = '#NewContent p {font-size: 16px } #NewContent h2 { font-size: 18px; font-weight: bold }';
var strPhotoBoxPCss = 'div.articlePhotoBoxContent p, div#articleReleatedLink li { font-size: 16px }';
var strSeperatorCss = '.seperator { height: 5px; background-color: Red; color: Red; margin: 20px 0 10px }';
var strSpacerCss = '#NewContent #articleContent div.spacer { height: 15px }';
var strMenuCss = '.menu { text-align: center; }';
var strIntroPhotoBox = '.introPhotoBox { float: left; margin-right: 15px !important }';
var strHitrateCss = '.hitrate { float: right; color: #2D5391; margin-top: 5px }';
var strTopBarLink = '.top { float: right; margin: 5px 2px 0px 5px }';
var strOriginalLinkCss = '.olink { float:right; margin: 5px 2px 0px 5px }';
var strLoading = '.loading { height: 50px; background: transparent url(' + ANL.Res.LoadingGif + ') no-repeat scroll center; border-bottom: solid 5px red;}';
this.addGlobalStyle(strBodyFontCss + strGroupNameCss + strNewsTitleCss + strNewsContentCss + strPhotoBoxPCss + strSpacerCss +
strHitrateCss + strSeperatorCss + strMenuCss + strIntroPhotoBox + strTopBarLink + strOriginalLinkCss + strLoading);
},
"appendANLInfo": function()
{
var topBar = document.getElementById("siteNav");
var spaceDiv = $x("//div[@class='spacer']", topBar, XPathResult.FIRST_ORDERED_NODE_TYPE);
spaceDiv.parentNode.removeChild(spaceDiv); // remove userless spacer
var scriptName = document.createElement("div");
scriptName.setAttribute("style", 'float: right; margin-top: 5px; margin-right: 5px;');
scriptName.innerHTML = "<a style='color: #CC0000; font-weight: bold; text-decoration: underline;' href='http://userscripts.org/scripts/show/31571' target='_blank'>Modded By ANL " + this.version + "</a>";
topBar.appendChild(scriptName);
},
"loadNews": function()
{
// Add new content wrapper
var divWrapper = document.getElementById("wrapperMain");
if (divWrapper == null) divWrapper = document.getElementById("wrapper");
var sltArticleMenu = document.getElementById("sltArticleMenu");
if (sltArticleMenu == null) return; // No articles menu, stop loading news
var opgGroups = sltArticleMenu.getElementsByTagName("OPTGROUP");
this.pageCleanUp(); // Clean page content
var divOldContent = document.getElementById("container");
var divNewContent = document.createElement("div");
divNewContent.setAttribute("id", "NewContent");
divWrapper.insertBefore(divNewContent, divOldContent);
appendMenu();
for (var i = 0; i < opgGroups.length; i++)
{
if (opgGroups[i].label == "客戶資訊") continue;
appendGroupName(opgGroups[i].label);
loadNewsInGroup(opgGroups[i]);
}
// Helper functions
function appendMenu()
{
var newMenu = sltArticleMenu.cloneNode(true);
newMenu.setAttribute("onchange", "var opt = dojo.fromJson(this.options[this.selectedIndex].value);document.getElementById(opt.art_id).scrollIntoView();");
var newDiv = document.createElement("div");
newDiv.setAttribute("class", "menu");
newDiv.appendChild(newMenu);
divNewContent.appendChild(newDiv);
}
function appendGroupName(label)
{
var groupNameNode = document.createElement("div");
groupNameNode.setAttribute("class", "groupname");
groupNameNode.innerHTML = label;
divNewContent.appendChild(groupNameNode);
}
function loadNewsInGroup(group)
{
var optNewsInGroup = group.getElementsByTagName("OPTION");
for (var i = 0; i < optNewsInGroup.length; i++) {
var optValue = optNewsInGroup[i].getAttribute("value");
var articleId = unsafeWindow.dojo.fromJson(optValue).art_id;
var newsNode = document.createElement("div");
newsNode.setAttribute("id", articleId); // Set id to article ID
newsNode.setAttribute("class", "loading");
newsNode.style.overflow = "hidden";
divNewContent.appendChild(newsNode);
var newsUrl = getUrl(optNewsInGroup[i].getAttribute("value"));
getNewsContent(newsUrl, articleId);
}
function getUrl(opt)
{
var objInfo = unsafeWindow.dojo.fromJson(opt);
var iss_id = document.getElementsByName("issue_id")[0].getAttribute("value");
var sec_id = objInfo.sec_id;
var subsec_id = objInfo.subsec_id;
var art_id = objInfo.art_id;
var cat_id = objInfo.cat_id;
var coln_id = objInfo.coln_id;
return ANL.getUrlPrefix() + "art_main.php?" + "iss_id=" + iss_id + "&sec_id=" + sec_id +
"&subsec_id=" + subsec_id + "&art_id=" + art_id +
(cat_id == 0 || cat_id == null ? "" : "&cat_id=" + cat_id) +
(coln_id == 0 || coln_id == null ? "" : "&coln_id=" + coln_id);
}
function getNewsContent(url, id)
{
GM_xmlhttpRequest({
method: "GET",
url: url,
onerror: function()
{
alert("Error");
},
onload: function(rs)
{
// Get useful content in response text
var divFullContent = document.createElement("div");
divFullContent.innerHTML = rs.responseText;
var contentHead = getSingleNode('//*[@id="articleTitle"]/h1', divFullContent);
var articleContent = getSingleNode('//*[@id="articleContent"]', divFullContent);
var introPhotoBox = getSingleNode('//*[@id="articleIntroPhoto"]', divFullContent);
var targetNode = document.getElementById(id);
if (contentHead) {
contentHead.setAttribute("class", "newstitle");
targetNode.appendChild(contentHead);
}
if (introPhotoBox)
{
introPhotoBox.setAttribute("class", "introPhotoBox");
var scriptNode = nextSibling(introPhotoBox);
// Modify the script
scriptNode.innerHTML = scriptNode.innerHTML.replace(/NMI_intro_photo/g, "NMI_intro_photo" + id);
scriptNode.innerHTML = scriptNode.innerHTML.replace(/document\.getElementById\(\"intro_photo_prev\"\)/g,
'document.evaluate(\'//div[@id="' + id +
'"]//*[@id="intro_photo_prev"]\', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue');
scriptNode.innerHTML = scriptNode.innerHTML.replace(/document\.getElementById\(\"intro_photo_next\"\)/g,
'document.evaluate(\'//div[@id="' + id +
'"]//*[@id="intro_photo_next"]\', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue');
scriptNode.innerHTML = scriptNode.innerHTML.replace(/document\.getElementById\(\"intro_photo_zoom_btn\"\)/g,
'document.evaluate(\'//div[@id="' + id +
'"]//*[@id="intro_photo_zoom_btn"]\', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue');
scriptNode.innerHTML = scriptNode.innerHTML.replace(/document\.getElementById\(\"intro_photo_caption\"\)/g,
'document.evaluate(\'//div[@id="' + id +
'"]//*[@id="intro_photo_caption"]\', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue');
scriptNode.innerHTML = scriptNode.innerHTML.replace(/document\.getElementById\(\"articleIntroPhoto\"\)/g,
'document.evaluate(\'//div[@id="' + id +
'"]//*[@id="articleIntroPhoto"]\', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue');
scriptNode.innerHTML = scriptNode.innerHTML.replace(/document\.getElementById\(\"articleIntroPhotoController\"\)/g,
'document.evaluate(\'//div[@id="' + id +
'"]//*[@id="articleIntroPhotoController"]\', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue');
scriptNode.innerHTML = scriptNode.innerHTML.replace(/document\.getElementById\(\"intro_photo_count\"\)/g,
'document.evaluate(\'//div[@id="' + id +
'"]//*[@id="intro_photo_count"]\', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue');
scriptNode.innerHTML = scriptNode.innerHTML.replace(/document\.getElementById\(\"intro_photo_link_img\"\)/g,
'document.evaluate(\'//div[@id="' + id +
'"]//*[@id="intro_photo_link_img"]\', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue');
scriptNode.innerHTML = scriptNode.innerHTML.replace(/document\.getElementById\(\"intro_photo_link_flv\"\)/g,
'document.evaluate(\'//div[@id="' + id +
'"]//*[@id="intro_photo_link_flv"]\', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue');
scriptNode.innerHTML = scriptNode.innerHTML.replace(/document\.getElementById\(\"intro_photo_img\"\)/g,
'document.evaluate(\'//div[@id="' + id +
'"]//*[@id="intro_photo_img"]\', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue');
scriptNode.innerHTML = scriptNode.innerHTML.replace(/document\.getElementById\(\"articleIntroPhotoBox\"\)/g,
'document.evaluate(\'//div[@id="' + id +
'"]//*[@id="articleIntroPhotoBox"]\', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue');
scriptNode.innerHTML = scriptNode.innerHTML.replace(/document\.getElementById\(\"div_art_photo_flv\"\)/g,
'document.evaluate(\'//div[@id="' + id +
'"]//*[@id="div_art_photo_flv"]\', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue');
scriptNode.innerHTML = scriptNode.innerHTML.replace(/document\.getElementById\(\"div_art_photo_img\"\)/g,
'document.evaluate(\'//div[@id="' + id +
'"]//*[@id="div_art_photo_img"]\', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue');
scriptNode.innerHTML = scriptNode.innerHTML.replace(/document\.getElementById\(\"left_picviewer_info\"\)/g,
'document.evaluate(\'//div[@id="' + id +
'"]//*[@id="left_picviewer_info"]\', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue');
// Override the next/prev function
scriptNode.innerHTML = scriptNode.innerHTML.replace(/this\.controller\.next\(\);/g,
'this.controller.next();return false;');
scriptNode.innerHTML = scriptNode.innerHTML.replace(/this\.controller\.prev\(\);/g,
'this.controller.prev();return false;');
// Point to the real image
scriptNode.innerHTML = scriptNode.innerHTML.replace("#TB_inline?height=&width=&inlineId=imgDiv&modal=true&imageUrl=", "");
targetNode.appendChild(introPhotoBox);
targetNode.appendChild(scriptNode);
}
if (articleContent)
{
removeNode(getSingleNode('//*[@class="adArticleRight"]', articleContent)); // remove the ads
removeNode(getSingleNode('//*[@class="videoPanel"]', articleContent)); // remove video node
removeNode(getSingleNode('/link', articleContent)); // remove link node
var scriptNodes = getOrderedSnapshot('/script', articleContent), item; // remove script
for (var i = 0; i < scriptNodes.length; i++) removeNode(scriptNodes[i]);
targetNode.appendChild(articleContent);
}
// Add a seperator
var hr = document.createElement("hr");
hr.setAttribute("class", "seperator");
targetNode.appendChild(hr);
// Clear loading icon
targetNode.setAttribute("class", "");
// Open in new tab
var linkNodes = $x('//div[@class="articlePhotoBoxContent"]//a', targetNode, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE);
for (var i = 0; i < linkNodes.length; i++)
{
linkNodes[i].setAttribute("target", "_blank");
linkNodes[i].href = linkNodes[i].href.replace(/.*imageUrl=/, "");
}
// Add view# and remove reply#
var hitrate = 0;
if (typeof(unsafeWindow.today_top_rank) != "undefined")
{
var maxcount = unsafeWindow.today_top_rank.ART_RANKING.ARTICLE_ID.length;
for (var i = 0; i < maxcount; i++)
{
if (unsafeWindow.today_top_rank.ART_RANKING.ARTICLE_ID[i] == id)
{
hitrate = Math.round(unsafeWindow.today_top_rank.ART_RANKING.PV_SCORE[i] * 100 / 3);
hitrate = unsafeWindow.dojo.number.format(hitrate, { pattern: "#,##0" });
break;
}
}
}
var newHitrate = document.createElement("span");
newHitrate.innerHTML = "瀏覽人次 : " + hitrate;
newHitrate.setAttribute("class", "hitrate");
targetNode.insertBefore(newHitrate, contentHead);
// Original link
var originalLink = document.createElement("a");
originalLink.setAttribute("href", url + "#" + ANL.stopFlag);
originalLink.setAttribute("target", "_blank");
originalLink.setAttribute("class", "olink");
originalLink.innerHTML = "原文連結";
targetNode.insertBefore(originalLink, newHitrate);
// Add top link
var topLink = document.createElement("a");
topLink.setAttribute("onclick", 'scrollTo(0,0)');
topLink.setAttribute("href", "#");
topLink.setAttribute("class", "top");
topLink.innerHTML = "Top";
targetNode.insertBefore(topLink, originalLink);
// Helper function
function getSingleNode(path, root)
{
return $x(path, root, XPathResult.FIRST_ORDERED_NODE_TYPE);
}
function getOrderedSnapshot(path, root)
{
return $x(path, root, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, false);
}
function removeNode(node)
{
if (node != null && node.parentNode != null) node.parentNode.removeChild(node);
}
}
});
}
}
},
"getUrlPrefix": function()
{
var lastSharp = location.href.lastIndexOf("#");
var link = lastSharp != -1 ? location.href.substring(0, lastSharp) : location.href;
return link.substring(0, location.href.lastIndexOf("/") + 1);
},
"addGlobalStyle": function(css)
{
var head, style;
head = document.getElementsByTagName('head')[0];
if (!head) { return; }
style = document.createElement('style');
style.type = 'text/css';
style.innerHTML = css;
head.appendChild(style);
}
};
ANL.Res = {
"LoadingGif": "data:image/gif;base64,R0lGODlhIgAiAPQAADk5OVJSUlpaWmtra3t7e4SEhIyMjJSUlJycnKWlpa2trbW1tb29vcbGxs7OztbW1t7e3ufn5%2B%2Fv7%2Ff39%2F%2F%2F%2FwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAgFAAAAIf8LTkVUU0NBUEUyLjADAQAAACwAAAAAIgAiAAAFhiAljmRJLYmprqx4AG1cBgb5yjjVCDacxxKBYnT7lQoI0mBA9BlHEOToIYC4nE9RNCUa1CjFLLTAdQQmYKyYshUJkodAVhFBQwkpB2OtSygYEVMFVnwjDSh0hSwSDX6EiioOj5CUJRIPEJiamJATERESn6CflaWmp6ipqqusra6vsLGys6ohACH5BAgFAAAALAAAAAAiACIAhCEhISkpKVpaWmNjY2tra3Nzc4SEhIyMjJSUlKWlpa2trbW1tb29vcbGxs7OztbW1t7e3ufn5%2B%2Fv7%2Ff39%2F%2F%2F%2FwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWTICWOZElJiqmuZkMqAiurUPHG4wNEM2ukIsWAJAj0SBPSwzASjiQA15HyUCRFEoPUKSIApqNF4kpBALkUwAIctoqWSW4BQGYv3BTDmhs4sEsKQAx%2BCjYJABBTDg91EwprKCQJBGwQixIjjg5%2FLBAPDhF1nCwRDw%2BJoz0SmKmtrq%2BwsbKztLW2t7i5uru8vb6%2FwL4hACH5BAgFAAAALAAAAAAiACIAhCEhISkpKTk5OUJCQkpKSlJSUlpaWmNjY3Nzc4SEhIyMjJSUlJycnK2trbW1tb29vcbGxs7OztbW1t7e3ufn5%2B%2Fv7%2Ff39%2F%2F%2F%2FwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWT4CWOZCk6ZqqaFAkha5xSjJuQiiHHTTRCt1FBsltNGj%2BYaKEriiQTUoXRugBHB%2BSoEpBFoiMHRPQSPQqVEQUg2H3VNWswobxMAIOiBTrqXR43FQU%2BdnhOFxZvFxFIEAsXDE0SAASHIntRFYRmPpMFliOJVSkAn6BOQaeqq6ytrq%2BwsbKztLW2t7i5uru8vb6%2FwIchACH5BAgFAAAALAAAAAAiACIAhCEhIUJCQlJSUlpaWnNzc4SEhIyMjJSUlJycnKWlpa2trbW1tb29vcbGxs7OztbW1t7e3ufn5%2B%2Fv7%2Ff39%2F%2F%2F%2FwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWVICWOZCk2Zqqu4qOwcDk55JOQShGvTzS6JMNrl3o8frdWwUc0TR6T1pCCMJAag2YL0kpKCtyTYEqUHClASm6kGBy0I4fPJiqcGQOyFnKEvBYFUW0IcCQTTCIONHiEJBIMhSUSAo0iDAEAABKRJEwSCpkBBJwmDgKZBIikJAUBOquwsbKztLW2t7i5uru8vb6%2FwMHCsCEAIfkECAUAAAAsAAAAACIAIgCEISEhKSkpQkJCWlpaY2Nja2tre3t7hISEjIyMlJSUnJycra2ttbW1vb29xsbGzs7O1tbW3t7e5%2Bfn7%2B%2Fv9%2Ff3%2F%2F%2F%2FAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYlgJY5kKU5mqq7nw76vBJGRAt%2FV5I4Ng8OyEWUh%2Bb0mM5FjQaIcjKWgSFE8GRJQkk70YJ4O2OxISrXaxKNJpNKlVCSHM7oUcbzjpQdhPsKfHAMDT3wVDVwGgQluhCIQBAMFcowiDAlrk5g4CZucnIt8AgEAogClAAiZqaqrrK2ur7CxsrO0tbavIQAh%2BQQIBQAAACwAAAAAIgAiAIQhISEpKSlKSkpra2t7e3uEhISMjIyUlJScnJylpaWtra21tbW9vb3GxsbOzs7W1tbe3t7n5%2Bfv7%2B%2F39%2Ff%2F%2F%2F8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFjCAljmRpnmiqriwbPW1cOpJsS7AtQxA5KbqUYzL6LYInSI4iURyRpkeN6YSaIg6RJMGwmiTEZte3tHJJkAOh4BVlmY8CIVH2QhCFArBdYiQafIE6BwaFBgSIBGNehAYIj48Lb4KUIgkElSQKAAADPZkUCgEAAgagFAwCnAOnEQsARKeys7S1tre4uYEhACH5BAgFAAAALAAAAAAiACIAhCEhIUJCQkpKSlJSUlpaWmNjY2tra4yMjJSUlJycnK2trbW1tb29vcbGxs7OztbW1t7e3ufn5%2B%2Fv7%2Ff39%2F%2F%2F%2FwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWEICWOZGmeaKqubOu%2BcCzP6EOvk2Pf6PRAvN4vePIBiSVjMkIcjiILRYIoEU0gUsaRGGEkFI4JcvRg7MboVYOxbrjd1WDiQK%2FTGen8ArFNPwoDBVNoYhQPCQQDCExBCgANIzmJBkQEAA4lEINBlph5IgMAZ3mhfWkCAKZoAQCfrq%2BwsS8hACH5BAgFAAAALAAAAAAiACIAhCEhIUJCQkpKSlJSUlpaWnNzc4SEhIyMjJSUlJycnKWlpa2trbW1tb29vcbGxs7OztbW1t7e3ufn5%2B%2Fv7%2Ff39%2F%2F%2F%2FwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWCYCWOZGmeaKqubOu%2BcCzPdG3feK7T1D5SkcfDN4E8IhId0Jj0SZC%2BaCoCqVqrucVCse0qHNLdgxGuPAwFxoQoghgMCUhOMmiMIgjDYVEzgBMDfCMTDQY1AQMiCQR2OggAaxWLgjkAlAuBOgUAJIAIcwCNIgsEOgIBZZuRUqFlPWUsIQAh%2BQQIBQAAACwAAAAAIgAiAIQxMTFSUlJaWlpjY2Nzc3OEhISMjIyUlJScnJylpaWtra21tbW9vb3GxsbOzs7W1tbe3t7n5%2Bfv7%2B%2F39%2Ff%2F%2F%2F8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFgSAljmRpnmiqrmzrvnAsz3Rt33iu73zv%2F8DgSRIhGosTHOTBbDIjwhvEAYQkFI2kD6JIMCA5BwEqiiwU2BqDmiiARxKrLHCgHAQiRIFsA9QlAVQUenw0fiIFBCN6En11FA4BfAgEWjOHIgMIJHo1mHYCljefFIE6pAZ4OaQ8B28uIQAh%2BQQIBQAAACwAAAAAIgAiAIQhISEpKSlCQkJSUlJaWlpjY2Nra2tzc3N7e3uEhISMjIyUlJScnJylpaWtra21tbW9vb3GxsbW1tbe3t7n5%2Bfv7%2B%2F39%2Ff%2F%2F%2F8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFkOAljmRpnmiqrmzrvnAsz3Rt33iu73zv%2F8CgcEgcVShAS0QyqfwskigSR2k4RRaKJDJtRRqkyOQCcXSxkhfgcHEg2gpR%2BSqDAJAOw2WSmEKsMwIDInkiCg4jfxYxEwAPhAUiDwmLkg6VLgwBIw6RIglpIw9gamyQnAk1diSdIxYJYzMBnoQEJAsLOg62T4gvIQAh%2BQQIBQAAACwAAAAAIgAiAIQhISFaWlpjY2Nzc3N7e3uEhISMjIycnJylpaWtra21tbW9vb3GxsbOzs7W1tbe3t7n5%2Bfv7%2B%2F39%2Ff%2F%2F%2F8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFkeAkjmRpnmiqrmzrvnAsz3Rt33iu73zv%2F8CgcEgs2hpAAiCCkjQkM6Vi4kiQHJDJw8GEDQDWycAwSSwmjKm20W19DyJIAHmYPhLdbVv1Hi0CIgdnZQ4jD2wrXwgkAXATCGoNYSJ6KgCOIg0BUBOCIwhZhkgvAgWfkwyTMhEBg2WuEqA0miQIqgqjOAquPQy5LSEAIfkECAUAAAAsAAAAACIAIgCEISEhMTExOTk5SkpKWlpaY2Nja2trc3Nze3t7hISEjIyMnJycra2ttbW1vb29xsbGzs7O1tbW3t7e5%2Bfn7%2B%2Fv9%2Ff3%2F%2F%2F%2FAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABY%2BgJY5kaZ5oqq5s675wLM90bd94ru987%2F%2FAoHCIexgWPUQAIHjoJgYAoAARVXADaeMqigwit2ZJQkhYJNURhTuTDMyWRMPiAEvAs0m5m7gywBURbC8TAwgjC0gWDXgREzEUBAdqCXh%2FIhNpL5IkEHCLeBYRFDYJDCOXInc1EocjjJ2DMAqnqKFntzapPoIwIQAh%2BQQIBQAAACwAAAAAIgAiAIQ5OTlSUlJaWlpra2t7e3uEhISMjIyUlJScnJylpaWtra29vb3GxsbOzs7W1tbe3t7n5%2Bfv7%2B%2F39%2Ff%2F%2F%2F8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFguAkjmRpnmiqrmzrvnAsz3Rt33iu73zv%2F0DYAUAsEgO4xWHJZAaDEsSi9zAEBI7dYRAYNEQPnEEgIGRFiYLkJmhESOnsI6xLEOiK7%2BNtQxToDwkiDhB9fyMKDGCFNH50ExAKfA58M4cjCwojlDoSeZuMOBCCIw%2BhN4kknD%2BrPhGVLSEAIfkECAUAAAAsAAAAACIAIgCEISEhKSkpQkJCWlpaY2Nja2trc3Nze3t7hISEjIyMlJSUpaWlra2ttbW1vb29xsbG1tbW3t7e5%2Bfn7%2B%2Fv9%2Ff3%2F%2F%2F%2FAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYRgJY5kaZ5oqq5s675wLM90bd94HgMOpZcEAAAB%2BZEMAYDAYRw9BkJmszI5LKY%2FCmPL5eIYA4K4QC4ksOhRhCH9NRIIRUQ3YSAQDIloflPciyMODDhyJYJ6FBM%2FDguKFRB6OQ0MjhMPOow%2Be3w3k5oVFBCONwyfFRKAUw%2BRTaFoq2mxNyEAIfkECAUAAAAsAAAAACIAIgCEISEhWlpaY2Njc3Nze3t7hISEjIyMnJycpaWlra2ttbW1vb29xsbGzs7O1tbW3t7e5%2Bfn7%2B%2Fv9%2Ff3%2F%2F%2F%2FAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYLgJI5kaZ5oqq5s675wLJPAMLdIfbOHvqsK3w%2B1ABCGokakFBQgAwFBgxRkIBcF6AIiWiJFEoMgMHB8TQ1D4swmOQ4IBFyOWA8bi8RCwc8v2oApDwxmbQ0JCQpcXxIMdQ5eEkiICYsiD4U%2FSiWYXm2dgaCAmJKjkIETDpaorK2ur4AhACH5BAgFAAAALAAAAAAiACIAhCEhITExMTk5OVJSUlpaWmNjY2tra3Nzc3t7e4SEhIyMjJycnKWlpa2trbW1tb29vcbGxs7OztbW1t7e3ufn5%2B%2Fv7%2Ff39%2F%2F%2F%2FwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWM4CWOZGmeaKqurDCw8PkAVWyPgHGrRD06gF3qMKCMKgCEEHUgGEWFwBKFKIoggMj0VJ2IArqpwktKDCQXiGLLSCQivkuCYNmSGu4FOm03QdoJZH0mFQ5ag4gnEg4ODYyODQ%2BDFhKVlpaJmTAWFHGJFJaefRMSEROidqQRdZoXEqytsbKztLW2t7i5tCEAOw%3D%3D"
};
// Helper Functions
function $x()
{
var x = '', // default values
node = document,
type = 0,
fix = true,
i = 0,
toAr = function(xp)
{ // XPathResult to array
var final = [], next;
while (next = xp.iterateNext())
final.push(next);
return final;
},
cur;
while (cur = arguments[i++])
{
// argument handler
switch (typeof cur)
{
case "string":
x += (x == '') ? cur : " | " + cur;
continue;
case "number":
type = cur;
continue;
case "object":
node = cur;
continue;
case "boolean":
fix = cur;
continue;
}
}
if (fix)
{ // array conversion logic
if (type == 6) type = 4;
if (type == 7) type = 5;
}
if (!/^\//.test(x)) x = "//" + x; // selection mistake helper
if (node != document && !/^\./.test(x)) x = "." + x; // context mistake helper
var temp = document.evaluate(x, node, null, type, null); // evaluate!
if (fix)
{
switch (type)
{ // automatically return special type
case 1:
return temp.numberValue;
case 2:
return temp.stringValue;
case 3:
return temp.booleanValue;
case 8:
return temp.singleNodeValue;
case 9:
return temp.singleNodeValue;
}
}
return fix ? toAr(temp) : temp;
}
function nextSibling(startSib)
{
if (!(nextSib = startSib.nextSibling)) return false;
while (nextSib.nodeType != 1) if (!(nextSib = nextSib.nextSibling)) return false;
return nextSib;
}
window.onload = ANL.init();