//Doc! /* alertContents : Response from AJAX Changed : Updates the text box with the new value of the select box Clicked : Resets the value of a text box FindInList : Searches the contents of a select control, not recomended for 250+ items findPos : Find the x and y of an id HideDiv : Hides div and executes function if available [onDivClose] lSKeyPress : Activated when a key is pressed makeRequest : Makes an AJAX call MoveInList : Moves the selected index of a select box onDivClose : Executes predefined finctions PosDiv : Sets the x and y of a div SearchBox : Searches the contents of a select control, not recomended for 250+ items after 3 charactors Selected : Updated text box when select box is clicked ShowSelectDiv : Displays the select div ShowDiv : Shows div UpdateList : Updates a select control with new xml UpdateTextBox : Updates the textbox */ var http_request = false; var LSTimeoutHandle = 0; var LSTimeoutDuration = 450; var http_request = false; var uTargetID = ''; function debugWindow(toDisplay){ if (document.getElementById("jsdebug")) { document.getElementById("jsdebug").innerText = toDisplay; } } function makeRequest(url, parameters, targetID) { http_request = false; uTargetID = targetID; if (window.XMLHttpRequest) { // Mozilla, Safari,... http_request = new XMLHttpRequest(); if (http_request.overrideMimeType) { http_request.overrideMimeType('text/xml'); } } else if (window.ActiveXObject) { // IE try { http_request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { http_request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } } if (!http_request) { alert('Cannot create XMLHTTP instance'); return false; } http_request.onreadystatechange = alertContents; http_request.open('GET', url + parameters, true); http_request.send(null); document.getElementById('img' + uTargetID).src = '/images/searching_progress_blue15.gif'; } function alertContents() { var showDiv = true; var textBox = null; if (http_request.readyState == 4) { if (http_request.status == 200) { if (window.ActiveXObject) { // IE var doc = http_request.responseText; var xDoc = new ActiveXObject("Microsoft.XMLDOM"); xDoc.loadXML(doc); } else { var xDoc = http_request.responseXML; } UpdateList('', 'Select' + uTargetID, 'Text' + uTargetID, xDoc); try { textBox = document.getElementById('Text' + uTargetID); if ((document.getElementById('Select' + uTargetID).options.length < 1) || (textBox.value.length < 1)) { HideDiv('div' + uTargetID); showDiv = false; } /**/ if (textBox.disabled == true) { if (document.getElementById('JourneyTypeReturn')){ if (document.getElementById('JourneyTypeReturn').checked == true) { textBox.disabled = false; } } else { textBox.disabled = false; /**/ } showDiv = false; } } catch(e) {alert(e.description);} if (showDiv) ShowDiv('div' + uTargetID); document.getElementById('img' + uTargetID).src = "/images/drop_icon.gif"; /**/ } } } function findPos(obj) { var curleft = curtop = 0; if (obj.offsetParent) { curleft = obj.offsetLeft curtop = obj.offsetTop while (obj = obj.offsetParent) { curleft += obj.offsetLeft curtop += obj.offsetTop } } return [curleft,curtop]; } function UpdateList(divID, selectID, textID, lXML){ var xValue = lXML.getElementsByTagName("Value"); var xText = lXML.getElementsByTagName("Text"); var ComboSelect=document.getElementById(selectID) while (ComboSelect.options.length) { ComboSelect.remove(ComboSelect.length-1); } var listDefault = ''; if (GetXMLNode(lXML, "List/ListItem[Selected='True']")) { var nodes = GetXMLNode(lXML, "List/ListItem[Selected='True']"); var selectedNode = nodes.getElementsByTagName("Value"); listDefault = selectedNode[0].childNodes[0].nodeValue; } for (j=0;j= maxIndex){ curIndex = maxIndex; } else { curIndex++; } } document.getElementById(selectID).selectedIndex = curIndex; Changed(divID, document.getElementById(selectID), textID, ''); } function lSKeyPress(divID, selectID, textID, exeFunction, event) { var keynum; var keychar; if(window.event) // IE { keynum = event.keyCode; } else if(event.which) // Netscape/Firefox/Opera { keynum = event.which; } if (keynum == 40){ MoveInList(divID, selectID, textID,'down'); } if (keynum == 38){ MoveInList(divID, selectID, textID,'up'); } if (keynum == 13){ if (document.getElementById(divID).style.display == 'block'){ HideDiv(divID, textID, selectID, exeFunction); Changed(divID, document.getElementById(selectID), textID, ''); } } if (keynum == 9){ if (document.getElementById(divID).style.display == 'block'){ HideDiv(divID, textID, selectID, exeFunction); Changed(divID, document.getElementById(selectID), textID, ''); } } keychar = String.fromCharCode(keynum); return; } var mouseUpTimeoutHandle = 0; var allowMouseUp = true; function mouseUp() { event.returnValue = allowMouseUp; return allowMouseUp; } function allowMouseUp() { allowMouseUp = true; if (mouseUpTimeoutHandle != 0) clearTimeout(mouseUpTimeoutHandle); } function SelLSText(Obj) { if(Obj.value != "") { Obj.select(); allowMouseUp = false; try { if (mouseUpTimeoutHandle != 0) clearTimeout(mouseUpTimeoutHandle); mouseUpTimeoutHandle = setTimeout(allowMouseUp, 300); } catch(e) {} } } function disableEnterKey(e) { var key; if(window.event) key = window.event.keyCode; //IE else key = e.which; //firefox if(key == 13) return false; else return true; } function GetXMLNode(xmlDoc, elementPath) { if(window.ActiveXObject) { return xmlDoc.selectSingleNode(elementPath); } else { var xpe = new XPathEvaluator(); var nsResolver = xpe.createNSResolver( xmlDoc.ownerDocument == null ? xmlDoc.documentElement : xmlDoc.ownerDocument.documentElement); var results = xpe.evaluate(elementPath,xmlDoc,nsResolver,XPathResult.FIRST_ORDERED_NODE_TYPE, null); return results.singleNodeValue; } }