- 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);
+function parseUpdate(xml){
+ if ($('timestamp',xml).text())
+ modified = $('timestamp',xml).text();
+ $('target',xml).each(function(i){
+ var target = $(this).attr('id');
+ var div = $('#claim'+target).empty();
+ $('wave',$(this)).each(function(i){
+ var wave = $(this).attr('id');
+ var b = $('<input type="button">');
+ var command = $(this).find('command').text();
+ b.addClass(command);
+ b.click(function(){
+ claim(target,wave,command);
+ });
+ div.append(b);
+ switch ($(this).find('command').text()){
+ case 'taken':
+ b.attr('disabled','disabled');
+ b.val('Taken by '+$(this).find('claimers').text());
+ if ($(this).find('claimers').text() == 'BLOCKED'){
+ b.val($(this).find('claimers').text());
+ b.addClass('blocked');
+ }
+ break;
+ case 'claim':
+ b.val('Claim wave '+wave);
+ break;
+ case 'join':
+ b.val('Join wave '+wave
+ +' ('+$(this).find('claimers').text()+')');
+ break;
+ case 'unclaim':
+ b.val('Unclaim wave '+wave
+ +' ('+$(this).find('claimers').text()+')');
+ var j = $('<input type="button">');
+ var joinable = $(this).find('joinable').text();
+ j.click(function(){
+ join(target,wave,joinable);
+ });
+ div.append(j);
+ switch(joinable){
+ case '0':
+ j.val('J');
+ j.attr('title','Make target joinable');
+ break;
+ case '1':
+ j.val('N');
+ j.attr('title','Disable joinable');
+ break;
+ }
+ break;