-function getHTTPObject() {
- var xmlhttp;
- /*@cc_on
- @if (@_jscript_version >= 5)
- try {
- xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
- } catch (e) {
- try {
- xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
- } catch (E) {
- xmlhttp = false;
- }
- }
- @else
- xmlhttp = false;
- @end @*/
-
- if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
- try {
- xmlhttp = new XMLHttpRequest();
- } catch (e) {
- xmlhttp = false;
- }
- }
- return xmlhttp;
-}
-
-var modified = '_';
-
-function claim(dataSource, target, wave,cmd){
- var HTTP = getHTTPObject();
- if(HTTP) {
- var url = dataSource + '&cmd='+cmd+'&target=' + target + '&wave=' + wave + '&rand='+ Math.random();
- //obj.innerHTML = "test";
- HTTP.open("GET", url,true);
- HTTP.onreadystatechange = function(){
- if (HTTP.readyState == 4 &&
- HTTP.status == 200) {
- updateClaims(dataSource,HTTP.responseXML,false);
- var obj = document.getElementById("targets");
- if (obj){
- clearObject(obj);
- var re = new RegExp("targetlist>((.|\\n)*)</targetlist");
- if(re.test(HTTP.responseText))
- obj.innerHTML = RegExp.$1;
- }
- }
- }
- HTTP.send(null);
- }
-}
-
-function clearObject(obj){
- while (obj.hasChildNodes()){
- obj.removeChild(obj.firstChild);
- }
-}
-
-function listTargets(dataSource){
- var http = getHTTPObject();
- http.open("GET",dataSource+'&cmd=gettargets' + '&rand='+ Math.random(),true);
- http.onreadystatechange = function(){
- if (http.readyState == 4 &&
- http.status == 200) {
- var obj = document.getElementById("targets");
- if (obj){
- clearObject(obj);
- var re = new RegExp("targetlist>((.|\\n)*)</targetlist");
- if(re.test(http.responseText))
- obj.innerHTML = RegExp.$1;
- }
- }
- }
- http.send(null);
-}
-
-function update(dataSource){
- var HTTP = getHTTPObject();
- if(HTTP) {
- HTTP.open("GET",dataSource+"&cmd=update&from="+modified + '&rand='+ Math.random(),true);
- HTTP.onreadystatechange = function(){
- if (HTTP.readyState == 4 &&
- HTTP.status == 200) {
- updateClaims(dataSource,HTTP.responseXML,true);
- }
- }
- HTTP.send(null);
- }
-}
-
-function updateClaims(dataSource,xmlthingy,timestamp){
- var targets = xmlthingy.getElementsByTagName("target");
- for (var i = 0; i < targets.length; i++){
- var target = targets[i].attributes.getNamedItem("id").nodeValue;
- var obj = document.getElementById("claim"+target);
- if (!obj)
- continue;
- //obj.innerHTML = '';
- clearObject(obj);
- var waves = targets[i].getElementsByTagName("wave");;
- for (var j = 0; j < waves.length; j++){
- var command = waves[j].getElementsByTagName("command")[0];
- var claimers = waves[j].getElementsByTagName("claimers")[0];
- var joinable = waves[j].getElementsByTagName("joinable")[0];
- var wave = waves[j].attributes.getNamedItem("id").nodeValue;
- command = command.firstChild.nodeValue;
- if(claimers.firstChild){
- claimers = '('+claimers.firstChild.nodeValue+')';
- }else
- claimers = '';
- joinable = joinable.firstChild.nodeValue;
-
- if (command == 'none'){
- var s = document.createElement("b");
- s.appendChild(document.createTextNode("Claimed by "+claimers));
- obj.appendChild(s);
- }else{
- var b = document.createElement("input");
- b.type = 'button';
- b.setAttribute("class", command);
- b.value = command +' wave '+wave+' '+claimers;
- b.setAttribute("onclick", "claim('"+dataSource+"',"+target+","+wave+",'"+command+"');");
- /*b.onclick = function(){
- claim(dataSource,t,wave,command);
- }*/
- obj.appendChild(b);
- }
- if (command == 'Unclaim'){
- var b = document.createElement("input");
- b.type = 'button';
- b.value = 'J';
- b.title = 'Make target joinable';
- command = 'set&joinable=TRUE';
- if (joinable == 1){
- b.value = 'N';
- b.title = 'Disable join';
- command = 'set&joinable=FALSE';
- }
- b.setAttribute("onclick", "claim('"+dataSource+"',"+target+","+wave+",'"+command+"');");
- obj.appendChild(b);
- }
- /*@cc_on
- obj.innerHTML = obj.innerHTML; // IE doesn't understand unless you tell it twice
- @*/
- }
- /*
- obj = document.getElementById("coords"+target);
- var coords = targets[i].getElementsByTagName("coords");;
- if (obj)
- obj.innerHTML = coords[0].firstChild.nodeValue;
- */
- }
- if (timestamp){
- timestamp = xmlthingy.getElementsByTagName("timestamp");
- if (timestamp)
- modified = timestamp[0].firstChild.nodeValue;
- }
-}