// initial function called when dom is ready
function initRSSFeedDisplay ( )
{
var newshourfeed = "/newshour/rss/rss_vote2008.xml";
var rssdisplay = new RSSReaderDisplay ( newshourfeed );
rssdisplay.loadFeed();
}
// parsing xml feed and display results
var RSSReaderDisplay = new Class(
{
initialize: function( rssURL )
{
feed = rssURL;
},
parseFeed: function( tree , target )
{
var totalItems = 2;
var count = 0;
var feedItemHTML = "
";
var curFeedItem;
for( count; count < totalItems; count++ )
{
curFeedItem = tree.rss[ 0 ].channel[ 0 ].item[ count ];
/*
var rsslink = tree.rss.channel.item[ count ].link;
var desc = tree.rss.channel.item[ count ].title;
var pdate = tree.rss.channel.item[ count ].pubDate;
*/
//Sat, 26 Jan 2008 22:17:00 EST
//convert time string into array split on white space
var fdate = curFeedItem.pubDate[ 0 ]._text.split( ' ' );
var tconvert = fdate[ 4 ]; // 22:17
var mins = tconvert.substr( tconvert.indexOf( ":" ), 3 );
//console.log( "mins " + mins );
var hour = parseInt( tconvert.substring( 0, tconvert.indexOf( ":" ) ) );
//console.log( "hour " + hour );
if( hour > 12 )
{
// pm time
mins += " PM";
hour -= 12;
}
else
{
mins += " AM;"
}
var timedisplay = fdate[ 2 ] + " " + fdate[ 1 ] + " " + hour + mins;
// write out html
feedItemHTML += '- ';
feedItemHTML += '' + curFeedItem.title[ 0 ]._text + '';
feedItemHTML += '
' + timedisplay + '
';
feedItemHTML += ' ';
}
// close list
feedItemHTML += "
";
// Update html
$( 'rss_list' ).setHTML( feedItemHTML );
},
onFeedLoaded: function ( pStrXML , pObjXML , pEvtObj )
{
if (document.implementation.createDocument) { // mozilla
var parser = new DOMParser();
doc = parser.parseFromString(pStrXML, 'text/xml');
} else if (window.ActiveXObject) { // ie
doc = new ActiveXObject('Microsoft.XMLDOM');
doc.async = 'false';
doc.loadXML( pStrXML );
}
var object = parseXML( doc );
pEvtObj.target.parseFeed( object , pEvtObj.target );
},
loadFeed: function()
{
var ajaxXML = new Ajax( feed , { method:'get' } ).request();
ajaxXML.eventObj = { target:this };
ajaxXML.addEvent( 'onComplete' , function ( pStrXML , pObjXML ) { this.eventObj.target.onFeedLoaded( pStrXML , pObjXML , this.eventObj ) } );
}
} );
window.addEvent( 'domready', initRSSFeedDisplay );