function adderr(id, txt) {
	document.getElementById('l_' + id).style.color = 'red';
	document.getElementById('error').innerHTML = document.getElementById('error').innerHTML + txt + '<br />';
	valid = false;
}

function validate() {
	valid = true;
	reg_email = new RegExp('.+@.+\..+');
	reg_email2 = new RegExp('[^-.@\w]');
	document.getElementById('error').innerHTML = '';
	document.getElementById('error').style.color = 'red';

	if (document.getElementById('name').value == '')
		adderr('name', 'You did not enter your name.')
	else document.getElementById('l_name').style.color = 'black';
	if (document.getElementById('email').value == '')
		adderr('email', 'You did not enter your email.')
	else if (!reg_email.test(document.getElementById('email').value))
		adderr('email', 'You did not enter a valid email.')
//	else if (reg_email2.test(document.getElementById('email').value))
//		adderr('email', 'Your email contains illegal characters.')
	else document.getElementById('l_email').style.color = 'black';
	if (document.getElementById('pwd').value == '')
		adderr('pwd', 'You did not enter a password.')
	else document.getElementById('l_pwd').style.color = 'black';
	if (document.getElementById('adult').value == '')
		adderr('adult', 'You did not specify how many Adults will be attending.')
	else document.getElementById('l_adult').style.color = 'black';
	if (document.getElementById('child').value == '')
		adderr('child', 'You did not specify how many Children will be attending.')
	else document.getElementById('l_child').style.color = 'black';

	if (valid) register();
}

function register(){
	var http_request = false;
	name = document.getElementById('name').value;
	email = document.getElementById('email').value;
	pwd = document.getElementById('pwd').value;
	adult = document.getElementById('adult').value;
	child = document.getElementById('child').value;
	document.getElementById('error').style.color = 'green';
	document.getElementById('error').innerHTML = 'Processing request.';

	if (window.XMLHttpRequest) {
		http_request = new XMLHttpRequest();
        if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/xml');
		}
	} else if (window.ActiveXObject) {
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}

    if (!http_request) {
		document.getElementById('error').style.color = 'red';
		document.getElementById('error').innerHTML = 'Giving up :( Cannot create an XMLHTTP instance';
		return false;
	}

	http_request.onreadystatechange = function() { write_result(http_request); };
	http_request.open('GET', 'http://siyum.ookamikun.com/register.php?name=' + name + '&email=' + email + '&pwd=' + pwd + '&adult=' + adult + '&child=' + child, true);
	http_request.send(null);
}

function write_result(http_request) {

	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			var xmldoc = http_request.responseXML;
			if (xmldoc.getElementsByTagName('success')[0].firstChild.data == 1) {
				document.getElementById('error').style.color = 'green';
				document.getElementById('error').innerHTML = xmldoc.getElementsByTagName('message')[0].firstChild.data;
				document.getElementById('name').value = '';
				document.getElementById('email').value = '';
				document.getElementById('pwd').value = '';
				document.getElementById('adult').value = '';
				document.getElementById('child').value = '';
			}
			else 
				document.getElementById('error').style.color = 'red';
				document.getElementById('error').innerHTML = xmldoc.getElementsByTagName('message')[0].firstChild.data;
		} else {
			document.getElementById('error').style.color = 'red';
			document.getElementById('error').innerHTML = 'There was a problem with the request.';
		}
	}

}

