private void UpdateProvinces(string countryCode, TextBox ProvinceText, DropDownList ProvinceList, RequiredFieldValidator PostalCodeValidator)
        {
            //SEE WHETHER POSTAL CODE IS REQUIRED
            string[] countries = AbleContext.Current.Store.Settings.PostalCodeCountries.Split(",".ToCharArray());
            PostalCodeValidator.Enabled = (Array.IndexOf(countries, countryCode) > -1);
            //SEE WHETHER PROVINCE LIST IS DEFINED
            IList <Province> provinces = ProvinceDataSource.LoadForCountry(countryCode);

            if (provinces.Count > 0)
            {
                ProvinceText.Visible = false;
                ProvinceList.Visible = true;
                ProvinceList.Items.Clear();
                ProvinceList.Items.Add(String.Empty);
                foreach (Province province in provinces)
                {
                    string provinceValue = (!string.IsNullOrEmpty(province.ProvinceCode) ? province.ProvinceCode : province.Name);
                    ProvinceList.Items.Add(new ListItem(province.Name, provinceValue));
                }
            }
            else
            {
                ProvinceText.Visible = true;
                ProvinceList.Visible = false;
                ProvinceList.Items.Clear();
            }
            BillToProvinceRequired.Enabled = BillToProvinceList.Visible;
        }
        private void UpdateCountry()
        {
            //SEE WHETHER POSTAL CODE IS REQUIRED
            string[] countries = AbleContext.Current.Store.Settings.PostalCodeCountries.Split(",".ToCharArray());
            PostalCodeRequired.Enabled = (Array.IndexOf(countries, Country.SelectedValue) > -1);
            //SEE WHETHER PROVINCE LIST IS DEFINED
            IList <Province> provinces = ProvinceDataSource.LoadForCountry(Country.SelectedValue, "Name");

            if (provinces.Count > 0)
            {
                Province.Visible  = false;
                Province2.Visible = true;
                Province2.Items.Clear();
                Province2.Items.Add(string.Empty);
                foreach (Province province in provinces)
                {
                    string provinceValue = (!string.IsNullOrEmpty(province.ProvinceCode) ? province.ProvinceCode : province.Name);
                    Province2.Items.Add(new ListItem(province.Name, provinceValue));
                }
                ListItem selectedProvince = FindSelectedProvince();
                if (selectedProvince != null)
                {
                    selectedProvince.Selected = true;
                }
                Province2Required.Enabled = true;
                Province.Text             = string.Empty;
            }
            else
            {
                Province.Visible  = true;
                Province2.Visible = false;
                Province2.Items.Clear();
                Province2Required.Enabled = false;
            }
        }
        private void InitializeProvinces()
        {
            // LOAD PROVINCES FOR CURRENTLY SELECTED COUNTRY
            IList <Province> provinces = ProvinceDataSource.LoadForCountry(Country.SelectedValue, "Name");

            if (provinces.Count > 0)
            {
                // PROVINCES ARE FOUND, SO SHOW THE SELECTION
                phProvinceField.Visible = true;
                Province.Items.Add(string.Empty);
                foreach (Province province in provinces)
                {
                    string provinceValue = (!string.IsNullOrEmpty(province.ProvinceCode) ? province.ProvinceCode : province.Name);
                    Province.Items.Add(new ListItem(province.Name, provinceValue));
                }

                // ATTEMPT TO SELECT THE CORRECT PROVINCE
                bool foundProvince = false;
                if (Page.IsPostBack)
                {
                    // ON POSTBACK, TRY TO USE THE POSTED COUNTRY VALUE
                    foundProvince = SelectProvince(Request.Form[Province.UniqueID]);
                }

                // ON FIRST VISIT (OR INVALID POSTBACK) TRY TO USE THE USER BILLING COUNTRY
                if (!foundProvince)
                {
                    SelectProvince(_BillingAddress.Province);
                }
            }
        }
        protected void CountryChanged(object sender, EventArgs e)
        {
            //SEE WHETHER POSTAL CODE IS REQUIRED
            string[] countries = AbleContext.Current.Store.Settings.PostalCodeCountries.Split(",".ToCharArray());
            PostalCodeRequired.Enabled   = (Array.IndexOf(countries, Country.SelectedValue) > -1);
            USPostalCodeRequired.Enabled = (Country.SelectedValue == "US");
            CAPostalCodeRequired.Enabled = (Country.SelectedValue == "CA");
            //LOAD PROVINCES FOR SELECTED COUNTRY
            IList <Province> provinces = ProvinceDataSource.LoadForCountry(Country.SelectedValue, "Name");

            //WE WANT TO SHOW THE DROP DOWN IF THE COUNTRY HAS BEEN CHANGED BY THE CLIENT
            //AND ALSO IF PROVINCES ARE AVAILABLE FOR THIS COUNTRY
            if (provinces.Count > 0)
            {
                Province.Visible         = false;
                ProvinceRequired.Enabled = false;
                Province2.Visible        = true;
                Province2.Items.Clear();
                Province2.Items.Add(string.Empty);
                foreach (Province province in provinces)
                {
                    string provinceValue = (!string.IsNullOrEmpty(province.ProvinceCode) ? province.ProvinceCode : province.Name);
                    Province2.Items.Add(new ListItem(province.Name, provinceValue));
                }
                ListItem selectedProvince = Province2.Items.FindByValue(Province.Text);
                if (selectedProvince != null)
                {
                    selectedProvince.Selected = true;
                }
                Province2Required.Enabled = true;
            }
            else
            {
                //WE ONLY WANT A TEXTBOX TO SHOW
                //REQUIRE THE TEXTBOX IF THERE ARE PROVINCES
                Province.Visible         = true;
                ProvinceRequired.Enabled = (provinces.Count > 0);
                Province.Visible         = true;
                Province2.Visible        = false;
                Province2.Items.Clear();
                Province2Required.Enabled = false;
                //NOW THAT A TEXTBOX IS SHOWN, RESET THE FLAG TO DISPLAY DROPDOWN
                // _ShowProvinceList = false;
            }
            EditAddressPopup.Show();
            //UPDATE THE LAST SELECTED COUNTRY
            //_SelectedCountryCode = Country.SelectedValue;
        }