<?php

/**
 * @file
 * Sets up hook_search for Amazon items.
 *
 */

/**
 * Implements hook_permission.
 * @return unknown_type
 */
function amazon_search_permission() {
  return array(
    'access amazon search' =>  array(
      'title' => t('Access Amazon Search'),
      'description' => t('Perform searches on Amazon.'),
  ),
  );
}

/**
 * Implements hook_search_access().
 */
function amazon_search_search_access() {
  return user_access('access amazon search');
}

/**
 * Implements hook_search_info().
 */
function amazon_search_search_info() {
  return array(
    'title' => 'Amazon',
    'path' => 'amazon_search',
  );
}
/**
 * Implements hook_search_execute(). Implements remote Amazon searching.
 */
function amazon_search_search_execute($keys = NULL, $conditions = NULL) {
  $products = array();
  $items = amazon_search_simple_search($keys);
  foreach ($items as $item) {
    $products[] = array(
            'title' => '',
            'link' => check_url($item['detailpageurl']),
            'type' => check_plain($item['productgroup']),
            'snippet' => theme('amazon_item', array('item' => $item, 'style' => 'details')),
            'item' => $item,
    );
  }
  return $products;
}

/**
 * Perform the search.
 *
 * @param $keywords
 *   Keywords to be provided to Amazon.
 * @param $parameters
 *   Optional extra parameters to be passed to the Amazon API.
 * @return
 *   Array of Amazon items.
 */
function amazon_search_simple_search($keywords = '', $parameters = array()) {
  $parameters += array(
    'ResponseGroup' => 'Large',
    'SearchIndex' => 'All',
  );
  $parameters['Keywords'] = urlencode($keywords);
  drupal_alter('amazon_search_parameters', $parameters);

  $items = array();
  $results = amazon_http_request('ItemSearch', $parameters);
  foreach ($results->Items->Item as $xml) {
    $item = amazon_item_clean_xml($xml);
    $items[$item['asin']] = $item;
  }
  return $items;
}
