// RSS parsing code

google.load("feeds", "1");

function initialize() 
{
	// Good Reads feed
	
	var booksContainer = document.getElementById("googleReadingFeed");
	if (booksContainer)
	{
		var booksFeed = new google.feeds.Feed("http://www.goodreads.com/review/list_rss/1110951?key=cf5bd3db55cafa587c7b98917bb8bfb3bdefa3dc&shelf=currently-reading");
		
		booksFeed.setResultFormat(google.feeds.Feed.XML_FORMAT);
		booksFeed.load(function(result) {
		  if (!result.error) {
		    var items = result.xmlDocument.getElementsByTagName("item");
			var visibleItems = items.length;
		    for (var i = 0; i < visibleItems; i++) 
			{
		      var titleElement = items[i].getElementsByTagName("title")[0];
		      var title = titleElement.firstChild.nodeValue;
		
		      var authorElement = items[i].getElementsByTagName("author_name")[0];
		      var author = authorElement.firstChild.nodeValue;
			  
		      var coverElement = items[i].getElementsByTagName("book_medium_image_url")[0];
		      var imgSrc = coverElement.firstChild.nodeValue;
			  
			  var hrefElement = items[i].getElementsByTagName("link")[0];
		      var hrefValue = hrefElement.firstChild.nodeValue;
			  
			  /*
			  var descriptionElement = items[i].getElementsByTagName("description")[0];
		      var description = descriptionElement.firstChild.nodeValue;
			  
			  var imgSrc = description.replace(/^(.*?)(src=")(.*?)(".*?)$/, "$3");
			  //imgSrc = imgSrc.replace(/(zoom=).*$/, "zoom=1");
			  
			  var author = description.substring(description.indexOf(" - ") + 3, description.length-4);
			  */
			  
		      var book = document.createElement("div");
		      
			  var bookLink = document.createElement("a");
		      var bookLinkHref = document.createAttribute('href');
			  bookLinkHref.value = hrefValue;
			  bookLink.setAttributeNode(bookLinkHref);
		      var bookLinkTarget = document.createAttribute('target');
			  bookLinkTarget.value = "goodreads";
			  bookLink.setAttributeNode(bookLinkTarget);
			  
			  var bookImg = document.createElement("img");
			  var bookImgSrc = document.createAttribute('src');
			  bookImgSrc.value = imgSrc;
			  bookImg.setAttributeNode(bookImgSrc);
			  bookLink.appendChild(bookImg);
			  
			  bookLink.appendChild(document.createElement("br"));
			  
			  var bookTitle = document.createElement("b");
			  bookTitle.appendChild(document.createTextNode(title));
			  bookLink.appendChild(bookTitle);
			  
			  bookLink.appendChild(document.createElement("br"));
			  
		      bookLink.appendChild(document.createTextNode(author));
			  
			  bookLink.appendChild(document.createElement("br"));
			  bookLink.appendChild(document.createElement("br"));
			  
			  book.appendChild(bookLink);
			  booksContainer.appendChild(book);
			  
			  document.getElementById('readingContainer').style.display = 'block';
		    }
		  }
		});
	}



	
	
















	// Google Books feed
	/*
	var booksContainer = document.getElementById("googleReadingFeed");
	if (booksContainer)
	{
		var booksFeed = new google.feeds.Feed("http://books.google.com/books?q=label:reading&as_list=BDZzOk10QnJ3P7OWZrujBARoU0UG264xukh6Nn26GIl--RLM3mZA&output=rss");
		
		booksFeed.setResultFormat(google.feeds.Feed.XML_FORMAT);
		booksFeed.load(function(result) {
		  if (!result.error) {
		    var items = result.xmlDocument.getElementsByTagName("item");
			var visibleItems = items.length;
		    for (var i = 0; i < visibleItems; i++) 
			{
		      var titleElement = items[i].getElementsByTagName("title")[0];
		      var title = titleElement.firstChild.nodeValue;
		
		      var hrefElement = items[i].getElementsByTagName("link")[0];
		      var hrefValue = hrefElement.firstChild.nodeValue;
		
		      var descriptionElement = items[i].getElementsByTagName("description")[0];
		      var description = descriptionElement.firstChild.nodeValue;
			  
			  var imgSrc = description.replace(/^(.*?)(src=")(.*?)(".*?)$/, "$3");
			  //imgSrc = imgSrc.replace(/(zoom=).*$/, "zoom=1");
			  
			  var author = description.substring(description.indexOf(" - ") + 3, description.length-4);
			  
		      var book = document.createElement("div");
		      
			  var bookLink = document.createElement("a");
		      var bookLinkHref = document.createAttribute('href');
			  bookLinkHref.value = hrefValue;
			  bookLink.setAttributeNode(bookLinkHref);
		      var bookLinkTarget = document.createAttribute('target');
			  bookLinkTarget.value = "googlebooks";
			  bookLink.setAttributeNode(bookLinkTarget);
			  
			  var bookImg = document.createElement("img");
			  var bookImgSrc = document.createAttribute('src');
			  bookImgSrc.value = imgSrc;
			  bookImg.setAttributeNode(bookImgSrc);
			  bookLink.appendChild(bookImg);
			  
			  bookLink.appendChild(document.createElement("br"));
			  
			  var bookTitle = document.createElement("b");
			  bookTitle.appendChild(document.createTextNode(title));
			  bookLink.appendChild(bookTitle);
			  
			  bookLink.appendChild(document.createElement("br"));
			  
		      bookLink.appendChild(document.createTextNode(author));
			  
			  bookLink.appendChild(document.createElement("br"));
			  bookLink.appendChild(document.createElement("br"));
			  
			  book.appendChild(bookLink);
			  booksContainer.appendChild(book);
			  
			  document.getElementById('readingContainer').style.display = 'block';
		    }
		  }
		});
	}
	*/


	// Netflix Recommendations feed
	
	var moviesContainer = document.getElementById("netflixWatchingFeed");
	if (moviesContainer)
	{
		var moviesFeed = new google.feeds.Feed("http://rss.netflix.com/ReviewsRSS?id=P5045041573281682124322361668796584");
		
		moviesFeed.setResultFormat(google.feeds.Feed.XML_FORMAT);
		moviesFeed.load(function(result) {
		  if (!result.error) {
		    var items = result.xmlDocument.getElementsByTagName("item");
		    for (var i = 0; i < 2; i++) 
			{
		      var titleElement = items[i].getElementsByTagName("title")[0];
		      var title = titleElement.firstChild.nodeValue;
		
		      var hrefElement = items[i].getElementsByTagName("link")[0];
		      var hrefValue = hrefElement.firstChild.nodeValue;
		
		      var descriptionElement = items[i].getElementsByTagName("description")[0];
		      var description = descriptionElement.firstChild.nodeValue;
			  
			  var imgSrc = description.replace(/^(.*?)(src=")(.*?)(".*?)$/, "$3");
			  imgSrc = imgSrc.replace("/small/", "/large/");
			  
			  description = description.replace(/^^(.*?)(<br>)(.*)$/, "$3");
			  
			  //var author = description.substring(description.indexOf(" - ") + 3, description.length-4);
			  
		      var movie = document.createElement("div");
		      
			  // parent link to netflix
			  var movieLink = document.createElement("a");
		      var movieLinkHref = document.createAttribute('href');
			  movieLinkHref.value = hrefValue;
			  movieLink.setAttributeNode(movieLinkHref);
		      var movieLinkTarget = document.createAttribute('target');
			  movieLinkTarget.value = "netflix";
			  movieLink.setAttributeNode(movieLinkTarget);
			  
			  // image
			  var movieImg = document.createElement("img");
			  var movieImgSrc = document.createAttribute('src');
			  movieImgSrc.value = imgSrc;
			  movieImg.setAttributeNode(movieImgSrc);
			  movieLink.appendChild(movieImg);
			  
			  movieLink.appendChild(document.createElement("br"));
			  
			  // title
			  var movieTitle = document.createElement("b");
			  movieTitle.appendChild(document.createTextNode(title));
			  movieLink.appendChild(movieTitle);
			  
			  movie.appendChild(movieLink);
			  
			  movie.appendChild(document.createElement("br"));
		      
			  // full movie review
			  var movieReview = document.createElement("div");
			  var movieReviewClass = document.createAttribute("class");
			  movieReviewClass.value = "recReview"
			  movieReview.setAttributeNode(movieReviewClass);
			  var movieReviewID = document.createAttribute("id");
			  movieReviewID.value = "movieReview_" + i;
			  movieReview.setAttributeNode(movieReviewID);
			  movieReview.appendChild(document.createTextNode(description));
			  var movieReviewClose = document.createElement("a");
			  var movieReviewCloseHref = document.createAttribute("href");
			  movieReviewCloseHref.value = "javascript:closeFullReview("+i+")";
			  movieReviewClose.setAttributeNode(movieReviewCloseHref);
			  movieReviewClose.appendChild(document.createTextNode("close"));
			  movieReview.appendChild(movieReviewClose);
			  
			  movie.appendChild(movieReview);
			  
			  movie.appendChild(document.createTextNode(description.substring(0, description.indexOf(' ',30) ) + "... " ));
			  
			  // abbreviated movie review and link
			  var movieReviewTrigger = document.createElement("a");
			  var movieReviewTriggerHref = document.createAttribute("href");
			  movieReviewTriggerHref.value = "javascript:triggerFullReview("+i+")";
			  movieReviewTrigger.setAttributeNode(movieReviewTriggerHref);
			  var movieReviewTriggerClass = document.createAttribute("class");
			  movieReviewTriggerClass.value = "recReviewTrigger";
			  movieReviewTrigger.setAttributeNode(movieReviewTriggerClass);
			  movieReviewTrigger.appendChild(document.createTextNode("(more)"));
			  movie.appendChild(movieReviewTrigger);
			  
			  movie.appendChild(document.createElement("br"));
			  movie.appendChild(document.createElement("br"));
			  
			  moviesContainer.appendChild(movie);
			  
			  document.getElementById('watchingContainer').style.display = 'block';
		    }
		  }
		});
	}

}
google.setOnLoadCallback(initialize);

function triggerFullReview(index)	{ document.getElementById("movieReview_" + index).style.display = "block"; }
function closeFullReview(index)		{ document.getElementById("movieReview_" + index).style.display = "none"; }



