diff --git a/evopedia-html5/WebContent/evopedia.html b/evopedia-html5/WebContent/evopedia.html
index 66635fbc..b367b421 100644
--- a/evopedia-html5/WebContent/evopedia.html
+++ b/evopedia-html5/WebContent/evopedia.html
@@ -2,7 +2,7 @@
-
+
Evopedia HTML5
@@ -17,11 +17,16 @@ Blockoffset :
Length :
-Please pick the file wikipedia_00.dat from the wikipedia_small_2010-08-14 dump :
-
+Please pick the file title.idx from the wikipedia_small_2010-08-14 dump :
+
+Please pick the file wikipedia_00.dat from the same dump :
+
-
+
+
+
+Choose a title :
diff --git a/evopedia-html5/WebContent/evopedia.js b/evopedia-html5/WebContent/evopedia.js
index 34ff4e6b..372939e7 100644
--- a/evopedia-html5/WebContent/evopedia.js
+++ b/evopedia-html5/WebContent/evopedia.js
@@ -1,5 +1,6 @@
-var file=document.getElementById('files').files[0];
+var dataFile=document.getElementById('dataFile').files[0];
+var titleFile=document.getElementById('titleFile').files[0];
var storage = navigator.getDeviceStorage('music');
//alert(storage);
@@ -7,40 +8,124 @@ var storage = navigator.getDeviceStorage('music');
if (!storage) {
//alert("no device storage available");
document.getElementById('openLocalFiles').style.visibility="visible";
- document.getElementById('files').addEventListener('change', handleFileSelect, false);
- document.getElementById('files').addEventListener('load', handleFileSelect, false);
+ document.getElementById('dataFile').addEventListener('change', handleDataFileSelect, false);
+ document.getElementById('titleFile').addEventListener('change', handleTitleFileSelect, false);
}
else {
var filerequest = storage.get('wikipedia_small_2010-08-14/wikipedia_00.dat');
//alert(filerequest);
filerequest.onsuccess = function() {
- file = filerequest.result;
- //alert(file);
- //readArticleFromHtmlForm(file);
+ dataFile = filerequest.result;
+ //alert(dataFile);
+ filerequest = storage.get('wikipedia_small_2010-08-14/titles.idx');
+ filerequest.onsuccess = function() {
+ titleFile = filerequest.result;
+ //alert(titleFile);
+ //readArticleFromHtmlForm(file);
+ };
+ filerequest.onerror = function() {
+ alert("error reading title file");
+ };
};
filerequest.onerror = function() {
- alert("error reading file");
+ alert("error reading data file");
};
}
-function readArticleFromHtmlForm(file) {
- if (file) {
+function updateOffsetsFromTitle(selectValue) {
+ var offsets=selectValue.split(/\|/);
+ document.getElementById("blockstart").value=offsets[1];
+ document.getElementById("blockoffset").value=offsets[2];
+ document.getElementById("length").value=offsets[3];
+}
+
+function readIntegerFrom4Bytes(byteArray,firstIndex) {
+ return byteArray[firstIndex] + byteArray[firstIndex+1]*256 + byteArray[firstIndex+2]*65536 + byteArray[firstIndex+3]*16777216;
+}
+
+function readAllTitlesFromIndex(titleFile) {
+ if (titleFile) {
+ var reader = new FileReader();
+ reader.onerror = errorHandler;
+ reader.onabort = function(e) {
+ alert('Title file read cancelled');
+ };
+ reader.onload = function(e) {
+ var binaryTitleFile = e.target.result;
+ var byteArray = new Uint8Array(binaryTitleFile);
+
+ var i = 0;
+ var titleNumber=0;
+ var comboTitleList = document.getElementById('titleList');
+
+ while (i