/*
+----------------------------------------------------------------------+
| BCSE Advanced Filter                                                 |
+----------------------------------------------------------------------+
| Copyright (c) 2011 BCSE LLC. dba BCS Engineering                     |
+----------------------------------------------------------------------+
|                                                                      |
| BCSE Advanced Filter is subject for version 2.0 of the BCSE          |
| proprietary license. That license file can be found bundled with     |
| this package in the file BCSE_LICENSE. A copy of this license can    |
| also be found at                                                     |
| http://www.bcsengineering.com/license/BCSE_LICENSE_2.0.txt           |
|                                                                      |
+----------------------------------------------------------------------+
*/

function bcse_menu_init(){

	bcse_menu_init_links();
	bcse_filter_ajax_init();

}

function bcse_filter_ajax_init(){

	$('#bcse-filter-main-content').wrap('<div id="bcse-filter-content"><div id="bcse-filter-content-display"></div></div>');
	$('#bcse-filter-content').append($('#bcse-filter-overlay'));

}

function bcse_menu_init_links(){

	$('.bcse-filter-menu-item').each(function(){
		var fid = $(this).attr('id').replace('filter-item-', '');
		$(this).find('.bcse-filter-menu-item-value > a').each(function(){
			$(this).click(function(){
				return bcse_menu_set_filter(fid, $(this).text());
			});
		});
	});

	$('.bcse-filter-menu-selected-item').each(function(){
		var fid = $(this).attr('id').replace('filter-selected-', '');
		$(this).find('.bcse-filter-menu-selected-x a').click(function(){
			return bcse_menu_set_filter(fid, '');
		});
	});

}

function bcse_menu_set_filter(fid, text){

	$('#filter-input-' + fid).val(text);

	bcse_menu_submit();

	return false;
}

function bcse_menu_submit(){

	if(typeof bcse_filter_refresh_type == 'undefined'){
		bcse_filter_refresh_type = '';
	}else if(bcse_filter_refresh_type == 'ajax' && !document.getElementById('bcse-filter-content')){
		bcse_filter_refresh_type = '';
	}

	if(bcse_filter_refresh_type == 'ajax'){
		bcse_menu_submit_ajax();
	}else{
		bcse_menu_submit_refresh();
	}

}

function bcse_menu_submit_ajax(){

	var f = $('#bcse-filter-menu-form');

	if($.browser.msie){
		var postdata = '';
		f.parent().find('select,input[type="hidden"]').each(function(){
			postdata += $(this).attr('name') + '=' + encodeURIComponent($(this).val()) + '&';
		});
		postdata += 'ajax_update=Y';
		posturl = window.location.href;
	}else{
		var postdata = f.serialize() + '&ajax_update=Y';
		posturl = f.attr('action');
	}

	$.ajax(
		{
			type: 'POST',
			url: posturl,
			data: postdata,
			beforeSend: function(){
				$('#bcse-filter-overlay').fadeIn(250);
			},
			success: function(data){

				d = document.createElement('div');
				d.style.display = 'none';
				document.body.appendChild(d);
				d.innerHTML = data;

				var main = $(d).find('#bcse-filter-main-content').html();
				var menu = $(d).find('#bcse-filter-menu').html();

				document.body.removeChild(d);

				$('#bcse-filter-main-content').css('height', $('#bcse-filter-main-content').outerHeight() + 'px');
				$('#bcse-filter-main-content').html(main);
				$('#bcse-filter-main-content').css('height', 'auto');

				$('#bcse-filter-menu').css('height', $('#bcse-filter-menu').outerHeight() + 'px');
				$('#bcse-filter-menu').html(menu);
				$('#bcse-filter-menu').css('height', 'auto');

				bcse_menu_init_links();

				try{ init(); }catch(e){ };

				$('#bcse-filter-overlay').fadeOut(250);

			}
		}
	);

}

function bcse_menu_submit_refresh(){

	var f = $('#bcse-filter-menu-form');

	f.submit();

}

function bcse_menu_reset(){

	$('#bcse-filter-menu-form input[name^=posted_filter]').val('');

	bcse_menu_submit();

	return false;
}

$(document).ready(bcse_menu_init);

