/**
 * The plugin for working with SQLite-database
 */
Ext.define("Terrasoft.mobile.SqlitePlugin", {
	extend: "Terrasoft.BaseBrowserPlugin",
	alternateClassName: "Terrasoft.SqlitePlugin",

	statics: {

		//region Properties: Private

		/**
   * @private
   */
		defaultDatabaseParams: {
			name: "bpmonlinedb740",
			description: "bpm'online database",
			version: "1.0",
			size: 1024 * 1024 * 1024
		},

		db: null,

		//endregion

		//region Methods: Private

		/**
   * @private
   */
		openDatabase: function () {
			if (!this.db) {
				this.db = window.openDatabase(this.defaultDatabaseParams.name, this.defaultDatabaseParams.version, this.defaultDatabaseParams.description, this.defaultDatabaseParams.size);
			}
			return this.db;
		},

		//endregion

		//region Methods: Public

		executeSql: function (config) {
			this.openDatabase();
			this.db.transaction(function (transactionContext) {
				transactionContext.executeSql(config.sql, null, function (transaction, result) {
					Ext.callback(config.success, config.scope, [result]);
				}, function (error) {
					Ext.callback(config.failure, config.scope, [error]);
				});
			});
		}

		//endregion

	}

});