| @ -0,0 +1,88 @@ | |||||
| // server url | |||||
| var serverUrl = "http://widgets.vvo-online.de/abfahrtsmonitor/"; | |||||
| // xmlhttp object function | |||||
| function getHTTPObject() { | |||||
| console.log("xml http object function"); | |||||
| var xhr; | |||||
| if(window.XMLHttpRequest) { | |||||
| xhr = new XMLHttpRequest(); | |||||
| } else if(window.ActiveXObject) { | |||||
| xhr = new ActiveXObject("Msxml2.XMLHTTP"); | |||||
| } | |||||
| return xhr; | |||||
| } | |||||
| // ajax call function | |||||
| function ajaxCall(dataUrl, outputElement, callback) { | |||||
| console.log("ajax function"); | |||||
| // get the xmlhttp object which is supported | |||||
| var request = getHTTPObject(); | |||||
| outputElement.innerHTML = "Lade Daten ..."; | |||||
| request.onreadystatechange = function() { | |||||
| if(request.readyState === 4 && request.status === 200) { | |||||
| //save ajax response | |||||
| var response = request.responseText; | |||||
| // check if callback is a function | |||||
| if(typeof callback === "function") { | |||||
| callback(response); | |||||
| } | |||||
| } | |||||
| }; | |||||
| request.open("get", dataUrl, true); | |||||
| request.send(null); | |||||
| } | |||||
| // wrap all in anonymous function to get out of global scope | |||||
| (function() { | |||||
| console.log("anonymous function"); | |||||
| // get the search form | |||||
| var searchForm = document.getElementById("search-form"); | |||||
| // haltestelle object | |||||
| var haltestelle = { | |||||
| getInfo : function(event) { | |||||
| console.log("getInfo function"); | |||||
| // prevent submit default behaviour | |||||
| event.preventDefault(); | |||||
| // get output area | |||||
| var target = document.getElementById("output"); | |||||
| var hstName = document.getElementById("q").value; | |||||
| var hstUrl = serverUrl + "Abfahrten.do?ort=dresden&hst=" + hstName; | |||||
| ajaxCall(hstUrl, target, function(data) { | |||||
| target.innerHTML = ""; | |||||
| target.innerHTML = "<p>" + data + "</p>"; | |||||
| }); | |||||
| } | |||||
| }; | |||||
| //event listeners | |||||
| searchForm.addEventListener("submit", haltestelle.getInfo, false); | |||||
| })(); // end of anonymous function | |||||