// JavaScript for doing combo boxes
// first we have a naming convention
// the select has the same name as the text box, with _select added
// from this select box we will make 2 arrays
// then reload the select list.

// each element that will be involved will need to add itself to this as the page lods, and then an 
// onLoad function can take care of the rest.

var myPairs = new Array();

function registerName(nameString) {
var textName = nameString;
var selectName = nameString + '_select';
var thisSelect = eval('document.getElementById("' + selectName + '")');
var selectLength = thisSelect.length;
myPairs[myPairs.length] = new Array(nameString,new Array(selectLength),new Array(selectLength));
for (i = 0; i < document.getElementById(nameString + '_select').length;i++) {
  if (document.getElementById(selectName)[i].value && document.getElementById(selectName)[i].value != '') {
  // alert('bother: ' + document.getElementById(selectName)[i].value);
    myPairs[myPairs.length -1][1][i] = document.getElementById(selectName)[i].text;
    myPairs[myPairs.length -1][2][i] = document.getElementById(selectName)[i].value;
	}
  }
clearSelect(thisSelect);
addopt(thisSelect,'','Type above or choose');  
for (k = 0; k < myPairs[myPairs.length -1][1].length; k++) {
  if (myPairs[myPairs.length -1][2][k] != '') {
    addopt(thisSelect,myPairs[myPairs.length -1][2][k],myPairs[myPairs.length -1][1][k]);  
    }
  }
}

function checkInput(nameString) {
  if (nameString && nameString != '') {
	var testString = document.getElementById(nameString).value;
	if (testString != '') {
		// clearSelect(document.getElementById(nameString + '_select'));    
		// addopt(document.getElementById(nameString + '_select'),'','Type above or choose');
		searchText = testString;
		fixedText =  searchText.replace(/\//, '\\/');
		fixedText =  searchText.replace(/\(/, '\\(');
		fixedText =  fixedText.replace(/\)/, '\\)');
		fixedText =  fixedText.replace(/\*/, '\\*');
		var myRegexp = new RegExp(fixedText, 'i');
		
		for (i = 0; i < document.getElementById(nameString + '_select').length; i++) {
			if (document.getElementById(nameString + '_select')[i].value.match(myRegexp)) {
				document.getElementById(nameString + '_select').selectedIndex = i;
				break;
				}
			}
	}
}
// document.getElementById(nameString + '_select').selectedIndex = 0;
// document.getElementById(nameString).focus();
}

function setInput(nameString) {
if ((document.getElementById(nameString + '_select').selectedIndex >= 0) && (document.getElementById(nameString + '_select')[document.getElementById(nameString + '_select').selectedIndex].value != '')) {
	document.getElementById(nameString).value = document.getElementById(nameString + '_select')[document.getElementById(nameString + '_select').selectedIndex].value;
	}
// document.getElementById(nameString).focus();
// checkInput(nameString);
}

function printAll() {
document.writeln('Here we go with the printing!<br>');
  for (i = 0; i < myPairs.length;i++) {
    document.writeln(myPairs[i][0] + '<br>');
    for (j = 0; j < myPairs[i][1].length; j++) {
	  document.writeln('text: ' + myPairs[i][1][j] + ' ');
	  document.writeln('value: ' + myPairs[i][2][j] + '<br>');
	}
  }
}

function clearSelect(clearList) {
// this routine clears out a listbox or combo box
for (var i = clearList.options.length; i >= 1; i--) {
  clearList.options[i] = null;
  }
clearList.options[0] = null;
}

function addopt(selectList, nValue, sText) {
// this routine adds a new item to our listbox
selectList.options[selectList.options.length] = new Option(sText, nValue);
}

