/**
  * Processes the user submitted form data in the Category Select page.
  * 
  * @return      array      The (un)updated data.
  */
 private function _getUpdatedUnitOptions($aPost, array $aInput, $oFactory)
 {
     $_iNumberOfCategories = count($aInput['categories']) + count($aInput['categories_exclude']);
     // Check the limit
     if ((isset($aPost['add']) || isset($aPost['exclude'])) && $this->_isNumberOfCategoryReachedLimit($_iNumberOfCategories)) {
         $oFactory->setSettingNotice($this->_getLimitNotice(true));
         return $aInput;
     }
     /*
      * Structure of the category array
      * 
      * md5( $aCurrentCategory['feed_url'] ) => array(
      *         'breadcrumb' => 'US > Books',
      *         'feed_url' => 'http://amazon....',    // the feed url of the category
      *         'page_url' => 'http://...'        // the page url of the category
      * 
      * );
      */
     $_oEncrypt = new AmazonAutoLinks_Encrypt();
     $aCategories = $aInput['categories'];
     $aExcludingCategories = $aInput['categories_exclude'];
     $aCurrentCategory = $aPost['category'];
     $aCurrentCategory['breadcrumb'] = $_oEncrypt->decode($aCurrentCategory['breadcrumb']);
     // Check if the "Add Category" button is pressed
     if (isset($aPost['add'])) {
         $aCategories[md5($aCurrentCategory['feed_url'])] = $aCurrentCategory;
     }
     if (isset($aPost['exclude'])) {
         $aExcludingCategories[md5($aCurrentCategory['feed_url'])] = $aCurrentCategory;
     }
     // Check if the "Remove Checked" button is pressed
     if (isset($aPost['remove'], $aPost['checkboxes'])) {
         foreach ($aPost['checkboxes'] as $_sKey => $_sName) {
             unset($aCategories[$_sName]);
             unset($aExcludingCategories[$_sName]);
         }
     }
     $aInput['categories'] = $aCategories;
     $aInput['categories_exclude'] = $aExcludingCategories;
     return $aInput;
 }
 protected function supportDeveloper($strAssociateID, $strLocale)
 {
     $oEncrypt = new AmazonAutoLinks_Encrypt();
     $strDevID = isset(AmazonAutoLinks_Properties::$arrTokens[$strLocale]) ? $oEncrypt->decode(AmazonAutoLinks_Properties::$arrTokens[$strLocale]) : $strAssociateID;
     return $this->oOption->isSupported() ? $strDevID : $strAssociateID;
 }