﻿/*
  blog.js
  JavaScript file for : ALL PAGES DISPLAYING BLOG
  Depends on          : <script type="text/javascript" src="http://www.google.com/jsapi"></script>
                        prototype.js
  Comments            : http://code.google.com/apis/blogger/developers_guide_js.html
*/

var elBlogContainer='blogMiniFeed';  //container id for the blog html
var nMaxPosts = 5;                   //number of most recent posts to show

google.load("gdata", "1.x");
google.setOnLoadCallback(getBlogFeed);
    
function getBlogFeed() {
  // create the blogger service object
  var bloggerService = new google.gdata.blogger.BloggerService('Numberator-1-0');
  // feed uri used to retrieve a list of blog posts for a particular logged-in user (in this case anonymous)      
  var blogFeedUri = 'http://numberator.blogspot.com/feeds/posts/default';
  var blogQry = new google.gdata.blogger.BlogPostQuery(blogFeedUri);        
  blogQry.setMaxResults(nMaxPosts);
  bloggerService.getBlogPostFeed(blogQry, hndBlogPostFeed, hndBlogErr);  
}

// error handler
var hndBlogErr = function(error){$(elBlogContainer).innerHTML='<p>Sorry but feed data could not be retrieved at this time</p>';};
  
function hndBlogPostFeed(feedRoot) {
  var blogPosts = feedRoot.feed.getEntries();
  var sHTML = '';
  for (var i=0,blogPost; blogPost=blogPosts[i]; i++) {
    var postDate = formatDate(blogPost.getPublished().getValue().date);
    var postTitle = blogPost.getTitle().getText();
    var postURL = blogPost.getHtmlLink().getHref();
    var postText = blogPost.getContent().getText().stripTags().truncate(100);
    sHTML = sHTML + ('<p>'+postDate+'<br/><b><a href="'+postURL+'" target="_blank">'+postTitle+'</a></b><br/>'+postText+'&nbsp;'+'<a href="'+postURL+'" target="_blank">more&gt;</a></p>');
  }
  $(elBlogContainer).innerHTML = sHTML;
}

function formatDate(pDate){
  var oDate = new Date(pDate);
  var shortMonthName=function(x){switch(x){case 0:return 'Jan';case 1:return 'Feb';case 2:return 'Mar';case 3:return 'Apr';case 4:return 'May';case 5:return 'Jun';case 6:return 'Jul';case 7:return 'Aug';case 8:return 'Sep'; case 9:return 'Oct'; case 10:return 'Nov'; case 11:return 'Dec';}};
  return oDate.getDate()+' '+shortMonthName(oDate.getMonth())+' '+oDate.getFullYear();
}
