window.addEvent('domready',function() {
	$(document.body).addClass('js');
	if ($('valuations')!=null) {
		var valForm=$('valuations').getElement('form');
		$('id_address').set('value','').addClass('disabled').disabled=true;
	//	$('id_town').set('value','').addClass('disabled').disabled=true;
	//	$('id_county').set('value','').addClass('disabled').disabled=true;
		
		$('_MidPart').set('styles', {'display':'none'});
		
	//	new Element('div').setProperty('id','ajaxAddress').injectAfter($('tr_postcode'));
		$('tr_address').injectInside($('_MidPart'));
		$('tr_town').injectInside($('_MidPart'));
		$('tr_county').injectInside($('_MidPart'));
		var FindLink=new Element('a').setProperty('id','postcodeLookup').set('html','Find').injectBefore($('id_postcode'));
		if ($('id_postcode').get('value')!='') fetchAddresses(false);
		$(FindLink).addEvent('click',function(){fetchAddresses(true);});
	}
});

//window.addEvent('domready',function() {
//	$(document.body).addClass('js');
//	if ($('valuations')!=null) {
//		var valForm=$('valuations').getElement('form');
//		$('id_address').set('value','').addClass('disabled').disabled=true;
//		$('id_town').set('value','').addClass('disabled').disabled=true;
//		$('id_county').set('value','').addClass('disabled').disabled=true;
//		new Element('div').setProperty('id','ajaxAddress').injectAfter($('tr_postcode'));
//		$('tr_address').injectInside($('ajaxAddress'));
//		$('tr_town').injectInside($('ajaxAddress'));
//		$('tr_county').injectInside($('ajaxAddress'));
//		var FindLink=new Element('a').setProperty('id','postcodeLookup').set('html','Find').injectBefore($('id_postcode'));
//		if ($('id_postcode').get('value')!='') fetchAddresses(false);
//		$(FindLink).addEvent('click',function(){fetchAddresses(true);});
//	}
//});

function fetchAddresses(alertError) {
	var postcode=formatPostcode($('id_postcode').value);
	$('id_postcode').addClass('loading').value=postcode;
	var error=false;
	var errormsg=$('id_address').getParent('div').getFirst('p');
	if (errormsg!=null) {
		var errorcopy=errormsg.clone;
		error=true;
	}
	new Request.HTML({
		url:'/valuations.php',
		onComplete: (function(a,b,responseHTML,responseJavaScript) {
			$('id_postcode').removeClass('loading');
		//	if ($('tr_city')!=null) $('tr_city').destroy();
		//	if($('enterAddressManually')==null) {
		//		var enterManually=new Element('div').setProperty('id','enterAddressManually').set('html','Enter address manually').injectAfter($('tr_postcode'));
		//		$(enterManually).addEvent('click',function() {
		//			enterAddressManually();
		//		});
		//	}
			if (responseHTML.substr(0,5)=='Error') {
				if (alertError) alert(responseHTML);
			} else {
				$('_MidPart').set('html', responseHTML);
				$('_MidPart').set('styles', {'display':''});
				if (error) errorcopy.injectInside($('tr_address'));
			}
			eval(responseJavaScript);
		}),
		onFailure: (function() {
			enterAddressManually();
		})
	}).get({'act':'lookup','postcode':postcode});
}

function isValidPostcode(p) {
	var postcodeRegEx = /[A-Z]{1,2}[0-9]{1,2} ?[0-9][A-Z]{2}/i;
	return postcodeRegEx.test(p);
}

function formatPostcode(p) {
	if (isValidPostcode(p)) {
		var postcodeRegEx = /(^[A-Z]{1,2}[0-9]{1,2})([0-9][A-Z]{2}$)/i;
		return p.replace(postcodeRegEx,"$1 $2").toUpperCase();
	} else {
		return p;
	}
}

function enterAddManually()
{	
	$('id_town').set('value','').removeClass('disabled').disabled=false;
	$('id_county').set('value','').removeClass('disabled').disabled=false;
	
	$('td_address').set('html','<input type="text" id="id_address" class="text txtbx183" value="" name="address" />');
}


function enterAddressManually() {
/*	$('id_address').getParent().set('html','<input type="text" id="id_address" class="text txtbx183" value="" name="address" />');
//	var citytr=new Element('tr').setProperty('id','tr_city');
	citytr.injectAfter($('id_address').getParent('tr'));
	citytr.set('html','<td><label for="id_town">Town/City *</label></td><td><input type="text" id="id_town" class="text txtbx183" value="" name="town" /></td>');*/
	$$('#ajaxAddress input.disabled').each(function(input) {
		input.removeClass('disabled');
		input.removeProperty('disabled');
	});
	$('id_address').focus();
	if ($('enterAddressManually')!=null) $('enterAddressManually').destroy();
}