$(document).ready(function() { updateAddressesDisplay(true); }); //update the display of the addresses function updateAddressesDisplay(first_view) { // update content of delivery address updateAddressDisplay('delivery'); // update content of invoice address //if addresses have to be equals... var txtInvoiceTitle = $('ul#address_invoice li.address_title').html(); if ($('input[type=checkbox]#addressesAreEquals:checked').length == 1) { $('#address_invoice_form:visible').hide('fast'); $('ul#address_invoice').html($('ul#address_delivery').html()); $('ul#address_invoice li.address_title').html(txtInvoiceTitle); } else { $('#address_invoice_form:hidden').show('fast'); if ($('select#id_address_invoice').val()) updateAddressDisplay('invoice'); else { $('ul#address_invoice').html($('ul#address_delivery').html()); $('ul#address_invoice li.address_title').html(txtInvoiceTitle); } } if(!first_view) updateAddresses(); return true; } function updateAddressDisplay(addressType) { var idAddress = $('select#id_address_' + addressType + '').val(); $('ul#address_' + addressType + ' li.address_company').html(addresses[idAddress][0]); if(addresses[idAddress][0] == '') $('ul#address_' + addressType + ' li.address_company').hide(); else $('ul#address_' + addressType + ' li.address_company').show(); $('ul#address_' + addressType + ' li.address_name').html(addresses[idAddress][1] + ' ' + addresses[idAddress][2]); $('ul#address_' + addressType + ' li.address_address1').html(addresses[idAddress][3]); $('ul#address_' + addressType + ' li.address_address2').html(addresses[idAddress][4]); if(addresses[idAddress][4] == '') $('ul#address_' + addressType + ' li.address_address2').hide(); else $('ul#address_' + addressType + ' li.address_address2').show(); $('ul#address_' + addressType + ' li.address_city').html(addresses[idAddress][5] + ' ' + addresses[idAddress][6]); $('ul#address_' + addressType + ' li.address_country').html(addresses[idAddress][7] + (addresses[idAddress][8] != '' ? ' (' + addresses[idAddress][8] +')' : '')); // change update link var link = $('ul#address_' + addressType + ' li.address_update a').attr('href'); var expression = /id_address=\d+/; link = link.replace(expression, 'id_address='+idAddress); $('ul#address_' + addressType + ' li.address_update a').attr('href', link); } function updateAddresses() { var idAddress_delivery = $('select#id_address_delivery').val(); var idAddress_invoice = $('input[type=checkbox]#addressesAreEquals:checked').length == 1 ? idAddress_delivery : $('select#id_address_invoice').val(); $.ajax({ type: 'POST', url: baseDir + 'order.php', async: true, cache: false, dataType : "json", data: 'processAddress=true&step=2&ajax=true&id_address_delivery=' + idAddress_delivery + '&id_address_invoice=' + idAddress_invoice+ '&token=' + static_token , success: function(jsonData) { if (jsonData.hasError) { var errors = ''; for(error in jsonData.errors) //IE6 bug fix if(error != 'indexOf') errors += jsonData.errors[error] + "\n"; alert(errors); } }, error: function(XMLHttpRequest, textStatus, errorThrown) {alert("TECHNICAL ERROR: unable to save adresses \n\nDetails:\nError thrown: " + XMLHttpRequest + "\n" + 'Text status: ' + textStatus);} }); }