﻿function GetElementX(element)
{
	var curleft = 0;
	if (element.offsetParent)
	{
		while (element.offsetParent)
		{
			curleft += element.offsetLeft
			element = element.offsetParent;
		}
	}
	else if (element.x)
		curleft += element.x;
	return curleft;
}

function GetElementY(element)
{
	var curtop = 0;
	if (element.offsetParent)
	{
		while (element.offsetParent)
		{
			curtop += element.offsetTop
			element = element.offsetParent;
		}
	}
	else if (element.y)
		curtop += element.y;
	return curtop;
}

function GetMouseX(ev, element)
{
    var x = 0;

	if (ev.pageX)
	{
		x = ev.pageX;
	}
	else if (ev.clientX)
	{
		x = ev.clientX + document.body.scrollLeft;
	}
    
    x -= GetElementX(element);
    
    return x;
}

function GetMouseY(ev, element)
{
    var y = 0;

	if (ev.pageY)
	{
		y = ev.pageY;
	}
	else if (ev.clientY)
	{
		y = ev.clientY + document.body.scrollTop;
	}
    
    y -= GetElementY(element);
    
    return y;
}

function DaysInMonth(month, year)
{
    if (month == 0 || month == 2 || month == 4 || month == 6 || month == 7 || month == 9 || month == 11)
    { 
        return 31;
    }
    else if (month == 3 || month == 5 || month == 8 || month == 10)
    {
        return 30;
    }
    else if (month == 1)
    {
        var Result = 0;
        
        var CenturyYear = new String(year);
        var CenturyNum = new String(CenturyYear.charAt(2)+CenturyYear.charAt(3));
        var DividedYear;
        
        if (CenturyNum == "00")
        {
            DividedYear = year/400;
        }
        else
        {
            DividedYear = year/4;
        }
        
        var DividedString = new String(DividedYear);
        var DecimalIndex = DividedString.indexOf('.');
            
        if (DecimalIndex != -1)
        {
            return 28;
        }
        else
        {
            return 29;
        }
    }

    return 0;
}

var m_MonthArray = new Array("January","February","March","April","May","June","July","August","September","October","November","December");

function GetMonthName(month)
{
    return m_MonthArray[month];
}

var m_DayExtensions = new Array("st","nd","rd","th","th","th","th","th","th","th","th","th","th","th","th","th","th","th","th","th","st","nd","rd","th","th","th","th","th","th","th","st");

function GetDayExtension(day)
{
    return m_DayExtensions[day-1];
}