function insertAgendaClass( justLinks ) {
	this.remainingCount = 0;
	this.destinationId = "";
	this.caldata = new Array();
	this.showEndTime = false;
	this.showLocation = false;
	
	this.insertAgenda = function(root)
	{
		var feed = root.feed;

		// loop through each event in the feed
		if(typeof(feed.entry) != 'undefined')
		{
			for (var i = 0; i < feed.entry.length; i++)
			{
				var entry = feed.entry[i];
				var title = entry.title.$t;
				var start = Date.parse(entry['gd$when'][0].startTime.replace('.000',''));
				var end = Date.parse(entry['gd$when'][0].endTime.replace('.000',''));
				var location = entry['gd$where'][0].valueString;		
				var content = entry['content'].$t;
		

				// get the URL to link to the event
				for (var linki = 0; linki < entry['link'].length; linki++) {
				  if (entry['link'][linki]['type'] == 'text/html' &&
					  entry['link'][linki]['rel'] == 'alternate') {
					var entryLinkHref = entry['link'][linki]['href'];
				  }
				}
				
				var calrow = {
				 'location': (location != null) ? location : "" ,
				 'startDate': (start != null) ? start : Date.parse("01/01/1900"),
				 'endDate': (end != null) ? end : (start != null) ? start : Date.parse("01/01/1900"),
				 'title': (start != null) ? title : (title + " - " + entry['gd$when'][0].startTime.replace('.000Z','').replace('T',' ')),
				 'content': content
				}		
				this.caldata.push(calrow);
			}

			this.remainingCount--;
			if(this.remainingCount==0)
			{
				if ( justLinks )
				{
					this.renderLinks();
				}
				else
				{
					this.renderNews();
				}
			}
		}
	}
	
	this.renderNews = function()
	{  		
		var events = document.getElementById(this.destinationId);

		if (events.childNodes.length > 0) {
			events.removeChild(events.childNodes[0]);
		}	  
		
		var table = new Element('table');
						
		var lastdate = '';

		// sort data
		this.caldata = this.caldata.sort(sortData);

		for(var i=0; i<this.caldata.length; i++)
		{
			var calrow = this.caldata[i];
			var showdate = false;
			
			var startDate = calrow.startDate;
			var endDate = calrow.endDate;						
			
			var dateString = startDate.toString('ddd d') + startDate.getOrdinal();
			var endDateString = endDate.toString('ddd d') + endDate.getOrdinal();
			var timeString = (startDate.compareTo(new Date(startDate).clearTime()) == 0) ? '' : startDate.toString('h:mmtt').toLowerCase();
			var endTimeString = (endDate.compareTo(new Date(endDate).clearTime()) == 0) ? '' : endDate.toString('h:mmtt').toLowerCase();

			var newrow = new Element('tr');
			var newcell = new Element('td');
			newcell.appendChild( new Element('h2', {'id':'newsitem_' + i.toString() }).setText(calrow.title.replace(/Â/,"")));			
			newrow.appendChild( newcell ); 
						
			table.appendChild(newrow);

			if(this.showLocation && ( calrow.location != ''))
			{ 
				var newrow2 = new Element('tr');
				var newbold = new Element('b').setText('Location :' + calrow.location.replace(/Â/,""));
				var newloccell = new Element('td');
				newloccell.appendChild(newbold);
				newrow2.appendChild(newloccell); 
				table.appendChild(newrow2);
			}
			
			var newrow3 = new Element('tr');
			newrow3.appendChild(new Element('td').setHTML(calrow.content.replace(/Â/,""))); 
			table.appendChild(newrow3);
			
			var newrow4 = new Element('tr');
			newcell = new Element('td');
			newcell.appendChild( new Element('hr'));
			newrow4.appendChild( newcell ); 
			table.appendChild(newrow4);						
		}	
		
		events.appendChild(table);
		$(events).setHTML(events.innerHTML);	
	}
	
	this.renderLinks = function()
	{  		
		var events = document.getElementById(this.destinationId);

		if (events.childNodes.length > 0) {
			events.removeChild(events.childNodes[0]);
		}	 
						
		var lastdate = '';
		var newspan = new Element('div');
		var spancontent = '';

		// sort data
		this.caldata = this.caldata.sort(sortData);

		for(var i=0; i<this.caldata.length; i++)
		{
			var calrow = this.caldata[i];
		
		/*	var showdate = false;
			
			var startDate = calrow.startDate;
			var endDate = calrow.endDate;
			
			var dateString = startDate.toString('ddd d') + startDate.getOrdinal();
			var endDateString = endDate.toString('ddd d') + endDate.getOrdinal();
			var timeString = (startDate.compareTo(new Date(startDate).clearTime()) == 0) ? '' : startDate.toString('h:mmtt').toLowerCase();
			var endTimeString = (endDate.compareTo(new Date(endDate).clearTime()) == 0) ? '' : endDate.toString('h:mmtt').toLowerCase(); */

			var newanchor = new Element('a',{'href':'church_events#newsitem_' + i }).setText(calrow.title.replace(/Â/,""));
						
			newspan.appendChild(newanchor);
			newspan.appendChild(new Element('br'));
			newspan.appendChild(new Element('br'));			
		}		
		
		events.appendChild(newspan);
		$(events).setHTML(events.innerHTML);	
	}
}

function sortData(a,b)
{
	return a.startDate.compareTo(b.startDate);
}

function loadGoogleCalendars(startWeakOffset, weakCount, urls, dest, showEndTime, showLocation, justLinks)
{
	var dateStart = Date.today().sunday().addWeeks(startWeakOffset);
	var dateEnd = Date.today().sunday().addWeeks(startWeakOffset + weakCount).addDays(1);	
	
	// associate function
	window[dest + "_insertAgenda"] = new insertAgendaClass( justLinks );
	window[dest + "_insertAgenda"].remainingCount = urls.length;
	window[dest + "_insertAgenda"].destinationId = dest;
	window[dest + "_insertAgenda"].showEndTime = showEndTime;
	window[dest + "_insertAgenda"].showLocation = showLocation;
	
    //'max-results': maxcount
    var params = {		
    	'alt': 'json-in-script',
    	'callback': dest + '_insertAgenda.insertAgenda',
    	'orderby': 'starttime',
    	'singleevents': 'true',
    	'sortorder': 'ascending',
    	'start-min': dateStart.toString("yyyy-MM-dd"),
    	'start-max': dateEnd.toString("yyyy-MM-dd")
		}
		
	for(var i=0; i<urls.length; i++)
	{
		new Asset.javascript(urls[i] + '?' + Object.toQueryString(params), {id: 'loadcal'});
	}
}
