function VirtualRadioGroup(master, children, allowEmpty, onClick)
{
	master;
	children;
	allowEmpty;
	onClick;

	master = master;
	children = children;
	allowEmpty = allowEmpty;
	onClick = onClick;

	observeChildren = function()
	{
		for (var i = 0; i < children.length; i++)
		{
			Element.observe(children[i], 'click', childClick);
		}
	}

	childClick = function(event)
	{
		child = (event.srcElement) ? event.srcElement : event.target;
		
		for (var i = 0; i < children.length; i++)
		{
			if (children[i].name != child.name)
			{
				children[i].checked = false;
			}
		}

		if (child.checked || !allowEmpty)
		{
			child.checked = true;
			master.value = child.value;
		}
		else
		{
			child.checked = false;
			master.value = '';
		}

		if (typeof(onClick) == 'function')
		{
			onClick(event);
		}

		return child.checked;
	}

	observeChildren();
}



function getPageSize() {

	var xScroll, yScroll;

	if (window.innerHeight && window.scrollMaxY) {
		xScroll = document.body.scrollWidth;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}

	var windowWidth, windowHeight;
	if (self.innerHeight) {	// all except Explorer
		windowWidth = self.innerWidth;
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}

	// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else {
		pageHeight = yScroll;
	}

	// for small pages with total width less then width of the viewport
	if(xScroll < windowWidth){
		pageWidth = windowWidth;
	} else {
		pageWidth = xScroll;
	}


	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight)
	return arrayPageSize;
}
