function SwitchLocation(elem, root, count)
{
	// Hide all elements
	for(i=1; i<=count; i++)
	{
		thecontainer = document.getElementById(root + i);
		thecontainer.style.display = 'none';
	}

	// Show the new element
	thecontainer = document.getElementById(elem);
	thecontainer.style.display = 'block';
}

function ResetCheckboxes(root)
{
	j=1;
	checkbox = document.getElementById(root + '[' + j + ']');
	while(checkbox!=null)
	{
		checkbox.checked=false;
		j++;
		checkbox = document.getElementById(root + '[' + j + ']');
	}
}

function ChangeAllCheckboxesByName(name,value)
{
	var collection=document.getElementsByName(name); 
	for(var i=0; i<collection.length; i++)
	{ 
		collection[i].checked=value;
	}
}

function Switch(root, showID)
{
	j=1;	
	element = document.getElementById(root + '[' + j + ']');
	while(element!=null)
	{
		element.className = element.className.replace(/show/, 'hide');
		j++;
		element = document.getElementById(root + '[' + j + ']');
	}
	
	element = document.getElementById(root + '[' + showID + ']');
	element.className = element.className.replace(/hide/, '');
	element.className += ' show';
}

function Hide(id)
{
	element = document.getElementById(id);
	element.className = element.className.replace(/show/, '');
	element.className = element.className.replace(/hide/, '');	
	element.className += ' hide';
}

function Show(id)
{
	element = document.getElementById(id);
	element.className = element.className.replace(/show/, '');
	element.className = element.className.replace(/hide/, '');	
	element.className += ' show';
}

function HideAll(root)
{
	j=1;	
	element = document.getElementById(root + '[' + j + ']');
	while(element!=null)
	{
		element.className = element.className.replace(/show/, '');
		element.className = element.className.replace(/hide/, '');	
		element.className += ' hide';
		j++;
		element = document.getElementById(root + '[' + j + ']');
	}	
}

function HighlightTab(rootID, rootClass, colorFrom, colorTo)
{
	element = document.getElementById(rootID + '_top');
	element.className = element.className.replace(rootClass + 't' + colorFrom, rootClass + 't' + colorTo);

	element = document.getElementById(rootID + '_middle');
	element.className = element.className.replace(rootClass + 'm' + colorFrom, rootClass + 'm' + colorTo);

	element = document.getElementById(rootID + '_bottom');
	element.className = element.className.replace(rootClass + 'b' + colorFrom, rootClass + 'b' + colorTo);
}

function SelectSpec(root, elem)
{
	document.getElementById(root + '_icon[' + elem + ']').className = 'sel';
	document.getElementById(root + '_text[' + elem + ']').className = 'sel';	
}

function UnselectSpec(root, elem)
{
	document.getElementById(root + '_icon[' + elem + ']').className = 'unsel';
	document.getElementById(root + '_text[' + elem + ']').className = 'unsel';	
}

function SwitchTab(root, elem, optElem, optElemColor)
{
	j=1;
	
	// Unselect all tabs
	element = document.getElementById(root + '[' + j + ']');
	while(element!=null)
	{
		element.className = element.className.replace(/tab_unselected/, '');
		element.className = element.className.replace(/tab_selected/, '');
		element.className += ' tab_unselected';
		
		document.getElementById(root + '_tl[' + j + ']').className = 'tlb';
		document.getElementById(root + '_tc[' + j + ']').className = 'tcb';	
		document.getElementById(root + '_tr[' + j + ']').className = 'trb';	
		
		j++;
		element = document.getElementById(root + '[' + j + ']');
	}		
	
	// Select the tab we're told to (elem)
	element = document.getElementById(root + '[' + elem + ']');
	element.className  = element.className.replace(/tab_selected/, '');	
	element.className  = element.className.replace(/tab_unselected/, '');	
	element.className += ' tab_selected';
	
	document.getElementById(root + '_tl[' + elem + ']').className = 'tlw';
	document.getElementById(root + '_tc[' + elem + ']').className = 'tcw';	
	document.getElementById(root + '_tr[' + elem + ']').className = 'trw';	
	
	// Colorize an optional tab
	if(optElem != undefined)
	{
		document.getElementById(root + '_tl[' + optElem + ']').className = 'tl' + optElemColor;
		document.getElementById(root + '_tc[' + optElem + ']').className = 'tc' + optElemColor;
		document.getElementById(root + '_tr[' + optElem + ']').className = 'tr' + optElemColor;	
	}
}

function SelectTab(root, elem)
{
	j=1;
		
	element = document.getElementById(root + '[' + j + ']');
	while(element!=null)
	{
		// Unselect all tabs
		element.className = element.className.replace(/tab_unselected/, '');
		element.className = element.className.replace(/tab_selected/, '');
		element.className += ' tab_unselected';
		
		document.getElementById(root + '_tl[' + j + ']').className = 'tlb';
		document.getElementById(root + '_tc[' + j + ']').className = 'tcb';	
		document.getElementById(root + '_tr[' + j + ']').className = 'trb';	
		
		// Point all onmouseout events to the selected tab
		element.onmouseout=function() { SwitchTab(root, elem) };
		
		j++;
		element = document.getElementById(root + '[' + j + ']');
	}		
		
	// Select the tab we're told to (elem)
	element = document.getElementById(root + '[' + elem + ']');
	element.className  = element.className.replace(/tab_selected/, '');	
	element.className  = element.className.replace(/tab_unselected/, '');	
	element.className += ' tab_selected';
	
	document.getElementById(root + '_tl[' + elem + ']').className = 'tlw';
	document.getElementById(root + '_tc[' + elem + ']').className = 'tcw';	
	document.getElementById(root + '_tr[' + elem + ']').className = 'trw';	
}

function SelectList(root, elem)
{
	document.getElementById(root + '_top[' + elem + ']').className    = 'box_653_top_blue';
	document.getElementById(root + '_middle[' + elem + ']').className = 'box_653_middle_blue';
	document.getElementById(root + '_bottom[' + elem + ']').className = 'box_653_bottom_blue';
}

function UnselectList(root, elem)
{
	document.getElementById(root + '_top[' + elem + ']').className    = 'box_653_top';
	document.getElementById(root + '_middle[' + elem + ']').className = 'box_653_middle';
	document.getElementById(root + '_bottom[' + elem + ']').className = 'box_653_bottom';
}