	// options and additionalPayments are "global" variables as they are used by multiple functions
	var options = 0;
	var additionalPayments = false;
	var choice = 1;
	var showing = 0;
	
	// called on load.  Defines global variables and calls function checkAndHideRate for each option
	function load(alt, addl, ch) {
		window.options = alt;
		window.additionalPayments = addl;
		window.choice = ch;
		additionalOption();
		for (var i=1;i<=window.options;i++) {
			checkAndHideRate(i);
		}
		
		if (additionalPayments)
			showAdditionalPayments();
	}

	// use java script to hide/show columns
	function hideshow(ind,status){	// ex: could be (1,'none') - hide or (1,'') - show the second column;
		var rows = document.getElementById('myTable').rows;

		// Start at Row "1" because Row "0" is not to be adjusted (contains amount)
		for (i=1; i<rows.length; i++) {
			var x=rows[i].cells;
			y = x[ind];
			if (y != null) {
	 	 		y.style.display = status;
	 		}
	 	}
	}
		
	// add an option to the screen for use
	function additionalOption(MAX_OPTIONS) {
		window.options++;		
		for (var i=1;i<=window.options;i++) {
			hideshow(i, '');
			document.getElementById('alt_title_'+i).style.display='';
			document.getElementById('option'+i).value = 'YES';
			if (additionalPayments) {
				document.getElementById('addPayField_'+i).style.display='';
			}
		}

		addOptionDropDown();
		
		if (window.options == MAX_OPTIONS) {
			document.getElementById('additionalOptionLink').style.display='none';
		}
		
		if (window.options == 1) {
			document.getElementById('alt_title_1').style.display='none';
			document.getElementById('bottom_amortizSchedule').style.display='none';
		} else {
			document.getElementById('alt_title_1').style.display='';
			document.getElementById('bottom_amortizSchedule').style.display='';			
		}
		
	}

	// show additionalPayments and remove link.	
	function showAdditionalPayments() {
		additionalPayments = true;
		document.getElementById('additionalPaymentsLink').style.display='none';
		document.getElementById('altField').style.display='';
		document.getElementById('additionalPaymentsLink').style.display='none';
		
		for (var i=1;i<=window.options;i++) {
			if (document.getElementById('option'+i).value == 'YES')
				document.getElementById('addPayField_'+i).style.display='';
		}
	}
	
	// remove selected option by 'shifting' values.  
	// Make sure "add option" link is visible.
	// If only 1 option remaining, remove title.
	// adjust number of elements in "Select Option" dropdown
	function removeOption(i) {
		shiftOptions(i);
		window.options--;

		document.getElementById('additionalOptionLink').style.display='';			
		if (window.options==1) {
			document.getElementById('alt_title_1').style.display='none';
			document.getElementById('bottom_amortizSchedule').style.display='none';
		}
		removeOptionDropDown();
	}
	
	// for each option, starting with the one selected, copy contents from next option into it.
	// set last option values back to default.
	function shiftOptions(i) {
		for (var j=i;j<window.options;j++) {
			document.getElementById('frequency'+j).selectedIndex = document.getElementById('frequency'+(j+1)).selectedIndex;
			document.getElementById('rate'+j).selectedIndex = document.getElementById('rate'+(j+1)).selectedIndex;
			document.getElementById('term'+j).selectedIndex = document.getElementById('term'+(j+1)).selectedIndex;
			document.getElementById('inrate'+j).value = document.getElementById('inrate'+(j+1)).value;
			checkAndHideRate(j);
			checkAndShowRate(j);
			document.getElementById('amortizYears'+j).value = document.getElementById('amortizYears'+(j+1)).value;
			document.getElementById('addPayAmt'+j).value = document.getElementById('addPayAmt'+(j+1)).value;
			document.getElementById('addPayFreq'+j).selectedIndex = document.getElementById('addPayFreq'+(j+1)).selectedIndex;
			document.getElementById('addPayField_'+j).style.display = document.getElementById('addPayField_'+(j+1)).style.display;
		}

		// These are default values - data to be cleared
		document.getElementById('frequency'+(window.options)).selectedIndex = 0;
		document.getElementById('rate'+(window.options)).selectedIndex = 0;
		document.getElementById('term'+j).selectedIndex = 0;
		document.getElementById('inrate'+j).value = '';
		document.getElementById('amortizYears'+(window.options)).value = '';
		document.getElementById('addPayAmt'+(window.options)).value = '';
		document.getElementById('addPayFreq'+(window.options)).selectedIndex = 0;
		document.getElementById('addPayField_'+(window.options)).style.display = 'none';

		hideshow(window.options, 'none');
		document.getElementById('alt_title_'+(window.options)).style.display='none';
		document.getElementById('addPayField_'+(window.options)).style.display='none';
		document.getElementById('option'+(window.options)).value="NO";
		
		document.getElementById('term_and_rate_'+(window.options)).style.display='';
		document.getElementById('term_no_rate_'+(window.options)).style.display='none';
		document.getElementById('norate'+(window.options)).style.display='none';
		
		
	}
	
	// Customer wishes to enter their own rate - 'rate' dropdown selected value == "CUSTOM"
	function checkAndHideRate(i) {
		var value = document.getElementById('rate'+(i)).value;
		if (value == "CUSTOM") {
			showing++;
			document.getElementById('norate').style.display='';
			
			document.getElementById('term_and_rate_'+i).style.display='none';
			document.getElementById('term_no_rate_'+i).style.display='';
			document.getElementById('norate'+i).style.display='';
			if (document.getElementById('term'+(i)).value == "SELECT") {
				document.getElementById('term'+(i)).selectedIndex = 0;
			}
		}
	}

	// Customer wishes to select bank defined rate - 'term' dropdown selected value == "SELECT"
	function checkAndShowRate(i) {
		var value = document.getElementById('term'+(i)).value;
		if (value == "SELECT" || value == "") {
			showing--;
			if (showing==0) document.getElementById('norate').style.display='none';
			
			document.getElementById('term_and_rate_'+i).style.display='';
			document.getElementById('term_no_rate_'+i).style.display='none';
			document.getElementById('norate'+i).style.display='none';
			if (document.getElementById('rate'+(i)).value == "CUSTOM") {
				document.getElementById('rate'+(i)).selectedIndex = 0;
			}
		}
	}
	
	// Dynamically create dropdown to "Select Amortization Schedule" based on number of window.options presented
	function addOptionDropDown() {
		var sel = document.getElementById('amortizSchedule');
		var opt = "";
		var opt_txt = "";
		sel.innerHTML = "";
		for(var value=1; value<=window.options; value++) {
			opt = document.createElement("option");
			opt_txt = document.createTextNode('Option ' + value);
			opt.appendChild(opt_txt);
			opt.setAttribute("value", value);
			if (value==choice) {
				opt.setAttribute("selected", "selected");
			}
			sel.appendChild(opt);
		}
		sel.disabled = false;
	}

	// Remove last element from dropdown
	function removeOptionDropDown() {
  		var elSel = document.getElementById('amortizSchedule');
		if (elSel.length > 0) {
    		elSel.remove(elSel.length - 1);
  		}
	}
	
