var quicksearch = (function(){

  var search = {
    container: $('div.search'),
    elem: $('div.search div.advanced-search'),
    categories: $('div.search div.advanced-search fieldset.category input[type=checkbox]')
  };

  function addButton() {
    var button = $('<a></a>', {
      text: search.elem.find('fieldset.category li:first-child input').attr('title'),
      'class': 'adv_search'
    }).prependTo(search.container).click(toggleContainer);
  };

  var toggleContainer = function() {
    var height = search.elem.height();

    if(search.elem.is(':visible')) {
      search.elem.fadeOut();
      $(document).unbind('mousedown');
    }
    else {
      $(document).bind('mousedown', function(event) {
        if($(event.target).parents('div.advanced-search').length === 0 ) {
          toggleContainer();
        }
      });
      search.elem.css({height:0, opacity:0, overflow:"hidden"})
                 .animate({height:height, opacity:1});
    }
  };

  function bindCategories() {
    search.categories.click(function() {
      setCategoryText.call(this);
    });
  };

  function setCategoryText() {
    var button = search.container.find('a.adv_search');

    button.text(this.title === 'Everything' ? 'Everything' : 'Custom');

  };

  addButton();
  bindCategories();

});

$(function(){
  quicksearch();
});

