/////////////////// // // Layout Constants ////////////////////// var xtl = 10; var yt = 145; var yta = 80; // Control adjust. Relative to yt. var xc2 = 760; var dv = 23; var dg = 3; var dvr = 10; var bcl = "bcl"; var bw = 70; var bwf = 93; var bh = 15; var hda = [75, 75, 75, 75, 65]; var strd = 1; // Start round var useRating = true; var saved = true; var year = 2019; /////////////////// // // Global Data ////////////////////// var pickTypeOut = 0; var totalPicks = 63; var LastRisk = 0; //constant var isSweet16 = 0; var viewOnly = false; var resultMsk; var phProp; var onServer; var singleClear = true; var blockMouse = false; var whatifmode = false; var viewReal = false; var whatifreset = false; var QPOK = false; var printMod = 0; var doRisk = true; var warning = ""; var gCount; var resOn = false; var back = null; /////////////////// // // PseudoClasses // ============= ////////////////////// function PHRiskNode(rd,strt,end) { this.rd = rd; this.strt = strt; this.end = end; this.rVal = 0; this.pc = 0; this.cummL = 0; this.cummH = 0; } function PHGenData() { this.lowPrefTeam = -1; this.lowPrefVal = -1; this.highPrefTeam = -1; this.highPrefVal = -1; } function QuickSet(quick) { pickTypeOut = (quick && DoQuick()); if (quick) Show("isQuick"); else Hide("isQuick"); } /////////////////// // // Utilities ////////////////////// function Random(n) { return Math.floor(Math.random() * n); } function Px(n) { return ""+n+"px"; } function Team2Seed(tm) { tm %= 16; var s = " 116 8 9 512 413 611 314 710 215"; return s.substring(tm*2,tm*2+2); } function ToColor(num) { str = num.toString(16); while (str.length < 6) str = "0" + str; str = "#" + str; return str; } function Digit(str) { if (("0"<=str) && (str<="9")) return true; return false; } function HexDigit(h) { h -= 48; if (h > 9) h -= 7; return h; } function NumFormat(val, prec) { if (prec == 0) return (Math.floor(val)).toString() + "."; val += prec * 0.5; local = (Math.floor(val)).toString()+"."; while (prec < 0.99) { val -= Math.floor(val); val *= 10; prec *= 10; local += (Math.floor(val)).toString(); } return local; } function ValidInt(str) { len = str.length; if (len <= 0) return false; for (pos = 0;pos < len;pos++) { if (!Digit(str.charAt(pos))) return false; } return true; } function ValidReal(str) { len = str.length; st = 1; for (pos=0;pos < len;pos++) { ch = str.substring(pos,pos+1); switch (st) { case 1: if (ch == " ") continue; if (Digit(ch)) { st = 2; continue; } return false; case 2: if (Digit(ch)) continue; if (ch == ".") { st = 3; continue; } return false; case 3: if (Digit(ch)) continue; if (ch == " ") { st = 4; continue; } return false; case 4: if (ch == " ") continue; return false; } } if (st >=2) return true; return false; } ///////////////////////// // Fader Operation // =============== ///////////////////////////// var lockInput = 0; var fadePercent; var fadeButton; var EndFade; var Fader; var fadeInterval=0; var fadeStep; function TeamTick() { if (teams[fadeButton].teamId>=0) teams[fadeButton].SetAlpha(fadePercent); } function TeamTickEnd() { TeamTick(); Refresh(); } function ClearTick() { for (var btn=64+lockCountOut;btn <= 126;btn++) if (teams[btn].teamId>=0) teams[btn].SetAlpha(fadePercent); } function QuickEnd() { ClearTick(); Refresh(); } function ReloadEndClear() { ClearAll(); QuickFunc(); } function FadeBlock(bit) { var ef; Anything(); if (bit & lockInput) return true; if (lockInput > 0) { clearInterval(fadeInterval); if (fadeStep<0) fadePercent = 100; else fadePercent = 0; Fader(); ef = EndFade(); EndFade = null; Fader = null; lockInput = 0; if (ef) ef(); } return false; } function FadeTick() { var ef; if (fadeInterval == null) return; fadePercent -= fadeStep; fadePercent = Math.max(0,fadePercent); fadePercent = Math.min(100,fadePercent); if (fadePercent <= 0 || fadePercent >= 100) { clearInterval(fadeInterval); fadeInterval = null; } if (fadeInterval == null) { ef = EndFade; EndFade = null; Fader = null; lockInput = 0; if (ef) ef(); } else Fader(); } ///////////////////////// // MouseOver // ========= ///////////////////////////// var intervalId = null; var mouseId = -1; function Over(id) { if (blockMouse || lockInput) return; mouseId = id; ClearInt(); intervalId = setInterval(OverCallBack,1000); } function ClearInt() { if (intervalId != null) clearInterval(intervalId); intervalId = null; } function RollOut() { ClearInt(); mouseId = -1; MouseOut(); } function OverCallBack() { ClearInt(); if (mouseId >= 0) MouseOver(mouseId); } function MouseOut() { Hide("mm"); Hide("md"); mouseId = -1; } function MouseOver(id) { var fg = document.getElementById("mm"); var t = teams[id].teamId; if (t < 0) return; var mk = teams[t].mouseKey; if (mouseJs != undefined) mouseArr = mouseJs; if (mouseArr[mk] != undefined) { if (league == 'tbt') { var s = LogoTbt(logodir+"2/"+mk); } else var s = Logo(logodir+mk); s += '
' + nm + "
\n"; return rs; } function RegionNames() { xo = hda[0] + hda[1] + Math.round(hda[2] / 2); xa = xtl + xo; xb = xtl + xc2 - xo - 30; yy = yt + dv * 8 + dg * 3 - 10; rn = Region("rlt", tlr, xa, yy) + Region("rrt",trr, xb, yy) ; yy += dv * 16 + dg * 8 + dvr; rn += Region("rlb", blr, xa, yy) + Region("rrb",brr, xb, yy); return rn; } function StaticLabelRight(lbl, x, y, b, fw, id, exst) { sty = 'top: ' + y + 'px;right: ' + x + 'px;font-size: ' + fw + 'px;'; if (b & 1) sty += 'font-weight: bold;'; if (b & 2) sty += 'font-style: italic;'; if (exst != null) sty += exst; sl = '' + lbl + "
\n"; return sl; } function StaticLabel(lbl, x, y, b, fw, id, exst) { sty = 'top: ' + y + 'px;left: ' + x + 'px;font-size: ' + fw + 'px;'; if (b & 1) sty += 'font-weight: bold;'; if (b & 2) sty += 'font-style: italic;'; if (exst != null) sty += exst; sl = '' + lbl + "
\n"; return sl; } function StaticLabels() { tnr = 'font-family: "Time New Roman";'; sl = 'Risk refers to a numeric risk factor "; v += "of a bracket entry. The Risk Factor is a number between 0 and 100 and measures the "; v += "riskiness of the picks that are made (based on how similarly seeded teams "; v += "have performed in previous tournaments). Generally the more games won by lower seeded teams "; v += "the higher the risk factor will be.
"; v += "The risk factor is shown on the entry form after all picks "; v += "are made. For QuickPicks, a contestant can enter a numeric "; v += "risk factor between 0 and 100 and automatically generate a "; v += "random set of picks that corresponds approximately to the desired risk factor. "; v += "Leave the Desired Risk box blank to have a Risk Factor "; v += "itself randomly generated for which the picks will then be generated.
"; v += "