Event.observe(document, 'dom:loaded', function() {        
  if (!$('product_search_form')) {
    return;
  }

  $$('.product h2').each(function(p) {
    p.observe('click', function(ev) {
      var el = ev.findElement('DIV');

      var product_detail = $(el.id.replace('product_', 'product_detail_'));
      if (product_detail.visible()) {
        product_detail.slideUp({duration: 0.3});
        el.down('H2').removeClassName('active');
      }
      else {
        product_detail.slideDown({duration: 0.3});
        el.down('H2').addClassName('active');
      }
    });
  });

  $('product_search_form').observe('submit', function(e) {
    var q = $('q').value;
    
    var pattern = RegExp(q, 'i');
    var matches = [];
    
    for (var i = product_search_strings.length - 1; i >= 0; i--){
      if (product_search_strings[i].match(pattern)) {
        matches[matches.length] = product_ids[i];
      }
    }
    
    $$('.product').invoke('hide');
    
    for (var i = matches.length - 1; i >= 0; i--){
        $('product_'+matches[i]).show();
    }
    
    Event.stop(e);
    return false;
  })

  $$('.product_detail').invoke('hide');
});
