// create a namespace
YAHOO.namespace("feeds");
			
// define the namespace object
YAHOO.feeds.page = function() {

	// shorthands for YUI utilities
	var $E = YAHOO.util.Event;
	var $D = YAHOO.util.Dom;
	var $C = YAHOO.util.Connect;
	var $  = YAHOO.util.Dom.get;
		
	var feed_data;	
	var dsLocalJSON;
	
	var paginator_config;
	var paginator;
		
	return {									
		// initialise function
		init: function(){													
												
			YAHOO.util.Get.script('http:/'+'/pipes.yahoo.com/pipes/pipe.run?_id=f0d3974a0ef1c3b96127ebf626733a26&_render=json&_callback=YAHOO.feeds.page.pipe_callback');
			
			paginator_config = {
				rowsPerPage  : 15,
				totalRecords : 0,
				containers   : [ 'pag' ]
			};

		},
				
		pipe_callback: function(response){
									
			feeds = response.value.items;
									
			feed_data = {totalResults : response.value.items.length, results: [] };
			
			// update the paginator config
			paginator_config.totalRecords = response.value.items.length;
			
			// create the paginator controls
			YAHOO.feeds.page.make_paginator();
			
			YAHOO.feeds.page.display_page(paginator.getState());
															
		},
		
		display_page:function(newState){
									
			$('feeds_container').innerHTML = "";
			
			start_index = newState.records[0];
			end_index = newState.records[1];
			
			for(var i=start_index; i <= end_index; i++){
				
				var div = document.createElement('div');
				
				
				switch(feeds[i].src){
				
					case 'flickr' :	
						//div.setAttribute('class','feed_wrap_flickr');
						$D.addClass(div,'feed_wrap_flickr');
						var link=document.createElement('a');
						link.setAttribute('href',feeds[i].link);
						link.setAttribute('alt',feeds[i].title);
						link.setAttribute('title',feeds[i].title);
						
						
						//link.setAttribute('class','feed_link_flickr');
						$D.addClass(link,'feed_link_flickr');
						link.setAttribute('target','_blank');
						link.innerHTML = '&nbsp;';
						
						var div2 = document.createElement('div');
						//div2.setAttribute('class','crop');
						$D.addClass(div2,'crop');
						//div2.setAttribute('style',"background-image:url('"+feeds[i].media_thumbnail.url+"')");
						$D.setStyle(div2,'background-image','url('+feeds[i].media_thumbnail.url+')');
						
						
						//var img = document.createElement('img');
						//img.setAttribute('src',feeds[i].media_thumbnail.url);
						
						//link.appendChild(img);
						div.appendChild(link);
						div.appendChild(div2);
						break;
						
					case 'technocrati' :	
						//div.setAttribute('class','feed_wrap_technocrati');
						$D.addClass(div,'feed_wrap_technocrati');
						var link = document.createElement('a');
						link.setAttribute('href',feeds[i].link);
						link.setAttribute('alt',feeds[i].title);
						link.setAttribute('title',feeds[i].title);
						//link.setAttribute('class','feed_link_youtube');
						$D.addClass(link,'feed_link_youtube');
						link.setAttribute('target','_blank');
						link.innerHTML = feeds[i].title;																				
						div.appendChild(link);
						
						link2 = document.createElement('a');
						link2.setAttribute('href',feeds[i].source.url);
						link2.setAttribute('alt',feeds[i].source.content);
						link2.setAttribute('title',feeds[i].source.content);
						//link2.setAttribute('class','feed_src_link_technocrati');
						$D.addClass(link2,'feed_src_link_technocrati');
						link2.setAttribute('target','_blank');
						
						start = feeds[i].source.url.indexOf('http://www.');
						
						if(start == -1){
							start = feeds[i].source.url.indexOf('http://') + ('http://').length;
						}else{
							start += ('http://www.').length;
						}
						
						end = feeds[i].source.url.indexOf('/',start);
																		
						if(end == -1){
							var inner = feeds[i].source.url.substring(start);  	
						}else{
							var inner = feeds[i].source.url.substring(start,end);							
						}												
						
						//link2.innerHTML = feeds[i].source.content;
						link2.innerHTML = inner;
						div.appendChild(link2);
						
						break;
						
					case 'youtube' :
																		
						//div.setAttribute('class','feed_wrap_youtube');	
						$D.addClass(div,'feed_wrap_youtube');
						var description = feeds[i].description;
												
						var start = description.indexOf('<img');												
						var end = description.indexOf('">',start);										
						img_tag = description.substring(start,end + 2);
						
						var start_src = img_tag.indexOf('src=');
						var end_src = img_tag.indexOf('"',start_src + 5);
						if(end_src == -1){
							end_src = img_tag.indexOf("'",start_src + 5);
						}
						
						img_src = img_tag.substring(start_src+5,end_src); 
						
						//console.log(img_tag + ' ' + start_src + ' ' + end_src + ' ' + img_src);
						
						var link = document.createElement('a');						
						link.setAttribute('href',feeds[i].link);
						link.setAttribute('alt',feeds[i].title);
						link.setAttribute('title',feeds[i].title);
						//link.setAttribute('class','feed_link_youtube');
						$D.addClass(link,'feed_link_youtube');
						link.setAttribute('target','_blank');
						link.innerHTML = '&nbsp;';
							
						var div2 = document.createElement('div');
						//div2.setAttribute('class','crop');
						$D.addClass(div2,'crop');
						//div2.setAttribute('style',"background-image:url('"+img_src+"')");
						
						$D.setStyle(div2,'background-image','url('+img_src+')');
						
						//link.innerHTML = img_tag;												
						div.appendChild(link);
						div.appendChild(div2);
																						
						break;
									
				}
				$('feeds_container').appendChild(div);	
				
			}
		},
		
		make_paginator:function(total){
			
			paginator = new YAHOO.widget.Paginator(paginator_config);					
			paginator.render();				
			paginator.subscribe('changeRequest',YAHOO.feeds.page.handlePagination); 
		},
		
		handlePagination: function(newState){
			
			YAHOO.feeds.page.display_page(newState);
			paginator.setState(newState); 
		}
				
												
	};
}();

// intialise page object once the page has loaded
YAHOO.util.Event.on(window, 'load', YAHOO.feeds.page.init, YAHOO.feeds.page, true );


