function amazon_fetch($asin, $mode)
 {
     global $serendipity;
     if (!class_exists('serendipity_event_amazonchooser')) {
         return;
     }
     $country = trim($this->get_config('server'));
     list($country_url, $mode_list) = Amazon_country_code($country);
     $mode_names = Amazon_return_mode_array();
     if (!is_dir($serendipity['serendipityPath'] . 'templates_c/amazonget/')) {
         mkdir($serendipity['serendipityPath'] . 'templates_c/amazonget/');
     }
     if (!in_array($mode, $mode_list)) {
         $mode = "All";
     }
     $data = array();
     serendipity_plugin_api::hook_event('serendipity_event_amazonchooser_devinfo', $data);
     $AWSAccessKey = $data['dtoken'];
     $secretKey = $data['secretKey'];
     $AssociateTag = $data['aaid'];
     if (@(include_once "Cache/Lite.php")) {
         $cache_obj = new Cache_Lite(array('cacheDir' => $serendipity['serendipityPath'] . 'templates_c/amazonget/', 'automaticSerialization' => true, 'lifeTime' => 43200));
         $results = $cache_obj->get('amazonlookup' . $asin);
     }
     if (!$results['return_date']) {
         $results = Amazon_ItemLookup($AWSAccessKey, $AssociateTag, $secretKey, $mode, $asin, $country_url);
         if ($results['return_date'] && class_exists('Cache_Lite') && is_object($cache_obj)) {
             $cache_obj->save($results, 'amazonlookup' . $asin);
         }
     }
     if ($results['count'] == 0 || $results['return_count'] == 0) {
         $results['items'] = "";
     }
     return $results;
 }
 function get_amazon_item($matches)
 {
     global $serendipity;
     if (!is_dir($serendipity['serendipityPath'] . 'templates_c/amazonchooser/')) {
         mkdir($serendipity['serendipityPath'] . 'templates_c/amazonchooser/');
     }
     $content = false;
     $asin = $matches[1];
     $Searchindex = $matches[2];
     $country = trim($this->get_config('server'));
     list($country_url, $mode) = Amazon_country_code($country);
     if (@(include_once "Cache/Lite.php")) {
         $cache_obj = new Cache_Lite(array('cacheDir' => $serendipity['serendipityPath'] . 'templates_c/amazonchooser/', 'automaticSerialization' => true, 'lifeTime' => 3600));
         $content = $cache_obj->get('amazonchooser' . $asin);
     }
     if (!$content) {
         if (!is_object($serendipity['smarty'])) {
             serendipity_smarty_init();
         }
         if (isset($asin)) {
             $method = "lookup";
             $result = $this->Amazon_Call($method, $Searchindex, $asin, $country_url, 0);
         } else {
             $item_count = -1;
             $error_message = PLUGIN_EVENT_AMAZONCHOOSER_NOASIN;
         }
         $serendipity['smarty']->assign(array('plugin_amazonchooser_item_count' => $result['count'], 'plugin_amazonchooser_return_count' => $result['return_count'], 'plugin_amazonchooser_error_message' => $result['error_message'], 'plugin_amazonchooser_error_result' => $result['error_result'], 'plugin_amazonchooser_cache_time' => $result['return_date'], 'thingy' => $result['items'][0]));
         // use native API here - extends s9y version >= 1.3'
         $content = $this->parseTemplate('plugin_amazon_display.tpl');
         $content = str_replace("\n", '', $content);
         if (class_exists('Cache_Lite') && is_object($cache_obj)) {
             $cache_obj->save($content, 'amazonchooser' . $asin);
         }
     }
     return $content;
 }