Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ==UserScript==
- // @name FPL get team info
- // @namespace nickchild
- // @include https://fantasy.premierleague.com/a/leagues/standings/*
- // @version 2.1.1
- // @grant GM_getValue
- // @grant GM_setValue
- // ==/UserScript==
- var stIsIE = /*@cc_on!@*/false;
- var mytimeout;
- sorttable = {
- init: function() {
- // quit if this function has already been called
- if (arguments.callee.done) return;
- // flag this function so we don't do the same thing twice
- arguments.callee.done = true;
- // kill the timer
- if (_timer) clearInterval(_timer);
- if (!document.createElement || !document.getElementsByTagName) return;
- sorttable.DATE_RE = /^(\d\d?)[\/\.-](\d\d?)[\/\.-]((\d\d)?\d\d)$/;
- forEach(document.getElementsByTagName('table'), function(table) {
- if (table.className.search(/\bsortable\b/) != -1) {
- sorttable.makeSortable(table);
- }
- });
- },
- makeSortable: function(table) {
- if (table.getElementsByTagName('thead').length == 0) {
- // table doesn't have a tHead. Since it should have, create one and
- // put the first table row in it.
- the = document.createElement('thead');
- the.appendChild(table.rows[0]);
- table.insertBefore(the,table.firstChild);
- }
- // Safari doesn't support table.tHead, sigh
- if (table.tHead == null) table.tHead = table.getElementsByTagName('thead')[0];
- if (table.tHead.rows.length != 1) return; // can't cope with two header rows
- // Sorttable v1 put rows with a class of "sortbottom" at the bottom (as
- // "total" rows, for example). This is B&R, since what you're supposed
- // to do is put them in a tfoot. So, if there are sortbottom rows,
- // for backwards compatibility, move them to tfoot (creating it if needed).
- sortbottomrows = [];
- for (var i=0; i<table.rows.length; i++) {
- if (table.rows[i].className.search(/\bsortbottom\b/) != -1) {
- sortbottomrows[sortbottomrows.length] = table.rows[i];
- }
- }
- if (sortbottomrows) {
- if (table.tFoot == null) {
- // table doesn't have a tfoot. Create one.
- tfo = document.createElement('tfoot');
- table.appendChild(tfo);
- }
- for (var i=0; i<sortbottomrows.length; i++) {
- tfo.appendChild(sortbottomrows[i]);
- }
- delete sortbottomrows;
- }
- // work through each column and calculate its type
- headrow = table.tHead.rows[0].cells;
- for (var i=0; i<headrow.length; i++) {
- // manually override the type with a sorttable_type attribute
- if (!headrow[i].className.match(/\bsorttable_nosort\b/)) { // skip this col
- mtch = headrow[i].className.match(/\bsorttable_([a-z0-9]+)\b/);
- if (mtch) { override = mtch[1]; }
- if (mtch && typeof sorttable["sort_"+override] == 'function') {
- headrow[i].sorttable_sortfunction = sorttable["sort_"+override];
- } else {
- headrow[i].sorttable_sortfunction = sorttable.guessType(table,i);
- }
- // make it clickable to sort
- headrow[i].sorttable_columnindex = i;
- headrow[i].sorttable_tbody = table.tBodies[0];
- dean_addEvent(headrow[i],"click", sorttable.innerSortFunction = function(e) {
- if (this.className.search(/\bsorttable_sorted\b/) != -1) {
- // if we're already sorted by this column, just
- // reverse the table, which is quicker
- sorttable.reverse(this.sorttable_tbody);
- this.className = this.className.replace('sorttable_sorted',
- 'sorttable_sorted_reverse');
- this.removeChild(document.getElementById('sorttable_sortfwdind'));
- sortrevind = document.createElement('span');
- sortrevind.id = "sorttable_sortrevind";
- sortrevind.innerHTML = stIsIE ? ' <font face="webdings">5</font>' : ' ▴';
- this.appendChild(sortrevind);
- return;
- }
- if (this.className.search(/\bsorttable_sorted_reverse\b/) != -1) {
- // if we're already sorted by this column in reverse, just
- // re-reverse the table, which is quicker
- sorttable.reverse(this.sorttable_tbody);
- this.className = this.className.replace('sorttable_sorted_reverse',
- 'sorttable_sorted');
- this.removeChild(document.getElementById('sorttable_sortrevind'));
- sortfwdind = document.createElement('span');
- sortfwdind.id = "sorttable_sortfwdind";
- sortfwdind.innerHTML = stIsIE ? ' <font face="webdings">6</font>' : ' ▾';
- this.appendChild(sortfwdind);
- return;
- }
- // remove sorttable_sorted classes
- theadrow = this.parentNode;
- forEach(theadrow.childNodes, function(cell) {
- if (cell.nodeType == 1) { // an element
- cell.className = cell.className.replace('sorttable_sorted_reverse','');
- cell.className = cell.className.replace('sorttable_sorted','');
- }
- });
- sortfwdind = document.getElementById('sorttable_sortfwdind');
- if (sortfwdind) { sortfwdind.parentNode.removeChild(sortfwdind); }
- sortrevind = document.getElementById('sorttable_sortrevind');
- if (sortrevind) { sortrevind.parentNode.removeChild(sortrevind); }
- this.className += ' sorttable_sorted';
- sortfwdind = document.createElement('span');
- sortfwdind.id = "sorttable_sortfwdind";
- sortfwdind.innerHTML = stIsIE ? ' <font face="webdings">6</font>' : ' ▾';
- this.appendChild(sortfwdind);
- // build an array to sort. This is a Schwartzian transform thing,
- // i.e., we "decorate" each row with the actual sort key,
- // sort based on the sort keys, and then put the rows back in order
- // which is a lot faster because you only do getInnerText once per row
- row_array = [];
- col = this.sorttable_columnindex;
- rows = this.sorttable_tbody.rows;
- for (var j=0; j<rows.length; j++) {
- row_array[row_array.length] = [sorttable.getInnerText(rows[j].cells[col]), rows[j]];
- }
- /* If you want a stable sort, uncomment the following line */
- //sorttable.shaker_sort(row_array, this.sorttable_sortfunction);
- /* and comment out this one */
- row_array.sort(this.sorttable_sortfunction);
- tb = this.sorttable_tbody;
- for (var j=0; j<row_array.length; j++) {
- tb.appendChild(row_array[j][1]);
- }
- delete row_array;
- });
- }
- }
- },
- guessType: function(table, column) {
- // guess the type of a column based on its first non-blank row
- sortfn = sorttable.sort_alpha;
- for (var i=0; i<table.tBodies[0].rows.length; i++) {
- text = sorttable.getInnerText(table.tBodies[0].rows[i].cells[column]);
- if (text != '') {
- if (text.match(/^-?[£$¤]?[\d,.]+%?$/)) {
- return sorttable.sort_numeric;
- }
- // check for a date: dd/mm/yyyy or dd/mm/yy
- // can have / or . or - as separator
- // can be mm/dd as well
- possdate = text.match(sorttable.DATE_RE);
- if (possdate) {
- // looks like a date
- first = parseInt(possdate[1]);
- second = parseInt(possdate[2]);
- if (first > 12) {
- // definitely dd/mm
- return sorttable.sort_ddmm;
- } else if (second > 12) {
- return sorttable.sort_mmdd;
- } else {
- // looks like a date, but we can't tell which, so assume
- // that it's dd/mm (English imperialism!) and keep looking
- sortfn = sorttable.sort_ddmm;
- }
- }
- }
- }
- return sortfn;
- },
- getInnerText: function(node) {
- // gets the text we want to use for sorting for a cell.
- // strips leading and trailing whitespace.
- // this is *not* a generic getInnerText function; it's special to sorttable.
- // for example, you can override the cell text with a customkey attribute.
- // it also gets .value for <input> fields.
- if (!node) return "";
- hasInputs = (typeof node.getElementsByTagName == 'function') &&
- node.getElementsByTagName('input').length;
- if (node.getAttribute("sorttable_customkey") != null) {
- return node.getAttribute("sorttable_customkey");
- }
- else if (typeof node.textContent != 'undefined' && !hasInputs) {
- return node.textContent.replace(/^\s+|\s+$/g, '');
- }
- else if (typeof node.innerText != 'undefined' && !hasInputs) {
- return node.innerText.replace(/^\s+|\s+$/g, '');
- }
- else if (typeof node.text != 'undefined' && !hasInputs) {
- return node.text.replace(/^\s+|\s+$/g, '');
- }
- else {
- switch (node.nodeType) {
- case 3:
- if (node.nodeName.toLowerCase() == 'input') {
- return node.value.replace(/^\s+|\s+$/g, '');
- }
- case 4:
- return node.nodeValue.replace(/^\s+|\s+$/g, '');
- break;
- case 1:
- case 11:
- var innerText = '';
- for (var i = 0; i < node.childNodes.length; i++) {
- innerText += sorttable.getInnerText(node.childNodes[i]);
- }
- return innerText.replace(/^\s+|\s+$/g, '');
- break;
- default:
- return '';
- }
- }
- },
- reverse: function(tbody) {
- // reverse the rows in a tbody
- newrows = [];
- for (var i=0; i<tbody.rows.length; i++) {
- newrows[newrows.length] = tbody.rows[i];
- }
- for (var i=newrows.length-1; i>=0; i--) {
- tbody.appendChild(newrows[i]);
- }
- delete newrows;
- },
- /* sort functions
- each sort function takes two parameters, a and b
- you are comparing a[0] and b[0] */
- sort_numeric: function(a,b) {
- aa = parseFloat(a[0].replace(/[^0-9.-]/g,''));
- if (isNaN(aa)) aa = 0;
- bb = parseFloat(b[0].replace(/[^0-9.-]/g,''));
- if (isNaN(bb)) bb = 0;
- return bb-aa;
- },
- sort_alpha: function(a,b) {
- if (a[0]==b[0]) return 0;
- if (a[0]<b[0]) return -1;
- return 1;
- },
- sort_ddmm: function(a,b) {
- mtch = a[0].match(sorttable.DATE_RE);
- y = mtch[3]; m = mtch[2]; d = mtch[1];
- if (m.length == 1) m = '0'+m;
- if (d.length == 1) d = '0'+d;
- dt1 = y+m+d;
- mtch = b[0].match(sorttable.DATE_RE);
- y = mtch[3]; m = mtch[2]; d = mtch[1];
- if (m.length == 1) m = '0'+m;
- if (d.length == 1) d = '0'+d;
- dt2 = y+m+d;
- if (dt1==dt2) return 0;
- if (dt1<dt2) return -1;
- return 1;
- },
- sort_mmdd: function(a,b) {
- mtch = a[0].match(sorttable.DATE_RE);
- y = mtch[3]; d = mtch[2]; m = mtch[1];
- if (m.length == 1) m = '0'+m;
- if (d.length == 1) d = '0'+d;
- dt1 = y+m+d;
- mtch = b[0].match(sorttable.DATE_RE);
- y = mtch[3]; d = mtch[2]; m = mtch[1];
- if (m.length == 1) m = '0'+m;
- if (d.length == 1) d = '0'+d;
- dt2 = y+m+d;
- if (dt1==dt2) return 0;
- if (dt1<dt2) return -1;
- return 1;
- },
- shaker_sort: function(list, comp_func) {
- // A stable sort function to allow multi-level sorting of data
- // see: http://en.wikipedia.org/wiki/Cocktail_sort
- // thanks to Joseph Nahmias
- var b = 0;
- var t = list.length - 1;
- var swap = true;
- while(swap) {
- swap = false;
- for(var i = b; i < t; ++i) {
- if ( comp_func(list[i], list[i+1]) > 0 ) {
- var q = list[i]; list[i] = list[i+1]; list[i+1] = q;
- swap = true;
- }
- } // for
- t--;
- if (!swap) break;
- for(var i = t; i > b; --i) {
- if ( comp_func(list[i], list[i-1]) < 0 ) {
- var q = list[i]; list[i] = list[i-1]; list[i-1] = q;
- swap = true;
- }
- } // for
- b++;
- } // while(swap)
- }
- };
- /*
- SortTable
- version 2
- 7th April 2007
- Stuart Langridge, http://www.kryogenix.org/code/browser/sorttable/
- Instructions:
- Download this file
- Add <script src="sorttable.js"></script> to your HTML
- Add class="sortable" to any table you'd like to make sortable
- Click on the headers to sort
- Thanks to many, many people for contributions and suggestions.
- Licenced as X11: http://www.kryogenix.org/code/browser/licence.html
- This basically means: do what you want with it.
- */
- /* ******************************************************************
- Supporting functions: bundled here to avoid depending on a library
- ****************************************************************** */
- // Dean Edwards/Matthias Miller/John Resig
- /* for Mozilla/Opera9 */
- if (document.addEventListener) {
- document.addEventListener("DOMContentLoaded", sorttable.init, false);
- }
- /* for Internet Explorer */
- /*@cc_on @*/
- /*@if (@_win32)
- document.write("<script id=__ie_onload defer src=javascript:void(0)><\/script>");
- var script = document.getElementById("__ie_onload");
- script.onreadystatechange = function() {
- if (this.readyState == "complete") {
- sorttable.init(); // call the onload handler
- }
- };
- /*@end @*/
- /* for Safari */
- if (/WebKit/i.test(navigator.userAgent)) { // sniff
- var _timer = setInterval(function() {
- if (/loaded|complete/.test(document.readyState)) {
- sorttable.init(); // call the onload handler
- }
- }, 10);
- }
- /* for other browsers */
- window.onload = sorttable.init;
- // written by Dean Edwards, 2005
- // with input from Tino Zijdel, Matthias Miller, Diego Perini
- // http://dean.edwards.name/weblog/2005/10/add-event/
- function dean_addEvent(element, type, handler) {
- if (element.addEventListener) {
- element.addEventListener(type, handler, false);
- } else {
- // assign each event handler a unique ID
- if (!handler.$$guid) handler.$$guid = dean_addEvent.guid++;
- // create a hash table of event types for the element
- if (!element.events) element.events = {};
- // create a hash table of event handlers for each element/event pair
- var handlers = element.events[type];
- if (!handlers) {
- handlers = element.events[type] = {};
- // store the existing event handler (if there is one)
- if (element["on" + type]) {
- handlers[0] = element["on" + type];
- }
- }
- // store the event handler in the hash table
- handlers[handler.$$guid] = handler;
- // assign a global event handler to do all the work
- element["on" + type] = handleEvent;
- }
- };
- // a counter used to create unique IDs
- dean_addEvent.guid = 1;
- function removeEvent(element, type, handler) {
- if (element.removeEventListener) {
- element.removeEventListener(type, handler, false);
- } else {
- // delete the event handler from the hash table
- if (element.events && element.events[type]) {
- delete element.events[type][handler.$$guid];
- }
- }
- };
- function handleEvent(event) {
- var returnValue = true;
- // grab the event object (IE uses a global event object)
- event = event || fixEvent(((this.ownerDocument || this.document || this).parentWindow || window).event);
- // get a reference to the hash table of event handlers
- var handlers = this.events[event.type];
- // execute each event handler
- for (var i in handlers) {
- this.$$handleEvent = handlers[i];
- if (this.$$handleEvent(event) === false) {
- returnValue = false;
- }
- }
- return returnValue;
- };
- function fixEvent(event) {
- // add W3C standard event methods
- event.preventDefault = fixEvent.preventDefault;
- event.stopPropagation = fixEvent.stopPropagation;
- return event;
- };
- fixEvent.preventDefault = function() {
- this.returnValue = false;
- };
- fixEvent.stopPropagation = function() {
- this.cancelBubble = true;
- };
- // Dean's forEach: http://dean.edwards.name/base/forEach.js
- /*
- forEach, version 1.0
- Copyright 2006, Dean Edwards
- License: http://www.opensource.org/licenses/mit-license.php
- */
- // array-like enumeration
- if (!Array.forEach) { // mozilla already supports this
- Array.forEach = function(array, block, context) {
- for (var i = 0; i < array.length; i++) {
- block.call(context, array[i], i, array);
- }
- };
- }
- // generic enumeration
- Function.prototype.forEach = function(object, block, context) {
- for (var key in object) {
- if (typeof this.prototype[key] == "undefined") {
- block.call(context, object[key], key, object);
- }
- }
- };
- // character enumeration
- String.forEach = function(string, block, context) {
- Array.forEach(string.split(""), function(chr, index) {
- block.call(context, chr, index, string);
- });
- };
- // globally resolve forEach enumeration
- var forEach = function(object, block, context) {
- if (object) {
- var resolve = Object; // default
- if (object instanceof Function) {
- // functions have a "length" property
- resolve = Function;
- } else if (object.forEach instanceof Function) {
- // the object implements a custom forEach method so use that
- object.forEach(block, context);
- return;
- } else if (typeof object == "string") {
- // the object is a string
- resolve = String;
- } else if (typeof object.length == "number") {
- // the object is array-like
- resolve = Array;
- }
- resolve.forEach(object, block, context);
- }
- };
- //sleep function
- function sleep(miliseconds) {
- var currentTime = new Date().getTime();
- while (currentTime + miliseconds >= new Date().getTime()) {
- }
- };
- function wait(ms){
- var start = new Date().getTime();
- var end = start;
- while(end < start + ms) {
- end = new Date().getTime();
- }
- };
- //get gameweek id
- links = document.getElementsByTagName("a");
- gwnum = 0;
- for(i=0; i<links.length; i++) {
- if(links[i].innerHTML == "Points") {
- tmpurl = links[i].href;
- tmparr = tmpurl.split("/");
- gwnum = tmparr[tmparr.length-1];
- break;
- }
- }
- config_items = new Array("teamval", "bankval", "totalval", "tt", "gwt", "hitpts", "wc", "chips", "captain", "h2h", "livepoints", "livetotal", "wide", "played", "bonus", "autosubs");
- config_values = {};
- config_strs = {};
- config_strs["teamval"] = "Team value";
- config_strs["bankval"] = "Bank value";
- config_strs["totalval"] = "Total value";
- config_strs["tt"] = "Total transfers";
- config_strs["gwt"] = "Gameweek transfers";
- config_strs["wc"] = "Wildcard";
- config_strs["chips"] = "Chips";
- config_strs["captain"] = "Captain";
- config_strs["h2h"] = "H2H league position";
- config_strs["livepoints"] = "Live gameweek points";
- config_strs["livetotal"] = "Live total points";
- config_strs["wide"] = "Extra wide";
- config_strs["played"] = "Playing stats";
- config_strs["hitpts"] = "Transfer points hit";
- config_strs["bonus"] = "Bonus points";
- config_strs["autosubs"] = "Automatic subs points";
- for(i=0; i<config_items.length; i++) {
- c = config_items[i];
- tmpval = GM_getValue(c);
- if(tmpval == undefined) {
- GM_setValue(c, 1);
- tmpval = 1;
- }
- config_values[c] = tmpval;
- }
- optionWidth = "220px";
- if(config_values["wide"] == 1) {
- refreshWidth = "1150px";
- } else {
- refreshWidth = "1150px";
- }
- function GetXmlHttpObject()
- {
- var xmlHttp=null;
- try
- {
- // Firefox, Opera 8.0+, Safari
- xmlHttp=new XMLHttpRequest();
- }
- catch (e)
- {
- // Internet Explorer
- try
- {
- xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
- }
- catch (e)
- {
- xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
- }
- }
- return xmlHttp;
- }
- function numberWithCommas(x) {
- var parts = x.toString().split(".");
- parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ",");
- return parts.join(".");
- }
- //var window.leagueName;
- function getData() {
- //alert('go');
- if(!document.getElementById("ismr-classic-standings")) {
- setTimeout(function(){
- getData();
- }, 2000);
- return;
- }
- // get data from fixtures
- url = "https://fantasy.premierleague.com/drf/fixtures/?event="+gwnum;
- var xmlHttp=GetXmlHttpObject();
- xmlHttp.onreadystatechange=stateChangedFixturesEvent;
- xmlHttp.open("GET",url,true);
- xmlHttp.send(null);
- standingsDiv = document.getElementById("ismr-classic-standings");
- //alert(standingsDiv.innerHTML);
- tables = standingsDiv.getElementsByTagName("table");
- //alert(tables.length);
- leagueNameDiv = document.getElementById("ismr-main");
- leagueNameH2 = leagueNameDiv.getElementsByTagName("h2");
- window.leagueName = leagueNameH2[0].innerHTML;
- table = tables[0];
- trs = table.getElementsByTagName("tr");
- for(j=0; j<trs.length; j++) {
- ancs = trs[j].getElementsByTagName("a");
- tds = trs[j].getElementsByTagName("td");
- if(ancs.length > 0) {
- anc = tds[1].getElementsByTagName("a");
- arr1 = anc[0].href.split("team/");
- teamID = arr1[1];
- idpn = "row" + teamID;
- trs[j].id = idpn;
- rowstr = "";
- tds[2].style.position = "relative";
- tds[2].innerHTML = tds[2].innerHTML + "<div id='squaddiv"+teamID+"' style='display: none; background-color: #fff; color: #000; padding-left: 20px; font-size: 8pt; position: absolute; left: 0; top: 0; width: "+refreshWidth+"; height: 48px; line-height:48px'><div>";
- tds[0].innerHTML = tds[0].innerHTML + "<a style='padding-left: 10px' title='Show Team' href='javascript:void(0)'; onclick='if(document.getElementById(\"squaddiv"+teamID+"\").style.display != \"block\"){document.getElementById(\"squaddiv"+teamID+"\").style.display = \"block\"}else{document.getElementById(\"squaddiv"+teamID+"\").style.display = \"none\"}'>T</a>";
- if(config_values["teamval"] == 1) {
- rowstr += "<td id='teamval"+teamID+"' align='right' nowrap> </td>";
- }
- if(config_values["bankval"] == 1) {
- rowstr += "<td id='bankval"+teamID+"' align='right' nowrap> </td>";
- }
- if(config_values["totalval"] == 1) {
- rowstr += "<td id='totalval"+teamID+"' align='right' nowrap> </td>";
- }
- if(config_values["tt"] == 1) {
- rowstr += "<td id='tt"+teamID+"'> </td>";
- }
- if(config_values["gwt"] == 1) {
- rowstr += "<td id='gwt"+teamID+"'> </td>";
- }
- if(config_values["hitpts"] == 1) {
- rowstr += "<td id='hitpts"+teamID+"'> </td>";
- }
- if(config_values["wc"] == 1) {
- rowstr += "<td id='wc"+teamID+"' align='center'> </td>";
- }
- if(config_values["chips"] == 1) {
- rowstr += "<td id='chips"+teamID+"' align='center'> </td>";
- }
- if(config_values["captain"] == 1) {
- rowstr += "<td id='captain"+teamID+"'> </td>";
- }
- if(config_values["h2h"] == 1) {
- rowstr += "<td id='h2h"+teamID+"'><span style='display: none'>- </span> </td>";
- }
- if(config_values["livepoints"] == 1) {
- rowstr += "<td id='livepoints"+teamID+"'> </td>";
- }
- if(config_values["livetotal"] == 1) {
- rowstr += "<td id='livetotal"+teamID+"' nowrap align='right'> </td>";
- }
- if(config_values["played"] == 1) {
- rowstr += "<td id='played_p"+teamID+"' title=' ' nowrap> </td>";
- rowstr += "<td id='played_tp"+teamID+"' title=' ' nowrap> </td>";
- rowstr += "<td id='played_dnp"+teamID+"' title=' ' nowrap> </td>";
- }
- if(config_values["bonus"] == 1) {
- rowstr += "<td id='bonus"+teamID+"' title=' ' nowrap> </td>";
- }
- if(config_values["autosubs"] == 1) {
- rowstr += "<td id='autosubs"+teamID+"' title=' ' nowrap> </td>";
- }
- document.getElementById("row"+teamID).innerHTML = document.getElementById("row"+teamID).innerHTML + rowstr;
- url = "https://fantasy.premierleague.com/drf/entry/"+teamID;
- var xmlHttp=GetXmlHttpObject();
- xmlHttp.onreadystatechange=stateChangedEntry;
- xmlHttp.open("GET",url,true);
- xmlHttp.send(null);
- //sleep(50);
- //wait(50);
- url = "https://fantasy.premierleague.com/drf/entry/"+teamID+"/event/"+gwnum+"/picks";
- var xmlHttp=GetXmlHttpObject();
- xmlHttp.onreadystatechange=stateChangedEvent;
- xmlHttp.open("GET",url,true);
- xmlHttp.send(null);
- url = "https://fantasy.premierleague.com/drf/entry/"+teamID+"/history";
- var xmlHttp=GetXmlHttpObject();
- xmlHttp.onreadystatechange=stateChangedHistory;
- xmlHttp.open("GET",url,true);
- xmlHttp.send(null);
- url = "https://fantasy.premierleague.com/drf/entry/"+teamID+"/transfers";
- var xmlHttp=GetXmlHttpObject();
- xmlHttp.onreadystatechange=stateChangedTransfers;
- xmlHttp.open("GET",url,true);
- xmlHttp.send(null);
- } else if(j==0) {
- headstr = "";
- if(config_values["teamval"] == 1) {
- headstr += "<th title='Team value'>Value</th>";
- }
- if(config_values["bankval"] == 1) {
- headstr += "<th title='Bank value'>Bank</th>";
- }
- if(config_values["totalval"] == 1) {
- headstr += "<th title='Total value'>Total</th>";
- }
- if(config_values["tt"] == 1) {
- headstr += "<th><abbr title='Total transfers'>TT</abbr></th>";
- }
- if(config_values["gwt"] == 1) {
- headstr += "<th><abbr title='Gameweek transfers'>GWT</abbr></th>";
- }
- if(config_values["hitpts"] == 1) {
- headstr += "<th><abbr title='Transfer points hit'>TPH</abbr></th>";
- }
- if(config_values["wc"] == 1) {
- headstr += "<th><abbr title='Wildcard available'>WC</abbr></th>";
- }
- if(config_values["chips"] == 1) {
- headstr += "<th><abbr title='Chips played'>Chips</abbr></th>";
- }
- if(config_values["captain"] == 1) {
- headstr += "<th>Captain</th>";
- }
- if(config_values["h2h"] == 1) {
- headstr += "<th><abbr title='Associated H2H league position'>H2H</abbr></th>";
- }
- if(config_values["livepoints"] == 1) {
- headstr += "<th><abbr title='Live gameweek points'>Live</abbr></th>";
- }
- if(config_values["livetotal"] == 1) {
- headstr += "<th><abbr title='Live points total'>Total</abbr></th>";
- }
- if(config_values["played"] == 1) {
- headstr += "<th><abbr title='Players played'>P</abbr></th>";
- headstr += "<th><abbr title='Players to play'>TP</abbr></th>";
- headstr += "<th><abbr title='Players who did not play'>DNP</abbr></th>";
- }
- if(config_values["bonus"] == 1) {
- headstr += "<th><abbr title='Live Bonus points (today's matches only)'>BAPS</abbr></th>";
- }
- if(config_values["autosubs"] == 1) {
- headstr += "<th><abbr title='Automatic subs points'>Subs</abbr></th>";
- }
- ths = trs[j].getElementsByTagName("th");
- ths[0].className = "sorttable_nosort";
- ths[0].innerHTML = '<abbr onclick="divs=document.getElementsByTagName(\'div\');onoff=\'\';for(i=0;i<divs.length;i++){tmpid=divs[i].id;if(tmpid.lastIndexOf(\'squaddiv\', 0) === 0){if(onoff==\'\'){if(divs[i].style.display == \'none\'){onoff=\'on\'}else{onoff=\'off\'}}if(onoff==\'on\'){divs[i].style.display=\'\'}else{divs[i].style.display=\'none\'}}}" title="Toggle teams">T</abbr>';
- ths[1].className = "sorttable_nosort";
- trs[j].innerHTML = trs[j].innerHTML + headstr;
- }
- }
- table.innerHTML = table.innerHTML + "<tr><td colspan=21><div id='configrow'></div></td></tr>";
- configrow = document.getElementById("configrow");
- for(i=0; i<config_items.length; i++) {
- c = config_items[i];
- //add captain config
- var div = document.createElement('div');
- div.style.display = "inline-block";
- div.style.float = "left";
- div.style.width = optionWidth;
- var span = document.createElement('span');
- span.appendChild(document.createTextNode(config_strs[c]+': '));
- div.appendChild(span);
- var a = document.createElement('a');
- if(config_values[c] == 0) {
- a.style.color = "#bbb";
- }
- a.id = c+'_on';
- a.appendChild(document.createTextNode('On'));
- a.href = 'javascript:null(0)';
- eval("a.addEventListener('click', function(){document.getElementById(\""+c+"_on\").style.color='#000'; document.getElementById(\""+c+"_off\").style.color='#bbb'; GM_setValue(\""+c+"\",1);}, false);");
- div.appendChild(a);
- var span = document.createElement('span');
- span.appendChild(document.createTextNode(' | '));
- div.appendChild(span);
- var a = document.createElement('a');
- if(config_values[c] == 1) {
- a.style.color = "#bbb";
- }
- a.id = c+'_off';
- a.appendChild(document.createTextNode('Off'));
- a.href = 'javascript:null(0)';
- eval("a.addEventListener('click', function(){document.getElementById(\""+c+"_off\").style.color='#000'; document.getElementById(\""+c+"_on\").style.color='#bbb'; GM_setValue(\""+c+"\",0);}, false);");
- div.appendChild(a);
- configrow.appendChild(div);
- //end captain config
- }
- var div = document.createElement('div');
- div.style.display = "inline-block";
- div.style.float = "left";
- div.style.width = optionWidth;
- var span = document.createElement('span');
- span.appendChild(document.createTextNode('All: '));
- div.appendChild(span);
- var a = document.createElement('a');
- a.id = 'all_on';
- a.appendChild(document.createTextNode('On'));
- a.href = 'javascript:null(0)';
- a.addEventListener('click', function(){
- for(i=0; i<config_items.length; i++) {
- c = config_items[i];
- document.getElementById(c+"_on").style.color='#000';
- document.getElementById(c+"_off").style.color='#bbb';
- GM_setValue(c, 1);
- }
- }, false);
- div.appendChild(a);
- var span = document.createElement('span');
- span.appendChild(document.createTextNode(' | '));
- div.appendChild(span);
- var a = document.createElement('a');
- a.id = 'all_off';
- a.appendChild(document.createTextNode('Off'));
- a.href = 'javascript:null(0)';
- a.addEventListener('click', function(){
- for(i=0; i<config_items.length; i++) {
- c = config_items[i];
- document.getElementById(c+"_off").style.color='#000';
- document.getElementById(c+"_on").style.color='#bbb';
- GM_setValue(c, 0);
- }
- }, false);
- div.appendChild(a);
- configrow.appendChild(div);
- var div = document.createElement('div');
- div.style.display = "inline-block";
- div.style.float = "left";
- div.style.width = optionWidth;
- var span = document.createElement('span');
- span.appendChild(document.createTextNode('Quick picks: '));
- div.appendChild(span);
- var a = document.createElement('a');
- a.id = 'all_on';
- a.appendChild(document.createTextNode('Team Info'));
- a.href = 'javascript:null(0)';
- a.addEventListener('click', function(){
- for(i=0; i<config_items.length; i++) {
- //live stats
- if(i<8) {
- c = config_items[i];
- document.getElementById(c+"_on").style.color='#000';
- document.getElementById(c+"_off").style.color='#bbb';
- GM_setValue(c, 1);
- } else {
- c = config_items[i];
- document.getElementById(c+"_off").style.color='#000';
- document.getElementById(c+"_on").style.color='#bbb';
- GM_setValue(c, 0);
- }
- }
- }, false);
- div.appendChild(a);
- var span = document.createElement('span');
- span.appendChild(document.createTextNode(' | '));
- div.appendChild(span);
- var a = document.createElement('a');
- a.id = 'all_off';
- a.appendChild(document.createTextNode('Live Data'));
- a.href = 'javascript:null(0)';
- a.addEventListener('click', function(){
- for(i=0; i<config_items.length; i++) {
- //live stats
- if(i==7 || i==8 || i==10 || i==11 || i==13) {
- c = config_items[i];
- document.getElementById(c+"_on").style.color='#000';
- document.getElementById(c+"_off").style.color='#bbb';
- GM_setValue(c, 1);
- } else {
- c = config_items[i];
- document.getElementById(c+"_off").style.color='#000';
- document.getElementById(c+"_on").style.color='#bbb';
- GM_setValue(c, 0);
- }
- }
- }, false);
- div.appendChild(a);
- configrow.appendChild(div);
- var div = document.createElement('div');
- div.style.display = "inline-block";
- div.style.width = refreshWidth;
- div.style.float = "left";
- div.style.paddingTop = "10px";
- var span = document.createElement('span');
- var a = document.createElement('a');
- a.appendChild(document.createTextNode('Reload'));
- a.href = 'javascript:location.reload()';
- a.style.border = "1px solid #000";
- a.style.padding = "3px";
- a.style.borderRadius = "6px";
- span.appendChild(a);
- div.appendChild(span);
- configrow.appendChild(div);
- var div = document.createElement('div');
- div.style.display = "inline-block";
- div.style.width = refreshWidth;
- div.style.float = "left";
- div.style.paddingTop = "10px";
- var img = document.createElement('img');
- var img2 = document.createElement('img');
- var span = document.createElement('div');
- span.innerHTML = '<br /><b>You can now download my FPL Live app on iOS and see the live data for all your leagues!<br /><br />See live points and positions, full team view, captain and vice-captain, chips and players playing stats for every team...</b><br /><br />';
- span.style.width = refreshWidth;
- img.style.width = "150px";
- img2.style.width = "75px";
- img.src = "http://www.enicma.co.uk/fpl/images/app_store.png";
- img2.src = "http://www.enicma.co.uk/fpl/images/lion_launch.png";
- var a = document.createElement('a');
- var a2 = document.createElement('a');
- a.href = 'https://itunes.apple.com/gb/app/fpl-live/id1039666919';
- a2.href = 'http://www.enicma.co.uk/fpl/';
- a.target = "_blank";
- a2.target = "_blank";
- a.style.padding = "3px";
- a.style.borderRadius = "6px";
- a.appendChild(img);
- a2.style.padding = "3px";
- a2.style.borderRadius = "6px";
- a2.appendChild(img2);
- div.appendChild(span);
- div.appendChild(a);
- div.appendChild(a2);
- configrow.appendChild(div);
- }
- setTimeout(function(){
- getData();
- }, 2000);
- function sortByProperty(objArray, prop, direction){
- if (arguments.length<2) throw new Error("ARRAY, AND OBJECT PROPERTY MINIMUM ARGUMENTS, OPTIONAL DIRECTION");
- if (!Array.isArray(objArray)) throw new Error("FIRST ARGUMENT NOT AN ARRAY");
- const clone = objArray.slice(0);
- const direct = arguments.length>2 ? arguments[2] : 1; //Default to ascending
- const propPath = (prop.constructor===Array) ? prop : prop.split(".");
- clone.sort(function(a,b){
- for (let p in propPath){
- if (a[propPath[p]] && b[propPath[p]]){
- a = a[propPath[p]];
- b = b[propPath[p]];
- }
- }
- // convert numeric strings to integers
- a = a.match(/^\d+$/) ? +a : a;
- b = b.match(/^\d+$/) ? +b : b;
- return ( (a < b) ? -1*direct : ((a > b) ? 1*direct : 0) );
- });
- return clone;
- }
- var playersObj;
- function stateChangedPlayers() {
- if (this.readyState==4) {
- retval = this.responseText;
- playersObj = JSON.parse(retval);
- playersObj.elements.sort(function(a, b){return a.id-b.id;});
- }
- }
- url = "https://fantasy.premierleague.com/drf/bootstrap-static";
- var xmlHttp=GetXmlHttpObject();
- xmlHttp.onreadystatechange=stateChangedPlayers;
- xmlHttp.open("GET",url,true);
- xmlHttp.send(null);
- var liveObj;
- function stateChangedLive() {
- if (this.readyState==4) {
- retval = this.responseText;
- liveObj = JSON.parse(retval);
- }
- }
- url = "https://fantasy.premierleague.com/drf/event/"+gwnum+"/live";
- var xmlHttp=GetXmlHttpObject();
- xmlHttp.onreadystatechange=stateChangedLive;
- xmlHttp.open("GET",url,true);
- xmlHttp.send(null);
- function stateChangedHistory() {
- if (this.readyState==4) {
- retval = this.responseText;
- teamObj = JSON.parse(retval);
- team_id = teamObj.entry.id;
- lastGW = teamObj.entry.current_event;
- numChips = teamObj.chips.length;
- chipsdetail = "";
- chipname = "";
- livechip = 0;
- wildcardplayed = false;
- for(i=0; i<teamObj.chips.length; i++) {
- chip = teamObj.chips[i];
- if(chip.name == "3xc") {
- chipname = "Triple Captain";
- } else if(chip.name == "attack") {
- chipname = "All Out Attack";
- } else if(chip.name == "bboost") {
- chipname = "Bench Boost";
- } else if(chip.name == "freehit") {
- chipname = "Free Hit";
- } else if(chip.name == "wildcard") {
- chipname = "Wildcard";
- wildcardplayed = true;
- } else {
- chipname = chip.name;
- }
- chipsdetail += chipname + " (GW" + chip.event + ")\n";
- if(chip.event == lastGW) {
- livechip = 1;
- }
- }
- document.getElementById("chips"+team_id).innerHTML = numChips;
- document.getElementById("chips"+team_id).title = chipsdetail;
- if(livechip) {
- document.getElementById("chips"+team_id).style.backgroundColor = "pink";
- }
- if(!wildcardplayed) {
- wcimg = "http://upload.wikimedia.org/wikipedia/commons/thumb/0/03/Green_check.svg/13px-Green_check.svg.png";
- wctxt = "Available";
- } else {
- wcimg = "http://upload.wikimedia.org/wikipedia/en/thumb/b/ba/Red_x.svg/13px-Red_x.svg.png";
- wctxt = "Played";
- }
- cell = document.getElementById("wc"+team_id);
- cell.innerHTML = "<span id='wcs"+teamID+"' style='display: none;'>" + wctxt + "</span><img id='wci"+teamID+"' title='" + wctxt + "' src='" + wcimg + "'>";
- }
- standingsDiv = document.getElementById("ismr-classic-standings");
- //alert(standingsDiv.innerHTML);
- tables = standingsDiv.getElementsByTagName("table");
- //alert(tables.length);
- table = tables[0];
- clearTimeout(mytimeout);
- mytimeout = setTimeout(function() {sorttable.makeSortable(table)}, 1000);
- }
- var transfersObj;
- function stateChangedTransfers() {
- if (this.readyState==4) {
- retval = this.responseText;
- transfersObj = JSON.parse(retval);
- team_id = transfersObj.entry.id;
- lastGW = transfersObj.entry.current_event;
- transfersHistory = transfersObj.history;
- numOfTransfers = transfersHistory.length;
- playersIN = "GW" + lastGW + " transfers \nIN: ";
- playersOUT= "OUT: ";
- for(i=0; i<numOfTransfers; i++) {
- transfer = transfersObj.history[i];
- if(transfer.event == lastGW){
- if(playersIN != "GW" + lastGW + " transfers \nIN: ") {
- playersIN += ", ";
- }
- if(playersOUT != "OUT: ") {
- playersOUT += ", ";
- }
- playersIN += playersObj.elements[transfer.element_in-1].web_name ;
- playersOUT += playersObj.elements[transfer.element_out-1].web_name;
- }
- }
- document.getElementById("gwt"+team_id).title = playersIN + "\n" + playersOUT;
- }
- standingsDiv = document.getElementById("ismr-classic-standings");
- //alert(standingsDiv.innerHTML);
- tables = standingsDiv.getElementsByTagName("table");
- //alert(tables.length);
- table = tables[0];
- clearTimeout(mytimeout);
- mytimeout = setTimeout(function() {sorttable.makeSortable(table)}, 1000);
- }
- //bonus var
- var bonusArr = [];
- function stateChangedFixturesEvent() {
- if (this.readyState==4) {
- retval = this.responseText;
- fixturesArr = JSON.parse(retval);
- event_day = 0;
- indy = 0;
- for(k=0;k<fixturesArr.length;k++) {
- if (fixturesArr[k].started && !fixturesArr[k].finished) {
- bpsArr = [];
- indx = 0;
- stats = fixturesArr[k].stats;
- event_day = fixturesArr[k].event_day;
- for(i=0; i<stats.length; i++) {
- if (Object.keys(stats[i]) == "bps") {
- // away team
- bps_a = stats[i].bps.a;
- for(j=0; j<bps_a.length; j++){
- if (bps_a[j].value > 10) {
- bpsArr[indx] = {playerID: bps_a[j].element, bpsPTS: bps_a[j].value};
- indx++;
- }
- }
- // home team
- bps_h = stats[i].bps.h;
- for(j=0; j<bps_h.length; j++){
- if (bps_h[j].value > 10) {
- bpsArr[indx] = {playerID: bps_h[j].element, bpsPTS: bps_h[j].value};
- indx++;
- }
- }
- }
- }
- // sorting
- bpsArr.sort(function(a, b){return b.bpsPTS - a.bpsPTS});
- // add bonuses
- minBP = 3;
- bonus_pt = 3;
- empty_pt = 0;
- for(i=0; i<minBP; i++) {
- if (bpsArr[i].bpsPTS == bpsArr[i+1].bpsPTS) {
- bonusArr[indy] = {playerID: bpsArr[i].playerID, bonusPTS: bonus_pt+empty_pt-i};
- empty_pt++;
- minBP++;
- } else {
- bonusArr[indy] = {playerID: bpsArr[i].playerID, bonusPTS: bonus_pt+empty_pt-i};
- empty_pt = 0;
- }
- indy++;
- }
- }
- }
- }
- }
- var entryObj = {};
- function stateChangedEntry() {
- if (this.readyState==4) {
- retval = this.responseText;
- entryObj = JSON.parse(retval);
- changed_entry = entryObj.entry.id;
- if (changed_entry != teamID) {
- //alert("teamID is " + teamID);
- //alert("entry is " + changed_entry);
- stateChangedEntry();
- }
- /*
- entry = entryObj.entry;
- value = (entry.value*100)/1000;
- bank = (entry.bank*100)/1000;
- total_value = value + bank;
- value = value.toFixed(1);
- bank = bank.toFixed(1);
- total_value = total_value.toFixed(1);
- total_transfers = entry.total_transfers;
- gw_transfers = entry.event_transfers;
- transfers_hit = entry.event_transfers_cost;
- lastGW = entry.current_event;
- current_points = entry.summary_overall_points;
- week_points = entry.summary_event_points;
- */
- clearTimeout(mytimeout);
- mytimeout = setTimeout(function() {sorttable.makeSortable(table)}, 1000);
- }
- }
- function stateChangedEvent() {
- if (this.readyState==4) {
- retval = this.responseText;
- teamObj = JSON.parse(retval);
- entry = entryObj.entry;
- value = (entry.value*100)/1000;
- bank = (entry.bank*100)/1000;
- total_value = value + bank;
- value = value.toFixed(1);
- bank = bank.toFixed(1);
- total_value = total_value.toFixed(1);
- total_transfers = entry.total_transfers;
- gw_transfers = entry.event_transfers;
- transfers_hit = entry.event_transfers_cost;
- lastGW = entry.current_event;
- live_total_str = "";
- current_points = entry.summary_overall_points;
- week_points = entry.summary_event_points;
- live_total_str += "week_points after " + week_points + ";";
- entry_history = teamObj.entry_history;
- auto_subs = teamObj.automatic_subs;
- team_id = entry_history.entry;
- transfers_cost = entry_history.event_transfers_cost;
- picks = teamObj.picks;
- event = teamObj.event;
- live_total_str += "picks id " + team_id + ";";
- live_total_str += "entry id " + entry.id + ";";
- live_score = 0;
- bonus_pts = 0;
- bench_pts = 0;
- bench_bonus_pts = 0;
- autosubs_pts = 0;
- autosubs_bonus_pts = 0;
- autosubs_str = "";
- bonus_str = "";
- playedstr = "";
- playednum = 0;
- toplaystr = "";
- toplaynum = 0;
- didntplaystr = "";
- didntplaynum = 0;
- firstnum = 0;
- subsnum = 0;
- captain_dnp = false;
- subs_made = false;
- firstxistr = "";
- subsstr = "";
- numfirstxicount = 0;
- numfirstxidefcount = 0;
- numnonplayingdefcount = 0;
- numplayingdefcount = 0;
- numsubscount = 0;
- dnpArr = [];
- subsArr = [];
- player_minutes = 0;
- player_fixture = "";
- player_type = 0;
- for(i=0; i<picks.length; i++) {
- is_captain = false;
- is_vice = false;
- pick_points = playersObj.elements[picks[i].element-1].event_points;
- player_type = playersObj.elements[picks[i].element-1].element_type;
- player_minutes = 0;
- player_fixture = "";
- if(picks[i].is_captain) {
- captain_id = picks[i].element;
- captain = playersObj.elements[captain_id-1].web_name;
- is_captain = true;
- captain_points = pick_points;
- }
- if(picks[i].is_vice_captain) {
- vice_captain_id = picks[i].element;
- vice_captain = playersObj.elements[vice_captain_id-1].web_name;
- is_vice = true;
- vice_points = pick_points;
- }
- if(i<11) {
- numfirstxicount++;
- if (player_type == 2) {
- numfirstxidefcount++;
- }
- firstxistr += "<player title=\"" + pick_points + "\">";
- firstxistr += playersObj.elements[picks[i].element-1].web_name;
- if(is_captain) {
- firstxistr += "(C)";
- } else if(is_vice) {
- firstxistr += "(vc)";
- }
- if(numfirstxicount !== 11) {
- firstxistr += ", ";
- }
- firstxistr += "</player>" ;
- pts = pick_points * picks[i].multiplier;
- live_score = live_score + pts;
- //bonus
- for (j=0; j<bonusArr.length; j++) {
- //bonus for finished matche
- if(bonusArr[j].playerID == picks[i].element) {
- bonus_pts = bonus_pts + bonusArr[j].bonusPTS * picks[i].multiplier;
- bonus_str += playersObj.elements[picks[i].element-1].web_name + "(" + bonusArr[j].bonusPTS * picks[i].multiplier + ")\n";
- }
- }
- player_minutes = liveObj.elements[picks[i].element].stats.minutes;
- if (Object.keys(liveObj.elements[picks[i].element].explain).length>0) {
- player_fixture = liveObj.elements[picks[i].element].explain[0][1];
- }
- fixtures = liveObj.fixtures;
- has_played = 0;
- for(fix=0; fix<fixtures.length; fix++) {
- if(fixtures[fix].id == player_fixture && player_fixture!=""){
- if(fixtures[fix].started) {
- has_played = 1;
- }
- }
- }
- if(has_played == 1) {
- if(player_minutes > 0) {
- //has played
- if(playedstr != "") {
- playedstr += ", ";
- }
- playednum++;
- playedstr += playersObj.elements[picks[i].element-1].web_name;
- } else {
- //didnt play
- if(didntplaystr != "") {
- didntplaystr += ", ";
- }
- dnpArr[didntplaynum] = {playerID: picks[i].element-1, playerType: player_type, autosubbedOut: false};
- didntplaynum++;
- didntplaystr += playersObj.elements[picks[i].element-1].web_name;
- if(is_captain) {
- captain_dnp = true;
- }
- }
- } else {
- //to play
- if(toplaystr != "") {
- toplaystr += ", ";
- }
- toplaynum++;
- toplaystr += playersObj.elements[picks[i].element-1].web_name;
- }
- } else {
- subsArr[numsubscount] = {playerID: picks[i].element-1, playerType: player_type, autosubbedIn: false};
- if (player_type == 2){
- numnonplayingdefcount++;
- }
- numsubscount++;
- subsstr += "<player title=\"" + pick_points + "\">";
- subsstr += playersObj.elements[picks[i].element-1].web_name;
- pts = pick_points * picks[i].multiplier;
- bench_pts = bench_pts + pts;
- for (j=0; j<bonusArr.length; j++) {
- //bonus for finished matches
- if(bonusArr[j].playerID == picks[i].element) {
- bench_bonus_pts = bench_bonus_pts + bonusArr[j].bonusPTS * picks[i].multiplier;
- }
- }
- if(is_captain) {
- subsstr += "(C)";
- } else if(is_vice) {
- subsstr += "(vc)";
- }
- if(numsubscount !== 4) {
- subsstr += ", ";
- }
- subsstr += "</player>";
- }
- }
- rowstr = "";
- if (dnpArr.length > 0) {
- //Sub goalkeepers
- for (indx=0; indx<dnpArr.length; indx++) {
- //if its a goalkeeper and isn't already subbed out
- if (dnpArr[indx].playerType==1 && !dnpArr[indx].autosubbedOut) {
- //and isn't already subbed in and has played minutes already
- if (!subsArr[0].autosubbedIn && liveObj.elements[subsArr[0].playerID+1].stats.minutes>0) {
- //sub player
- //autosubs_pts += liveObj.elements[subsArr[0].playerID+1].stats.total_points;
- autosubs_str += playersObj.elements[subsArr[0].playerID].web_name + "(" + liveObj.elements[subsArr[0].playerID+1].stats.total_points + ")\n";
- subsArr[0].autosubbedIn = true;
- dnpArr[indx].autosubbedOut = true;
- }
- }
- }
- //Sub outfield players
- numplayingdefcount = numfirstxidefcount - numnonplayingdefcount;
- numofdefssubstituted = 0;
- if (numplayingdefcount < 3) {
- //do {
- //do only 2 changes because 2 is max places on bench for defenders
- for (z=1; z<3; z++) {
- index_subin = -1;
- index_subout = -1;
- for (x=0; x<dnpArr.length; x++) {
- //if its a defender and isn't already subbed out
- if (dnpArr[x].playerType==2 && !dnpArr[x].autosubbedOut) {
- index_subout = x;
- break;
- }
- }
- for (y=1; y<=3; y++) {
- if (subsArr[y].playerType==2 && !subsArr[y].autosubbedIn && liveObj.elements[subsArr[y].playerID+1].stats.minutes>0) {
- index_subin = y;
- break;
- }
- }
- if(index_subout>=0 && index_subin>0) {
- subsArr[index_subin].autosubbedIn = true;
- dnpArr[index_subout].autosubbedOut = true;
- autosubs_str += playersObj.elements[subsArr[index_subin].playerID].web_name + "(" + liveObj.elements[subsArr[index_subin].playerID+1].stats.total_points + ")\n";
- numplayingdefcount++;
- }
- numofdefssubstituted++;
- if (numplayingdefcount == 3) {
- break;
- }
- }
- }
- //do other subs in order
- for (w=0; w<dnpArr.length; w++) {
- //don't sub goalkeepers
- if (dnpArr[w].playerType!=1) {
- //if already subsituted 2 defenders then skip defenders
- if ((!dnpArr[w].autosubbedOut) && ((dnpArr[w].playerType!=2) || ((dnpArr[w].playerType==2) && (numofdefssubstituted !=2)))) {
- for (v=1; v<=3; v++) {
- if (!subsArr[v].autosubbedIn && liveObj.elements[subsArr[v].playerID+1].stats.minutes>0) {
- subsArr[v].autosubbedIn = true;
- dnpArr[w].autosubbedOut = true;
- autosubs_str += playersObj.elements[subsArr[v].playerID].web_name + "(" + liveObj.elements[subsArr[v].playerID+1].stats.total_points + ")\n";
- break;
- }
- }
- }
- }
- }
- //calculate autosubs points
- for (m=0; m<subsArr.length; m++) {
- if (subsArr[m].autosubbedIn) {
- autosubs_pts += liveObj.elements[subsArr[m].playerID+1].stats.total_points;
- for (n=0; n<bonusArr.length; n++) {
- //add bonus for finished matches
- if(bonusArr[n].playerID == subsArr[m].playerID+1) {
- autosubs_pts += bonusArr[n].bonusPTS;
- }
- }
- }
- }
- }
- live_total_str += "captain id is " + captain_id + ";";
- for(q=0; q<auto_subs.length; q++) {
- subs_made = true;
- }
- if ((captain_dnp) && !(subs_made)){
- if (teamObj.active_chip == "3xc"){
- autosubs_pts += vice_points*2;
- autosubs_str += vice_captain + " ("+ vice_points*2 + ")(vc)";
- } else {
- autosubs_pts += vice_points;
- autosubs_str += vice_captain + " ("+ vice_points + ")(vc)";}
- }
- if(teamObj.active_chip == "bboost") {
- live_score = live_score + bench_pts + bench_bonus_pts;
- } else {
- live_score += autosubs_pts + bonus_pts;
- }
- live_total = (current_points - week_points) + live_score;
- live_total_str += "(current_points/" + current_points + "/ - week_points/" + week_points + "/) + live_score/" + live_score + "/";
- if (event_day == 1){
- live_total -= transfers_cost;
- }
- h2hpos = 0;
- if(config_values["teamval"] == 1) {
- document.getElementById("teamval"+team_id).innerHTML = value;
- }
- if(config_values["bankval"] == 1) {
- document.getElementById("bankval"+team_id).innerHTML = bank;
- }
- if(config_values["totalval"] == 1) {
- document.getElementById("totalval"+team_id).innerHTML = total_value;
- }
- if(config_values["tt"] == 1) {
- document.getElementById("tt"+team_id).innerHTML = total_transfers;
- }
- if(config_values["gwt"] == 1) {
- document.getElementById("gwt"+team_id).innerHTML = gw_transfers;
- }
- if(config_values["hitpts"] == 1) {
- document.getElementById("hitpts"+team_id).innerHTML = transfers_hit;
- }
- if(config_values["captain"] == 1) {
- if (team_id != entry.id) {
- //live_total_str = "<b>" + live_total_str + "</b>";
- document.getElementById("captain"+team_id).innerHTML = "<b>" + captain + "</b>";
- } else {
- document.getElementById("captain"+team_id).innerHTML = captain;
- }
- document.getElementById("captain"+team_id).title = vice_captain;
- }
- if(config_values["livepoints"] == 1) {
- if (transfers_cost>0 && event_day == 1){
- document.getElementById("livepoints"+team_id).innerHTML = live_score + "(-" +transfers_cost + ")" ;
- } else {
- document.getElementById("livepoints"+team_id).innerHTML = live_score;
- }
- }
- if(config_values["livetotal"] == 1) {
- //live_total_str
- document.getElementById("livetotal"+team_id).innerHTML = numberWithCommas(live_total);
- //document.getElementById("livetotal"+team_id).title = live_total_str;
- }
- if(config_values["h2h"] == 1) {
- h2hpos = "-";
- /*for(li=0; li<teamObj.leagues.h2h.length; li++) {
- ln = teamObj.leagues.h2h[li].name;
- if(ln.indexOf(window.leagueName) == 0) {
- h2hpos = teamObj.leagues.h2h[li].entry_rank;
- }
- }*/
- document.getElementById("h2h"+team_id).innerHTML = h2hpos;
- }
- if(config_values["played"] == 1) {
- document.getElementById("played_p"+team_id).innerHTML = playednum;
- document.getElementById("played_p"+team_id).title = playedstr;
- document.getElementById("played_tp"+team_id).innerHTML = toplaynum;
- document.getElementById("played_tp"+team_id).title = toplaystr;
- document.getElementById("played_dnp"+team_id).innerHTML = didntplaynum;
- document.getElementById("played_dnp"+team_id).title = didntplaystr;
- }
- if(config_values["bonus"] == 1) {
- document.getElementById("bonus"+team_id).innerHTML = bonus_pts;
- document.getElementById("bonus"+team_id).title = bonus_str;
- }
- if(config_values["autosubs"] == 1) {
- document.getElementById("autosubs"+team_id).innerHTML = autosubs_pts;
- document.getElementById("autosubs"+team_id).title = autosubs_str;
- }
- document.getElementById("squaddiv"+team_id).innerHTML = firstxistr + " </div>Subs: "+subsstr;
- }
- standingsDiv = document.getElementById("ismr-classic-standings");
- //alert(standingsDiv.innerHTML);
- tables = standingsDiv.getElementsByTagName("table");
- //alert(tables.length);
- table = tables[0];
- clearTimeout(mytimeout);
- mytimeout = setTimeout(function() {sorttable.makeSortable(table)}, 1000);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement