]> ruin.nu Git - ndwebbie.git/blob - raid.js
show all information from raids
[ndwebbie.git] / raid.js
1 function getHTTPObject() {
2   var xmlhttp;
3   /*@cc_on
4   @if (@_jscript_version >= 5)
5     try {
6       xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
7     } catch (e) {
8       try {
9         xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
10       } catch (E) {
11         xmlhttp = false;
12       }
13     }
14   @else
15   xmlhttp = false;
16   @end @*/
17
18   if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
19     try {
20       xmlhttp = new XMLHttpRequest();
21     } catch (e) {
22       xmlhttp = false;
23     }
24   }
25   return xmlhttp;
26 }
27
28 var HTTP = getHTTPObject();
29 var modified = '_';
30
31 function claim(dataSource, target, wave,cmd){
32         if(HTTP) {
33                 var url = dataSource + '&cmd='+cmd+'&target=' + target + '&wave=' + wave;
34                 //obj.innerHTML = "test";
35                 HTTP.open("GET", url,true);
36                 HTTP.onreadystatechange = function(){
37                         if (HTTP.readyState == 4 &&
38                                         HTTP.status == 200) {
39                                 updateClaims(dataSource,HTTP.responseXML,false);
40                                 var obj = document.getElementById("targets");
41                                 if (obj){
42                                         var re = new RegExp("targetlist>(.*)</targetlist", "m");
43                                         re.test(HTTP.responseText);
44                                         obj.innerHTML = RegExp.$1;
45                                 }
46                         }
47                 }
48                 HTTP.send(null);
49         }
50 }
51
52 function listTargets(dataSource){
53         var http = getHTTPObject();
54         http.open("GET",dataSource+'&cmd=gettargets',true);
55         http.onreadystatechange = function(){
56                 if (http.readyState == 4 &&
57                                 http.status == 200) {
58                         var obj = document.getElementById("targets");
59                         if (obj){
60                                 var re = new RegExp("targetlist>(.*)</targetlist", "m");
61                                 re.test(http.responseText);
62                                 obj.innerHTML = RegExp.$1;
63                         }
64                 }
65         }
66         http.send(null);
67 }
68
69 function update(dataSource){
70         if(HTTP) {
71                 HTTP.open("GET",dataSource+"&cmd=update&from="+modified,true);
72                 HTTP.onreadystatechange = function(){
73                         if (HTTP.readyState == 4 &&
74                                         HTTP.status == 200) {
75                                 updateClaims(dataSource,HTTP.responseXML,true);
76                         }
77                 }
78                 HTTP.send(null);
79         }
80 }
81
82 function updateClaims(dataSource,xmldoc,timestamp){
83         targets = xmldoc.getElementsByTagName("target");
84         for (var i = 0; i < targets.length; i++){
85                 var target = targets[i].attributes.getNamedItem("id").nodeValue;
86                 var obj = document.getElementById("claim"+target);
87                 if (!obj)
88                         continue;
89                 obj.innerHTML = '';
90                 var waves = targets[i].getElementsByTagName("wave");;
91                 for (var j = 0; j < waves.length; j++){
92                         var command = waves[j].getElementsByTagName("command")[0];
93                         var claimers = waves[j].getElementsByTagName("claimers")[0];
94                         var joinable = waves[j].getElementsByTagName("joinable")[0];
95                         var wave = waves[j].attributes.getNamedItem("id").nodeValue;
96                         command = command.firstChild.nodeValue;
97                         if(claimers.firstChild){
98                                 claimers = '('+claimers.firstChild.nodeValue+')';
99                         }else
100                                 claimers = '';
101                         joinable = joinable.firstChild.nodeValue;
102
103                         if (command == 'none'){
104                                 var s = document.createElement("b");
105                                 s.appendChild(document.createTextNode("Claimed by "+claimers));
106                                 obj.appendChild(s);
107                         }else{
108                                 var b = document.createElement("input");
109                                 b.type = 'button';
110                                 b.setAttribute("class", command);
111                                 b.value = command +' wave '+wave+' '+claimers;
112                                 b.setAttribute("onClick", "claim('"+dataSource+"',"+target+","+wave+",'"+command+"')");
113                                 /*b.onclick = function(){
114                                         claim(dataSource,t,wave,command);
115                                 }*/
116                                 obj.appendChild(b);
117                         }
118                         if (command == 'Unclaim'){
119                                 var b = document.createElement("input");
120                                 b.type = 'button';
121                                 b.value = 'J';
122                                 command = 'set&joinable=TRUE';
123                                 if (joinable == 1){
124                                         b.value = 'N';
125                                         command = 'set&joinable=FALSE';
126                                 }
127                                 b.setAttribute("onClick", "claim('"+dataSource+"',"+target+","+wave+",'"+command+"')");
128                                 obj.appendChild(b);
129                         }
130                 }
131                 obj = document.getElementById("coords"+target);
132                 var coords = targets[i].getElementsByTagName("coords");;
133                 if (obj)
134                         obj.innerHTML = coords[0].firstChild.nodeValue;
135         }
136         if (timestamp){
137                 timestamp = xmldoc.getElementsByTagName("timestamp");
138                 if (timestamp)
139                         modified = timestamp[0].firstChild.nodeValue;
140         }
141 }