add some sql to the demo
diff --git a/weinre.web/demo/weinre-demo.js b/weinre.web/demo/weinre-demo.js
index e0b95e3..5789828 100644
--- a/weinre.web/demo/weinre-demo.js
+++ b/weinre.web/demo/weinre-demo.js
@@ -25,6 +25,9 @@
     if (!outputElement)     outputElement     = document.getElementById("output")
     
     buttonStartStuff.addEventListener("click", function() {
+        lastClickTime = new Date().toString()
+        db.transaction(addClick)
+        
         if (!started) {
             buttonStartStuff.value = "stop stuff"
             startStuff()
@@ -97,6 +100,45 @@
 }
 
 //------------------------------------------------------------------------------
+function sqlSuccess(tx, resultSet) {
+    console.log("SQL Success!")
+}
+
+//------------------------------------------------------------------------------
+function sqlError(tx, error) {
+    console.log("SQL Error " + error.code + ": " + error.message)
+}
+
+//------------------------------------------------------------------------------
+var lastClickTime
+
+function addClick(tx) {
+    var sql = "insert into clicks (date) values (?)"
+    tx.executeSql(sql, [lastClickTime], null, sqlError)
+}
+
+//------------------------------------------------------------------------------
+function clearDatabase(tx, resultSet) {
+    var sql = "delete from clicks"
+    tx.executeSql(sql, null, null, sqlError);
+}
+
+//------------------------------------------------------------------------------
+function createDatabase(tx) {
+    var schema = "clicks (id integer primary key, date text)"
+    var sql = "create table if not exists " + schema
+    
+    tx.executeSql(sql, null, clearDatabase, sqlError);
+}
+
+//------------------------------------------------------------------------------
+var db
+if (window.openDatabase) {
+    db = window.openDatabase("clicks", "1.0", "clicks", 8192)
+    db.transaction(createDatabase)
+}
+
+//------------------------------------------------------------------------------
 function output(string) {
     var element = document.createElement("div")
     element.innerHTML = string
diff --git a/weinre.web/modules/weinre/common/Native.scoop b/weinre.web/modules/weinre/common/Native.scoop
index 705faa7..af28f0b 100644
--- a/weinre.web/modules/weinre/common/Native.scoop
+++ b/weinre.web/modules/weinre/common/Native.scoop
@@ -25,6 +25,7 @@
     Native.original.SessionStorage_setItem    = window.sessionStorage ? window.sessionStorage.setItem    : null
     Native.original.SessionStorage_removeItem = window.sessionStorage ? window.sessionStorage.removeItem : null
     Native.original.SessionStorage_clear      = window.sessionStorage ? window.sessionStorage.clear      : null
+    Native.original.openDatabase              = window.openDatabase
 
     Native.clearInterval             = function() { return Native.original.clearInterval.apply( window, [].slice.call(arguments))}
     Native.clearTimeout              = function() { return Native.original.clearTimeout.apply(  window, [].slice.call(arguments))}
@@ -38,3 +39,5 @@
     Native.SessionStorage_setItem    = function() { return Native.original.SessionStorage_setItem.apply(    window.sessionStorage, [].slice.call(arguments))}
     Native.SessionStorage_removeItem = function() { return Native.original.SessionStorage_removeItem.apply( window.sessionStorage, [].slice.call(arguments))}
     Native.SessionStorage_clear      = function() { return Native.original.SessionStorage_clear.apply(      window.sessionStorage, [].slice.call(arguments))}
+    Native.openDatabase              = function() { return Native.original.openDatabase.apply( window, [].slice.call(arguments))}
+
diff --git a/weinre.web/modules/weinre/target/WiDatabaseImpl.scoop b/weinre.web/modules/weinre/target/WiDatabaseImpl.scoop
index 7b71765..be7c66f 100644
--- a/weinre.web/modules/weinre/target/WiDatabaseImpl.scoop
+++ b/weinre.web/modules/weinre/target/WiDatabaseImpl.scoop
@@ -7,9 +7,13 @@
  */
 
 requireClass ../common/Weinre
+requireClass ../common/Native
 
 //-----------------------------------------------------------------------------
 class WiDatabaseImpl
+    if (!window.openDatabase) return
+    
+    window.openDatabase = nativeOpenDatabase
 
 //-----------------------------------------------------------------------------
 method getDatabaseTableNames(/*int*/ databaseId, callback)
@@ -21,3 +25,12 @@
 method executeSQL(/*int*/ databaseId, /*string*/ query, callback)
     // callback: function(/*boolean*/ success, /*int*/ transactionId)
     Weinre.notImplemented(arguments.callee.signature)
+
+//-----------------------------------------------------------------------------
+function nativeOpenDatabase(name, version, displayName, estimatedSize, creationCallback)
+    
+    Weinre.wi.DatabaseNotify.addDatabase(name)
+    
+    return Native.openDatabase(name, version, displayName, estimatedSize, creationCallback)
+    
+    
\ No newline at end of file