		// FIELD validation functions
		function showMessage(msg,fld) {
			alert(msg);fld.focus();return;
		}
		function validEmail(fld) {
			if(fld.value.search(/^\w+((-\w+)|(\.\w+)|(\+\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9][A-Za-z0-9]+$/) == -1) {
				showMessage("Please enter a valid email address.",fld);return false;
			}
			return true;
		}
		function validPhone(fm,group) {
		  field = group+"_phone_area";
			if (fm[field].value.search(/\d{3}/)==-1) { showMessage("Please enter your "+group+" phone area code.",fm[field]); return false;}
		  field = group+"_phone_prefix";
			if (fm[field].value.search(/\d{3}/)==-1) { showMessage("Please enter your "+group+" phone prefix.",fm[field]); return false;}
		  field = group+"_phone_number";
			if (fm[field].value.search(/\d{4}/)==-1) { showMessage("Please enter your "+group+" phone number.",fm[field]); return false;}
			return true;
		}

		// pop-up window function
    function openPop(url,name,width,height,options) {
		  if (!options) options = "scrollbars,resizable";
      remote = window.open(url,name,"width="+width+",height="+height+",left=50,top=50,"+options);
			window.onunload = function () { if (remote) remote.close(); }
    }

		// specialized callers for repeated pops
    function launch(url) {
      openPop(url,"modelnum",566,470);
    }
