
site.checkout.addressForm.init = site.checkout.addressForm.init.wrap( 
  function(proceed) {  
      this.errorKeys.push("required.last_name_alternate.address");
      this.errorKeys.push("required.first_name_alternate.address"); 
      
      proceed();
     //console.log("site.checkout.addressForm.init extended"); 
     
     //initialize Address Lookup for inline address form
     var f = site.checkout.initAddressLookupForm({
            lookupButtonNode    : site.checkout.addressForm.formContainerNode.select('a.address-lookup-submit')[0],
            postcodeInputNode   : site.checkout.addressForm.formContainerNode.select('.input_postal_code')[0],
            cityInputNode       : site.checkout.addressForm.formContainerNode.select('.input_city')[0],
            streetInputNode     : site.checkout.addressForm.formContainerNode.select('.input_address_1')[0],
            prefectureSelectNode: site.checkout.addressForm.formContainerNode.select('.prefecture_select')[0],
            resultContainerNode : site.checkout.addressForm.formContainerNode.select("div.lookup-results-container")[0]        
        });     
});
        
site.checkout.addressForm.populateForm = site.checkout.addressForm.populateForm.wrap( 
  function(proceed, addressData) {  
    proceed(addressData); 
    
    //console.log("site.checkout.addressForm.populateForm extended"); 
    var container = site.checkout.addressForm.formContainerNode;
   
    var altFirstNameNode = container.select('.input_firstname_alt')[0];
    if (altFirstNameNode) {
        altFirstNameNode.value = getProp("FIRST_NAME_ALTERNATE");
    }
    
    var altLastNameNode = container.select('.input_lastname_alt')[0];
    if (altLastNameNode) {
        altLastNameNode.value = getProp("LAST_NAME_ALTERNATE");
    }
    
    // select Prefecture in Select menu
    var prefectureSelectNode = container.select(".prefecture_select")[0];
    if (prefectureSelectNode) {
        var prefecture = getProp("STATE"); 
        var optsArray = $A(prefectureSelectNode.options);
        var opt = optsArray.detect(function(opt, idx) {
            if (opt.value === prefecture) {
                return opt;
            }
        });
        if (opt) {
            prefectureSelectNode.selectedIndex = optsArray.indexOf(opt);
        }
    } 
    
    function getProp(propName) {
    	return (addressData && addressData[propName]) ? addressData[propName] : "";  
    }
     
  });  