function validateQueryForm(frm, maxselected) {

	//var maxselected = <%=cMaxSelected%>;

	//check that at least one of the listbox's has been selected
	var elmSelected = false;
	for (var i=0;i<frm.elements.length;i++) {
		if (frm.elements[i].type == 'select-multiple') {
			//do a quick check to see if any are selected - Opera is slow..
			if (frm.elements[i].selectedIndex > -1) {
				if (frm.elements[i].selectedIndex != 0) { //if the selectedIndex == 0 then it's [Any]
					var m = 0;
					for (var n=0;n<frm.elements[i].options.length;n++) {
						if (frm.elements[i].options[n].selected) {m++};
					}
					if (m>0) {
						//check that less than maxselected records selected
						if (m<maxselected) {
							elmSelected = true;
						} else {
							alert('To many items selected');
							return false;
						}
					}
				}
			}
		}
	}
	
	//currently removed at C Webster's request - can submit without choosing an item:
	/*
	if (!elmSelected) {
		alert('At least one option must be selected');
		return false;
	}
	*/
	
	//determine which option was choosen:
	
	var natgridMode = getRadioValue(frm.natgridMode);
	
	//reset the hidden fields:
	frm.ngr01x.value = "";
	frm.ngr01y.value = "";
	frm.ngr02x.value = "";
	frm.ngr02y.value = "";
	
	frm.centre_gridref01.value = (frm.centre_gridref01.value == "Grid Reference") ? "" : frm.centre_gridref01.value;
	frm.centre_dist.value = (frm.centre_dist.value == "Distance") ? "" : frm.centre_dist.value;

	frm.corner_gridref01.value = (frm.corner_gridref01.value == "Grid Reference") ? "" : frm.corner_gridref01.value;
	frm.corner_gridref02.value = (frm.corner_gridref02.value == "Grid Reference") ? "" : frm.corner_gridref02.value;


	switch (natgridMode){
   		
   		case "centre":

   			if (String(frm.centre_gridref01.value).length > 0 && String(frm.centre_dist.value).length == 0) {
   				alert('A grid references and a distance is required');
				return false;
   			}
   			if (String(frm.centre_dist.value).length > 0 && String(frm.centre_gridref01.value).length == 0) {
   				alert('A grid references and a distance is required');
				return false;
   			}
   			
   			if (String(frm.centre_gridref01.value).length > 0) {
				var returnVal = getCoords(String(frm.centre_gridref01.value));
				if (typeof returnVal == 'object') {
					frm.ngr01x.value = returnVal.x;
					frm.ngr01y.value = returnVal.y;
				} else {
					alert(returnVal);
					frm.centre_gridref01.focus();
					return false;
				}
			}
   		
   		break;
   		
   		case "corners":
  
			if (String(frm.corner_gridref01.value).length > 0 && String(frm.corner_gridref02.value).length == 0) {
   				alert('Two grid references are required');
				return false;
   			}
   			if (String(frm.corner_gridref02.value).length > 0 && String(frm.corner_gridref01.value).length == 0) {
   				alert('Two grid references are required');
				return false;
   			}
   			
   			if (String(frm.corner_gridref01.value).length > 0) {
				var returnVal = getCoords(String(frm.corner_gridref01.value));
				if (typeof returnVal == 'object') {
					frm.ngr01x.value = returnVal.x;
					frm.ngr01y.value = returnVal.y;
				} else {
					alert(returnVal);
					frm.corner_gridref01.focus();
					return false;
				}
			}
			
			if (String(frm.corner_gridref02.value).length > 0) {
				var returnVal = getCoords(String(frm.corner_gridref02.value));
				if (typeof returnVal == 'object') {
					frm.ngr02x.value = returnVal.x;
					frm.ngr02y.value = returnVal.y;
				} else {
					alert(returnVal);
					frm.corner_gridref02.focus();
					return false;
				}
			}

		break;

	}
	
	//open a new window to direct the form to and show results:
	HtmlWin('about:blank','results',600,400);
	
	return true;

}

function getRadioValue(radiogrp) {
	for (i=0; i<radiogrp.length; i++){
		if(radiogrp[i].checked == true) {
			return radiogrp[i].value;
		}
	}		
}

function toggleGridMode(item) {

	var frm = document.qry;
	
	window.status = frm.name;
	
	if (item.value == 'centre') {
		frm.centre_gridref01.disabled = false;
		frm.centre_dist.disabled = false;
		frm.corner_gridref01.disabled = true;
		frm.corner_gridref02.disabled = true;
	} else {
		frm.centre_gridref01.disabled = true;
		frm.centre_dist.disabled = true;
		frm.corner_gridref01.disabled = false;
		frm.corner_gridref02.disabled = false;
	}

}

function clearDefault(elm, defaultValue) {

	if (elm.value == defaultValue) {
	
		elm.value = '';
	
	}

}
