Can someone check out tour stats and maybe convert it to chrome? My firefox version quit working. I would appreciate any help with this.
Thanks,
J
Moderator: Tech Team
jghost7 wrote:Can someone check out tour stats and maybe convert it to chrome? My firefox version quit working. I would appreciate any help with this.
Thanks,
J
//
// ==UserScript==
// @name Conquer Club Tour Stats
// @namespace http://userscripts.org/
// @description Produces Stats On Tournaments
// @include http://www.conquerclub.com/player.php?mode=find*
// @include https://www.conquerclub.com/player.php?mode=find*
// ==/UserScript==
Array.prototype.tsort = function(alpha,ref,type) {
if(alpha) this.sort(function(a,b) {
return ((totals[ref][a][type] > totals[ref][b][type]) - (totals[ref][a][type] < totals[ref][b][type]));
});
else this.sort(function(a,b) {
return (totals[ref][a][type] - totals[ref][b][type]);
});
}
var versionn = "1.1.3";
var latestVersionn = 0;
var features=[];
var proto;
var tourReq = [];
var totals;
var partial;
var label;
var pfilt = [];
var viewer = null;
var sorters = {'_players' : new Array(new Sorter(1,null), new Sorter(0,"_total"), new Sorter(0,"_won"), new Sorter(0,"_lost"), new Sorter(0,"_active"), new Sorter(0,"_elim"), new Sorter(1,"_kills")) ,
'_games' : new Array(new Sorter(0,null), new Sorter(1,"_name"), new Sorter(0, "_round") , new Sorter(1,"_winners"),new Sorter(1,"_elims"))};
var teamsize = {'D' : 2, 'T' : 3, 'Q' : 4};
function Totals() {
this._pages = 0;
this._counter = 0;
this._players = new Object();
this._order = new Array();
this._labels = new Array();
this._games = new Object();
this._gorder = new Array();
this.addGame = function(game,map) {
this._games[game] = new Game(map);
this._gorder.push(game);
}
this.addPlayer = function(game,name) {
this._players[name] = new Player();
this._order.push(name);
}
this.addRound = function(game,round) {
this._games[game]._round = round;
}
this.addVictor = function(game,name) {
this._games[game]._victor = name;
}
this.addWinner = function(game,name) {
this._players[name]._won++;
this._games[game]._winners.push(name);
}
this.addLoser = function(game,name) {
this._players[name]._lost++;
this._games[game]._losers.push(name);
}
this.addActive = function(game,name) {
this._players[name]._active++;
}
this.addTotal = function(game,name) {
this._players[name]._total++;
}
this.addElim = function(game,name) {
this._players[name]._lost--;
this._players[name]._elim++;
}
this.addDefeat = function(game,name) {
this._games[game]._elims.push(name);
}
this.setTeam = function(game,team) {
this._games[game]._tnums.push(team);
}
this.addKill = function(kills,name) {
this._players[name]._kills+= kills;
}
}
function Sorter(alpha,fn) {
this._alpha = alpha;
this._dir = 0;
this._fn = fn;
}
function Player() {
this._total = 0;
this._won = 0;
this._lost = 0;
this._active = 0;
this._elim = 0;
this._kills = 0;
}
function Game(name) {
this._name = name;
this._round = 0;
this._winners = new Array();
this._losers = new Array();
this._elims = new Array();
this._tnums = new Array();
this._victor = "";
}
function addState(state, param1,param2,lab,rgx) {
label[''][state](param1,param2);
if(lab) {
label[lab][state](param1,param2);
if(rgx && lab.match(rgx)) partial[state](param1,param2);
}
}
function cleanup() {
totals = null;
tourReq = null;
if(viewer != null)viewer.close();
}
function removeBox() {
viewer.close();
viewer = null;
tourReq = [];
}
function switchTabs(id) {
if(id==1) {
viewer.document.getElementById('tableContainer').style.visibility = "visible";
viewer.document.getElementById('results').style.visibility = "hidden";
viewer.document.getElementById('labels').style.visibility = "hidden";
viewer.document.getElementById('tab1').style.backgroundColor = "#0f0";
viewer.document.getElementById('tab2').style.backgroundColor = "#cdc";
viewer.document.getElementById('tab3').style.backgroundColor = "#cdc";
}
else if(id==2) {
viewer.document.getElementById('tableContainer').style.visibility = "hidden";
viewer.document.getElementById('results').style.visibility = "visible";
viewer.document.getElementById('labels').style.visibility = "hidden";
viewer.document.getElementById('tab1').style.backgroundColor = "#cdc";
viewer.document.getElementById('tab2').style.backgroundColor = "#0f0";
viewer.document.getElementById('tab3').style.backgroundColor = "#cdc";
}
else if(id==3) {
viewer.document.getElementById('tableContainer').style.visibility = "hidden";
viewer.document.getElementById('results').style.visibility = "hidden";
viewer.document.getElementById('labels').style.visibility = "visible";
viewer.document.getElementById('tab1').style.backgroundColor = "#cdc";
viewer.document.getElementById('tab2').style.backgroundColor = "#cdc";
viewer.document.getElementById('tab3').style.backgroundColor = "#0f0";
}
}
function createBox(txt) {
cleanup();
viewer = window.open('','box','width=1040,height=720,scrollbars=yes,resizable=yes,status=no,toolbar=no,location=no,directories=no,menubar=no,copyhistory=no');
viewer.addEventListener('unload', function() {
viewer=null;
cleanup();
}, false);
var style = viewer.document.getElementsByTagName('head')[0].appendChild(viewer.document.createElement("style"));
style.type = 'text/css';
style.innerHTML = "#rankDiv {background-color:transparent;position:absolute;width:100%;height:100%;top:0px;left:0px;z-index:10000;} ";
style.innerHTML += "#rankBox {position:relative;min-width:1040px;height:100%;margin-top:10px;margin-left:20px;border:2px solid #000;background-color:#F2F5F6;} ";
style.innerHTML += "#rankDiv > #rankBox {position:fixed;overflow:auto;} ";
style.innerHTML += "#rankBox h1 {margin:0;font:bold 0.9em verdana,arial;background-color:#cdc;color:#000;border-bottom:1px solid #000;padding:2px 0 2px 5px;} ";
style.innerHTML += "#rankBox p {font:0.7em verdana,arial;padding-left:50px;width:900px;} .result {font-weight:bold;color:#00f;} .totals {color:#000;} ";
style.innerHTML += "#rankBox a {text-decoration:none;} .central {text-align:center} #rankBox #tab1, #rankBox #tab2, #rankBox #tab3, #rankBox #tab4 {border:1px solid black}";
style.innerHTML += "#rankBox #tab1:hover, #rankBox #tab2:hover, #rankBox #tab3:hover, #rankBox #tab4:hover , #rankBox #closeRank:hover {color:#fff} .header {background-color:#cdc;font-weight:bold;} ";
style.innerHTML += "#rankBox #closeRank {display:block;position:relative;margin:5px auto;padding:3px;border:2px solid #000;width:70px;font:0.7em verdana,arial;text-transform:uppercase;text-align:center;color:#000;background-color:#cdc;text-decoration:none;} ";
style.innerHTML += "#rankBox img {position:relative;top:20px;left:20px;} .rankoptions {width:100px;} .bmedal {font-weight:bold;color:#8C7853} .smedal {font-weight:bold;color:silver} .gmedal {font-weight:bold;color:gold} ";
style.innerHTML += ".display_div {width: 48px;padding: 0 2px 0 0;height: 20px;text-align: left;border: 1px solid;} ";
style.innerHTML += ".display {background-color: #fff;color: blue;width: 48px;text-align: left;font-size: 8pt;font-family: verdana, arial, helvetica, sans-serif;font-weight: bold;cursor: text;}";
style.innerHTML += "#tabs {text-align:center} #tabs table{align:center;margin-left:30px;} #tabs a {width:100px;font-weight:bold;font: verdana,arial;text-transform:none;color:gray;padding:0 5px} #tabs a:hover {background-color:#cdc}";
style.innerHTML += "#scroller {width: 1000px;} #scroller, #scroller.td, #scroller.a, #summ td, #meds td {color: #000;font: bold 7pt Verdana, Geneva, Arial, Helvetica, sans-serif}";
style.innerHTML += "#resultant, #labelling {width: 1000px;} #resultant, #resultant.td, #resultant.a, #labelling, #labelling.td, #labelling.a {color: #000;font: bold 7pt Verdana, Geneva, Arial, Helvetica, sans-serif}";
style.innerHTML += "div.tableContainer {border: 1px solid #963;height: 535px;overflow:auto;overflow-x: hidden;width: 1000px;margin:10px} span {cursor:pointer;text-decoration:underline}";
style.innerHTML += "#results, #labels {visibility:hidden;border: 1px solid #963;overflow:auto;overflow-x: hidden;width:1000px;height:535px;position:absolute;z-index:200;top:120px;margin:10px;}";
style.innerHTML += "thead.fixedHeader tr, thead.scrollHeader tr, thead.totalsHeader tr {display: block} thead.fixedHeader td, tbody.scrollContent td.banner {background: #cdc;border-bottom: 1px solid #EB8;padding: 4px 3px;text-align: center;width: 1000px}";
style.innerHTML += "thead.scrollHeader td {background: #fff;border-right: 1px solid #B74;border-bottom: 1px solid #EB8;padding: 4px 3px;text-align: center;width: 136px;} ";
style.innerHTML += "thead.totalsHeader td {background: #fff;border-right: 1px solid #B74;border-bottom: 1px solid #EB8;padding: 4px 3px;text-align: center;width: 136px;} span.winner {cursor:auto;text-decoration:none;color:red}";
style.innerHTML += "thead.scrollHeader a, thead.scrollHeader a:link, thead.scrollHeader a:visited,thead.totalsHeader a, thead.totalsHeader a:link, thead.totalsHeader a:visited, tbody.scrollContent a, tbody.scrollContent a:link, tbody.scrollContent a:visited {display: block;width: 136px;}";
style.innerHTML += "tbody.scrollContent {width: 100%;} tbody.scrollContent td#tourtitle,tbody.scrollContent td#rtourtitle, tbody.scrollContent td#pl, tbody.scrollContent td#rpl {font-size:12pt;color:blue;} tbody.scrollContent td#tourlabel {font-size:10pt;color:red}";
style.innerHTML += "tbody.scrollContent td {border-right: 1px solid #b74;border-bottom: 1px solid #DDD;padding: 4px 3px;text-align:center;height:20px;} tbody.scrollContent td {width: 136px;vertical-align: middle;} ";
style.innerHTML += "tbody.scrollContent tr.mreven {background-color:#ddd} tbody.scrollContent tr.mrodd {background-color:#eee} tbody.scrollContent td.sorton {background-color:cyan;cursor:pointer;} tbody.scrollContent td.tiny {width:10%;} ";
mObj = viewer.document.getElementsByTagName("body")[0].appendChild(viewer.document.createElement("div"));
mObj.id = "rankDiv";
mObj.style.visibility = 'hidden';
mObj.style.height = viewer.document.documentElement.scrollHeight + "px";
alertObj = mObj.appendChild(viewer.document.createElement("div"));
alertObj.id = "rankBox";
alertObj.style.left = (viewer.document.documentElement.scrollWidth - alertObj.offsetWidth)/2 - "px";
h1 = alertObj.appendChild(viewer.document.createElement("h1"));
h1.appendChild(viewer.document.createTextNode("TOUR STATS"));
msg = alertObj.appendChild(viewer.document.createElement("p"));
msg.id = "progress";
msg.innerHTML = txt;
btn = alertObj.appendChild(viewer.document.createElement("a"));
btn.id = "closeRank";
btn.appendChild(viewer.document.createTextNode("CLOSE"));
btn.href = "javascript:void(0);";
btn.style.opacity = "0.5";
btn.addEventListener('click', function() {
if(btn.style.backgroundColor == "green")
removeBox();
}, true);
tabs = viewer.document.getElementById('rankBox').appendChild(viewer.document.createElement("div"));
tabs.id = "tabs";
tabs.innerHTML = "<table><tr><td><a href=\"javascript:void(0)\" id=tab1>Summary</a></td><td><a href=\"javascript:void(0)\" id=tab2>Results</a></td><td><a href=\"javascript:void(0)\" id=tab3>Labels</a></td></tr></table>";
viewer.document.getElementById('tab1').addEventListener('click', function() {
switchTabs(1);
},true);
viewer.document.getElementById('tab2').addEventListener('click', function() {
switchTabs(2);
},true);
viewer.document.getElementById('tab3').addEventListener('click', function() {
switchTabs(3);
},true);
tableWrap = viewer.document.getElementById('rankBox').appendChild(viewer.document.createElement("div"));
tableWrap.id = "tableContainer";
tableWrap.className = "tableContainer";
table = viewer.document.createElement("table");
table.border=1;
table.id = "scroller";
table.width = "100%";
table.cellSpacing = "0";
table.cellPadding = "0";
table.className = "scrollTable";
tbody = table.appendChild(viewer.document.createElement("tbody"));
tbody.className = "scrollContent";
tbody.id = "ranktable";
viewer.document.getElementById('tableContainer').appendChild(table);
results = viewer.document.getElementById('rankBox').appendChild(viewer.document.createElement("div"));
results.id = "results";
results.className = "tableContainer";
rtable = viewer.document.createElement("table");
rtable.border=1;
rtable.id = "resultant";
rtable.width = "100%";
rtable.cellSpacing = "0";
rtable.cellPadding = "0";
rtable.className = "scrollTable";
rtbody = rtable.appendChild(viewer.document.createElement("tbody"));
rtbody.className = "scrollContent";
rtbody.id = "restable";
viewer.document.getElementById('results').appendChild(rtable);
lbs = viewer.document.getElementById('rankBox').appendChild(viewer.document.createElement("div"));
lbs.id = "labels";
lbs.className = "tableContainer";
ltable = viewer.document.createElement("table");
ltable.border=1;
ltable.id = "labelling";
ltable.width = "100%";
ltable.cellSpacing = "0";
ltable.cellPadding = "0";
ltable.className = "scrollTable";
ltbody = ltable.appendChild(viewer.document.createElement("tbody"));
ltbody.className = "scrollContent";
ltbody.id = "labtable";
viewer.document.getElementById('labels').appendChild(ltable);
mObj.style.visibility = 'visible';
switchTabs(1);
}
function showMenu() {
var gmMenu = document.createElement('div');
gmMenu.id="trn";
var html = "<h3><b>Tour Stats <span style='font-size:7pt;' ><a href='" + proto + "//www.conquerclub.com/forum/viewtopic.php?f=59&t=86543'>" + versionn + "</a></span></b></h3>";
gmMenu.innerHTML = html;
ul[0].parentNode.appendChild(gmMenu);
ul = document.createElement('ul');
ul.style.borderWidth = "1px 1px 0px 1px";
ul.style.width = "151px";
if(latestVersionn) {
ul.innerHTML = "<li><a id=\"alatest\" href=http://userscripts.org/scripts/source/49166.user.js><span class=\"attention\">New Update Available</span></a></li>";
gmMenu.appendChild(ul);
}
else{
ul.innerHTML = "<li><a id=\"alatest\" href=http://userscripts.org/scripts/source/49166.user.js><span>Latest Version Installed</span></a></li>";
gmMenu.appendChild(ul);
}
var ftext = features.join("\n");
document.getElementById('alatest').addEventListener("click" , function () {
alert('New version features\n' + ftext);
},true);
}
var leftBar = document.getElementById("leftColumn");
if(leftBar) {
var ul = leftBar.getElementsByTagName("ul");
if (ul[0]) {
proto = window.location.protocol;
GM_xmlhttpRequest({
method: 'GET',
url: 'http://www.fileden.com/files/2008/5/8/1902058/tour.txt?nocache=' + Math.random(),
headers: {
'User-agent': 'Mozilla/4.0 (compatible) Greasemonkey',
'Accept': 'text/html',
},
onload: function(responseDetails) {
features = responseDetails.responseText.split('\n');
var latest = features[0].split('.');
var ver = versionn.split('.');
latestVersionn = (((parseInt(latest[0]) * 100) + (parseInt(latest[1]) * 10) + parseInt(latest[2])) > ((parseInt(ver[0]) * 100) + (parseInt(ver[1]) * 10) + parseInt(ver[2])));
showMenu();
}
});
}
}
function sortByCol(arr,col,ref) {
if(sorters[ref][col]._fn != null) arr.tsort(sorters[ref][col]._alpha,ref,sorters[ref][col]._fn);
else if(sorters[ref][col]._alpha) arr.sort();
else arr.sort(function(a,b) {return(parseInt(a) - parseInt(b));});
if(sorters[ref][col]._dir) arr.reverse();
sorters[ref][col]._dir = sorters[ref][col]._dir ? 0 : 1;
}
function setTable(tname,rnd) {
var pf = pfilt.join('');
if(rnd && !rnd.match(/ - /)) rnd = " - " + rnd;
var w = "<tr><td id=tourlabel colspan=7>Labels: ";
var x = "<tr><td id=tourtitle colspan=7><span id=label>" + tname + "</span>" + rnd + " : " + totals._order.length + " Players.</span></td></tr>";
var y = "<tr><td id=rtourtitle colspan=7><span id=rlabel>" + tname + "</span>" + rnd + " : " + totals._order.length + " Players.</span></td></tr>";
if(pf != "") {
var pfs = pfilt.join(' ');;
x+= "<tr><td colspan=7 id=pl>Summary For " + pfs + "</td></tr>";
y+= "<tr><td colspan=7 id=rpl>Summary For " + pfs + "</td></tr>";
}
var xarr = new Array();
for(var z=0; z<label['']._labels.length; z++) {
xarr.push(" <span id=label" + z + ">" + label['']._labels[z] + "</span> ");
}
w += xarr + "</td></tr>";
x += "<tr><td id=sort0 class=sorton>Player</td><td id=sort1 class=sorton>Games</td><td id=sort2 class=sorton>Wins</td><td id=sort3 class=sorton>Losses</td><td id=sort4 class=sorton>Active</td><td id=sort5 class=sorton>Eliminated</td><td id=sort6 class=sorton>Kills</td></tr>";
y += "<tr><td id=res0 class=sorton>Game Number</td><td id=res1 class=sorton>Map</td><td id=res2 class=sorton>Round</td><td id=res3 class=sorton>Winners</td><td id=res4 class=sorton>Losers</td></tr>";
if(pf != "") {
var summary = new Player();
for(var pp=0; pp<4; pp++) {
if(pfilt[pp] != "" && totals._players[pfilt[pp]]) {
summary._total += totals._players[pfilt[pp]]._total;
summary._won += totals._players[pfilt[pp]]._won;
summary._lost += totals._players[pfilt[pp]]._lost;
summary._active += totals._players[pfilt[pp]]._active;
summary._elim += totals._players[pfilt[pp]]._elim;
summary._kills += totals._players[pfilt[pp]]._kills;
}
}
x += "<tr class=mreven><td>" + pfs + "</td><td>" + summary._total + "</td><td>" + summary._won + "</td><td>" + summary._lost + "</td><td>" + summary._active + "</td><td>" + summary._elim + "</td><td>" + summary._kills + "</td></tr>";
}
else{
for(var i=0; i< totals._order.length;i++) {
if(i & 1) trc = "<tr class=mrodd><td>";
else trc = "<tr class=mreven><td>";
x += trc + totals._order[i] + "</td><td>" + totals._players[totals._order[i]]._total + "</td><td>" + totals._players[totals._order[i]]._won + "</td><td>" + totals._players[totals._order[i]]._lost + "</td><td>" + totals._players[totals._order[i]]._active + "</td><td>" + totals._players[totals._order[i]]._elim + "</td><td>" + totals._players[totals._order[i]]._kills + "</td></tr>";
}
}
var h = 0;
for(var g=0; g< totals._gorder.length; g++) {
if(totals._games[totals._gorder[g]]._winners.length) {
if(h & 1) trc = "<tr class=mrodd><td class=tiny>";
else trc = "<tr class=mreven><td class=tiny>";
if(pf == "" || (pfilt[0] != "" && (totals._games[totals._gorder[g]]._elims.indexOf(pfilt[0]) != -1 || totals._games[totals._gorder[g]]._winners.indexOf(pfilt[0]) != -1)) ||
(pfilt[1] != "" && (totals._games[totals._gorder[g]]._elims.indexOf(pfilt[1]) != -1 || totals._games[totals._gorder[g]]._winners.indexOf(pfilt[1]) != -1)) ||
(pfilt[2] != "" && (totals._games[totals._gorder[g]]._elims.indexOf(pfilt[2]) != -1 || totals._games[totals._gorder[g]]._winners.indexOf(pfilt[2]) != -1)) ||
(pfilt[3] != "" && (totals._games[totals._gorder[g]]._elims.indexOf(pfilt[3]) != -1 || totals._games[totals._gorder[g]]._winners.indexOf(pfilt[3]) != -1))) {
y += trc + "<a href=\"javascript:void(0);\" onclick='var wdw=window.open(\"" + proto + "//www.conquerclub.com/game.php?game=" + totals._gorder[g] + "\", \"seegame\");wdw.focus();' class=tiny>";
if(totals._games[totals._gorder[g]]._victor) {
var winarray = new Array();
for(var wa=0; wa < totals._games[totals._gorder[g]]._winners.length; wa++) {
if(totals._games[totals._gorder[g]]._winners[wa] == totals._games[totals._gorder[g]]._victor) winarray.push(totals._games[totals._gorder[g]]._winners[wa] + "<sup>◊</sup>");
else winarray.push(totals._games[totals._gorder[g]]._winners[wa]);
}
y += "<u>Game " + totals._gorder[g] + "</u></a></td><td>" + totals._games[totals._gorder[g]]._name + "</td><td>" + totals._games[totals._gorder[g]]._round + "</td><td><span class=winner>" + winarray + "</span></td><td>";
}
else
y += "<u>Game " + totals._gorder[g] + "</u></a></td><td>" + totals._games[totals._gorder[g]]._name + "</td><td>" + totals._games[totals._gorder[g]]._round + "</td><td><span class=winner>" + totals._games[totals._gorder[g]]._winners + "</span></td><td>";
var lost = new Array();
if(totals._games[totals._gorder[g]]._tnums[0]) {
for(var t=0; t< totals._games[totals._gorder[g]]._elims.length; t++) {
lost.push(totals._games[totals._gorder[g]]._elims[t] + "<sup>" + totals._games[totals._gorder[g]]._tnums[t] + "</sup>");
}
y += lost + "</td></tr>";
}
else y += totals._games[totals._gorder[g]]._elims + "</td></tr>";
}
h++;
}
}
viewer.document.getElementById('ranktable').innerHTML = x;
viewer.document.getElementById('restable').innerHTML = y;
viewer.document.getElementById('labtable').innerHTML = w;
for(var j=0; j< sorters['_players'].length; j++) {
viewer.document.getElementById('sort' + j).addEventListener('click', function() {
sortByCol(totals._order,parseInt(this.id.split('sort')[1]),"_players");
setTable(tname,rnd);
},true);
}
for(var j=0; j< sorters['_games'].length; j++) {
viewer.document.getElementById('res' + j).addEventListener('click', function() {
sortByCol(totals._gorder,parseInt(this.id.split('res')[1]),"_games");
setTable(tname,rnd);
},true);
}
viewer.document.getElementById('label').addEventListener('click', function() {
totals = label[''];
setTable(tname,'');
},true);
viewer.document.getElementById('rlabel').addEventListener('click', function() {
totals = label[''];
setTable(tname,'');
},true);
for(var k=0; k<label['']._labels.length; k++) {
viewer.document.getElementById('label' + k).addEventListener('click', function() {
var id = parseInt(this.id.split('label')[1]);
totals = label[label['']._labels[id]];
setTable(tname,label['']._labels[id]);
switchTabs(1);
},true);
}
}
function endGame(tname,rnd) {
if(rnd) totals = partial;
else totals = label[rnd];
setTable(tname,rnd);
viewer.document.getElementById('closeRank').style.opacity = "0.9";
viewer.document.getElementById('closeRank').style.backgroundColor = "green";
viewer.document.getElementById('progress').innerHTML = "<b>Scan Complete. Click on light blue column headers to sort. Click again to reverse sort.</b>";
}
function getTour(tname,page,rnd) {
var jump = proto + '//www.conquerclub.com/api.php?mode=gamelist&gs=A,F&to=' + encodeURIComponent(tname) + "&names=Y&events=Y";
if(page > 1) jump += "&page=" + page;
tourReq['touring' + page] = new XMLHttpRequest();
tourReq['touring' + page].open('GET', jump, true);
tourReq['touring' + page].onreadystatechange = function() {
if (tourReq['touring' + page].readyState == 4) {
var parser = new DOMParser();
var dom = parser.parseFromString(tourReq["touring" + page].responseText,"application/xml");
var pages = dom.getElementsByTagName('page')[0].firstChild.nodeValue;
var game = dom.getElementsByTagName('game');
var numPages = 0;
if(pages.match(/^(\d+) of (\d+)$/)) numPages = parseInt(RegExp.$2);
if(page == 1) {
if(numPages > 1) {
for(var pg=2;pg<=numPages;pg++) {
getTour(tname,pg,rnd);
}
}
}
for(g=0; g<game.length;g++) {
var tourney = game[g].getElementsByTagName('tournament')[0].firstChild.nodeValue;
var gameno = game[g].getElementsByTagName('game_number')[0].firstChild.nodeValue;
var mapname = game[g].getElementsByTagName('map')[0].firstChild.nodeValue;
var gametype = game[g].getElementsByTagName('game_type')[0].firstChild.nodeValue;
var roundNo = game[g].getElementsByTagName('round')[0].firstChild.nodeValue;
if(rnd) var rgx = new RegExp(rnd,"i");
if(tourney.match(/ - (.+?)$/)) {
var lab = RegExp.$1;
if(label['']._labels.indexOf(lab) == -1){
label['']._labels.push(lab);
label[lab] = new Totals();
}
}
addState('addGame', gameno,mapname,lab,rgx);
addState('addRound', gameno,roundNo,lab,rgx);
var players = game[g].getElementsByTagName('player');
var anames = new Array();
var tnums = new Array();
for(var p=0; p<players.length;p++) {
var pname = players[p].firstChild.nodeValue;
var aname = pname.substr(0,1).toUpperCase() + pname.substr(1, pname.length - 1);
anames.push(aname);
if(!label['']._players[aname]) label[''].addPlayer(gameno,aname);
if(lab && !label[lab]._players[aname]) {
label[lab].addPlayer(gameno,aname);
if(rnd && lab.match(rgx)) partial.addPlayer(gameno,aname);
}
if(players[p].getAttribute('state') == "Won") addState('addWinner', gameno,aname,lab,rgx);
else if(players[p].getAttribute('state') == "Lost") addState('addLoser', gameno,aname,lab,rgx);
else addState('addActive', gameno,aname,lab,rgx);
addState('addTotal', gameno,aname,lab,rgx);
if(gametype == "D" || gametype == "T" || gametype == "Q") tnums.push(1 + Math.floor( p / teamsize[gametype]));
else tnums.push(0);
}
if(!label['']._games[gameno]._winners.length){
for(l=0; l< label['']._games[gameno]._losers.length; l++) {
addState('addElim', gameno,label['']._games[gameno]._losers[l],lab,rgx);
}
}
else{
var events = game[g].getElementsByTagName('event');
for(var e=0; e<events.length;e++) {
var ev = events[e].firstChild.nodeValue;
if(ev.match(/^(\d) eliminated/)) {
var def = parseInt(RegExp.$1);
if(def) addState('addKill', 1,anames[def-1],lab,rgx);
}
if(ev.match(/^(\d) held/)) {
var def = parseInt(RegExp.$1);
addState('addVictor', gameno,anames[def-1],lab,rgx);
}
if(ev.match(/eliminated (\d)/) || ev.match(/^(\d) was kicked/) || ev.match(/^(\d) was a/) || ev.match(/^(\d) surrendered$/)) {
var def = parseInt(RegExp.$1);
if(label['']._games[gameno]._losers.indexOf(anames[def-1]) != -1) {
addState('addDefeat', gameno,anames[def-1],lab,rgx);
addState('setTeam', gameno,tnums[def-1],lab,rgx);
if(label['']._games[gameno]._elims.length == label['']._games[gameno]._losers.length) break;
}
}
else if(ev.match(/^(\d) held the objective$/)) {
var gm = label['']._games[gameno];
for(q=0; q< gm._losers.length; q++) {
if(gm._elims.indexOf(gm._losers[q]) == -1) addState('addDefeat', gameno,gm._losers[q],lab,rgx);
}
break;
}
}
}
}
label['']._pages++;
viewer.document.getElementById('progress').innerHTML = "Scanning..." + (100 * (label['']._pages)/(numPages)).toFixed(0) + "%";
if(label['']._pages == numPages) endGame(tname,rnd);
}
else if (tourReq['touring' + page].readyState == 1 && label['']._pages == 0) {
viewer.document.getElementById('progress').innerHTML = "Scanning...0%";
}
}
tourReq['touring' + page].send(null);
}
function getGames(glist,page) {
var jump = proto + '//www.conquerclub.com/api.php?mode=gamelist&gn=' + glist + "&names=Y&events=Y";
if(page > 1) jump += "&page=" + page;
tourReq['touring' + page] = new XMLHttpRequest();
tourReq['touring' + page].open('GET', jump, true);
tourReq['touring' + page].onreadystatechange = function() {
if (tourReq['touring' + page].readyState == 4) {
var parser = new DOMParser();
var dom = parser.parseFromString(tourReq["touring" + page].responseText,"application/xml");
var pages = dom.getElementsByTagName('page')[0].firstChild.nodeValue;
var game = dom.getElementsByTagName('game');
var numPages = 0;
if(pages.match(/^(\d+) of (\d+)$/)) numPages = parseInt(RegExp.$2);
if(page == 1) {
if(numPages > 1) {
for(var pg=2;pg<=numPages;pg++) {
getGames(glist,pg);
}
}
}
for(g=0; g<game.length;g++) {
var gameno = game[g].getElementsByTagName('game_number')[0].firstChild.nodeValue;
var mapname = game[g].getElementsByTagName('map')[0].firstChild.nodeValue;
var gametype = game[g].getElementsByTagName('game_type')[0].firstChild.nodeValue;
var roundNo = game[g].getElementsByTagName('round')[0].firstChild.nodeValue;
addState('addGame', gameno,mapname,'','');
addState('addRound', gameno,roundNo,'','');
var players = game[g].getElementsByTagName('player');
var anames = new Array();
var tnums = new Array();
var pname=="";
for(var p=0; p<players.length;p++) {
if(gametype=="P"&&pname==players[p].firstChild.nodeValue) {
continue;}
pname = players[p].firstChild.nodeValue;
var aname = pname.substr(0,1).toUpperCase() + pname.substr(1, pname.length - 1);
anames.push(aname);
if(!label['']._players[aname]) label[''].addPlayer(gameno,aname);
if(players[p].getAttribute('state') == "Won") addState('addWinner', gameno,aname,'','');
else if(players[p].getAttribute('state') == "Lost") addState('addLoser', gameno,aname,'','');
else addState('addActive', gameno,aname,'','');
addState('addTotal', gameno,aname,'','');
if(gametype == "D" || gametype == "T" || gametype == "Q") tnums.push(1 + Math.floor( p / teamsize[gametype]));
else tnums.push(0);
}
if(!label['']._games[gameno]._winners.length){
for(l=0; l< label['']._games[gameno]._losers.length; l++) {
addState('addElim', gameno,label['']._games[gameno]._losers[l],'','');
}
}
else{
var events = game[g].getElementsByTagName('event');
for(var e=0; e<events.length;e++) {
var ev = events[e].firstChild.nodeValue;
if(ev.match(/^(\d) eliminated/)) {
var def = parseInt(RegExp.$1);
if(def) addState('addKill', 1,anames[def-1],'','');
}
if(ev.match(/^(\d) held/)) {
var def = parseInt(RegExp.$1);
addState('addVictor', gameno,anames[def-1],'','');
}
if(ev.match(/eliminated (\d)/) || ev.match(/^(\d) was kicked/) || ev.match(/^(\d) was a/) || ev.match(/^(\d) surrendered$/)) {
var def = parseInt(RegExp.$1);
if(label['']._games[gameno]._losers.indexOf(anames[def-1]) != -1) {
addState('addDefeat', gameno,anames[def-1],'','');
addState('setTeam', gameno,tnums[def-1],'','');
if(label['']._games[gameno]._elims.length == label['']._games[gameno]._losers.length) break;
}
}
else if(ev.match(/^(\d) held the objective$/)) {
var gm = label['']._games[gameno];
for(q=0; q< gm._losers.length; q++) {
if(gm._elims.indexOf(gm._losers[q]) == -1) addState('addDefeat', gameno,gm._losers[q],'','');
}
break;
}
}
}
}
label['']._pages++;
viewer.document.getElementById('progress').innerHTML = "Scanning..." + (100 * (label['']._pages)/(numPages)).toFixed(0) + "%";
if(label['']._pages == numPages) endGame("Game List","");
}
else if (tourReq['touring' + page].readyState == 1 && label['']._pages == 0) {
viewer.document.getElementById('progress').innerHTML = "Scanning...0%";
}
}
tourReq['touring' + page].send(null);
}
window.addEventListener("unload" , cleanup, false);
if (!(/\&private=Y/.test(window.location.href)) && !(/\&submit=Join/.test(window.location.href))) {
var tour = document.getElementById('tournament');
var label = document.getElementById('label');
var player1 = document.getElementById('player1');
var player2 = document.getElementById('player2');
var player3 = document.getElementById('player3');
var player4 = document.getElementById('player4');
var buttonDiv = document.getElementById('tournament').parentNode.appendChild(document.createElement('input'));
buttonDiv.className = "button";
buttonDiv.id = "tour";
buttonDiv.type = "button";
buttonDiv.value = "Tour Stats";
buttonDiv = document.getElementById('game_number').parentNode.appendChild(document.createElement('span'));
buttonDiv.innerHTML = "Game List ";
var gbuttonDiv = document.getElementById('game_number').parentNode.appendChild(document.createElement('input'));
gbuttonDiv.id = "gamelist";
gbuttonDiv.type = "text";
gbuttonDiv.className = "field";
buttonDiv = document.getElementById('game_number').parentNode.appendChild(document.createElement('input'));
buttonDiv.className = "button";
buttonDiv.id = "gamestats";
buttonDiv.type = "button";
buttonDiv.value = "Game Stats";
document.getElementById('tour').addEventListener("click", function() {
var tname = tour.value;
pfilt[0] = player1.value.substr(0,1).toUpperCase() + player1.value.substr(1, player1.value.length - 1);
pfilt[1] = player2.value.substr(0,1).toUpperCase() + player2.value.substr(1, player2.value.length - 1);
pfilt[2] = player3.value.substr(0,1).toUpperCase() + player3.value.substr(1, player3.value.length - 1);
pfilt[3] = player4.value.substr(0,1).toUpperCase() + player4.value.substr(1, player4.value.length - 1);
for (var s in sorters) {
for(var d=0; d< sorters[s].length; d++) {
sorters[s][d]._dir = 0;
}
}
createBox('Collecting Games');
label[''] = new Totals();
if(label.value) partial = new Totals();
tourReq = [];
getTour(tname,1,label.value);
}, false);
document.getElementById('gamestats').addEventListener("click", function() {
createBox('Collecting Games');
label[''] = new Totals();
tourReq = [];
var parsegameList = gbuttonDiv.value.replace(/ /g,",");
getGames(parsegameList,1);
},false);
}
Users browsing this forum: No registered users