var el = Array();
var xml = Array();
var timeout = Array();
function makeXML () {
	if (typeof XMLHttpRequest == 'undefined') {
		objects = Array(
			'Microsoft.XMLHTTP',
			'MSXML2.XMLHTTP',
			'MSXML2.XMLHTTP.3.0',
			'MSXML2.XMLHTTP.4.0',
			'MSXML2.XMLHTTP.5.0'
		);
		for (i in objects) {
			try {
				return new ActiveXObject(objects[i]);
			} catch (e) {}
		}
	} else {
		return new XMLHttpRequest();
	}
}
function get (id) {
	return document.getElementById(id);
}
function checkDomain (domain, tld) {
	try {
		xml['tld-' + tld].abort();
		xml['tld-' + tld].open('get', 'php/checkDomain.php?domain=' + domain + '.' + tld);
		xml['tld-' + tld].onreadystatechange = function () {
			if (xml['tld-' + tld].readyState == 4) {
				if (xml['tld-' + tld].responseText == 'available') {
					el['tld-' + tld].innerHTML = '<font color="#00CC00">Available</font>';
				} else {
					el['tld-' + tld].innerHTML = '<font color="#EE0000">Taken</font> | <a href="http://whois.domaintools.com/' + domain + '.' + tld + '" target="_blank">Whois</a>';
				}
			} else {
				el['tld-' + tld].innerHTML = 'Checking Domain...';
			}
		}
		xml['tld-' + tld].send(null);
	} catch (e) {}
}
function keyUpHandler () {
	expression = new RegExp('^[a-z0-9-]+$', 'i');
	for (i in tldList) {
		if (this.value.match(expression)) {
			clearTimeout(timeout[i]);
			timeout[i] = setTimeout("checkDomain('" + this.value + "', '" + tldList[i] + "')", 100 * (i + 1));
		} else {
			clearTimeout(timeout[i]);
			timeout[i] = null;
			el['tld-' + tldList[i]].innerHTML = '<font color="#EE0000">Invalid Input</font>';
		}
	}
}
function loadHandler () {
	el['url'] = get('url');
	for (i in tldList) {
		xml['tld-' + tldList[i]] = makeXML();
		el['tld-' + tldList[i]] = get('tld-' + tldList[i]);
	}
	el['url'].onkeyup = keyUpHandler;
}
window.onload = loadHandler;
