//-------------------------------------------------------------------
//	The Document Object Model distinguishes between "elements" and
//	"attributes/properties".  Both can be set here as a convenience.
//
//	Tidbits:
//
//	*)	DOM FORM properties: name, target, action, method, encytype
//
//	*)	A FORM defaults to POST but can send data via GET:
//
//			form.method = "GET";
//-------------------------------------------------------------------

function set_form_field(form_name, field_name, value) 
{
	var form = window.document.getElementById(form_name);

	/*	
		alert("form_name: "  + form_name  + "\n" +
	  	  	  "field_name: " + field_name + "\n" +
	   	  	  "value: "      + value + "\n");
	*/


	//	FORM properties and elements need different handling

	if (is_form_property(field_name))
	{
		if (field_name == "target")
			form.target = value;

		else if (field_name == "action")
			form.action = value;
	}

	else
	{	
		if (!form_field_exists(form_name, field_name)) 
			add_hidden_form_field(form_name, field_name);
		
		else if (form[field_name].type == "file")
			alert("can't set a FORM 'type=file' field!");

		form[field_name].value = value;
	}

	return(true);
} 

function get_form_field(form_name, field_name) 
{
	var value;
	//var form = window.document.forms[form_name];
	var form = window.document.getElementById(form_name);

	//	FORM properties: name, target, action, method, encytype

	if (field_name == "action")
		value = form.action;
	 
	else if (field_name == "target")
		value = form.target;

	//	FORM fields

	else 
		value = form[field_name].value;

	//	alert(form_name + ": " + field_name + "=" + value);

	return(value);
} 

function add_hidden_form_field(form_name, field_name) 
{
	//	alert("add_hidden_form_field():");

	var form 	= window.document.getElementById(form_name);
 	var field	= window.document.createElement("input"); 

	field.name	= field_name;
	field.type  = "hidden";

 	form.appendChild(field); 

	return(true);
} 


//-------------------------------------------------------------------
//	Show the contents of a FORM.
//-------------------------------------------------------------------

function show_form(form_name) 
{
	var str  = "";
	var form   = window.document.getElementById(form_name);

	str = "FORM: " + [form_name] + "\n";

	for (var i=0; i<form.elements.length; i++)
		str += form.elements[i].name + ": " + form.elements[i].value + "\n";

	alert(str);

	return(true);
} 


//-------------------------------------------------------------------
//	form_field_exists() determines if a FORM field already exists.
//-------------------------------------------------------------------

function is_form_property(field_name) 
{
	switch (field_name)
	{
		case "action":
		case "name":
		case "method":
		case "target":
		case "enctype":
		case "method":
			return(true);

		default:
			break;
	}
	return(false);
}


//-------------------------------------------------------------------
//	form_field_exists() determines if a FORM field already exists.
//-------------------------------------------------------------------

function form_field_exists(form_name, field_name) 
{
	//var form = window.document.forms[form_name];
	var form   = window.document.getElementById(form_name);

	for (var i=0; i<form.elements.length; i++) {
		name = form.elements[i].name;
		if (field_name == name)
			return(true);
	}

	return(false);
} 

function submit_form(form_name) 
{
	//alert("submit: " + form_name);

	//var form = window.document.forms[form_name];
	var form   = window.document.getElementById(form_name);

   	//window.document.forms[form_name].submit();

   	form.submit();

	return(true);
} 

//---------------------------------------------------------------
//	To prevent ENTER from causing a form submission, use this
//	function and add this to each text input field:
//
//		onkeypress="return ignore_enter();"	
//---------------------------------------------------------------

function ignore_enter() 
{
	if (window.event && window.event.keyCode == 13)
		return(false);
	else
		return(true);
}

