For some reason osCommerce was written with only one line for the address when many real world addresses contain more than one line. This contribution adds an extra address line, an extra phone number, and allows the customer to specify separate default addresses for mailing, billing and shipping. This contribution also normalizes addresses entered in all uppercase or lowercase to mixed case and changes the state entry from a text field to a drop down list for any country that has zones defined. The country will default to the store country for new addresses and the state input will change to match the country whenever the country drop down is changed. Since three address are stored with orders (the default, billing and shipping) I've updated the order confirmation page so that the customer can also verify the default address (now known as the mailing address) and phone numbers along with all of the other information they double checked before.
On the admin side you are now able to edit any address for a customer and delete any customer address that is not set as a default address. I've also included a way to update a customers password since we occasionally get a call from someone who wants us to update their password for them. The customer info box will now also display the number of orders the customer has placed as well as the default addresses. Order editing will display the order id number in the heading and has been slightly rearranged to better display the addresses, phone numbers and email address.