Minor update on poliqarp specific autocompletion
diff --git a/public/hint.js b/public/hint.js
index 6f20c67..f21798a 100644
--- a/public/hint.js
+++ b/public/hint.js
@@ -8,12 +8,14 @@
 var Hint = function (param) {
   var foundryRegex = new RegExp("(?:^|[^a-zA-Z0-9])([-a-zA-Z0-9]+?)\/(?:([^=]+?)=)?$");
 
-  var search = document.getElementById(param["ref"]);
-  var mirror = document.createElement("div");
-  var hint = document.createElement("ul");
+  var search =   document.getElementById(param["ref"]);
+  var qlField =  document.getElementById(param["qlRef"]);
+  var mirror =   document.createElement("div");
+  var hint =     document.createElement("ul");
   var hintSize = param["hintSize"] ? param["hintSize"] : 10;
-  var hints = param["hints"];
+  var hints =    param["hints"];
   var that = this;
+  var ql;
 
   // Build the mirror element
   // <div id="searchMirror"><span></span><ul></ul></div>
@@ -56,6 +58,8 @@
       fontSize        = searchStyle.getPropertyValue("font-size");
       fontFamily      = searchStyle.getPropertyValue("font-family");
     };
+
+    qlSelect();
   };
 
   // Hide hint table
@@ -146,12 +150,14 @@
     var begin = value.substring(0, start);
     var end = value.substring(start, value.length);
     search.value = begin + action + end;
-    search.selectionStart = search.selectionEnd = (begin + action).length;
+    search.selectionStart = (begin + action).length
+    search.selectionEnd = search.selectionStart;
 
     this.hide();
 
     // Check for new changes
-    mirror.firstChild.innerHTML = begin + action;
+    mirror.firstChild.textContent = begin + action;
+
     if (foundryRegex.exec(begin + action))
       this.show(RegExp.$1 + (RegExp.$2 ? '/' + RegExp.$2 : ''));
   };
@@ -161,16 +167,23 @@
 
     if (e.key === '/' || e.key === '=') {
       var start = el.selectionStart;
-      mirror.firstChild.innerHTML = el.value.substring(0, start);
+      mirror.firstChild.textContent = el.value.substring(0, start);
       var sub = el.value.substring(start - 128 >= 0 ? start - 128 : 0, start);
 
       if (foundryRegex.exec(sub))
 	that.show(RegExp.$1 + (RegExp.$2 ? '/' + RegExp.$2 : ''));
     }
+    else if (ql === 'poliqarp' && (e.key === '[' || (e.key === '<' && !e.shiftKey))) {
+      mirror.firstChild.textContent = el.value.substring(0, el.selectionStart);
+      that.show("-foundries");
+    }
     else if (e.key !== 'Shift' &&
              e.key !== 'Up'    &&
              e.key !== 'Down'  &&
-             e.key !== 'Enter') {
+             e.key !== 'Enter' &&
+	     e.key !== 'Alt'   &&
+	     e.key !== 'AltGraph' &&
+	     e.key !== 'CapsLock') {
       that.hide();
     };
   };
@@ -193,8 +206,19 @@
     };
   };
 
+  function qlSelect () {
+    var nodes = qlField.childNodes;
+    for (var i = 0; i < nodes.length; i++) {
+      if (nodes[i].selected) {
+        ql = nodes[i].value;
+        break;
+      };
+    };
+  };
+
   // Initialize style
   init();
-  search.addEventListener("keyup", changed, false);
-  search.addEventListener("keypress", select, false);
+  search.addEventListener("keyup",    changed,  false);
+  search.addEventListener("keypress", select,   false);
+  qlField.addEventListener('change',  qlSelect, false);
 };