function dateOperatorChanged()
{
	var disable=false;
	if (document.forms["searchJudgments"].elements["dateOperator"].value == "")
	{
		disable=true;
	}
	if (disable) {
		document.forms["searchJudgments"].elements["day"].selectedIndex = 0;
		document.forms["searchJudgments"].elements["month"].selectedIndex = 0;
		document.forms["searchJudgments"].elements["year"].selectedIndex = 0;
	}	
	document.forms["searchJudgments"].elements["day"].disabled = disable;
	document.forms["searchJudgments"].elements["month"].disabled = disable;
	document.forms["searchJudgments"].elements["year"].disabled = disable;
}

function validateFreeText()
{
	// check that the free text query is alphanumeric or the wildcard operator
	var query = document.forms["searchJudgments"].elements["freeText"].value;
	if (query == "%") {
		alert("The Free Text field may not contain the wild card '%' on its own.");
		return false;
	}
	// for (i=0; i<query.length; i++) {
		// var cc = query.charCodeAt(i);
		// if (!((cc>47 && cc<58) || (cc > 64 && cc<91) || (cc>96 && cc<123) || (cc==37) || (cc==32))) {
			// alert("Please remove any invalid characters from the Free Text field. \n" +
				  // "Only alphabetic, numeric and % (wild-card) characters may be used. \n" +
				  // "See the help page for more details.");
			// return false;
		// }
	// }
	return true;
}

function monthStr2Int(monthStr)
{
	if (monthStr == "Jan") return 1;
	if (monthStr == "Feb") return 2;
	if (monthStr == "Mar") return 3;
	if (monthStr == "Apr") return 4;
	if (monthStr == "May") return 5;
	if (monthStr == "Jun") return 6;
	if (monthStr == "Jul") return 7;				
	if (monthStr == "Aug") return 8;
	if (monthStr == "Sep") return 9;
	if (monthStr == "Oct") return 10;
	if (monthStr == "Nov") return 11;
	if (monthStr == "Dec") return 12;
	return -1;
}

function validateDate()
{
	var dayValue = parseInt(document.forms["searchJudgments"].elements["day"].value, 10);
	var monthValue = monthStr2Int(document.forms["searchJudgments"].elements["month"].value) - 1; // month is a 0-based index
	var yearValue = parseInt(document.forms["searchJudgments"].elements["year"].value, 10);
	date = new Date(yearValue, monthValue, dayValue);
	// check that date values match entered values, this relies on a quirk of the date object constructor
	if ((date.getDate() != dayValue) || (date.getMonth() != monthValue) || (date.getFullYear() != yearValue)) {
		alert("Please enter a valid date.\n");
		return false;
	}
	return true;
}

function validate()
{
	// check search criteria entered
	// note that date is not checked
	var freeText = document.forms["searchJudgments"].freeText;
	var courtIndex = document.forms["searchJudgments"].court.selectedIndex;
	var locationIndex = document.forms["searchJudgments"].location.selectedIndex;
	var judge = document.forms["searchJudgments"].judge;
	var caseName = document.forms["searchJudgments"].caseName;
	var fileNumber = document.forms["searchJudgments"].fileNumber;
	var appearance = document.forms["searchJudgments"].appearance;
	var returnValue = true;
	
	if (validateDate() == true) {
	   return returnValue;
	} else {
	   return false;
	}
	
	if ((freeText.value.length == 0) && (courtIndex == 0) &&
		(locationIndex == 0) && (judge.value.length == 0) &&
		(judge.value.length == 0) && (caseName.value.length == 0) &&
		(fileNumber.value.length == 0) && (appearance.value.length == 0)) {
		alert("Error, no search criteria has been entered!" + "\n" +
				"Please enter a search phrase and / or additional search criteria.");
		freeText.focus();
		returnValue = false;
	}
	else {
		if ((!validateDate()) || (!validateFreeText())) {
			returnValue = false;
		}
	}
	return returnValue;
}