// Note: This uses the jfeed jquery plugin var NewsBanner = function(){ var base; var news; var intervalID; var rotateDuration = 5000; // 5 seconds var fadeDuration = 400; var newsFeed; var self = { init: function(selector){ base = $(selector); jQuery.getFeed({ url: '/blog/feed/', success: function(feed) { NewsBanner.newsFeed = feed; for( var i = 0; i < 3 ; i++ ) { var newsItem; var updateDate = new Date( NewsBanner.newsFeed.items[i].updated ); if( i == 0 ) { newsItem = "
  • "; } else { newsItem = "
  • "; } newsItem += '' + '' + updateDate.toDateString().substr(4) + ': ' ; if( NewsBanner.newsFeed.items[i].title.length > 110 ) { newsItem += NewsBanner.newsFeed.items[i].title.substr(0,110) + '......
  • '; } else { newsItem += NewsBanner.newsFeed.items[i].title + ''; } base.append( newsItem ); } news = base.find('li'); if(news.length < 2) return true; var current = base.find('.current'); if(!current) first = base.find('li:first').addClass('current'); if(current.next().length > 0){ current.next().addClass('next'); }else{ base.find('li:first').addClass('next'); } intervalID = setInterval(self.rotate,rotateDuration); } }); }, rotate: function(){ // alert( NewsBanner.newsFeed.title ); var current = base.find('.current'); var next = base.find('.next'); current.fadeOut(fadeDuration,function(){ $(this) .removeClass('current') .show(); if(next.next().length > 0){ next.next().addClass('next'); }else{ base.find('li:first').addClass('next'); } next .removeClass('next') .addClass('current'); }); } }; return self; }();