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   +-+-+ Nachrichten aus Bielefeld +-+-+\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=\"258\"><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_bielefeld\/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 - Bielefeld<\/title>\n<link>http:\/\/www.nw-news.de<\/link>\n<atom:link href=\"http:\/\/www.nw-news.de\/_export\/nw\/rss_bielefeld\/index.rss\" rel=\"self\" type=\"application\/rss+xml\" \/>\n<description>Neue Westf\u00e4lische - Bielefeld<\/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>BIELEFELD - UPDATE: 17.41 UHR: Hubschrauber landet gleich zweimal in der Stadt<\/title>\n<link>http:\/\/www.nw-news.de\/lokale_news\/bielefeld\/bielefeld\/6171362_Hubschrauber_landet_gleich_zweimal_in_der_Stadt.html<\/link>\n<description>&lt;img src=\"http:\/\/www.nw-news.de\/_em_daten\/_dpa\/2012\/02\/22\/thumb\/120222_1202_hubschrauber_thumb.jpg\" style=\"float:left; width:110px; height:86px;\" alt=\"Landung in der Stadt: Rettungshubschrauber Christoph 13 im Leineweber-Park.\" \/&gt;Bielefeld (ari). Das kommt selten vor: Gleich zweimal landete Rettungshubschrauber Christoph 13 am Mittwoch im Leineweber-Park, erst morgens gegen 11 Uhr, dann um 17.30 Uhr.&#38;nbsp; Da staunten die Bielefelder nicht schlecht. Grund f\u00fcr die ger\u00e4uschvollen Besuche: Der Notarzt musste in zwei Arztpraxen Patienten versorgen. &#34;Alle Notarzteinsatzfahrzeuge waren unterwegs, deswegen kam der Notarzt mit dem Hubschrauber&#34;, sagt Carsten Hein von der Feuerwehr-Leitstelle...<\/description>\n<pubDate>Wed, 22 Feb 2012 10:50:00 GMT<\/pubDate>\n<\/item>\n<item>\n<title>UMFRAGE: Am Donnerstag rufen verschiedene Verb\u00e4nde und Firmen zu einer Schweigeminute f\u00fcr Opfer...<\/title>\n<link>http:\/\/www.nw-news.de\/lokale_news\/bielefeld\/bielefeld\/6173489_Am_Donnerstag_rufen_verschiedene_Verbaende_und_Firmen_zu_einer_Schweigeminute_fuer_Opfer_rechtsextremistischer_Gewalt_auf._Schweigen_Sie_mit.html<\/link>\n<description>&lt;img src=\"http:\/\/www.nw-news.de\/_em_daten\/_dpa\/2012\/02\/22\/thumb\/120222_1638_nazi_thumb.jpg\" style=\"float:left; width:110px; height:62px;\" alt=\"Gegen den Nazi-Terror:: Demonstranten auf der Stra\u00dfe.\" \/&gt;MoBiel, die IG Metall und die Stadtwerke Bielefeld beteiligen sich am Donnerstag an der bundesweiten Schweigeminute f\u00fcr die Opfer der Mordserie einer Neonazibande, die \u00fcber zehn Jahre lang mindestens neun Menschen mit ausl\u00e4ndischen Wurzeln und eine Polizistin kaltbl\u00fctig erschossen, Banken ausgeraubt und wohl auch mehrere Bomben gelegt haben soll. Schweigen Sie mit? STIMMEN SIE AB!<\/description>\n<pubDate>Wed, 22 Feb 2012 20:00:00 GMT<\/pubDate>\n<\/item>\n<item>\n<title>BIELEFELD: Polizei kontrolliert 1.763 Autofahrer<\/title>\n<link>http:\/\/www.nw-news.de\/lokale_news\/bielefeld\/bielefeld\/6172959_Polizei_kontrolliert_1.763_Autofahrer.html<\/link>\n<description>&lt;img src=\"http:\/\/www.nw-news.de\/_em_daten\/_dpa\/2012\/02\/22\/thumb\/120222_1523_175124404_fasching_polizei_alkohol_kontrolle.9_thumb.jpg\" style=\"float:left; width:110px; height:82px;\" alt=\"Gro\u00dfe Kontrolle: An den Karnevalstagen mussten die Autofahrer pusten.\" \/&gt;Bielefeld (bo). Betrunkene und unter Drogeneinfluss stehende Autofahrer sind nach wie vor eine Hauptquelle f\u00fcr Verkehrsunf\u00e4lle. Vor allem an den vergangenen Karnevals-Tagen hat die Polizei daher verst\u00e4rkt Autofahrer gezielt kontrolliert. Insgesamt wurden an f\u00fcnf Tagen auf der Autobahn und im Stadtgebiet 1.763 Autofahrer \u00fcberpr\u00fcft. Es wurden nach Angaben einer Sprecherin 320 Alkoholtests durchgef\u00fchrt - sieben Fahrer hatten dabei deutlich zuviel Alkohol getrunken...<\/description>\n<pubDate>Wed, 22 Feb 2012 14:21:00 GMT<\/pubDate>\n<\/item>\n<item>\n<title>BIELEFELD - UPDATE: Video: Ofen in Bielefelder Stahlgie\u00dferei explodiert<\/title>\n<link>http:\/\/www.nw-news.de\/lokale_news\/bielefeld\/bielefeld\/6171891_Ofen_in_Bielefelder_Stahlgiesserei_explodiert.html<\/link>\n<description>&lt;img src=\"http:\/\/www.nw-news.de\/_em_daten\/_nw\/2012\/02\/22\/thumb\/120222_1305_koppi_thumb.jpg\" style=\"float:left; width:110px; height:69px;\" alt=\"Im Einsatz: Die Feuerwehr und die Polizei versuchen, nach der Explosion \u00dcbersicht \u00fcber die Situation zu bekommen.\" \/&gt;Bei der Bielefelder Stahlgie\u00dferei Tweer ist Mittwochmittag gegen 12.30 Uhr ein Induktionsofen explodiert. Dabei wurden drei Menschen verletzt, einer davon schwer.<\/description>\n<pubDate>Wed, 22 Feb 2012 11:53:00 GMT<\/pubDate>\n<\/item>\n<item>\n<title>BIELEFELD: Falsches Vergewaltigungs-Urteil: Lehrer bekommt Job nicht wieder<\/title>\n<link>http:\/\/www.nw-news.de\/lokale_news\/bielefeld\/bielefeld\/6171735_Falsches_Vergewaltigungs-Urteil_Lehrer_bekommt_Job_nicht_wieder.html<\/link>\n<description>&lt;img src=\"http:\/\/www.nw-news.de\/_em_daten\/_nw\/2012\/02\/22\/thumb\/120222_1251_freispruch_thumb.jpg\" style=\"float:left; width:110px; height:62px;\" alt=\"Freigesprochen: Zu Unrecht sa\u00df Lehrer Horst Arnold (rechts) im Gef\u00e4ngnis. Links sein Anwalt Hartmut Lierow.\" \/&gt;Auch nach seiner inzwischen rechtskr\u00e4ftig erwiesenen Unschuld kommt ein in Hessen verurteilter Lehrer nicht automatisch auf seine Stelle zur\u00fcck. Eine Lehrerin, die zuletzt in Bielefeld unterrichtete, hatte den fr\u00fcheren Kollegen der Vergewaltigung beschuldigt.<\/description>\n<pubDate>Wed, 22 Feb 2012 11:21:00 GMT<\/pubDate>\n<\/item>\n<item>\n<title>BIELEFELD: Seidensticker platziert Unternehmensanleihe<\/title>\n<link>http:\/\/www.nw-news.de\/lokale_news\/bielefeld\/bielefeld\/6172479_Seidensticker_platziert_Unternehmensanleihe.html<\/link>\n<description>Bielefeld (sch). Das Bielefelder Unternehmern Seidensticker, Markenhersteller von Blusen, Hemden und Nachtw\u00e4sche, will eine Unternehmensanleihe am Mittelstandsmarkt der D\u00fcsseldorfer B\u00f6rse platzieren. Das hat die Unternehmensspitze gestern in D\u00fcsseldorf bekanntgegeben. Start der Anleihe soll der 27. Februar 2012 sein, sie will damit bis zu 30 Millionen Euro erzielen und sich damit unabh\u00e4ngiger von Banken machen. Verzinst ist die Anleihe mit 7,25 Prozent, die Laufzeit soll sechs Jahre betragen...<\/description>\n<pubDate>Wed, 22 Feb 2012 13:14:00 GMT<\/pubDate>\n<\/item>\n<item>\n<title>Bielefelder Boxer Marco Huck provoziert die Klitschko-Br\u00fcder<\/title>\n<link>http:\/\/www.nw-news.de\/lokale_news\/bielefeld\/bielefeld\/6171193_Bielefelder_Boxer_Marco_Huck_provoziert_die_Klitschko-Brueder.html<\/link>\n<description>&lt;img src=\"http:\/\/www.nw-news.de\/_em_daten\/_nw\/2012\/02\/22\/thumb\/120222_1212_huck_thumb.jpg\" style=\"float:left; width:110px; height:78px;\" alt=\"Harter Punch: Marco Huck will sich durchboxen, so wie hier gegen Rogelio Omar Rossi.\" \/&gt;Der in Bielefeld aufgewachsene WBO-Cruisergewichts-Champ Marco Huck will es am Samstag allen beweisen und mit einem Sieg \u00fcber Alexander Powetkin erster deutscher Schwergewichts-Weltmeister nach Max Schmeling werden.<\/description>\n<pubDate>Wed, 22 Feb 2012 10:16:00 GMT<\/pubDate>\n<\/item>\n<item>\n<title>BIELEFELD: Wieder Acta-Demo in Bielefeld<\/title>\n<link>http:\/\/www.nw-news.de\/lokale_news\/bielefeld\/bielefeld\/6170927_Wieder_Acta-Demo_in_Bielefeld.html<\/link>\n<description>&lt;img src=\"http:\/\/www.nw-news.de\/_em_daten\/_dpa\/2012\/02\/22\/thumb\/120222_1143_acta_thumb.jpg\" style=\"float:left; width:110px; height:73px;\" alt=\"Viele Gesichter bei der letzten Acta-Demo:: 1.500 Menschen demonstrierten vor dem Rathaus.\" \/&gt;Bielefeld (ari). Die Bielefelder gehen wieder gegen das umstrittene Acta-Abkommen auf die Stra\u00dfe: Am Samstag, 25. Februar, l\u00e4dt das B\u00fcndnis &#34;Stopp Acta Bielefeld&#34; ab 14 Uhr zu einer Demonstration ein. Vom Hauptbahnhof aus geht's zum Alten Rathaus, wo ab 15 Uhr eine Abschlusskundgebung geplant ist. Organisator Torsten Drescher rechnet \u00e4hnlich wie bei der ersten Acta-Demo am 11. Februar mit mehr als 1.500 Menschen. Vertreter der Piratenpartei, der Gr\u00fcnen, von Occupy, Attac, der Jungen Union...<\/description>\n<pubDate>Wed, 22 Feb 2012 20:00:00 GMT<\/pubDate>\n<\/item>\n<item>\n<title>LEOPOLDSH\u00d6HE\/BIELEFELD: Bielefelder f\u00e4hrt verkehrt in Kreisverkehr<\/title>\n<link>http:\/\/www.nw-news.de\/lokale_news\/bielefeld\/bielefeld\/6170526_Bielefelder_faehrt_verkehrt_in_Kreisverkehr.html<\/link>\n<description>&lt;img src=\"http:\/\/www.nw-news.de\/_em_daten\/_nw\/2012\/02\/22\/thumb\/120222_1002_kreis_thumb.jpg\" style=\"float:left; width:110px; height:102px;\" alt=\"\" \/&gt;Wenn schon die Polizei eine Pressemitteilung mit dem Wort &#34;Unglaublich&#34; \u00fcberschreibt, dann ist wirklich Au\u00dfergew\u00f6hnliches passiert. So auch im lippischen Leopoldsh\u00f6he-Asemissen.<\/description>\n<pubDate>Wed, 22 Feb 2012 08:47:00 GMT<\/pubDate>\n<\/item>\n<item>\n<title>UMFRAGE: Hungrig auf neue Erfahrung<\/title>\n<link>http:\/\/www.nw-news.de\/lokale_news\/bielefeld\/bielefeld\/6165930_Hungrig_auf_neue_Erfahrung.html<\/link>\n<description>&lt;img src=\"http:\/\/www.nw-news.de\/_em_daten\/_nw\/2012\/02\/21\/thumb\/120221_2113_bi3_thumb.jpg\" style=\"float:left; width:110px; height:86px;\" alt=\"Saft oder Huhn: NW-Volont\u00e4r Ralf Mischer wird in den n\u00e4chsten sieben Tagen viel Fruchtsaft trinken. Auf dem Tablett stehen M\u00f6hren- Kirsch und Bananensaft zur Auswahl. Trotzdem tr\u00e4umt er noch von einem Grillh\u00e4hnchen.\" \/&gt;Bielefeld. Am Aschermittwoch ist f\u00fcr manche alles vorbei. Bei mir geht es heute erst los. Fasten ist angesagt. Ich werde komplett auf feste Nahrung verzichten. Abnehmen will ich nicht, ich m\u00f6chte wissen, wie es sich anf\u00fchlt: Sieben Tage ohne Essen. 77,8 Kilogramm bin ich schwer und kerngesund - noch. Manchmal sagt meine Freundin zwar, dass ich das eine oder andere Pfund weniger drauf haben k\u00f6nnte. Sie meint damit wohl meinen leichten Bauchansatz. Aber darum geht es mir bei meiner Fastenaktion...<\/description>\n<pubDate>Wed, 22 Feb 2012 07:00:00 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: "300"
	}));

}();

