function loadCookies()
	{
//	alert(document.cookie);
	aCookies = document.cookie.split("; ");
	for (i=0; i<aCookies.length; i++)
		{
		if (aCookies[i].indexOf("=")!=-1)
			{
			iCookie = aCookies[i].split("=");
			if (iCookie[0]=="searchTerms"&&iCookie[1].length>1)
				{
				while (iCookie[1].indexOf("+")!=-1) {iCookie[1] = iCookie[1].replace("+", " ")}
				while (iCookie[1].indexOf("%22")!=-1) {iCookie[1] = iCookie[1].replace("%22", "\"")}
				while (iCookie[1].indexOf("%2A")!=-1) {iCookie[1] = iCookie[1].replace("%2A", "*")}
				while (iCookie[1].indexOf("%2D")!=-1) {iCookie[1] = iCookie[1].replace("%2D", "-")}
				document.getElementById("term").value = iCookie[1];
				}

			if (iCookie[0]=="searchTypes"&&iCookie[1].length>1)
				{
				cTypes = iCookie[1].split("%2C+");
				docFrag = document.getElementById("tbTypes");
				fTypes = docFrag.getElementsByTagName("input");
				for (j=0; j<cTypes.length; j++)
					{
					for (k=0; k<fTypes.length; k++)
						{
						if (fTypes[k].value==cTypes[j])
							{
							fTypes[k].checked = true;
							break;
							}
						}
					}
				}

			if (iCookie[0]=="searchFields"&&iCookie[1].length>1)
				{
				cFields = iCookie[1].split("%2C+");
				docFrag = document.getElementById("fCell");
				fFields = docFrag.getElementsByTagName("input");
				for (j=0; j<cFields.length; j++)
					{
					for (k=0; k<fFields.length; k++)
						{
						if (fFields[k].value==cFields[j].replace("%2E", ".").replace("%2E", "."))
							{
							fFields[k].checked = true;
							break;
							}
						}
					}
				}

			if (iCookie[0]=="searchTypesOfWork"&&iCookie[1].length>1)
				{
				cTypesOfWork = iCookie[1].split("%2C+");
				docFrag = document.getElementById("tCell");
				fTypesOfWork = docFrag.getElementsByTagName("input");
				for (j=0; j<cTypesOfWork.length; j++)
					{
					for (k=0; k<fTypesOfWork.length; k++)
						{
						if (fTypesOfWork[k].value==cTypesOfWork[j])
							{
							fTypesOfWork[k].checked = true;
							break;
							}
						}
					}
				}

			if (iCookie[0]=="searchServices"&&iCookie[1].length>1)
				{
				cServices = iCookie[1].split("%2C+");
				docFrag = document.getElementById("sCell");
				fServices = docFrag.getElementsByTagName("input");
				for (j=0; j<cServices.length; j++)
					{
					for (k=0; k<fServices.length; k++)
						{
						if (fServices[k].value==cServices[j].replace("%2D", "-"))
							{
							fServices[k].checked = true;
							break;
							}
						}
					}
				}

			}
		}
	}
function loadLinks()
	{
	oDivs = document.getElementsByTagName("div");
	for (i=0;i<oDivs.length;i++)
		{
		if (oDivs[i].hasChildNodes())
			{
			oChecks = oDivs[i].getElementsByTagName("input");
			for (j=0; j<oChecks.length; j++)
				{
				if (oChecks[j].checked==true) {toggleNode(oDivs[i].id, false)}
				}
			baseName = oDivs[i].id.substr(3);
			baseStart = baseName.substr(0,1);
			if (baseStart=="f"||baseStart=="s")
				{
				lnkID = "lnk"+baseName;
				oLnk = document.getElementById(lnkID);
				oLnk.removeChild(oLnk.childNodes[0]);
				//oLnk.childNodes[0].nodeValue = "+";
				oImg = document.createElement("img");
				if (oDivs[i].style.display=="block") {oImg.src = "images/minus.gif"}
				else {oImg.src = "images/plus.gif"}				
				oImg.border = "0";
				oLnk.appendChild(oImg);
				oLnk.href = "javascript:toggleNode('"+oDivs[i].id+"')";

				spnID = "spn"+baseName;
				oSpn = document.getElementById(spnID);
				oSpn.style.cursor = "help";
				}
			}
		}
	}
function toggleNode(sDiv)
	{
	baseName = sDiv.substr(3);
	oDiv = document.getElementById(sDiv);
	oLnk = document.getElementById("lnk"+baseName);
	oSpn = document.getElementById("spn"+baseName);
	if (oDiv.style.display=="none")
		{
		oDiv.style.display = "block";
		//oLnk.childNodes[0].nodeValue = "-"
		if (oLnk.childNodes[0].nodeName=="IMG") {oLnk.childNodes[0].src = "images/minus.gif"}
		oSpn.style.cursor = "hand";
		}
	else
		{
		if (arguments.length>1) {return}
		oInputs = oDiv.getElementsByTagName("input");
		for (i=0; i<oInputs.length; i++)
			{
			if (oInputs[i].checked)
				{
				alert("Collapse not allowed with child[ren] selected.");
				return;
				}
			}
		oDiv.style.display = "none";
		if (oLnk.childNodes[0].nodeName=="IMG") {oLnk.childNodes[0].src = "images/plus.gif"}
		//oLnk.childNodes[0].nodeValue = "+"
		oSpn.style.cursor = "help";
		}
	}
function clearParent(oChk)
	{
	oSpn = document.getElementById("spn"+oChk.name.substr(0,1)+oChk.value);
	oParent = oSpn.parentNode.parentNode;
	while (oParent.nodeName!="DIV") 
			{
			if (oParent.nodeName=="TD") {return}
			oParent = oParent.parentNode
			}
	oForm = document.forms[0];
	for (i=0; i<oForm.length; i++)
		{
		element = oForm.elements[i];
		if (element.value==oParent.id.substr(4)) 
			{
			nCheck = element;
			break;
			}
		}
	nCheck.checked = false;
	clearParent(nCheck);
	}
function setChecks(oChk)
	{
	oVal = oChk.value;
	oType = oChk.name.substr(0, 1);
	oDiv = document.getElementById("div"+oType+oVal);
	if (!oChk.checked&&oChk.name!="type") {clearParent(oChk)}
	if (oDiv==null) {return}
	oLnks = oDiv.getElementsByTagName("input");
	for (i=0;i<oLnks.length;i++)
		{
		oLnks[i].checked = oChk.checked;
		}
	if (oChk.checked)
		{
		toggleNode(oDiv.id, false);
		oDivs = oDiv.getElementsByTagName("div");
		for (i=0;i<oDivs.length;i++)
			{
			toggleNode(oDivs[i].id, false);
			}
		hideChildren();
		}
	}
function showBlock(sID)
	{
	var oID = document.getElementById(sID);
	oID.style.display = "block";
	}
	
function hideChildren()
	{
	oChild = document.getElementById("divChildren");
	oChild.style.display = "none";
	}
function showChild(oSpn, cText)
	{
	if (cText.length==0) {return}

	leftOffset = 160;
	topOffset = 130;
	spnID = oSpn.id;

	pNode = oSpn.parentNode;
	while (pNode.id!="tbMain")
		{
		if (pNode.nodeName=="TABLE"||pNode.nodeName=="SPAN") {topOffset += pNode.offsetTop}
		leftOffset += pNode.offsetLeft;
		pNode = pNode.parentNode;
		}
	leftOffset += pNode.offsetLeft;
	topOffset += pNode.offsetTop;

	cDiv = document.getElementById("divChildren");
	while (cDiv.hasChildNodes())
		{
		cDiv.removeChild(cDiv.lastChild)
		}

	iDiv = document.createElement("div");
	iTxt = document.createTextNode(cText);
	iDiv.appendChild(iTxt);
	cDiv.appendChild(iDiv);

	cDiv.style.top = topOffset;
	cDiv.style.left = oSpn.offsetLeft + leftOffset;
	cDiv.style.display = "block";
	}
function showChildren(oSpn)
	{
	leftOffset = 160;
	topOffset = 130;
	spnID = oSpn.id;

	oParent = oSpn.parentNode;
	while (oParent.id!="tbMain")
	{
		if (oParent.nodeName=="TABLE") {topOffset += oParent.offsetTop}
		leftOffset += oParent.offsetLeft;
		if (oParent.nodeName=="DIV") {leftOffset -= 21}
		oParent = oParent.parentNode;
	}
	leftOffset += oParent.offsetLeft;
	topOffset += oParent.offsetTop;

	oDiv = document.getElementById("div"+spnID.substr(3));
	cDiv = document.getElementById("divChildren");
	if (oDiv==null) {return}
	if (oDiv.style.display=="block") {return}
	if (oDiv.hasChildNodes())
		{
		while (cDiv.hasChildNodes())
			{
			cDiv.removeChild(cDiv.lastChild)
			}
		hDiv = document.createElement("div");
		hBld = document.createElement("b");
		hTxt = document.createTextNode(oSpn.childNodes[0].nodeValue);
		hBld.appendChild(hTxt);
		hDiv.style.width = (oSpn.offsetWidth*1.2)+"px"
		hDiv.appendChild(hBld);
		cDiv.appendChild(hDiv);
		for (i=0;i<oDiv.childNodes.length;i++)
			{
			oDivChild = oDiv.childNodes[i];
			cSpn = null;
			if (oDivChild.nodeName=="TABLE")
			{
				tNode = oDivChild;
				tbNode = tNode.childNodes[0];
				trNode = tbNode.childNodes[0];
				tcNode = trNode.childNodes[1];
				cSpn = tcNode.childNodes[0];
				lSpn = cSpn;
			}
			if (oDivChild.nodeName=="SPAN")
				{
				cSpn = oDivChild;
				lSpn = cSpn.lastChild;
				}
			if (cSpn!=null)
				{
				lVal = lSpn.childNodes[0].nodeValue;
				iDiv = document.createElement("div");
				iTxt = document.createTextNode(lVal);
				iDiv.appendChild(iTxt);
				cDiv.appendChild(iDiv);
				}
			}

		cDiv.style.left = leftOffset;
		cDiv.style.top = topOffset;
		cDiv.style.display = "block";
		}
	}
function checkMe(oSpn)
	{
	oTyp = oSpn.id.substr(3,1);
	if (oTyp.length)
		{
		pSpn = oSpn.parentNode.previousSibling
		sChk = pSpn.getElementsByTagName("input")[0];
		}
	else {sChk = oSpn.previousSibling}
	isChecked = sChk.checked;
	if (isChecked) {sChk.checked = false}
	else {sChk.checked = true}
	if (oTyp!='t') {setChecks(sChk)}
	}
function loadDoc()
	{
	loadCookies();
	loadLinks();
	document.forms[0].elements[0].focus();
	}
function checkDate(oDate)
	{
	validDate = true;
	oVal = oDate.value;
	if (oVal.length)
		{
		cVal = new Date();
		cYear = cVal.getFullYear();

		dVal = new Date(oVal);
		if (isNaN(dVal))
			{
			oVal += "/"+cYear;
			dVal = new Date(oVal);
			if (isNaN(dVal)) {validDate = false}
			}
		dYear = dVal.getFullYear();
		if (dYear<1753) {validDate = false}

		if (validDate)
			{
			dMonth = dVal.getMonth()+1;
			dDate = dVal.getDate();
			oDate.value = dMonth+"/"+dDate+"/"+dYear;
			}
		else
			{
			alert("Invalid date entry.");
			oDate.focus();
			oDate.select();
			}
		}
	return validDate;
	}
function checkForm(oForm)
	{
	oTerm = oForm.term;
	vTerm = oTerm.value;

	if (vTerm.indexOf("(")!=-1||vTerm.indexOf(")")!=-1)
		{
		alert("Parentheses are disallowed.");
		oTerm.focus();
		oTerm.select();
		return false;
		}

	tTerm = vTerm;
	while (tTerm.indexOf(" ")!=-1)
		{
		tTerm = tTerm.replace(" ", "");
		}
	
	entry = false;
	for (i=0; i<oForm.length; i++)
		{
		element = oForm.elements[i];
		switch (element.type)
			{
			case "checkbox":
				if (element.checked==true) {entry = true}
				break;
			case "text":
				if (element.value.length) {entry = true}
				break;
			}
		if (entry) {break}
		}
	if (!entry)
		{
		alert("Enter one or more search terms, or select one or more filters.");
		oTerm.focus();
		return false;
		}

	if (!checkDate(oForm.dtValue[0])) {return false}
	if (!checkDate(oForm.dtValue[1])) {return false}
	sEntry = 0
	eEntry = 0
	if (oForm.dtValue[0].value.length>0) {sEntry = 1}
	if (oForm.dtValue[1].value.length>0) {eEntry = 1}
	bEntry = sEntry + eEntry;
	if (bEntry==2)
		{
		if (Date.parse(oForm.dtValue[0].value)>Date.parse(oForm.dtValue[1].value))
			{
			alert("Start date must precede end date.");
			oForm.dtValue[0].focus();
			oForm.dtValue[0].select();
			return false;
			}
		}
	return true;
	}
function changeDate(oSelect)
	{
	dVal = "block"
	oVal = oSelect.selectedIndex;
	oCell = oSelect.parentNode;
	oRow = oCell.parentNode;
	nCell = oRow.lastChild;
	if (oVal) 
		{
		dVal = "none";
		inputs = nCell.getElementsByTagName("input");
		inputs[0].value = "";
		}
	nCell.style.display = dVal;

	}