function showLayer (layerid) {
	var layer = document.getElementById(layerid);
	layer.style.visibility = "visible";
}

function hideLayer(layerid) {
	var layer = document.getElementById(layerid);
	layer.style.visibility = "hidden";
}

function minimize(id) {
	var divTag = document.getElementById(id);
	var contentDiv = divTag.getElementsByTagName("div")[1];
	contentDiv.style.display="none";
}

function maximize(id) {
	var divTag = document.getElementById(id);
	var contentDiv = divTag.getElementsByTagName("div")[1];
	contentDiv.style.display="block";
}

function showElement(layer){
   var myLayer = document.getElementById(layer);
   if(myLayer.style.display=="none"){
      myLayer.style.display="block";
      myLayer.backgroundPosition="top";
   } else {
      myLayer.style.display="none";
   }
}

/*******************************************************************************/
/* This following functions show and hide boxes as called by CSS Id's or Names */
/*******************************************************************************/


/* This hides all tables except one which is the one which should be displayed - thereby, creating an effect of showing a long tables in page by page format */

function showTable(currentTableNumber, numberOfTables)
{
   var tableNumber, tableToShow, tableToHide, tableToDelete;
   for (tableNumber=1; tableNumber<(numberOfTables+1); tableNumber++) {
   	tableToDelete = 'table'+tableNumber;
   	tableToShow = 'table'+currentTableNumber;

   	if (tableNumber != currentTableNumber) {
   		tableToHide = document.getElementById (tableToDelete);
   		tableToHide.style.display = "none";
   	}
   	else {
   		tableToShow = document.getElementById (tableToShow);
   		tableToShow.style.display = "block";
   	}
   }
}

/* This hides all boxes except one which is the one which should be displayed */

function showBox(currentBoxNumber, numberOfBoxes)
{
   var boxNumber, boxToShow, boxToHide, boxToDelete;
   for (boxNumber=1; boxNumber<(numberOfBoxes+1); boxNumber++) {
   	boxToDelete = 'box'+boxNumber;
   	boxToShow = 'box'+currentBoxNumber;

   	if (boxNumber != currentBoxNumber) {
   		boxToHide = document.getElementById (boxToDelete);
   		boxToHide.style.display = "none";
   	}
   	else {
   		boxToShow = document.getElementById (boxToShow);
   		boxToShow.style.display = "block";
			boxToShow.backgroundPosition="top";
   	}
   }
}

/* This hides all boxes except one which is the one which should be displayed */

function hideOtherBoxes(currentBoxNumber, numberOfBoxes)
{
   var boxNumber, boxToShow, boxToHide, boxToDelete;
   for (boxNumber=1; boxNumber<(numberOfBoxes+1); boxNumber++) {
   	boxToDelete = 'box'+boxNumber;
   	boxToShow = 'box'+currentBoxNumber;

   	if (boxNumber != currentBoxNumber) {
   		boxToHide = document.getElementById (boxToDelete);
   		boxToHide.style.display = "none";
   	}
   }
}

/* This shows only one box and does not have any hiding functionality */

function showOneBox(currentBoxNumber)
{
   var boxToShow;
  	boxToShow = 'box'+currentBoxNumber;

  	boxToShow = document.getElementById (boxToShow);
  	boxToShow.style.display = "block";
}

/* This hides a box */

function hideOneBox(currentBoxNumber)
{
   var boxToHide;
  	boxToHide = 'box'+currentBoxNumber;

  	boxToHide = document.getElementById (boxToHide);
  	boxToHide.style.display = "none";
}

/* This shows only one box and does not have any hiding functionality */
/* It does the same thing as above but call box by name */

function showBoxByName(currentBoxName)
{
   var boxToShow;
  	boxToShow = currentBoxName;

  	boxToShow = document.getElementById (boxToShow);
  	boxToShow.style.display = "block";
}

/* This hides a box */

function hideBoxByName(currentBoxName)
{
   var boxToHide;
  	boxToHide = currentBoxName;

  	boxToHide = document.getElementById (boxToHide);
  	boxToHide.style.display = "none";
}


/***************************************************************************************/
/* the following functions allow items to be picked from one list and added to another */
/***************************************************************************************/

// Control flags for list selection and sort sequence
// Sequence is on option value (first 2 chars - can be stripped off in form processing)
// It is assumed that the select list is in sort sequence initially
var singleSelect = true;  // Allows an item to be selected once only
var sortSelect = true;  // Only effective if above flag set to true
var sortPick = true;  // Will order the picklist in sort sequence

// Initialise - invoked on load

function initIt() {
	var selectList = document.getElementById("SelectList");
	var pickList = document.getElementById("PickList");
	var pickOptions = pickList.options;
	pickOptions[0] = null;  // Remove initial entry from picklist (was only used to set default width)
	selectList.focus();  // Set focus on the selectlist
}

// Adds a selected item into the picklist

function addIt() {
	var selectList = document.getElementById("SelectList");
	var selectIndex = selectList.selectedIndex;
	var selectOptions = selectList.options;
	var pickList = document.getElementById("PickList");
	var pickOptions = pickList.options;
	var pickOLength = pickOptions.length;
	// An item must be selected
	if (selectIndex > -1) {
		pickOptions[pickOLength] = new Option(selectList[selectIndex].text);
		pickOptions[pickOLength].value = selectList[selectIndex].value;
		// If single selection, remove the item from the select list
		if (singleSelect) {
			selectOptions[selectIndex] = null;
		}
		if (sortPick) {
			var tempText;
			var tempValue;
			// Sort the pick list
			while (pickOLength > 0 && pickOptions[pickOLength].value < pickOptions[pickOLength-1].value) {
				tempText = pickOptions[pickOLength-1].text;
				tempValue = pickOptions[pickOLength-1].value;
				pickOptions[pickOLength-1].text = pickOptions[pickOLength].text;
				pickOptions[pickOLength-1].value = pickOptions[pickOLength].value;
				pickOptions[pickOLength].text = tempText;
				pickOptions[pickOLength].value = tempValue;
				pickOLength = pickOLength - 1;
			}
		}
	}
}

// Deletes an item from the picklist

function delIt() {
	var selectList = document.getElementById("SelectList");
	var selectOptions = selectList.options;
	var selectOLength = selectOptions.length;
	var pickList = document.getElementById("PickList");
	var pickIndex = pickList.selectedIndex;
	var pickOptions = pickList.options;
	if (pickIndex > -1) {
		// If single selection, replace the item in the select list
		if (singleSelect) {
			selectOptions[selectOLength] = new Option(pickList[pickIndex].text);
			selectOptions[selectOLength].value = pickList[pickIndex].value;
		}
		pickOptions[pickIndex] = null;
		if (singleSelect && sortSelect) {
			var tempText;
			var tempValue;
			// Re-sort the select list
			while (selectOLength > 0 && selectOptions[selectOLength].value < selectOptions[selectOLength-1].value) {
				tempText = selectOptions[selectOLength-1].text;
				tempValue = selectOptions[selectOLength-1].value;
				selectOptions[selectOLength-1].text = selectOptions[selectOLength].text;
				selectOptions[selectOLength-1].value = selectOptions[selectOLength].value;
				selectOptions[selectOLength].text = tempText;
				selectOptions[selectOLength].value = tempValue;
				selectOLength = selectOLength - 1;
			}
		}
	}
}
