//= Copyright 2003, Peter A. Curran. All rights reserved.





baseYr = 2000
hourLength = (60 * 60 * 1000)
dayLength = (24 * hourLength)
Easters = ["April 23, 2000",
"April 15, 2001",
"March 31, 2002",
"April 20, 2003",
"April 11, 2004",
"March 27, 2005",
"April 16, 2006",
"April 8,  2007",
"March 23, 2008",
"April 12, 2009",
"April 4,  2010",
"April 24, 2011",
"April 8, 2012",
"March 31, 2013",
"April 20, 2014",
"April 5, 2015",
"March 27, 2016",
"April 16, 2017",
"April 1, 2018",
"April 21, 2019",
"April 12, 2020",
"April 4, 2021",
"April 17, 2022",
"April 9, 2023",
"March 31, 2024"]



dateYear = 0
LitDates = new Array(17)






function setLitDates (dt)
{
if (arguments.length <= 0)
dt = new Date()
yr = dt.getFullYear()
if (yr < baseYr)
yr = baseYr
else if ((yr - baseYr) >= Easters.length)
yr = baseYr + Easters.length - 1

if (dateYear != yr) {
dateYear = yr
easter = new Date(Easters[yr - baseYr])

LitDates[0] = new Date(yr-1, 11, 31)
LitDates[1] = new Date(yr, 0, 7)
LitDates[2] = adjustDate(easter, -46)
while (LitDates[2].getDay() != 3)
LitDates[2] = adjustDate(LitDates[2], 1)
LitDates[3] = adjustDate(LitDates[2], 1)
LitDates[4] = adjustDate(easter, -7)
LitDates[5] = adjustDate(easter, -2)
LitDates[6] = easter
LitDates[7] = adjustDate(easter, 1)
LitDates[8] = adjustDate(easter, 49)
LitDates[9] = adjustDate(easter, 50)
LitDates[10] = new Date(yr, 10, 1)
LitDates[11] = new Date(yr, 10, 2)
LitDates[12] = new Date(yr, 10, 27)
while (LitDates[12].getDay() != 0)
LitDates[12] = adjustDate(LitDates[12], 1)
LitDates[13] = adjustDate(LitDates[12], 14)
LitDates[14] = adjustDate(LitDates[13], 7)
LitDates[15] = new Date(yr, 11, 25)
LitDates[16] = new Date(yr+1, 0, 1)
}
}




function adjustDate (dt, delta)
{
rslt = new Date(dt.valueOf() + (delta * dayLength))

h1 = dt.getHours()
h2 = rslt.getHours()
if (h1 != h2) {
d = h1 - h2
if (d > 12)
d = 24 - d
else if (d < -12)
d = 24 + d
rslt = new Date(rslt.valueOf() + (d * hourLength))
}

return rslt
}



function dayInYear (dt)
{
if (arguments.length <= 0)
dt = new Date()
return Math.floor((dt.valueOf()
- (new Date(dt.getFullYear(), 0, 1)).valueOf()
+ (12*hourLength)) / dayLength)
}





























ClrNames  = ["white",   "red",     "scarlet", "pink",    "orange",
"yellow",  "gold",    "green",   "blue",    "purple",
"violet",  "brown",   "black",    "offwhite",
"green0",	"green1",  "green2" ,  "green3", "green4",
"green5",  "green6",  "green7",   "green8", "green9"]
ClrCodes  = ["#FFFFFF", "#FF0000", "#DC1434", "#FFC0Cb", "#000000",
"#FFFF00", "#FFD700", "#008000", "#0000FF", "#800080",
"#EE82EE", "#A52A2A", "#000000", "#F5F5DC",
"#008000", "#228B22", "#7CFC00", "#00FF00", "#32CD32",  //Greens
"#90EE90", "#00FA9A", "#00FF7F", "#9ACD32"]
Greens    = 10




function getColourCd (clr)
{
clr = clr.toLowerCase()
for (i = 0; i < ClrNames.length; ++i)
if (clr == ClrNames[i])
break

if (i >= ClrNames.length)
rslt = WhiteCd
else
rslt = ClrCodes[i]

return rslt
}









LitColours = ["white", "white", "green", "black", "purple", "scarlet",
"black", "gold", "white", "red", "green", "scarlet", "green",
"blue", "pink", "blue", "white"]






manyGreens = 1
useOffWhite = 2
useGold = 4
function getLitColour (dt, opts)
{
if (arguments.length <= 0)
dt = new Date()
if (arguments.length <= 1)
opts = 0
setLitDates(dt)

for (i = 0; i < LitDates.length; ++i)
if (dt < LitDates[i])
break
if (i >= LitColours.length)
i = 0
clr = LitColours[i]

if ((opts & manyGreens) && (clr == "green"))
clr = clr + ((dayInYear(dt) + 4) % Greens)
else if ((opts & useOffWhite) && (clr == "white"))
clr = "OffWhite"
else if ((opts & useGold) && (clr == "white"))
clr = "gold"

return clr
}









function getLitClrCode (dt, opts)
{
if (arguments.length <= 0)
dt = new Date()
if (arguments.length <= 1)
opts = 0
return getColourCd(getLitColour(dt, opts))
}





function setLitTxtClr ()
{
rslt = getColourCd(getLitColour(new Date(), 0))
if (rslt == "#FFFFFF") {
rslt = "gold"
cd = getColourCd(rslt)
if (cd.length > 0)
rslt = cd
}
document.write("<font color='" + rslt + "'>")
}









function litTxt (font)
{
rslt = getColourCd(getLitColour(new Date(), 0))
if (rslt == "#FFFFFF") {
rslt = "gold"
cd = getColourCd(rslt)
if (cd.length > 0)
rslt = cd
}

document.write("<font color='" + rslt + " " + font + "'>")
for (i = 1; i < arguments.length; ++i) {
if (i > 1)
document.write(" ")
document.write(arguments[i])
}
document.write("</font>")
}
