").append(n.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,e||[a.responseText,b,a])}),this},n.expr.filters.animated=function(a){return n.grep(n.timers,function(b){return a===b.elem}).length};var dd=a.document.documentElement;function ed(a){return n.isWindow(a)?a:9===a.nodeType?a.defaultView||a.parentWindow:!1}n.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=n.css(a,"position"),l=n(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=n.css(a,"top"),i=n.css(a,"left"),j=("absolute"===k||"fixed"===k)&&n.inArray("auto",[f,i])>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),n.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},n.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){n.offset.setOffset(this,a,b)});var b,c,d={top:0,left:0},e=this[0],f=e&&e.ownerDocument;if(f)return b=f.documentElement,n.contains(b,e)?(typeof e.getBoundingClientRect!==L&&(d=e.getBoundingClientRect()),c=ed(f),{top:d.top+(c.pageYOffset||b.scrollTop)-(b.clientTop||0),left:d.left+(c.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}):d},position:function(){if(this[0]){var a,b,c={top:0,left:0},d=this[0];return"fixed"===n.css(d,"position")?b=d.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),n.nodeName(a[0],"html")||(c=a.offset()),c.top+=n.css(a[0],"borderTopWidth",!0),c.left+=n.css(a[0],"borderLeftWidth",!0)),{top:b.top-c.top-n.css(d,"marginTop",!0),left:b.left-c.left-n.css(d,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||dd;while(a&&!n.nodeName(a,"html")&&"static"===n.css(a,"position"))a=a.offsetParent;return a||dd})}}),n.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c=/Y/.test(b);n.fn[a]=function(d){return W(this,function(a,d,e){var f=ed(a);return void 0===e?f?b in f?f[b]:f.document.documentElement[d]:a[d]:void(f?f.scrollTo(c?n(f).scrollLeft():e,c?e:n(f).scrollTop()):a[d]=e)},a,d,arguments.length,null)}}),n.each(["top","left"],function(a,b){n.cssHooks[b]=Mb(l.pixelPosition,function(a,c){return c?(c=Kb(a,b),Ib.test(c)?n(a).position()[b]+"px":c):void 0})}),n.each({Height:"height",Width:"width"},function(a,b){n.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){n.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return W(this,function(b,c,d){var e;return n.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?n.css(b,c,g):n.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),n.fn.size=function(){return this.length},n.fn.andSelf=n.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return n});var fd=a.jQuery,gd=a.$;return n.noConflict=function(b){return a.$===n&&(a.$=gd),b&&a.jQuery===n&&(a.jQuery=fd),n},typeof b===L&&(a.jQuery=a.$=n),n});
diff --git a/options.js b/js/options.js
similarity index 100%
rename from options.js
rename to js/options.js
diff --git a/js/popup.js b/js/popup.js
new file mode 100644
index 0000000..024c2d6
--- /dev/null
+++ b/js/popup.js
@@ -0,0 +1,80 @@
+$(document).ready(function()
+{
+ var $searchbar = $("#searchbar");
+ var $searchresults = $("#searchresults");
+
+ var results = ['alpha', 'beta', 'gamma', 'delta', 'epsilon', 'zeta', 'eta',
+ 'theta', 'iota', 'kappa', 'lambda', 'mu', 'nu', 'xi', 'omicron', 'pi',
+ 'rho', 'sigma', 'tau', 'upsilon', 'phi', 'chi', 'psi', 'omega'];
+
+ updateresults(results, "");
+
+ $searchbar.on("input", function()
+ {
+ var text = $searchbar.val();
+
+ /*function validate(value, index, array)
+ {
+ var pattern = /[\w ():-]/gi;
+ var check = pattern.test(value);
+ return check;
+ }
+
+ var text = $searchbar.val();
+ var filtered = [].filter.call(text, validate).join("");
+ $searchbar.val(filtered);*/
+ updateresults(results, text.split(""));
+ });
+
+ function updateresults(results, chars)
+ {
+ $searchresults.empty();
+
+ if (chars.length === 0)
+ {
+ addresults(results);
+ }
+ else
+ {
+ var patternstring = "";
+ for (var i in chars)
+ {
+ var c = chars[i].replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
+ patternstring += "([^" + c + "]*)(" + c + ")";
+ }
+ patternstring += "(.*)";
+ var pattern = new RegExp(patternstring, "i");
+ for (var i in results)
+ {
+ var result = results[i];
+ var matches = pattern.exec(result);
+ if (!matches) continue;
+ var divcontents = "";
+ for (var j = 1; j < matches.length - 2; j += 2)
+ {
+ divcontents += matches[j] + "
" + matches[j + 1] + "";
+ }
+ divcontents += matches[j];
+ $searchresults.append("
" + divcontents + "
");
+ }
+ }
+
+ if ($searchresults.is(":empty"))
+ {
+ $searchresults.hide();
+ }
+ else
+ {
+ $searchresults.show();
+ }
+ }
+
+ function addresults(results)
+ {
+ for (var i in results)
+ {
+ var result = results[i];
+ $searchresults.append("
" + result + "
");
+ }
+ }
+});
\ No newline at end of file