
var YahooWeather = {
	url: "get.php?url=http://weather.yahooapis.com/forecastrss?w=",
	request: function() {
		var myRequest = new Request({
			'url': this.url + this.loc + "&u=" + this.units,
			'method': 'get',
			'onRequest': function() {
				YahooWeather.container.set('html', 'Loading ...');
			},
			'onSuccess': function(responseText, responseXML) {
				YahooWeather.display(responseXML);
			},
			'onFailure': function(err) {
				YahooWeather.container.set('html', err);
			}
		});
		myRequest.send();
	},
	display: function(data) {
		YahooWeather.container.empty();
		
		var item = data.getElementsByTagName('item')[0];

		var title = item.getElementsByTagName('title')[0].firstChild.nodeValue;
		new Element("h4", { 'html': title }).inject(YahooWeather.container);
		
		var description = item.getElementsByTagName('description')[0].firstChild.nodeValue;
		new Element("h4", { 'html': description }).inject(YahooWeather.container);
		
	},
	fetch: function(options) {
		var defaults = {
			'container': null,
			'loc': '',
			'units' : 'c'
		};
		for( key in defaults ) {
			this[key] = ( options[key] ) ? options[key] : defaults[key] ;
		}
		this.request();
	}
};

var Travel = {
	url: "get.php?url=http://www.highways.gov.uk/rssfeed/NorthEast.xml",
	request: function() {
		var myRequest = new Request({
			'url': this.url,
			'method': 'get',
			'onRequest': function() {
				Travel.container.set('html', 'Loading ...');
			},
			'onSuccess': function(responseText, responseXML) {
				Travel.display(responseXML);
			},
			'onFailure': function(err) {
				Travel.container.set('html', err);
			}
		});
		myRequest.send();
	},
	display: function(data) {
		Travel.container.empty();
		var items = data.getElementsByTagName('item');
		for( index = 0; index < items.length; index++ ) {
			var item = items[index];
			if( Travel.limit > index ) {
				var title = new Element("h4").inject(Travel.container);
				
				var text = item.getElementsByTagName('title')[0].firstChild.nodeValue;
				var href = item.getElementsByTagName('link')[0].firstChild.nodeValue;
				
				var link = new Element("a", { 'html': text, 'href': href });
				link.inject(title);
				
				var description = item.getElementsByTagName('description')[0].firstChild.nodeValue;
				new Element("p", { 'html': description }).inject(Travel.container);
			}
		}
	},
	fetch: function(options) {
		var defaults = {
			'container': null,
			'limit': 10
		};
		for( key in defaults ) {
			this[key] = ( options[key] ) ? options[key] : defaults[key] ;
		}
		this.request();
	}
};


var BBCNews = {
	url: "get.php?url=http://newsrss.bbc.co.uk/rss/newsonline_uk_edition/england/tyne/rss.xml",
	request: function() {
		var myRequest = new Request({
			'url': this.url,
			'method': 'get',
			'onRequest': function() {
				BBCNews.container.set('html', 'Loading ...');
			},
			'onSuccess': function(responseText, responseXML) {
				BBCNews.display(responseXML);
			},
			'onFailure': function(err) {
				BBCNews.container.set('html', err);
			}
		});
		myRequest.send();
	},
	display: function(data) {
		BBCNews.container.empty();
		var items = data.getElementsByTagName('item');
		for( index = 0; index < items.length; index++ ) {
			var item = items[index];
			if( BBCNews.limit > index ) {
				var title = new Element("h4").inject(BBCNews.container);
				
				var text = item.getElementsByTagName('title')[0].firstChild.nodeValue;
				var href = item.getElementsByTagName('link')[0].firstChild.nodeValue;
				
				var link = new Element("a", { 'html': text, 'href': href });
				link.inject(title);
				
				var description = item.getElementsByTagName('description')[0].firstChild.nodeValue;
				new Element("p", { 'html': description }).inject(BBCNews.container);
			}
		}
	},
	fetch: function(options) {
		var defaults = {
			'container': null,
			'limit': 10
		};
		for( key in defaults ) {
			this[key] = ( options[key] ) ? options[key] : defaults[key] ;
		}
		this.request();
	}
};
