var alphabet = "abcdefghijklmnopqrstuvwxyz"
var year = ["January" , "February" , "March" , "April" , "May" , "June" , "July" , "August" , "September" , "October" , "November" , "December"]
var days = [ "Sunday" , "Monday" , "Tuesday" , "Wednesday" , "Thursday" , "Friday" , "Saturday"]

var putResults = document.getElementById("results")
var theTab = document.getElementById("mrT")

var resLimit = true
var theResLimit = 10

function stringToWordArray(string)
{
var newPos = 0
var wArray = [""]

while(string[string.length-1] == " " && string.length > 0)
{
string = string.substr(0,string.length-1)
}

for(var mkArray=0; mkArray<string.length; mkArray++)
{
if(string[mkArray] == " ")
{ 
newPos++
wArray[newPos] = ""
}
else
{
wArray[newPos] += string[mkArray]
}	

}

return wArray

}

function countLetters(string)
{
string = string.toLowerCase()
var count = 0

for(var i=0; i<string.length; i++)
{
if(alphabet.indexOf(string[i])>-1)
count++	
}

return count;

}

function goDate()
{
var dayv = document.getElementById("day").value - 0
var monthv = document.getElementById("month").value - 0
var yearv = document.getElementById("year").value - 0
/*
var days = document.getElementById("day").value + ""
var months = document.getElementById("month").value + ""
var years = document.getElementById("year").value + ""
*/

var monthName = year[monthv-1]
/*
var newh = document.createElement("h2")
newh.appendChild(document.createTextNode(dayv))
var newsup = document.createElement("sup")
newsup.appendChild(document.createTextNode(getOrdinal(dayv)))
newh.appendChild(newsup)
newh.appendChild(document.createTextNode(" " + monthName + " " + yearv))
putResults.appendChild(newh)
*/
writeText(monthName.length , monthName + ": " + monthName.length + " letters")

if(monthv>8)
{
writeOrdinalText((monthv-2) , monthName + " used to be the " , (monthv-2) , " month of the year")
}

writeText((dayv+monthv) , "day + month = " + (dayv+monthv))

if(dayv>9)
{
writeText(digAdd(dayv) , "Sum of digits in day = " + digAdd(dayv))
}

if(monthv>9)
{
writeText(digAdd(monthv), "Sum of digits in month = " + digAdd(monthv))
}

writeText(digAdd(monthv)  + digAdd(dayv) , "Sum of digits in day & month = " + (digAdd(monthv)  + digAdd(dayv)))

writeText(digAdd(yearv) , "Sum of digits in year = " + digAdd(yearv))

writeText(digAdd(dayv) + digAdd(yearv) , "Sum of digits in day & year = " + (digAdd(dayv) + digAdd(yearv)))
writeText(digAdd(monthv) + digAdd(yearv) , "Sum of digits in month & year = " + (digAdd(monthv) + digAdd(yearv)))

writeText(digAdd(monthv)  + digAdd(dayv) + digAdd(yearv) , "Sum of digits in day , month & year = " + (digAdd(monthv)  + digAdd(dayv)  + digAdd(yearv)))

writeOrdinalText(monthv , monthName + ": the " , monthv , " month")
writeOrdinalText(dayv , "The " , dayv , " of the month")

var theDate = new Date(yearv,monthv-1,dayv)
var dayOfYear = Math.floor((theDate - new Date(yearv-1,11,31)) / 86400000)
var yearDays = daysInYear(yearv)

writeText(yearDays , "Days in year: " + yearDays)

writeOrdinalText(dayOfYear , "The " , dayOfYear , " day of the year")

writeText(yearDays - dayOfYear , "Number of days left in year: " + (yearDays - dayOfYear))

writeText(digAdd(yearDays - dayOfYear) , "Sum of digits in days left: " + digAdd(yearDays - dayOfYear))
writeText(digAdd(dayOfYear) , "Sum of digits in day of year: " + digAdd(dayOfYear))

writeText(days[theDate.getDay()].length , "On a " + days[theDate.getDay()] + ", which has " +  days[theDate.getDay()].length + " letters")
}

function daysInYear(year)
{
	
if(isLeapYear(year))
{
return 366
}

return 365
}

function isLeapYear(year)
{
if(year%400==0)
return true

if(year%100==0)
return false

if(year%4==0)
return true

return false
}

function goString()
{
var theString = document.getElementById("strs").value

writeText(theString.length , "Length of '" + theString + "' : " + theString.length)

if(countLetters(theString) != theString.length)
{
writeText(countLetters(theString) , "Letters in '" + theString + "' : " + countLetters(theString))
}

if(stringToWordArray(theString).length > 1)
{
writeText(stringToWordArray(theString).length , "Words in '" + theString + "' : " + stringToWordArray(theString).length)
}

}

function digAdd(number)
{
number = "" + number
var result = 0

for(var i=0; i<number.length; i++)
{
result += (number.charAt(i)-0)	
}

return result
}

function writeText(about , text)
{
var putResults = getPlace(about)

putResults.appendChild(document.createTextNode(text))
putResults.appendChild(document.createElement("br"))
}

function writeOrdinalText(about , text , number , moretext)
{
var putResults = getPlace(about)

putResults.appendChild(document.createTextNode(text + number))
var newsup = document.createElement("sup")
newsup.appendChild(document.createTextNode(getOrdinal(number)))
putResults.appendChild(newsup)
putResults.appendChild(document.createTextNode(moretext))
putResults.appendChild(document.createElement("br"))	
}

function getPlace(number)
{

if(document.getElementById("n" + number) != null)
{
return document.getElementById("n" + number).childNodes.item(1)
}

var newRow = document.createElement("tr")
newRow.setAttribute("id" , "n" + number)
var ntd = document.createElement("td")
ntd.appendChild(document.createTextNode(number))
newRow.appendChild(ntd)
newRow.appendChild(document.createElement("td"))

var cnds = theTab.getElementsByTagName("tr")
if(cnds.length > 0)
{
var loop = true
}
else
{
var loop = false	
}
var cPos = 0

while(loop)
{

if(cnds.item(cPos).getAttribute("id").substr(1) -0 > number)
{
theTab.insertBefore(newRow , cnds.item(cPos))
return newRow.childNodes.item(1)
}

cPos++

if(cPos == cnds.length)
{
loop = false
}

}

theTab.appendChild(newRow)

return newRow.childNodes.item(1)

}

function getOrdinal(number) //not accurate >110, but not used
{
number = "" + number

if(number>3 && number<21)
{
return("th")
}

if(number[number.length-1] == "1")
{
return "st"
}

if(number[number.length-1] == "2")
{
return "nd"
}

if(number[number.length-1] == "3")
{
return "rd"
}

return "th"
}

