User:Greenpickle/rcnst.js: Difference between revisions

From Pikipedia, the Pikmin wiki
Jump to navigation Jump to search
m (WTF)
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];
             for (k in page) if (page[k].innerHTML == "hist") {
             if (page.innerHTML == "diff" || page.innerHTML == "hist") {
                 page = page[k];
                 page = page.href;
                break;
                page = page.substring(page.indexOf("?title=") + 7);
            }   
                page = page.substring(0, page.indexOf("&curid="));
            page = page.href;
                page = page.substring(0, page.indexOf(":")).replace("_", " ");
            page = page.substring(page.indexOf("?title=") + 7);
                page = nslist.indexOf(page);
            page = page.substring(0, page.indexOf("&curid="));
                if (page == -1) page = 0;
            page = page.substring(0, page.indexOf(":")).replace("_", " ");
            } else page = page.innerHTML;
            ns = nslist.indexOf(page);
             if (RCNSTList[page]) {
            if (ns == -1) ns = 0;
             if (RCNSTList[ns]) {
                 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";
        }
    }
}