//===============================================================================
// Name:     xform.js
// Purpose:  collection of javascript routines for form operations.
// Version:  1.0.0
// Date:     2005-04-06
// Author:   X. Jian
// Usage:
//      <script language='JavaScript' src='scripts/xform.js'></script>
//-------------------------------------------------------------------------------
// Requirements:
//   xdoc.js -- IsNN, IsIE, DocX, DocY
//   xwin.js -- openWin(), openInfoWin(), closeWin()
//-------------------------------------------------------------------------------
// History
//-------------------------------------------------------------------------------
// Version 1.0, 2005-04-60
// A. Initial coding.
//===============================================================================
//===============================================================================
// Name:     getRadioButtonChecked
// Purpose:  Get the index of cheked radio button.
// Version:  1.0.0
// Author:   X. Jian
// Usage:    getRadioButtonChecked(radButton)
// Arguments:
//   radButton -- Radio button oject.
//-------------------------------------------------------------------------------
// History
// Version 1.0.0, 2005-04-06  
//   A. Initial coding.
//===============================================================================
function getRadioButtonChecked(radButton) {
   for (var i = 0; i < radButton.length; i++) {
      if (radButton[i].checked) 
         return i;
   }
   return -1
}
//===============================================================================
// Name:     getRadioButtonValue
// Purpose:  Get the value of cheked radio button.
// Version:  1.0.0
// Author:   X. Jian
// Usage:    getRadioValue(radButton)
// Arguments:
//   radButton -- Radio button oject.
//-------------------------------------------------------------------------------
// History
// Version 1.0.0, 2005-04-06  
//   A. Initial coding.
//===============================================================================
function getRadioButtonValue(radButton) {
   var i = getRadioButtonChecked(radButton)
   if (i >= 0) return radButton[i].value;
   return null
}


//===============================================================================
// Name:     getFormValues 
// Purpose:  Return an associated array of form control values.
// Version:  1.0
// Author:   X. Jian
// Usage:    getFormValues(frmValue)
// Arguments:
//   frmValue  -- The form object whose control values are extracted. If the 
//                form object is not specified, use the first form in the 
//                document.
// Return:
//   an associated array of listing control values.
//-------------------------------------------------------------------------------
// History
// Version 1.0.0, 2005-04-06  
//   A. Initial coding.
//===============================================================================
function getFormValues(frmValue) {
   //alert("xform::getFormValues: 0. form name = " + frmValue.name);
   frmValue = (frmValue)? frmValue : document.forms[0];
   //alert("xform::getFormValues: 1. form name = " + frmValue.name + ", " + frmValue.elements.length);
   var strFormValues = new Array();
   var form_elements = frmValue.elements
   for (var i = 0; i < frmValue.elements.length; i++) {
      var strID = form_elements[i].id;
      var strVal = form_elements[i].value;
	  strFormValues[strID] = strVal 
	  var tmps = new Array(strID, strVal, strFormValues[strID]);
	  //lert(i + " id, val, array = " + tmps.join(",") + " " + strFormValues.length)
   }
   alert("xform::getFormValues... done. array length = " + strFormValues.length + " " + strFormValues['data_type']);
   return strFormValues;
}
