function get_form(f) {
	if ( !document.forms || !document.forms[f] ) return(false);
	return(document.forms[f]);
}

function get_element(f,i) {
	var frm=get_form(f);
	if ( !frm || !frm.elements || !frm.elements[i] ) return(false);
	return(frm.elements[i]);
}

function get_var(f,i) {
	var elm = get_element(f,i);
	if ( elm ) {
		var typ = elm.length ? elm[0].type : elm.type;
		switch( typ ) {
			case "checkbox" : return(get_cb(elm)); break;
			case "radio"    : return(get_rdo(elm)); break;
			case "select"   : return(get_sel(elm)); break;
			default         : return(elm.value); break;
		}
	}
	return(false);
}

function set_var(f,i,j) {
	var elm = get_element(f,i);
	if ( elm ) {
		var typ = elm.length ? elm[0].type : elm.type;
		switch( typ ) {
			case "checkbox" : return(set_cb(elm,j)); break;
			case "radio"    : return(set_rdo(elm,j)); break;
			case "select"   : return(set_sel(elm,j)); break;
			default         : elm.value=j; return(true); break;
		}
	}
	return(false);
}

function get_cb( elm ) { return( elm.checked ? elm.value : "" ); }
function get_rdo( elm ) { for(var k=0; k<elm.length; k++) if ( elm[k].checked ) return( elm[k].value ); return(false); }
function get_sel( elm ) { for(var k=0; k<elm.options.length; k++) if ( elm.options[k].selected ) return(elm.options[k].value); return(false); }
function set_cb( elm, j ) { if ( j ) elm.value=j; elm.checked = ( j!="" ); }
function set_rdo( elm, j ) { for(var k=0; k<elm.length; k++) elm[k].checked = (elm[k].value==j); }
function set_sel( elm, j ) { for(var k=0; k<elm.options.length; k++) elm.options[k].selected = (elm.options[k].value==j); }

function ovsubmit(f,i,j) {
	set_var(f,i,j);
	document.forms[f].submit();
}
