function validateKey(event)
{
	var regex = /[a-zA-Z0-9!@#$%^&*()_\+\-= ;:'\x22,.?~/`]/;
	
	if ( String.fromCharCode(((navigator.appVersion.indexOf('MSIE') != (-1)) ? event.keyCode : event.charCode)).search(regex) != (-1)
		|| ( navigator.appVersion.indexOf('MSIE') == (-1)
			&& ( event.keyCode.toString().search(/^(8|9|13|45|46|35|36|37|39)$/) != (-1) 
				|| event.ctrlKey || event.metaKey ) ) ) 
	{
		return true;
	} 
	else 
	{
		return false;
	}	
}

function sendEmail(subject, to)
{
	location.href = "mailto:" + to + "?subject=" + subject;
	
}function updateHostingSummary(baseprice, discount)
{
	var summary = document.getElementById('summary');
	var quote = document.getElementById('quote');
	var update = "";
	var price = baseprice;
	
	var options = new Array();
	options[0] = document.form_hosting.advertisement;
	options[1] = document.form_hosting.storage;
	options[2] = document.form_hosting.bandwidth;
	options[3] = document.form_hosting.email;
	options[4] = document.form_hosting.ftp;
	options[5] = document.form_hosting.database;
	options[6] = document.form_hosting.backup;
	options[7] = document.form_hosting.ssl;
	
	for (var i = 0; i < options.length; i++)
	{
		if (options[i].type == "hidden")
		{
			price += parseFloat(options[i].value.substring(0, options[i].value.indexOf(",")));
			update += options[i].value.substring(options[i].value.indexOf(",") + 1) + "<br />";
		}
		else
		{
			for (var j = 0; j < options[i].length; j++)
			{
				if (options[i][j].checked)
				{
					price += parseFloat(options[i][j].value.substring(0, options[i][j].value.indexOf(",")));
					update += options[i][j].value.substring(options[i][j].value.indexOf(",") + 1) + "<br />";	
				}
			}
		}
		
	}
	
	price = price * (1 - discount);
	summary.innerHTML = update;
	var decimal = price.toFixed(2).split(".");
	quote.innerHTML = "$" + decimal[0] + '<span class="super">.' + decimal[1] + '/mo</span>*';
}

function updateDomainSummary()
{
	var update = "";
	var domain = document.form_domain.domain.value;
	var registrar = document.form_domain.registrar;
	var register = false;
	var valid = false;
	
	if (registrar[0].checked)
	{
		register = true;
	}
	else
	{
		register = false;
	}
	
	if (domain.length > 0)
	{		
		update += "Domain: <b>" + domain.toLowerCase() + "</b><br />";
		
		var regex = /^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,6}$/;
		if (domain.match(regex))
		{
			if (register)
			{
				var url = "/ajax/domain/" + domain;
				http.open('get', url);
				http.onreadystatechange = receiveDomainCheck;
				http.send(null);
				update += "Status: <b>In Progress</b>";
			}
			else
			{
				valid = true;
				update += "Status: <b>Valid</b>";
			}
		}
		else
		{
			valid = false;
			update += "Status: <b>Not Valid</b>";
		}
		
		summary.innerHTML = update;
	}
	else
	{
		summary.innerHTML = "Please enter a domain name.";
	}
	return valid;
}

function receiveDomainCheck()
{
	if ( http.readyState == 4 )
	{		
		var xml;		
		var node;
		var update;
		var xmlresponse = http.responseText;
		
		try
		{
			xml = new ActiveXObject("Microsoft.XMLDOM");
			xml.async = "false";
			xml.loadXML(xmlresponse);
		}
		catch (exception)
		{
			try
			{
				parser = new DOMParser();
				xml = parser.parseFromString(xmlresponse, "text/xml");
			}
			catch (exception)
			{
				
			}
		}
		
		update = "Domain: <b>" + xml.getElementsByTagName("domain")[0].childNodes[0].nodeValue.toLowerCase() + "</b><br />";
		
		if (xml.getElementsByTagName("available")[0].childNodes[0].nodeValue.toLowerCase() == "yes")
		{
			update += "Status: <b>Available</b>";
		}
		else
		{
			update += "Status: <b>Already Registered</b>";
		}
		
		summary.innerHTML = update;
	}
}function updateInfoForm(account)
{
	if (account == "old")
	{
		document.getElementById('new_account').style.display = "none";
		document.getElementById('old_account').style.display = "block";
	}
	else
	{
		document.getElementById('new_account').style.display = "block";
		document.getElementById('old_account').style.display = "none";
	}
}
function updateManagementSummary(baseprice)
{
	var summary = document.getElementById('summary');
	var quote = document.getElementById('quote');
	var update = "";
	var price = baseprice;
	
	var options = new Array();
	options[0] = document.form_management.pages;
	options[1] = document.form_management.logo;
	options[2] = document.form_management.frequency;
	options[3] = document.form_management.objective;
	options[4] = document.form_management.layout;
	
	for (var i = 0; i < options.length; i++)
	{
		for (var j = 0; j < options[i].length; j++)
		{
			if (options[i][j].checked)
			{
				price += parseFloat(options[i][j].value.substring(0, options[i][j].value.indexOf(",")));
				update += options[i][j].value.substring(options[i][j].value.indexOf(",") + 1) + "<br />";	
			}
		}
	}

	summary.innerHTML = update;
	var decimal = price.toFixed(2).split(".");
	quote.innerHTML = "$" + decimal[0] + '<span class="super">.' + decimal[1] + '/mo</span>';
}function updateVPSSummary(baseprice, discount)
{
	var summary = document.getElementById('summary');
	var quote = document.getElementById('quote');
	var update = "";
	var price = baseprice;
	
	var options = new Array();
	options[0] = document.form_vps.cpu;
	options[1] = document.form_vps.memory;
	options[2] = document.form_vps.harddrive;
	options[3] = document.form_vps.bandwidth;
	options[4] = document.form_vps.backup;
	
	var selections = new Array();
	selections[0] = document.form_vps.os;
	
	for (var i = 0; i < options.length; i++)
	{
		for (var j = 0; j < options[i].length; j++)
		{
			if (options[i][j].checked)
			{
				price += parseFloat(options[i][j].value.substring(0, options[i][j].value.indexOf(",")));
				update += options[i][j].value.substring(options[i][j].value.indexOf(",") + 1) + "<br />";	
			}
		}
	}
	
	for (var i = 0; i < selections.length; i++)
	{
		price += parseFloat(selections[i].value.substring(0, selections[i].value.indexOf(",")));
		update += selections[i].value.substring(selections[i].value.indexOf(",") + 1) + "<br />";	
	}

	price = price * (1 - discount);
	summary.innerHTML = update;
	var decimal = price.toFixed(2).split(".");
	quote.innerHTML = "$" + decimal[0] + '<span class="super">.' + decimal[1] + '/mo</span>*';
}function createRequestObject() 
{
	var ro;
	var browser = navigator.appName;
	if ( browser == "Microsoft Internet Explorer")
	{
		ro = new ActiveXObject("Microsoft.XMLHTTP");
	}
	else
	{
		ro = new XMLHttpRequest();
	}
	return ro;
}

var http = createRequestObject();
