diff --git a/lib/scripts/qsearch.js b/lib/scripts/qsearch.js
index e5cc73b494cb6142fc9f2cce8e6881874d22e268..fa8bc237d5c9f5a744fac2b4a26373674b290895 100644
--- a/lib/scripts/qsearch.js
+++ b/lib/scripts/qsearch.js
@@ -6,10 +6,13 @@
  * @author   Adrian Lang <lang@cosmocode.de>
  * @author   Michal Rezler <m.rezler@centrum.cz>
  */
+jQuery.fn.dw_qsearch = function(overrides) {
 
-var dw_qsearch = {
+    var dw_qsearch = {
 
-    $inObj: null,
+        output_id: '#qsearch__out',
+
+    $inObj: this,
     $outObj: null,
     timer: null,
     curRequest: null,
@@ -19,14 +22,11 @@ var dw_qsearch = {
      *
      * Attaches the event handlers
      *
-     * @param input element (jQuery selector/DOM obj)
-     * @param output element (jQuery selector/DOM obj)
      */
-    init: function (input, output) {
+    init: function () {
         var do_qsearch;
 
-        dw_qsearch.$inObj  = jQuery(input);
-        dw_qsearch.$outObj = jQuery(output);
+        dw_qsearch.$outObj = jQuery(dw_qsearch.output_id);
 
         // objects found?
         if (dw_qsearch.$inObj.length === 0 ||
@@ -163,8 +163,21 @@ var dw_qsearch = {
         // reenable overflow
         dw_qsearch.$outObj.find('li').css('overflow', 'hidden').css('text-overflow','ellipsis');
     }
+
+
+    };
+
+    jQuery.extend(dw_qsearch, overrides);
+
+    if (!overrides.deferInit) {
+        dw_qsearch.init();
+    }
+
+    return dw_qsearch;
 };
 
 jQuery(function () {
-    dw_qsearch.init('#qsearch__in','#qsearch__out');
+    jQuery('#qsearch__in').dw_qsearch({
+        output_id: '#qsearch__out'
+    });
 });