tzolkinDays = new Array("Ahau","Imix","Ik","Akbal","Kan","Chicchan","Cimi","Manik","Lamat","Muluc",
				"Oc","Chuen","Eb","Ben","Ix","Men","Cib","Caban","Etznab","Cauac","Ahau");
tzolkinObjects = new Array("Sun","Dragon","Wind","Night","Seed","Serpent",
				"World-bridger","Hand","Star","Moon","Dog","Monkey",
				"Human","Sky-walker","Wizard","Eagle","Warrior","Earth",
				"Mirror","Storm","Sun");
tzolkinColours = new Array("Yellow","Red","White","Blue","Yellow","Red",
				"White","Blue","Yellow","Red","White","Blue",
				"Yellow","Red","White","Blue","Yellow","Red",
				"White","Blue","Yellow");
tzolkinTones = new Array("Cosmic","Magnetic","Lunar","Electric","Self-existing","Overtone","Rhythmic",
				"Resonant","Galactic","Solar","Planetary","Spectral","Crystal","Cosmic");
haabMonths = new Array("","Pop","Uo","Zip","Zotz","Tzec","Xul","Yaxkin","Mol","Chen",
				"Yax","Zac","Ceh","Mac","Kankin","Muan","Pax","Kayab","Cumku","Uayeb");

epoch = new Date(1900,0,24,2);
testDate = new Date();
testDate.setHours(12);

daysSinceEpoch = 0;
dayCount = 0;
baktunCount = 0;
katunCount = 0;
tunCount = 0;
uinalCount = 0;
kinCount = 0;

baktunDays = 0;
katunDays = 0;
tunDays = 0;
uinalDays = 0;

tzolkinCount = 0;
tzolkinPosition = 0;
tzolkinObject = "";
tzolkinColour = "";
tzolkinTone = "";
haabDaysSinceEpoch = 0;
haabDayCount = 0;
haabDayNum = 0;
haabMonthNum = 0;

this.daysSinceEpoch = Math.floor(testDate.valueOf()/864e5) - Math.floor(epoch.valueOf()/864e5);
this.dayCount = this.daysSinceEpoch + 1830761;
this.haabDaysSinceEpoch = this.daysSinceEpoch + 269;
this.haabDayCount = this.haabDaysSinceEpoch % 365;
this.haabDayNum = this.haabDayCount % 20;
this.haabMonthNum = Math.floor(this.haabDayCount / 20) + 1;

this.baktunCount = Math.floor(this.dayCount / 144000);
this.baktunDays = this.baktunCount * 144000;

this.katunCount = Math.floor((this.dayCount - this.baktunDays) / 7200);
this.katunDays = this.katunCount * 7200;

this.tunCount = Math.floor((this.dayCount - this.baktunDays - this.katunDays) / 360);
this.tunDays = this.tunCount * 360;

this.uinalCount = Math.floor((this.dayCount - this.baktunDays - this.katunDays - this.tunDays) / 20);
this.uinalDays = this.uinalCount * 20;

this.kinCount = this.dayCount - this.baktunDays - this.katunDays - this.tunDays - this.uinalDays;

this.tzolkinCount = (this.daysSinceEpoch % 13) + 1;
this.tzolkinPosition = (this.daysSinceEpoch % 260) + 1;
this.tzolkinColour = (this.tzolkinColours[this.kinCount]);
this.tzolkinTone = (this.tzolkinTones[this.tzolkinCount]);
this.tzolkinObject = (this.tzolkinObjects[this.kinCount]);

function getLongCount()
{
	return this.baktunCount + '.' + this.katunCount + '.' + this.tunCount + '.' + this.uinalCount + '.' + this.kinCount;
}

function getTzolkin()
{
	return this.tzolkinCount + ' ' + this.tzolkinDays[this.kinCount];
}

function getTzolkinCount()
{
	return this.tzolkinCount;
}

function getMayanDay()
{
	return this.tzolkinDays[this.kinCount];
}

function getDayCount()
{
	return this.dayCount;
}

function getBaktunCount()
{
	return this.baktunCount;
}

function getKatunCount()
{
	return this.katunCount;
}

function getTunCount()
{
	return this.tunCount;
}

function getUinalCount()
{
	return this.uinalCount;
}

function getKinCount()
{
	return this.kinCount;
}

function getTzolkinPosition()
{
	return this.tzolkinPosition;
}

function getGalacticSign()
{
	return this.tzolkinColour + ' ' + this.tzolkinTone + ' ' + this.tzolkinObject;
}

function getHaabDayNum()
{
	return this.haabDayNum;
}

function getHaabMonthNum()
{
	return this.haabMonthNum;
}

function getHaabDate()
{
	return this.haabDayNum + ' ' + this.haabMonths[this.haabMonthNum];
}

function getStandardYear()
{
	var tunNumber = Math.floor(this.dayCount / 360);
	return tunNumber + 1;
}

function getStandardMonth()
{
	var uinalName = haabMonths[uinalCount + 1];
	return uinalName;
}