if (typeof(rssfeed) == 'undefined') {
	var rssfeed = function(elm){
		rssfeed.article_height = 108;
		rssfeed.get(elm);
	};
	rssfeed.get = function(elm){
		var script = '/modules/leafbase/components/rss/getfeed.php', url = (typeof $(elm)._params.feedurl != 'undefined')?$(elm)._params.feedurl:false;
		if (url) {
			new Ajax.Request(script, {
				method: 'post',
				parameters: {
					'address': url
				},
				onComplete: function(transport){
					if(window.console) console.log(transport.responseText);
					var results = transport.responseText.evalJSON();
					rssfeed.display(elm, results.items);
				}
			});
		}
	};
	rssfeed.display = function(elm, results){
		var elm = $(elm), rss_feed = elm.down('.rss_feed'), shownumber = Math.floor($(elm).getHeight() / rssfeed.article_height);
		
		rss_feed.innerHTML = '';
		
		for (var i = 0; i < (results.length < shownumber ? results.length : shownumber); i++) {
			if(window.console) console.log(i);
			var item = results[i], article = new Element('div', {
				'class': 'rss_article',
				'style': 'height:'+rssfeed.article_height+'px;margin-bottom:10px;overflow:hidden;'
			});
			if (item.enclosure) {
				var enclosure = new Element('div', {
					'class': 'rss_enclosure',
					'style': 'float:left;margin:0 5px 0 0;width:160px;height:98px;vertical-align:middle;text-align:center;overflow:hidden;background-color:white;border:1px solid black;'
				});
				if (item.enclosure.type.indexOf('image') >= 0) {
					var image = new Element('img', {
						'src': item.enclosure.url,
						'height': 98
					});
					enclosure.appendChild(image);
				}
				else {
					enclosure.innerHTML = 'Need element for: ' + item.enclosure.type;
				}
				article.appendChild(enclosure);
			}
			if (item.title) {
				if(window.console) console.log(item.title);
				var title = new Element('div', {
					'class': 'rss_title',
					'style': 'font-weight:bold;font-size:larger;'
				});
				if (item.link) {
					var link = new Element('a', {
						'href': item.link
					});
					link.innerHTML = item.title;
					title.appendChild(link);
				}
				else {
					title.innerHTML = item.title;
				}
				article.appendChild(title);
			}
			/*
			if (item.date) {
				var article_date = new Element('div', {
					'class': 'rss_date',
					'style': 'margin-top:2px;'
				});
				var time = new Date(item.date);
				article_date.innerHTML = time;
				article.appendChild(article_date);
			}
			*/
			if (item.description) {
				var description = new Element('div', {
					'class': 'rss_description',
					'style': 'margin-top:2px;height:67px;text-overflow:ellipsis;'
				});
				description.innerHTML = item.description.replace(/\n/g,'<br/>');
				article.appendChild(description);
			}
			rss_feed.appendChild(article);
		}
	};
	rssfeed.edit = function(elm){
		$(elm).down('.pb_manipulate', 0).setStyle('display:none;');
		$(elm).down('.handle', 0).setStyle('display:none;');
		$(elm).down('.edithelp', 0).setStyle('display:none;');
		$(elm).down('.edithelp', 0).innerHTML = 'Double Click to Edit';
		
		var height = $(elm).getHeight();
		var width = $(elm).getWidth();
		
		var editbox = new Element('div', {
			'style': 'z-index:900;position:absolute;'
		});
		editbox.addClassName('editbox');
		editbox.setStyle({
			backgroundColor: '#efefef',
			'height': height + 'px',
			'width': width + 'px',
			'top': '0px',
			'left': '0px'
		});
		$(elm).appendChild(editbox);
		
		var rss_url = new Element('input', {
			'type': 'text',
			'name': 'address',
			'class': 'rss_feed_address',
			'value': (typeof $(elm)._params.feedurl != 'undefined')?$(elm)._params.feedurl:''
		});
		editbox.appendChild(rss_url);
		
		var editIcon = new Element('img', {
			'src': LeafBase.images.action_accept,
			'class': 'pb_manipulate static',
			'style': 'position: absolute; top: 0px; float: right; right:0px;z-index:951;'
		});
		Event.observe(editIcon, 'click', function(ev){
			try {
				var elm = Event.element(ev);
				elm = elm.up(0);
				rssfeed.update(elm);
			} 
			catch (e) {
				Extensions.error(e, 'Accepting Changes on RSS Feed');
			}
		});
		$(elm).appendChild(editIcon);
	};
	rssfeed.update = function(elm){
		$(elm)._params.feedurl = $(elm).down('.rss_feed_address').getValue();
		rssfeed.get(elm);
		$(elm).down('.editbox').remove();
		$(elm).down('.pb_manipulate', 1).remove();
		$(elm).down('.pb_manipulate', 0).setStyle('display:block;');
		$(elm).down('.handle', 0).setStyle('display:block;');
		$(elm).down('.edithelp', 0).setStyle('display:block;');
	}
}
