var InputTools = {};

InputTools.supported = function(type)
{
	var i = document.createElement('input');
	i.setAttribute('type', type);
	return (i.type !== 'text');
}

InputTools.placeholders_supported = function()
{
	var i = document.createElement('input');
	return ('placeholder' in i);
}

InputTools.autofocus_supported = function()
{
	var i = document.createElement('input');
	return 'autofocus' in i;
}

var CanvasTools = {};

CanvasTools.supported = function()
{
	//!! double-negative - forces to a boolean value
	return !!document.createElement('canvas').getContext;
}

CanvasTools.text_supported = function()
{
	if(!supports_canvas()) return false;
	
	var canvas = document.createElement('canvas');
	var context = canvas.getContext('2d');
	return (typeof context.fillText == 'function');
}

var LocalStorageTools = {};

LocalStorageTools.supported = function()
{
	try
	{
		return ('localStorage' in window) && (window['localStorage'] !== null);
	}
	catch(e)
	{
		return false;
	}
}

var WebWorkerTools = {};

WebWorkerTools.supported = function()
{
	return !!window.Worker;
}

var OfflineTools = {};

OfflineTools.supported = function()
{
	return !!window.applicationCache;
}

var GeoLocationTools = {};

GeoLocationTools.supported = function()
{
	return !!navigator.geolocation;
}

