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 OWL +-+-+\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_owl\/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 - OWL<\/title>\n<link>http:\/\/www.nw-news.de<\/link>\n<atom:link href=\"http:\/\/www.nw-news.de\/_export\/nw\/rss_owl\/index.rss\" rel=\"self\" type=\"application\/rss+xml\" \/>\n<description>Neue Westf\u00e4lische - OWL<\/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>HALLE: Gro\u00dfe Anteilnahme bei Trauerfeier f\u00fcr Nelli Graf<\/title>\n<link>http:\/\/www.nw-news.de\/owl\/6175127_Grosse_Anteilnahme_bei_Trauerfeier_fuer_Nelli_Graf.html<\/link>\n<description>&lt;img src=\"http:\/\/www.nw-news.de\/_em_daten\/_nw\/2012\/02\/22\/thumb\/120222_1909_nelli_graf_beerdigung_thumb.jpg\" style=\"float:left; width:110px; height:73px;\" alt=\"Anteilnahme: 450 Trauerg\u00e4ste nahmen in Halle Nelli Graf Abschied.\" \/&gt;Halle (ruh). Rund 450 Trauernde haben Mittowch Abschied von der ermordeten Nelli Graf genommen. Als um 13 Uhr das Trauergel\u00e4ut erklang, hatten l\u00e4ngst noch nicht alle Menschen einen Platz in der St.-Johannis-Kirche gefunden. Viele standen im Vorraum. Die gro\u00dfe Fl\u00fcgelt\u00fcr wurde auch w\u00e4hrend der Predigt von Pastor Friedrich-Karl V\u00f6lkner nicht geschlossen, damit auch die Trauernden vor der Kirche seine Worte h\u00f6ren konnten. Es waren Worte der Erinnerung und des Gedenkens, Worte der Anteilnahme...<\/description>\n<pubDate>Wed, 22 Feb 2012 23:00:00 GMT<\/pubDate>\n<\/item>\n<item>\n<title>OWL: Landesregierung will Gro\u00dfb\u00e4ckereien genauer unter die Lupe nehmen<\/title>\n<link>http:\/\/www.nw-news.de\/owl\/6175037_Landesregierung_will_Grossbaeckereien_genauer_unter_die_Lupe_nehmen.html<\/link>\n<description>&lt;img src=\"http:\/\/www.nw-news.de\/_em_daten\/_nw\/2012\/02\/22\/thumb\/120222_1855_broetchen_thumb.jpg\" style=\"float:left; width:110px; height:76px;\" alt=\"Einwandfrei: Die Hygiene in dieser B\u00e4ckerei stimmt - das Br\u00f6tchen kann getrost in die T\u00fcte gepackt werden.\" \/&gt;Der Hygieneskandal bei der bayrischen Gro\u00dfb\u00e4ckerei M\u00fcller Brot hat so manchem Verbraucher den genussvollen Biss in das Fr\u00fchst\u00fccksbrot verdorben. Alarmiert von den unappetitlichen Vorg\u00e4ngen, hat die NRW-Landesregierung nun angek\u00fcndigt, Gro\u00dfb\u00e4ckereien genauer unter die Lupe zu nehmen.<\/description>\n<pubDate>Wed, 22 Feb 2012 23:00:00 GMT<\/pubDate>\n<\/item>\n<item>\n<title>DETMOLD: Angriffe auf Landrat Heuwinkel<\/title>\n<link>http:\/\/www.nw-news.de\/owl\/6174946_Angriffe_auf_Landrat_Heuwinkel.html<\/link>\n<description>&lt;img src=\"http:\/\/www.nw-news.de\/_em_daten\/_nw\/2012\/02\/22\/thumb\/120222_1839_lippe_stephan_thumb.jpg\" style=\"float:left; width:110px; height:140px;\" alt=\"Kontra: Stephan Prinz zur Lippe pocht auf seinen Gro\u00dfgrundbesitz.\" \/&gt;Die Auseinandersetzungen um einen zuk\u00fcnftigen Nationalpark im Teutoburger Wald spitzen sich immer st\u00e4rker zu. Nach einer Strafanzeige wird nun sogar gegen den lippischen Landrat Friedel Heuwinkel (CDU) ermittelt.<\/description>\n<pubDate>Wed, 22 Feb 2012 23:00:00 GMT<\/pubDate>\n<\/item>\n<item>\n<title>BORGHOLZHAUSEN: Weiter R\u00e4tsel um Arbeitsblatt mit Nazi-Symbolen<\/title>\n<link>http:\/\/www.nw-news.de\/owl\/6174843_Weiter_Raetsel_um_Arbeitsblatt_mit_Nazi-Symbolen.html<\/link>\n<description>&lt;img src=\"http:\/\/www.nw-news.de\/_em_daten\/_nw\/2012\/02\/21\/thumb\/120221_1949_adolf_hitler_thumb.jpg\" style=\"float:left; width:110px; height:160px;\" alt=\"&#38;#34;Anleitung f\u00fcr ein Referat&#38;#34;: Sch\u00fcler, Eltern und Kollegen zeigten sich entsetzt \u00fcber den Inhalt des Arbeitsblattes.\" \/&gt;Die Sch\u00fcler und Lehrer der Peter-August-B\u00f6ckstiegel-Gesamtschule in Borgholzhausen und Werther (Kreis G\u00fctersloh) sammeln seit Monaten Unterschriften f\u00fcr das Projekt &#34;Schule ohne Rassismus - Schule mit Courage&#34;.<\/description>\n<pubDate>Wed, 22 Feb 2012 23:00:00 GMT<\/pubDate>\n<\/item>\n<item>\n<title>PADERBORN: &#34;EK Schnee&#34; zerschl\u00e4gt Paderborner Drogenring<\/title>\n<link>http:\/\/www.nw-news.de\/owl\/6172960_EK_Schnee_zerschlaegt_Paderborner_Drogenring.html<\/link>\n<description>&lt;img src=\"http:\/\/www.nw-news.de\/_em_daten\/_nw\/2012\/02\/22\/thumb\/120222_1524_handschellen_01_thumb.jpg\" style=\"float:left; width:110px; height:73px;\" alt=\"\" \/&gt;Die Paderborner Polizei hat einen Drogenring gesprengt. Die Fahnder der Ermittlungsgruppe &#34;EK Schnee&#34; fassten sechs Personen, die Drogen im Wert von mindestens 300.000 Euro aus den Niederlanden nach Deutschland geschmuggelt haben sollen.<\/description>\n<pubDate>Wed, 22 Feb 2012 14:07:00 GMT<\/pubDate>\n<\/item>\n<item>\n<title>GESEKE: Betrunkener Vater und Sohn wehren sich gegen Polizisten<\/title>\n<link>http:\/\/www.nw-news.de\/owl\/6173103_Betrunkener_Vater_und_Sohn_wehren_sich_gegen_Polizisten.html<\/link>\n<description>&lt;img src=\"http:\/\/www.nw-news.de\/_em_daten\/_nw\/2012\/02\/22\/thumb\/120222_1542_blaulicht_005_buck_thumb.jpg\" style=\"float:left; width:110px; height:74px;\" alt=\"\" \/&gt;Erst eine Anordnung der Paderborner Staatsanwaltschaft erlaubte der Polizei, ein Familienhaus nach dem Sohn der Hausbesitzer zu durchsuchen. Dabei trafen die Beamten dennoch auf heftige Gegenwehr.<\/description>\n<pubDate>Wed, 22 Feb 2012 14:33: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\/owl\/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>DETMOLD: Staatsanwaltschaft ermittelt gegen Heuwinkel<\/title>\n<link>http:\/\/www.nw-news.de\/owl\/6171435_Staatsanwaltschaft_ermittelt_gegen_Heuwinkel.html<\/link>\n<description>&lt;img src=\"http:\/\/www.nw-news.de\/_em_daten\/_dpa\/2010\/05\/20\/thumb\/100520_2257_heuwinkel_thumb.jpg\" style=\"float:left; width:110px; height:80px;\" alt=\"Friedel Heuwinkel: \" \/&gt;Der Streit um einen Nationalpark im Teutoburger Wald bekommt eine neue Wende: Die Detmolder Staatsanwaltschaft ermittelt derzeit gegen Lippes Landrat Friedel Heuwinkel.<\/description>\n<pubDate>Wed, 22 Feb 2012 10:13: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\/owl\/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>MINDEN - UPDATE: Video: Frau bei Unfall in Minden get\u00f6tet<\/title>\n<link>http:\/\/www.nw-news.de\/owl\/6169932_Frau_bei_Unfall_in_Minden_getoetet.html<\/link>\n<description>&lt;img src=\"http:\/\/www.nw-news.de\/_em_daten\/_nw\/2012\/02\/22\/thumb\/120222_1051_unfallminden_thumb.jpg\" style=\"float:left; width:110px; height:71px;\" alt=\"Frontal: Wie die Polizei in einer ersten Meldung erkl\u00e4rte, stie\u00dfen gegen 6 Uhr zwei Autos in H\u00f6he des Ortsteiles Dankersen aus bislang unbekannter Ursache frontal zusammen.\" \/&gt;Bei einem schweren Unfall auf der Bundesstra\u00dfe 482 ist am Mittwochmorgen in Minden eine Frau get\u00f6tet worden. Zwei Autos waren frontal zusammengesto\u00dfen.<\/description>\n<pubDate>Wed, 22 Feb 2012 07:32: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: "250"
	}));

}();

