Index: versemgr.cpp
===================================================================
--- versemgr.cpp	(Revision 2206)
+++ versemgr.cpp	(Arbeitskopie)
@@ -175,7 +175,62 @@
 	// TODO: build offset speed array
 }
 
+void VerseMgr::System::loadFromTreeKey(const TreeKey *tk) {
+    int verses = 0;
+	int chap = 0;
+	int book = 0;
+    vector<int> vpc;
 
+    // loop over first level nodes (which are books)
+	if(tk->hasChildren()) {
+        // get first child
+		tk->firstChild();
+        do {
+            // TODO: remove trailing "/" ?
+            const char *bookName = tk->getText();
+            const char *bookOsis = "";
+            const char *bookAbbrev = "";
+            book++;
+            // loop chapters, level 2
+            chap = 0;
+            // init verses per chapter list
+            vpc.clear();
+            if(tk->hasChildren()) {
+                // get first chapter
+                tk->firstChild();
+                do {
+                    chap++;
+                    // loop verses, level 3
+                    verses = 0;
+                    if(tk->hasChildren()) {
+                        tk->firstChild();
+                        do {
+                            verses++;
+                        }
+                        while(tk->nextSibling());
+                        // push number of verses to chapter
+                        vpc.push_back(verses);
+                        tk->parent();
+                    }
+                }
+                while(tk->nextSibling());
+                // finished, go back tp book
+                tk->parent();
+            }
+            
+            // add book
+            p->books.push_back(Book(bookName, bookOsis, bookAbbrev, chap));
+            Book &b = p->books[p->books.size()-1];
+            // loop over vpc list
+            for(int i = 0;i < vpc.size();i++) {
+                // set max verses
+                b.p->verseMax.push_back(vpc[i]);
+            }
+        }
+        while(tk->nextSibling());            
+	}    
+}
+
 VerseMgr::Book::Book(const Book &other) {
 	longName = other.longName;
 	osisName = other.osisName;
@@ -336,6 +391,9 @@
 
 
 void VerseMgr::registerVersificationSystem(const char *name, const TreeKey *tk) {
+    p->systems[name] = System(name);
+    System &s = p->systems[name];
+    s.loadFromTreeKey(tk);
 }
 
 // --------------- end statics --------------
