new function() {
	var ref;

	var error_message = "";
	var template = {"item":"<tr><td class=\"rssBoxContent\">\n${title}\n${break}\n${description}\n<\/td><\/tr>","link":"<a class=\"${class}\" href=\"${link}\" style=\"${style}\" target=\"_blank\">${text}<\/a>","box":"<style type=\"text\/css\">.rssBox {\n\tfont-family: Verdana, sans-serif;\n\ttable-layout: fixed;\n\toverflow: hidden;\n\tborder-left: 1px solid #d71920;\n\tborder-right: 1px solid #d71920;\n\tborder-bottom: 1px solid #d71920;\n\tbackground-color: #fff;\n}\n\n.rssBox td {\n\tpadding: 5px;\n\tfont-size: 11px;\n\tborder-collapse: collapse;\n}\n\n.rssBoxLogo {\n\tbackground-image: url(http:\/\/www.nw-news.de\/nwhomepageticker\/logo.png);\n\tbackground-position:center top;\n\tbackground-repeat:no-repeat;\n\theight: 69px;\n}\n\n.rssBoxHeader {\n\ttext-align: center;\n\tcolor: #d71920;\n\tborder-bottom: 1px dashed #bababa;\n}\n\n.rssBoxHeader a {\n\tcolor: #000;\n\ttext-decoration: underline;\n}\n\n.rssBoxContent {\n\tborder-bottom: 1px dashed #bababa;\n\tcolor: #6b6b6b\n}\n\n.rssBoxContent img {\n\tmargin-top: 5px;\n\tmargin-right: 5px;\n\tmargin-bottom: 5px;\n}\n\n.rssBoxContent a {\n\tcolor: #000;\n\tfont-size: 12px;\n}\n\n.rssBoxFooter td {\n\tpadding: 0px;\n\tfont-weight: bold;\n\tfont-size: 10px;\n\tvertical-align: center;\n}\n\n.rssBoxFooter a {\n\tcolor: #000;\n\ttext-decoration: none;\n}\n\n.rssBoxFooter a:hover {\n\ttext-decoration: underline;\n}\n\n.rssBoxFooter img {\n\tmargin-left: 5px;\n}\n<\/style>\n<table width=\"${width}\" class=\"rssBox\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\">\n<tr>\n<td class=\"rssBoxLogo\">\n\n<\/td>\n<\/tr>\n<tr>\n<td class=\"rssBoxHeader\">\n   +-+-+ Sport-Nachrichten +-+-+\n<\/td>\n<\/tr>\n   ${items}\n<tr>\n<td class=\"rssBoxFooter\" align=\"center\">\n\t<table width=\"100%\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\">\n\t<tr><td width=\"208\"><a href=\"http:\/\/www.nw-news.de\/top_bar\/homepage_ticker\/\"><span style=\"color: #d71920\">NW-Homepage-Ticker<\/span><br\/>...auch f\u00fcr Ihre Webseite<\/a><\/td><td width=\"30\"><a href=\"http:\/\/www.nw-news.de\/_export\/nw\/rss_sport\/index.rss\"><img src=\"http:\/\/www.nw-news.de\/nwhomepageticker\/rss.png\" width=\"30\" height=\"29\" alt=\"RSS-Feed abonieren\" title=\"RSS-Feed abonieren\" border=\"0\" \/><\/a><\/td><\/tr>\n\t<\/table>\n<\/td>\n<\/tr>\n<\/table>\n","error":"<?xml version=\"1.0\"?>\n<rss version=\"feed\">\n   <channel>\n      <title>RSS Box Error<\/title>\n      <link>${link}<\/link>\n      <description>This output was automatically generated to report an error \n      that occurred during a request to the JavaScript RSS Box Viewer.<\/description>\n      <item>\n         <title>Oops, something went wrong...<\/title>\n         <description>An error occurred while processing the request to the \n         JavaScript RSS Box Viewer.<\/description>\n      <\/item>\n      <item>\n         <title>An error message was returned by the server.<\/title>\n         <description>${message}<\/description>\n      <\/item>\n      <item>\n         <description>Most likely, this might have happened because of a \n         non-existent or wrong RSS feed URL. Please check and possibly correct \n         your input, then try again.<\/description>\n      <\/item>\n   <\/channel>\n<\/rss>\n"};
	
	var getDocument = function(source) {
		if (document.implementation.createDocument) {
			var parser = new DOMParser();
			var doc = parser.parseFromString(source, 'text/xml');
			return doc;
		} else if (window.ActiveXObject) {
			var doc = new ActiveXObject('Microsoft.XMLDOM');
			doc.async = 'false';
			doc.loadXML(source);
			return doc;
		}
	}
	  
	var getNode = function(parent, name) {
		var elements = parent.getElementsByTagName(name);
		if (elements && elements[0]) {
			return elements[0];
		}
		return null;
	}
	
	var getText = function(node) {
		if (node && node.childNodes && node.childNodes.length > 0) {
			return node.childNodes[0].nodeValue;
		}
		return '';
	}
	
	var trim = function(str) {
		return str.replace(/^\s*(\S*)\s*$/, '$1');
	}
	
	var encodeXml = function(str) {
		return str.replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/&/g, '&amp;');
	}
		
	var render = function(template, param) {
		if (!template || !param) {
			return template;
		}
		template = template.replace(/\$\{([^}]+)\}/g, function() {
			var key = arguments[1];
			return param[key] || '';
		});
		return template;
	}
	
	var compact = "1";
	var rss = {items: []};
	var xml = getDocument("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<rss xmlns:atom=\"http:\/\/www.w3.org\/2005\/Atom\" version=\"2.0\">\n<channel>\n<title>Neue Westf\u00e4lische - Sport<\/title>\n<link>http:\/\/www.nw-news.de<\/link>\n<atom:link href=\"http:\/\/www.nw-news.de\/_export\/nw\/rss_sport\/index.rss\" rel=\"self\" type=\"application\/rss+xml\" \/>\n<description>Neue Westf\u00e4lische - Sport<\/description>\n<language>de-de<\/language>\n<copyright>Neue Westf\u00e4lische<\/copyright>\n<pubDate>Thu, 23 Feb 2012 00:00:01 GMT<\/pubDate>\n<lastBuildDate>Thu, 23 Feb 2012 00:20:06 GMT<\/lastBuildDate>\n<ttl>240<\/ttl>\n<managingEditor>redaktion@nw-news.de (Redaktion Neue Westf\u00e4lische)<\/managingEditor>\n<webMaster>redaktion@nw-news.de (Webmaster Neue Westf\u00e4lische)<\/webMaster>\n<item>\n<title>0:1 in Basel: FC Bayern bangt ums Viertelfinale<\/title>\n<link>http:\/\/www.nw-news.de\/sport\/6176699_Fussball_Champions_League_Muenchen_Basel.html<\/link>\n<description>&lt;img src=\"http:\/\/www.nw-news.de\/_em_daten\/_dpa\/2012\/02\/22\/thumb\/120222_2317_nwjpeg_1480ac002f72dbe1_20120222_img_35245216_original.large_4_3_800_0_115_1706_1394_thumb.jpg\" style=\"float:left; width:110px; height:82px;\" alt=\"Entscheidung: Basels Valentin Stocker (l) erzielt gegen Manuel Neuer (M) das 1:0. \" \/&gt;Basel - Eine Unaufmerksamkeit in der Abwehr l\u00e4sst den FC Bayern M\u00fcnchen um den Einzug ins Viertelfinale der Champions League bangen. Nach dem j\u00fcngsten R\u00fcckschlag im Bundesliga-Titelkampf verloren die Bayern durch ein Tor von Valentin Stocker in der 86. Minute mit 0:1 (0:0) beim FC Basel. Der Rekordmeister steht nun im R\u00fcckspiel am 13. M\u00e4rz in M\u00fcnchen vor einer \u00e4u\u00dferst heiklen Aufgabe. &#34;Es ist schon bedenklich, was hier passiert ist, weil Basel das Spiel verdient gewonnen hat&#34;...<\/description>\n<pubDate>Wed, 22 Feb 2012 22:18:24 GMT<\/pubDate>\n<\/item>\n<item>\n<title>Inter Mailand verliert mit 0:1 bei Marseille<\/title>\n<link>http:\/\/www.nw-news.de\/sport\/6176732_Fussball_Champions_League_Marseille_Mailand.html<\/link>\n<description>&lt;img src=\"http:\/\/www.nw-news.de\/_em_daten\/_dpa\/2012\/02\/22\/thumb\/120222_2311_nwjpeg_1480ac00b657a265_20120222_img_35245240_original.large_4_3_800_184_0_2773_1945_thumb.jpg\" style=\"float:left; width:110px; height:82px;\" alt=\"Olympique Marseille - Inter Mailand: Torsch\u00fctze Andre Ayew (r) jubelt mit Morgan Amalfitano \u00fcber das 1:0 f\u00fcr Marseille. \" \/&gt;Marseille - Inter Mailand hat in der Nachspielzeit seine ordentliche Ausgangsposition in der Champions League verspielt. Die in der Serie A zuletzt f\u00fcnfmal sieglosen Italiener verloren das Achtelfinal-Hinspiel bei Olympique Marseille mit 0:1 (0:0). Der ghanaische Fu\u00dfball-Nationalspieler Andr\u00e9 Ayew lie\u00df die Franzosen in der dritten Minute der Nachspielzeit mit seinem Kopfball-Treffer jubeln. Ob der in die Kritik geratene Inter-Trainer Claudio Ranieri auch im R\u00fcckspiel am 13...<\/description>\n<pubDate>Wed, 22 Feb 2012 22:08:03 GMT<\/pubDate>\n<\/item>\n<item>\n<title>Hannover auf Daums Acker: &#34;Spielen auf jedem Platz&#34;<\/title>\n<link>http:\/\/www.nw-news.de\/sport\/6171516_Fussball_Europa_League_Bruegge_Hannover.html<\/link>\n<description>&lt;img src=\"http:\/\/www.nw-news.de\/_em_daten\/_dpa\/2012\/02\/22\/thumb\/120222_1217_nwdaum_35230046_original.large_4_3_800_528_0_2621_1571_thumb.jpg\" style=\"float:left; width:110px; height:82px;\" alt=\"Br\u00fcgge-Coach: Christoph Daum will mit dem FC Br\u00fcgge ins Achtelfinale der Europa League einziehen. \" \/&gt;Br\u00fcgge - Seinem Ruf als Lautsprecher ist Christoph Daum vor dem Europa-League-R\u00fcckspiel gegen Hannover 96 wieder einmal gerecht geworden. Wortgewaltig schimpfte der deutsche Trainer des FC Br\u00fcgge: &#34;Unser Platz ist so schlecht, dass ein Bauer seine K\u00fche nicht darauf lassen w\u00fcrde, aus Angst, dass sie sich die Beine brechen.&#34; Hannover 96 ist dennoch ohne Angst vor dem Acker nach Flandern gereist und reagierte gelassen angesichts der gro\u00dfen braunen Flecken im Jan-Breydel-Stadion...<\/description>\n<pubDate>Wed, 22 Feb 2012 17:22:10 GMT<\/pubDate>\n<\/item>\n<item>\n<title>H\u00fclkenberg Tagesschnellster - Probleme bei Mercedes<\/title>\n<link>http:\/\/www.nw-news.de\/sport\/6174404_Motorsport_Formel_1.html<\/link>\n<description>&lt;img src=\"http:\/\/www.nw-news.de\/_em_daten\/_dpa\/2012\/02\/22\/thumb\/120222_1737_nwjpeg_1480ac005461217a_20120222_img_35238140_original.large_4_3_800_50_0_2763_2034_thumb.jpg\" style=\"float:left; width:110px; height:82px;\" alt=\"Probleme: Nico Rosberg musste wegen eines \u00d6llecks am Getriebe in die Box. \" \/&gt;Barcelona - Der deutsche Formel-1-Pilot Nico H\u00fclkenberg vom Team Sahara Force India hat am zweiten Testtag in Barcelona die Bestzeit hingelegt. H\u00fclkenbergs am Vormittag erzielte Rundenzeit von 1:22,608 Minuten blieb den gesamten Mittwoch \u00fcber unerreicht. Weltmeister Sebastian Vettel ben\u00f6tigte auf seiner schnellsten Runde f\u00fcr die 4,655 Kilometer auf dem Circuit de Catalunya 1:22,891 Minuten und wurde hinter dem Mexikaner Sergio Perez im Sauber Dritter. Probleme gab es erneut bei Mercedes...<\/description>\n<pubDate>Wed, 22 Feb 2012 16:32:50 GMT<\/pubDate>\n<\/item>\n<item>\n<title>DBB setzt auf Trainerfuchs Pesic<\/title>\n<link>http:\/\/www.nw-news.de\/sport\/6171248_Basketball_Deutschland.html<\/link>\n<description>&lt;img src=\"http:\/\/www.nw-news.de\/_em_daten\/_dpa\/2012\/02\/22\/thumb\/120222_1140_nwpesic_35228382_original.large_4_3_800_334_0_3000_2000_thumb.jpg\" style=\"float:left; width:110px; height:82px;\" alt=\"Hoffnungstr\u00e4ger: Svetislav Pesic soll als neuer Bundestrainer die DBB-Auswahl wieder zu gro\u00dfen Turnieren f\u00fchren. \" \/&gt;Frankfurt\/Main - Fast 20 Jahre nach dem EM-Coup von M\u00fcnchen soll Svetislav Pesic die deutsche Basketball-Nationalmannschaft zur\u00fcck in die europ\u00e4ische Spitze f\u00fchren. Der 62 Jahre alte Serbe tritt im Sommer den Posten als Bundestrainer an und \u00fcbernimmt damit zum zweiten Mal das deutsche Team. Bereits von 1987 bis 1993 hatte Pesic beim Deutschen Basketball Bund (DBB) in der Verantwortung gestanden und mit dem Sieg bei der Heim- Europameisterschaft 1993 f\u00fcr den bislang gr\u00f6\u00dften Erfolg der...<\/description>\n<pubDate>Wed, 22 Feb 2012 12:52:43 GMT<\/pubDate>\n<\/item>\n<item>\n<title>L\u00f6w ruft &#34;Jahr der gro\u00dfen Chance&#34; aus<\/title>\n<link>http:\/\/www.nw-news.de\/sport\/6170928_Fussball_EM_Deutschland_Frankreich.html<\/link>\n<description>&lt;img src=\"http:\/\/www.nw-news.de\/_em_daten\/_dpa\/2012\/02\/22\/thumb\/120222_1051_nwjpeg_1480ac00fab02132_20120222_img_35227768_original.large_4_3_800_222_0_2227_1506_thumb.jpg\" style=\"float:left; width:110px; height:82px;\" alt=\"Bundestrainer: Joachim L\u00f6w hat den DFB-Kader f\u00fcr das L\u00e4nderspiel gegen Frankreich nominiert. \" \/&gt;Berlin - Frankreich wartet als erster Pr\u00fcfstein, aber der Bundestrainer denkt in gr\u00f6\u00dferen Dimensionen. Joachim L\u00f6w erkl\u00e4rt 2012 zum &#34;Jahr der gro\u00dfen Chance&#34; f\u00fcr Fu\u00dfball-Deutschland - und vertraut dabei konsequent auf seine bew\u00e4hrten Kr\u00e4fte. Im Testspiel der Nationalmannschaft gegen Frankreich am kommenden Mittwoch in Bremen sollen Kapit\u00e4n Philipp Lahm und Co. weiter an ihrer Titelreife feilen. F\u00fcr Neulinge hat der Bundestrainer beim Prolog ins EM-Jahr trotz der Verletzungspause von Bastian...<\/description>\n<pubDate>Wed, 22 Feb 2012 12:27:11 GMT<\/pubDate>\n<\/item>\n<item>\n<title>Schumacher und Rosberg enth\u00fcllen neuen Silberpfeil<\/title>\n<link>http:\/\/www.nw-news.de\/sport\/6160189_Motorsport_Formel_1_MercedesAMG.html<\/link>\n<description>&lt;img src=\"http:\/\/www.nw-news.de\/_em_daten\/_dpa\/2012\/02\/21\/thumb\/120221_1029_nwjpeg_1480aa0041732fd1_20120221_img_35208482_original.large_4_3_800_43_559_1846_1909_thumb.jpg\" style=\"float:left; width:110px; height:82px;\" alt=\"Neuvorstellung: Rekordweltmeister Michael Schumacher\u00a0pr\u00e4sentiert den neuen Mercedes-Silberpfeil. Foto:\u00a0Mercedes AMG\u00a0Petronas\" \/&gt;Barcelona - Selbst f\u00fcr Rekordweltmeister Michael Schumacher war es ein spezieller Moment. Er sei &#34;voller Hoffnung und Vorfreude&#34;, sagte der siebenmalige Weltmeister zur Pr\u00e4sentation seines neuen Formel-1-Rennwagens. 26 Tage vor dem ersten Grand Prix zog der siebenmalige Champion zusammen mit Teamkollege Nico Rosberg auf dem Circuit de Catalunya bei Barcelona die schwarze Decke vom neuen Mercedes. &#34;Ich habe ja schon einige Rollouts und Vorstellungen neuer Autos hinter mir...<\/description>\n<pubDate>Tue, 21 Feb 2012 13:03:46 GMT<\/pubDate>\n<\/item>\n\n<\/channel>\n<\/rss>");
	
	var error;
	if (!xml || error_message.length > 0) {
		error = error_message || 'Unknown error.';
	} else if (xml.parseError && xml.parseError.errorCode) {
		error = xml.parseError.reason;
	} else if (xml.documentElement.nodeName === 'parsererror') {
		error = xml.documentElement.textContent;
	} else if (!/rss|rdf|scriptingNews/i.test(xml.documentElement.nodeName)) {
		error = 'Incompatible data format. Are you sure this is an RSS feed?';
	} else {
		error = null;
	}
	if (error !== null) {
		xml = getDocument(render(template.error, {
			link: encodeXml("http:\/\/www.nw-news.de\/"),
			message: encodeXml(error)
		}));
		compact = '';
	}

	var root = xml.documentElement;
	var type = root.nodeName;

	if (type === 'scriptingNews') {
		var channel = getNode(xml, 'header');
		rss.format = 'Scripting News';
		rss.version = getText(getNode(channel, 'scriptingNewsVersion'));
		rss.title = getText(getNode(channel, 'channelTitle'));
		rss.description = getText(getNode(channel, 'channelDescription'));
		rss.link = getText(getNode(channel, 'channelLink'));
		if (ref = getText(getNode(channel, 'imageUrl'))) {
			ref = rss.image = {source: ref};
			ref.title = getText(getNode(channel, 'imageTitle'));
			ref.link = getText(getNode(channel, 'imageLink'));
			ref.width = getText(getNode(channel, 'imageWidth'));
			ref.height = getText(getNode(channel, 'imageHeight'));
			ref.description = getText(getNode(channel, 'imageCaption'));
		}
	} else {
		var channel = getNode(xml, 'channel');
		rss.format = 'RSS';
		rss.version = (type === 'rdf:RDF') ? '1.0' : 
				root.getAttribute('version');
		rss.title = getText(getNode(channel, 'title'));
		rss.description = getText(getNode(channel, 'description'));
		rss.link = getText(getNode(channel, 'link'));
		var image = getNode(xml, 'image');
		if (image) {
			ref = rss.image = {};
			ref.source = getText(getNode(image, 'url'));
			ref.title = getText(getNode(image, 'title'));
			ref.link = getText(getNode(image, 'link'));
			ref.width = getText(getNode(image, 'width'));
			ref.height = getText(getNode(image, 'height'));
			ref.description = getText(getNode(image, 'description'));
		}
	}
	
	var item, text, node;
	var items = xml.getElementsByTagName('item');

	for (var i=0; i<Math.min(items.length, "5"); i+=1) {
		item = items[i];

		if (type === 'scriptingNews') {
			ref = {title: ''};
			ref.description = getText(getNode(item, 'text')).replace(/\n/g, ' ');
			ref.link = getText(getNode(item, 'link'));
			if (text = trim(getText(getNode(item, 'linetext')).replace(/\n/g, ' '))) {
				ref.description = ref.description.replace(new RegExp(text), 
				      '<a href="' + getText(getNode(item, 'url')) + '">' + text + '</a>');
			}
		} else {
			ref = {
				title: getText(getNode(item, 'title')),
				description: getText(getNode(item, 'description')),
				link: getText(getNode(item, 'link') || getNode(item, 'guid'))
			};
	  }

	  if (node = getNode(item, 'category')) {
		  ref.category = {
			  domain: node.getAttribute('domain') || '',
			  content: getText(node)
		  }
	  }
	  
	  rss.items.push(ref);
	}
	
	var item, items = '';
	for (var i=0; i<rss.items.length; i+=1) {
		item = rss.items[i];
		items += render(template.item, {
			title: new function() {
				var title = (!compact ? '<strong>' : '');
				if (item.link) {
				   title += render(template.link, {
				      link: item.link,
				      text: item.title,
				      'class': 'rssBoxItemTitle'
				   });
				} else {
				   title += item.title;
				}
				!compact && (title += '</strong>');
				return new String(title); // FIXME: Funny, title alone will be rendered as [object]
			}(),
			'break': item.title && item.description ? '<br />' : '',
			description: (!compact || !item.title) && item.description
		});
	}
	
	document.write(render(template.box, {
		title: rss.link ? render(template.link, {
			link: rss.link,
			text: rss.title,
			'class': 'rssBoxTitle'
		}) : rss.title,
		description: rss.description,
		items: items,

		image: !compact && rss.image && render(template.image, {
			link: rss.image.link,
			source: rss.image.source,
			width: rss.image.width,
			height: rss.image.height,
			title: rss.image.title,
			align: 'right',
			valign: 'baseline',
			hspace: 5,
			vspace: 5
		}),
		
		width: "250"
	}));

}();

