Submit Lineup

Be sure your league is setup properly before installing any scripts.Setup Video
The submit lineup script directory contains 3 files: "script.js" , "style.css" and "responsive.css" , all 3 of these files are required to run the custom lineup script. The "script.js" file must be loaded into a message marked as a "header". The style and responsive.css files can be added to your existing stylesheets or loaded in any header or footer marked message. A copy of font awesome is also required. Most of our scripts use font awesome to you probably already have that loaded in your header message, if not , then you will need to load that as well.
There was an older script called "headshots" that placed images next to each players names, if you were using that , then it needs to be removed as this Lineup script already has the incorporated. Make sure you view the video and set your league setting up to use custom scripts. Also there is another setting that needs modified. Go to the commissioner setup page , Appearance Setup , Reports and Security Settings and make sure that Display NFL Opponent's Passing/Rushing Rank On Submit Lineup Page? is set to true. Also check if you have a section to set Fantasy Sharks projections to true , if so do that as well. MFL has removed this as a setting and made it defaulted once checked, so you may or may not have it showing.
The "resonsive.css" style is not required if your league is not setup to use responsive css (aka mobile friendly)
All scripts require cache.js and font awesome file to be placed in a header message as the 1st line. Please review the section "Custom Scripts" Here
This script is already included in our custom template. Do not install it again. Custom template users do not need to load cache.js or font awesome.

Lineup JSPlace in header message

<script>
var lu_includeValidation = true;
var lu_mobileFlipOnAddRemove = true;
var lu_addOptionalStarters = true;
var lu_useDefaultAsPrimary = false;
var lu_mobileSingleColumn = false; //Set to true to display both tables on mobile
var lu_remove_message = false; // set to true to remove the optional message box under custom lineup tables
</script>

<script src="https://www.mflscripts.com/mfl-apps/lineups/submit/script.js"></script>

Lineup CSSPlace CSS or header

<style>
/****************************************/
/* EDIT COLORING BELOW TO MATCH MY SITE */
/****************************************/
/* table header row */
#lineup .report .theader{background:#f9f9f9;border-bottom:2px solid #ddd}
/* bg coloring for table rows inside each table that display Select x amount of players */
#lineup .report .toomany{background:#fcc} /* light shaded red when player limit exceeded */
#lineup .report .notenough{background:#ffc} /* light shaded yellow when need to add more players to that position */
#lineup .report .rightamount{background:#f1f1f1} /* grey shade when have correct value of position player in lineup */
/* Starter and Bench tablerow background color and border color */
#lineup #startertable tr.playerrow.eventablerow,#lineup #benchtable tr.playerrow.eventablerow{background:#fff;}
#lineup #startertable tr.playerrow.oddtablerow,#lineup #benchtable tr.playerrow.oddtablerow{background:#fff;}
#lineup #startertable tr.row_empty,#lineup #benchtable tr.row_empty{background:#fff;}
#lineup tr.rightamount td,#lineup tr.notenough td,#lineup tr.toomany td,#lineup tr.row_empty td,
#lineup #startertable tr.playerrow.oddtablerow,#lineup #benchtable tr.playerrow.oddtablerow,
#lineup #startertable tr.playerrow.eventablerow,#lineup #benchtable tr.playerrow.eventablerow{border-bottom:1px solid #ddd;}
/* player photo */
#lineup #startertable tr.playerrow td.pphoto,#lineup #benchtable tr.playerrow td.pphoto{border:1px solid #ddd;background:#fff}
/* player injury */
#lineup #benchtable td.inj b,#lineup #startertable td.inj b{color:#fff;background:#cd2122}
/* player proj points */
#lineup #benchtable td.proj-pts,#lineup #startertable td.proj-pts{color:green}
/* player matchup - player on bye text color */
#lineup #startertable tr.playerrow td.weekly-opp b,#lineup #benchtable tr.playerrow td.weekly-opp b{color:#999;font-family: 'Roboto',sans-serif;}
/* x drop player icon */
#lineup #startertable tr.playerrow:after{color:#cd2122}
/* lock icon color for player on bye or game started */
#lineup #benchtable tr.playerrow.disabled-row:after,#lineup #startertable tr.playerrow.disabled-row:after{color:#cd2122}
/* + add player icon */
#lineup #benchtable tr.playerrow:after,#lineup #benchtable tr.playerrow.original-starter:before,#lineup #startertable tr.playerrow.original-starter:before{color:green}
/* submit lineup - use default submit form icon color */
#lineup .form_buttons:before,#lineup .form_buttons.default-btn:after,#go-back:before{color:#fff}
/* Add Button for Empty starter rows on mobile */
#lineup #startertable .row_empty td:after{color:green}


/**************************************/
/* NO NEED TO EDIT BELOW LAYOUT STYLE */
/**************************************/
/* table layout */
#lineup #startertable{float:left;width:49.9%}
#lineup #benchtable{float:right;width:49.9%}
#lineup .reportnavigation{clear:both}
#lineup #startertable .oddtablerow th,#lineup #startertable .eventablerow th,#lineup #benchtable .oddtablerow th,#lineup #benchtable .eventablerow th{display:none}
#lineup .report .playerrow:hover,#lineup .report .playerrow:hover{cursor:pointer}
#lineup .report .postitle{text-transform:uppercase}
#lineup #benchtable .sheader,#lineup #startertable .sheader{position:relative;width:100%;display:inline-table}
#lineup #benchtable .sheader th,#lineup #startertable .sheader th{height:22px;line-height:22px;font-weight:400;font-size:12px}
#lineup .report .offstartern{position:absolute;right:10px}
#lineup #startertable tr.playerrow,#lineup #benchtable tr.playerrow{position:relative;height:56px;background:none;border:0;box-shadow:none;display:block}
.row_empty{height:56px}
#lineup #startertable tr.playerrow td,#lineup #benchtable tr.playerrow td{padding:0;font-size:14px;background:none;border:0;box-shadow:none}

/* Hide table on submit lineup submission page when error lineup occures */
#body_submit_lineups #submit_lineups form{display:none}

/* table header row */
#lineup .report .theader{height:30px;line-height:30px;position:relative;box-shadow:none;display:block}
#lineup .report .theader td{padding:0;font-size:11px;font-weight:400}

/* player photo */
#lineup #startertable tr.playerrow td.pphoto,#lineup #benchtable tr.playerrow td.pphoto{border-radius:50%;width:51px;max-width:51px;height:51px;overflow:hidden;text-align:center;position:absolute;left:1px;top:2px}
#lineup #startertable .headshot,#lineup #benchtable .headshot{height: 57px;width: 42px;margin-top: -2px;}
#lineup #startertable tr.def_row .headshot, #lineup #benchtable tr.def_row .headshot {height:100%;margin:0;width:auto;}
/* player name */
#lineup #startertable tr.playerrow td.player,#lineup #benchtable tr.playerrow td.player{position:absolute;left:60px;top:2px;border:0;box-shadow:none;z-index:1}
#lineup #benchtable tr.theader td.player,#lineup #startertable tr.theader td.player{position:absolute;left:1px;top:0;border:0;box-shadow:none}
/* player matchup */
#lineup #startertable tr.playerrow td.weekly-opp,#lineup #benchtable tr.playerrow td.weekly-opp{position:absolute;left:65px;top:21px;border:0;box-shadow:none;font-size:12px}
#lineup #startertable tr.playerrow td.weekly-opp b,#lineup #benchtable tr.playerrow td.weekly-opp b{font-weight:400;font-style:italic;}
#lineup #startertable tr.playerrow td.weekly-opp b:before,#lineup #benchtable tr.playerrow td.weekly-opp b:before{content:"Player on ";}
#lineup #startertable tr.playerrow td.weekly-opp b:after,#lineup #benchtable tr.playerrow td.weekly-opp b:after{content:" this week !";}
/* player injury */
#lineup #benchtable td.inj,#lineup #startertable td.inj{position:absolute;left:40px;top:36px;border:0;box-shadow:none;}
#lineup #benchtable td.inj b,#lineup #startertable td.inj b{font-size:10px;font-weight:400;border-radius:50%;width:16px;height:16px;line-height:16px;display:block}
/* player proj points */
#lineup #benchtable td.proj-pts,#lineup #startertable td.proj-pts{position:absolute;left:70px;top:37px;border:0;box-shadow:none;text-align:center;font-size:12px!important}
#lineup #benchtable td.proj-pts:before,#lineup #startertable td.proj-pts:before{content:"Proj Pts: ";}
/* player bye */
#lineup #benchtable td.bye,#lineup #startertable td.bye{display:none;}
/* player ytd points */
#lineup #benchtable td.ytd-pts,#lineup #startertable td.ytd-pts{position:absolute;right:120px;top:18px;border:0;box-shadow:none;width:45px;text-align:center}
#lineup #benchtable tr.theader td.ytd-pts,#lineup #startertable tr.theader td.ytd-pts{position:absolute;right:120px;top:0;border:0;box-shadow:none;width:45px;text-align:center;}
#lineup #benchtable td.ytd-pts a,#lineup #startertable td.ytd-pts a{text-decoration:none}
/* player avg points */
#lineup #benchtable td.avg-pts,#lineup #startertable td.avg-pts{position:absolute;right:180px;top:18px;border:0;box-shadow:none;width:45px;text-align:center}
#lineup #benchtable tr.theader td.avg-pts,#lineup #startertable tr.theader td.avg-pts{position:absolute;right:180px;top:0;border:0;box-shadow:none;width:45px;text-align:center;}
/* player rush pass rank */
#lineup #benchtable td.rush-rank,#lineup #startertable td.rush-rank{position:absolute;right:40px;top:18px;border:0;box-shadow:none;width:20px;text-align:center}
#lineup #benchtable td.pass-rank,#lineup #startertable td.pass-rank{position:absolute;right:75px;top:18px;border:0;box-shadow:none;width:20px;text-align:center}
#lineup #benchtable tr.theader td.rank,#lineup #startertable tr.theader td.rank{position:absolute;right:40px;top:0;border:0;box-shadow:none;width:60px;text-align:center;}
#lineup #benchtable td.pass-rank a,#lineup #startertable td.pass-rank a,#lineup #benchtable td.rush-rank a,#lineup #startertable td.rush-rank a{text-decoration:none}
tr.theader .opp-rank{white-space:nowrap;display:block;position:absolute;left:0;right:0;top:-8px}
tr.theader .rush-rank{position:absolute;left:0px;top:7px}
tr.theader .pass-rank{position:absolute;right:0px;top:7px;}
/* player nfl news */
#lineup #startertable tr.playerrow td.nfl-news,#lineup #benchtable tr.playerrow td.nfl-news{display:none}

/* Disable pointer events */
#lineup #startertable tr.playerrow,#lineup #benchtable tr.playerrow{pointer-events:none;z-index:0}
/* Enable pointer events for player name - ytd points and font awesome icon */
#lineup #startertable td.player a,#lineup #benchtable td.player a,#startertable tr.playerrow:after,#benchtable tr.playerrow:after{pointer-events:all}
#lineup #startertable td.player a:before,#lineup #benchtable td.player a:before{content:"";position:absolute;height:100%;width:102%;z-index:-1;}

/* Add sillouete image to starter empty table rows */
#startertable tr.row_empty td{position:relative;}
#startertable tr.row_empty td:before {content:"";position:absolute;border-radius: 50%; width: 51px;max-width: 51px;height: 51px;overflow: hidden;text-align: center;position: absolute;left: 1px;top: 2px;background:#fff url("https://www.mflscripts.com/ImageDirectory/script-images/silhouette.png")no-repeat;background-size:42px 57px;border:1px solid #ddd;border-bottom:0;background-position:50% 60%;overflow:hidden;}


/******************/
/*  FONT AWESOME  */
/******************/
/* Starter table x icon */
#lineup #startertable tr.playerrow:after{content:"\f057";font-family:FontAwesome;position:absolute;top:13px;z-index:1;font-size:30px;right:5px}
/* Bench table + icon */
#lineup #benchtable tr.playerrow:after{content:"\f055";font-family:FontAwesome;position:absolute;top:13px;z-index:1;font-size:30px;right:5px}
/* Starter and Bench table lock icon */
#lineup #benchtable tr.playerrow.disabled-row:after,#lineup #startertable tr.playerrow.disabled-row:after{content:"\f023";font-family:FontAwesome;position:absolute;top:13px;z-index:1;font-size:30px;right:7px;cursor:default}
/* Starter and Bench table checkmark icon */
#lineup #benchtable tr.playerrow.original-starter:before,#lineup #startertable tr.playerrow.original-starter:before{content:"\f05d";font-family:FontAwesome;position:absolute;top:1px;z-index:1;font-size:16px;left:1px;cursor:default;height:12px;width:12px;background:none}
/* Button layout to use icons */
#lineup .form_buttons input[type="button"],#go-back.form_buttons input[type="button"]{position:relative;padding:5px 10px 5px 25px !important;font-size:16px}
/* Submit button icon */
#lineup .form_buttons:before{font-family:'FontAwesome';position:relative;left:26px;content:"\f00c";z-index:1;font-size:16px}
/* Use default submission form icon */
#lineup .form_buttons.default-btn input[type="button"]{position:relative;padding:5px 25px 5px 10px !important;font-size:16px}
#lineup .form_buttons.default-btn:before,#lineup h3 + p.default-btn {display:none}
#lineup .form_buttons.default-btn:after{font-family:'FontAwesome';position:relative;right:23px;content:"\f0a9";z-index:1;font-size:16px}
/* form submission go back button */
#go-back:before {font-family: 'FontAwesome'; position: relative;left: 23px;content: "\f0e2";z-index: 1;font-size: 16px;}
#lineup p.form_buttons,#go-back.form_buttons{margin-left:-16px;}
#lineup p.form_buttons.default-btn{margin-left:16px;}
</style>

Lineup Responsive CSSPlace CSS or header

<style>
/* Lineup Responsive Styles */
@media only screen and (max-width: 63em) {
/* player avg points */
#lineup #benchtable td.avg-pts,#lineup #startertable td.avg-pts,
#lineup #benchtable tr.theader td.avg-pts,#lineup #startertable tr.theader td.avg-pts{display:none}
}
@media only screen and (max-width: 54em) {
/* player ytd points */
#lineup #benchtable td.ytd-pts,#lineup #startertable td.ytd-pts,
#lineup #benchtable tr.theader td.ytd-pts,#lineup #startertable tr.theader td.ytd-pts{display:none}
}
@media only screen and (max-width: 44em) {
.starter-hide,.bench-hide{display:none!important}
.starter-show,.bench-show{float:inherit!important;width:100%!important}
.mobile-link{cursor:pointer}
.mobile-table-hide{display:none!important}
.mobile-table-show{float:inherit!important;width:100%!important}
#lineup #startertable .row_empty td{position:relative}
#lineup #startertable .row_empty td:after{font-family:"FontAwesome";position:absolute;content:"\f055";font-size:30px;right: 5px;top: 50%;transform: translateY(-50%)}
/* player ytd points */
#lineup #benchtable td.ytd-pts,#lineup #startertable td.ytd-pts,
#lineup #benchtable tr.theader td.ytd-pts,#lineup #startertable tr.theader td.ytd-pts{display:block;right:150px;}
/* player avg points */
#lineup #benchtable td.avg-pts,#lineup #startertable td.avg-pts,
#lineup #benchtable tr.theader td.avg-pts,#lineup #startertable tr.theader td.avg-pts{display:block;right:250px;}
}
@media only screen and (max-width: 35em) {  
/* player ytd points */
#lineup #benchtable td.ytd-pts,#lineup #startertable td.ytd-pts,
#lineup #benchtable tr.theader td.ytd-pts,#lineup #startertable tr.theader td.ytd-pts{right:120px;}
/* player avg points */
#lineup #benchtable td.avg-pts,#lineup #startertable td.avg-pts,
#lineup #benchtable tr.theader td.avg-pts,#lineup #startertable tr.theader td.avg-pts{right:180px;}  
}
@media only screen and (max-width: 31em) {
/* player avg points */
#lineup #benchtable td.avg-pts,#lineup #startertable td.avg-pts,
#lineup #benchtable tr.theader td.avg-pts,#lineup #startertable tr.theader td.avg-pts{display:none}  
}
@media only screen and (max-width: 26em) {
/* player ytd points */
#lineup #benchtable td.ytd-pts,#lineup #startertable td.ytd-pts,
#lineup #benchtable tr.theader td.ytd-pts,#lineup #startertable tr.theader td.ytd-pts{display:none} 
}
@media only screen and (max-width: 20em) {
#lineup #benchtable td.rush-rank,#lineup #startertable td.rush-rank{right:38px;}
#lineup #benchtable td.pass-rank,#lineup #startertable td.pass-rank{right:68px;}
#lineup #benchtable tr.theader td.rank,#lineup #startertable tr.theader td.rank{right:36px;}
tr.theader .rush-rank{left:3px}
tr.theader .pass-rank{right:3px;}
}
@media only screen and (max-width: 19.9em) {
#lineup #benchtable td.rush-rank,#lineup #startertable td.rush-rank,#lineup #benchtable td.pass-rank,#lineup #startertable td.pass-rank{display:none}
#lineup #benchtable tr.theader td.rank,#lineup #startertable tr.theader td.rank{display:none}
}
</style>