/*! * Offline Cache Library v1.0.0 * * Copyright (c) 2013 Tencent * * Date: 2013-05-21 17:42:16 (Wed, 21 May 2013) * Revision: 01 */ (function(h){var a={code:{WEBSQL_ERR:1,INDEXDB_ERR:2,FILESYSTEM_ERR:3,LOCALSTORAGE_ERR:4,OUT_OF_MEMERY:5,NO_RESULT:6,UNKNOWN:7},msg:{WEBSQL_ERR:"WebSQL error",INDEXDB_ERR:"IndexDB error",FILESYSTEM_ERR:"Filesystem error",LOCALSTORAGE_ERR:"Localstorage error",OUT_OF_MEMERY:"Out of memmory",NO_RESULT:"No result",UNKNOWN:"Unknow error"}};var g={FILESYSTEM_NUM:10,FILESYSTEM_SIZE:50*1024*1024,WEBSQL_SIZE:30*1024*1024};var j=location.pathname||"";var b=(location.host+j).replace(/\//g,"_");var c=window.requestFileSystem||window.webkitRequestFileSystem;var d=window.BlobBuilder||window.WebKitBlobBuilder;var i=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB;var f={webSQL:{inited:false,defaultDBName:b+"_webSQL_db",defaultTableName:"webSQL_table"},fileSystem:{inited:false,defaultFileName:b+"_fileSystem_file",num:g.FILESYSTEM_NUM,cache:{},cacheBackup:{}},indexedDB:{inited:false,oldVersion:false,indexedDB:i,IDBTransaction:window.IDBTransaction||window.webkitIDBTransaction,IDBKeyRange:window.IDBKeyRange||window.webkitIDBKeyRange,defaultDBName:b+"_indexedDB_db",defaultTableName:"indexedDB_table"},supportWebSQL:!!(window.openDatabase),supportFileSystem:!!c,supportIndexedDB:!!i,localStorage:{}};function e(l){if(typeof(l)!="object"){return l}if(l==null){return l}var m=new Object();for(var k in l){m[k]=e(l[k])}return m}f.webSQL.init=function(m,n){var l=f.webSQL;l.dbName=l.defaultDBName;l.version="1.0";l.displayName=l.defaultDBName;l.size=g.WEBSQL_SIZE;var k;try{k=openDatabase(l.dbName,l.version,l.displayName,l.size);if(!k){f.supportWebSQL=false;f.webSQL.inited=false;n&&n()}else{f.supportWebSQL=true;setTimeout(function(){l.createTable(l.defaultTableName);f.webSQL.inited=true;m&&m()},17)}}catch(o){k=undefined;f.supportWebSQL=false;f.webSQL.inited=false;n&&n()}f.webSQL.db=k};f.webSQL.createTable=function(k,m){k="table_"+k;var l="CREATE TABLE IF NOT EXISTS "+k+" ([key] TEXT NOT NULL UNIQUE,[value] TEXT NOT NULL)";f.webSQL.db&&f.webSQL.db.transaction(function(n){n.executeSql(l,[],function(){m&&m()},function(){})})};f.webSQL.insertData=function(k,o,m,n){var l=f.webSQL;k="table_"+k;var p="INSERT OR REPLACE INTO "+k+" VALUES (?, ?)";l.db&&l.db.transaction(function(q){q.executeSql(p,o,function(){m&&m()},function(){n&&n({code:a.code.WEBSQL_ERR,msg:a.msg.WEBSQL_ERR})})},function(){n&&n({code:a.code.WEBSQL_ERR,msg:a.msg.WEBSQL_ERR})})};f.webSQL.selectData=function(n,l,m,k){f.webSQL.db&&f.webSQL.db.transaction(function(o){o.executeSql(n,[],function(w,t){if(t.rows.length>0){if(!k){var r=t.rows.item(0);l&&l(r.value)}else{var x={};var u=t.rows;var p=u.length;for(var s=0;s
0){for(var m=0;m