function updateByFields(obj, vis, enab, filename, textval)
{
	this.fields = new Vector();
	updateByFields.prototype.addField = function(obj, vis, enab, filename, textval)
	{
		var params = new Vector();
		params.add(obj);
		params.add(vis);
		params.add(enab);
		params.add(filename);
		params.add(textval);
		this.fields.add(params);
	}

	updateByFields.prototype.isVisible = function(obj)		
	{
		for(var x=0; x<this.fields.size(); x++)
		{
			var vec = this.fields.get(x);
			if(obj == vec.get(0))
			{
				if("true" == vec.get(1) && !(this.isOS9 && vec.get(3).indexOf("lvm.gif") != -1))
					return "visible"
				else if("false" == vec.get(1) || (this.isOS9 && vec.get(3).indexOf("lvm.gif") != -1))
					return "hidden"
				else
					break;
			}
		}

		return "visible";	
	}
	updateByFields.prototype.detectOS9 = function()		
	{
		var retVal = false;
		var uagent = navigator.userAgent.toLowerCase();
		if(uagent.indexOf("macintosh") != -1 && uagent.indexOf("os x") == -1)
			retVal = true
		return retVal;
	}
	
	updateByFields.prototype.setValues = function()
	{
		for(var x=0; x<this.fields.size(); x++)
		{
			var vec = this.fields.get(x);
			var ele = window.ContentFrame.document.getElementById('x' + vec.get(0));
			if(ele != null && vec.get(4).length > 0)
			{
				for (i=0; i<ele.childNodes.length; i++)
				{
					if (ele.childNodes[i].tagName=="DIV")
					{
						var ele2 = ele.childNodes[i];
						for (y=0; y<ele2.childNodes.length; y++)
						{
							if(ele2.childNodes[y].tagName == "INPUT" && ele2.childNodes[y].attributes.getNamedItem("name").value == "ebAnswer")
							{
								ele2.childNodes[y].value = vec.get(4);		
								break;
							}
						}
						
					}else if(ele.childNodes[i].tagName == "INPUT" && ele.childNodes[i].attributes.getNamedItem("name").value == "ebAnswer")
					{
						ele.childNodes[i].value = vec.get(4);
						break;
					}
						
				}
			}
		}
	}
	this.addField(obj, vis, enab, filename,textval);
	this.isOS9 = this.detectOS9();
}