function webinarClass()
{
	var now = new Date();			// today
	var cutOff = new Date();		// show events up until cutOff
	var maxTypeCount = 5;
	var webinarStruc = [];
	cutOff.setDate(now.getDate()+10*7);	// 5 weeks into future
	sortFn = function(a,b)
	{
		if (a[1] < b[1])
			return -1;
		if (a[1] > b[1])
			return 1;
		return 0;
	}
	getTypeCount = function(type)
	{
		var count = 0;
		for (i=0; i<webinarStruc.length; i++)
		{
			if (webinarStruc[i][0] == type)
				count++;
		}
		return count;
	}
	getMaxCount = function()
	{
		var max = 0;
		var typeCount = new Array();
		for (i=0; i<webinarStruc.length; i++)
		{
			type = webinarStruc[i][0];
			if (! typeCount[type])		// initialize
				typeCount[type] = 0;
			if ((++typeCount[type]) > max)
				max = typeCount[type];
		}
		return (max > maxTypeCount) ? maxTypeCount : max;
	}
	this.add = function(type,date,url)
	{
		dateArr = date.split('-');
		var d = new Date(dateArr[0],dateArr[1]-1,dateArr[2]);
		d.setHours(23);
		d.setMinutes(59);
		d.setSeconds(59);
		if ((0))			// debug output
			window.alert("event: " + d + "\n" + "now: " + now);
		// if (d < now || d > cutOff)				// ensure date is within valid boundary
		// if (d < now || getTypeCount(type) >= maxTypeCount)	// ensure within specified number of entries forward
		if (d < now)						// ensure date is within valid boundary
			return;
		webinarStruc.push([type,d,url]);
		if ((0))			// debug output
			window.alert(date);
	}
	this.showList = function(type)
	{
		var size = maxTypeCount;
		var count = 0;
		webinarStruc.sort(sortFn);			// sort the list just prior to printing, in case any data was added
		for (i=0; i<webinarStruc.length; i++)
		{
			if (webinarStruc[i][0] == type && count < size)		// gen list only for specified number of specified category type elements
			{
				var url = webinarStruc[i][2];
				var d = webinarStruc[i][1];
				var date = (["January","February","March","April","May","June","July",
					"August","September","October","November","December"])[d.getMonth()] + 
					" " + d.getDate() + ", " + d.getFullYear();
				document.writeln ('<li><a href="' + url + '" target="_blank">' + date + '</a></li>');
				count++;
			}
		}
		// now determine max number of elements across all types
		debug_maxCount = getMaxCount();
		debug_count = count;
		for (i=0; i<(getMaxCount()-count); i++)
		{
			document.writeln('<li>&nbsp;</li>');
		}
	}
}

