/* global javascript functions */

/* date functions */


// declare and initialize variables 
var thisDate    = new Date();
var thisYear    = thisDate.getFullYear();
var thisMonth   = thisDate.getMonth();
var thisDay     = thisDate.getDate();
var dayName     = thisDate.getDay();
var dayNames    = new Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday");
var monthNames  = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
var shortDayNames    = new Array("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun");
var shortMonthNames  = new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec");
var lengthOfStay;


function getMonthLength(month, year)
{
    shortMonths = new Array(9, 4, 6, 11);
	
    for (i= 0; i< 4; i++)
    {
        if (shortMonths[i] == month)
        {
            monthLength = 30;
            return monthLength;
        }
    }
    if (month == 2)
    {
	    if (year % 4 == 0)
	    {
		    monthLength = 29;
	    }
	    else
	    {
		    monthLength = 28;
    	}
    }    
	else
	{
		monthLength = 31;
	}
	
	return monthLength;
}



function getDateSuffix(dayNumber)
{
    if ((dayNumber + 10) % 10 == 1)
    {
        if (dayNumber == 11)
        {
            daySuffix = "th";
        }
        else
        {
            daySuffix = "st";
        }
    }
    else if ((dayNumber + 10) % 10 == 2)
    {
        if (dayNumber == 12)
        {
            daySuffix = "th";
        }
        else
        {
            daySuffix   = "nd";
        }
    }
    else if ((dayNumber + 10) % 10 == 3)
    {
        if (dayNumber == 13)
        {
            daySuffix = "th";
        }
        else
        {
            daySuffix   = "rd";
        }
    }
    else
    {
       daySuffix = "th";
    }

    return daySuffix;
}

// function to get the day name for a date
function dayOfWeek(day, month, year) 
{
    monthStartDate  = month + "/" + day + "/" + year;
    then            = new Date(monthStartDate);
    then.getDay();

    return then.getDay();
}

function addEvent(obj, evType, fn)
{ 
	if (obj.addEventListener)
    { 
		obj.addEventListener(evType, fn, false); 
		return true; 
	} 
    else if (obj.attachEvent)
    { 
		var r = obj.attachEvent("on"+evType, fn); 
		return r; 
	} 
    else 
    { 
		return false; 
	}
}


/* style changing functions */
function display(element) 
{
	if (document.getElementById(element) != null) 
    {
		document.getElementById(element).style.display = "block";	
	}
}

function displayInline(element)
{
    if (document.getElementById(element) != null)
    {
        document.getElementById(element).style.display = "inline";
    }
}

function hide(element) 
{
	if (document.getElementById(element) != null) 
    {
		document.getElementById(element).style.display = "none";
	}
}

function makeVisible(element)
{
    if (document.getElementById(element) != null)
    {
        document.getElementById(element).style.visibility = "visible";
    }
}

function makeInvisible(element)
{
    if (document.getElementById(element) != null)
    {
        document.getElementById(element).style.visibility = "hidden";
    }
}

function changeBg(element, colour)
{
    if (document.getElementById(element) != null)
    {
        document.getElementById(element).style.backgroundColor = colour;
    }
}

function setBorder(element, border)
{
    if (document.getElementById(element) != null)
    {
        document.getElementById(element).style.border = border;
    }
}

function setOptionsLength(element, length)
{
    if (document.getElementById(element) != null)
    {
        document.getElementById(element).options.length = length;
    }
}

function setInnerHTML(element, HTML)
{
    if (document.getElementById(element) != null)
    {
        document.getElementById(element).innerHTML = HTML;
    }
}

function changeColor(element, colour)
{
    if (document.getElementById(element) != null)
    {
        document.getElementById(element).style.color = colour;
    }
}

function makeBold(element)
{
    if (document.getElementById(element) != null)
    {
        document.getElementById(element).style.fontWeight = "bold";
    }
}

function makeUnbold(element)
{
    if (document.getElementById(element) != null)
    {
        document.getElementById(element).style.fontWeight = "normal";
    }
}


/* pop up */
var newWindow = null;

function closeWin()
{
	if (newWindow != null)
    {
		if(!newWindow.closed)
			newWindow.close();
	}
}

function popUpWin(url, type, strWidth, strHeight)
{
    closeWin();
	
	if (type == "fullScreen")
    {
		strWidth = screen.availWidth - 10;
		strHeight = screen.availHeight - 160;
	}
	
	var tools="";
	if (type == "standard" || type == "fullScreen") tools = "resizable,toolbar=yes,location=yes,scrollbars=yes,menubar=yes,width="+strWidth+",height="+strHeight+",top=0,left=0";
	if (type == "console") tools = "resizable,toolbar=no,location=no,scrollbars=yes,width="+strWidth+",height="+strHeight+",left=0,top=0";
	newWindow = window.open(url, 'newWin', tools);
	newWindow.focus();
}

