function setFilterCheckboxValue(elementClass, searchLabel)
{
	var values = new Array();

	$$('input.'+elementClass).each(function (elm)
	{
		if (elm.checked)
		{
			values.push(elm.value);
		}
	});

	setFilterValue(searchLabel, values);
}

function setFilterValue(label, value)
{
	if (!window.filterValue)
	{
		window.filterValue = new Object();
	}

	window.filterValue[label] = value;
	setFragmentIdentifier();
}

function setFragmentIdentifier()
{
	var result = '';

	if (window.filterValue)
	{
		for (var label in window.filterValue)
		{
			if (window.filterValue[label].length > 0)
			{
				result += (result ? '&' : '') + label + '=' + window.filterValue[label];
			}
		}
	}

	window.location.hash = (result ? 'filters:'+result : '');
}

function setTextSearchFilterValues()
{
	$$('.textsearch').each(function(elm)
	{
		setFilterValue(elm.identify().replace('filter_', ''), elm.value);
	});
}

function updateViews(viewLabels, targetUrl, altTargetUrl, useOverlay)
{
	var found = false;

	if (window.updating == undefined)
	{
		window.updating = new Array();
	}

	viewLabels.each(function(viewLabel)
	{
		$$('div.view_'+viewLabel).each(function(elm)
		{
			found = true;
			if (useOverlay)
			{
				elm.select('.filterRefreshOverlay').first().show();
			}

			var func = function(resp)
			{
				//elm.innerHTML = resp.responseText;
				//alert(resp.responseText);
				
				elm.update(resp.responseText);
				elm.select('.filterRefreshOverlay').first().hide();
				
				window.updating[viewLabel] = false;
			}

			if (!window.updating[viewLabel]) // prevent multiple updates from different filters
			{
				window.updating[viewLabel] = true;
				ajaxRequest(targetUrl, func, 'type=view&label='+viewLabel+'&mode=ajax&hash='+encodeURIComponent(window.location.hash), 'post');
			}
		});
	});

	if (!found)
	{
		window.location.href = altTargetUrl+window.location.hash;
		
	}
}

// hashchange event
// see http://benalman.com/projects/jquery-hashchange-plugin/
(function($,e,b){var c="hashchange",h=document,f,g=$.event.special,i=h.documentMode,d="on"+c in e&&(i===b||i>7);function a(j){j=j||location.href;return"#"+j.replace(/^[^#]*#?(.*)$/,"$1")}$.fn[c]=function(j){return j?this.bind(c,j):this.trigger(c)};$.fn[c].delay=50;g[c]=$.extend(g[c],{setup:function(){if(d){return false}$(f.start)},teardown:function(){if(d){return false}$(f.stop)}});f=(function(){var j={},p,m=a(),k=function(q){return q},l=k,o=k;j.start=function(){p||n()};j.stop=function(){p&&clearTimeout(p);p=b};function n(){var r=a(),q=o(m);if(r!==m){l(m=r,q);$(e).trigger(c)}else{if(q!==m){location.href=location.href.replace(/#.*/,"")+q}}p=setTimeout(n,$.fn[c].delay)}$.browser.msie&&!d&&(function(){var q,r;j.start=function(){if(!q){r=$.fn[c].src;r=r&&r+a();q=$('<iframe tabindex="-1" title="empty"/>').hide().one("load",function(){r||l(a());n()}).attr("src",r||"javascript:0").insertAfter("body")[0].contentWindow;h.onpropertychange=function(){try{if(event.propertyName==="title"){q.document.title=h.title}}catch(s){}}}};j.stop=k;o=function(){return a(q.location.href)};l=function(v,s){var u=q.document,t=$.fn[c].domain;if(v!==s){u.title=h.title;u.open();t&&u.write('<script>document.domain="'+t+'"<\/script>');u.close();q.location.hash=v}}})();return j})()})(jQuery,this);

