<!--
//
// OptionCheckUtils.js
//
// @author      Michael Skolik
// @version     3.0
// @date        January  03, 1999
// @modified    August   12, 2003
//
// @purpose:	Collection of Option, Checkbox and Radio functions
//
//


// Returns a comma delimited string based on
// the selected options.
//
// Arguments:
//	crtl  -  Option Box
//
function OptionsMakeString(ctrl, aList) {
  var i, n=0;
  var str = "";

  for (i=0; i<ctrl.options.length; i++) {
    if (ctrl.options[i].selected) {
      if (n > 0) str += ",";
      str += ctrl.options[i].value;
      n++;
    }
  }
  return str;
}


// Sets options in a Option/List box to selected
// based on a comma delimited string.
//
// Arguments:
//	crtl  -  Option Box
//	str   -  String containing the optionlist
//
function OptionsSetFromString(ctrl, str) {
  var i, n;
  var sOpt;
  var lstArray = str.split(",");

  for (n = 0; n < lstArray.length; n++) {
    sOpt = trim(lstArray[n]);

    for (i=0; i<ctrl.options.length; i++) {
      if (ctrl.options[i].value == sOpt)
		ctrl.options[i].selected = true;
    }
  }
}

function OptionsNotFirst(ctrl) {
  var Status = 1;
  if (ctrl.selectedIndex == 0) {
    alert ("??? was not selected.");
    Status = 0; 
  }
  return Status;
}

function OptionsClear(ctrl){
  for (var i = ctrl.options.length-1; i >= 0; i--)	ctrl.options[i] = null;
}

function OptionsFillFromOptionList(ctrl, OptionList) {
  var argv      = OptionsFillFromOptionList.arguments;
  var argc      = OptionsFillFromOptionList.arguments.length;
  var i = 0;
  
  if (argc > 1) {
    ctrl.options[0] = argv[1];
    i = 1;
  }
  for (; i < OptionList.length; i++){
    ctrl.options[i]=new Option(OptionList[i].text, OptionList[i].value);
  }
}

function OptionsCreateFromString(OptionString) {
  var oStr = "";
  if (OptionString.length == 0  ||  OptionString.indexOf("&nbsp") > -1)	return oStr;
  var OptionList = OptionString.split(",");
  for (var i = 0; i < OptionList.length; i++) {
    oStr += "<option value=\"" + OptionList[i] + "\">" + OptionList[i] + "</option>\n";
  }
  return oStr;
}


function OptionsCreateFromRecordList(RecordList) {
  var argv      = OptionsCreateFromRecordList.arguments;
  var argc      = OptionsCreateFromRecordList.arguments.length;
  var oStr	= "";
  
  if (argc > 1) {
    oStr += "<option value=\"" + argv[1].value + "\">" + argv[1].text + "</option>\n";
  }
  for (var i = 0; i < RecordList.length; i++){
    oStr += "<option value=\"" + RecordList[i].Value + "\">" + RecordList[i].Name + "</option>\n";
  }
  return oStr;
}


function OptionsFillDependentComboBox(RecordList, ctrl, x) {
  var argv      = OptionsFillDependentComboBox.arguments;
  var argc      = OptionsFillDependentComboBox.arguments.length;
  var i = 0;
  var n = 0;

  OptionsClear(ctrl);
  if (argc > 3) {
    ctrl.options[0] = argv[3];
    i = 1;
    n = 1;
  }
  for (; i < RecordList.length; i++){
    if (x == null  ||  RecordList[i].Group == x) {
      ctrl.options[n] = new Option(RecordList[i].Name, RecordList[i].Value);
      n++;
    }
  }
  if (n > 0) ctrl.options[0].selected = true;
}


//**********  Check Boxes  **********


// Returns a comma delimited string based on
// the selected Checkboxes.
//
// Arguments:
//	form     -  Pointer to the form
//	Prefix   -  Prefix to identify the checkboxes
//

function CheckMakeString(aForm, Prefix)
{
	var i;
	var j = 0;
	var objCtrl;
	var str = "";

	// step through all of the controls on the form
	for (i = 0; i < aForm.elements.length; i++) {
	   objCtrl = aForm.elements[i];
	   if(objCtrl.type.toLowerCase() != "checkbox")	continue;
	   if (objCtrl.name.substring(0,Prefix.length) == Prefix) {
		if (objCtrl.checked) {
		  if (j > 0) str += ",";
		  str += objCtrl.value;
		  j++;
		}
	   }
	}
	return str;
}


// Sets Checkboxes as check based on a comma delimited string.
//
// Arguments:
//	Name  -  Name of the Form
//	str       -  String containing the options
//	Prefix    -  Prefix to identify the checkboxes
//
function CheckSetFromString(FormName, str, Prefix)
{
	var i;
	var objCtrl;
	var str;
	var lstArray = str.split(",");
	
	for (i=0; i < lstArray.length; i++) {
	  str = "document." + FormName + "." + Prefix + lstArray[i];
	  objCtrl = eval(str);
	  if (objCtrl != null)	  objCtrl.checked = true;
	}
}

function CheckClearSelection(aForm, Prefix)
{
	var objCtrl;

	// step through all of the controls on the form
	for (var i = 0; i < aForm.elements.length; i++) {
	   objCtrl = aForm.elements[i];
	   if(objCtrl.type.toLowerCase() != "checkbox")	continue;
	   if (objCtrl.name.substring(0,Prefix.length) == Prefix) {
		if (objCtrl.checked == true)	objCtrl.checked = false;
	   }
	}
}


// ------ Radio Buttons  -------



function RadioGetSelectedID(objCtrl) {
  for (var i = 0; i < objCtrl.length; i++)
  	if (objCtrl[i].checked == true)	return i;
  return -1;
}

function RadioGetSelectedValue(objCtrl) {
  for (var i = 0; i < objCtrl.length; i++)
  	if (objCtrl[i].checked == true)	return objCtrl[i].value;
  return null;
}

function RadioClearSelection(objCtrl) {
  for (var i = 0; i < objCtrl.length; i++)
  	if (objCtrl[i].checked == true)	objCtrl[i].checked = false;
}

function RadioGetSelectedValueFromForm(aForm, Prefix)
{
	var objCtrl;

	// step through all of the controls on the form
	for (var i = 0; i < aForm.elements.length; i++) {
	   objCtrl = aForm.elements[i];
	   if(objCtrl.type.toLowerCase() != "radio")	continue;
	   if (objCtrl.name.substring(0,Prefix.length) == Prefix) {
		if (objCtrl.checked)	return objCtrl.value;
	   }
	}
	return null;
}
// -->
