function writeField(label, name, size, required)
{
	document.write("<tr>");
	writeLabel("", label, required);
	writeInput(name, size);
	document.write("</tr>");
}

function writeLabel(id, label, required)
{
	document.write("<td class='field-label'>");
	document.write("");
	if (id != null && id.length > 0)
		document.write("<span id='"+id+"' name='"+id+"'>");
	if (required)
		document.write("<span class='required'>*</span>");
	document.write(label);
	if (id != null && id.length > 0)
		document.write("</span>");
	document.write("</td>");
}

function writeInput(name, size)
{
	document.write("<td><input name='");
	document.write(name);
	document.write("' id='");
	document.write(name);
	document.write("' size='");
	document.write(size);
	document.write("'></td>");
}

function writeInputWithValue(name, size, value)
{
	document.write("<td><input name='");
	document.write(name);
	document.write("' id='");
	document.write(name);
	document.write("' size='");
	document.write(size);
	document.write("' value='");
	document.write(value);
	document.write("'></td></tr>");
}

function warnIfBlank(id, label)
{
	field = getFormElement(id);
	if (field != null && isBlank(field.value))
	{
		field.value = ' ';
		field.select();
		field.focus();
		alert(label+' is required');
		return true;
	}
	return false;
}

function setSelectedIndexByValue(strSelect, strValue)
{
	objSelect = getFormElement(strSelect);
	opts = objSelect.options;
	for (i = 0; i < opts.length; i++)
	{
		if (document.getElementById)
			opt = opts.item(i);
		else
			opt = opts[i];
		if (opt.value == strValue)
		{
			objSelect.selectedIndex = i;
			return;
		}
	}
}

function setSelectedIndexByText(strSelect, strText)
{
	objSelect = getFormElement(strSelect);
	opts = objSelect.options;
	for (i = 0; i < opts.length; i++)
	{
		if (document.getElementById)
			opt = opts.item(i);
		else
			opt = opts[i];
		if (opt.text == strText)
		{
			objSelect.selectedIndex = i;
			return;
		}
	}
}

function warnIfNotPositiveInteger(name, label)
{
	field = getFormElement(name);
	num = parseInt(field.value);
	if (num > 0)
		return false;
	if (field.value == '')
		field.value = ' ';
	field.select();
	field.focus();
	alert(label+" must be a number greater than 0");
	return true;
}

function warnIfNegativeInteger(name, label)
{
	field = getFormElement(name);
	num = parseInt(field.value);
	if (num >= 0)
		return false;
	if (field.value == '')
		field.value = ' ';
	field.select();
	field.focus();
	alert(label+" must be a number greater than or equal to 0");
	return true;
}

function addOption(select, value, text)
{
	var opt;
	if (document.getElementById)
	{
		opt = document.createElement("OPTION");
		select.options.add(opt);
		opt.value = value;
		opt.text = text;
	}
	else
	{
		opt = new Option(text, value, false, false);
		select.options[select.options.length] = opt;
	}
}

function invalidField(name)
{
	field = getFormElement(name);
	field.select();
	field.focus();
}

function warnIfNotHexString(name, label)
{
	field = getFormElement(name);
	if (field == null)
		return false;
	if (!allHex(field.value, 0))
	{
		alert(label+" must be a hex number");
		return true;
	}
	return false;
}
