/* 
Javascript Document
www.electricaltrainingcourse.co.uk
Copyright 2009 PASS Ltd
$Id: booking-form.js 103 2009-06-23 10:11:41Z john.miller $
*/

/*
# validateContactForm function
#
# validates booking form fields
*/
function validateContactForm()
{
	var errorMsg = 'Please complete all required fields to continue.';
	var reqd = ['cf-title','cf-forename','cf-surname','cf-add1','cf-postcode','cf-tel','cf-email'];
	for(a=0; a<reqd.length; a++)
	{
		try
		{
		  if($('#'+reqd[a]).val().length<1)throw reqd[a];
		}
		catch(err)
		{
		  $('#' + err).focus();
		  $('.js-response-error').html(errorMsg);
		  $('div.hidden-address').show();
		  return false;
		}
	}
	var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if(!filter.test($('#cf-email').val()))
	{
		 $('#cf-email').focus();
		 $('.js-response-error').html('Please enter a valid email address to continue.');
		 return false;
	}
	return true;
};

/*
#
*/
function getAddressFromPostcode()
{
	/*
	# show loading
	*/
	
	/*
	# get values
	*/
	var postcode = $('#cf-postcode').val().toUpperCase();
	
	if(postcode.length<1)
	{
		$('#cf_postcode').focus();
		$('.js-response-error').html('Please enter your postcode to continue');
		return false;
	}
	
	if(!isPostcode(postcode))
	{
		$('#cf_postcode').focus();
		$('.js-response-error').html('Please enter a valid postcode to continue');
		return false;
	}
	
	/*
	# send request
	*/
	$.ajax({
		type: "POST",
		url: urlRoot+"/ajax/get-address-data-by-postcode/"+postcode,
		success: function(res)
		{
			try
			{
				var str = '';
				var target = $('#address-selector');
				var recordCount = parseInt($(res).find("recordcount").text());
				if(recordCount>0)
				{
					target.html('<p>Please select your address from the list below. If your address is not shown please check the postcode is correct or enter the address manually below.</p>');
				}
				else
				{
					target.html('<p>Sorry, your address was not found. Please check the postcode is correct or enter the address manually below.</p>');
				}
				
				$(res).find("record").each(function()
						{
					var record = $(this);
					var lineid = record.find("id").text();
					var line = record.find("line").text();
					target.append('<a href="#" onclick="getAddressFromId(\'' + lineid + '\');return false;" title="Set my address to ' + line + '" >' + line + '</a>');
				});
				target.slideDown(200);
				return true;
			} 
			catch(er)
			{
				$('.js-response-error').html(er.message);
				$('#address-selector').slideUp(200);
				return false;
			}
		}
	});	
}

/*
#
*/
function getAddressFromId(addressId)
{
	/*
	# show loading
	*/
	
	if(addressId.length<1)
	{
		$('.js-response-error').html('Sorry, there was a problem. Please enter your details manually');
		$('#address-selector').slideUp(200);
		return false;
	}
	
	/*
	# send request
	*/
	$.ajax({
		type: "POST",
		url: urlRoot+"/ajax/get-full-address-by-id/"+addressId,
		success: function(res){
			try {
				$(res).find("record").each(function(){
					var record = $(this);
					
					$('#cf-postcode').val(record.find("postcode").text());
					$('#cf-add1').val(record.find("line1").text());
					$('#cf-add2').val(record.find("line2").text());
					$('#cf-add3').val(record.find("line3").text());
					
					var tn = record.find("town").text();
					if(tn.length<1)tn=record.find("county").text();
					$('#cf-city').val(tn);
					
					//$('#cf-country').val(record.find("country").text());
					
				});
				$('#address-selector').slideUp(200);
				return true;
			} catch(er) {
				$('.js-response-error').html(er.message);
				$('#address-selector').slideUp(200);
				return false;
			}
		}
	});	
}
