window.addEvent('domready', function(){		
	if($$('.ps-custom-feed').length > 0){					
		$$('.ps-custom-feed').each(function(container) {
			if(matches = container.className.match(/(\{.*\})/)){
				var dataobj = decodeURIComponent(matches[1]);    
		    	dataobj = JSON.decode(dataobj);
		    	
		    	if(dataobj.customFeed){		    					    		
		    		var blogUrl = dataobj.customFeed.blogUrl;		    		
		    		
		    		var numberToShow = dataobj.customFeed.maxNumber;
		    		var maxCharacters = dataobj.customFeed.maxCharacters;
		    		
		    		var hideTitle = false;
		    		var hideDescription = false;
		    		var hideDate = false;
		    		var hideAuthor = false;
		    		
		    		if(dataobj.customFeed.hideTitle){		    			
		    			hideTitle = true;
		    		}
		    		
		    		if(dataobj.customFeed.hideDescription){
		    			hideDescription = true;
		    		}
		    		
		    		if(dataobj.customFeed.hideDate){
		    			hideDate = true;
		    		}
		    		
		    		if(dataobj.customFeed.hideAuthor){
		    			hideAuthor = true;
	    		 	}
		    		
		    		var rssRequest = new Request({
		    			url : blogUrl,
		    			method : 'get',
		    			noCache: true,
		    			onSuccess: function(responseText, responseXml){		    				
		    				var rssBox = new Element('div', {
		    					'class': 'rss-box'		    					
		    				});
		    				
		    				var rssItems = new Element('ul', {
		    					'class': 'rss-items'		    					
		    				});
		    				
		    				
		    				var channel = responseXml.getElementsByTagName('channel')[0];
		    				var channelTitle = channel.getElementsByTagName('title')[0].firstChild.nodeValue;
		    				var channelLink = channel.getElementsByTagName('link')[0].firstChild.nodeValue;
		    				var channelDescription = channel.getElementsByTagName('description')[0].firstChild.nodeValue;
		    				
		    				
		    				var items = channel.getElementsByTagName('item');
		    				
		    				var iterationAmount;
		    				
		    				if(numberToShow > 0){
		    					iterationAmount = numberToShow;
		    				}else{
		    					iterationAmount = items.length;
		    				}
		    				
		    				for(var i = 0; i < iterationAmount; i++){		    					
		    					var title = items[i].getElementsByTagName('title')[0].firstChild.nodeValue;
		    					var link = items[i].getElementsByTagName('link')[0].firstChild.nodeValue;
		    				
		    					var description = items[i].getElementsByTagName('description')[0].firstChild.nodeValue;
		    					
		    					if(hideAuthor && description.indexOf(' - Author:') > -1){		    					
		    						description = description.substring(0, description.indexOf(' - Author:'));
		    					}
		    					
		    					if(maxCharacters > 0){
		    						if(description.length > maxCharacters){
		    							description = description.substring(0, maxCharacters) + "...";
		    						}
		    					}
		    					
		    					var pubDate = items[i].getElementsByTagName('pubDate')[0].firstChild.nodeValue;
		    					var guid = items[i].getElementsByTagName('guid')[0].firstChild.nodeValue;
		    					
		    					var listElement = new Element('li', {
		    						'class': 'rss-item'
		    					});
		    					
		    					var listBreakOne = new Element('br');
		    					var listBreakTwo = new Element('br');
		    			
		    					if(!hideTitle){		    			
		    						var listLink = new Element('a', {
			    						'class': 'rss-item',
			    						'title': title,
			    						'href': guid,
			    						'text': title
			    					});
			    					listLink.inject(listElement);
			    					listBreakOne.inject(listElement);
		    					}		    							    					
		    			
		    					if(!hideDate){		    					    						
		    						var listDate = new Element('span', {
			    						'class': 'rss-date',
			    						'text': pubDate
			    					});	
			    					
			    					listDate.inject(listElement);
			    					listBreakTwo.inject(listElement);			    					
		    					}
		    						
		    					if(!hideDescription){		    								    					
			    					var description = new Element('span', {
			    						'class': 'rss-description',
			    						'text': description
			    					});
			    					description.inject(listElement);
		    					}
		    					listElement.inject(rssItems);		    						   		    					
		    				}		    						    				
		    				rssItems.inject(rssBox);		    				
		    				rssBox.inject(container);		    				
		    			}
		    		});
		    		
		    		rssRequest.send('feeds=rss');		    		
		    	}
		    }			 	
	 	});
	 }
});