jQuery(hookupSearchFilters);

function hookupSearchFilters() {
    jQuery('#filters .toggle').click(function(){
    	toggleFilters();
    	return false;
    });
    jQuery('#facilities li label').click(toggleFacility);
    jQuery('a:contains(Done)').click(function() {
    	toggleFilters(applyFilter);
    	return false;
    });
    jQuery('a:contains(Cancel)').click(function() {
    	toggleFilters(revertFilter);
    	return false;
    });
    revertFilter();
}

function toggleFilters(action) {
    var offset = jQuery('#filters .toggle').outerHeight(true);
    jQuery('#filters .toggle').toggleClass('open');
    
    var temp = jQuery('input:checked');
    
    jQuery('#facilities').css('top', offset).toggle('slide', { direction: 'up' }, "medium", function(){
    	temp.each(function(){
    		var checked = jQuery(this);
    		checked.get(0).checked = true;
    	})
    	
    	if (jQuery.isFunction(action)) action();
    });
}

function toggleFacility() {
    jQuery(this).toggleClass('selected');
    return false;
}

function revertFilter() {
    jQuery('#facilities li label').each(function() {
        var filter = jQuery(this);
        var name = filter.attr('for');
        if (jQuery('input[name=' + name + ']').is(':checked')) {
            filter.addClass('selected');
        } else {
            filter.removeClass('selected');
        }
    });
}

function applyFilter() {
    jQuery('#facilities li label').each(function() {
        var filter = jQuery(this);
        var name = filter.attr('for');
        var checkbox = jQuery('input#' + name);
        checkbox.get(0).checked = filter.hasClass('selected');
    });
}