var AJAX = new function() { /** * @param string url * @param Element elmnt * @param function callback * @param bool callbackOnAllChanges */ this.MakeRequest = function(url, elmnt, callback, callbackOnAllChanges) { var http_request = false; 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('Kan ikke lave XMLHTTP-objekt'); return false; } http_request.onreadystatechange = function() { AJAX.StateChanged(http_request, url, elmnt, callback, callbackOnAllChanges); }; http_request.open('GET', url, true); http_request.send(null); } this.StateChanged = function(http_request, url, elmnt, callback, callbackOnAllChanges) { if (callbackOnAllChanges && callback) { callback(http_request, url, elmnt); } else if (http_request.readyState == 4) { if (http_request.status == 200) { if (callback) { callback(http_request, url, elmnt); } else if (elmnt) { elmnt.innerHTML = http_request.responseText; } } else { alert('There was a problem with the request.\n' + url + '\nError: ' + http_request.status); } } } }