
function CFC_radioToGroup(groupObject,itemLabel,noHidden)
	{
	for (var i in groupObject.Sub)
		{
		var name=groupObject.Sub[i].name;
		var button=CFC_getButtonObject(name);
		if (button.name!=groupObject.Sub[itemLabel].name)
			{
			button.state=0;
			CFC_switchbuttonDraw(name,button);
			}
		else
			{
			button.state=3;
			CFC_switchbuttonDraw(name,button);
			}
		}

	if (!noHidden && document.CFCForm)
		{
		document.CFCForm[groupObject.name].value=unescape(groupObject.Sub[itemLabel].value);
		}
	}

function CFC_htmlRadioToGroup(item,groupName)
	{
	if (document.CFCForm)
		{
		document.CFCForm[groupName].value=item.value;
		}
	}

function CFC_htmlCheckboxToGroup(item,groupName)
	{
	var group=new Object();
	group.name=groupName;

	if (document.CFCForm)
		CFC_checkboxToGroup(group,item.value);
	}

function CFC_imageCheckboxToGroup(groupObject,itemLabel,escItemValue)
	{
	var name=groupObject.Sub[itemLabel].name;

	var button=CFC_getButtonObject(name);

	switch(button.state)
		{
		case "2":
			button.state = 3;
		break;
		case "3":
			button.state = 2;
		break;
		}

	CFC_switchbuttonDraw(name,button);
	if (document.CFCForm)
		CFC_checkboxToGroup(groupObject,unescape(escItemValue));
	}

function CFC_checkboxToGroup(groupObject,itemValue)
	{
	var futureValue="";
	var nowValue="";
	if (document.CFCForm[groupObject.name][0])
		{
		nowValue=document.CFCForm[groupObject.name][0].value;
		}
	else
		{
		nowValue=document.CFCForm[groupObject.name].value;
		}

	if (nowValue.indexOf('|'+itemValue+'|')>=0)
		{
		itemValue='|'+itemValue+'|';
		futureValue=nowValue.substring(0,nowValue.indexOf(itemValue))+nowValue.substring(nowValue.indexOf(itemValue)+itemValue.length-1);
		}
	else
		{
		if (nowValue=="") nowValue='|';
		futureValue=nowValue+itemValue+'|';
		}

	if (futureValue=="|") futureValue="";
	if (document.CFCForm[groupObject.name][0])
		document.CFCForm[groupObject.name][0].value=futureValue;
	else
		document.CFCForm[groupObject.name].value=futureValue;
	}

	
function CFC_getButtonLocator(name,locator)
	{
	var div;
	var returnValue;
	for (div in locator.layers)
		{
		if (locator[div])
			{
			if (locator.layers[div].document.images[name])
				{
				return(locator[div].document);
				}
			var tmp=CFC_getButtonLocator(name,locator[div].document);
			if (tmp) return(tmp);
			}
		}
	return(0);
	}


function CFC_getButtonObject(name)
	{
	//returns button.src, button.pre, button.post button.state
	//button.src=button.pre+button.state+button.post
	//no integer-flag allowed beside the state!
	var button=new Object();
	button.locator=document;
	
	
	if (!document.images[name])
		button.locator=CFC_getButtonLocator(name,document);
	
	if (!button.locator) return;
	
	button.src=button.locator.images[name].src;
	
	if (button.src.indexOf('?')>=0)
		button.pre=button.src.substring(0,button.src.indexOf('?'));
	else
		button.pre=button.src;
		
	while (isNaN(button.state))
		{
		button.pre=button.pre.substring(0,button.pre.lastIndexOf('.'));
		button.state=button.pre.substring(button.pre.lastIndexOf('.')+1);
		}
	button.pre=button.pre.substring(0,button.pre.lastIndexOf('.')+1);
	button.post=button.src.substring(button.pre.length+1);
	
	button.name=name;
	//alert(button.pre+":"+button.state+":"+button.post);
	return(button);
	}
	
function CFC_switchbuttonDraw(name,button)
	{
	if (button.pre!="")
		{
		button.locator.images[name].src=button.pre+button.state+button.post;
		}
	}

		
function CFC_ButtonOver(name)
	{
	var button=CFC_getButtonObject(name);
	if (button)
		{
		button.state|=2;
		}
	CFC_switchbuttonDraw(name,button);
	}
	
function CFC_ButtonOut(name)
	{
	var button=CFC_getButtonObject(name);
	if (button)
		{
		button.state&=~2;
		CFC_switchbuttonDraw(name,button);
		}
	}

function CFC_ButtonToState(name,state)
	{
	var button=CFC_getButtonObject(name);
	if (button)
		{
		button.state=state;
		CFC_switchbuttonDraw(name,button);
		}
	}

function CFC_ButtonDown(name)
	{
	var button=CFC_getButtonObject(name);
	if (button)
		{
		button.state|=2;
		CFC_switchbuttonDraw(name,button);
		}
	}

function CFC_ButtonUp(name)
	{
	var button=CFC_getButtonObject(name);
	if (button)
		{
		button.state&=~2;
		CFC_switchbuttonDraw(name,button);
		}
	}



function CFC_preloadButtons()
	{
	var buz=new Array(); 
	buz=CFC_getButtonArray(document,buz);
	var str = "";
	for (var i in buz)
		{
		str+= i+": "+buz[i].src+"\n";
		}
	//alert(str);
	}

function CFC_getButtonArray(locator,buz)
	{
	if (locator==document)
		{
		for (var elem in document.images)
			{
			buz=CFC_addButton(buz,document.images[elem].src);
			}
		}
	if (!document.all); 	
		{
		for (var div in locator.layers)
			{
			if (locator[div])
				{
				for (var img in locator.layers[div].document.images)
					{
					var src=locator.layers[div].document.images[img].src;
					buz=CFC_addButton(buz,src);
					}
				buz=CFC_getButtonArray(locator.layers[div].document,buz);
				}
			}
		}	
	return(buz);
	}

function CFC_addButton(buz,src)
 {
 var helpIndex;
 if (src && (helpIndex=src.indexOf("/vwcms_author/libs/CFC/button"))!=-1)
  {
  var srcHead=src.substring(0,helpIndex);
  src=src.substring(helpIndex);
  var ok=1;
  for (var elem in buz) 
   {
   if (buz[elem].src==src) ok=0;
   }
  if (ok)
   {
   ok=0;
   var i=0;
   while (i<=3) 
    {
    var pat="."+i+".";
    if (src.indexOf(pat)!=-1)
     {
     src=src.split(pat);
     var i=0;
		 while (i<=3) 
      {
      var x=buz.length;
      buz[x]=new Image();
      buz[x].src=srcHead+src[0]+"."+i+"."+src[1];
		  //alert("added: "+buz[x].src);
      i++;
      }
     break;
     }
    i++;
    }   
   }
  }
 return buz;
 }
