// Hold cache.
var domainCache = new Array();

// Function called to initiate check
function checkDomain() {

	// This is the div where the results are shown.
	var resultsDiv = document.getElementById('domainCheckResults');
	
	// Reset colour back to black and hide the purchase box.
	resultsDiv.className = 'black';
	document.getElementById('domainPurchase').className = 'hide';
	document.getElementById('domainProgress').className = 'hide';
	
	// Check for a domain.
	if (document.getElementById('domain').value.length == 0) {
	
		resultsDiv.innerHTML = '';
		
	} else {
	
		// Display message.
		document.getElementById('domainProgress').className = 'show';
		resultsDiv.innerHTML = 'checking domain...';

		// Work out domain.
		var domain = document.getElementById('domain').value + document.getElementById('domainSuffix').value;
				
		// Check the cache.
		if (domainCache[domain] != undefined) {
						
			showResults(domain, domainCache[domain]);
			
		} else {
	
			var myAjax = new Ajax.Request('whois/whois.php', {method: 'get', parameters: 'domain='+domain, onComplete: getResults});
			
		}
		
	}

		
}

// Called when http.send completes.
function getResults(request) {
				
	// Get response from PHP whois script.
	var response = request.responseText;

	var pipePos = response.indexOf('|');
	var domain = response.substring(0,pipePos);
	var results = response.substring((pipePos + 1));

	// Cache result.
	domainCache[domain] = results;

	// Show results.
	showResults(domain, results);
				
}	

// Function display the results.
function showResults(domain, results) {

	// This is the div where the results are shown.
	var resultsDiv = document.getElementById('domainCheckResults');
	
	document.getElementById('domainProgress').className = 'hide';

	// Display results		
	switch (results) {

		case 'A':
		resultsDiv.className = 'green';
		resultsDiv.innerHTML = domain + ' is available';
		
		// Work out domain for purchase fields.
		var dotPos = domain.indexOf('.');
		var domainname = domain.substring(0, dotPos);
		var suffix = domain.substring((dotPos + 1));		
		
		document.getElementById('domainToCheck').value = domainname;
		document.getElementById('tld').value = suffix;
		document.getElementById('domainPurchase').className = 'show';
		break;

		case 'T':
		resultsDiv.className = 'red';
		resultsDiv.innerHTML = domain + ' is taken';
		document.getElementById('domainPurchase').className = 'hide';
		break;

		case 'I':
		resultsDiv.className = 'black';
		resultsDiv.innerHTML = domain + ' is not valid';
		document.getElementById('domainPurchase').className = 'hide';
		break;

		case 'E':
		resultsDiv.className = 'black';
		resultsDiv.innerHTML = 'There is an error';
		document.getElementById('domainPurchase').className = 'hide';
		break;

	}			
	
}
