// Forms processing functions
var space = /^\s*$/
var testfield = '';
var curelement = '';

// Position cursor to first field in first form of page. (performed on page load)
function poscursor() {
	if (document.forms[0]) {
		numoffields = document.forms[0].elements.length;
		for (i=0;i<numoffields;i++)	{
			formfield = document.forms[0].elements[i];
			if (formfield.type != "hidden") {
				formfield.focus();
				break;
			}
		}
	}
}

// Position cursor to a specific field in first form of page and highlight it.
function selfield(field) {
	formfield = document.forms[0].elements[field];
	if (formfield) {
		formfield.focus();
		formfield.select();
	}
}

// Highlight user selection and store selected value.
function selelem(newelement) {                    
   if (curelement) {                                          
      curelement.style.background = 'transparent';                  
      curelement.style.color = '';                            
   }                                                     
   if (newelement) {                                       
      newelement.style.background = 'blue';           
      newelement.style.color = 'white';                    
      curelement = newelement;                                  
   }                                                     
}   

// Goto new page passing user selected page element.
function gotopage(pageURL) {
	if (curelement) {
		document.location.href = pageURL + "&" + curelement.name;
	} else {
		alert('You must select something before you can do this.');
	}
}

// Submit the CGIform
function process(pgmact) {
	document.CGIform.action.value = pgmact;
	document.CGIform.submit();
}

// Check field contains valid numeric data
function chknum(field,fldlen,flddec) {
  if (testfield == '' || testfield == field) {
    testfield = '';
    if (space.test(field.value) || field.value == '0') {
      field.value = '0';
    } else {	
      var fldint = fldlen - flddec;
      if (fldint) {
        if (flddec) {
          numfmt = eval('/^\\s*[+|-]?(\\d{1,' + fldint + '})?(\\.\\d{0,' + flddec + '})?\\s*$/');
        } else {
          numfmt = eval('/^\\s*[+|-]?\\d{1,' + fldint + '}\\s*$/');
        }
      } else {
        numfmt = eval('/^\\s*[+|-]?0?\\.\\d{1,' + flddec + '}\\s*$/');
      }	
      if (!numfmt.test(field.value)) {
        alert('Entry: "' + field.value + '" is NOT valid for this field\n' +
              'Either:-\n1) The entry is not a valid number.\n' +
              '2) The number of integer digits is greater than ' + fldint + '.\n' +
              '3) The number of decimal digits is greater than ' + flddec + '.');
		field.select();
        testfield = field;
      }
    }
  }
}

