function retainQuery(href)
{
	if (!document.getElementById("searchForm"))
		return true;

	var hasP = /.*p=([^&]*).*/.test(href);
	var hasS = /.*s=([^&]*).*/.test(href);
	var newLocation = href.replace(/([^\?]+)\??.*/, "$1") + "?";
	var query = document.getElementById("searchForm").p.value;

	if (document.getElementById("searchForm").s)
	{
		var id = document.getElementById("searchForm").s.value;
		newLocation += "&s=" + urlEncode(id);
	}
	else if (hasS)
	{
		var id = href.replace(/.*s=([^&]*).*/, "$1");
		newLocation += "&s=" + urlEncode(id);
	}

	if (hasP)
		newLocation += "&p=" + urlEncode(query);
	else
		newLocation += "&q=" + urlEncode(query);

	location.href = newLocation;
	return false;
}

function expand()
{
	document.getElementById("searchBar").style.display = "";
	document.getElementById("more").style.display = "none";
	document.getElementById("less").style.display = "";
}

function collapse()
{
	document.getElementById("searchBar").style.display = "none";
	document.getElementById("more").style.display = "";
	document.getElementById("less").style.display = "none";
}


function prepareWithin( checkie )
{
	var secondform = document.forms[ 1 ];
	secondform.p.value = '';
	secondform.w.disabled = !checkie;
}

function urlEncode(str)
{
	str = str.replace(/%/g, "%25");

	str = str.replace(/\+/g, "%2B");
	str = str.replace(/ /g, "%20");
	str = str.replace(/&/g, "%26");
	str = str.replace(/=/g, "%3D");
	str = str.replace(/\?/g, "%3F");
	str = str.replace(/\r/g, "%0D");
	str = str.replace(/\n/g, "%0A");
	str = str.replace(/\f/g, "%0C");
	return str;
}

function urlDecode(str)
{
	str = str.replace(/\+/g, " ");
	str = unescape(str);
	return str;
}

function urlDecodeAmp(str)
{
	str = str.replace(/&amp;/g, "&");
	return str;
}

function getAbsoluteLeft(obj)
{
	var left = 0;
	while (obj)
	{
		left += obj.offsetLeft;
		obj = obj.offsetParent;
	}
	return left;
}

function getAbsoluteTop(obj)
{
	var top = 0;
	while (obj)
	{
		top += obj.offsetTop;
		obj = obj.offsetParent;
	}
	return top;
}

function trim(str)
{
	if (/^\s+$/g.test(str))
		return "";
	return str.replace(/^\s*(\S.*\S)\s*$/g, "$1");
}
