// ==UserScript==
// @name CS2 ion Trail Time to Life Info
// @namespace CS
// @description adds Max TTL for Ion Trails, and detailed info in a popupbox on hovering it to the scan ion trail page.
// @include http://*.chosenspace.com/index.php?go=scan_trails*
// ==/UserScript==
function isOdd(num) { return num % 2;}
var trail = new Array();
var iontags,ionout,tionout,trail,newinner, rightgrab, l;
var righttag = document.evaluate("//td[@align='RIGHT']", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
for(var i = 0;i < righttag.snapshotLength; i++) {
if (!isOdd(i)) {
l = i/2;
iontags = document.evaluate("//td [contains (., '(') and (contains(.,'.')) and not (contains(.,'CE')) and not (contains(.,'-'))] ", document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
ionout=iontags.snapshotItem(l);
tionout = ionout.textContent.split('.')[1].split(')')[0];
trail[l]=parseInt(tionout);
rightgrab=righttag.snapshotItem(i);
if(rightgrab.innerHTML=='-') {
(function (i)
{
GM_xmlhttpRequest({
method: "GET",
url: "http://black-beach.net/db/inject/shipidinject.php?trail=" + trail[l],
headers: {
"Content-Type": "application/x-www-form-urlencoded"
},
onload: function(x) {
if (x.responseText!=",") {
var rshipid=x.responseText.split(",")[0];
var rdesign=x.responseText.split(",")[1];
righttag.snapshotItem(i).innerHTML = "" + rdesign + "";
}
}
});
}) (i);
}
}
}
function roundNumber(num, dec) {
var result = String(Math.floor(num*Math.pow(10,dec))/Math.pow(10,dec));
if(result.indexOf('.')<0) {result+= '.';}
while(result.length- result.indexOf('.')<=dec) {result+= '0';}
return result;
}
function DaysBetweenDateAndNow(yr, mo, dy, hr, mi, se)
{
// Determine the milliseconds per day.
var MinMilli = 1000 * 60
var HrMilli = MinMilli * 60
var DyMilli = HrMilli * 24
// Determine today's UTC year, month, and day.
var d = new Date();
var yeartoday = d.getUTCFullYear();
var monthtoday = d.getUTCMonth();
var dayofmonthtoday = d.getUTCDate();
var houroftoday = d.getUTCHours();
var minuteoftoday = d.getUTCMinutes();
var secondoftoday = d.getUTCSeconds();
// Get the milliseconds since 1/1/1970 UTC.
var t1 = Date.UTC(yr, mo - 1, dy, hr, mi, se)
var t2 = Date.UTC(yeartoday, monthtoday, dayofmonthtoday, houroftoday, minuteoftoday, secondoftoday);
// Determine the difference in minutes.
var mins = (t2 - t1) / MinMilli;
return(mins);
}
var currentce = roundNumber(DaysBetweenDateAndNow(2006,03,16,17,27,20)/100,2);
var cetimeandtext= "Year " + currentce + " CE";
alltags=document.evaluate("//input[@value='Sector']", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
thistag=alltags.snapshotItem(0);
if(thistag){
function striptonum(thisstring){
thisstring+="";
return thisstring.replace(/\D/g,'');
}
alltags=document.evaluate("//text()[contains(.,' CE')]", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
thistag=alltags.snapshotItem(0);
var rece=/year\s.*\sce/i;
var csoffsettime=1142530020;
var cenow=(((striptonum(rece.exec(cetimeandtext)))*60)+csoffsettime)*1000;
alltags=document.evaluate("//a[contains(@href,'view=sector')]",document,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null);
at=alltags.snapshotLength;
var retime=/\d{1,}\.\d{2,2}\sce/i;
var retrail=/\d*\./;
var date=new Date();
function checkTime(i){if(i<10)i="0"+i;return i;}
var scaninfo={
'0':{'n':"0.1",'t':90},
'1':{'n':"0.2",'t':80},
'2':{'n':"0.3",'t':70},
'3':{'n':"0.4",'t':60},
'4':{'n':"0.5",'t':50},
'5':{'n':"0.6",'t':40},
'6':{'n':"0.7",'t':30},
'7':{'n':"0.8",'t':20},
'8':{'n':"0.9",'t':10},
'9':{'n':"1.0",'t':0}
}
var trailstart,trailduration,trailend,line,newdiv,newspan,trailcalcend,scann,scant;
for(var i=0;i=0;k--){
scann=scaninfo[k]['n'];
scant=scaninfo[k]['t'];
trailscanend=(trailstart+trailduration)-(scant*60000);
date.setTime(trailscanend);
if(k==9)newspan.appendChild(document.createTextNode(' [end '+(Math.floor(((trailscanend/1000)-csoffsettime)/60)/100)+' CE]'));
newspan.appendChild(newpit(scann+'\u00A0Scanner:\u00A0'+(trailcalcend-scant)+'\u00A0min\u00A0@\u00A0'+checkTime(date.getDate())+'.'+checkTime(date.getMonth()+1)+'.'+checkTime(date.getFullYear())+'\u00A0'+checkTime(date.getHours())+':'+checkTime(date.getMinutes())));
}
newdiv.appendChild(newspan);
//main div injection
line.children[5].firstChild.style.display='none';
line.children[5].appendChild(newdiv);
}
}