function frmi_disable_elements(form,names,invert)
{
	for(i=0;i<form.elements.length;i++)
	{
		e=form.elements(i);
		n=e.name;
		
		found=false;
		for (j=0;j<names.length && !found;j++)
		{
			nm=names[j];
			found=(nm==n) || (n.substr(0,nm.length+1)==(nm+'['));
		}
		if (((found && !invert) && (!found && invert)) && !e.disabled) e.disabled=true;
	}
}

function frmi_add_gets(form,gets)
{
	if (!gets)
		return;
	form.action = form.action + '?' + gets;
}

function frmi_make_gets(form,names,postdisable)
{
	if (!names)
		return false;
		
	act='';
	delim='?';
	for(i=0;i<form.elements.length;i++)
	{
		e=form.elements(i);
		n=e.name;
		t=e.type;
		
		found=false;
		for (j=0;j<names.length && !found;j++)
		{
			nm=names[j];
			found=(nm==n) || (n.substr(0,nm.length+1)==(nm+'['));
		}
		if (found && !e.disabled)
		{
			if (postdisable) e.disabled=true;
			switch(t)
			{
				case "radio":
				case "checkbox":
					if (e.checked)
					{
						act = act + delim + n + '=' + e.value;
						delim='&';
					}
					break;
				case "text":
				case "textarea":
				case "select":
					act = act + delim + n + '=' + e.value;
					delim='&';
					break;
				case "select-multiple":
					for (k=0,l=0;k<e.options.length;k++)
					{
						if (e.options(k).selected)
						{
							act = act + delim + n + '=' + e.options(k).value;
							delim = '&';
							l++;
						}
					}
					e.disabled=true;
					break;
				case "hidden":
					act = act + delim + n + '=' + e.value;
					delim='&';
					break;
				case "submit":
				case "image":
				case "button":
					break;
			}
		}
	}
	if (act) form.action = form.action + act;
}

function frmi_get_value(form,name)
{
	ret = null;
	try
	{
		ret = form.elements[name].value;
	} catch(e)
	{
	}
	return ret;
}

function frmi_add_hidden(form,name,value)
{
	oHidden = document.createElement("INPUT");
	oHidden.type = "hidden";
	oHidden.name = name;
	oHidden.id = name;
	oHidden.value = "";
	
	form.appendChild(oHidden);
}


