Event.observe(window,'load',function(){ document.getElementById('new_user').focus();});

function doPostcode() {
	if ($F('postcode') == '') {
		$('postcode').removeClassName('error');
		return
	}
	if (verifyPostcode(document.getElementById('postcode').value)) {
		$('postcode').removeClassName('error');
		getAddress()
	}
	else {
		$('addrfrompc').value = '';
		$('postcode').addClassName('error');
	}
}
function doTel() {
	tel = $F('telephone').split(' ').join('');
	
	if (tel == '') {
		$('telephone').removeClassName('error');
		return true	
	}
	
	re = /^0[1278]\d{9}$/
	if (!re.test(tel)) {
		$('telephone').addClassName('error');
		return false
	}
	else {
		$('telephone').removeClassName('error');
		return true
	}
}
function doEmail() {
	email = $F('email');
	if (email == '') {
		$('email').removeClassName('error');
		return true
	}
	re = /^[a-zA-Z0-9_.-{}'"`]+@[a-zA-Z0-9_.-]+\.([a-zA-Z]{2,6})$/
	if (!re.test(email)) {
		$('email').addClassName('error');
		return false
	}
	else {
		$('email').removeClassName('error');
		return true
	}
}
function doName() {
	if ($F('new_user') == '') {
		$('new_user').addClassName('error');
		return false
	}
	else {
		$('new_user').removeClassName('error');
		return true
	}
}
function doForm() {
	var name = doName()
	var post = verifyPostcode($F('postcode'));
	var tel = doTel() 
	var e = doEmail();
	return (post && tel && name);
}
function getAddress(){
	var postcode = document.getElementById('postcode').value.split(' ').join('');
	params = 'postcode='+postcode
	var houseno = document.getElementById('houseno').value;
	if (houseno != '') {
		params += '&houseno='+houseno
	}
	if (verifyPostcode(postcode)) {
		var url = '/postcode.php';
		new Ajax.Request(url,{	method:'post', 
					parameters:params,
					onSuccess: function(transport){
						if (transport.responseJSON) {
							addresses = transport.responseJSON;
							if (addresses.length == 1) {
								$('addrfrompc-field').update('<input type="hidden" name="addrfrompc" id="addrfrompc" value="" />');
								enterAddress(addresses[0])
							}
							else {
								element = '<select name="addrfrompc" id="addrfrompc">'
								for (i=0;i<addresses.length;i++) {
									element += '<option value="'+stringForAddress(addresses[i])+'">'+addresses[i].addr+', '+addresses[i].town+'</option>';
								}
								element += "</select>"
								$('addrfrompc-field').update(element);
							}
						}
						else {
							$('addrfrompc-field').update('<input type="hidden" name="addrfrompc" id="addrfrompc" value="" />');
						}
					} });
	}
}
function stringForAddress(address) {
	return address.addr+"|"+address.town+"|"+address.county+"|"+address.post_code+"|"+address.easting+"|"+address.northing+"|"+address.pafid;
}
function enterAddress(address) {
	document.getElementById('addrfrompc').value = stringForAddress(address);
	alert(string)
}

function verifyPostcode(postcode) {
	var re = /^[a-zA-Z]{1,2}\d{2,3}[a-zA-Z]{2}$/
	var postcode = postcode.split(' ').join('');
	return re.test(postcode)
}

