var db;
var db_avail = true;

// use client side db for storage

try
{
	if (window.openDatabase)
	{
		db = openDatabase("iSMS", "1.0", "iSMS User Data Storage", 100000);
        if (!db)
			db_avail = false;
    }
	else
		db_avail = false;
}
catch(err)
{
	db_avail = false;
}

// standard functions

$().ready(function () {
	$('input[type=text], input[type=password], textarea').focus(function (el) {
		if ($(this).val() == $(this).attr('title'))
			$(this).val('').removeClass('empty');
	}).blur(function (el) {
		if ($(this).val() == '')
			$(this).val($(this).attr('title')).addClass('empty');
	});
	$('h1').not('a').click(function () { hideAddressBar(); });
	
	if (db_avail == false) return;
	
	db.transaction(function(tx) {
		tx.executeSql("SELECT COUNT(*) FROM UserData", [], function(result) {}, function(tx, error) {
			tx.executeSql("CREATE TABLE UserData (key TEXT, field TEXT, value TEXT)", [], function(result) {});
        });
    });
});

var init = function ()
{
	document.getElementsByTagName('h1')[0].style.display = 'none';
	setTimeout(hideAddressBar, 100);
	$('input[type=text], input[type=password], textarea').each(function () {
		if ($(this).val() == '')
			$(this).addClass('empty').val($(this).attr('title'));
	});
};

var hideAddressBar = function ()
{
	document.getElementsByTagName('h1')[0].style.display = 'block';
	window.scrollTo(0, 1);
};

var selectIt = function (id)
{
	document.getElementById(id).focus();
};

var isEmpty = function (id)
{
	el = document.getElementById(id);
	if (el.value == '' || (el.title != '' && el.value == el.title))
		return true;
	else
		return false;
};

var smsSend = function (callback)
{
	code = callback();
	if (code == true)
		document.getElementById('sms-form').submit();
	else
		return false;
};

var saveUserData = function (key)
{
	if (db_avail == false) return;
	
	db.transaction(function (tx)
	{
		tx.executeSql("DELETE FROM UserData WHERE key = ?", [ key ]);
		$('input.save, textarea.save').each(function () {
			tx.executeSql("INSERT INTO UserData (key, field, value) VALUES (?, ?, ?)", [ key, $(this).attr('name'), $(this).val() ]);
		});
	});
};

var getUserData = function (key)
{
	if (db_avail == false) return;
	
	db.transaction(function (tx)
	{
		$('input.save, textarea.save').each(function () {
			tx.executeSql("SELECT * FROM UserData WHERE key = ? AND field = ?", [ key, $(this).attr('name') ], function (tx, sqlresult) {
				if (sqlresult.rows.length > 0)
				{
					var row = sqlresult.rows.item(0);
					if (row['value'].length > 0)
						$('input[name=' + row['field'] + '], textarea[name=' + row['field'] + ']').val(row['value']).removeClass('empty');
				}
			});
		});
	});	
};
