﻿function copyInvoiceAddress()
{
	$('customer_ShippingAddress_AddressLine').value = $('customer_Address_AddressLine').value;
	$('customer_ShippingAddress_AddressLineTwo').value = $('customer_Address_AddressLineTwo').value;
	$('customer_ShippingAddress_AddressLineThree').value = $('customer_Address_AddressLineThree').value;
	$('customer_ShippingAddress_County').value = $('customer_Address_County').value;
	$('customer_ShippingAddress_City').value = $('customer_Address_City').value;
	$('customer_ShippingAddress_Postcode').value = $('customer_Address_Postcode').value;
	$('customer_ShippingAddress_Country_Id').value = $('customer_Address_Country_Id').value;
}

function findAddresses()
{
	var postcode = document.forms[0]["customer.Address.Postcode"].value;
	bindAddresses(postcode, 'status');
}

function findShippingAddresses()
{
	var postcode = document.forms[0]["customer.ShippingAddress.Postcode"].value;
	bindAddresses(postcode, 'shipstatus');
}

function bindAddresses(postcode, status)
{
	if(postcode.length != 0)
	{
		var statusBox = $(status);
		statusBox.innerText = "Loading...";
		
		var ajax = new Ajax.Updater(
         status,
         '/account/lookupaddresses.rails?postcode=' + escape(postcode) + '&prefix=' + status,
         {
			method:'get',
            onFailure: findFailure
         });
	}
}

function findFailure(req)
{
	alert('Sorry, the address was not found');
}

function bindAddress(list, prefix)
{
	var chosenAddress = list.options[list.selectedIndex];
	var id = chosenAddress.value;
	
	if(id.length > 0)
		fetchAddress(id, prefix);
}

function fetchAddress(id, prefix)
{
	var url = '/account/lookupaddress.rails';
		new Ajax.Request(url, {
					method: 'get',
					parameters: {id: id}, 
					onFailure: findFailure,
					onSuccess: function(transport) { populateAddress(transport,prefix);	}	 
				});
}

function populateAddress(req, prefix)
{
	var response = req.responseText;
	var address = response.evalJSON();
	$(prefix+'Postcode').value = address.Postcode;
	$(prefix+'AddressLine').value = address.LineOne;
	$(prefix + 'AddressLineTwo').value = address.LineTwo;
	$(prefix + 'AddressLineThree').value = address.LineThree;
	$(prefix+'City').value = address.Town;
	$(prefix+'County').value = address.County;
}


