/* Following is useful for all pages */
	function setMsg(msg) {
		window.status = msg;
		return true;
	}

	function OpenWindow(url, title) {
		var features = 'width=450,height=800,status';
		window.open(url,title,features);
		return false;
	}

	function read_elm(what,spec) {
		// This function provides a one-stop shop for returning a form element's value, no matter its type (or tag)
		var out = '';
		var g = document.getElementById(what);
// 		alert('type is ' + g.type);
		switch(g.type) {
			case "radio": 
				var h = document.forms[0].elements[what];
				for(var j = 0 ; j < h.length ; ++j) {
					if(h[j].checked == true) {
						out = h[j].value;
						break;
					}
				}
				break;
			case "select-one", "select-multiple":
				// May need to iterate through select-multiple in order to capture all values; test
				switch(spec) {
					case "label": out = g.options[g.selectedIndex].text; break;
					default: out = g.options[g.selectedIndex].value;
				}
				break;
			case "checkbox": 
//   		alert('spec is ' + spec);
				switch(spec) {
					case "value": out = g.value; break;
					case "checked":
					default: out = g.checked; break;
				}
				break;
			case "text":
				out = g.value; break;
			default:
				out = g.value;
		}
//  	alert('read_elm says: ' + out);
		return out;
	}
	
	function set_elm(item, setvalue) {
		var el = document.forms[0].elements;
		for(var i = 0 ; i < el.length ; ++i) {
			if(el[i].name == item) {
				switch(el[i].type) {
					case "radio":
// 					if(el[i].type == "radio") {
						var radiogroup = el[el[i].name]; // get the whole set of radio buttons.
						for(var j = 0 ; j < radiogroup.length ; ++j) {
							if(radiogroup[j].value == setvalue) {
								radiogroup[j].checked = true;
								break;
							}
						}
						break;
					case "select-one", "select-multiple":
// 					} else if(el[i].type == "select-one") {
						var selectgroup = document.getElementById(item);
						for(var j = 0 ; j < selectgroup.length ; j++) {
							if((selectgroup.options[j].value == setvalue) || (selectgroup.options[j].text == setvalue)) {
// 							if(selectgroup.options[j].value == setvalue) {
								selectgroup.selectedIndex = j;
								selectgroup.options[j].selected = "selected";
								break;
							}
						}
						break;
					case "checkbox":
// 					} else if((el[i].name == item) && (el[i].type == "checkbox")) {
						if(setvalue == "1") {
							el[i].checked = "true";
						} else {
							el[i].checked = "";
						}
						break;
					case "hidden":
					case "textarea":
					case "text":
					default:
// 					} else { // text, hidden, textarea?
						el[i].value = setvalue;
// 						alert(el[i].type);
// 					}
				}
			}
		}
		return true;
	} 

	function countdown(tfield, counter, limit) {
		var gfield = document.getElementById(tfield);
		var wlabel = document.getElementById(counter);
		var x = (limit - gfield.value.length);
		if(x < 0) {
			tval = gfield.value.substring(0,limit);
			x = 0;
		} else {
			tval = gfield.value;
		}
		gfield.value = tval;
		wlabel.innerHTML = x;
	}

	function goto(what) { document.getElementById(what).focus(); }

	function submit_to(what) {
		var g = document.getElementById("f1");
		if(what != "") { // if what is non-blank, set the form action
			g.action = what;
		} // if what *is* blank, leave the form action as-is; may fire off an error if action is undefined or blank
		g.submit();
		return false;
	}

