Fixed tree view with multi line labels
diff --git a/dev/js/src/api.js b/dev/js/src/api.js
index 82f1062..00821de 100644
--- a/dev/js/src/api.js
+++ b/dev/js/src/api.js
@@ -8,59 +8,61 @@
 
   KorAP.URL = KorAP.URL || 'http://korap.ids-mannheim.de/kalamar';
 
-  KorAP.API = {
-    getMatchInfo : function (match, param, cb) {
-      // match is a KorAP.Match object
-      var url = KorAP.URL;
-      url += '/corpus';
-      url += '/' + match.corpusID;
-      url += '/' + match.docID + '.' + match.textID; // TODO
-      url += '/' + match.matchID;
+  KorAP.API = KorAP.API || {};
 
-      // { spans: true, layer:x, foundry : y}
-      if (param['spans'] == true) {
-	url += '?spans=true';
-	if (param['foundry'] !== undefined)
-	  url += '&foundry=' + param['foundry'];
-	if (param['layer'] !== undefined)
-	  url += '&layer=' + param['layer'];
-      }
+  KorAP.API.getMatchInfo = function (match, param, cb) {
 
-      // { spans : false, layer: [Array of KorAP.InfoLayer] }
-      else {
-	// TODO
-	url += '?spans=false';
-      }
+    // match is a KorAP.Match object
+    var url = KorAP.URL;
+    url += '/corpus';
+    url += '/' + match.corpusID;
+    url += '/' + match.docID;
+    url += '/' + match.textID;
+    url += '/' + match.matchID;
 
-      this.getJSON(url, cb);
-    },
-
-    getJSON : function (url, onload) {
-      var req = new XMLHttpRequest();
-
-      req.open("GET", url, true);
-      req.setRequestHeader("Accept", "application/json");
-      req.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); 
-      req.onreadystatechange = function () {
-	/*
-	  States:
-	  0 - unsent (prior to open)
-	  1 - opened (prior to send)
-	  2 - headers received
-	  3 - loading (responseText has partial data)
-	  4 - done
-	*/
-	if (this.readyState == 4) {
-	  if (this.status === 200)
-	    onload(JSON.parse(this.responseText));
-	  else
-	    KorAP.log(this.status, this.statusText);
-	}
-      };
-      req.ontimeout = function () {
-	KorAP.log(0, 'Request Timeout');
-      };
-      req.send();
+    // { spans: true, layer:x, foundry : y}
+    if (param['spans'] == true) {
+      url += '?spans=true';
+      if (param['foundry'] !== undefined)
+	url += '&foundry=' + param['foundry'];
+      if (param['layer'] !== undefined)
+	url += '&layer=' + param['layer'];
     }
+    
+    // { spans : false, layer: [Array of KorAP.InfoLayer] }
+    else {
+      // TODO
+      url += '?spans=false';
+    }
+
+    KorAP.API.getJSON(url, cb);
   };
+
+  KorAP.API.getJSON = function (url, onload) {
+    var req = new XMLHttpRequest();
+
+    req.open("GET", url, true);
+    req.setRequestHeader("Accept", "application/json");
+    req.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); 
+    req.onreadystatechange = function () {
+      /*
+	States:
+	0 - unsent (prior to open)
+	1 - opened (prior to send)
+	2 - headers received
+	3 - loading (responseText has partial data)
+	4 - done
+      */
+      if (this.readyState == 4) {
+	if (this.status === 200)
+	  onload(JSON.parse(this.responseText));
+	else
+	  KorAP.log(this.status, this.statusText);
+      }
+    };
+    req.ontimeout = function () {
+      KorAP.log(0, 'Request Timeout');
+    };
+    req.send();
+  }
 });