/**
 * Launch a window that displays a 'context-sensitive' help. The help files
 * are integrated in all Mireau applications.
 *
 * @author  rens@joxx.nl
 * @version 1.0 - 2003.11.12
 * @param   sDir
 * @param   sTopic
 */
function launchHelpWindow( sDir, sTopic )
{
  var _params = "toolbar=0,width=480,height=400,directories=0,status=0,";
  _params += "scrollbars=1,resize=0,menubar=0,dependent=0,location=0,";
  _params += "screenX=0,screenY=0,system=0"

  // open help and give it focus ..
  _helpWindow = window.open( m_sWebRoot + sDir + '?fuseaction=help&sTopic=' + sTopic, 
                             "help_window", 
                             _params );
  _helpWindow.focus();
}

function confirmRelocate( sMessage, sUrl )
{
  if( confirm( sMessage ))
    self.location.href = sUrl;
}

/* /~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\ */
/* /~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\ */
/* /~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\ */
/*                        move options between selects                        */
/* /~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\ */
/* /~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\ */
/* /~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\ */

var NS4 = (navigator.appName == "Netscape" && parseInt(navigator.appVersion) < 5);

function addOption(theSel, theText, theValue)
{
	var newOpt = new Option(theText, theValue);
	var selLength = theSel.length;
	theSel.options[selLength] = newOpt;
}

function deleteOption(theSel, theIndex)
{	
	var selLength = theSel.length;
	if(selLength>0)
	{
		theSel.options[theIndex] = null;
	}
}

function moveOptions(theSelFrom, theSelTo)
{
	
	var selLength = theSelFrom.length;
	var selectedText = new Array();
	var selectedValues = new Array();
	var selectedCount = 0;
	
	var i;
	
	// Find the selected Options in reverse order
	// and delete them from the 'from' Select.
	for(i=selLength-1; i>=0; i--)
	{
		if(theSelFrom.options[i].selected)
		{
			selectedText[selectedCount] = theSelFrom.options[i].text;
			selectedValues[selectedCount] = theSelFrom.options[i].value;
			deleteOption(theSelFrom, i);
			selectedCount++;
		}
	}
	
	// Add the selected text/values in reverse order.
	// This will add the Options to the 'to' Select
	// in the same order as they were in the 'from' Select.
	for(i=selectedCount-1; i>=0; i--)
	{
		addOption(theSelTo, selectedText[i], selectedValues[i]);
	}
	
	if(NS4) history.go(0);
}

function selectAll( obj )
{
  for( i=0; i < obj.length; i++ )
    obj.options[i].selected = true;
}