NewsBot
New Member
- Messages
- 111,281
- Reaction score
- 2,947
Now you can construct your very own version of the 2016 Dallas Cowboys with our Interactive Roster Builder. And then delete it and start over again. And again. And again.
Many of us take great pleasure in playing GM, constructing our own roster, and making calls on who stays and who goes. Now, you can do just that with our 2016 Dallas Cowboys Roster Builder.
With this tool that was developed by our very own Coty Saxman, you can whittle down the roster from 90 to 53 players, build a practice squad, change players' positions, try to get under the cap - and watch your dead money total for 2017 climb sky high.
For those of you who've used the Roster Builder before it will have a familiar look and feel to it. For everybody else: Click the button below to launch the program (it will open in a new tab/window). To get started, click on 'Reset Everything' in the new window to load the most up-to-date roster into the tool. The tool will show you all the names currently on the roster, with the players ranked at their positions by their 2016 cap hit. Also, you'll probably have to keep this window open for the Roster Builder to work in the other window.
At this point in the offseason, the roster is in constant flux, but we'll try to keep the Roster Builder up to date as good as we can through the turmoil of the summer roster moves. If you find any factual inaccuracies in the data, as I expect you will, please let me know so that I can correct it.
[Last Update: 5/31]
Dallas Cowboys Interactive Roster Builder
"; newHTML += "
2017 Dead Money if Cuttd>
"; newHTML += ""; newDocument.document.getElementById("currentPlayerInfo").innerHTML = newHTML; } else newDocument.document.getElementById("currentPlayerInfo").innerHTML = "Please select a player!"; var capTotal = deadMoney; var nextYearDeadMoney = deadMoneyNextYear; for ( i = 0; i < rosterArray.length; ++i) { capTotal += rosterArray.capHit; } if(irArray.length > 0) { for ( i = 0; i < irArray.length; ++i) { capTotal += irArray.capHit; } } if(pupArray.length > 0) { for ( i = 0; i < pupArray.length; ++i) { capTotal += pupArray.capHit; } } if (cut.length > 0) { for ( i = 0; i < cut.length; ++i) { capTotal += cut.capPen; nextYearDeadMoney += cut.nextYrPen; } } if(psArray.length > 0) { for ( i = 0; i < psArray.length; ++i) { capTotal += psArray.capPen; nextYearDeadMoney += psArray.nextYrPen; } } var color = ""; if (capTotal < 158699683) { color = "green"; } else if (capTotal == 0) { color = "black"; } else color = "red"; newDocument.document.getElementById("capTotalRow").innerHTML = "Current Salary:[COLOR=" + color + "]$" + numberWithCommas(capTotal) + "[/COLOR]Salary Cap:$158,699,683"; newDocument.document.getElementById("deadMoneyNextYearCell").innerHTML = "$" + numberWithCommas(nextYearDeadMoney); newDocument.document.getElementById("defenseCell").innerHTML = "Defense (" + (sArray.length + cbArray.length + olbArray.length + ilbArray.length + deArray.length + dtArray.length) + ")"; newDocument.document.getElementById("defensiveBacksCell").innerHTML = "Defensive Backs (" + (sArray.length + cbArray.length) + ")"; newDocument.document.getElementById("linebackersCell").innerHTML = "Linebackers (" + (ilbArray.length + olbArray.length) + ")"; newDocument.document.getElementById("defensiveLineCell").innerHTML = "Defensive Linemen (" + (deArray.length + dtArray.length) + ")"; newDocument.document.getElementById("sCell").innerHTML = "S (" + sArray.length + ")"; newDocument.document.getElementById("cbCell").innerHTML = "CB (" + cbArray.length + ")"; newDocument.document.getElementById("olbCell").innerHTML = "OLB (" + olbArray.length + ")"; newDocument.document.getElementById("ilbCell").innerHTML = "MLB (" + ilbArray.length + ")"; newDocument.document.getElementById("deCell").innerHTML = "DE (" + deArray.length + ")"; newDocument.document.getElementById("dtCell").innerHTML = "DT (" + dtArray.length + ")"; newDocument.document.getElementById("offenseCell").innerHTML = "Offense (" + (qbArray.length + rbArray.length + wrArray.length + teArray.length + otArray.length + gcArray.length) + ")"; newDocument.document.getElementById("offensiveBacksCell").innerHTML = "Offensive Backfield (" + (qbArray.length + rbArray.length) + ")"; newDocument.document.getElementById("receiversCell").innerHTML = "Receivers (" + (wrArray.length + teArray.length) + ")"; newDocument.document.getElementById("offensiveLineCell").innerHTML = "Offensive Linemen (" + (otArray.length + gcArray.length) + ")"; newDocument.document.getElementById("qbCell").innerHTML = "QB (" + qbArray.length + ")"; newDocument.document.getElementById("rbCell").innerHTML = "RB/FB (" + rbArray.length + ")"; newDocument.document.getElementById("wrCell").innerHTML = "WR (" + wrArray.length + ")"; newDocument.document.getElementById("teCell").innerHTML = "TE (" + teArray.length + ")"; newDocument.document.getElementById("otCell").innerHTML = "OT (" + otArray.length + ")"; newDocument.document.getElementById("gcCell").innerHTML = "G/C (" + gcArray.length + ")"; newDocument.document.getElementById("stCell").innerHTML = "Special Teams (" + (pArray.length + kArray.length + lsArray.length) + ")"; newDocument.document.getElementById("kCell").innerHTML = "Kickers (" + kArray.length + ")"; newDocument.document.getElementById("pCell").innerHTML = "Punters (" + pArray.length + ")"; newDocument.document.getElementById("lsCell").innerHTML = "Long Snappers (" + lsArray.length + ")"; newDocument.document.getElementById("injCell").innerHTML = "Injured (" + (pupArray.length + irArray.length) + ")"; newDocument.document.getElementById("pupCell").innerHTML = "PUP + NFI (" + pupArray.length + ")"; newDocument.document.getElementById("irCell").innerHTML = "IR + Susp. (" + irArray.length + ")"; newDocument.document.getElementById("psCell").innerHTML = "Practice Squad (" + psArray.length + ")"; }; function buildRosterCell(name) { var result = "
" + name + "
"; return result; }; function nameToVar(name) { var tempName = name.replace("-", "_"); tempName = tempName.replace(".", ""); tempName = tempName.replace(".", ""); tempName = tempName.replace("`", ""); tempName = tempName.toLowerCase(); tempName = tempName.replace(" ", "_"); return tempName; }; function prepareToMove(name) { playerToMove = window[nameToVar(name)]; posToMove = null; for (var i = 0; i < arrayArray.length; i++) { if (arrayArray.lastIndexOf(playerToMove) > -1) { posToMove = arrayArray; } } saveArray.push("prepareToMove('" + name + "')"); refreshRoster(); }; function arrayByIndex(index) { return arrayArray[index]; }; function showAuthor() { alert(author); }; function movePlayer(destIndex) { var destination = arrayByIndex(destIndex); if (destination == cut) { arrayArray[arrayArray.indexOf(posToMove)].splice(arrayArray[arrayArray.indexOf(posToMove)].indexOf(playerToMove), 1); if (arrayArray.indexOf(posToMove) < 15) { rosterArray.splice(rosterArray.indexOf(playerToMove), 1); } cut.push(playerToMove); playerToMove = null; posToMove = null; } else if (posToMove != null && ((destination != psArray) || ((playerToMove.pracSquad == 1) && (psArray.length < 10)))) { arrayArray[arrayArray.indexOf(posToMove)].splice(arrayArray[arrayArray.indexOf(posToMove)].indexOf(playerToMove), 1); arrayArray[arrayArray.indexOf(destination)].push(playerToMove); if (arrayArray.indexOf(posToMove) > 14 && arrayArray.indexOf(destination) < 15) { rosterArray.push(playerToMove); } else if (arrayArray.indexOf(posToMove) < 15 && arrayArray.indexOf(destination) > 14) { rosterArray.splice(rosterArray.indexOf(playerToMove), 1); } playerToMove = null; posToMove = null; } saveArray.push("movePlayer(" + destIndex + ")"); refreshRoster(); }; function showCuts() { var newHTML = "Cuts
"; for (var i = 0; i < cut.length; ++i) { newHTML += "" + buildRosterCell(cut.name) + "
"; } newHTML += "
"; newDocument.document.getElementById('cutTableSection').innerHTML = newHTML; newDocument.document.getElementById('cutTableSection').value = 'shown'; } function hideCuts() { var newHTML = ""; newDocument.document.getElementById('cutTableSection').innerHTML = newHTML; newDocument.document.getElementById('cutTableSection').value = 'hidden'; }; function saveRoster() { createCookie('btbRoster', saveArray.toString(), 365); }; function loadRoster() { resetAll(); var rawSaveArray = readCookie('btbRoster'); saveArray = rawSaveArray.split(','); var saveQueue = rawSaveArray.replace(/,/g, ";"); var load = new Function(saveQueue); load(); refreshRoster(); }; function createCookie(name, value, days) { if (days) { var date = new Date(); date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); var expires = "; expires=" + date.toGMTString(); } else var expires = ""; newDocument.document.cookie = name + "=" + value + expires + "; path=/"; }; function readCookie(name) { var nameEQ = name + "="; var ca = newDocument.document.cookie.split(';'); for (var i = 0; i < ca.length; i++) { var c = ca; while (c.charAt(0) == ' ') c = c.substring(1, c.length); if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length); } return null; }; function eraseCookie(name) { createCookie(name, "", -1); }; //Source: http://stackoverflow.com/questions/2901102/how-to-print-a-number-with-commas-as-thousands-separators-in-javascript function numberWithCommas(x) { return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); }; function openNewPage() { var newDocumentHTML = "
Now's your opportunity to begin building your own Cowboys' roster. If you make a mistake, the \"Reset Everything!\" button will return everything to its original condition. To move players, click on the player to highlight him, and then click on the heading to which you wish to move him. Clicking on the red CUT cell, or pressing the Delete key will cut that player entirely. You can track your current roster count at the bottom left cell. Good luck getting to 53!
Note: The Roster Builder now conforms to May 12th (formerly June 1st) standards and splits cap hits over 2016 and 2017. Be mindful of how much dead money you accumulate for 2017!
Please select a player!
[COLOR=rgba(0,0,10,.95)]Defense
Defensive Backs Linebackers Defensive Linemen
S CB OLB ILB DE DT
Offense
Offensive Backfield Receivers Offensive Linemen
QB RB/HB WR TE OT G/C
Special Teams Injured Practice Squad
Kickers Punters Long Snappers PUP IR
Total Roster Size: 0 Click Here to CUT!Defensive Backs Linebackers Defensive Linemen
S CB OLB ILB DE DT
Offense
Offensive Backfield Receivers Offensive Linemen
QB RB/HB WR TE OT G/C
Special Teams Injured Practice Squad
Kickers Punters Long Snappers PUP IR
Current Salary: 0 Salary Cap: $158,699,683
2017 Dead Money: 0[/COLOR]
As a point of reference for your roster, here's what the season-opening 53-man rosters have looked like in the past:
Years QB RB WR TE FB OL DL LB CB S Specialists
2015 2 4 5 4 1 9 10 6 5 4 3
2014 3 3 5 3 1 9 11 7 4 4 3
2013 2 4 5 4 - - 10 10 6 4 5 3
2012 2 3 6 4 1 9 3-4
Defense 5 5 3
2011 3 4 6 4 - - 9 5 4 4
2010 3 3 5 2 2 10 3 6 3
2015 2 4 5 4 1 9 10 6 5 4 3
2014 3 3 5 3 1 9 11 7 4 4 3
2013 2 4 5 4 - - 10 10 6 4 5 3
2012 2 3 6 4 1 9 3-4
Defense 5 5 3
2011 3 4 6 4 - - 9 5 4 4
2010 3 3 5 2 2 10 3 6 3
Note: This program was written in JavaScript. If your browser does not support JavaScript, you will be informed of that below. In general, Internet Explorer is non-compatible, while Chrome and Firefox are compatible.
Practice Squad: You can put up to 10 guys on the practice squad. Unfortunately, the tool will only show eight. Also, all players with two years experience are now marked as PS eligibile, even though only a maximum of two of those guys can be added to the PS – but I trust the BTB users to be able to make that distinction.
To make it easier to find the Roster Builder, we've added it to the Library section of BTB as illustrated in the screenshot below. You can access the Roster Builder from there at any time without having to search for the specific post it was originally published in.
Continue reading...