	function setValue(elementId, value) {
		var el = document.getElementById(elementId);
		if (el) {
			el.value = value;
		}
	}
	function getValue(elementId, value) {
		var el = document.getElementById(elementId);
		if (el) {
			return el.value;
		}
		return null;
	}
	function getSelectedValue(selectId) {
		var selectedValue = "";
		var selectEl = document.getElementById(selectId);
		if (selectEl) {
			var index = selectEl.selectedIndex;
			if (index != -1 && !isEmpty(selectEl.options[index].value)) {
				selectedValue = selectEl.options[index].value;
			}
		}
		return selectedValue;
	}
	function getSelectedRadioValue(radioId) {
		var radioEl = document.getElementsByName(radioId);
		for (var i = 0; i< radioEl.length; i++) {
		    if (radioEl[i].checked) 
		    	return radioEl[i].value;
		}
		return null;
	}

	function submitForm(methodValue, formIndex) {
		if (!isEmpty(methodValue)) {
			setValue("method",methodValue);
		}
		var index = 0;
		if (!isEmpty(formIndex)) {
			index = formIndex;
		}
		document.forms[index].submit();
	}
	function isEmpty(input) {
		return (!input || input == "" || input == null || input == "null");
	}
	function uploadFile() {
		var formEl = document.forms[0];
		formEl.encoding = 'multipart/form-data';
		formEl.action = '/VisionIntranet/upload';
		document.forms[0].submit();
	}
	
	function viewFile(fileName) {
	    setValue('fileName', fileName);
	    submitForm('viewFile');
	}
	function showField(fieldId) {
		var fieldEl = document.getElementById(fieldId);
		fieldEl.style.display='';
	}
	function hideField(fieldId) {
		var fieldEl = document.getElementById(fieldId);
		fieldEl.style.display='none';
	}
	function getMessage() {
   		var msg = getValue('msg');
      	if (!isEmpty(msg)) {
			window.alert(msg);
	  	}
	}
	function highlightRow(tableRow) {
		  tableRow.className = 'selectedRow';
		}
	XmlHttp = function() {
		var xmlHttp = null;
		try {
			xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {			
			try {
				xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (E) {
				xmlHttp = false;
			}
		}
		if (!xmlHttp && typeof XMLHttpRequest!='undefined') {
			try {
  				xmlHttp = new XMLHttpRequest();
			} catch (e) {
				xmlHttp = false;
			}
		}
		return xmlHttp;
	}
	function sendAjaxRequest(url) {
		var xmlHttp = new XmlHttp();
		xmlHttp.open("POST", url, true);
 		xmlHttp.onreadystatechange=function() {
 			handleResponse(xmlHttp);
  		}
		xmlHttp.send(null);
	}
	function handleResponse(xmlHttp) {
 		if (xmlHttp.readyState==4) {
 			var responseText = xmlHttp.responseText;
 			//alert(responseText);
   			eval(responseText);
  		}
	}
	function validateTerminalNumber() {
		var terminalNumber = document.getElementById("terminalnumber");
		sendAjaxRequest("/VisionIntranet/termMaint?method=validateTerminalNumber&terminalNumber=" + terminalNumber.value);
	}
	function latLongLookup() {
		var addr1 = getValue('addressLine1');
		var city = getValue('city');
		var state = getSelectedValue('state');
		var address = addr1 + ", " + city + ", " + state;
		var geocoder = new GClientGeocoder();
  		geocoder.getLatLng(
    		address,
    		function(point) {
       			if (!point) {
        			alert(address + " not found");
      			} else {
      			    var lat = "" + point.lat();
      			    var lon = "" + point.lng();
      			    var latDec = lat.indexOf(".");
      			    var latFraction = lat.substring(latDec + 1);
      			    if (latFraction.length > 7) {
      			       var trimAmt = latFraction.length - 7;
      			       lat = lat.substring(0, lat.length - trimAmt);
      			    }
      			    var lonDec = lon.indexOf(".");
      			    var lonFraction = lon.substring(lonDec + 1);
      			    if (lonFraction.length > 7) {
      			       var trimAmt = lonFraction.length - 7;
      			       lon = lon.substring(0, lon.length - trimAmt);
      			    }
      			    if (lat.substring(0,1) == "-") {
      			    	lat = lat.substring(1) + "S";
      			    } else {
      			    	lat = lat + "N";
      			    }
      			    if (lon.substring(0,1) == "-") {
      			    	lon = lon.substring(1) + "W";
      			    } else {
      			    	lon = lon + "E";
      			    }
      			  	setValue('lat', lat);
      			  	setValue('lon', lon);
			    }
    		}
  		);
	}
	function selectTerminal(tableRow) {
		tableRow.className = 'selectedRow';
		setValue('terminalNum', tableRow.cells[0].innerHTML);
		deselectTerminalRows(tableRow, 1);
	}
	function deselectTerminalRows(tableRow, startRow) {
		var terminalTable = document.getElementById('terminals');
		for (var i = startRow; i < terminalTable.rows.length; i++) {
			if (terminalTable.rows[i] != tableRow) {
				terminalTable.rows[i].className = i % 2 == 0 ? "listEvenRow" : "listOddRow";
			}
		}
	}
	function editTerminal() {
	  if (isEmpty(getValue('terminalNum'))) {
	  	alert("Select a terminal to edit.");
	  } else {
	  		submitForm('editTerminal');
	  }
	}
	function deleteTerminal() {
	  if (isEmpty(getValue('terminalNum'))) {
	  	alert("Select a terminal to delete.");
	  } else {
	  	 if (deleteConfirmed('terminal')) {
	  		submitForm('deleteTerminal');
	  	 }
	  }
	}
	function updateTerminalList() {
		var selectedCity = getSelectedValue("cities");
		sendAjaxRequest("/VisionIntranet/termMaint?method=updateTerminalList&city=" + selectedCity);
	}
	function populateTerminalStates(blankOptionText, updateTerminalList) {
		var selectedCompanyCode = getSelectedValue("companyCode");
		sendAjaxRequest("/VisionIntranet/termMaint?method=populateStates&companyCode=" + selectedCompanyCode + "&blankOptionText=" + blankOptionText + "&updateList=" + updateTerminalList);
	}
	function populateTerminalCities(blankOptionText, updateTerminalList) {
		var selectedState = getSelectedValue("states");
		sendAjaxRequest("/VisionIntranet/termMaint?method=populateCities&state=" + selectedState + "&blankOptionText=" + blankOptionText + "&updateList=" + updateTerminalList);
	}
	function deleteConfirmed(label) {
		return confirm("Confirm Delete","Are you sure you want to delete the selected " + label + "?");
	}

