// Updated 9/21/2009
//
// if clib_fLinkHtml is true, then code is generated to be pasted into body
//
// needs following classes defined:
//
var clib_rgLeClassNames = new Array(
	'clib_links_title',
	'clib_links_eventName',
	'clib_links_header',
	'clib_links_image',
	'clib_links_date',
	'clib_links_link',
	'clib_links_address',
	'clib_links_description',
	'clib_links_separatorBar',
	'clib_links_categoryBar',
	'clib_links_categoryText',
	'clib_links_trailerBar'
	);
var clib_nrgLeClassNames = clib_rgLeClassNames.length;

function clib_setLeClassNames(title,eventName,header,image,date,link,address,description) {
	var args = clib_setLeClassNames.arguments
	var nargs = args.length;
	for (var i = 0; i < Math.min(nargs, clib_nrgLeClassNames); i++) if ((args[i] != null) && (args[i] != '')) clib_rgLeClassNames[i] = args[i];
	}

var clib_rgLinks = new Array();
var clib_nrgLinks = 0;

var clib_rgCategory = new Array();
var clib_nrgCategory = 0;

var clib_rgLinkHtml = new Array();
var clib_nrgLinkHtml = 0;
var clib_fLinkHtml = false;
var clib_fAllEvents = false;
var clibx_maxUrlDisp = 50;


clibdb_register('clib_rgCategory,clib_rgLinks,clib_rgLinkHtml')

function clib_categoryType(category,subCategory) { this.category = category; this.subCategory = subCategory; }

function clib_leType (title, sortKey, startDate, endDate, showDate, sortDate, phone, url, email, icon, iconHL, mapLink, yahooLink, googleLink, aName, category, subCategory, rgAddress, nrgAddress, rgDescription, nrgDescription) {
	this.members = 'title,sortKey,startDate,endDate,showDate,sortDate,phone,url,urlDisplay,email,icon,iconHL,mapLink,yahooLink,googleLink,aName,category,subCategory,irgCategory,rgAddress,nrgAddress,rgDescription,nrgDescription,eDiv';
	this.title=title;
	this.sortKey = sortKey;
	this.startDate=startDate;
	this.endDate=endDate;
	this.showDate=showDate;
	this.sortDate=sortDate;
	this.phone = phone;
	this.url = url
	if (url != null) { var rg = url.split('http://'); this.urlDisplay = rg[rg.length-1]; }
	else this.urlDisplay = url;
	this.email = clib_unhideUrl(email);
	this.icon = icon;
	this.iconHL = iconHL;
	if (typeof icon == 'string') clib_preLoadImages(icon);
	if (typeof iconHL == 'string') clib_preLoadImages(iconHL);
	this.mapLink = mapLink;
	this.yahooLink = yahooLink;
	this.googleLink = googleLink;
	this.aName = aName;
	this.category = category;
	this.subCategory = subCategory;
	this.irgCategory = clib_defineCategory(category, subCategory);
	this.rgAddress = rgAddress;
	this.nrgAddress = nrgAddress;
	this.rgDescription = rgDescription;
	this.nrgDescription = nrgDescription;
	this.eDiv = 'eDiv_' + clib_nrgLinks;
	}

function clib_linkHtmlType(url,title) { this.members = 'url,title'; this.url = url; this.title = title; }

function clibx_unhideEmail(email) {
	var rg = email.split(',');
	if (rg.length < 3) return email;
	
	return email;
	}

function clib_defineCategory(category, subCategory) {
	for (var i = 0; i < clib_nrgCategory; i++) if ((clib_rgCategory[i].category == category) && (clib_rgCategory[i].subCategory == subCategory)) return i;
	clib_rgCategory[clib_nrgCategory++] = new clib_categoryType(category, subCategory);
	return i;
	}

function clib_defineStore(category,subCategory, title, start,end,msg,phone,url,urlAlt, icon, email,  language,mapAddress, address, description) {
	var args = clib_defineStore.arguments;
	var nArgs = args.length;
	var iDescStart = 14;
	var rgDescription = new Array();
	var nrgDescription = 0;
	for (var i = iDescStart; i < nArgs; i++) if (args[i] != null) rgDescription[nrgDescription++] = clib_fixPeriodSpaces(args[i]);
	if (url!= null) clib_rgLinkHtml[clib_nrgLinkHtml++] = new clib_linkHtmlType(url,title);
	var mapLink = null;
	var yahooLink = null;
	var googleLink = null;
	if (mapAddress != null) {
		if (mapAddress.substr(0,4) == "http") mapLink = mapAddress;
		else {
			var rg = mapAddress.split(" ");
			if (rg.length > 2) {
				var street = '';
				var zip = rg[rg.length - 1];
				for (var i = 0; i < rg.length - 1; i++) street += (i > 0 ? '+' : '') + rg[i];
				yahooLink = 'http://maps.yahoo.com/maps_result?addr=' + street + '&csz=' + zip + '&country=us&new=1&name=&qty='
				googleLink = 'http://maps.google.com/maps?q=' + street + '+' + zip + '&hl=en'
				}
			}
		}

	var rgAddress = new Array();
	var nrgAddress = 0;
	if (address != null) {
		rgAddress = address.split('<br>');
		if (rgAddress.length == 1) rgAddress = address.split('~');
		nrgAddress = rgAddress.length;
		}
	var iconHL = null;
	if (clib_isString(icon)) {
		var rgi = icon.split('|');
		if (rgi.length > 1) { icon = rgi[0]; iconHL = rgi[1]; }
		}

	clib_rgLinks[clib_nrgLinks++] = new clib_leType(title, title, null, null, null, null, phone, url, email, icon, iconHL, mapLink, yahooLink, googleLink, null, category,subCategory, rgAddress, nrgAddress, rgDescription, nrgDescription);
	clibx_stoneSortLink();
	}

function clib_defineLink(category,subCategory,title, phone,url,urlAlt, icon, iconHL, email, language,mapAddress, address, description) {
	var args = clib_defineLink.arguments;
	var nArgs = args.length;
	var iDescStart = 12;
	var rgDescription = new Array();
	var nrgDescription = 0;
	
	if (clib_isNull(urlAlt)) urlAlt = title;

	for (var i = iDescStart; i < nArgs; i++) rgDescription[nrgDescription++] = clib_fixPeriodSpaces(args[i]);
	if (url!= null) clib_rgLinkHtml[clib_nrgLinkHtml++] = new clib_linkHtmlType(url,title);

	var mapLink = null;
	var yahooLink = null;
	var googleLink = null;
	if (mapAddress != null) {
		if (mapAddress.substr(0,4) == "http") mapLink = mapAddress;
		else {
			var rg = mapAddress.split(" ");
			if (rg.length > 2) {
				var street = '';
				var zip = rg[rg.length - 1];
				for (var i = 0; i < rg.length - 1; i++) street += (i > 0 ? '+' : '') + rg[i];
				yahooLink = 'http://maps.yahoo.com/maps_result?addr=' + street + '&csz=' + zip + '&country=us&new=1&name=&qty='
				googleLink = 'http://maps.google.com/maps?q=' + street + '+' + zip + '&hl=en'
				}
			}
		}

	var rgAddress = new Array();
	var nrgAddress = 0;
	if (address != null) {
		rgAddress = address.split('<br>');
		if (rgAddress.length == 1) rgAddress = address.split('~');
		nrgAddress = rgAddress.length;
		}
	clib_rgLinks[clib_nrgLinks++] = new clib_leType(title, null, null, null, null, null, phone, url, email, icon, iconHL, mapLink, yahooLink, googleLink, null, category, subCategory, rgAddress, nrgAddress, rgDescription, nrgDescription);
	}

function clib_defineEvent(title, startDate, endDate, showDate, sortDate, phone, url, email, icon, mapAddress, aName, address, description) {
	var args = clib_defineEvent.arguments;
	var nArgs = args.length;
	var iDescStart = 12;
	function getMonthName(iM) {
		var rgMonth = new Array('January','February','March','April','May','June','July','August','September','October','November','December');
		if ((iM < 0) || (iM > 11)) return '####';
		return rgMonth[iM];
		}
	function getDateText(iD) {
		var suf;
		if ( (iD == 1) || (iD == 21) || (iD == 31) ) suf = 'st';
		else if ( (iD == 2) || (iD == 22) ) suf = 'nd';
		else if ( (iD == 3) || (iD == 23) ) suf = 'rd';
		else suf = 'th';
		return iD + '<font size=2><sup>' + suf + '</sup></font>';
		}
	var rgDescription = new Array();
	var nrgDescription = 0;
	var startDaysUntil,endDaysUntil,eventDays;
	if ((endDate == null) && (startDate == null)) {
		startDaysUntil = 1;
		endDaysUntil = 1;
		eventDays = 0;
		}
	else {
		if ( endDate == null ) endDate = startDate;
		startDaysUntil = clib_daysUntil(startDate);
		endDaysUntil = clib_daysUntil(endDate);
		eventDays = endDaysUntil - startDaysUntil;
		var dtStartDate = new Date(startDate);
		if ( showDate == null ) {
			var startY = dtStartDate.getFullYear();
			var startM = dtStartDate.getMonth();
			var startD = dtStartDate.getDate();
			showDate = getMonthName(startM) + ' ' + getDateText(startD);
			if ( eventDays != 0 ) {
				var dtEndDate = new Date(endDate);
				var endM = dtEndDate.getMonth();
				var endD = dtEndDate.getDate();
				var endY = dtEndDate.getFullYear();
				if ( (endY != startY) || (endM != startM) ) showDate += ' to ' + getMonthName(endM) + ' ' + getDateText(endD);
				else showDate += ' to ' + getDateText(endD);
				}
			}
		}
	if (url!= null) clib_rgLinkHtml[clib_nrgLinkHtml++] = new clib_linkHtmlType(url,title + ' (' + showDate + ')');
	if ( sortDate == null ) {
		if ( startDaysUntil >= 0 ) sortDate = startDate;
		else if ( endDaysUntil < 0 ) sortDate = endDate;
		else {
			var nowDate = new Date();
			var nowM = nowDate.getMonth()
			var nowD = nowDate.getDate();
			var nowY = nowDate.getFullYear();
			sortDate = getMonthName(nowM) + ' ' + nowD + ', ' + nowY;
			}
		}
	var sortDaysUntil = clib_daysUntil(sortDate);
	if (!clib_fAllEvents && (sortDaysUntil < 0) && (startDaysUntil < 0) && (endDaysUntil < 0)) return;
	if (eventDays == 0) endDate = null;

	for (var i = iDescStart; i < nArgs; i++) rgDescription[nrgDescription++] = clib_fixPeriodSpaces(args[i]);

	var mapLink = null;
	var yahooLink = null;
	var googleLink = null;
	if (mapAddress != null) {
		if (mapAddress.substr(0,4) == "http") mapLink = mapAddress;
		else {
			var rg = mapAddress.split(" ");
			if (rg.length > 2) {
				var street = '';
				var zip = rg[rg.length - 1];
				for (var i = 0; i < rg.length - 1; i++) street += (i > 0 ? '+' : '') + rg[i];
				yahooLink = 'http://maps.yahoo.com/maps_result?addr=' + street + '&csz=' + zip + '&country=us&new=1&name=&qty='
				googleLink = 'http://maps.google.com/maps?q=' + street + '+' + zip + '&hl=en'
				}
			}
		}

	var rgAddress = new Array();
	var nrgAddress = 0;
	if (address != null) {
		rgAddress = address.split('<br>');
		if (rgAddress.length == 1) rgAddress = address.split('~');
		nrgAddress = rgAddress.length;
		}

	var iconHL = null;
	if (clib_isString(icon)) {
		var rgi = icon.split('|');
		if (rgi.length > 1) { icon = rgi[0]; iconHL = rgi[1]; }
		}

	clib_rgLinks[clib_nrgLinks++] = new clib_leType(title, sortDaysUntil, startDate, endDate, showDate, sortDate, phone, url, email, icon, iconHL, mapLink, yahooLink, googleLink, aName, null, null, rgAddress, nrgAddress, rgDescription, nrgDescription);
	clibx_stoneSortLink();
	}

function clibx_stoneSortLink() {
	function compare(a,b) {
		var a1 = a.sortKey;
		var b1 = b.sortKey;
		for (var i = 0; i < Math.min(a1.length,b1.length); i++) {
			var chA = a1.substr(i,1).toLowerCase();
			var chB = b1.substr(i,1).toLowerCase();
			if (chA > chB)  return true;
			else if (chA < chB) return false;
			}
		if (a1.length > b1.length) return true;
		else if (a1.length < b1.length) return false;
		else return true;
		}
	for (var i = clib_nrgLinks-1; i > 0; i--) {
		if (compare(clib_rgLinks[i],clib_rgLinks[i-1])) return;
		var t = clib_rgLinks[i]; clib_rgLinks[i] = clib_rgLinks[i-1]; clib_rgLinks[i-1] = t;
		}
	}

function clib_fixPeriodSpaces(t) {
	if (t == null) return ''
	var rg = t.split('.  ');
	if (rg.length > 1) {
		t = rg[0];
		for (var i = 1; i < rg.length; i++) t += '.&nbsp; ' + rg[i];
		}
	rg = t.split('!  ');
	if (rg.length > 1) {
		t = rg[0];
		for (var i = 1; i < rg.length; i++) t += '!&nbsp; ' + rg[i];
		}
	return t;
	}

function clib_writeStores(fWriteHtml,divHtml,nullHtml,fCompact,fLogos) {
	clib_linksDoWrite(fWriteHtml,divHtml,nullHtml,fCompact,fLogos);
	}

function clib_writeLinks(fWriteHtml,divHtml,nullHtml,fCompact,fLogos) {
	clib_linksDoWrite(fWriteHtml,divHtml,nullHtml,fCompact,fLogos);
	}

function clib_writeEvents(fWriteHtml,divHtml,nullHtml,fCompact,fLogos,fFullUrl) {
	var cl_header =		 clib_rgLeClassNames[2];
	var noEventHtml = '<p class=' + cl_header + '>Check here for future events!</p>';
	clib_linksDoWrite(fWriteHtml,divHtml,nullHtml,fCompact,fLogos,fFullUrl);
	}

function clib_writeLinksEvents(fWriteHtml,divHtml,nullHtml,fCompact,fLogos) {
	var cl_header =		 clib_rgLeClassNames[2];
	var noEventHtml = '<p class=' + cl_header + '>Check here for future events!</p>';
	clib_linksDoWrite(fWriteHtml,divHtml,noEventHtml,fCompact,fLogos);
	}

function clib_linksDoWrite(fWriteHtml,divHtml,nullHtml,fCompact,fLogos,fFullUrl) {
	if (clib_fLocal && clib_fLinkHtml) clib_createHiddenLinks();
	if (fCompact == null) fCompact = false;
	return (fCompact ? clib_linksDoCompactWrite(fWriteHtml,divHtml,nullHtml,fLogos,fFullUrl) : clib_linksDoFullWrite(fWriteHtml,divHtml,nullHtml,fLogos,fFullUrl))
	}

function clib_linksDoCompactWrite(fWriteHtml,divHtml,nullHtml,fLogos,fFullUrl) {
	var cl_title =			clib_rgLeClassNames[0];
	var cl_eventName =		clib_rgLeClassNames[1];
	var cl_header =			clib_rgLeClassNames[2];
	var cl_image =			clib_rgLeClassNames[3];
	var cl_showDate =		clib_rgLeClassNames[4];
	var cl_link =			clib_rgLeClassNames[5];
	var cl_address =		clib_rgLeClassNames[6];
	var cl_description =	clib_rgLeClassNames[7];
	var cl_separator =		clib_rgLeClassNames[8];
	var cl_categoryBar =	clib_rgLeClassNames[9];
	var cl_categoryText =	clib_rgLeClassNames[10];
	var cl_trailer =		clib_rgLeClassNames[11];

	function categoryMatch(irgC,irgE) {
		if (irgC == clib_rgLinks[irgE].irgCategory) return true;
		else return false;
		}

	if (fLogos == null) fLogos = true;
	if (fFullUrl == null) fFullUrl = false;

	var nTdMain = 2;
	var nEvents = 0;
	var html = '<table width="90%" border=0 align=center cellpadding=0 cellspacing=2>\n';
	for (var irs = 0; irs < clib_nrgCategory; irs++) {
		var fNotFirst = true;
		var last_title = null;
		var last_description = null;
		var rs = clib_rgCategory[irs];
		if ((rs.category != null) || (rs.subCategory != null)) {
			html += '<tr class=' + cl_categoryBar + '><td colspan=' + nTdMain + '><p class=' + cl_categoryText + '>';
			if (rs.subCategory != null) { 
				html += rs.subCategory;
				if (rs.category != null) html += ', ' + rs.category;
				}
			else html += rs.category;
			html += '</p></td></tr>';
			fNotFirst = false;
			}
		for (var i = 0; i < clib_nrgLinks; i++) if (categoryMatch(irs,i)) {
			var e = clib_rgLinks[i];
			var title = e.title;
			var description = ''; for (var j = 0; j < e.nrgDescription; j++) description += (j > 0 ? '&nbsp; ' : '') + e.rgDescription[j];
			var fSameStore = ((title == last_title) && (description == last_description));
			last_title = title;
			last_description = description;
			if (fNotFirst && !fSameStore) html += '<tr class=' + cl_separator + '><td colspan=' + nTdMain + '></td></tr><tr>';
		// first TD is icon
		//
			html += '<td align=center valign=top>';
			if (fLogos && (e.icon != null)) {
				if (e.url != null) html += '<a href="' + e.url + '" target=_blank>';
				if (e.iconHL != null) html += clib_mouseoverImageHTML(null, e.icon, e.iconHL, null, null, null, cl_image,cl_image);
				else html += '<img class=' + cl_image + ' src="' + e.icon + '" border=0>';
				if (e.url != null) html += '</a>';
				}
			else html += '&nbsp;';
			if (clib_fAllEvents) html += '<p class=' + cl_showDate + '>' + e.sortDate + '</p>';
			html += '</td>';

		// second TD is title, description, address, phone, etc
		//
			html += '<td valign=middle>';
			if (!fSameStore && ((e.title != null) || (description != ''))) {
				html += '<table border=0 cellspacing=0 cellpadding=0><tr>';
				if (e.title != null) html += '<td valign=bottom>' + (e.url == null ? '': '<a href="' + e.url + '" target=_blank>') + '<p class=' + cl_title + '>' + e.title + '</p>' + (e.url == null ? '': '</a>') + '</td>';
				if (description != '') html += '<td valign=bottom><p class=' + cl_description + '>' + description + '</p></td>';
				html += '</tr></table>';
				}
			if (e.showDate != null) html += '<p class=' + cl_showDate + '>' + e.showDate + '</p>';
			html += '<table border=0 cellspacing=0 cellpadding=0><tr>';
			if (e.aName != null) html += '<td><p class=' + cl_eventName + '>' + e.aName + '<//p></td>';
			if (e.nrgAddress > 0) { html += '<td><p class=' + cl_address + '>'; for (var iAddr = 0; iAddr < e.nrgAddress; iAddr++) html += (iAddr > 0 ? ', ' : '') +  e.rgAddress[iAddr]; html += '</p></td>' }
			if (e.phone != null) html += '<td><p class=' + cl_address + '>' + e.phone + '</p></td>';
			if (e.email != null) html += '<td><p class=' + cl_link + '><a class=' + cl_link + ' href="mailto:' + e.email + '">' + e.email + '</a></p></td>';
			if (e.url != null)html += '<td><p class=' + cl_link + '><a class=' + cl_link + ' href="' + e.url + '" target="_blank">' + e.urlDisplay + '</a></p></td>';
			if (e.mapLink != null) html += '<td><p class=' + cl_link + '><a class=' + cl_link + ' href="' + e.mapLink + '" target="_blank">' + (e.language == 'French' ? 'carte' : 'map') + '</a></p></td>';
			if (e.yahooLink != null) html += '<td><p class=' + cl_link + '><a class=' + cl_link + ' href="' + e.yahooLink + '" target="_blank">yahoo!</a></p></td>';
			if (e.googleLink != null) html += '<td><p class=' + cl_link + '><a class=' + cl_link + ' href="' + e.googleLink + '" target="_blank">google</a></p></td>';
			html += '</tr></table>';
			html += '</td></tr>\n';
			fNotFirst = true;
			nEvents++;
			}	// end item loop
		}	// end irs category loop
	if ((nEvents == 0) && (nullHtml != null)) html += '<tr><td>' + nullHtml + '</td></tr>';
	else if (nEvents > 0) html += '<tr class=' + cl_trailer + '><td colspan=' + nTdMain + '></td></tr><tr>';
	html += '</table>';
	if ((fWriteHtml == null) || ((divHtml != null) && (divHtml != ''))) fWriteHtml = true;
	if (fWriteHtml) {
		if ((divHtml != null) && (divHtml != '')) clib_innerHTML(divHtml, html);
		else document.writeln(html);
		}
	return html;
	}

function clib_linksDoFullWrite(fWriteHtml,divHtml,nullHtml,fLogos,fFullUrl) {
	var cl_title =			clib_rgLeClassNames[0];
	var cl_eventName =		clib_rgLeClassNames[1];
	var cl_header =			clib_rgLeClassNames[2];
	var cl_image =			clib_rgLeClassNames[3];
	var cl_showDate =		clib_rgLeClassNames[4];
	var cl_link =			clib_rgLeClassNames[5];
	var cl_address =		clib_rgLeClassNames[6];
	var cl_description =	clib_rgLeClassNames[7];
	var cl_separator =		clib_rgLeClassNames[8];
	var cl_categoryBar =	clib_rgLeClassNames[9];
	var cl_categoryText =	clib_rgLeClassNames[10];
	var cl_trailer =		clib_rgLeClassNames[11];

	function categoryMatch(irgC,irgE) {
		if (irgC == clib_rgLinks[irgE].irgCategory) return true;
		else return false;
		}

	if (fFullUrl == null) fFullUrl = false;
	
	var nTdMain = 4;
	var nEvents = 0;
	var html = '<table width="90%" border=0 align=center cellpadding=0 cellspacing=0>\n';
	for (var irs = 0; irs < clib_nrgCategory; irs++) {

		var fNotFirst = true;
		var rs = clib_rgCategory[irs];
		if ((rs.category != null) || (rs.subCategory != null)) {
			html += '<tr class=' + cl_categoryBar + '><td colspan=' + nTdMain + '><p class=' + cl_categoryText + '>';
			if (rs.subCategory != null) { 
				html += rs.subCategory;
				if (rs.category != null) html += ', ' + rs.category;
				}
			else html += rs.category;
			html += '</p></td></tr>';
			fNotFirst = false;
			}
	
		for (var i = 0; i < clib_nrgLinks; i++) if (categoryMatch(irs,i)) {
			var e = clib_rgLinks[i];

			var htmlIcon = '';
			if (e.icon != null) {
				if (e.url != null) htmlIcon += '<a href="' + e.url + '" target=_blank>';
				if (e.iconHL != null) htmlIcon += clib_mouseoverImageHTML(null, e.icon, e.iconHL, null, null, null, cl_image,cl_image);
				else htmlIcon += '<img class=' + cl_image + ' src="' + e.icon + '" border=0>';
				if (e.url != null) htmlIcon += '</a>';
				}
			else htmlIcon += '&nbsp;';
			if (clib_fAllEvents) htmlIcon += '<p class=' + cl_showDate + '>' + e.sortDate + '</p>';

			var htmlTitle = '';
			if (e.title != null) htmlTitle += '<p class=' + cl_title + '>' + e.title + '</p>';
			else htmlTitle = '';

			var htmlAddress = '';
			if (e.aName != null) htmlAddress += '<p class=' + cl_eventName + '><nobr>' + e.aName + '</nobr></p>';
			if ((e.nrgAddress > 0) || (e.email != null) || (e.phone != null)) {
				htmlAddress += '<p class=' + cl_address + '><nobr>';
				for (var iAddr = 0; iAddr < e.nrgAddress; iAddr++) {
					if (iAddr > 0) htmlAddress += '<br><nobr>';
					htmlAddress += e.rgAddress[iAddr];
					}
				if (e.phone != null) htmlAddress += (e.nrgAddress > 0 ? '<br>' : '') + '<nobr>' + e.phone;
				htmlAddress += '</nobr></p>'
				};
			var htmlLinks = '';
			var nItem = ((e.mapLink != null) || (e.yahooLink != null) ? 1 : 0) + (e.url != null ? 1 : 0) + (e.email != null ? 1 : 0)
			if (nItem > 0) {
				htmlLinks += '<table border=0 width="100%" cellpadding=0 cellspacing=0><tr>';
				var rgTd = new Array();
				var irgTd = 0;
				if (nItem == 3) {rgTd[0] = '<td width="33%">'; rgTd[1] = '<td width="33%" align=center>'; rgTd[2] = '<td width="33%" align=right>'; }
				else if (nItem == 2) { rgTd[0] = '<td width="50%">'; rgTd[1] = '<td width="50%" align=right>'; }
				else if ((e.mapLink != null) || (e.yahooLink != null)) rgTd[0] = '<td align=right>';
				else rgTd[0] = '<td>';
				if (e.url != null) {
					var urlDisplay = e.url;
					if (!fFullUrl && (urlDisplay.length > clibx_maxUrlDisp)) urlDisplay = urlDisplay.substr(0,clibx_maxUrlDisp-3) + '...';
					htmlLinks += rgTd[irgTd++] + '<nobr><a class=' + cl_link + ' href="' + e.url + '" target="_blank">' + urlDisplay + '</a></td>';
					}
				if (e.email != null) htmlLinks += rgTd[irgTd++] + '<nobr><a class=' + cl_link + ' href="mailto:' + e.email + '">' + e.email + '</a></td>';
				if (e.mapLink != null) htmlLinks += rgTd[irgTd++] + '<nobr><a class=' + cl_link + ' href="' + e.mapLink + '" target="_blank">' + (e.language == 'French' ? 'carte' : 'map') + '</a></td>';
				else if (e.yahooLink != null) htmlLinks += rgTd[irgTd++] + '<nobr><a class=' + cl_link + ' href="' + e.yahooLink + '" target="_blank">yahoo!</a>&nbsp;&nbsp;<a class=' + cl_link + ' href="' + e.googleLink + '" target="_blank">google</a></td>';
				htmlLinks += '</tr></table>';
				}
			else htmlLinks += '&nbsp;';

			var htmlDescription = '';
			if (e.showDate != null) htmlDescription += '<p class=' + cl_showDate + '>' + e.showDate + '</p>';
			for (var j = 0; j < e.nrgDescription; j++) htmlDescription += '<p class=' + cl_description + '>' + e.rgDescription[j] + '</p>';

			var htmlTitleAddress = '<table border=0 cellpadding=0 cellspacing=0>';
			htmlTitleAddress += '<tr><td>' + htmlTitle + '</td></tr><tr><td>' + htmlAddress + '</td></tr>';
			htmlTitleAddress += '</table>';

			var htmlLinksDescription = '<table border=0 cellpadding=0 cellspacing=0 width="100%">';
			htmlLinksDescription += '<tr><td>' + htmlLinks + '</td></tr><tr><td>' + htmlDescription + '</td></tr>';
			htmlLinksDescription += '</table>';

			if (fNotFirst) html += '<tr class=' + cl_separator + '><td colspan=' + nTdMain + '></td></tr>';
			html += '<tr><td align=center valign=top>' + htmlIcon + '</td>';
			
			html += '<td valign=top>' + htmlTitleAddress + '</td>';

			html += '<td>&nbsp;</td>';
			
			html += '<td valign=top>' + htmlLinksDescription + '</td>';
			html += '</tr>';

			fNotFirst = true;
			nEvents++;
			}	// end item loop
		}	// end irs category loop
	if ((nEvents == 0) && (nullHtml != null)) html += '<tr><td>' + nullHtml + '</td></tr>';

	else if (nEvents > 0) html += '<tr class=' + cl_trailer + '><td colspan=' + nTdMain + '></td></tr>';
	html += '</table>';
	if ((fWriteHtml == null) || ((divHtml != null) && (divHtml != ''))) fWriteHtml = true;
	if (fWriteHtml) {
		if ((divHtml != null) && (divHtml != '')) clib_innerHTML(divHtml, html);
		else document.writeln(html);
		}
	return html;
	}

function clib_createHiddenLinks() {
	if (!clib_fLocal) return;
	var html = '&lt;div id=linkdiv&gt<br>&lt;p class=clib_hiddenLinks&gt;';
	for (var i = 0; i < clib_nrgLinkHtml; i++) {
		var l = clib_rgLinkHtml[i];
		if (l.url != null) html += '<br>&lt;a class=clib_hiddenLinks href="' + l.url + '"&gt;' + l.title + '&lt;/a&gt;&lt;br&gt;';
		}
	html += '<br>&lt;/p&gt;&lt;/div&gt;<br>';
	clib_writeln(html);
	}
	