/* Version Data */
scriptName = "TakSelector";
majorVersion = 1;
minorVersion = 02;
/*End Version Data*/
if(typeof(defaultExString) == "undefined")
{defaultExString = "{COORDS} ";
}
else
{defaultExString += " ";
}
/* Define major object variables */
table = $("th:contains('Villages')");
if(document.URL.match('divokekmeny.cz')){table = $("th:contains('Vesnice')");}
table = table[table.length - 1].parentNode.parentNode;
rows = table.getElementsByTagName("tr");
mainTable = table.parentNode.parentNode.nextSibling;
/* End define major object variables */
/* Add and Identify Checkboxes */
rows[0].innerHTML +=
"
Include village? | Select/Deselect All
| Invert list
| ";
for (i = 1;i < rows.length;i++)
{rows[i].innerHTML += " | ";
}
/* End Add and Identify Checkboxes */
mainTable.innerHTML = "
" + mainTable.innerHTML;
/*Experimental Output Format Table*/
mainTable.innerHTML = "
" + mainTable.innerHTML;
/*End EXPERIMENTAL Output Format Table*/
/*Output Format Table*/
mainTable.innerHTML = "
" + mainTable.innerHTML;
/*End Output Format Table*/
/*Text Match Table*/
mainTable.innerHTML = "
" + mainTable.innerHTML;
/*End Text Match Table*/
/*Points Table*/
mainTable.innerHTML = "
" + mainTable.innerHTML;
/*End Points Table*/
/*Travel Time Table*/
mainTable.innerHTML = "
" + mainTable.innerHTML;
/*End Travel Time Table*/
/*Proximity Table*/
mainTable.innerHTML = "
" + mainTable.innerHTML;
/*End Proximity Table*/
/*Zone Table*/
mainTable.innerHTML =
"
" + mainTable.innerHTML;
/*End Zone Table*/
/*Selection Mode Table*/
mainTable.innerHTML = "
" + mainTable.innerHTML;
/*End Selection Mode Table*/
mainTable.innerHTML = "
" + mainTable.innerHTML;
selAll = document.getElementById("selectAllBox");
invAll = document.getElementById("invertListBox");
minX = document.getElementById("lowestX");
minY = document.getElementById("lowestY");
maxX = document.getElementById("highestX");
maxY = document.getElementById("highestY");
inpK = document.getElementById("inputK");
cenX = document.getElementById("centralX");
cenY = document.getElementById("centralY");
cenX1 = document.getElementById("centralX1");
cenY1 = document.getElementById("centralY1");
maxF = document.getElementById("maxFields");
maxH = document.getElementById("maxH");
maxM = document.getElementById("maxM");
maxS = document.getElementById("maxS");
TTB = document.getElementById("troopTypeBox");
pBox = document.getElementById("pointsBox");
sRad = document.getElementById("sRadBut");
bRad = document.getElementById("bRadBut");
targetPlayer = $.trim(mainTable.previousSibling.getElementsByTagName('th')[0].innerHTML);
listFormat = 'script format';
addRad = document.getElementById("addRadBut");
remRad = document.getElementById("removeRadBut");
repRad = document.getElementById("replaceRadBut");
txtBox = document.getElementById("textMatchBox");
exFormBox = document.getElementById('experimentalFormatBox');
repRad.checked = true;
function selectAll()
{if (selAll.checked == true)
{for (i = 1;i < rows.length;i++)
{box = document.getElementById("includeCoordsInputBox_" + i);
box.checked = true;
}
}
else if (selAll.checked == false)
{for (i = 1;i < rows.length;i++)
{box = document.getElementById("includeCoordsInputBox_" + i);
box.checked = false;
}
}
}
function getDistance(a, b)
{var a = a.split( "|");
var b = b.split( "|");
var c = b[0] - a[0];
var d = b[1] - a[1];
return Math.sqrt(c * c + d * d);
}
function byPoints()
{minPoints = parseInt(document.getElementById('minPointsBox').value);
maxPoints = parseInt(document.getElementById('maxPointsBox').value);
for(i=1; i minPoints) && (points < maxPoints))
{doSelect();
}
}
}
/* Returns specific unit type's speed value */
function speed(troop_type)
{return troop_xml.getElementsByTagName(troop_type)[0].getElementsByTagName("speed")[0].firstChild.nodeValue;
}
/* Loads the xml data from the world server */
function fnGetConfig(conf, err)
{var oRequest = new XMLHttpRequest();
var sURL = "http://" + window.location.hostname + "/interface.php?func=get_" + conf;
oRequest.open("GET", sURL, 0);
oRequest.send(null);
if (oRequest.status == 200) return oRequest.responseXML;
alert("Error executing XMLHttpRequest call to get " + err + "!");
}
troop_xml = fnGetConfig("unit_info", "Troop Speed Data");
function byFields()
{for (i = 1;i < rows.length;i++)
{cells = rows[i].getElementsByTagName("td");
box = document.getElementById("includeCoordsInputBox_" + i);
coords = cells[1].innerHTML;
if (repRad.checked == true)
{box.checked = false;
}
if((getDistance(cenX.value + "|" + cenY.value, coords)) < maxF.value)
{doSelect();
}
}
}
function invertAll()
{for (i = 1;i < rows.length;i++)
{box = document.getElementById("includeCoordsInputBox_" + i);
if (box.checked == true)
{box.checked = false;
}
else if (box.checked == false)
{box.checked = true;
}
}
}
function selectZone()
{for (i = 1;i < rows.length;i++)
{cells = rows[i].getElementsByTagName("td");
box = document.getElementById("includeCoordsInputBox_" + i);
coords = cells[1].innerHTML.split( "|");
if (repRad.checked == true)
{box.checked = false;
}
if ((parseInt(coords[0]) > minX.value) && (parseInt(coords[0]) < maxX.value) && (parseInt(coords[1]) > minY.value) && (parseInt(coords[1]) < maxY.value))
{doSelect();
}
}
}
function byTravelTime()
{centralCoords = cenX1.value + "|" + cenY1.value;
seconds = Math.round(parseInt(maxH.value * 3600) + parseInt(maxM.value * 60) + parseInt(maxS.value));
troopType = TTB.value;
spd = Math.round(speed(troopType));
for (i = 1;i < rows.length;i++)
{cells = rows[i].getElementsByTagName("td");
coords = cells[1].innerHTML;
distance1 = getDistance(centralCoords,coords);
travelTime = spd * distance1 * 60;
box = document.getElementById("includeCoordsInputBox_" + i);
if (repRad.checked == true)
{box.checked = false;
}
if (seconds > travelTime)
{doSelect();
}
}
}
function selectByK()
{K = inpK.value;
if (K.length > 1)
{K = K.split("");
}
else
{K = ('0' + K.value).split("");
}
minX1 = (parseInt(K[1]) * 100) -1;
minY1 = (parseInt(K[0]) * 100) -1;
maxX1 = (parseInt(K[1]) +1) * 100;
maxY1 = (parseInt(K[0]) +1) * 100;
for (i = 1;i < rows.length;i++)
{cells = rows[i].getElementsByTagName("td");
box = document.getElementById("includeCoordsInputBox_" + i);
coords = cells[1].innerHTML.split( "|");
if (repRad.checked == true)
{box.checked = false;
}
if ((parseInt(coords[0]) > minX1) && (parseInt(coords[0]) < maxX1) && (parseInt(coords[1]) > minY1) && (parseInt(coords[1]) < maxY1))
{doSelect();
}
}
}
function resetList()
{confirmReset = confirm("Are you sure you want to reset the values?");
if (confirmReset)
{for (i = 1;i < rows.length;i++)
{box = document.getElementById("includeCoordsInputBox_" + i);
box.checked = false;
}
minX.value = 000;
minY.value = 000;
maxX.value = 999;
maxY.value = 999;
}
}
function byText()
{matchText = txtBox.value.toLowerCase();
for (i = 1;i < rows.length;i++)
{cells = rows[i].getElementsByTagName("td");
box = document.getElementById("includeCoordsInputBox_" + i);
txt = $(cells[0]).text().toLowerCase();
if (repRad.checked == true)
{box.checked = false;
}
if(txt.match(matchText))
{doSelect();
}
}
}
function doSelect()
{if((addRad.checked == true) | (repRad.checked == true))
{box.checked = true;
}
else if (remRad.checked == true)
{box.checked = false;
}
else
{alert("ERROR: Selection mode not set");
fail();
}
}
function outputList()
{kount = 0;
clist = '';
if(sRad.checked == true){listFormat = sRad.value;}
if(bRad.checked == true){listFormat = bRad.value;}
if(listFormat == "script format")
{for (i = 1;i < rows.length;i++)
{box = document.getElementById("includeCoordsInputBox_" + i);
if (box.checked == true)
{cells = rows[i].getElementsByTagName("td");
clist += cells[1].innerHTML + " ";
}
}
}
else if(listFormat == "bbcode format")
{for (i = 1;i < rows.length;i++)
{box = document.getElementById("includeCoordsInputBox_" + i);
if (box.checked == true)
{kount = kount+1;
cells = rows[i].getElementsByTagName("td");
clist += "[b]"+kount+":[/b] [player]"+targetPlayer+"[/player]\t-\t[coord]" + cells[1].innerHTML + "[/coord]";
if(pBox.checked == true)
{clist += "\t - " + $(cells[2]).text() +"\n";
}
clist += "\n";
}
}
}
alert(clist);
}
function outputExperimentalList()
{kount = 0;
clist = '';
for (i = 1;i < rows.length;i++)
{box = document.getElementById("includeCoordsInputBox_" + i);
if (box.checked == true)
{kount = kount+1;
cells = rows[i].getElementsByTagName("td");
villageLink = cells[0].getElementsByTagName('a')[0];
coords = $(cells[1]).text();
points = $(cells[2]).text();
points = points.replace(".","");
clist += exFormBox.value.replace(/{COORDS}/gi,coords).replace(/{TARGET PLAYER}/gi,targetPlayer).replace(/{VILLAGE LINK}/gi,villageLink).replace(/{POINTS}/gi,points).replace(/{DV}/gi,"\t-\t").replace(/{NL}/gi,"\n").replace(/{COUNTER}/ig,kount);
}
}
alert(clist);
}