public function allowedAddress()
 {
     $cache = new waSerializeCache(__CLASS__ . __FUNCTION__, 86400, 'webasyst');
     if (!($addresses = $cache->get())) {
         $addresses = array();
         /* countries */
         $countries = $this->request('ems.get.locations', array('type' => 'countries'));
         $country_model = new waCountryModel();
         $map = $country_model->getAll('iso2letter');
         $address = array('country' => array());
         foreach ($countries['locations'] as $country) {
             if (ifset($country['type']) == 'countries' && ($value = strtolower(ifset($country['value']))) && isset($map[$value])) {
                 $address['country'][] = $map[$value]['iso3letter'];
             }
         }
         $addresses[] = $address;
         /* regions */
         $region_model = new waRegionModel();
         $address = array('country' => 'rus', 'region' => array());
         $map = $region_model->getByCountry('rus');
         foreach ($map as $region) {
             if ($this->findTo(array('country' => 'rus', 'region_name' => $region['name']))) {
                 $address['region'][] = $region['code'];
             }
         }
         $addresses[] = $address;
         $cache->set($addresses);
     }
     return $addresses;
 }