function postJSON(myurl, mydata, func){
	var myRequest = new Request({method: 'post', url: myurl,
		onSuccess: function(response){
			var result = $try(function(){ 
				return myObject = JSON.decode(response);},function(){ return false;}
			);
			if (result){ func(result);}
			else{alert(response);}
		},
		onFailure: function(response){alert('Error retrieving data from '+myurl);}
	}).send(mydata);
}

function checkAvaliability(){
	var domain = $('domain').value.trim();
	var ext = $('ext').value;
	if(!domain.match(/^[a-z0-9-_]+$/i)) {
		alert('Please enter a valid domain name.');
		return false;
	} else {
		$('dombtn').set('disabled', true);
		$('dombtn').set('value', 'Waiting 20 seconds before next request');
		$('domainResult').empty();
		postJSON(base+'includes/domainnamecheck.php', 'domain='+domain+'&ext='+ext, parseResult);
		var myTimer = function(){{
			$('dombtn').set('disabled', false);
			$('dombtn').set('value', 'Check Avaliability');
		}}.delay(20000);
	}
}

function parseResult(reply){
	var res = $('domainResult');
	if (reply.result.match(/^Error:/))
		res.set('html', '<b style="color:red">'+reply.result+'</b>');
	else if (reply.result == 'Available')
		res.set('html', '<b>'+reply.search+'</b> is <span style="color:green; font-weight:bold">AVAILABLE</span>');
	else {
		res.set('html', '<b>'+reply.search+'</b> is <span style="color:red; font-weight:bold">NOT AVAILABLE</span> &nbsp &nbsp;');
		var details = new Element('a', {'html': '[view technical details]', 'href':'javascript:;'}).inject(res);
		details.addEvent('click', function(){
			var myPre = new Element('p', {'html': reply.result, 'style': 'text-align:left;white-space:pre;color:gray;'}).inject(res);
			details.destroy();
		});
	}
}
