User:Greenpickle/rcnst.js: Difference between revisions
Jump to navigation
Jump to search
Greenpickle (talk | contribs) m (WTF) |
Greenpickle (talk | contribs) No edit summary |
||
Line 4: | Line 4: | ||
nslist = []; | nslist = []; | ||
for (i in choice) if (choice[i].tagName == "OPTION" && choice[i].value != "") nslist[choice[i].value] = choice[i].innerHTML; | for (i in choice) if (choice[i].tagName == "OPTION" && choice[i].value != "") nslist[choice[i].value] = choice[i].innerHTML; | ||
loglist = []; | |||
days = document.getElementsByClassName("special"); | |||
for (i in days) { | |||
if (days[i].tagName != "UL") continue; | |||
items = days[i].childNodes; | |||
for (j = 0; j < items.length; j++) { | |||
if (items[j].tagName != "LI") continue; | |||
logname = items[j].getElementsByTagName("a")[0].innerHTML; | |||
if (logname != "diff" && logname != "hist" && loglist.indexOf(logname) == -1) loglist.push(logname); | |||
} | |||
} | |||
temp = RCNSTList; | temp = RCNSTList; | ||
RCNSTList = []; | RCNSTList = []; | ||
Line 9: | Line 20: | ||
if (!include && (temp.indexOf(nslist[i]) != -1)) RCNSTList[i] = false; | if (!include && (temp.indexOf(nslist[i]) != -1)) RCNSTList[i] = false; | ||
else if (include && (temp.indexOf(nslist[i])) == -1) RCNSTList[i] = false; | else if (include && (temp.indexOf(nslist[i])) == -1) RCNSTList[i] = false; | ||
} | |||
for (i in loglist) { | |||
if (!include && (temp.indexOf(loglist[i]) != -1)) RCNSTList[loglist[i]] = false; | |||
else if (include && (temp.indexOf(loglist[i])) == -1) RCNSTList[loglist[i]] = false; | |||
} | } | ||
s = RCNSTbeforecheckboxes; | s = RCNSTbeforecheckboxes; | ||
Line 15: | Line 30: | ||
else insert = 'checked="checked"'; | else insert = 'checked="checked"'; | ||
s += RCNSTbeforecheckbox + '<input type="checkbox" ' + insert + 'name="RCNST' + i + '" onclick="RCNST()" /><label for="RCNST' + i + '">' + nslist[i] + '</label>' + RCNSTaftercheckbox; | s += RCNSTbeforecheckbox + '<input type="checkbox" ' + insert + 'name="RCNST' + i + '" onclick="RCNST()" /><label for="RCNST' + i + '">' + nslist[i] + '</label>' + RCNSTaftercheckbox; | ||
} | |||
for (i in loglist) { | |||
if (RCNSTList[loglist[i]] == false) insert = ''; | |||
else insert = 'checked="checked"'; | |||
s += RCNSTbeforecheckbox + '<input type="checkbox" ' + insert + 'name="RCNSTl' + i + '" onclick="RCNST()" /><label for="RCNSTl' + i + '">' + loglist[i] + '</label>' + RCNSTaftercheckbox; | |||
} | } | ||
s += RCNSTaftercheckboxes; | s += RCNSTaftercheckboxes; | ||
Line 24: | Line 44: | ||
if (document.getElementsByName("RCNST" + i)[0].checked) RCNSTList[i] = true; | if (document.getElementsByName("RCNST" + i)[0].checked) RCNSTList[i] = true; | ||
else RCNSTList[i] = false; | else RCNSTList[i] = false; | ||
} | |||
for (i in loglist) { | |||
if (document.getElementsByName("RCNSTl" + i)[0].checked) RCNSTList[loglist[i]] = true; | |||
else RCNSTList[loglist[i]] = false; | |||
} | } | ||
days = document.getElementsByClassName("special"); | days = document.getElementsByClassName("special"); | ||
Line 31: | Line 55: | ||
for (j = 0; j < items.length; j++) { | for (j = 0; j < items.length; j++) { | ||
if (items[j].tagName != "LI") continue; | if (items[j].tagName != "LI") continue; | ||
page = items[j].getElementsByTagName("a"); | page = items[j].getElementsByTagName("a")[0]; | ||
if (page.innerHTML == "diff" || page.innerHTML == "hist") { | |||
page = page.href; | |||
page = page.substring(page.indexOf("?title=") + 7); | |||
page = page.substring(0, page.indexOf("&curid=")); | |||
page = page.substring(0, page.indexOf(":")).replace("_", " "); | |||
page = nslist.indexOf(page); | |||
if (page == -1) page = 0; | |||
} else page = page.innerHTML; | |||
if (RCNSTList[page]) { | |||
if (RCNSTList[ | |||
if (items[j].className.indexOf(" rcnsthidden") != -1) items[j].className = items[j].className.substring(0, items[j].className.indexOf(" rcnsthidden")); | if (items[j].className.indexOf(" rcnsthidden") != -1) items[j].className = items[j].className.substring(0, items[j].className.indexOf(" rcnsthidden")); | ||
} else if (items[j].className.indexOf(" rcnsthidden") == -1) items[j].className += " rcnsthidden"; | } else if (items[j].className.indexOf(" rcnsthidden") == -1) items[j].className += " rcnsthidden"; |
Revision as of 14:39, October 11, 2009
window.onload = function () {
if (document.body.className.indexOf("page-Special_RecentChanges") == -1) return;
choice = document.getElementById("namespace").childNodes;
nslist = [];
for (i in choice) if (choice[i].tagName == "OPTION" && choice[i].value != "") nslist[choice[i].value] = choice[i].innerHTML;
loglist = [];
days = document.getElementsByClassName("special");
for (i in days) {
if (days[i].tagName != "UL") continue;
items = days[i].childNodes;
for (j = 0; j < items.length; j++) {
if (items[j].tagName != "LI") continue;
logname = items[j].getElementsByTagName("a")[0].innerHTML;
if (logname != "diff" && logname != "hist" && loglist.indexOf(logname) == -1) loglist.push(logname);
}
}
temp = RCNSTList;
RCNSTList = [];
for (i in nslist) {
if (!include && (temp.indexOf(nslist[i]) != -1)) RCNSTList[i] = false;
else if (include && (temp.indexOf(nslist[i])) == -1) RCNSTList[i] = false;
}
for (i in loglist) {
if (!include && (temp.indexOf(loglist[i]) != -1)) RCNSTList[loglist[i]] = false;
else if (include && (temp.indexOf(loglist[i])) == -1) RCNSTList[loglist[i]] = false;
}
s = RCNSTbeforecheckboxes;
for (i in nslist) {
if (RCNSTList[i] == false) insert = '';
else insert = 'checked="checked"';
s += RCNSTbeforecheckbox + '<input type="checkbox" ' + insert + 'name="RCNST' + i + '" onclick="RCNST()" /><label for="RCNST' + i + '">' + nslist[i] + '</label>' + RCNSTaftercheckbox;
}
for (i in loglist) {
if (RCNSTList[loglist[i]] == false) insert = '';
else insert = 'checked="checked"';
s += RCNSTbeforecheckbox + '<input type="checkbox" ' + insert + 'name="RCNSTl' + i + '" onclick="RCNST()" /><label for="RCNSTl' + i + '">' + loglist[i] + '</label>' + RCNSTaftercheckbox;
}
s += RCNSTaftercheckboxes;
document.getElementsByClassName("rcoptions")[0].innerHTML += s;
RCNST();
}
function RCNST () {
for (i in nslist) {
if (document.getElementsByName("RCNST" + i)[0].checked) RCNSTList[i] = true;
else RCNSTList[i] = false;
}
for (i in loglist) {
if (document.getElementsByName("RCNSTl" + i)[0].checked) RCNSTList[loglist[i]] = true;
else RCNSTList[loglist[i]] = false;
}
days = document.getElementsByClassName("special");
for (i in days) {
if (days[i].tagName != "UL") continue;
items = days[i].childNodes;
for (j = 0; j < items.length; j++) {
if (items[j].tagName != "LI") continue;
page = items[j].getElementsByTagName("a")[0];
if (page.innerHTML == "diff" || page.innerHTML == "hist") {
page = page.href;
page = page.substring(page.indexOf("?title=") + 7);
page = page.substring(0, page.indexOf("&curid="));
page = page.substring(0, page.indexOf(":")).replace("_", " ");
page = nslist.indexOf(page);
if (page == -1) page = 0;
} else page = page.innerHTML;
if (RCNSTList[page]) {
if (items[j].className.indexOf(" rcnsthidden") != -1) items[j].className = items[j].className.substring(0, items[j].className.indexOf(" rcnsthidden"));
} else if (items[j].className.indexOf(" rcnsthidden") == -1) items[j].className += " rcnsthidden";
}
}
}