$(function(){

function getVar(variable) 
{
	var query = window.location.hash.substring(1);
	var vars = query.split("&");
	for (var i=0;i<vars.length;i++) 
	{
		var pair = vars[i].split("=");
		if (pair[0] == variable) 
		{
			return pair[1];
	    } 
	}
	return '';
}
	
	
function populateForm()
{
	$(".search :input,.search input").each(function()
	{
		var input = $(this);
		var name = input.attr("name");
		var value = getVar(name);
	
		if (input.is("select"))
		{
			input.find("option").removeAttr("selected").filter("[value=" + value + "]").attr("selected", "selected");
		}
		else
		if (input.is(":radio") || input.is(":checkbox"))
		{
			$(".search input[name=" + name + "]").removeAttr("checked").filter("[value=" + value + "]").attr("checked", "yes");
		}

		else
		if (input.is(":text") || input.is(":hidden"))
		{
			input.val(value);
		}
	});
	
}

function onSearchSubmit()
{
	var theForm = $(this);
	var data = theForm.serialize();
	window.location.hash = "#" + data;

	
	var theDiv = $(".search-result");
	theDiv.find("div:first").hide().load("?format=raw&" + data, function()
	{
		theDiv.find("div:first").show();
		$(".heading-tr a").click(onHeadingClick);
		$(".paging a").click(onPagingClick);
		$(".paging form").submit(onPagingSubmit);
	});	
	
	
	theForm.find("input[name=page]").val("1");
	return false;	
}


function onPagingClick()
{
	var a = $(this);
	var page = $(".search input[name=page]");
	if (a.is(".larr"))
	{
		page.val(parseInt($(".paging .current:first").text()) - 1);
		$(".search form:first").submit();
		page.val("1");
		return false;
	}
	if (a.is(".rarr"))
	{
		page.val(parseInt($(".paging .current:first").text()) + 1);
		$(".search form:first").submit();
		page.val("1");
		return false;
	}
	page.val(a.text());
	$(".search form:first").submit();
	page.val("1");
	return false;
	
}

function onPagingSubmit()
{
	$(".search form:first input[name=page]").val($(".paging .goto").val());
	$(".search form:first").submit();
	$(".search form:first input[name=page]").val("1");	
	return false;
}

function onHeadingClick()
{
	var page = $(".search form:first input[name=page]");
	page.val(1);
	$(".heading-tr a").removeClass('current-sort').removeClass('sorted-up').removeClass('sorted-down');
	var theA = $(this);
	var by = $(".search form:first input[name=by]");
	var order = $(".search form:first input[name=order]");
	byVal = theA.attr("href").split("-").pop();
	theA.addClass("current-sort");
	if (by.val() == byVal)
	{
		if (order.val() == 'up')
		{
			order.val('down');
			theA.addClass("sorted-up");
		}
		else
		{
			order.val('up');
			theA.addClass("sorted-down");
		}
	}
	by.val(byVal);
	
	
	$(".search form:first").submit();
	return false;
}

function submitForm()
{
	$(".search form:first").submit();
}

$(".search :text").keyup(submitForm);
//$(".search select").change(submitForm);
$(".search select, .search :checkbox, .search :radio").change(submitForm);


$(".search form:first").submit(onSearchSubmit);
populateForm();
submitForm();

});


