/**
 * The Grocerus menu handlers.
 */

YAHOO.util.Event.onDOMReady(function(){
  var get_search_query = {
    success: function(o) {
      var result = YAHOO.lang.JSON.parse(o.responseText);
      var text = '';
      if( result.exists ) {
        text = '<a href="' + groc_root_url + 'upc/' + result.upc + '">' + result.name + '</a>';
        $('product_search_result').style.visibility = 'visible';
      } else {
        $('product_search_result').style.visibility = 'hidden';
      }
      $('product_search_result').innerHTML = text;
    },

    failure: function(o) {
      $('product_search_result').innerHTML = "Error!" + o;
    }
  };

  function execute_query() {
    var transaction =
      YAHOO.util.Connect.asyncRequest('GET',
        req_upc_exists + "/" + Upc.flesh_out($('product_search').last_query),
        get_search_query, null);
  }

  function check_search_query() {
    var query = this.value;
    if( Upc.is_valid(query) ) {
      if( this.last_query != query ) {
        this.last_query = query;
        execute_query();
      }
    } else {
      this.last_query = '';
      $('product_search_result').innerHTML = '';
    }
    return true;
  }

  YAHOO.util.Event.addListener($('product_search'), 'keyup', check_search_query);

  function clear_message() {
    $('message').style.visibility = 'hidden';
    $('message').style.position = 'absolute';
    return true;
  }
  YAHOO.util.Event.addListener($('messageok'), 'click', clear_message);
});

