svn commit: r714238 - in /ofbiz/trunk/applications: ecommerce/script/org/ofbiz/ecommerce/customer/ ecommerce/webapp/ecommerce/customer/profile/ ecommerce/webapp/ecommerce/images/ ecommerce/webapp/ecommerce/order/ ecommerce/widget/ order/servicedef/ par...

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r714238 - in /ofbiz/trunk/applications: ecommerce/script/org/ofbiz/ecommerce/customer/ ecommerce/webapp/ecommerce/customer/profile/ ecommerce/webapp/ecommerce/images/ ecommerce/webapp/ecommerce/order/ ecommerce/widget/ order/servicedef/ par...

mor-2
Author: mor
Date: Sat Nov 15 04:08:36 2008
New Revision: 714238

URL: http://svn.apache.org/viewvc?rev=714238&view=rev
Log:
Now on One page checkout, new profile and manage address pages state is an optional field (cause some countries does not have states).
Patch applied from Jira issue OFBIZ-2043 (https://issues.apache.org/jira/browse/OFBIZ-2043).
Thanks to Surya Kusumakar, Onima Kasliwal, Kirti Dhakad and others.


Modified:
    ofbiz/trunk/applications/ecommerce/script/org/ofbiz/ecommerce/customer/CheckoutMapProcs.xml
    ofbiz/trunk/applications/ecommerce/webapp/ecommerce/customer/profile/EditBillToAddress.ftl
    ofbiz/trunk/applications/ecommerce/webapp/ecommerce/customer/profile/EditPostalAddress.ftl
    ofbiz/trunk/applications/ecommerce/webapp/ecommerce/customer/profile/EditShipToAddress.ftl
    ofbiz/trunk/applications/ecommerce/webapp/ecommerce/customer/profile/ManageAddress.ftl
    ofbiz/trunk/applications/ecommerce/webapp/ecommerce/customer/profile/NewCustomer.ftl
    ofbiz/trunk/applications/ecommerce/webapp/ecommerce/customer/profile/ViewProfile.ftl
    ofbiz/trunk/applications/ecommerce/webapp/ecommerce/images/checkoutProcess.js
    ofbiz/trunk/applications/ecommerce/webapp/ecommerce/images/geoAutoCompleter.js
    ofbiz/trunk/applications/ecommerce/webapp/ecommerce/images/profile.js
    ofbiz/trunk/applications/ecommerce/webapp/ecommerce/order/OnePageCheckoutProcess.ftl
    ofbiz/trunk/applications/ecommerce/widget/CustomerScreens.xml
    ofbiz/trunk/applications/order/servicedef/services.xml
    ofbiz/trunk/applications/party/script/org/ofbiz/party/party/PartyServices.xml

Modified: ofbiz/trunk/applications/ecommerce/script/org/ofbiz/ecommerce/customer/CheckoutMapProcs.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/ecommerce/script/org/ofbiz/ecommerce/customer/CheckoutMapProcs.xml?rev=714238&r1=714237&r2=714238&view=diff
==============================================================================
--- ofbiz/trunk/applications/ecommerce/script/org/ofbiz/ecommerce/customer/CheckoutMapProcs.xml (original)
+++ ofbiz/trunk/applications/ecommerce/script/org/ofbiz/ecommerce/customer/CheckoutMapProcs.xml Sat Nov 15 04:08:36 2008
@@ -105,6 +105,9 @@
         </process>
         <process field="shipToStateProvinceGeoId">
             <copy to-field="stateProvinceGeoId"/>
+            <not-empty>
+                <fail-property resource="EcommerceUiLabels" property="PartyStateMissingError"/>
+            </not-empty>
         </process>
         <process field="shipToPostalCode">
             <copy to-field="postalCode"/>
@@ -147,6 +150,9 @@
         </process>
         <process field="billToStateProvinceGeoId">
             <copy to-field="stateProvinceGeoId"/>
+            <not-empty>
+                <fail-property resource="EcommerceUiLabels" property="PartyStateMissingError"/>
+            </not-empty>
         </process>
         <process field="billToPostalCode">
             <copy to-field="postalCode"/>

Modified: ofbiz/trunk/applications/ecommerce/webapp/ecommerce/customer/profile/EditBillToAddress.ftl
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/ecommerce/webapp/ecommerce/customer/profile/EditBillToAddress.ftl?rev=714238&r1=714237&r2=714238&view=diff
==============================================================================
--- ofbiz/trunk/applications/ecommerce/webapp/ecommerce/customer/profile/EditBillToAddress.ftl (original)
+++ ofbiz/trunk/applications/ecommerce/webapp/ecommerce/customer/profile/EditBillToAddress.ftl Sat Nov 15 04:08:36 2008
@@ -52,28 +52,28 @@
       </span>
     </div>
     <div class="form-row">
-      <label>${uiLabelMap.PartyState}*</label>
+      <label>${uiLabelMap.PartyCountry}*</label>
       <span>
-        <select name="stateProvinceGeoId" id="billToStateProvinceGeoId" class="left required" style="width: 70%">
-          <#if billToStateProvinceGeoId?exists>
-            <option value='${billToStateProvinceGeoId?if_exists}'>${billToStateProvinceGeo?default(billToStateProvinceGeoId?if_exists)}</option>
+        <select name="countryGeoId" id="billToCountryGeoId" class="left required" style="width: 70%">
+          <#if billToCountryGeoId??>
+            <option value='${billToCountryGeoId!}'>${billToCountryProvinceGeo!(billToCountryGeoId!)}</option>
           </#if>
-          <option value="">${uiLabelMap.PartyNoState}</option>
-          ${screens.render("component://common/widget/CommonScreens.xml#states")}
+          ${screens.render("component://common/widget/CommonScreens.xml#countries")}
         </select>
-        <span id="advice-required-billToStateProvinceGeoId" style="display: none" class="errorMessage">(required)</span>
+        <span id="advice-required-billToCountryGeoId" style="display: none" class="errorMessage">(required)</span>
       </span>
     </div>
-    <div class="form-row">
-      <label>${uiLabelMap.PartyCountry}*</label>
+    <div id="billToStates" class="form-row">
+      <label>${uiLabelMap.PartyState}*<span id="advice-required-billToStateProvinceGeoId" style="display: none" class="errorMessage">(required)</span></label>
       <span>
-        <select name="countryGeoId" id="billToCountryGeoId" class="left required" style="width: 70%">
-          <#if billToCountryGeoId?exists>
-            <option value='${billToCountryGeoId?if_exists}'>${billToCountryProvinceGeo?default(billToCountryGeoId?if_exists)}</option>
+        <select name="stateProvinceGeoId" id="billToStateProvinceGeoId" style="width: 70%">
+          <#if billToStateProvinceGeoId?has_content>
+            <option value='${billToStateProvinceGeoId!}'>${billToStateProvinceGeo!(billToStateProvinceGeoId!)}</option>
+          <#else>
+            <option value="_NA_">${uiLabelMap.PartyNoState}</option>
           </#if>
-          ${screens.render("component://common/widget/CommonScreens.xml#countries")}
+          ${screens.render("component://common/widget/CommonScreens.xml#states")}
         </select>
-        <span id="advice-required-billToCountryGeoId" style="display: none" class="errorMessage">(required)</span>
       </span>
     </div>
     <#if billToTelecomNumber?has_content>

Modified: ofbiz/trunk/applications/ecommerce/webapp/ecommerce/customer/profile/EditPostalAddress.ftl
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/ecommerce/webapp/ecommerce/customer/profile/EditPostalAddress.ftl?rev=714238&r1=714237&r2=714238&view=diff
==============================================================================
--- ofbiz/trunk/applications/ecommerce/webapp/ecommerce/customer/profile/EditPostalAddress.ftl (original)
+++ ofbiz/trunk/applications/ecommerce/webapp/ecommerce/customer/profile/EditPostalAddress.ftl Sat Nov 15 04:08:36 2008
@@ -53,32 +53,33 @@
       </span>
     </div>
     <div class="form-row">
-      <label>${uiLabelMap.PartyState}*</label>
-      <span>
-        <select name="stateProvinceGeoId" id="stateProvinceGeoId_${contactMech.contactMechId}" class="left required" style="width: 70%">
-          <#if postalAddress.stateProvinceGeoId?exists>
-            <#assign geo = delegator.findOne("Geo", Static["org.ofbiz.base.util.UtilMisc"].toMap("geoId", postalAddress.stateProvinceGeoId), true)>
-            <option value='${postalAddress.stateProvinceGeoId}'>${geo.geoName?default(postalAddress.stateProvinceGeoId)}</option>
-          </#if>
-          <option value="">${uiLabelMap.PartyNoState}</option>
-          ${screens.render("component://common/widget/CommonScreens.xml#states")}
-        </select>
-        <span id="advice-required-stateProvinceGeoId_${contactMech.contactMechId}" style="display: none" class="errorMessage">(required)</span>
-      </span>
-    </div>
-    <div class="form-row">
       <label>${uiLabelMap.PartyCountry}*</label>
       <span>
         <select name="countryGeoId" id="countryGeoId_${contactMech.contactMechId}" class="left required" style="width: 70%">
-          <#if postalAddress.countryGeoId?exists>
+          <#if postalAddress.countryGeoId??>
             <#assign geo = delegator.findOne("Geo", Static["org.ofbiz.base.util.UtilMisc"].toMap("geoId", postalAddress.countryGeoId), true)>
-            <option value='${postalAddress.countryGeoId}'>${geo.geoName?default(postalAddress.countryGeoId)}</option>
+            <option value="${postalAddress.countryGeoId}">${geo.geoName!(postalAddress.countryGeoId)}</option>
           </#if>
           ${screens.render("component://common/widget/CommonScreens.xml#countries")}
         </select>
         <span id="advice-required-countryGeoId_${contactMech.contactMechId}" style="display: none" class="errorMessage">(required)</span>
       </span>
     </div>
+    <div id="states_${contactMech.contactMechId}" class="form-row">
+      <label>${uiLabelMap.PartyState}*</label>
+      <span>
+        <select name="stateProvinceGeoId" id="stateProvinceGeoId_${contactMech.contactMechId}" style="width: 70%">
+          <#if postalAddress.stateProvinceGeoId??>
+            <#assign geo = delegator.findOne("Geo", Static["org.ofbiz.base.util.UtilMisc"].toMap("geoId", postalAddress.stateProvinceGeoId), true)>
+            <option value="${postalAddress.stateProvinceGeoId}">${geo.geoName!(postalAddress.stateProvinceGeoId)}</option>
+          <#else>
+            <option value="_NA_">${uiLabelMap.PartyNoState}</option>
+          </#if>
+          ${screens.render("component://common/widget/CommonScreens.xml#states")}
+        </select>
+        <span id="advice-required-stateProvinceGeoId_${contactMech.contactMechId}" style="display: none" class="errorMessage">(required)</span>
+      </span>
+    </div>
     <div class="form-row">
       <b>${uiLabelMap.EcommerceMyDefaultBillingAddress}</b>
       <input type="checkbox" name="setBillingPurpose" value="Y" <#if setBillingPurpose?exists>checked</#if>/>

Modified: ofbiz/trunk/applications/ecommerce/webapp/ecommerce/customer/profile/EditShipToAddress.ftl
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/ecommerce/webapp/ecommerce/customer/profile/EditShipToAddress.ftl?rev=714238&r1=714237&r2=714238&view=diff
==============================================================================
--- ofbiz/trunk/applications/ecommerce/webapp/ecommerce/customer/profile/EditShipToAddress.ftl (original)
+++ ofbiz/trunk/applications/ecommerce/webapp/ecommerce/customer/profile/EditShipToAddress.ftl Sat Nov 15 04:08:36 2008
@@ -52,30 +52,30 @@
       </span>
     </div>
     <div class="form-row">
-      <label>${uiLabelMap.PartyState}*</label>
-      <span>
-        <select name="stateProvinceGeoId" id="shipToStateProvinceGeoId" class="left required" style="width: 70%">
-          <#if shipToStateProvinceGeoId?exists>
-            <option value='${shipToStateProvinceGeoId?if_exists}'>${shipToStateProvinceGeo?default(shipToStateProvinceGeoId?if_exists)}</option>
-          </#if>
-          <option value="">${uiLabelMap.PartyNoState}</option>
-          ${screens.render("component://common/widget/CommonScreens.xml#states")}
-        </select>
-        <span id="advice-required-shipToStateProvinceGeoId" style="display: none" class="errorMessage">(required)</span>
-      </span>
-    </div>
-    <div class="form-row">
       <label>${uiLabelMap.PartyCountry}*</label>
       <span>
         <select name="countryGeoId" id="shipToCountryGeoId" class="left required" style="width: 70%">
-          <#if shipToCountryGeoId?exists>
-            <option value='${shipToCountryGeoId?if_exists}'>${shipToCountryProvinceGeo?default(shipToCountryGeoId?if_exists)}</option>
+          <#if shipToCountryGeoId??>
+            <option value="${shipToCountryGeoId!}">${shipToCountryProvinceGeo!(shipToCountryProvinceGeoId!)}</option>
           </#if>
           ${screens.render("component://common/widget/CommonScreens.xml#countries")}
         </select>
         <span id="advice-required-shipToCountryGeoId" style="display: none" class="errorMessage">(required)</span>
       </span>
     </div>
+    <div id="shipToStates" class="form-row">
+      <label>${uiLabelMap.PartyState}*<span id="advice-required-shipToStateProvinceGeoId" style="display: none" class="errorMessage">(required)</span></label>
+      <span>
+        <select name="stateProvinceGeoId" id="shipToStateProvinceGeoId" style="width: 70%">
+          <#if shipToStateProvinceGeoId?has_content>
+            <option value='${shipToStateProvinceGeoId!}'>${shipToStateProvinceGeo!(shipToStateProvinceGeoId!)}</option>
+          <#else>
+            <option value="_NA_">${uiLabelMap.PartyNoState}</option>
+          </#if>
+          
+        </select>
+      </span>
+    </div>
     <#if shipToTelecomNumber?has_content>
       <div class="form-row">
         <div class="field-label">

Modified: ofbiz/trunk/applications/ecommerce/webapp/ecommerce/customer/profile/ManageAddress.ftl
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/ecommerce/webapp/ecommerce/customer/profile/ManageAddress.ftl?rev=714238&r1=714237&r2=714238&view=diff
==============================================================================
--- ofbiz/trunk/applications/ecommerce/webapp/ecommerce/customer/profile/ManageAddress.ftl (original)
+++ ofbiz/trunk/applications/ecommerce/webapp/ecommerce/customer/profile/ManageAddress.ftl Sat Nov 15 04:08:36 2008
@@ -58,24 +58,30 @@
           </div>
         </div>
         <div class="form-row">
-          ${uiLabelMap.PartyState}*
-          <span id="advice-required-stateProvinceGeoId" style="display: none" class="errorMessage">(required)</span>
-          <div class="form-field">
-            <select name="stateProvinceGeoId" id="stateProvinceGeoId" class="required" style="width: 70%">
-              <option value="">${uiLabelMap.PartyNoState}</option>
-              ${screens.render("component://common/widget/CommonScreens.xml#states")}
-            </select>
-          </div>
-        </div>
-        <div class="form-row">
           ${uiLabelMap.PartyCountry}*
           <span id="advice-required-countryGeoId" style="display: none" class="errorMessage">(required)</span>
           <div class="form-field">
             <select name="countryGeoId" id="countryGeoId" class="required" style="width: 70%">
+              <#if countryGeoId??>
+                <option value="${countryGeoId}">${countryGeoId}</option>
+              </#if>
               ${screens.render("component://common/widget/CommonScreens.xml#countries")}
             </select>
           </div>
         </div>
+        <div id="states" class="form-row">
+          ${uiLabelMap.PartyState}*
+          <span id="advice-required-stateProvinceGeoId" style="display: none" class="errorMessage">(required)</span>
+          <div class="form-field">
+            <select name="stateProvinceGeoId" id="stateProvinceGeoId" style="width: 70%">
+              <#if stateProvinceGeoId?has_content>
+                <option value="${stateProvinceGeoId}">${stateProvinceGeoId}</option>
+              <#else>
+                <option value="_NA_">${uiLabelMap.PartyNoState}</option>
+              </#if>  
+            </select>
+          </div>
+        </div>
         <div class="form-row">
           <b>${uiLabelMap.EcommerceMyDefaultBillingAddress}</b>
           <input type="checkbox" name="setBillingPurpose" id="setBillingPurpose" value="Y" <#if setBillingPurpose?exists>checked</#if>/>
@@ -106,10 +112,12 @@
       <#if billToContactMechId?exists>
         ${billToAddress1?if_exists}<br/>
         <#if billToAddress2?has_content>${billToAddress2?if_exists}<br/></#if>
-        ${billToCity?if_exists},
-        ${billToStateProvinceGeoId?if_exists}
-        ${billToPostalCode?if_exists}<br/>
-        ${billToCountryGeoId?if_exists}<br/>
+        <#if billToStateProvinceGeoId?has_content && billToStateProvinceGeoId != "_NA_">
+          ${billToStateProvinceGeoId}
+        </#if>
+          ${billToCity?if_exists},
+          ${billToPostalCode?if_exists}<br/>
+          ${billToCountryGeoId?if_exists}<br/>
         <#if billToTelecomNumber?has_content>
           ${billToTelecomNumber.countryCode?if_exists}-
           ${billToTelecomNumber.areaCode?if_exists}-
@@ -133,10 +141,12 @@
       <#if shipToContactMechId?exists>
         ${shipToAddress1?if_exists}<br/>
         <#if shipToAddress2?has_content>${shipToAddress2?if_exists}<br/></#if>
-        ${shipToCity?if_exists},
-        ${shipToStateProvinceGeoId?if_exists}
-        ${shipToPostalCode?if_exists}<br/>
-        ${shipToCountryGeoId?if_exists}<br/>
+        <#if shipToStateProvinceGeoId?has_content && shipToStateProvinceGeoId != "_NA_">
+          ${shipToStateProvinceGeoId}
+        </#if>
+          ${shipToCity?if_exists},
+          ${shipToPostalCode?if_exists}<br/>
+          ${shipToCountryGeoId?if_exists}<br/>
         <#if shipToTelecomNumber?has_content>
           ${shipToTelecomNumber.countryCode?if_exists}-
           ${shipToTelecomNumber.areaCode?if_exists}-
@@ -171,10 +181,10 @@
           <#assign partyContactMech = partyContactMechValueMap.partyContactMech?if_exists>
           <#if !(partyContactMechValueMap.partyContactMechPurposes?has_content)>
             <#assign postalAddressFlag = "Y">
+            <#assign postalAddress = partyContactMechValueMap.postalAddress?if_exists>
             <div id="displayEditAddressForm_${contactMech.contactMechId}" class="popup" style="display: none;">
               <#include "EditPostalAddress.ftl"/>
             </div>
-            <#assign postalAddress = partyContactMechValueMap.postalAddress?if_exists>
             <#if postalAddress?exists>
               <div class="form-row">
                 <div class="form-label"></div>
@@ -183,7 +193,9 @@
                     ${postalAddress.address1}<br/>
                     <#if postalAddress.address2?has_content>${postalAddress.address2}<br/></#if>
                     ${postalAddress.city}
-                    <#if postalAddress.stateProvinceGeoId?has_content>,&nbsp;${postalAddress.stateProvinceGeoId}</#if>
+                    <#if postalAddress.stateProvinceGeoId?has_content && postalAddress.stateProvinceGeoId != "_NA_">
+                      ${postalAddress.stateProvinceGeoId}
+                    </#if>
                     &nbsp;${postalAddress.postalCode?if_exists}
                     <#if postalAddress.countryGeoId?has_content><br/>${postalAddress.countryGeoId}</#if>
                     <#if (!postalAddress.countryGeoId?has_content || postalAddress.countryGeoId?if_exists = "USA")>
@@ -199,7 +211,7 @@
               </div>
               <div class="form-row">
                 <span>
-                  <a id="update_${contactMech.contactMechId}" href="javascript:void(0)" class="buttontext popup_link">${uiLabelMap.CommonEdit}</a>&nbsp;
+                  <a id="update_${contactMech.contactMechId}" href="javascript:void(0)" class="buttontext popup_link" onclick="showState('${contactMech.contactMechId}')">${uiLabelMap.CommonEdit}</a>&nbsp;
                   <a href="<@ofbizUrl>deletePostalAddress?contactMechId=${contactMech.contactMechId}</@ofbizUrl>" class="buttontext">${uiLabelMap.CommonDelete}</a>&nbsp;&nbsp;
                 </span>
               </div>

Modified: ofbiz/trunk/applications/ecommerce/webapp/ecommerce/customer/profile/NewCustomer.ftl
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/ecommerce/webapp/ecommerce/customer/profile/NewCustomer.ftl?rev=714238&r1=714237&r2=714238&view=diff
==============================================================================
--- ofbiz/trunk/applications/ecommerce/webapp/ecommerce/customer/profile/NewCustomer.ftl (original)
+++ ofbiz/trunk/applications/ecommerce/webapp/ecommerce/customer/profile/NewCustomer.ftl Sat Nov 15 04:08:36 2008
@@ -90,26 +90,25 @@
         <div><input type="text" name="shipToPostalCode" id="shipToPostalCode" class="required" value="${parameters.shipToPostalCode?if_exists}" maxlength="10"/></div>
       </div>
       <div class="form-row">
-        <div class="field-label"><label for="shipToStateProvinceGeoId">${uiLabelMap.CommonState}* <span id="advice-required-shipToStateProvinceGeoId" style="display: none" class="errorMessage">(required)</span></label></div>
+        <div class="field-label"><label for="shipToCountryGeoId">${uiLabelMap.PartyCountry}* <span id="advice-required-shipToCountryGeoId" style="display: none" class="errorMessage">(required)</span></label></div>
         <div>
-          <select name="shipToStateProvinceGeoId" id="shipToStateProvinceGeoId" class='selectBox'>
-            <#if parameters.shipToStateProvinceGeoId?exists>
-              <#assign geo = delegator.findOne("Geo", Static["org.ofbiz.base.util.UtilMisc"].toMap("geoId", parameters.shipToStateProvinceGeoId), true)>
-              <option value='${parameters.shipToStateProvinceGeoId}'>${geo.geoName?default(parameters.shipToStateProvinceGeoId)}</option>
+          <select name="shipToCountryGeoId" id="shipToCountryGeoId">
+            <#if shipToCountryGeoId??>
+              <option value="${shipToCountryGeoId!}">${shipToCountryProvinceGeo!(shipToCountryProvinceGeoId!)}</option>
             </#if>
-            ${screens.render("component://common/widget/CommonScreens.xml#states")}
+            ${screens.render("component://common/widget/CommonScreens.xml#countries")}
           </select>
         </div>
-      </div>  
-      <div class="form-row">
-        <div class="field-label"><label for="shipToCountryGeoId">${uiLabelMap.PartyCountry}* <span id="advice-required-shipToCountryGeoId" style="display: none" class="errorMessage">(required)</span></label></div>
+      </div>
+      <div id='shipToStates' class="form-row">
+        <div class="field-label"><label for="state">${uiLabelMap.CommonState}*<span id="advice-required-shipToStateProvinceGeoId" style="display: none" class="errorMessage">(required)</span></label></div>
         <div>
-          <select name="shipToCountryGeoId" id="shipToCountryGeoId" class='selectBox'>
-            <#if parameters.shipToCountryGeoId?exists>
-              <#assign geo = delegator.findOne("Geo", Static["org.ofbiz.base.util.UtilMisc"].toMap("geoId", parameters.shipToCountryGeoId), true)>
-              <option value='${parameters.shipToCountryGeoId}'>${geo.geoName?default(parameters.shipToCountryGeoId)}</option>
+          <select id="shipToStateProvinceGeoId" name="shipToStateProvinceGeoId">
+            <#if shipToStateProvinceGeoId?has_content>
+              <option value='${shipToStateProvinceGeoId!}'>${shipToStateProvinceGeo!(shipToStateProvinceGeoId!)}</option>
+            <#else>
+               <option value="_NA_">${uiLabelMap.PartyNoState}</option>
             </#if>
-            ${screens.render("component://common/widget/CommonScreens.xml#countries")}
           </select>
         </div>
       </div>  
@@ -153,29 +152,28 @@
           <div><input type="text" name="billToPostalCode" id="billToPostalCode" class="required" value="${parameters.billToPostalCode?if_exists}" maxlength="10"/></div>
         </div>
         <div class="form-row">
-          <div class="field-label"><label for="billToStateProvinceGeoId">${uiLabelMap.CommonState}* <span id="advice-required-billToStateProvinceGeoId" style="display: none" class="errorMessage">(required)</span></label></div>
-          <div>
-            <select name="billToStateProvinceGeoId" id="billToStateProvinceGeoId" class="selectBox required">
-              <#if parameters.billToStateProvinceGeoId?exists>
-                <#assign geo = delegator.findOne("Geo", Static["org.ofbiz.base.util.UtilMisc"].toMap("geoId", parameters.billToStateProvinceGeoId), true)>
-                <option value='${parameters.billToStateProvinceGeoId}'>${geo.geoName?default(parameters.billToStateProvinceGeoId)}</option>
-              </#if>
-              ${screens.render("component://common/widget/CommonScreens.xml#states")}
-            </select>
-          </div>
+        <div class="field-label"><label for="billToCountryGeoId">${uiLabelMap.PartyCountry}* <span id="advice-required-billToCountryGeoId" style="display: none" class="errorMessage">(required)</span></label></div>
+        <div>
+          <select name="billToCountryGeoId" id="billToCountryGeoId" class='required selectBox'>
+            <#if billToCountryGeoId??>
+              <option value='${billToCountryGeoId!}'>${billToCountryProvinceGeo!(billToCountryGeoId!)}</option>
+            </#if>
+            ${screens.render("component://common/widget/CommonScreens.xml#countries")}
+          </select>
         </div>
-        <div class="form-row">
-          <div class="field-label"><label for="billToCountryGeoId">${uiLabelMap.PartyCountry}* <span id="advice-required-billToCountryGeoId" style="display: none" class="errorMessage">(required)</span></label></div>
-          <div>
-            <select name="billToCountryGeoId" id="billToCountryGeoId" class="selectBox required">
-              <#if parameters.billToCountryGeoId?exists>
-                <#assign geo = delegator.findOne("Geo", Static["org.ofbiz.base.util.UtilMisc"].toMap("geoId", parameters.billToCountryGeoId), true)>
-                <option value='${parameters.billToCountryGeoId}'>${geo.geoName?default(parameters.billToCountryGeoId)}</option>
-              </#if>
-              ${screens.render("component://common/widget/CommonScreens.xml#countries")}
-            </select>
-          </div>
+      </div>
+      <div id='billToStates' class="form-row">
+        <div class="field-label"><label for="state">${uiLabelMap.CommonState}*<span id="advice-required-billToStateProvinceGeoId" style="display: none" class="errorMessage">(required)</span></label></div>
+        <div>
+          <select id="billToStateProvinceGeoId" name="billToStateProvinceGeoId">
+            <#if billToStateProvinceGeoId?has_content>
+              <option value='${billToStateProvinceGeoId!}'>${billToStateProvinceGeo!(billToStateProvinceGeoId!)}</option>
+            <#else>
+              <option value="_NA_">${uiLabelMap.PartyNoState}</option>
+            </#if>
+          </select>
         </div>
+      </div>
         <div class="form-row">
           <div class="field-label">
             <label>${uiLabelMap.PartyPhoneNumber}*</label>

Modified: ofbiz/trunk/applications/ecommerce/webapp/ecommerce/customer/profile/ViewProfile.ftl
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/ecommerce/webapp/ecommerce/customer/profile/ViewProfile.ftl?rev=714238&r1=714237&r2=714238&view=diff
==============================================================================
--- ofbiz/trunk/applications/ecommerce/webapp/ecommerce/customer/profile/ViewProfile.ftl (original)
+++ ofbiz/trunk/applications/ecommerce/webapp/ecommerce/customer/profile/ViewProfile.ftl Sat Nov 15 04:08:36 2008
@@ -48,10 +48,12 @@
           <#if shipToContactMechId?exists>
             ${shipToAddress1?if_exists}<br/>
             <#if shipToAddress2?has_content>${shipToAddress2?if_exists}<br/></#if>
-            ${shipToCity?if_exists},
-            ${shipToStateProvinceGeoId?if_exists}
-            ${shipToPostalCode?if_exists}<br/>
-            ${shipToCountryGeoId?if_exists}<br/>
+            <#if shipToStateProvinceGeoId?has_content && shipToStateProvinceGeoId != "_NA_">
+              ${shipToStateProvinceGeoId}
+            </#if>
+              ${shipToCity?if_exists},
+              ${shipToPostalCode?if_exists}<br/>
+              ${shipToCountryGeoId?if_exists}<br/>
             <#if shipToTelecomNumber?has_content>
               ${shipToTelecomNumber.countryCode?if_exists}-
               ${shipToTelecomNumber.areaCode?if_exists}-
@@ -70,10 +72,12 @@
           <#if billToContactMechId?exists>
             ${billToAddress1?if_exists}<br/>
             <#if billToAddress2?has_content>${billToAddress2?if_exists}<br/></#if>
-            ${billToCity?if_exists},
-            ${billToStateProvinceGeoId?if_exists}
-            ${billToPostalCode?if_exists}<br/>
-            ${billToCountryGeoId?if_exists}<br/>
+            <#if billToStateProvinceGeoId?has_content && billToStateProvinceGeoId != "_NA_">
+              ${billToStateProvinceGeoId}
+            </#if>
+              ${billToCity?if_exists},
+              ${billToPostalCode?if_exists}<br/>
+              ${billToCountryGeoId?if_exists}<br/>
             <#if billToTelecomNumber?has_content>
               ${billToTelecomNumber.countryCode?if_exists}-
               ${billToTelecomNumber.areaCode?if_exists}-

Modified: ofbiz/trunk/applications/ecommerce/webapp/ecommerce/images/checkoutProcess.js
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/ecommerce/webapp/ecommerce/images/checkoutProcess.js?rev=714238&r1=714237&r2=714238&view=diff
==============================================================================
--- ofbiz/trunk/applications/ecommerce/webapp/ecommerce/images/checkoutProcess.js (original)
+++ ofbiz/trunk/applications/ecommerce/webapp/ecommerce/images/checkoutProcess.js Sat Nov 15 04:08:36 2008
@@ -103,10 +103,24 @@
 
     Event.observe('processOrderButton', 'click', processOrder);
 
-    // Get associate states for billing panel
-    Event.observe($('billToStateProvinceGeoId'), 'focus', function(){
-      getAssociatedBillingStateList('billingForm', 'billToStateProvinceGeoId');
-    });
+    if ($('shippingForm')) {
+        // Get associate states for Shipping Information
+        Event.observe($('shipToCountryGeoId'), 'change', function(){
+            getAssociatedStateList('shipToCountryGeoId', 'shipToStateProvinceGeoId', 'advice-required-shipToStateProvinceGeoId', 'shipToStates');
+        });
+        if($('shipToStateProvinceGeoId').value == "_NA_"){
+            getAssociatedStateList('shipToCountryGeoId', 'shipToStateProvinceGeoId', 'advice-required-shipToStateProvinceGeoId', 'shipToStates');
+        }
+    }
+    if ($('billingForm')) {
+        // Get associate states for Billing Information
+        Event.observe($('billToCountryGeoId'), 'change', function() {
+            getAssociatedStateList('billToCountryGeoId', 'billToStateProvinceGeoId', 'advice-required-billToStateProvinceGeoId', 'billToStates');
+        });
+        if($('billToStateProvinceGeoId').value == "_NA_"){
+            getAssociatedStateList('billToCountryGeoId', 'billToStateProvinceGeoId', 'advice-required-billToStateProvinceGeoId', 'billToStates');
+        }
+    }
 });
 
 // Check server side error
@@ -320,8 +334,9 @@
         $('billToCity').value = $F('shipToCity');
         $('billToPostalCode').value = $F('shipToPostalCode');
         $('billToCountryGeoId').value = $F('shipToCountryGeoId');
+        getAssociatedStateList('billToCountryGeoId', 'billToStateProvinceGeoId','advice-required-billToStateProvinceGeoId','billToStates');
         $('useShippingAddressForBilling').value = "Y";
-        $('billToStateProvinceGeoId').update("<option value = " + $F('shipToStateProvinceGeoId') + " > " + $('shipToStateProvinceGeo').value + " </option>");
+        $('billToStateProvinceGeoId').value = $F('shipToStateProvinceGeoId');
         Effect.BlindUp($('billingAddress'), {duration: 0.3});
     } else {
         Effect.BlindDown($('billingAddress'), {duration: 0.3});
@@ -526,7 +541,12 @@
     $('completedEmailAddress').update($('emailAddress').value);
     $('completedShipToAddress1').update($F('shipToAddress1'));
     $('completedShipToAddress2').update($('shipToAddress2').value);
-    var shipToGeo = $('shipToCity').value+","+$('shipToStateProvinceGeoId').value +" "+$('shipToCountryGeoId').value+" "+$('shipToPostalCode').value;
+    if ($('shipToStateProvinceGeoId').value == "_NA_") {
+        var shipToGeo = $('shipToCity').value+", "+$('shipToCountryGeoId').value+" "+$('shipToPostalCode').value;
+    }
+    else {
+        var shipToGeo = $('shipToCity').value+","+$('shipToStateProvinceGeoId').value +" "+$('shipToCountryGeoId').value+" "+$('shipToPostalCode').value;
+    }
     $('completedShipToGeo').update(shipToGeo);
     // set shipToContactMechId in Billing form.
     $('shipToContactMechIdInBillingForm').value = $F('shipToContactMechId');
@@ -547,7 +567,12 @@
     $('completedExpiryDate').update(expiryDate);
     $('completedBillToAddress1').update($F('billToAddress1'));
     $('completedBillToAddress2').update($F('billToAddress2'));
-    var billToGeo = $F('billToCity')+","+$F('billToStateProvinceGeoId') +" "+$F('billToCountryGeoId')+" "+$F('billToPostalCode');
+    if ($F('billToStateProvinceGeoId') == "_NA_") {
+        var billToGeo = $F('billToCity')+", "+$F('billToCountryGeoId')+" "+$F('billToPostalCode');
+    }
+    else {
+        var billToGeo = $F('billToCity')+", "+$F('billToStateProvinceGeoId') +" "+$F('billToCountryGeoId')+" "+$F('billToPostalCode');
+    }
     $('completedBillToGeo').update(billToGeo);
     $('paymentMethod').update($F('paymentMethodTypeId'));
     $('billToContactMechIdInShipingForm').value = $F('billToContactMechId');

Modified: ofbiz/trunk/applications/ecommerce/webapp/ecommerce/images/geoAutoCompleter.js
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/ecommerce/webapp/ecommerce/images/geoAutoCompleter.js?rev=714238&r1=714237&r2=714238&view=diff
==============================================================================
--- ofbiz/trunk/applications/ecommerce/webapp/ecommerce/images/geoAutoCompleter.js (original)
+++ ofbiz/trunk/applications/ecommerce/webapp/ecommerce/images/geoAutoCompleter.js Sat Nov 15 04:08:36 2008
@@ -19,11 +19,8 @@
 
 Event.observe(window, 'load', function() {
     // Autocompleter for shipping panel
-    getCountryList();
-    Event.observe('shipToCountryGeo', 'change', function() {
-        $('shipToStateProvinceGeo').value = "";
-        $('shipToStateProvinceGeoId').value = "";
-    });
+    // Preventing getCountryList() from calling and not removed all autocompleter functions so that we can reuse in future.
+    //getCountryList();
 });
 
 function getCountryList() {
@@ -49,10 +46,10 @@
 
 function setKeyAsParameterAndGetStateList(text, li) {
     countryHiddenTarget.value = li.id;
-    getAssociatedStateList();
+    getAssociatedStateListForAutoComplete();
 }
 
-function getAssociatedStateList() {
+function getAssociatedStateListForAutoComplete() {
     stateTargetField = $('shipToStateProvinceGeo');
     stateDivToPopulate = $('shipToStates');
     stateHiddenTarget = $('shipToStateProvinceGeoId');
@@ -71,9 +68,57 @@
         var stateName = state.split(': ');
         geos.set(stateName[1], stateName[0]);
     });
+    if (stateList.size() <= 1) {
+        $('shipToStateProvinceGeo').value = "No States/Provinces exists";
+        $('shipToStateProvinceGeoId').value = "_NA_";
+        Effect.Fade('shipStates', {duration: 0.0});
+        Effect.Fade('advice-required-shipToStateProvinceGeo', {duration: 0.0});
+        Event.stopObserving($('shipToStateProvinceGeo'), 'blur');
+    } else {
+        $('shipToStateProvinceGeo').value = "";
+        $('shipToStateProvinceGeoId').value = "";
+        Effect.Appear('shipStates', {duration: 0.0});
+        Event.observe($('shipToStateProvinceGeo'), 'blur', function() {
+            if ($('shipToStateProvinceGeo').value == "") {
+                Effect.Appear('advice-required-shipToStateProvinceGeo', {duration: 0.0});
+            }
+        });
+    }
     new Autocompleter.Local(stateTargetField, stateDivToPopulate, $H(geos), { partialSearch: false, afterUpdateElement: setKeyAsParameter });
 }
 
 function setKeyAsParameter(text, li) {
     stateHiddenTarget.value = li.id;
+}
+
+//Generic function for fetching country's associated state list.
+function getAssociatedStateList(countryId, stateId, errorId, divId) {
+    var optionList = [];
+    new Ajax.Request("getAssociatedStateList", {
+        asynchronous: false,
+        parameters: {countryGeoId:$F(countryId)},
+        onSuccess: function(transport) {
+            var data = transport.responseText.evalJSON(true);
+            stateList = data.stateList;
+            stateList.each(function(state) {
+                geoValues = state.split(': ');
+                optionList.push("<option value = "+geoValues[1]+" >"+geoValues[0]+"</option>");
+            });
+            $(stateId).update(optionList);
+            if (stateList.size() == 1) {
+                if ($(divId).visible() || $(errorId).visible()) {
+                    Effect.Fade(divId, {duration: 0.0});
+                    Effect.Fade(errorId, {duration: 0.0});
+                    Event.stopObserving(stateId, 'blur');
+                }
+            } else {
+                Effect.Appear(divId, {duration: 0.0});
+                Event.observe(stateId, 'blur', function() {
+                    if ($F(stateId) == "") {
+                        Effect.Appear(errorId, {duration: 0.0});
+                    }
+                });
+            }  
+        }
+    });
 }
\ No newline at end of file

Modified: ofbiz/trunk/applications/ecommerce/webapp/ecommerce/images/profile.js
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/ecommerce/webapp/ecommerce/images/profile.js?rev=714238&r1=714237&r2=714238&view=diff
==============================================================================
--- ofbiz/trunk/applications/ecommerce/webapp/ecommerce/images/profile.js (original)
+++ ofbiz/trunk/applications/ecommerce/webapp/ecommerce/images/profile.js Sat Nov 15 04:08:36 2008
@@ -8,6 +8,16 @@
         Event.observe($('emailAddress'), 'change', setUserNameFromEmail);
         Event.observe('useShippingAddressForBilling', 'click', useShippingAddressAsBillingToggle);
         Event.observe($('submitNewUserForm'), 'click', submitValidNewUser);
+        // Get associate states for Shipping Information
+        Event.observe($('shipToCountryGeoId'), 'change', function(){
+            getAssociatedStateList('shipToCountryGeoId', 'shipToStateProvinceGeoId', 'advice-required-shipToStateProvinceGeoId', 'shipToStates');
+        });
+        // Get associate states for Billing Information
+        Event.observe($('billToCountryGeoId'), 'change', function() {
+            getAssociatedStateList('billToCountryGeoId', 'billToStateProvinceGeoId', 'advice-required-billToStateProvinceGeoId', 'billToStates');
+        });
+        getAssociatedStateList('shipToCountryGeoId', 'shipToStateProvinceGeoId', 'advice-required-shipToStateProvinceGeoId', 'shipToStates');
+        getAssociatedStateList('billToCountryGeoId', 'billToStateProvinceGeoId', 'advice-required-billToStateProvinceGeoId', 'billToStates');
     }
     if ($('editUserForm')) {
         validateEditUser = new Validation('editUserForm', {immediate: true, onSubmit: false});
@@ -47,6 +57,31 @@
             validatePhoneNumber('billToPhoneRequired', 'billToContactNumber', 'billToCountryCode', 'billToAreaCode');
         });
     }
+    if ($('createPostalAddressForm')) {
+        // Get associate states for Postal Address Information
+        Event.observe($('countryGeoId'), 'change', function() {
+            getAssociatedStateList('countryGeoId', 'stateProvinceGeoId', 'advice-required-stateProvinceGeoId', 'states');
+        });
+        getAssociatedStateList('countryGeoId', 'stateProvinceGeoId', 'advice-required-stateProvinceGeoId', 'states');
+    }
+    if ($('editBillToPostalAddress')) {
+        // Get associate states for Billing Information
+        Event.observe($('billToCountryGeoId'), 'change', function() {
+            getAssociatedStateList('billToCountryGeoId', 'billToStateProvinceGeoId', 'advice-required-billToStateProvinceGeoId', 'billToStates');
+        });
+        if($('billToStateProvinceGeoId').value == "_NA_"){
+            getAssociatedStateList('billToCountryGeoId', 'billToStateProvinceGeoId', 'advice-required-billToStateProvinceGeoId', 'billToStates');
+        }
+    }
+    if ($('editShipToPostalAddress')) {
+        // Get associate states for Shipping Information
+        Event.observe($('shipToCountryGeoId'), 'change', function(){
+            getAssociatedStateList('shipToCountryGeoId', 'shipToStateProvinceGeoId', 'advice-required-shipToStateProvinceGeoId', 'shipToStates');
+        });
+        if($('shipToStateProvinceGeoId').value == "_NA_"){
+            getAssociatedStateList('shipToCountryGeoId', 'shipToStateProvinceGeoId', 'advice-required-shipToStateProvinceGeoId', 'shipToStates');
+        }
+    }
 });
 
 /*
@@ -96,6 +131,7 @@
         $('billToAddress2').value = $F('shipToAddress2');
         $('billToCity').value = $F('shipToCity');
         $('billToCountryGeoId').value = $F('shipToCountryGeoId');
+        getAssociatedStateList('billToCountryGeoId', 'billToStateProvinceGeoId', 'advice-required-billToStateProvinceGeoId', 'billToStates');
         $('billToStateProvinceGeoId').value = $F('shipToStateProvinceGeoId');
         $('billToPostalCode').value = $F('shipToPostalCode');
         
@@ -325,6 +361,7 @@
     });
     Event.observe($('shipToCountryGeoId'), 'change', function() {
         $('billToCountryGeoId').value = $F('shipToCountryGeoId')
+        getAssociatedStateList('billToCountryGeoId', 'billToStateProvinceGeoId', 'advice-required-billToStateProvinceGeoId', 'billToStates');
     });
     Event.observe($('shipToPostalCode'), 'change', function() {
         $('billToPostalCode').value = $F('shipToPostalCode')
@@ -349,4 +386,16 @@
     Validation.add('validate-passwordVerify', "", {
         equalToField : 'password'
     });
+}
+
+function showState(id) {
+    if ($('editPostalAddress_'+id)) {
+        // Get associate states for Postal Address Information
+        Event.observe($('countryGeoId_'+id), 'change', function() {
+            getAssociatedStateList('countryGeoId_'+id, 'stateProvinceGeoId_'+id, 'advice-required-stateProvinceGeoId_'+id, 'states_'+id);
+        });
+        if($('stateProvinceGeoId_'+id).value == "_NA_"){
+            getAssociatedStateList('countryGeoId_'+id, 'stateProvinceGeoId_'+id, 'advice-required-stateProvinceGeoId_'+id, 'states_'+id);    
+        }
+    }
 }
\ No newline at end of file

Modified: ofbiz/trunk/applications/ecommerce/webapp/ecommerce/order/OnePageCheckoutProcess.ftl
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/ecommerce/webapp/ecommerce/order/OnePageCheckoutProcess.ftl?rev=714238&r1=714237&r2=714238&view=diff
==============================================================================
--- ofbiz/trunk/applications/ecommerce/webapp/ecommerce/order/OnePageCheckoutProcess.ftl (original)
+++ ofbiz/trunk/applications/ecommerce/webapp/ecommerce/order/OnePageCheckoutProcess.ftl Sat Nov 15 04:08:36 2008
@@ -346,23 +346,27 @@
                         <label for="shipToCountryGeoId">${uiLabelMap.PartyCountry}<span class="requiredLabel">*<span id="advice-required-shipToCountryGeo" style="display:none" class="errorMessage"> (required)</span></label>
                       </div>
                       <div>
-                        <div>
-                          <input name="shipToCountryGeo" id="shipToCountryGeo" size="30" class="required" type="text" value="${shipToCountryProvinceGeo?if_exists}"/>
-                          <input name="countryGeoId" id="shipToCountryGeoId" type="hidden" value="${shipToCountryGeoId?if_exists}"/>
-                          <div id="shipToCountries" class="autocomplete" style="display:none"></div>
-                        </div>
+                        <select name="countryGeoId" id="shipToCountryGeoId" class="required selectBox">
+                          <#if shipToCountryGeoId??>
+                            <option value="${shipToCountryGeoId!}">${shipToCountryProvinceGeo!(shipToCountryProvinceGeoId!)}</option>
+                          </#if>
+                          ${screens.render("component://common/widget/CommonScreens.xml#countries")}
+                        </select>
                       </div>
                     </div>
-                    <div class="form-row">
+                    <div id="shipToStates" class="form-row">
                       <div class="field-label">
-                        <label for="state">${uiLabelMap.CommonState}</label>
+                        <label for="state">${uiLabelMap.CommonState}*<span id="advice-required-shipToStateProvinceGeoId" style="display:none" class="errorMessage">(required)</span></label>
                       </div>
                       <div>
-                        <div>
-                          <input name="shipToStateProvinceGeo" id="shipToStateProvinceGeo" size="30" type="text" value="${shipToStateProvinceGeo?if_exists}"/>
-                          <input name="shipToStateProvinceGeoId" id="shipToStateProvinceGeoId" type="hidden" value="${shipToStateProvinceGeoId?if_exists}"/>
-                          <div id="shipToStates" class="autocomplete" style="display:none"></div>
-                        </div>
+                        <select id="shipToStateProvinceGeoId" name="shipToStateProvinceGeoId">
+                          <#if shipToStateProvinceGeoId?has_content>
+                            <option value='${shipToStateProvinceGeoId!}'>${shipToStateProvinceGeo!(shipToStateProvinceGeoId!)}</option>
+                          <#else>
+                            <option value="_NA_">${uiLabelMap.PartyNoState}</option>
+                          </#if>
+                          ${screens.render("component://common/widget/CommonScreens.xml#states")}
+                        </select>
                       </div>
                     </div>
                   </td>
@@ -619,25 +623,26 @@
                           <label for="billToCountryGeoId">${uiLabelMap.PartyCountry}*<span id="advice-required-billToCountryGeoId" style="display:none" class="errorMessage"> (required)</span></label>
                         </div>
                         <div>
-                          <select name="countryGeoId" id="billToCountryGeoId" class="required selectBox">
-                            <#if billToCountryGeoId?exists>
-                              <option value="${billToCountryGeoId}">${billToCountryProvinceGeo}</option>
+                          <select name="countryGeoId" id="billToCountryGeoId">
+                            <#if billToCountryGeoId??>
+                              <option value='${billToCountryGeoId!}'>${billToCountryProvinceGeo!(billToCountryGeoId!)}</option>
                             </#if>
                             ${screens.render("component://common/widget/CommonScreens.xml#countries")}
                           </select>
                         </div>
                       </div>
-                      <div class="form-row">
+                      <div id="billToStates" class="form-row">
                         <div class="field-label">
-                           <label for="state">${uiLabelMap.CommonState}</label>
+                          <label for="state">${uiLabelMap.CommonState}*<span id="advice-required-billToStateProvinceGeoId" style="display:none" class="errorMessage"> (required)</span></label>
                         </div>
-                        <div>
-                          <select id="billToStateProvinceGeoId" name="billToStateProvinceGeoId" class="selectBox">
+                        <div>  
+                          <select id="billToStateProvinceGeoId" name="billToStateProvinceGeoId">
                             <#if billToStateProvinceGeoId?has_content>
-                              <option value="${billToStateProvinceGeoId}">${billToStateProvinceGeo}</option>
+                              <option value='${billToStateProvinceGeoId!}'>${billToStateProvinceGeo!(billToStateProvinceGeoId!)}</option>
                             <#else>
-                              <option value="">${uiLabelMap.PartyNoState}</option>
+                              <option value="_NA_">${uiLabelMap.PartyNoState}</option>
                             </#if>
+                             ${screens.render("component://common/widget/CommonScreens.xml#states")}
                           </select>
                         </div>
                       </div>

Modified: ofbiz/trunk/applications/ecommerce/widget/CustomerScreens.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/ecommerce/widget/CustomerScreens.xml?rev=714238&r1=714237&r2=714238&view=diff
==============================================================================
--- ofbiz/trunk/applications/ecommerce/widget/CustomerScreens.xml (original)
+++ ofbiz/trunk/applications/ecommerce/widget/CustomerScreens.xml Sat Nov 15 04:08:36 2008
@@ -525,6 +525,7 @@
                 <property-map resource="SecurityextUiLabels" map-name="uiLabelMap" global="true"/>
                 <set field="titleProperty" value="PageTitleNewCustomer"/>
                 <set field="layoutSettings.javaScripts[]" value="/ecommerce/images/profile.js" global="true"/>
+                <set field="layoutSettings.javaScripts[]" value="/ecommerce/images/geoAutoCompleter.js" global="true"/>
             </actions>
             <widgets>
                 <decorator-screen name="main-decorator" location="${parameters.mainDecoratorLocation}">
@@ -589,6 +590,7 @@
 
                 <set field="layoutSettings.javaScripts[+0]" value="/images/prototypejs/controls.js" global="true"/>
                 <set field="layoutSettings.javaScripts[]" value="/ecommerce/images/profile.js" global="true"/>
+                <set field="layoutSettings.javaScripts[]" value="/ecommerce/images/geoAutoCompleter.js" global="true"/>
                 <script location="component://ecommerce/webapp/ecommerce/WEB-INF/actions/customer/EditShippingAddress.groovy"/>
                 <script location="component://ecommerce/webapp/ecommerce/WEB-INF/actions/customer/EditBillingAddress.groovy"/>
                 <script location="component://ecommerce/webapp/ecommerce/WEB-INF/actions/customer/ViewProfile.groovy"/>

Modified: ofbiz/trunk/applications/order/servicedef/services.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/servicedef/services.xml?rev=714238&r1=714237&r2=714238&view=diff
==============================================================================
--- ofbiz/trunk/applications/order/servicedef/services.xml (original)
+++ ofbiz/trunk/applications/order/servicedef/services.xml Sat Nov 15 04:08:36 2008
@@ -857,7 +857,7 @@
         <attribute name="shipToAddress1" mode="IN" type="String" optional="false"/>
         <attribute name="shipToAddress2" mode="IN" type="String" optional="true"/>
         <attribute name="shipToCity" mode="IN" type="String" optional="false"/>
-        <attribute name="shipToStateProvinceGeoId" mode="IN" type="String" optional="true"/>
+        <attribute name="shipToStateProvinceGeoId" mode="IN" type="String" optional="false"/>
         <attribute name="shipToPostalCode" mode="IN" type="String" optional="false"/>
         <attribute name="shipToCountryGeoId" mode="IN" type="String" optional="false"/>
         <attribute name="shipToContactMechId" mode="IN" type="String" optional="true"/>
@@ -879,7 +879,7 @@
         <attribute name="billToAddress1" mode="IN" type="String" optional="false"/>
         <attribute name="billToAddress2" mode="IN" type="String" optional="true"/>
         <attribute name="billToCity" mode="IN" type="String" optional="false"/>
-        <attribute name="billToStateProvinceGeoId" mode="IN" type="String" optional="true"/>
+        <attribute name="billToStateProvinceGeoId" mode="IN" type="String" optional="false"/>
         <attribute name="billToPostalCode" mode="IN" type="String" optional="false"/>
         <attribute name="billToCountryGeoId" mode="IN" type="String" optional="false"/>
         <attribute name="shipToContactMechId" mode="IN" type="String" optional="true"/>

Modified: ofbiz/trunk/applications/party/script/org/ofbiz/party/party/PartyServices.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/party/script/org/ofbiz/party/party/PartyServices.xml?rev=714238&r1=714237&r2=714238&view=diff
==============================================================================
--- ofbiz/trunk/applications/party/script/org/ofbiz/party/party/PartyServices.xml (original)
+++ ofbiz/trunk/applications/party/script/org/ofbiz/party/party/PartyServices.xml Sat Nov 15 04:08:36 2008
@@ -920,7 +920,7 @@
             <field-to-list list-name="stateList" field-name="stateName"/>
         </iterate>
         <if-empty field="stateList">
-            <set field="noOption" value="No States/Provinces exists"/>
+            <set field="noOption" value="No States/Provinces exist: _NA_"/>
             <field-to-list list-name="stateList" field-name="noOption"/>
         </if-empty>
         <field-to-result field-name="stateList"/>