//%name: pagefield.js % %date_modified: Fri Mar 09 17:21:38 2001 % %version: 6 % 
	function PageHolder(parent, id,	mSharedFields)
	{
		this.parent       = parent;
		this.id           = id;
		this.name         = fStr + id + fStr;
		this.type         = typePageHolder;
		this.sharedFields = mSharedFields;
 
 		return this;
	}
	function PageField(parent, id, label, visibility, children)
	{
		this.parent       = parent;
		this.id           = id;
		this.name         = fStr + id + fStr;
		this.type         = typePage;
		this.label        = label;
		this.visibility   = visibility;
		this.children     = children;

		return this;
	}
	function setPageFieldVisible(visibility)
	{
		if (this.visibility == visibility) return;
		if (visibility == hide)
			hidePageField(this);
		else if (visibility == inherit)
			showPageField(this);
	}
	function hidePageField(pg)
	{
		pg.tab.zIndex       = 1;
		pg.tab.visibility   = hide;
		pg.layer.visibility = hide;
		pg.visibility       = hide;
		var tabWidth;
		if (ie)
			tabWidth = pg.tab.pixelWidth;
		else
			tabWidth = pg.tab.clip.width;

		var prnt = getFieldInstanceByID(pg.parent);
		var i=0,j=0;
		if (prnt.activePage == pg.name)
		{
			prnt.activePage = null;
			for(i=0;i<prnt.children.length;i++)
			{
				if (getFieldInstanceByName(prnt.children[i]).visibility == "inherit")
				{
					selectTab(prnt.children[i]);
					break;
				}
			}
		}
		for (i=0;prnt.children.length;i++)
			if (pg.name == prnt.children[i]) break;
		for (j=i+1;j<prnt.children.length;j++)
			if (ns)
				getFieldInstanceByName(prnt.children[j]).tab.moveBy(-tabWidth, 0);
			else if (ie)
				getFieldInstanceByName(prnt.children[j]).tab.pixelLeft -= tabWidth;
	}
	function showPageField(pg)
	{
		var tabWidth;
		if (ie)
			tabWidth = pg.tab.pixelWidth;
		else
			tabWidth = pg.tab.clip.width;
		var i,j;
		var prnt = getFieldInstanceByName(fStr + pg.parent + fStr);
		for (i=0;prnt.children.length;i++)
		{
			if (pg.name == prnt.children[i]) break;
		}
		for (j=i+1;j<prnt.children.length;j++)
		{
			if (ns)
				getFieldInstanceByName(prnt.children[j]).tab.moveBy(tabWidth, 0);
			else
				getFieldInstanceByName(prnt.children[j]).tab.pixelLeft += tabWidth;
		}
		pg.tab.visibility   = inherit;
		pg.visibility       = inherit;
		if (getFieldInstanceByID(pg.parent).activePage == null)
			selectTab(pg.name);
	}
	function setFocusToPageField()
	{
		if (this.visibility != hide)
			selectTab(this.name);
	}
	function changeTabColor(newColor)
	{
      // Not supported
	}
	function selectTab(name)
	{
		var pg = getFieldInstanceByName(name);
		if (pg.tab.zIndex == 3) return;
		handleGainFocus(name);
		var prnt = getFieldInstanceByName(fStr+pg.parent+fStr);
		if (prnt.activePage != null) hidePage(prnt.activePage);
		prnt.activePage = name;
		pg.layer.visibility = "inherit";
		pg.tab.zIndex = 3;
	}
	function hidePage(name)
	{
		var pg = getFieldInstanceByName(name);
		pg.layer.visibility = hide;
		pg.tab.zIndex = 1;
	}
	function fixPageSelection(fld)
	{
		// Store current active page in temporary variable
		var currActivePage = fld.activePage;
		fld.activePage = fld.children[0];

		// Restore current active page (it may be null)
		if (currActivePage)
			selectTab(currActivePage);
	}

	// set the initial visibility of page fields
	function setInitialPageVisibility()
	{
		if (currentWin == null)
			return;
	    var fields = currentWin.fieldInstances;

		for (var i = 0; i < fields.length; i++)
		{
			var fld = fields[i];
			if (fld.type == typePageHolder)
			{
				for(var j=0; j<fld.children.length; j++)
				{
					var child = getFieldInstanceByName(fld.children[j]);
					if (child.visibility == hide)
						hidePageField(child);
				}
			}
		}
	}