display=light propagation again
[platal.git] / htdocs / javascript / xorg.js
index c89dd72..0ce3169 100644 (file)
@@ -42,7 +42,16 @@ function getNow() {
 }
 
 // }}}
-// {{{ Firefox
+// {{{ Search Engine
+
+function canAddSearchEngine()
+{
+  if (((typeof window.sidebar == "object") && (typeof window.sidebar.addSearchEngine == "function"))
+      || ((typeof window.sidebar == "object") && (typeof window.sidebar.addSearchEngine == "function"))) {
+      return true;
+  }
+  return false;
+}
 
 function addSearchEngine()
 {
@@ -116,6 +125,23 @@ function dynpostkv(action, k, v)
 }
 
 // }}}
+// {{{ function RegExp.escape()
+
+RegExp.escape = function(text) {
+  if (!arguments.callee.sRE) {
+    var specials = [
+      '/', '.', '*', '+', '?', '|',
+      '(', ')', '[', ']', '{', '}',
+      '\\', '^' , '$'
+    ];
+    arguments.callee.sRE = new RegExp(
+      '(\\' + specials.join('|\\') + ')', 'g'
+    );
+  }
+  return text.replace(arguments.callee.sRE, '\\$1');
+}
+
+// }}}
 
 /***************************************************************************
  * POPUP THINGS
@@ -133,17 +159,25 @@ function popWin(theNode,w,h) {
 
 function auto_links() {
     nodes = document.getElementsByTagName('a');
-    fqdn = document.URL;
-    fqdn = fqdn.replace(/^https?:\/\/([^\/]*)\/.*$/,'$1');
+    url  = document.URL;
+    fqdn = url.replace(/^https?:\/\/([^\/]*)\/.*$/,'$1');
+    light = (url.indexOf('display=light') > url.indexOf('?'));
     for(var i=0; i<nodes.length; i++) {
        node = nodes[i];
        if(!node.href || node.className == 'xdx' || node.href.indexOf('mailto:') > -1 || node.href.indexOf('javascript:')>-1) continue;
-       if(node.href.indexOf(fqdn)<0 || node.className == 'popup') {
+       if (node.href.indexOf(fqdn)<0 || node.className == 'popup') {
            node.onclick = function () { window.open(this.href); return false; };
        }
+        if (node.href.indexOf(fqdn) > -1 && light) {
+            node.href = node.href.replace(/([^\#\?]*)\??([^\#]*)(\#.*)?/,
+                                          "$1?display=light&$2$3");
+        }
        if(node.className == 'popup2') {
         node.onclick = function () { popWin(this,840,600); return false; };
        }
+    if(node.className == 'popup3') {
+        node.onclick = function () { popWin(this, 640, 800); return false; };
+    }
        if(matches = (/^popup_([0-9]*)x([0-9]*)$/).exec(node.className)) {
            var w = matches[1], h = matches[2];
            node.onclick = function () { popWin(this,w,h); return false; };