function error(message) { var console = window.open("",'console',"width="+400+",height="+400+",status=yes,dependent=yes,resizable=yes,scrollbars=yes"); console.document.write(message); console.document.close(); } /* receives javascript from the given url + args and evaluates it */ function runRemoteJS(url, args) { doCall(url, function (x) {eval(x);}, args); } function doCall(url, wrapper, args) { var req = openConnection(); if (url.indexOf('?') == -1) { url = url + "?"; } for (var key in args) { if (key=='_mjax_named') { for (var k in args[key]) { url = url + '&' + escape(k) + "=" + escape(args[key][k] || ''); } } else { url = url + '&' + escape(key) + "=" + escape(args[key] || ''); } } url = url + "&_rnd=" + new Date().getTime() req.open("GET", url); req.onreadystatechange = function () { if (req.readyState != 4) { return; } //var s = getResponse(); var s = req.responseText; if (s) { try { wrapper(s); } catch (e) { error(e + "

\n\nArgument:\n
" + s); } } } req.send(null); delete req; } function openConnection () { var conn = null; try { conn = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { conn = new ActiveXObject("Microsoft.XMLHTTP"); } catch (oc) { } } if(!conn && typeof XMLHttpRequest != "undefined") { conn = new XMLHttpRequest(); } if (!conn) { error("XMLHttp connection object not defined on this browser"); } return conn; } /* given the id of a document element, a url, and argument hash, populates the given document element with the results of the url + args */ function populateDOM(id, url, args) { doCall(url, function (x) { var elem = document.getElementById(id); if (elem) { elem.innerHTML = x; } else { error("No such element '" + id + "'"); } }, args); } function writeDOM(id, string) { var elem = document.getElementById(id); if (elem) { elem.innerHTML = string; } }