// mredkj.com tutorial007
// 2 techniques for submitting all options
// You only need to pick one of the techniques
//
// 2005-08-30 - created
// 2006-05-27 - updated
//
// setSubmitDebugOuput is only used in the client-side example
window.onload = setSubmitDebugOuput;
function setSubmitDebugOuput()
{
  document.getElementById('divOutput').innerHTML = window.location.search;
}
// Technique 1
function placeInHidden(delim, selStr, hidStr)
{
  var selObj = document.getElementById(selStr);
  var hideObj = document.getElementById(hidStr);
  hideObj.value = '';
  for (var i=0; i<selObj.options.length; i++) {
    hideObj.value = hideObj.value ==
      '' ? selObj.options[i].value : hideObj.value + delim + selObj.options[i].value;
  }
}
// Technique 2
function selectAllOptions(selStr)
{
  var selObj = document.getElementById(selStr);
  for (var i=0; i<selObj.options.length; i++) {
    selObj.options[i].selected = true;
  }
}


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, maxLength)
{
  
  var selLength = theSelFrom.length;
	var selectedLength = theSelTo.length;
	if(maxLength != 0 && selectedLength > maxLength-1){
		return false;	
	}
	else{
		  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--)
		  {
			  if(theSelTo.length < 3 || maxLength == 0){
				addOption(theSelTo, selectedText[i], selectedValues[i]);
			  }
		  }
		  
		  if(NS4) history.go(0);
	}
}

//-->
