function CheckReminderDates(NumRecs, FormName)
{
	var Months30Days = '9,4,6,11';
	var Months28Days = '2';
	var ErrorMessage = '';

	for (Index = 1; Index <= NumRecs; Index++)
	{
		var MonthField = eval('document.' + FormName + '.Month' + Index);
		var DayField = eval('document.' + FormName + '.Day' + Index);

		// Check the month and the day
		if (ListFind(Months30Days, MonthField.options[MonthField.selectedIndex].value, ",") != -1 && DayField.options[DayField.selectedIndex].value > 30)
			ErrorMessage = ErrorMessage + 'Reminder ' + Index + ' has an invalid date: ' + MonthField.options[MonthField.selectedIndex].value + '/' + DayField.options[DayField.selectedIndex].value + ' \n';

		else if (MonthField.options[MonthField.selectedIndex].value == 2 && DayField.options[DayField.selectedIndex].value > 28)
			ErrorMessage = ErrorMessage + 'Reminder ' + Index + ' has an invalid date: ' + MonthField.options[MonthField.selectedIndex].value + '/' + DayField.options[DayField.selectedIndex].value + ' \n';
	}

	if (ErrorMessage.length > 0)
	{
		alert('The following errors occured while processing your reminders:\n' + ErrorMessage + 'Please try again');
		return false;
	}
	else
		return true;
 }

 function ListDeleteAt(list, index, delimiter)
{
	var splitString = list.split(delimiter);

	if (index > -1)
	{
		// delete the existing element
		splitString.splice(index, 1);
	}

	// convert back to string
	var newList = '';

	for (var i = 0; i < splitString.length; i++)
	{
		newList = ListAppend(newList, splitString[i], delimiter);
	}

	return newList;
}

function ListLen(list)
{
	if (arguments.length > 1)
		var delimiter = arguments[1];
	else
		var delimiter = ','

	var splitString = list.split(delimiter);

	return splitString.length;
}

function ListGetAt(list, index, delimiter)
{
	var splitString = list.split(delimiter);

	return splitString[index];
}

function ListAppend(list, string, delimiter)
{
	var splitList = list.split(delimiter);

	if (splitList.length == 0 || list.length == 0)
		var newList = string;
	else
		var newList = list + delimiter + string;

	return newList;
}

function ListContains(list, string, delimiter)
{
	var splitList = list.split(delimiter);

	var returnIndex = -1;

	for (var i = 0; i < splitList.length; i++)
	{
		if (splitList[i].indexOf(string) != -1)
		{
			returnIndex = i;
			break;
		}
	}

	return returnIndex;
}

function ListFind(List, StringToCheck, Delimiter)
{
	// Split the string
	var SplitString = List.split(Delimiter);
	var ReturnIndex = -1;

	for (i = 0; i <= SplitString.length - 1; i++)
	{
		if (SplitString[i] == StringToCheck)
		{
			ReturnIndex = i;
			break;
		}
	}

	return ReturnIndex;
}

function ListFirst(list, delimiter)
{
	var splitString = list.split(delimiter);

	return splitString[0];
}

function ListLast(list, delimiter)
{
	var splitString = list.split(delimiter);

	return splitString[splitString.length - 1];
}

function checkMSIE()
{
	var browserName=navigator.appName;

	var browserVer=parseInt(navigator.appVersion);

	if (browserName.indexOf('Explorer') != -1)
		return true;
	else
		return false;
}

function getShowHideStyle(isShown)
{
	var newStyle = '';

	if (checkMSIE() && ! isShown)
		newStyle = 'block';
	else if (! checkMSIE() && ! isShown)
		newStyle = 'table-row';
	else
		newStyle = 'none';

	return newStyle;
}

function openScript(url,width,height)
{
	var Win = window.open(url,"openScript",'width=' + width + ',height=' + height + ',resizable=0,scrollbars=no,menubar=no,status=no');
}