var GEC_Newsfeed = function(feed,limit,el) {
	if ( swfobject.getFlashPlayerVersion().major < 6 ) return;
	GEC_Newsfeed.el = el;
	GEC_Newsfeed.feed = feed;
	GEC_Newsfeed.items = [];
	GEC_Newsfeed.limit = limit;
	GEC_Newsfeed.page = 1;
	GEC_Newsfeed.pageLength = 20;
	GEC_Newsfeed.pages = null;
	GEC_Newsfeed.init();
};

GEC_Newsfeed.init = function() {
	$('h3',GEC_Newsfeed.el).after('<dl><img alt="loading progress spinner" id="spinner" src="../images/loading.gif" style="border: 0; display: block; margin: 0 auto; padding: 20px 0;"/></dl><div id="rss_tool"></div>');
	GEC_Newsfeed.writeSWF();
};

GEC_Newsfeed.writeSWF = function() {
	var flashvars = {feedUrl:GEC_Newsfeed.feed};
	var params = {wmode:'transparent'};
	var attributes = {style:'left: 0px; position: absolute;'};
	swfobject.embedSWF("../flash/rss_tool.swf", "rss_tool", "1", "1", "9.0.0", "expressInstall.swf", flashvars, params, attributes);
};

GEC_Newsfeed.process = function(data) {
	var end = (GEC_Newsfeed.limit!=null)?Math.min(data.length,GEC_Newsfeed.limit):data.length;
	for (var i = 0; i < end; i++) {
		var item = data[i];
		var title = item.title.value;
		var date = item.date.value;
		date = date.substring(0,date.length-12);
		var link = item.link.value;
		var html = '<dt>'+date+'</dt><dd><a href="'+link+'" title="'+title+'">'+title+'</a></dd>';
		GEC_Newsfeed.items.push(html);
	}
	$('#spinner').remove();
	if (GEC_Newsfeed.items.length > GEC_Newsfeed.pageLength) GEC_Newsfeed.createPagination();
	GEC_Newsfeed.showPage(1);
};

GEC_Newsfeed.showPage = function(p) {
	var dl = $('dl',GEC_Newsfeed.el).html('');
	for (var i = (p*GEC_Newsfeed.pageLength)-GEC_Newsfeed.pageLength; i < p*GEC_Newsfeed.pageLength && i < GEC_Newsfeed.items.length; i++) {
		$(dl)
			.append(GEC_Newsfeed.items[i])
			.find('dd:last-child a').click(function(){ window.open(this.href,'press_release',''); return false; });
	}
	GEC_Newsfeed.page = p; 
	if (GEC_Newsfeed.items.length > GEC_Newsfeed.pageLength) { $('h3 a',GEC_Newsfeed.el).text('Press Releases '+((p*GEC_Newsfeed.pageLength)-(GEC_Newsfeed.pageLength-1))+'–'+(i)); GEC_Newsfeed.updatePagination(); }
};

GEC_Newsfeed.createPagination = function() {
	GEC_Newsfeed.pages = (GEC_Newsfeed.items.length%GEC_Newsfeed.pageLength==0)?GEC_Newsfeed.items.length/GEC_Newsfeed.pageLength:GEC_Newsfeed.items.length/GEC_Newsfeed.pageLength+1;
	$('dl',GEC_Newsfeed.el).after('<p id="pagination"></p>');
};

GEC_Newsfeed.updatePagination = function() {
	var start = Math.max(1,GEC_Newsfeed.page-4), end = start + 8, self = this;
	$('#pagination').html('');
	if (start > 1) { $('#pagination').append( $('<a href="#" style="margin-right: 5px;">&#171;</a>').click(function(){ self.showPage(self.page-1); return false; }) ); }
	for (var p = start; p <= end && p <= GEC_Newsfeed.pages; p++) { $('#pagination').append( (p==GEC_Newsfeed.page)? '<strong style="margin-right: 5px;">'+p+'</strong>' : $('<a href="#" style="margin-right: 5px;">'+p+'</a>').click(function(){ self.showPage(parseInt(this.innerHTML)); return false; }) ); }
	if (GEC_Newsfeed.pages > p) { $('#pagination').append( $('<a href="#" style="margin-right: 5px;">&#187;</a>').click(function(){ self.showPage(p+1); return false; }) ); }
};

var getRSSData = function(data){GEC_Newsfeed.process(data);};