/**
 * Called when page link on search results clicked. Adds search parameters to link.
 */
function searchPageClick(link) {
    var p=$('searchForm').serialize();
    // goto new page adding search params, cutting double q
    document.location = link.getAttribute('href') + ((p.indexOf('&') < 0)?'':p.substring(p.indexOf('&') + 1));
    return false;
}

var lengthSlider = null;

/**
 * Initialize minimal length slider.
 */
function initMinimalLengthSlider(is_enabled) {
    var length_slider = $('length_slider');
    var length = $('minimumLength');
    var lengthValue = $('minimumLengthValue');

    lengthSlider = new Control.Slider(length_slider.down('.handle'), length_slider, {
      range: $R(0, 20),
      sliderValue: length.getAttribute('value'),
      onSlide: function(value) {
          length.setAttribute('value', Math.round(value));
          lengthValue.innerHTML = Math.round(value);
      },
      onChange: function(value) {
          length.setAttribute('value', Math.round(value));
          lengthValue.innerHTML = Math.round(value);
      }
    });

    if (!is_enabled) {
        lengthSlider.setDisabled();
    }
}

/**
 * Toggles search params panel.
 */
function toggleSearchParams(is_slider_enabled) {
    $('MoreOptionsClosed', 'MoreOptionsOpened', 'SearchParams').invoke('toggle');
    if(lengthSlider) {
        var s = lengthSlider;
        lengthSlider = null;
        s.dispose();
    } else {
        initMinimalLengthSlider(is_slider_enabled);
    }
}

/**
 * Toggles video search params.
 */
function toggleVideoSearchParams() {
    if ($('searchVideo').getValue()) {
        $('SearchParamLength').removeClassName('Grayed');
        $('SearchParamHD').removeClassName('Grayed');
        $('SearchParamCategory').removeClassName('Grayed');
        $('searchHD').removeAttribute('disabled');
        $('sortByFavorite').removeAttribute('disabled');
        $('searchCategory').removeAttribute('disabled');
        lengthSlider.setEnabled();
    } else {
        $('SearchParamLength').addClassName('Grayed');
        $('SearchParamHD').addClassName('Grayed');
        $('SearchParamCategory').addClassName('Grayed');
        $('searchHD').setAttribute('disabled', 'true');
        $('sortByFavorite').setAttribute('disabled', 'true');
        $('searchCategory').setAttribute('disabled', 'true');
        lengthSlider.setDisabled();
    }
}

/**
 * Initialize search event handlers.
 */
function initSearchParams(is_slider_enabled) {
    Event.observe('MoreOptionsClosed', 'click', function() {
        toggleSearchParams(is_slider_enabled)
    });
    Event.observe('MoreOptionsOpened', 'click', function() {
        toggleSearchParams(is_slider_enabled)
    });
    Event.observe('searchVideo', 'click', function() {
        toggleVideoSearchParams();
    });
}

