From f08aafa72acf138421a8e5061fd78e240576181b Mon Sep 17 00:00:00 2001
From: Muhammad Fikri <fikswznd@gmail.com>
Date: Wed, 21 Sep 2011 11:49:09 +0700
Subject: [PATCH] add loading status

---
 web/viewer.css  |  5 +++++
 web/viewer.html |  3 ++-
 web/viewer.js   | 11 +++++++++--
 3 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/web/viewer.css b/web/viewer.css
index d1f725a02..5b83c142a 100644
--- a/web/viewer.css
+++ b/web/viewer.css
@@ -271,3 +271,8 @@ canvas {
     page-break-after: always;
   }
 }
+
+#loading {
+	margin:100px 0;
+	text-align:center;
+}
diff --git a/web/viewer.html b/web/viewer.html
index a53593df3..13d19fb6c 100644
--- a/web/viewer.html
+++ b/web/viewer.html
@@ -89,7 +89,8 @@
         </div>
      </div>
     </div>
-
+    
+	<div id="loading">Loading... 0%</div>
     <div id="viewer"></div>
   </body>
 </html>
diff --git a/web/viewer.js b/web/viewer.js
index 520cf4efa..87ed2b54f 100644
--- a/web/viewer.js
+++ b/web/viewer.js
@@ -110,13 +110,15 @@ var PDFView = {
     var xhr = new XMLHttpRequest();
     xhr.open('GET', url);
     xhr.mozResponseType = xhr.responseType = 'arraybuffer';
-    xhr.expected = (document.URL.indexOf('file:') === 0) ? 0 : 200;
+    xhr.expected = (document.URL.indexOf('file:') === 0) ? 0 : 200; 
+	xhr.onprogress=PDFView.progressLevel;
 
     xhr.onreadystatechange = function() {
       if (xhr.readyState === 4 && xhr.status === xhr.expected) {
         var data = (xhr.mozResponseArrayBuffer || xhr.mozResponse ||
                     xhr.responseArrayBuffer || xhr.response);
-
+        
+		document.getElementById('loading').style.display="none";
         PDFView.load(data, scale);
       }
     };
@@ -124,6 +126,11 @@ var PDFView = {
     xhr.send(null);
   },
 
+  progressLevel: function(evt) {
+  	var p=Math.round((evt.loaded / evt.total)*100);
+	document.getElementById('loading').innerHTML = 'Loading... '+p+'%';
+  },
+
   navigateTo: function(dest) {
     if (typeof dest === 'string')
       dest = this.destinations[dest];