
function checkform ( form ) {
    var okFlag = true;
    var message = "";
    var errorNum = 0;

    var agt=navigator.userAgent.toLowerCase();
    
    var is_major = parseInt(navigator.appVersion);
    var is_minor = parseFloat(navigator.appVersion);
    
    var is_nav  = ((agt.indexOf('mozilla')!=-1)
		       && (agt.indexOf('spoofer')==-1)
		       && (agt.indexOf('compatible') == -1)
		       && (agt.indexOf('opera')==-1)
		       && (agt.indexOf('webtv')==-1));
    var is_nav4up = (is_nav && (is_major >= 4));
    var is_nav5up = (is_nav && (is_major >= 5));
    
    var is_ie   = (agt.indexOf("msie") != -1);
    var is_ie4up  = (is_ie  && (is_major >= 4));
    
    if (!(is_ie4up || is_nav5up)) {
	return true;
    }
    
    if (form.proximity.value > 0) {
	if (form.country.value != "All" &&
	    form.country.value != "United States") {
	    message += "   - Radius Search is only valid in the United States\n";
	    okFlag = false;
	    errorNum++;
	}
	if (form.target_city.value == "") {
	    message += "   - US City is required for a Radius Search\n";
	    okFlag = false;
	    errorNum++;
	}	    
	if (form.target_state.value == "") {
	    message += "   - State is required for a Radius Search\n";
	    okFlag = false;
	    errorNum++;
	}
	if (form.proximity.value > 75 && form.measure.value == "miles") {
	    message += "   - Maximum radius is 75 miles\n";
	    okFlag = false;
	    errorNum++;
	}
	if (form.proximity.value > 120 && form.measure.value == "km") {
	    message += "   - Maximum radius is 120 km\n";
	    okFlag = false;
	    errorNum++;
	}
	    
    }
    message += "____________________________________________________\n\n";
    message += "     Radius Searches: Only United States cities are allowed\n";
    message += "     for radius searches.  Make sure you specify \"United States\"\n";
    message += "     or \"All\" for the country and include the city and state.\n";
    
    message += "\nPlease fix the above errors and resubmit.";
    if (errorNum > 1) {
	message = "Errors:\n\n" + message;
    } else {
	message = "Error:\n\n" + message;
    }
    if (okFlag == false) {
	alert(message);
    }
    if (form.dojo_name.value == "" && form.instructor.value == "" &&
	form.style.value == "" && form.affiliation.value == "" &&
	form.country.value == "All" && form.target_city.value == "" &&
	form.target_state.value == "" && form.proximity.value == 0) {
	alert("Please specify at least one search term.");
	okFlag = false;
    }
    
    return okFlag;
}

