function add_domain()
{
	hide_all();
	if(check_inputs())
	{
		activity_on();
		var request = '/add_domain.php?domain='+encodeURI($('input_domain').value)+'&email='+encodeURI($('client_email').value)+'&name='+encodeURI($('client_user').value);
		debug('add_domain: '+request);
		new Ajax.Request(request, {onSuccess:success_handler});
	}
}

function check_inputs()
{
	var vname = $('client_user').value.strip();
	var vemail = $('client_email').value.strip();
	var vdomain = $('input_domain').value.strip();
	var ret = true;

	not_domain_regex = /( |\(|\))/;
	if(not_domain_regex.test(vdomain) || $('input_domain').value == $('input_domain').title)
	{
		$('error').innerHTML = error_msg[ERROR_INVALID_DOMAIN];
		new Effect.Pulsate('input_domain', {duration:1.5, pulses:3});
		ret = false;
	}
	if(vname == "" || $('client_user').value == $('client_user').title)
	{
		$('error').innerHTML = error_msg[ERROR_INVALID_NAME];
		new Effect.Pulsate('client_user', {duration:1.5, pulses:3});
		ret = false;
	}
	var usr = "([a-zA-Z0-9][a-zA-Z0-9_.-]*|\"([^\\\\\x80-\xff\015\012\"]|\\\\[^\x80-\xff])+\")";
   var domain = "([a-zA-Z0-9][a-zA-Z0-9._-]*\\.)*[a-zA-Z0-9][a-zA-Z0-9._-]*\\.[a-zA-Z]{2,5}";
   var regex = "^"+usr+"\@"+domain+"$";
   var regex_email = new RegExp(regex);	
	//regex_email = /^[^\s^@]*@[\w\-]+(\.[\w\-]{2,3}){1,2}$/;
	if(!regex_email.test(vemail) || $('client_email').value == $('client_email').title)
	{
		$('error').innerHTML = error_msg[ERROR_INVALID_EMAIL];
		new Effect.Pulsate('client_email', {duration:1.5, pulses:3});
		ret = false;
	}
	if(!ret)
	{
		show_error();
	}
	return ret;
}

function check_domain()
{
	var vdomain = $('input_domain').value.strip();
	
	not_domain_regex = /( |\(|\))/;
	if(not_domain_regex.test(vdomain) || $('input_domain').value == $('input_domain').title)
	{
		$('error').innerHTML = error_msg[ERROR_INVALID_DOMAIN];
		show_error();
		new Effect.Pulsate('input_domain', {duration:1.5, pulses:3});
		return false;
	}
	hide_all();
	activity_on();
	var request = '/check_domain.php?domain='+encodeURI(document.getElementById('input_domain').value);
	debug('check_domain: '+request);
	new Ajax.Request(request, {onSuccess:success_handler_check});
}

function success_handler(t)
{
	var response_parsed = t.responseText.replace(/\n/g, "\\n").replace(/\r/g, "\\r");
	var response = eval('('+response_parsed+')');
	debug('success_handler: stat:-'+response.stat+'-');
	activity_off();
	if(response.stat == SUCCESS)
	{
		$('success').innerHTML = success_msg[SUCCESS];
		if(response.domain != "")
		{
			$('success').innerHTML = $('success').innerHTML.replace(/%domain%/g, response.domain); 
		}
		show_success();
	}
	else
	{
		if(error_msg[response.stat] != null)
		{
			$('error').innerHTML = error_msg[response.stat];
		}
		else
		{
			$('error').innerHTML = error_msg[ERROR_UNKNOWN_ERROR];
		}
		 
		if(response.domain != "")
		{
			$('error').innerHTML = $('error').innerHTML.replace(/%domain%/g, response.domain);
		}
		show_error();
	}
	return true;
}

function success_handler_check(t)
{
	var response_parsed = t.responseText.replace(/\n/g, "\\n").replace(/\r/g, "\\r");
	var response = eval('('+response_parsed+')');
	debug('success_handler_check: t:-'+response.stat+'-');
	activity_off();
	if(response.stat == SUCCESS)
	{
		show_success_check();
	}
	else
	{
		if(error_msg[response.stat] != null)
		{
			$('error').innerHTML = error_msg[response.stat];
		}
		else
		{
			$('error').innerHTML = error_msg[ERROR_UNKNOWN_ERROR];
		} 
		
		if(response.domain != "")
		{
			$('error').innerHTML = $('error').innerHTML.replace(/%domain%/g, response.domain);
		}
		show_error();
	}
	return true;
}

function debug(s)
{
	var status = document.getElementById('status');
	if(status != null)
	{
		status.innerHTML = (pad(debug_stack++,3))+":"+s + "<br />"+status.innerHTML;
	}
}

function pad(number,length) 
{
     var str = '' + number;
     while (str.length < length)
         str = '0'+str;
     return str;
}

function activity_on()
{
	Element.show('activity_indicator');
	$('submit_button').src = "images/icon-check.gif";
}
function activity_off()
{
	Element.hide('activity_indicator');
	$('submit_button').src = "images/icon-register.gif";
}

function show_success()
{
	debug('show_success');
	activity_off();
	Element.hide('success_check_outer');
	Element.hide('error_outer');
	Effect.BlindDown('success_outer', {duration:0.3});
}

function show_success_check()
{
	debug('show_success_check');
	activity_off();
	Element.hide('success_outer');
	Element.hide('error_outer');
	Effect.BlindDown('success_check_outer', {duration:0.3});
}

function show_error()
{
	debug('show_error');
	activity_off();
	Element.hide('success_outer');
	Element.hide('success_check_outer');
	Effect.BlindDown('error_outer', {duration:0.3});
}

function hide_all()
{
	debug('hide_all');
	activity_off();
	Element.hide('success_outer');
	Element.hide('success_check_outer');
	Element.hide('error_outer');
}

function enabled(id)
{
	if($(id).hasClassName("form_text"))
	{
		$(id).removeClassName("form_text");
		$(id).addClassName("form_text_enabled");
	}
	else
	{
		//$(id).className = "form_text";
	}
}
