1 function getHTTPObject() {
4 @if (@_jscript_version >= 5)
6 xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
9 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
18 if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
20 xmlhttp = new XMLHttpRequest();
30 function claim(dataSource, target, wave,cmd){
31 var HTTP = getHTTPObject();
33 var url = dataSource + '&cmd='+cmd+'&target=' + target + '&wave=' + wave + '&rand='+ Math.random();
34 //obj.innerHTML = "test";
35 HTTP.open("GET", url,true);
36 HTTP.onreadystatechange = function(){
37 if (HTTP.readyState == 4 &&
39 updateClaims(dataSource,HTTP.responseXML,false);
40 var obj = document.getElementById("targets");
43 var re = new RegExp("targetlist>((.|\\n)*)</targetlist");
44 if(re.test(HTTP.responseText))
45 obj.innerHTML = RegExp.$1;
53 function clearObject(obj){
54 while (obj.hasChildNodes()){
55 obj.removeChild(obj.firstChild);
59 function listTargets(dataSource){
60 var http = getHTTPObject();
61 http.open("GET",dataSource+'&cmd=gettargets' + '&rand='+ Math.random(),true);
62 http.onreadystatechange = function(){
63 if (http.readyState == 4 &&
65 var obj = document.getElementById("targets");
68 var re = new RegExp("targetlist>((.|\\n)*)</targetlist");
69 if(re.test(http.responseText))
70 obj.innerHTML = RegExp.$1;
77 function update(dataSource){
78 var HTTP = getHTTPObject();
80 HTTP.open("GET",dataSource+"&cmd=update&from="+modified + '&rand='+ Math.random(),true);
81 HTTP.onreadystatechange = function(){
82 if (HTTP.readyState == 4 &&
84 updateClaims(dataSource,HTTP.responseXML,true);
91 function updateClaims(dataSource,xmlthingy,timestamp){
92 var targets = xmlthingy.getElementsByTagName("target");
93 for (var i = 0; i < targets.length; i++){
94 var target = targets[i].attributes.getNamedItem("id").nodeValue;
95 var obj = document.getElementById("claim"+target);
100 var waves = targets[i].getElementsByTagName("wave");;
101 for (var j = 0; j < waves.length; j++){
102 var command = waves[j].getElementsByTagName("command")[0];
103 var claimers = waves[j].getElementsByTagName("claimers")[0];
104 var joinable = waves[j].getElementsByTagName("joinable")[0];
105 var wave = waves[j].attributes.getNamedItem("id").nodeValue;
106 command = command.firstChild.nodeValue;
107 if(claimers.firstChild){
108 claimers = '('+claimers.firstChild.nodeValue+')';
111 joinable = joinable.firstChild.nodeValue;
113 if (command == 'none'){
114 var s = document.createElement("b");
115 s.appendChild(document.createTextNode("Claimed by "+claimers));
118 var b = document.createElement("input");
120 b.setAttribute("class", command);
121 b.value = command +' wave '+wave+' '+claimers;
122 b.setAttribute("onclick", "claim('"+dataSource+"',"+target+","+wave+",'"+command+"');");
123 /*b.onclick = function(){
124 claim(dataSource,t,wave,command);
128 if (command == 'Unclaim'){
129 var b = document.createElement("input");
132 b.title = 'Make target joinable';
133 command = 'set&joinable=TRUE';
136 b.title = 'Disable join';
137 command = 'set&joinable=FALSE';
139 b.setAttribute("onclick", "claim('"+dataSource+"',"+target+","+wave+",'"+command+"');");
143 obj.innerHTML = obj.innerHTML; // IE doesn't understand unless you tell it twice
147 obj = document.getElementById("coords"+target);
148 var coords = targets[i].getElementsByTagName("coords");;
150 obj.innerHTML = coords[0].firstChild.nodeValue;
154 timestamp = xmlthingy.getElementsByTagName("timestamp");
156 modified = timestamp[0].firstChild.nodeValue;