$(function() {
	$('#resultCount').bind('updateResult', function() {
		$.ajax('/sok/ajaxsok', {data:'target=resultCount&' + $('#searchForm').serialize()});
	});
	
	$('#searchSummary').bind('updateSummary', function() {
		$t = $(this);
		$t.text('')
		var titleLut = {
			search_behandlingar:'Diagnos',
			search_grupper:'Målgrupp',
			search_regioner:'Upptagningsområde',
			search_behandlingsformer:'Behandlingsformer',
		};
		var map = {};
		var t = 0;
		
		$('#searchForm *:input:checked').each(function() {
			var key = this.name.replace('[]', '');
			var val = $(this).val();
			if (titleLut[key]) {
				if (typeof map[key] == 'undefined') {
					map[key] = {};
				}
				map[key][val] = 1
			} else {
				switch(key) {
					case 'lediga_platser':
						$t.append($('<span>', {title:'Ta bort det här sökkriteriet', class:'item'}).click(function() {
							$('#checkbox_ledigaplatser').get(0).checked = false;
						}).text('Har lediga platser'), ' . ');
						t++;
						break;
					case 'skyddat_boende':
						$t.append($('<span>', {title:'Ta bort det här sökkriteriet', class:'item'}).click(function() {
							$('#checkbox_skyddatboende').get(0).checked = false;
						}).text('Skyddat boende'), ' . ');
						t++;
						break;
				}
			}
		});
		
		$.each(map, function(key) {
			$t.append(titleLut[key] + ":");
			var n = 0;
			$.each(this, function(index) {
				t++;
				var label = $('label[for="checkbox_' + key + '_' + index + '"]').text();
				if (n++) {
					$t.append(' , ');
				}
				$t.append($('<span>', {title:'Ta bort det här sökkriteriet', class:'item'}).click(function() {
					$('#checkbox_' + key + '_' + index).get(0).checked = false;
				}).text(label));
			});
			$t.append(' .');
		});

		if (t) {
			$t.append($('<span>', {title:'Rensa alla sökkriterier', class:'item gray'}).click(function() {
				$('#searchForm').clearForm();
				$('#searchword').val($('#searchword').attr('defValue'));
			}).text('Rensa sökning'));
		}

		if (!$('#searchRefreshWarning').size()) {
			$('#searchBox').after($('<div/>', {id:'searchRefreshWarning'}));
			$('#searchRefreshWarning').text("Du har ändrat din sökning. Klicka på \"Sök\" ovan för att visa sökresultatet.");
		}	
	});
	
	$('#searchBox .paneitemLeft h3').each(function(element) {
		$(this).bind('mouseover', function(event) {
			$(this).closest('tr').addClass('active');
			$(this).closest('tr').siblings().removeClass('active');
			$($('#searchBox .paneitemRight').removeClass('active')[$(this).closest('tr').prevAll().length]).addClass('active');
		});
	});
	
	$('#searchBox .paneitemRight input, #searchBox .paneitemRight label').each(function(element) {
		$(this).hover(function(event) {
			$(this).closest('.paneitemRight').find('.infoBox').html($(this).attr('desc'));
		});
	});
	
	$('#searchBox input[type=checkbox]').click(function() {
		$('#searchSummary').trigger('updateSummary');
		$('#resultCount').trigger('updateResult');
	});
	
	$('#searchword').keyup(function(event) {
		$('#searchSummary').trigger('updateSummary');
		var val = $(this).val();
		if (val.length > 2 || (val.length == 0) && this.lastSearchText != val) {
			this.lastSearchText = val;
			var nowms = new Date;nowms = nowms.getTime();
			if (this.lastTimestamp && (nowms - this.lastTimestamp) > 300) {
				this.lastTimestamp = nowms;
				$('#resultCount').trigger('updateResult');
				
			} else {
				this.lastTimestamp = (this.lastTimestamp?this.lastTimestamp:nowms-300);
				var tLeft = 300 - (nowms - this.lastTimestamp);
				this.lastTimestamp += tLeft;
				if (this.timeoutObj) {
					clearTimeout(this.timeoutObj);
				}
				this.timeoutObj = setTimeout("$('#resultCount').trigger('updateResult');", Math.max(300, tLeft));
			}
		}
	});
	
	$('#searchSummary .item').live('click', function() {
		$('#resultCount').trigger('updateResult');
		$('#searchSummary').trigger('updateSummary');
	});
});
