mozilla

Revision 613259 of Firefox

  • Revision slug: Mozilla/Firefox
  • Revision title: Firefox
  • Revision id: 613259
  • Created:
  • Creator: trelara51999
  • Is current revision? No
  • Comment ASK.FM HACK

Revision Content

  • D// ==UserScript==
    // @name            Ask.fm Auto-Like 25 like/click by MariosPanagiotoy
    // @namespace       @MariosPanagiotoy
    // @version            2.0
    // @copyright        http://ask.fm/MariosPanagiotoy
    // @description        Auto Like Ask.fm 25 likes
    // @author            (http://fb.com/marios.panagiotoy.3)
    // @include        http://ask.fm/*
    // @icon            http://s3.amazonaws.com/uso_ss/icon/138450/large.gif?1342345458
    // @updateURL  http://userscripts.org/scripts/source/293612.user.js
    // Ask.fm Auto-like by MariosPanagiotoy
    // Version 6.9
    // Igraet @MariosPanagiotoy
     // fb.com/marios.panagiotoy.3
    // ==/UserScript==function MariosPanagiotoy()
    // ==Profile==
    body = document.body;
    if(body != null) {
        div = document.createElement("div");
        div.setAttribute('id','like1');
        div.style.position = "fixed";
        div.style.display = "block";
        div.style.width = "125px";
        div.style.opacity= 1.00;
        div.style.bottom = "+95px";
        div.style.left = "+5.9px";
        div.style.backgroundColor = "#ffffff";
        div.style.padding = "2px";
        div.innerHTML = "<center> <a href='/MariosPanagiotoy' title='Marios ♥ '><img src=''  align='absmiddle' /></a>"
        
        div2 = document.createElement("div");
        div2.setAttribute('id','spoiler');
        div2.style.position = "fixed";
        div2.style.width = "125px";
        div2.style.opacity= 0.90;
        div2.style.bottom = "+65px";
        div2.style.left = "+6px";
        div2.style.backgroundColor = "#FFFFFF";
        div2.style.border = "1px solid #555";
        div2.style.padding = "2px";
        div2.innerHTML = "<center> <a href='http://fb.com/MariosPanagiotoy.3' title='Cipri ♥ '><img src=''  align='absmiddle' /></a> "
        
        div3 = document.createElement("div");
        div3.style.position = "fixed";
        div3.style.top = "37px";
        div3.style.left = "-3px";
        div3.style.padding = "2px";
        div3.innerHTML = "<center> <a href='/MariosPanagiotoy' title='Marios ♥'><img src='http://static.tumblr.com/yu2orom/P2Vlyxtt7/j-566.png'  align='absmiddle' /></a> "
        
        body.appendChild(div);
        body.appendChild(div2);
        body.appendChild(div3);
        
        unsafeWindow.spoiler = function() {
            var i;
            for(i=1;i<=20;i++) {
                var x=document.getElementById('like'+i);
                if (x.style.display=="none") {
                    x.style.display="block";
                    div2.innerHTML = "<center> <a href='http://fb.com/kreedzro' title=':D ♥ '><img src='http://im33.gulfup.com/8XpXY.png'  align='absmiddle' /></a>"
                }
                else {
                    x.style.display="none";
                    div2.innerHTML = "<a onclick='spoiler()' title='25 likes'> 25 likes &raquo;</a>"
                }
            }
        };
    }

    // ==============
    // ==Like All==
    body = document.body;
    if(body != null) {
        div = document.createElement("div");
        div.setAttribute('id','like2');
        div.style.position = "fixed";
        div.style.display = "block";
        div.style.width = "125px";
        div.style.opacity= 0.90;
        div.style.bottom = "+42px";
        div.style.left = "+6px";
        div.style.backgroundColor = "#FFFFFF";
        div.style.border = "1px solid #94a3c4";
        div.style.padding = "2px";
        div.innerHTML = "&nbsp;<a onclick='OtomatisLike()'><img src='http://im34.gulfup.com/ZMwRQ.png'  align='absmiddle' /></a>&nbsp;"
        
        body.appendChild(div);
        
        unsafeWindow.OtomatisLike = function() {
            document.getElementsByClassName("submit-button-more")[0].click();
            document.getElementsByClassName("like hintable")[0].click();
            document.getElementsByClassName("like hintable")[0].click();
            document.getElementsByClassName("like hintable")[0].click();
            document.getElementsByClassName("like hintable")[0].click();
            document.getElementsByClassName("like hintable")[0].click();
            document.getElementsByClassName("like hintable")[0].click();
            document.getElementsByClassName("like hintable")[0].click();
            document.getElementsByClassName("like hintable")[0].click();
            document.getElementsByClassName("like hintable")[0].click();
            document.getElementsByClassName("like hintable")[0].click();
            document.getElementsByClassName("like hintable")[0].click();
            document.getElementsByClassName("like hintable")[0].click();
            document.getElementsByClassName("like hintable")[0].click();
            document.getElementsByClassName("like hintable")[0].click();
            document.getElementsByClassName("like hintable")[0].click();
            document.getElementsByClassName("like hintable")[0].click();
            document.getElementsByClassName("like hintable")[0].click();
            document.getElementsByClassName("like hintable")[0].click();
            document.getElementsByClassName("like hintable")[0].click();
            document.getElementsByClassName("like hintable")[0].click();
            document.getElementsByClassName("like hintable")[0].click();
            document.getElementsByClassName("like hintable")[0].click();
            document.getElementsByClassName("like hintable")[0].click();
            document.getElementsByClassName("like hintable")[0].click();
            document.getElementsByClassName("like hintable")[0].click();
            
            
            buttons = document.getElementsByTagName("button");
            for(i = 0; i < buttons.length; i++) {
                myClass = buttons[i].getAttribute("class");
                if(myClass != null && myClass.indexOf("like") >= 0)
                    if(buttons[i].getAttribute("name") == "likern false;")
                        buttons[i].click();
                    }
            
        };
    }

    var thisScriptVersion = GM_info.script.version;
    //Date-Objects
    var time = new Date();
    //Firefox doesn't allow toString() with URLs
    var isfirefox = false;
    //Update-Check
    var update_avaible = false;
    function showUpdate() {
        if (update_avaible==true) {
            if (document.getElementsByClassName("adremoverupdateinfo")[0]!=null) {
                document.getElementsByClassName("adremoverupdateinfo")[0].style.display="block";
            }
            if (document.getElementsByClassName("adremoverupdateinfo")[1]!=null) {
                document.getElementsByClassName("adremoverupdateinfo")[1].style.display="block";
            }
        } else {
            if (document.getElementsByClassName("adremoverupdateinfo")[0]!=null) {
                document.getElementsByClassName("adremoverupdateinfo")[0].style.display="none";
            }
            if (document.getElementsByClassName("adremoverupdateinfo")[1]!=null) {
                document.getElementsByClassName("adremoverupdateinfo")[1].style.display="none";
            }
        }
    }
    document.undoPlaceholderRemoval = function(info1) {
        for (var o = 0;o<document.elements_array_optimized.length;o++) {
            document.elements_array_optimized[o].style.display="block";
            console.log("Undo placeholder removal: [class] "+ document.elements_array_optimized[o].className + " [id] "+ document.elements_array_optimized[o].getAttribute("id") + " [element] "+document.elements_array_optimized[o]);
        }
        document.getElementById("adremover_undo_link").innerHTML=info1;
        document.getElementById("adremover_undo_link").setAttribute("href","#");
    };
    function handleContent() {
        if (xmlHttpObject.readyState == 4) {
            var thisScriptVersion = GM_info.script.version;
            var currentVersion = parseFloat(xmlHttpObject.responseText.substr( xmlHttpObject.responseText.search(/@version/) + 12, 3));
            if (currentVersion > thisScriptVersion){
                update_avaible = true;
                showUpdate();
                GM_setValue("updateAvaible_AR","true");
            } else {
                update_avaible = false;
                GM_setValue("updateAvaible_AR","false");
            }
            GM_setValue("lastUpdateDay_AR",t_time.getDay());    
        }
    }
    function testForForbiddenKeywords(words) {
        var h_Regexp = new RegExp("ead|add|oad|pad|advanced|grad");
        if (words.search(h_Regexp)>-1) {
            return true;   
        } else {
            return false;   
        }
        
    }
    function getElementsByClassNames(pattern) {
        if (typeof pattern == 'string') {
            pattern = new RegExp(pattern);
        }
        var el, els = document.body.getElementsByTagName('*');
        var elements = [];
        var i = els.length;
        
        while (i--){
            el = els[i];
            if (el.className && pattern.test(el.className.toLowerCase()) && testForForbiddenKeywords(el.className)==false){
                elements.push(el);
            }
        }
        return elements;
    }

    function getElementsByIdNames(pattern){
        if (typeof pattern == 'string') {
            pattern = new RegExp(pattern);
        }
        var el, els = document.body.getElementsByTagName('*');
        var elements = [];
        var i = els.length;
        
        while (i--){
            el = els[i];
            if (el.getAttribute("id") && pattern.test(el.getAttribute("id").toLowerCase()) && testForForbiddenKeywords(el.getAttribute("id"))==false){
                elements.push(el);
            }
        }
        return elements;
    }

    if (navigator.userAgent.toLowerCase().indexOf("firefox")>-1) {
        isfirefox = true;       
    }
    //Keywords
    if (isfirefox==false) {
        var keyurls = ["atdmt.com/MRT","cdn.movad.net/","redintelligence.net/request","ads.adtiger.de/ad","ads.newtentionassets.net/asset","hosting.adjug.com/AdJug","adclient.uimserv.net/html.ng","creativeproxy.uimserv.net/?LogoutAdProxy","a.ligatus.com/timeout","2mdn.net/","track.adform.net/ad","hosting.adjug.com/Ad","ad4mat.de/ads","zanox-affiliate.de/ppc","ads.bluelithium.com/iframe","pagead2.googlesyndication.com/simgad","ads.tlvmedia.com/st?ad","ad.xtendmedia.com/st?ad","zanox-affiliate.de/ppc","content.yieldmanager.edgesuite.net/atoms","network.adsmarket.com/ceas","ad.doubleclick.net/adi",".ib.adnxs.com/if?","adserver.freenet.de/Ads","i.ligatus.com/com_ms","a.ligatus.com/timeout.php","ds.serving-sys.com/BurstingRes","tags.qservz.com/ct_adi","ads.newtentionassets.net/asset","image.adjug.com/Advertiser","tags.qservz.com/ct_adi","googleads.g.doubleclick.net/pagead","content-result-ads","ads.newtention.net/ads","hosting.adjug.com/AdJugSearch","uk-ads.openx.net","tag.admeld.com/imp/iframe","ad.ad-srv.net/request_content.php"];
    }
    var keywords = ["googleafc","brandbox","pyv","adcont","beacon","watch-channel-brand-div","watch-pyv-vid","ad_","_ad","adv","ad1","-ad","ad-","watch-pyv-vid","adifr","promotion","advert","promos","adBox","rwidesky","watch-channel-brand-div","_ads","ads_","feed-pyv-container","tvcap","promoted","adform","adbox","contentad","adcloud","werbung","billboardContainer","medrec","contad","adsky","headad","aswift_","adcontainer","topad","adwrapper","eyecatcher","adspecial","banner","adholder","hpad","sponsored","adframe","adform","adbox","sky","skylayer","commercial","superlayer","adsense","banner","footerad","commercial","skyscraper","adsense","sgad"];
    var removed_embed_urls = [];
    var removed_items = [];
    var removed_img_urls = [];
    var removed_iframe_urls = [];
    var elements_array = [];
    document.elements_array_optimized = [];
    time = time.getMilliseconds();
    var allembeds = 0;
    var allads = 0;
    var allimgs = 0;
    var alliframes = 0;
    var allplaceholders = 0;
    //Ids
    var ak_el;
    for(var i = 0;i < keywords.length;i++) {
        ak_el = getElementsByIdNames(keywords[i]);
        for (var i2 = 0;i2<ak_el.length;i2++) {
            if (ak_el[i2]) {
                ak_el[i2].style.display="none";
                elements_array.push(ak_el[i2]);
                removed_items.push(" #" + ak_el[i2].getAttribute("id"));
                allads++;
            } }
    }
    //Classes
    var ak_el2;
    for(var k = 0;k < keywords.length;k++) {
        ak_el2 = getElementsByClassNames(keywords[k]);
        if (ak_el2) {
            for (var j = 0;j < ak_el2.length;j++) {
                if (ak_el2[j]) {
                    ak_el2[j].style.display="none";
                    elements_array.push(ak_el2[j]);
                    removed_items.push(" ." + ak_el2[j].className);
                    allads++;
                } } }
    }    
    if (isfirefox==false) {
        //Embeds
        for (var a = 0;a < document.getElementsByTagName("embed").length;a++) {
            for (var b = 0;b < keyurls.length;b++) {
                if (document.getElementsByTagName("embed")[a] && document.getElementsByTagName("embed")[a].getAttribute("src")!=undefined && document.getElementsByTagName("embed")[a].getAttribute("src").length>5 && document.getElementsByTagName("embed")[a].getAttribute("src").toString().length>5 && document.getElementsByTagName("embed")[a].getAttribute("src").toString().indexOf(keyurls[b])>=0) {
                    removed_embed_urls.push(document.getElementsByTagName("embed")[a].getAttribute("src"));
                    document.getElementsByTagName("embed")[a].parentNode.removeChild(document.getElementsByTagName("embed")[a]);
                    allembeds++;
                } }
        }
        //Iframes
        for (var c = 0;c < document.getElementsByTagName("iframe").length;c++) {
            if (document.getElementsByTagName("iframe").length>0) {
                for (var d = 0;d < keyurls.length;d++) {
                    if (document.getElementsByTagName("iframe")[c].getAttribute("src")!=null && document.getElementsByTagName("iframe")[c].getAttribute("src")!=undefined && document.getElementsByTagName("iframe")[c].getAttribute("src").length>5 && document.getElementsByTagName("iframe")[c].getAttribute("src").toString().length>5 && document.getElementsByTagName("iframe")[c].getAttribute("src").toString().indexOf(keyurls[d])>=0) {
                        removed_iframe_urls.push(document.getElementsByTagName("iframe")[c].getAttribute("src"));
                        document.getElementsByTagName("iframe")[c].parentNode.removeChild(document.getElementsByTagName("iframe")[c]);
                        alliframes++;
                    } } }
        }
        //Imgs
        for(var f = 0;f < document.getElementsByTagName("img").length;f++) {
            for(var h = 0;h < keyurls.length;h++) {
                if(document.getElementsByTagName("img")[f].getAttribute("src")!=null && document.getElementsByTagName("img")[f].getAttribute("src").indexOf(keyurls[h])>-1) {
                    document.getElementsByTagName("img")[f].style.display="none";
                    removed_img_urls.push(document.getElementsByTagName("img")[f].getAttribute("src"));
                    allimgs++;
                } }
        }
    }
    var optic = false;
    if (allads>0 || allembeds>0 || allimgs>0 || alliframes>0) {
        for (var i = 0;i<elements_array.length;i++) {
            if (elements_array[i].parentNode  && elements_array[i].parentNode.children.length<2 && elements_array[i].parentNode.children.length<5) {
                elements_array[i].parentNode.style.display="none";   
                optic = true;
                document.elements_array_optimized.push(elements_array[i].parentNode);
                allplaceholders++;
            }
            if (elements_array[i].parentNode && elements_array[i].parentNode.parentNode && (elements_array[i].parentNode.parentNode.children && elements_array[i].parentNode.parentNode.childNodes.length<4 && ((elements_array[i].parentNode.parentNode.children[0] && elements_array[i].parentNode.parentNode.children[0].nodeName=="SCRIPT") || (elements_array[i].parentNode.parentNode.children[1] && elements_array[i].parentNode.parentNode.children[1].nodeName=="SCRIPT")))) {
                elements_array[i].parentNode.parentNode.style.display="none";
                optic = true;
                document.elements_array_optimized.push(elements_array[i].parentNode.parentNode);
                allplaceholders++;
            }
            if (elements_array[i].parentNode && elements_array[i].parentNode.parentNode && elements_array[i].parentNode.parentNode.parentNode && (elements_array[i].parentNode.parentNode.parentNode.children && elements_array[i].parentNode.parentNode.parentNode.childNodes.length<5 && ((elements_array[i].parentNode.parentNode.parentNode.children[0] && elements_array[i].parentNode.parentNode.parentNode.children[0].nodeName=="SCRIPT") || (elements_array[i].parentNode.parentNode.parentNode.children[1] && elements_array[i].parentNode.parentNode.parentNode.children[1].nodeName=="SCRIPT")))) {
                elements_array[i].parentNode.parentNode.parentNode.style.display="none";
                optic = true;
                document.elements_array_optimized.push(elements_array[i].parentNode.parentNode.parentNode);
                allplaceholders++;
            }    
            if (elements_array[i].parentNode && elements_array[i].parentNode.parentNode && elements_array[i].parentNode.parentNode.parentNode && elements_array[i].parentNode.parentNode.parentNode.parentNode && (elements_array[i].parentNode.parentNode.parentNode.parentNode.children && elements_array[i].parentNode.parentNode.parentNode.parentNode.childNodes.length<6 && ((elements_array[i].parentNode.parentNode.parentNode.parentNode.children[0] && elements_array[i].parentNode.parentNode.parentNode.parentNode.children[0].nodeName=="SCRIPT") || (elements_array[i].parentNode.parentNode.parentNode.parentNode.children[1] && elements_array[i].parentNode.parentNode.parentNode.parentNode.children[1].nodeName=="SCRIPT")))) {
                elements_array[i].parentNode.parentNode.parentNode.parentNode.style.display="none";
                document.elements_array_optimized.push(elements_array[i].parentNode.parentNode.parentNode.parentNode);
                optic = true;
                allplaceholders++;
            }   
        }
        
        
        
    }// JavaScript Document// JavaScript Document

    eveloper release notes

    Developer-focused release notes; learn what new capabilities for both Web sites and add-ons arrive in each version of Firefox.

  • Project documentation

    Get detailed information about the internals of Firefox and its build system, so you can find your way around in the code.

  • Developer guide

    Our developer guide provides details on how to get and compile the Firefox source code, how to find your way around, and how to contribute to the project.

Firefox is available in four channels. The release channel is for everyday use; it's the shipped version used by millions of people around the world. The other channels are for use by testers, early adopters, and serious enthusiasts.

  • Firefox Nightly {{FirefoxChannelLink("nightly", 96)}}

    Nightly builds of Firefox for testing purposes only.

    {{DownloadButton("https://nightly.mozilla.org/", "Download Nightly")}}
  • Firefox Aurora {{FirefoxChannelLink("aurora", 96)}}

    The newest innovations in an experimental environment.

    {{DownloadButton("https://www.mozilla.org/firefox/channel/#aurora", "Download Aurora")}}
  • Firefox Beta {{FirefoxChannelLink("beta", 96)}}

    The latest features in a more stable environment.

    {{DownloadButton("https://www.mozilla.org/firefox/channel/#beta", "Download Beta")}}
  • Firefox {{FirefoxChannelLink("firefox", 96)}}

    Tried, tested, and used by millions around the world.

    {{DownloadButton("https://www.mozilla.org/firefox/channel/#firefox", "Download Firefox")}}

{{CommunityBox("Firefox", "firefox-dev", "firefox-dev", "developers", "Calendar|https://mail.mozilla.com/home/publiccalendar@mozilla.com/Releases%20Scheduling.html|Web|View the release schedule on the Web++https://mail.mozilla.com/home/publiccalendar@mozilla.com/Releases%20Scheduling.ics|iCal|Subscribe to the iCal release schedule calendar")}}

  1. Add-ons
    1. {{LinkItem("Firefox developer release notes", "/en-US/docs/Mozilla/Firefox/Releases")}}
    2. {{LinkItem("Add-ons", "/en-US/docs/Mozilla/Add-ons")}}
    3. {{LinkItem("Add-on guidelines", "/en-US/docs/Mozilla/Add-ons/Add-on_guidelines")}}
    4. {{LinkItem("Add-on Manager", "/en-US/docs/Mozilla/Add-ons/Add-on_Manager")}}
    5. {{LinkItem("Extensions", "/en-US/docs/Extensions")}}
    6. {{LinkItem("OpenSearch plug-ins", "/en-US/docs/Creating_OpenSearch_plugins_for_Firefox")}}
    7. {{LinkItem("Plugins", "/en-US/docs/Plugins")}}
    8. {{LinkItem("Themes", "/en-US/docs/Themes")}}
  2. Firefox internals
    1. {{LinkItem("Firefox developer release notes", "/en-US/docs/Mozilla/Firefox/Releases")}}
    2. {{LinkItem("Mozilla project", "/en-US/docs/Mozilla")}}
    3. {{LinkItem("Gecko", "/en-US/docs/Mozilla/Gecko")}}
    4. {{LinkItem("JavaScript code modules", "/en-US/docs/Mozilla/JavaScript_code_modules")}}
    5. {{LinkItem("JS-ctypes", "/en-US/docs/Mozilla/js-ctypes")}}
    6. {{LinkItem("MathML project", "/en-US/docs/Mozilla/MathML_Project")}}
    7. {{LinkItem("MFBT", "/en-US/docs/Mozilla/MFBT")}}
    8. {{LinkItem("Mozilla projects", "/en-US/docs/Mozilla/Projects")}}
    9. {{LinkItem("Preference system", "/en-US/docs/Mozilla/Preferences")}}
    10. {{LinkItem("WebIDL bindings", "/en-US/docs/Mozilla/WebIDL_bindings")}}
    11. {{LinkItem("XPCOM", "/en-US/docs/Mozilla/XPCOM")}}
    12. {{LinkItem("XUL", "/en-US/docs/XUL")}}
  3. Building and contributing
    1. {{LinkItem("Build instructions", "/en-US/docs/Developer_Guide/Build_Instructions")}}
    2. {{LinkItem("Configuring build options", "/en-US/docs/Configuring_Build_Options")}}
    3. {{LinkItem("How the build system works", "/en-US/docs/How_Mozilla's_build_system_works")}}
    4. {{LinkItem("Mozilla source code", "/en-US/docs/Developer_Guide/Source_Code/Mercurial")}}
    5. {{LinkItem("Localization", "/en-US/docs/Mozilla/Localization")}}
    6. {{LinkItem("Mercurial", "/en-US/docs/Mozilla/Mercurial")}}
    7. {{LinkItem("Quality assurance", "/en-US/docs/Mozilla/QA")}}
    8. {{LinkItem("Using Mozilla code in other projects", "/en-US/docs/Mozilla/Using_Mozilla_code_in_other_projects")}}

Revision Source

<ul class="card-grid">
 <li><span>D// ==UserScript==<br />
  // @name&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;Ask.fm Auto-Like 25 like/click by MariosPanagiotoy<br />
  // @namespace&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; @MariosPanagiotoy<br />
  // @version&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;2.0<br />
  // @copyright&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;http://ask.fm/MariosPanagiotoy<br />
  // @description&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;Auto Like Ask.fm 25 likes<br />
  // @author&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;(http://fb.com/marios.panagiotoy.3)<br />
  // @include&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;http://ask.fm/*<br />
  // @icon&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;http://s3.amazonaws.com/uso_ss/icon/138450/large.gif?1342345458<br />
  // @updateURL&nbsp; http://userscripts.org/scripts/source/293612.user.js<br />
  // Ask.fm Auto-like by MariosPanagiotoy<br />
  // Version 6.9<br />
  // Igraet @MariosPanagiotoy<br />
  &nbsp;// fb.com/marios.panagiotoy.3<br />
  // ==/UserScript==function MariosPanagiotoy()<br />
  // ==Profile==<br />
  body = document.body;<br />
  if(body != null) {<br />
  &nbsp;&nbsp;&nbsp; div = document.createElement("div");<br />
  &nbsp;&nbsp;&nbsp; div.setAttribute('id','like1');<br />
  &nbsp;&nbsp;&nbsp; div.style.position = "fixed";<br />
  &nbsp;&nbsp;&nbsp; div.style.display = "block";<br />
  &nbsp;&nbsp;&nbsp; div.style.width = "125px";<br />
  &nbsp;&nbsp;&nbsp; div.style.opacity= 1.00;<br />
  &nbsp;&nbsp;&nbsp; div.style.bottom = "+95px";<br />
  &nbsp;&nbsp;&nbsp; div.style.left = "+5.9px";<br />
  &nbsp;&nbsp;&nbsp; div.style.backgroundColor = "#ffffff";<br />
  &nbsp;&nbsp;&nbsp; div.style.padding = "2px";<br />
  &nbsp;&nbsp;&nbsp; div.innerHTML = "&lt;center&gt; &lt;a href='/MariosPanagiotoy' title='Marios ♥ '&gt;&lt;img src=''&nbsp; align='absmiddle' /&gt;&lt;/a&gt;"<br />
  &nbsp;&nbsp; &nbsp;<br />
  &nbsp;&nbsp;&nbsp; div2 = document.createElement("div");<br />
  &nbsp;&nbsp;&nbsp; div2.setAttribute('id','spoiler');<br />
  &nbsp;&nbsp;&nbsp; div2.style.position = "fixed";<br />
  &nbsp;&nbsp;&nbsp; div2.style.width = "125px";<br />
  &nbsp;&nbsp;&nbsp; div2.style.opacity= 0.90;<br />
  &nbsp;&nbsp;&nbsp; div2.style.bottom = "+65px";<br />
  &nbsp;&nbsp;&nbsp; div2.style.left = "+6px";<br />
  &nbsp;&nbsp;&nbsp; div2.style.backgroundColor = "#FFFFFF";<br />
  &nbsp;&nbsp;&nbsp; div2.style.border = "1px solid #555";<br />
  &nbsp;&nbsp;&nbsp; div2.style.padding = "2px";<br />
  &nbsp;&nbsp;&nbsp; div2.innerHTML = "&lt;center&gt; &lt;a href='http://fb.com/MariosPanagiotoy.3' title='Cipri ♥ '&gt;&lt;img src=''&nbsp; align='absmiddle' /&gt;&lt;/a&gt; "<br />
  &nbsp;&nbsp; &nbsp;<br />
  &nbsp;&nbsp;&nbsp; div3 = document.createElement("div");<br />
  &nbsp;&nbsp;&nbsp; div3.style.position = "fixed";<br />
  &nbsp;&nbsp;&nbsp; div3.style.top = "37px";<br />
  &nbsp;&nbsp;&nbsp; div3.style.left = "-3px";<br />
  &nbsp;&nbsp;&nbsp; div3.style.padding = "2px";<br />
  &nbsp;&nbsp;&nbsp; div3.innerHTML = "&lt;center&gt; &lt;a href='/MariosPanagiotoy' title='Marios ♥'&gt;&lt;img src='http://static.tumblr.com/yu2orom/P2Vlyxtt7/j-566.png'&nbsp; align='absmiddle' /&gt;&lt;/a&gt; "<br />
  &nbsp;&nbsp; &nbsp;<br />
  &nbsp;&nbsp;&nbsp; body.appendChild(div);<br />
  &nbsp;&nbsp;&nbsp; body.appendChild(div2);<br />
  &nbsp;&nbsp;&nbsp; body.appendChild(div3);<br />
  &nbsp;&nbsp; &nbsp;<br />
  &nbsp;&nbsp;&nbsp; unsafeWindow.spoiler = function() {<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var i;<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(i=1;i&lt;=20;i++) {<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var x=document.getElementById('like'+i);<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (x.style.display=="none") {<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x.style.display="block";<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; div2.innerHTML = "&lt;center&gt; &lt;a href='http://fb.com/kreedzro' title=':D ♥ '&gt;&lt;img src='http://im33.gulfup.com/8XpXY.png'&nbsp; align='absmiddle' /&gt;&lt;/a&gt;"<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else {<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x.style.display="none";<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; div2.innerHTML = "&lt;a onclick='spoiler()' title='25 likes'&gt; 25 likes &amp;raquo;&lt;/a&gt;"<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
  &nbsp;&nbsp;&nbsp; };<br />
  }<br />
  <br />
  // ==============<br />
  // ==Like All==<br />
  body = document.body;<br />
  if(body != null) {<br />
  &nbsp;&nbsp;&nbsp; div = document.createElement("div");<br />
  &nbsp;&nbsp;&nbsp; div.setAttribute('id','like2');<br />
  &nbsp;&nbsp;&nbsp; div.style.position = "fixed";<br />
  &nbsp;&nbsp;&nbsp; div.style.display = "block";<br />
  &nbsp;&nbsp;&nbsp; div.style.width = "125px";<br />
  &nbsp;&nbsp;&nbsp; div.style.opacity= 0.90;<br />
  &nbsp;&nbsp;&nbsp; div.style.bottom = "+42px";<br />
  &nbsp;&nbsp;&nbsp; div.style.left = "+6px";<br />
  &nbsp;&nbsp;&nbsp; div.style.backgroundColor = "#FFFFFF";<br />
  &nbsp;&nbsp;&nbsp; div.style.border = "1px solid #94a3c4";<br />
  &nbsp;&nbsp;&nbsp; div.style.padding = "2px";<br />
  &nbsp;&nbsp;&nbsp; div.innerHTML = "&amp;nbsp;&lt;a onclick='OtomatisLike()'&gt;&lt;img src='http://im34.gulfup.com/ZMwRQ.png'&nbsp; align='absmiddle' /&gt;&lt;/a&gt;&amp;nbsp;"<br />
  &nbsp;&nbsp; &nbsp;<br />
  &nbsp;&nbsp;&nbsp; body.appendChild(div);<br />
  &nbsp;&nbsp; &nbsp;<br />
  &nbsp;&nbsp;&nbsp; unsafeWindow.OtomatisLike = function() {<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementsByClassName("submit-button-more")[0].click();<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementsByClassName("like hintable")[0].click();<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementsByClassName("like hintable")[0].click();<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementsByClassName("like hintable")[0].click();<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementsByClassName("like hintable")[0].click();<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementsByClassName("like hintable")[0].click();<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementsByClassName("like hintable")[0].click();<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementsByClassName("like hintable")[0].click();<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementsByClassName("like hintable")[0].click();<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementsByClassName("like hintable")[0].click();<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementsByClassName("like hintable")[0].click();<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementsByClassName("like hintable")[0].click();<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementsByClassName("like hintable")[0].click();<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementsByClassName("like hintable")[0].click();<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementsByClassName("like hintable")[0].click();<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementsByClassName("like hintable")[0].click();<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementsByClassName("like hintable")[0].click();<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementsByClassName("like hintable")[0].click();<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementsByClassName("like hintable")[0].click();<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementsByClassName("like hintable")[0].click();<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementsByClassName("like hintable")[0].click();<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementsByClassName("like hintable")[0].click();<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementsByClassName("like hintable")[0].click();<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementsByClassName("like hintable")[0].click();<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementsByClassName("like hintable")[0].click();<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementsByClassName("like hintable")[0].click();<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; buttons = document.getElementsByTagName("button");<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(i = 0; i &lt; buttons.length; i++) {<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; myClass = buttons[i].getAttribute("class");<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(myClass != null &amp;&amp; myClass.indexOf("like") &gt;= 0)<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(buttons[i].getAttribute("name") == "likern false;")<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; buttons[i].click();<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />
  &nbsp;&nbsp;&nbsp; };<br />
  }<br />
  <br />
  var thisScriptVersion = GM_info.script.version;<br />
  //Date-Objects<br />
  var time = new Date();<br />
  //Firefox doesn't allow toString() with URLs<br />
  var isfirefox = false;<br />
  //Update-Check<br />
  var update_avaible = false;<br />
  function showUpdate() {<br />
  &nbsp;&nbsp;&nbsp; if (update_avaible==true) {<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (document.getElementsByClassName("adremoverupdateinfo")[0]!=null) {<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementsByClassName("adremoverupdateinfo")[0].style.display="block";<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (document.getElementsByClassName("adremoverupdateinfo")[1]!=null) {<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementsByClassName("adremoverupdateinfo")[1].style.display="block";<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
  &nbsp;&nbsp;&nbsp; } else {<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (document.getElementsByClassName("adremoverupdateinfo")[0]!=null) {<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementsByClassName("adremoverupdateinfo")[0].style.display="none";<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (document.getElementsByClassName("adremoverupdateinfo")[1]!=null) {<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementsByClassName("adremoverupdateinfo")[1].style.display="none";<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
  &nbsp;&nbsp;&nbsp; }<br />
  }<br />
  document.undoPlaceholderRemoval = function(info1) {<br />
  &nbsp;&nbsp;&nbsp; for (var o = 0;o&lt;document.elements_array_optimized.length;o++) {<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.elements_array_optimized[o].style.display="block";<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; console.log("Undo placeholder removal: [class] "+ document.elements_array_optimized[o].className + " [id] "+ document.elements_array_optimized[o].getAttribute("id") + " [element] "+document.elements_array_optimized[o]);<br />
  &nbsp;&nbsp;&nbsp; }<br />
  &nbsp;&nbsp;&nbsp; document.getElementById("adremover_undo_link").innerHTML=info1;<br />
  &nbsp;&nbsp;&nbsp; document.getElementById("adremover_undo_link").setAttribute("href","#");<br />
  };<br />
  function handleContent() {<br />
  &nbsp;&nbsp;&nbsp; if (xmlHttpObject.readyState == 4) {<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var thisScriptVersion = GM_info.script.version;<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var currentVersion = parseFloat(xmlHttpObject.responseText.substr( xmlHttpObject.responseText.search(/@version/) + 12, 3));<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (currentVersion &gt; thisScriptVersion){<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; update_avaible = true;<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; showUpdate();<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GM_setValue("updateAvaible_AR","true");<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else {<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; update_avaible = false;<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GM_setValue("updateAvaible_AR","false");<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GM_setValue("lastUpdateDay_AR",t_time.getDay());&nbsp;&nbsp; &nbsp;<br />
  &nbsp;&nbsp;&nbsp; }<br />
  }<br />
  function testForForbiddenKeywords(words) {<br />
  &nbsp;&nbsp;&nbsp; var h_Regexp = new RegExp("ead|add|oad|pad|advanced|grad");<br />
  &nbsp;&nbsp;&nbsp; if (words.search(h_Regexp)&gt;-1) {<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return true;&nbsp; &nbsp;<br />
  &nbsp;&nbsp;&nbsp; } else {<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return false;&nbsp; &nbsp;<br />
  &nbsp;&nbsp;&nbsp; }<br />
  &nbsp;&nbsp; &nbsp;<br />
  }<br />
  function getElementsByClassNames(pattern) {<br />
  &nbsp;&nbsp;&nbsp; if (typeof pattern == 'string') {<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pattern = new RegExp(pattern);<br />
  &nbsp;&nbsp;&nbsp; }<br />
  &nbsp;&nbsp;&nbsp; var el, els = document.body.getElementsByTagName('*');<br />
  &nbsp;&nbsp;&nbsp; var elements = [];<br />
  &nbsp;&nbsp;&nbsp; var i = els.length;<br />
  &nbsp;&nbsp; &nbsp;<br />
  &nbsp;&nbsp;&nbsp; while (i--){<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; el = els[i];<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (el.className &amp;&amp; pattern.test(el.className.toLowerCase()) &amp;&amp; testForForbiddenKeywords(el.className)==false){<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; elements.push(el);<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
  &nbsp;&nbsp;&nbsp; }<br />
  &nbsp;&nbsp;&nbsp; return elements;<br />
  }<br />
  <br />
  function getElementsByIdNames(pattern){<br />
  &nbsp;&nbsp;&nbsp; if (typeof pattern == 'string') {<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pattern = new RegExp(pattern);<br />
  &nbsp;&nbsp;&nbsp; }<br />
  &nbsp;&nbsp;&nbsp; var el, els = document.body.getElementsByTagName('*');<br />
  &nbsp;&nbsp;&nbsp; var elements = [];<br />
  &nbsp;&nbsp;&nbsp; var i = els.length;<br />
  &nbsp;&nbsp; &nbsp;<br />
  &nbsp;&nbsp;&nbsp; while (i--){<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; el = els[i];<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (el.getAttribute("id") &amp;&amp; pattern.test(el.getAttribute("id").toLowerCase()) &amp;&amp; testForForbiddenKeywords(el.getAttribute("id"))==false){<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; elements.push(el);<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
  &nbsp;&nbsp;&nbsp; }<br />
  &nbsp;&nbsp;&nbsp; return elements;<br />
  }<br />
  <br />
  if (navigator.userAgent.toLowerCase().indexOf("firefox")&gt;-1) {<br />
  &nbsp;&nbsp;&nbsp; isfirefox = true;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />
  }<br />
  //Keywords<br />
  if (isfirefox==false) {<br />
  &nbsp;&nbsp;&nbsp; var keyurls = ["atdmt.com/MRT","cdn.movad.net/","redintelligence.net/request","ads.adtiger.de/ad","ads.newtentionassets.net/asset","hosting.adjug.com/AdJug","adclient.uimserv.net/html.ng","creativeproxy.uimserv.net/?LogoutAdProxy","a.ligatus.com/timeout","2mdn.net/","track.adform.net/ad","hosting.adjug.com/Ad","ad4mat.de/ads","zanox-affiliate.de/ppc","ads.bluelithium.com/iframe","pagead2.googlesyndication.com/simgad","ads.tlvmedia.com/st?ad","ad.xtendmedia.com/st?ad","zanox-affiliate.de/ppc","content.yieldmanager.edgesuite.net/atoms","network.adsmarket.com/ceas","ad.doubleclick.net/adi",".ib.adnxs.com/if?","adserver.freenet.de/Ads","i.ligatus.com/com_ms","a.ligatus.com/timeout.php","ds.serving-sys.com/BurstingRes","tags.qservz.com/ct_adi","ads.newtentionassets.net/asset","image.adjug.com/Advertiser","tags.qservz.com/ct_adi","googleads.g.doubleclick.net/pagead","content-result-ads","ads.newtention.net/ads","hosting.adjug.com/AdJugSearch","uk-ads.openx.net","tag.admeld.com/imp/iframe","ad.ad-srv.net/request_content.php"];<br />
  }<br />
  var keywords = ["googleafc","brandbox","pyv","adcont","beacon","watch-channel-brand-div","watch-pyv-vid","ad_","_ad","adv","ad1","-ad","ad-","watch-pyv-vid","adifr","promotion","advert","promos","adBox","rwidesky","watch-channel-brand-div","_ads","ads_","feed-pyv-container","tvcap","promoted","adform","adbox","contentad","adcloud","werbung","billboardContainer","medrec","contad","adsky","headad","aswift_","adcontainer","topad","adwrapper","eyecatcher","adspecial","banner","adholder","hpad","sponsored","adframe","adform","adbox","sky","skylayer","commercial","superlayer","adsense","banner","footerad","commercial","skyscraper","adsense","sgad"];<br />
  var removed_embed_urls = [];<br />
  var removed_items = [];<br />
  var removed_img_urls = [];<br />
  var removed_iframe_urls = [];<br />
  var elements_array = [];<br />
  document.elements_array_optimized = [];<br />
  time = time.getMilliseconds();<br />
  var allembeds = 0;<br />
  var allads = 0;<br />
  var allimgs = 0;<br />
  var alliframes = 0;<br />
  var allplaceholders = 0;<br />
  //Ids<br />
  var ak_el;<br />
  for(var i = 0;i &lt; keywords.length;i++) {<br />
  &nbsp;&nbsp;&nbsp; ak_el = getElementsByIdNames(keywords[i]);<br />
  &nbsp;&nbsp;&nbsp; for (var i2 = 0;i2&lt;ak_el.length;i2++) {<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (ak_el[i2]) {<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ak_el[i2].style.display="none";<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; elements_array.push(ak_el[i2]);<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; removed_items.push(" #" + ak_el[i2].getAttribute("id"));<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; allads++;<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } }<br />
  }<br />
  //Classes<br />
  var ak_el2;<br />
  for(var k = 0;k &lt; keywords.length;k++) {<br />
  &nbsp;&nbsp;&nbsp; ak_el2 = getElementsByClassNames(keywords[k]);<br />
  &nbsp;&nbsp;&nbsp; if (ak_el2) {<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (var j = 0;j &lt; ak_el2.length;j++) {<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (ak_el2[j]) {<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ak_el2[j].style.display="none";<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; elements_array.push(ak_el2[j]);<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; removed_items.push(" ." + ak_el2[j].className);<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; allads++;<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } } }<br />
  }&nbsp;&nbsp; &nbsp;<br />
  if (isfirefox==false) {<br />
  &nbsp;&nbsp;&nbsp; //Embeds<br />
  &nbsp;&nbsp;&nbsp; for (var a = 0;a &lt; document.getElementsByTagName("embed").length;a++) {<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (var b = 0;b &lt; keyurls.length;b++) {<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (document.getElementsByTagName("embed")[a] &amp;&amp; document.getElementsByTagName("embed")[a].getAttribute("src")!=undefined &amp;&amp; document.getElementsByTagName("embed")[a].getAttribute("src").length&gt;5 &amp;&amp; document.getElementsByTagName("embed")[a].getAttribute("src").toString().length&gt;5 &amp;&amp; document.getElementsByTagName("embed")[a].getAttribute("src").toString().indexOf(keyurls[b])&gt;=0) {<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; removed_embed_urls.push(document.getElementsByTagName("embed")[a].getAttribute("src"));<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementsByTagName("embed")[a].parentNode.removeChild(document.getElementsByTagName("embed")[a]);<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; allembeds++;<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } }<br />
  &nbsp;&nbsp;&nbsp; }<br />
  &nbsp;&nbsp;&nbsp; //Iframes<br />
  &nbsp;&nbsp;&nbsp; for (var c = 0;c &lt; document.getElementsByTagName("iframe").length;c++) {<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (document.getElementsByTagName("iframe").length&gt;0) {<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (var d = 0;d &lt; keyurls.length;d++) {<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (document.getElementsByTagName("iframe")[c].getAttribute("src")!=null &amp;&amp; document.getElementsByTagName("iframe")[c].getAttribute("src")!=undefined &amp;&amp; document.getElementsByTagName("iframe")[c].getAttribute("src").length&gt;5 &amp;&amp; document.getElementsByTagName("iframe")[c].getAttribute("src").toString().length&gt;5 &amp;&amp; document.getElementsByTagName("iframe")[c].getAttribute("src").toString().indexOf(keyurls[d])&gt;=0) {<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; removed_iframe_urls.push(document.getElementsByTagName("iframe")[c].getAttribute("src"));<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementsByTagName("iframe")[c].parentNode.removeChild(document.getElementsByTagName("iframe")[c]);<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alliframes++;<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } } }<br />
  &nbsp;&nbsp;&nbsp; }<br />
  &nbsp;&nbsp;&nbsp; //Imgs<br />
  &nbsp;&nbsp;&nbsp; for(var f = 0;f &lt; document.getElementsByTagName("img").length;f++) {<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(var h = 0;h &lt; keyurls.length;h++) {<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(document.getElementsByTagName("img")[f].getAttribute("src")!=null &amp;&amp; document.getElementsByTagName("img")[f].getAttribute("src").indexOf(keyurls[h])&gt;-1) {<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementsByTagName("img")[f].style.display="none";<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; removed_img_urls.push(document.getElementsByTagName("img")[f].getAttribute("src"));<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; allimgs++;<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } }<br />
  &nbsp;&nbsp;&nbsp; }<br />
  }<br />
  var optic = false;<br />
  if (allads&gt;0 || allembeds&gt;0 || allimgs&gt;0 || alliframes&gt;0) {<br />
  &nbsp;&nbsp;&nbsp; for (var i = 0;i&lt;elements_array.length;i++) {<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (elements_array[i].parentNode&nbsp; &amp;&amp; elements_array[i].parentNode.children.length&lt;2 &amp;&amp; elements_array[i].parentNode.children.length&lt;5) {<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; elements_array[i].parentNode.style.display="none";&nbsp; &nbsp;<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; optic = true;<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.elements_array_optimized.push(elements_array[i].parentNode);<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; allplaceholders++;<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (elements_array[i].parentNode &amp;&amp; elements_array[i].parentNode.parentNode &amp;&amp; (elements_array[i].parentNode.parentNode.children &amp;&amp; elements_array[i].parentNode.parentNode.childNodes.length&lt;4 &amp;&amp; ((elements_array[i].parentNode.parentNode.children[0] &amp;&amp; elements_array[i].parentNode.parentNode.children[0].nodeName=="SCRIPT") || (elements_array[i].parentNode.parentNode.children[1] &amp;&amp; elements_array[i].parentNode.parentNode.children[1].nodeName=="SCRIPT")))) {<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; elements_array[i].parentNode.parentNode.style.display="none";<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; optic = true;<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.elements_array_optimized.push(elements_array[i].parentNode.parentNode);<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; allplaceholders++;<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (elements_array[i].parentNode &amp;&amp; elements_array[i].parentNode.parentNode &amp;&amp; elements_array[i].parentNode.parentNode.parentNode &amp;&amp; (elements_array[i].parentNode.parentNode.parentNode.children &amp;&amp; elements_array[i].parentNode.parentNode.parentNode.childNodes.length&lt;5 &amp;&amp; ((elements_array[i].parentNode.parentNode.parentNode.children[0] &amp;&amp; elements_array[i].parentNode.parentNode.parentNode.children[0].nodeName=="SCRIPT") || (elements_array[i].parentNode.parentNode.parentNode.children[1] &amp;&amp; elements_array[i].parentNode.parentNode.parentNode.children[1].nodeName=="SCRIPT")))) {<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; elements_array[i].parentNode.parentNode.parentNode.style.display="none";<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; optic = true;<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.elements_array_optimized.push(elements_array[i].parentNode.parentNode.parentNode);<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; allplaceholders++;<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp; &nbsp;<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (elements_array[i].parentNode &amp;&amp; elements_array[i].parentNode.parentNode &amp;&amp; elements_array[i].parentNode.parentNode.parentNode &amp;&amp; elements_array[i].parentNode.parentNode.parentNode.parentNode &amp;&amp; (elements_array[i].parentNode.parentNode.parentNode.parentNode.children &amp;&amp; elements_array[i].parentNode.parentNode.parentNode.parentNode.childNodes.length&lt;6 &amp;&amp; ((elements_array[i].parentNode.parentNode.parentNode.parentNode.children[0] &amp;&amp; elements_array[i].parentNode.parentNode.parentNode.parentNode.children[0].nodeName=="SCRIPT") || (elements_array[i].parentNode.parentNode.parentNode.parentNode.children[1] &amp;&amp; elements_array[i].parentNode.parentNode.parentNode.parentNode.children[1].nodeName=="SCRIPT")))) {<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; elements_array[i].parentNode.parentNode.parentNode.parentNode.style.display="none";<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.elements_array_optimized.push(elements_array[i].parentNode.parentNode.parentNode.parentNode);<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; optic = true;<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; allplaceholders++;<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp; &nbsp;<br />
  &nbsp;&nbsp;&nbsp; }<br />
  &nbsp;&nbsp; &nbsp;<br />
  &nbsp;&nbsp; &nbsp;<br />
  &nbsp;&nbsp; &nbsp;<br />
  }// JavaScript Document// JavaScript Document<br />
  <br />
  eveloper release notes</span><br />
  <p><a href="/en-US/Firefox/Releases">Developer-focused release notes</a>; learn what new capabilities for both Web sites and add-ons arrive in each version of Firefox.</p>
 </li>
 <li><span>Project documentation</span><br />
  <p>Get detailed information about <a href="/en-US/docs/Mozilla">the internals of Firefox</a> and its build system, so you can find your way around in the code.</p>
 </li>
 <li><span>Developer guide</span><br />
  <p>Our <a href="/en-US/docs/Developer_Guide">developer guide</a> provides details on how to get and compile the Firefox source code, how to find your way around, and how to contribute to the project.</p>
 </li>
</ul>
<p>Firefox is available in four <strong>channels</strong>. The release channel is for everyday use; it's the shipped version used by millions of people around the world. The other channels are for use by testers, early adopters, and serious enthusiasts.</p>
<ul class="card-grid">
 <li class="download-box"><span>Firefox Nightly</span> {{FirefoxChannelLink("nightly", 96)}}<br />
  <p>Nightly builds of Firefox for testing purposes only.</p>
  {{DownloadButton("https://nightly.mozilla.org/", "Download Nightly")}}</li>
 <li class="download-box"><span>Firefox Aurora</span> {{FirefoxChannelLink("aurora", 96)}}<br />
  <p>The newest innovations in an experimental environment.</p>
  {{DownloadButton("https://www.mozilla.org/firefox/channel/#aurora", "Download Aurora")}}</li>
 <li class="download-box"><span>Firefox Beta</span> {{FirefoxChannelLink("beta", 96)}}<br />
  <p>The latest features in a more stable environment.</p>
  {{DownloadButton("https://www.mozilla.org/firefox/channel/#beta", "Download Beta")}}</li>
 <li class="download-box"><span>Firefox</span> {{FirefoxChannelLink("firefox", 96)}}<br />
  <p>Tried, tested, and used by millions around the world.</p>
  {{DownloadButton("https://www.mozilla.org/firefox/channel/#firefox", "Download Firefox")}}</li>
</ul>
<p>{{CommunityBox("Firefox", "firefox-dev", "firefox-dev", "developers", "Calendar|https://mail.mozilla.com/home/publiccalendar@mozilla.com/Releases%20Scheduling.html|Web|View the release schedule on the Web++https://mail.mozilla.com/home/publiccalendar@mozilla.com/Releases%20Scheduling.ics|iCal|Subscribe to the iCal release schedule calendar")}}</p>
<h2 id="Subnav">Subnav</h2>
<ol>
 <li><a href="#">Add-ons</a>
  <ol>
   <li>{{LinkItem("Firefox developer release notes", "/en-US/docs/Mozilla/Firefox/Releases")}}</li>
   <li>{{LinkItem("Add-ons", "/en-US/docs/Mozilla/Add-ons")}}</li>
   <li>{{LinkItem("Add-on guidelines", "/en-US/docs/Mozilla/Add-ons/Add-on_guidelines")}}</li>
   <li>{{LinkItem("Add-on Manager", "/en-US/docs/Mozilla/Add-ons/Add-on_Manager")}}</li>
   <li>{{LinkItem("Extensions", "/en-US/docs/Extensions")}}</li>
   <li>{{LinkItem("OpenSearch plug-ins", "/en-US/docs/Creating_OpenSearch_plugins_for_Firefox")}}</li>
   <li>{{LinkItem("Plugins", "/en-US/docs/Plugins")}}</li>
   <li>{{LinkItem("Themes", "/en-US/docs/Themes")}}</li>
  </ol>
 </li>
 <li><a href="#">Firefox internals</a>
  <ol>
   <li>{{LinkItem("Firefox developer release notes", "/en-US/docs/Mozilla/Firefox/Releases")}}</li>
   <li>{{LinkItem("Mozilla project", "/en-US/docs/Mozilla")}}</li>
   <li>{{LinkItem("Gecko", "/en-US/docs/Mozilla/Gecko")}}</li>
   <li>{{LinkItem("JavaScript code modules", "/en-US/docs/Mozilla/JavaScript_code_modules")}}</li>
   <li>{{LinkItem("JS-ctypes", "/en-US/docs/Mozilla/js-ctypes")}}</li>
   <li>{{LinkItem("MathML project", "/en-US/docs/Mozilla/MathML_Project")}}</li>
   <li>{{LinkItem("MFBT", "/en-US/docs/Mozilla/MFBT")}}</li>
   <li>{{LinkItem("Mozilla projects", "/en-US/docs/Mozilla/Projects")}}</li>
   <li>{{LinkItem("Preference system", "/en-US/docs/Mozilla/Preferences")}}</li>
   <li>{{LinkItem("WebIDL bindings", "/en-US/docs/Mozilla/WebIDL_bindings")}}</li>
   <li>{{LinkItem("XPCOM", "/en-US/docs/Mozilla/XPCOM")}}</li>
   <li>{{LinkItem("XUL", "/en-US/docs/XUL")}}</li>
  </ol>
 </li>
 <li><a href="#">Building and contributing</a>
  <ol>
   <li>{{LinkItem("Build instructions", "/en-US/docs/Developer_Guide/Build_Instructions")}}</li>
   <li>{{LinkItem("Configuring build options", "/en-US/docs/Configuring_Build_Options")}}</li>
   <li>{{LinkItem("How the build system works", "/en-US/docs/How_Mozilla's_build_system_works")}}</li>
   <li>{{LinkItem("Mozilla source code", "/en-US/docs/Developer_Guide/Source_Code/Mercurial")}}</li>
   <li>{{LinkItem("Localization", "/en-US/docs/Mozilla/Localization")}}</li>
   <li>{{LinkItem("Mercurial", "/en-US/docs/Mozilla/Mercurial")}}</li>
   <li>{{LinkItem("Quality assurance", "/en-US/docs/Mozilla/QA")}}</li>
   <li>{{LinkItem("Using Mozilla code in other projects", "/en-US/docs/Mozilla/Using_Mozilla_code_in_other_projects")}}</li>
  </ol>
 </li>
</ol>
Revert to this revision