function checkCountry(elem)
{
	var UNITED_STATES = 62;
	var CANADA = 8;
	var elem_city = document.getElementById("city");
	var elem_zip = document.getElementById("zip");
	var elem_distance = document.getElementById("distance");
	
	if ( elem.selectedIndex == -1 || elem.value == '' ) {
		elem.value = UNITED_STATES;	
	}
	
	if ( elem.value == UNITED_STATES || elem.value == CANADA ) {
		elem_zip.disabled = false;
		elem_distance.disabled = false;

		elem_city.style.display = "none";

		elem_zip.style.display = "";
		elem_distance.style.display = "";

		elem_city.disabled = true;	
		//alert(1);
		if ( document.getElementById('ziplabel') ) {
			//alert(1);
			document.getElementById('ziplabel').innerHTML = "( Zip/Postal Code )";
		}

		if ( document.getElementById('distance_div') ) {
			document.getElementById('distance_div').style.display = "";
		}
	} else {
		elem_city.disabled = false;

		elem_zip.style.display = "none";
		elem_distance.style.display = "none";

		elem_city.style.display = "";

		elem_zip.disabled = true;
		elem_distance.disabled = true;	
		//alert(1);
		if ( document.getElementById('ziplabel') ) {
			//alert(1);
			document.getElementById('ziplabel').innerHTML = "( City )";
		}

		if ( document.getElementById('distance_div') ) {
			document.getElementById('distance_div').style.display = "none";
		}
	}
}

function ValidatePractSearch_Basic(form)
{
	var UNITED_STATES = 62;
	var CANADA = 8;
	var elem_city = document.getElementById("city");
	var elem_zip = document.getElementById("zip");
	var elem_distance = document.getElementById("distance");
	var has_zip = false;
	
	if ( form.elements['country'].value == UNITED_STATES ) {
		if ( form.elements['zip'].value != '' ) {
			if ( form.elements['zip'].value != 'Enter Zip/Postal Code' && (!isZIPCode(form.elements['zip'].value) || form.elements['zip'].value.length != 5) ) {
				alert('This field must be a 5 digit U.S. ZIP Code (like 90405). Please re-enter it before you continue.');
				form.elements['zip'].focus();
				return false;
			} else {
				if ( form.elements['zip'].value != "Enter Zip/Postal Code" ) {
					has_zip = true;
				}
			}
		}		
		
	} else if ( form.elements['country'].value == CANADA ) {
		if ( form.elements['zip'].value != '' ) {
			if ( form.elements['zip'].value != 'Enter Zip/Postal Code' ) { 
				if ( form.elements['zip'].value.length != 7 ) {
					alert('This field must be a 7 character Canadian ZIP Code (like A0A 1A0). Please re-enter it before you continue.');
					form.elements['zip'].focus();
					return false;
				} else {
					if ( form.elements['zip'].value != "Enter Zip/Postal Code" ) {
						has_zip = true;
					}
				}
			}
		}	
	} else {
		elem_city.value = '';
		return true;
	}

	if ( has_zip && form.elements['distance'].value == '' ) {
		alert("Please indicate a distance to search from " + form.elements['zip'].value + ".");
		form.elements['distance'].focus();
		return false;
	}
	
	if ( form.elements['distance'].value != '' && !has_zip ) {
		alert("Please indicate a zip code to center the search around.");
		form.elements['zip'].focus();
		return false;
	}
}

function isEmpty(s)
{
	return ((s == null) || (s.length == 0));
}

function isDigit (c)
{
	return ((c == "0") || (c == "1") || (c == "2") || (c == "3") || (c == "4") || (c == "5") || (c == "6") || (c == "7") || (c == "8") || (c == "9"));
}

function isInteger (s)
{ 
	var i;
	if (isEmpty(s)) {
		if (isInteger.arguments.length == 1) {
			return true;
		} else {
			return (isInteger.arguments[1] == true);
		}
	}
	
	for (i = 0; i < s.length; i++) {
		var c = s.charAt(i);
		if (!isDigit(c)) {
			return false;
		}
	}
	return true;
}

function isZIPCode(s)
{
	if ( isEmpty(s) ) {
		if (isZIPCode.arguments.length == 1) {
			return true;
		} else {
			return (isZIPCode.arguments[1] == true);
		}
	}
	return (isInteger(s) && ((s.length == 5) || (s.length == 9)));
}