$(document).ready(function() {
  $('form#SearchForm .advanced_search a').one("click", function() {
    AdvancedSearch.show();
  });
  $('form#AdvancedSearch input').keyup(function() {
    update_query_from_advanced_search();
  });
  $('form#AdvancedSearch select').change(function() {
    update_query_from_advanced_search();
  });
});

function update_query_from_advanced_search() {
  var search_string = "";
  $('form#AdvancedSearch input, form#AdvancedSearch select').each(function(i) {
    if ($(this).attr("name") != "authenticity_token") { // remove the authenticity token
      var val = $(this).val();
      if (val != "") {
        // Quote value if required, and add to search string
        val = val.replace(/\"/g, "\\\"");
        if (val.match(/\s|\:|\"/)) {
          val = "\"" + val + "\"";
        }
        search_string += $(this).attr('id') + ":" + val + " ";
      }
    }
  });
  $('form#SearchForm .search_box input').val(search_string);
}
var AdvancedSearch = {
  PANEL_HEIGHT: 88,
  hide: function() {
    $('form#SearchForm .advanced_search a').unbind("click");
    $('form#SearchForm .advanced_search a').removeClass("icon_up_arrow").addClass("icon_down_arrow");
    $('form#SearchForm .advanced_search a').one("click", function() {
      AdvancedSearch.show();
    });

    $('form#AdvancedSearch').css("height", "0px");
    var expander_height = $('#Right .vertical_stretch_on').height();
    var expander_top = parseInt($('#Right .vertical_stretch_on').css("top"));
    var new_height = expander_height + AdvancedSearch.PANEL_HEIGHT;
    var new_top = expander_top - AdvancedSearch.PANEL_HEIGHT;
    $('#Right .vertical_stretch_on').css("height", new_height);
    $('#Right .vertical_stretch_on').css("top", new_top);
    $('form#AdvancedSearch').addClass('hidden');
    $('form#AdvancedSearch').css("display", "none");
    resize_panel_internals();

    //  $('form#AdvancedSearch').animate(
    //    {
    //      height: '0px'
    //    },
    //    {
    //      duration: 500,
    //      step: function(now) {
    //        var cur_height = $(this).height();
    //        if ( cur_height > AdvancedSearch.PANEL_HEIGHT ) { cur_height = advanced_cur_height; }
    //        $('#Right .vertical_stretch_on').css("height", expander_height - cur_height );
    //        $('#Right .vertical_stretch_on').css("top", expander_top + cur_height );
    //      },
    //      complete: function() { resize_panel_internals(); $('form#AdvancedSearch').addClass("hidden"); $('form#AdvancedSearch').css("display", "none"); }
    //    }
    //  );
  },
  show : function() {
    SearchControl.updateAdvancedSearchFilters();
    $('form#SearchForm .advanced_search a').removeClass("icon_down_arrow");
    $('form#SearchForm .advanced_search a').addClass("icon_up_arrow");
    var expander_height = $('#Right .vertical_stretch_on').height();
    var expander_top = parseInt($('#Right .vertical_stretch_on').css("top"));
    $('form#AdvancedSearch').removeClass('hidden');
    $('form#AdvancedSearch').css("display", "block");
    $('form#AdvancedSearch').css("position", "static");
    $('form#AdvancedSearch').css("zIndex", "0");
    var search_option_width = ($('#AdvancedSearch').width() - 90) / 4
    $('.search_option').width(search_option_width);
    $('form#AdvancedSearch').css("height", "88px");
    $('#Right .vertical_stretch_on').css("height", expander_height - AdvancedSearch.PANEL_HEIGHT);
    $('#Right .vertical_stretch_on').css("top", expander_top + AdvancedSearch.PANEL_HEIGHT);
    resize_panel_internals();

    //  $('form#AdvancedSearch').css( "height", "0px" );
    //  $('form#AdvancedSearch').animate({height: '' + AdvancedSearch.PANEL_HEIGHT + 'px'},{
    //      duration: 500,
    //      step: function(now) {
    //        var cur_height = $(this).height();
    //        if ( cur_height > AdvancedSearch.PANEL_HEIGHT ) { cur_height = advanced_cur_height; }
    //        $('#Right .vertical_stretch_on').css("height", expander_height - cur_height );
    //        $('#Right .vertical_stretch_on').css("top", expander_top + cur_height );
    //      },
    //      complete: function() { internalResize.resize_grab_space(); }
    //    }
    //  );
    //  internalResize.resize_grab_space();
    $('form#SearchForm .advanced_search a').unbind("click");
    $('form#SearchForm .advanced_search a').one("click", function() {
      AdvancedSearch.hide();
    });
    return false;
  }
};