Use requirejs for clientside scripting
diff --git a/dev/demo/menudemo.js b/dev/demo/menudemo.js
new file mode 100644
index 0000000..e089e89
--- /dev/null
+++ b/dev/demo/menudemo.js
@@ -0,0 +1,74 @@
+requirejs.config({
+  baseUrl: '../js/src'
+});
+
+require(['menu','menu/item', 'menu/prefix'], function (menuClass, itemClass, prefixClass) {
+  var OwnMenuItemClass = {
+    create : function (params) {
+      return Object.create(itemClass).upgradeTo(this)._init(params);
+    },
+    content : function (content) {
+      if (arguments.length === 1) {
+        this._content = content;
+      };
+      return this._content;
+    },
+
+    // enter or click
+    onclick : function () {
+      console.log(this._name);
+    },
+
+    // right arrow
+    further : function () {
+      console.log("Further: " + this._name);
+    },
+    _init : function (params) {
+      if (params[0] === undefined)
+	throw new Error("Missing parameters");
+
+      this._name = params[0];
+      this._content = document.createTextNode(this._name);
+      this._lcField = ' ' + this.content().textContent.toLowerCase();
+      
+      return this;
+    }
+  };
+
+  var OwnPrefixClass = {
+    create : function () {
+      return Object.create(prefixClass)
+	.upgradeTo(this)
+	._init();
+    },
+    onclick : function () {
+      console.log('Prefix: ' + this.value());
+    }
+  };
+
+  var OwnMenu = {
+    create : function (params) {
+      return Object.create(menuClass)
+      .upgradeTo(this)
+      ._init(OwnMenuItemClass, OwnPrefixClass, params);
+    }
+  };
+
+  var menu = OwnMenu.create([
+    ['Titel', 'title', 'string'],
+    ['Untertitel', 'subTitle', 'string'],
+    ['Veröffentlichungsdatum', 'pubDate', 'date'],
+    ['Länge', 'length', 'integer'],
+    ['Autor', 'author', 'string'],
+    ['Genre', 'genre', 'string'],
+    ['corpusID', 'corpusID', 'string'],
+    ['docID', 'docID', 'string'],
+    ['textID', 'textID', 'string']
+  ]);
+
+  document.getElementById('menu').appendChild(menu.element());
+
+  menu.limit(3);
+  menu.show('');
+  menu.focus();
+});