/* FILE ARCHIVED ON 11:49:24 Sep 16, 2008 AND RETRIEVED FROM THE AN OPENWAYBACK INSTANCE ON 6:34:12 Jun 14, 2024. JAVASCRIPT APPENDED BY OPENWAYBACK, COPYRIGHT INTERNET ARCHIVE. ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C. SECTION 108(a)(3)). */ // Global variables for use by javascript methods the implement the necessary ajax functionality. var inputName; var listName; var divName; var focusName; var setSelectedName; // We set 'global' javascript variables for use by the various methods instead of handing the // necessary values to each method independently because the updateLocations method // doesn't really support method parameters of this sort. function setAJAXVariableNames(_inputName, _listName, _divName, _focusName, _setSelectedName) { inputName = _inputName; listName = _listName; divName = _divName; focusName = _focusName; setSelectedName = _setSelectedName; } // Handle the input text area receiving focus. function setFAJAX() { var focus = document.getElementById(focusName); var textArea = document.getElementById(inputName); if (textArea.value == "(Begin typing here)") { document.getElementById(inputName).style.fontStyle = "italic"; } else { document.getElementById(inputName).style.fontStyle = "normal"; } focus.value = 1; } // Handle the input text area losing focus. function removeFAJAX() { var focus = document.getElementById(focusName); var textArea = document.getElementById(inputName); if (textArea.value == "(Begin typing here)") { document.getElementById(inputName).style.fontStyle = "italic"; } else { document.getElementById(inputName).style.fontStyle = "normal"; } focus.value = 0; } // Handle a key up event in the input text area. function handleKeyUpAJAX(e, value, servletURL, opcode) { var e = (!e) ? window.event : e; var target = (!e.target) ? e.srcElement : e.target; if (target.nodeType == 3) target = target.parentNode; code = (e.charCode) ? e.charCode : ((e.keyCode) ? e.keyCode : ((e.which) ? e.which : 0)); if (e.type == "keyup") { isKeyUpDownPressed = false; if ((code < 13 && code != 8) || (code >= 14 && code < 32) || (code >= 33 && code <= 46 && code != 38 && code != 40) || (code >= 112 && code <= 123)) { showLocation(value, servletURL, opcode); return true; } else if (code == 13) { var focus = document.getElementById(focusName); if (focus.value == 1) { var cart = document.getElementById(listName); var selectedIndex = cart.options.selectedIndex; if (selectedIndex > -1) { setValueAJAX(); } return false; } } else { if (code == 40) { var cart = document.getElementById(listName); var selectedIndex = cart.options.selectedIndex; if (selectedIndex != -1) { if ((selectedIndex + 1) <= cart.options.length) { cart.options.selectedIndex = selectedIndex + 1; } } else { cart.options.selectedIndex = 0; } return true; } else if (code == 38) { var cart = document.getElementById(listName); var selectedIndex = cart.options.selectedIndex; if (cart.options.length > 0) { cart.options.selectedIndex = selectedIndex - 1; } return true; } var textArea = document.getElementById(inputName); showLocation(value, servletURL, opcode); return true; } } else { showLocation(value, servletURL, opcode); return true; } } // Handle a key press event any where in the HTML form. function handleKeyPressAJAX(e) { var focus = document.getElementById(focusName); if (focus.value == 1) { var cart = document.getElementById(listName); var selectedIndex = cart.options.selectedIndex; if (selectedIndex > -1) { setValueAJAX(); } return false; } var textArea = document.getElementById(inputName).value; if (textArea == "(Begin typing here)") { document.getElementById(inputName).value = ""; } return true; } // Generate the appropriate XML request object in preperation for requesting AJAX data. function newXMLHttpRequest() { var xmlreq = false; if (window.XMLHttpRequest) { xmlreq = new XMLHttpRequest(); } else if (window.ActiveXObject) { try { xmlreq = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e1) { try { xmlreq = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e2) { } } } return xmlreq; } // Request AJAX data from the appropriate servlet. function showLocation(itemCode, servletURL, opcode) { var textArea = document.getElementById(inputName); if (textArea.value == "(Begin typing here)") { document.getElementById(inputName).style.fontStyle = "italic"; } else { document.getElementById(inputName).style.fontStyle = "normal"; } var setSelected = document.getElementById(setSelectedName); setSelected.value = 0; if (itemCode.length > 0) { textArea = document.getElementById(inputName); var locationsList = document.getElementById(listName); setSelected = document.getElementById(setSelectedName); var holdThisValue = null; if (locationsList.options.length == 1) { checkSelected(); } if (locationsList.options.length > 1) { if (checkSelected()) { var holdcontents = document.getElementById(divName); holdcontents.selectedIndex = 0; } } if(holdThisValue == null){ holdThisValue = ""; } if (locationsList.options[0] == undefined || locationsList.options.length > 0 || holdThisValue.toUpperCase() != textArea.value.toUpperCase()) { var req = newXMLHttpRequest(); req.onreadystatechange = handler(req, updateLocations); req.open("POST", servletURL, true); req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8"); var result = ""; for (var i = 0; i < itemCode.length; i++) { if (itemCode.charAt(i) == " ") result += "+"; else result += itemCode.charAt(i); } result = escape(itemCode); result = result.replace(/\+/g, '%2B'); result = result.replace(/\"/g, '%22'); result = result.replace(/\'/g, '%27'); req.send("op=" + opcode + "&f=" + result); } else { if (holdThisValue != textArea.value) { textArea.value = holdThisValue; setSelected.value = 1; } } } else { var holdcontents = document.getElementById(divName); holdcontents.selectedIndex = -1; holdcontents.style.visibility = 'hidden'; } } // Handles the AJAX response from the server and calls the appropriate handler method. function handler(req, responseXmlHandler) { return function () { if (req.readyState == 4) { if (req.status == 200) { responseXmlHandler(req.responseXML); } else { //alert("HTTP error: " + req.status); } } } } // The handler method to handle the AJAX data coming back from the server. function updateLocations(locations) { var locationsVals = locations.getElementsByTagName("locations")[0]; // If we didn't get anything back from the server, // exit here or risk the wrath of IE's stellar javascript error detection. if (locationsVals == null) { return; } var selectedIndex = -10; var items = locationsVals.getElementsByTagName("item"); var contents = document.getElementById(listName); var holdcontents = document.getElementById(divName); contents = document.getElementById(listName); selectedIndex = contents.selectedIndex; contents.innerHTML = ""; if (items.length > 0) { holdcontents.style.visibility = 'visible'; } for (var I = 0; I < items.length; I++) { var item = items[I]; var name = item.getElementsByTagName("desc")[0].firstChild.nodeValue; var option = document.createElement("option"); option.value = name; option.text = name; var d, dom, ie, ie4, ie5x, moz, mac, win, lin, old, ie5mac, ie5xwin, op; n = navigator; nua = n.userAgent; if (nua.indexOf('Safari') != -1) { contents.appendChild(option); } else { contents.options.add(option, I); } } contents.options.selectedIndex = -1; var setSelected = document.getElementById(setSelectedName); var textArea = document.getElementById(inputName); var locationsList = document.getElementById(listName); var holdThisValue = null; if (locationsList.options.length > 0) { checkSelected(); } } // Handles the user's selection of an AJAX data value. function setValueAJAX() { var textArea = document.getElementById(inputName); var cart = document.getElementById(listName); var holdThisValue = cart.options[cart.selectedIndex].value; textArea.value = holdThisValue; if (textArea.value == "(Begin typing here)") { document.getElementById(inputName).style.fontStyle = "italic"; } else { document.getElementById(inputName).style.fontStyle = "normal"; } var holdcontents = document.getElementById(divName); holdcontents.style.visibility = 'hidden'; var setSelected = document.getElementById(setSelectedName); setSelected.value = 1; } // Handle a click event any where in the HTML document. function hideAJAX(e) { var targ if (!e) var e = window.event if (e.target) targ = e.target else if (e.srcElement) targ = e.srcElement if (targ.nodeType == 3) // defeat Safari bug targ = targ.parentNode var tname tname = targ.tagName tname = targ.id if (tname == listName) { setValueAJAX(); } if (tname != listName) { var holdcontents = document.getElementById(divName); holdcontents.style.visibility = 'hidden'; var setSelected = document.getElementById(setSelectedName); if (setSelected.value == 0) { if (tname == inputName) { var textArea = document.getElementById(inputName).value; if (textArea == "(Begin typing here)") { document.getElementById(inputName).value = ""; } else { document.getElementById(inputName).value = "(Begin typing here)"; document.getElementById(inputName).style.fontStyle = "italic"; } } else { document.getElementById(inputName).value = "(Begin typing here)"; document.getElementById(inputName).style.fontStyle = "italic"; } } } } // Determine if they have entered something that matches one of the locations in the drop down. function checkSelected() { var textArea = document.getElementById("WHERE"); var locationsList = document.getElementById("WHEREList"); var setSelected = document.getElementById("setSelected"); var textAreaMatch = textArea.value; // Trim leading spaces. while (textAreaMatch.substring(0, 1) == ' '){ textAreaMatch = textAreaMatch.substring(1, textAreaMatch.length); } // Trim trailing spaces. while (textAreaMatch.substring(textAreaMatch.length-1, textAreaMatch.length) == ' ') { textAreaMatch = textAreaMatch.substring(0, textAreaMatch.length-1); } for (var i = 0 ; i < locationsList.options.length; i++) { if (textAreaMatch.toUpperCase() == locationsList.options[i].value.toUpperCase()) { textArea.value = locationsList.options[i].value; setSelected.value = 1; return true; } } return false; }