git-svn-id: svn://euphorik.ch/pompage@45 02bbb61a-6d21-0410-aba0-cb053bdfd66a
[pompage.git] / doc / webdeveloper / disable.js
diff --git a/doc/webdeveloper/disable.js b/doc/webdeveloper/disable.js
new file mode 100644 (file)
index 0000000..db07f6a
--- /dev/null
@@ -0,0 +1,185 @@
+// Toggles the cache
+function webdeveloper_toggleCache(element)
+{
+    webdeveloper_disablePreference(element, "browser.cache.disk.enable");
+    webdeveloper_disablePreference(element, "browser.cache.memory.enable");
+}
+
+// Toggles Java
+function webdeveloper_toggleJava(element)
+{
+    webdeveloper_disablePreference(element, "security.enable_java");
+}
+
+// Toggle JavaScript
+function webdeveloper_toggleJavaScript(element)
+{
+    var javaScriptButton = document.getElementById("webdeveloper-javascript-statusbar");
+
+    webdeveloper_disablePreference(element, "javascript.enabled");
+
+    // If the JavaScript button exists
+    if(javaScriptButton)
+    {
+        // If disabling JavaScript
+        if(element.getAttribute("checked"))
+        {
+            javaScriptButton.setAttribute("class", "disabled");
+            javaScriptButton.setAttribute("tooltiptext", document.getElementById("webdeveloper-string-bundle").getString("webdeveloper_javaScriptDisabledTooltip"));
+        }
+        else
+        {
+            // If the JavaScript button has a class attribute
+            if(javaScriptButton.hasAttribute("class"))
+            {
+                javaScriptButton.removeAttribute("class");
+            }
+
+            // If the JavaScript button has a tooltip text attribute
+            if(javaScriptButton.hasAttribute("tooltiptext"))
+            {
+                javaScriptButton.removeAttribute("tooltiptext");
+            }
+        }
+    }
+}
+
+// Toggles meta redirects
+function webdeveloper_toggleMetaRedirects(element)
+{
+    var allowMetaRedirects = true;
+    var browsers           = getBrowser().browsers;
+    var browserLength      = browsers.length;
+
+    // If the element is checked
+    if(element.getAttribute("checked"))
+    {
+        allowMetaRedirects = false;
+    }
+
+    // Loop through the browsers
+    for(var i = 0; i < browserLength; i++)
+    {
+        browsers[i].docShell.allowMetaRedirects = allowMetaRedirects;
+    }
+
+    webdeveloper_enablePreference(element, "webdeveloper.meta.redirects.disable");
+}
+
+// Toggles the minimum font size
+function webdeveloper_toggleMinimumFontSize(element)
+{
+    var defaultFontSize = 10;
+    var minimumFontSize = null;
+
+    // If disabling the minimum font size
+    if(element.getAttribute("checked"))
+    {
+        minimumFontSize = webdeveloper_getIntegerPreference("font.minimum-size.x-western", true);
+
+        // If the minimum font size is not set
+        if(minimumFontSize == 0)
+        {
+            minimumFontSize = defaultFontSize;
+        }
+
+        webdeveloper_deletePreference("font.minimum-size.x-western");
+        webdeveloper_setIntegerPreference("webdeveloper.font.minimum.size", minimumFontSize);
+    }
+    else
+    {
+        minimumFontSize = webdeveloper_getIntegerPreference("webdeveloper.font.minimum.size", true);
+
+        // If the minimum font size is not set
+        if(minimumFontSize == 0)
+        {
+            minimumFontSize = defaultFontSize;
+        }
+
+        webdeveloper_deletePreference("webdeveloper.font.minimum.size");
+        webdeveloper_setIntegerPreference("font.minimum-size.x-western", minimumFontSize);
+    }
+
+    BrowserReload();
+}
+
+// Toggles the page colors
+function webdeveloper_togglePageColors(element)
+{
+    webdeveloper_disablePreference(element, "browser.display.use_document_colors");
+    BrowserReload();
+}
+
+// Toggles the proxy settings
+function webdeveloper_toggleProxy(element)
+{
+    // If disabling the proxy
+    if(element.getAttribute("checked"))
+    {
+        webdeveloper_setIntegerPreference("webdeveloper.proxy.type", webdeveloper_getIntegerPreference("network.proxy.type", true));
+        webdeveloper_deletePreference("network.proxy.type");
+    }
+    else
+    {
+        webdeveloper_setIntegerPreference("network.proxy.type", webdeveloper_getIntegerPreference("webdeveloper.proxy.type", true));
+        webdeveloper_deletePreference("webdeveloper.proxy.type");
+    }
+}
+
+// Toggles referrers
+function webdeveloper_toggleReferrers(element)
+{
+    var sendReferrer = 2;
+
+    // If disabling referrers
+    if(element.getAttribute("checked"))
+    {
+        sendReferrer = 0;
+    }
+
+    webdeveloper_setIntegerPreference("network.http.sendRefererHeader", sendReferrer);
+}
+
+// Updates the disable menu
+function webdeveloper_updateDisableMenu(suffix)
+{
+    var checked = !webdeveloper_getBooleanPreference("browser.cache.disk.enable", false) && !webdeveloper_getBooleanPreference("browser.cache.memory.enable", false);
+    var menu    = document.getElementById("webdeveloper-disable-proxy-" + suffix);
+
+    webdeveloper_configureElement(document.getElementById("webdeveloper-disable-cache-" + suffix), "checked", checked);
+    webdeveloper_configureElement(document.getElementById("webdeveloper-disable-java-" + suffix), "checked", !webdeveloper_getBooleanPreference("security.enable_java", false));
+    webdeveloper_configureElement(document.getElementById("webdeveloper-disable-javascript-" + suffix), "checked", !webdeveloper_getBooleanPreference("javascript.enabled", false));
+    webdeveloper_configureElement(document.getElementById("webdeveloper-disable-meta-redirects-" + suffix), "checked", webdeveloper_getBooleanPreference("webdeveloper.meta.redirects.disable", true));
+    webdeveloper_configureElement(document.getElementById("webdeveloper-disable-minimum-font-size-" + suffix), "checked", webdeveloper_getIntegerPreference("font.minimum-size.x-western", true) == 0);
+    webdeveloper_configureElement(document.getElementById("webdeveloper-disable-page-colors-" + suffix), "checked", !webdeveloper_getBooleanPreference("browser.display.use_document_colors", false));
+    webdeveloper_configureElement(document.getElementById("webdeveloper-disable-popup-blocker-" + suffix), "checked", !webdeveloper_getBooleanPreference("dom.disable_open_during_load", false));
+
+    // If the menu is set
+    if(menu)
+    {
+        var proxyConfigured = webdeveloper_isPreferenceSet("network.proxy.type");
+        var proxyDisabled   = webdeveloper_isPreferenceSet("webdeveloper.proxy.type");
+
+        webdeveloper_configureElement(menu, "checked", !proxyConfigured && proxyDisabled);
+        webdeveloper_configureElement(menu, "disabled", !proxyConfigured && !proxyDisabled);
+    }
+
+    // If the referrer preference is set to 0
+    if(webdeveloper_getIntegerPreference("network.http.sendRefererHeader", false) == 0)
+    {
+        checked = true;
+    }
+    else
+    {
+        checked = false;
+    }
+
+    webdeveloper_configureElement(document.getElementById("webdeveloper-disable-referrers-" + suffix), "checked", checked);
+}
+
+// Updates the disable JavaScript menu
+function webdeveloper_updateDisableJavaScriptMenu(suffix)
+{
+    webdeveloper_configureElement(document.getElementById("webdeveloper-disable-all-javascript-" + suffix), "checked", !webdeveloper_getBooleanPreference("javascript.enabled", false));
+    webdeveloper_configureElement(document.getElementById("webdeveloper-disable-strict-javascript-warnings-" + suffix), "checked", !webdeveloper_getBooleanPreference("javascript.options.strict", false));
+}