var supportedDomains = {};

(function init()
{
	var request = new XMLHttpRequest();
	request.open('GET', 'extensions/Search Preview.safariextension/Info.plist');
	request.onreadystatechange = function()
	{
		if (request.readyState != 4) return;
		var button = document.getElementById('check-support');
		button.value = 'Check Support!';
		button.disabled = false;
		
		var whitelistedDomains = request.responseText.match(/http:\/\/\*([^">]+)/g);
		// yes, I know. This also includes Bing and Yahoo! domains.
		// Only web geeks like you will ever care (if you even care).
		for (var i = 0; i < whitelistedDomains.length; i++)
		{
			var domain = whitelistedDomains[i].match(/\*[^\/]+/)[0];
			var parts = domain.split('.');
			var currentObject = supportedDomains;
			for (var j = parts.length - 1; j > 1; j--)
			{
				var part = parts[j];
				if (currentObject[part] == undefined)
					currentObject[part] = {};
				currentObject = currentObject[part];
			}
			currentObject[parts[1]] = true;
		}
	}
	request.send(null);
})();

function supportsDomain(domainName)
{
	var parts = domainName.split('.');
	var explored = supportedDomains;
	for(var i = parts.length - 1; i >= 0; i--)
	{
		explored = explored[parts[i]];
		if (explored == undefined)
			return false;
		if (explored == true)
			return true;
	}
	return false;
}

document.addEventListener('DOMContentLoaded', function()
{
	document.getElementById('checkDomain').addEventListener('submit', function(event)
	{
		var result = document.getElementById('result');
		var domainName = document.getElementById('domainName').value;
		if (supportsDomain(domainName))
		{
			result.style.backgroundColor = '#080';
			result.style.color = 'white';
			result.innerHTML = 'Yup! <em>Search Preview</em> knows about this domain.';
		}
		else
		{
			result.style.backgroundColor = '#F00';
			result.style.color = '#FF0';
			result.innerHTML = 'Oh noes! <em>Search Preview</em> does not handle this domain. Drop me a line to tell me!';
			var mailto = document.getElementById('mailto');
			var subject = encodeURIComponent("Search Preview does not support " + domainName);
			var message = encodeURIComponent(
				"Hey Félix,\n\n" +
				"I just found out that your Search Preview extension does not support the domain " +
				domainName + ". Can you fix it please?\n\n" +
				"Thanks!\n\n");
			mailto.href = "mailto:safari@laissemoichercherca.com?subject=" + subject + "&body=" + message;
		}
		event.preventDefault();
		event.stopPropagation();
	}, false);
}, false);

