var org = {p3k: ({url:"http://js-kit.com/rss/bamber.blogspot.com", xml:"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<rss version=\"2.0\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:atom=\"http://www.w3.org/2005/Atom\" xmlns:media=\"http://search.yahoo.com/mrss/\">\n\t<channel>\n\t\t<title>bamber.blogspot.com comments</title>\n\t\t<link>http://bamber.blogspot.com</link>\n\t\t<atom:link rel=\"self\" type=\"application/rss+xml\" href=\"http://js-kit.com/rss/bamber.blogspot.com\"></atom:link>\n\t\t<description>RSS comments feed for bamber.blogspot.com</description>\n\t\t<generator>JS-Kit.com Commenting Engine</generator>\n\t\t<lastBuildDate>Tue, 08 Dec 2009 17:06:43 +0000</lastBuildDate>\n\t\t<item>\n\t\t\t<guid>http://bamber.blogspot.com/#jsid-1260291854-284</guid>\n\t\t\t<link>http://bamber.blogspot.com/#jsid-1260291854-284</link>\n\t\t\t<pubDate>Tue, 08 Dec 2009 17:04:14 +0000</pubDate>\n\t\t\t<dc:creator>bamber</dc:creator>\n\t\t\t<title>Yes, but most people are\u2026</title>\n\t\t\t<description>Yes, but most people are not that familiar with the VRWC, even if they've heard of the Fed Soc. JLPP is practically a dogwhistle by comparison. (As evidenced by the hundreds of law professors who submit articles to it that have nothing to do with conservative or libertarian viewpoints, not even arguably: on par with submitting your article on the 2nd Amendment to environmental law journals or something.)</description>\n\t\t</item>\n\t\t<item>\n\t\t\t<guid>http://bamber.blogspot.com/#jsid-1260288830-171</guid>\n\t\t\t<link>http://bamber.blogspot.com/#jsid-1260288830-171</link>\n\t\t\t<pubDate>Tue, 08 Dec 2009 16:13:50 +0000</pubDate>\n\t\t\t<dc:creator>Jessica</dc:creator>\n\t\t\t<title>I've had Fed Soc on my resume,\u2026</title>\n\t\t\t<description>I've had Fed Soc on my resume, and I don't think it's hindered me (two federal clerkships and I work in Big Law) although I suppose I wouldn't really know.\xa0 I used to worry about liberals' aghast responses, but at a certain point, life's too short.\xa0 Although I suppose if I was closer to the cusp of employment I may not be so cavalier...\xa0&lt;br&gt;&lt;br&gt;I think discrimination against conservatives and libertarians is a real thing.\xa0 And no, I'm not going to break into a chorus of \"we shall overcome\" -- I have no illusions that this is a serious problem in society.\xa0 But I remember when one of my most liberal friends let it be known that she was a supporter of gun rights (her one more conservative/libertarian position).\xa0 She was promptly (and literally) laughed at and derided by our colleagues.\xa0 I think it was shocking to her that her good faith and colorable position would be so summarily dismissed, and would, moreover, be regarded as stupid and laughable.\xa0 I wasn't surprised.\xa0&lt;br&gt;&lt;br&gt;It's stating the obvious to say there's a double standard, of course.\xa0 No one perceives ACS to be a big tent, but it's not a\xa0problem. \xa0</description>\n\t\t</item>\n\t\t<item>\n\t\t\t<guid>http://bamber.blogspot.com/#jsid-1260252530-811</guid>\n\t\t\t<link>http://bamber.blogspot.com/#jsid-1260252530-811</link>\n\t\t\t<pubDate>Tue, 08 Dec 2009 06:08:50 +0000</pubDate>\n\t\t\t<title>Mid to nice bars should TOTALLY\u2026</title>\n\t\t\t<description>Mid to nice bars should TOTALLY have some sweeter wines and prosecco.\xa0&lt;br&gt;&lt;br&gt;I get wanting to know better brands of booze for the social aspect - but if there's any mixer at all going in with the booze, then I just don't see the point in spending extra for something you're about to mask.\xa0&lt;br&gt;&lt;br&gt;there must be some decent wine bars in DC, right?</description>\n\t\t</item>\n\t\t<item>\n\t\t\t<guid>http://www.bamber.blogspot.com/#jsid-1260246308-742</guid>\n\t\t\t<link>http://www.bamber.blogspot.com/#jsid-1260246308-742</link>\n\t\t\t<pubDate>Tue, 08 Dec 2009 04:25:08 +0000</pubDate>\n\t\t\t<dc:creator>Jay</dc:creator>\n\t\t\t<title>Did you put it on the resume\u2026</title>\n\t\t\t<description>Did you put it on the resume you sent out with clerkship applications?\xa0 I did, and found it had a pretty unmistakeable influence on the interviews I got.\xa0 I think I also increasingly left it off law firm resumes over time, although I don't remember exactly what my thinking was.\xa0 I do remember it being brought up semi-accusatorily by one interviewer at a callback in DC where I did not get later\xa0an offer.</description>\n\t\t</item>\n\t\t<item>\n\t\t\t<guid>http://bamber.blogspot.com/#jsid-1260240155-791</guid>\n\t\t\t<link>http://bamber.blogspot.com/#jsid-1260240155-791</link>\n\t\t\t<pubDate>Tue, 08 Dec 2009 02:42:35 +0000</pubDate>\n\t\t\t<dc:creator>PG</dc:creator>\n\t\t\t<title>Your journal EIC position\u2026</title>\n\t\t\t<description>Your journal EIC position is a dead giveaway to anyone who actually knows anything about the Vast Right Wing Conspiracy.&lt;br&gt;&lt;br&gt;I have Fed Soc on my resume and on my law firm bio b/c I won an award from my law school as the pro bono chair for our chapter (Fed Soc people wanting to do pro bono that wasn't religious blew the mind of our public interest dean), and I haven't won enough awards in my life to ignore any of them. Then again, the rest of my resume doesn't look like I'd support sodomy laws (I was on the ed board of the gender law journal) or hate poor people (I did a lot of volunteering with low-income kids). So for me I think Fed Soc has been a plus: conservatives think \"she's secretly one of us!\" and liberals think \"huh, she must really like to debate; good quality in a litigator!\"</description>\n\t\t</item>\n\t\t<item>\n\t\t\t<guid>http://bamber.blogspot.com/#jsid-1260226833-5</guid>\n\t\t\t<link>http://bamber.blogspot.com/#jsid-1260226833-5</link>\n\t\t\t<pubDate>Mon, 07 Dec 2009 23:00:33 +0000</pubDate>\n\t\t\t<dc:creator>PG</dc:creator>\n\t\t\t<title>Belle,\nI just prepared for\u2026</title>\n\t\t\t<description>Belle,&lt;br&gt;I just prepared for the holidays and a sisterly invasion by buying way too much alcohol, so I am ready to host cocktails whenever you get back to NYC. The super-specialized things like pear liquer come in small quantities at proportionately reasonable prices&lt;span&gt;&lt;/span&gt;; the only unusual ingredient that was really expensive was absinthe.</description>\n\t\t</item>\n\t\t<item>\n\t\t\t<guid>http://bamber.blogspot.com/#jsid-1260223933-893</guid>\n\t\t\t<link>http://bamber.blogspot.com/#jsid-1260223933-893</link>\n\t\t\t<pubDate>Mon, 07 Dec 2009 22:12:13 +0000</pubDate>\n\t\t\t<dc:creator>bamber</dc:creator>\n\t\t\t<title>What do I like drinking?\u2026</title>\n\t\t\t<description>What do I like drinking? A nice Gewurtz or Muscat, prosecco, Old Fashioneds with an orange slice, gin &amp;amp; tonics (but they give me a wicked headache), most girly resort drinks (pina coladas, daiquiris, stuff in weird unnatural colors with lots of fruit and umbrellas) .... None of these, with the exception of the G&amp;amp;T, is always available at a middling-to-nice bar. I'd also like to try some cocktails that I could potentially make at home (so I don't have to buy a bunch of Chambord, celery bitters, Benedictine, etc. only to discover I don't like it).&lt;br&gt;&lt;br&gt;</description>\n\t\t</item>\n\t\t<item>\n\t\t\t<guid>http://bamber.blogspot.com/#jsid-1260221892-159</guid>\n\t\t\t<link>http://bamber.blogspot.com/#jsid-1260221892-159</link>\n\t\t\t<pubDate>Mon, 07 Dec 2009 21:38:12 +0000</pubDate>\n\t\t\t<dc:creator>Belle Lettre</dc:creator>\n\t\t\t<title>I sitll like Vodka, but mainly\u2026</title>\n\t\t\t<description>I sitll like Vodka, but mainly because it's easy to request a fairly decent brand of vodka and order a cape cod (+cranberry juice and twist of lime) at even the most pedestrian of bars. But I admit, I need to learn what are the good brands of whatever goes into an old fashioned, manhattan, or sidecar. Kir Royales are highly dependent on how good that champagne is. I love cocktails. They put me in a good, vaguely party mood (much like how champagne always feels celebratory) the way drinking wine makes me feel warm and sociable (mostly because there is always wine at my dinner parties) and beer makes me feel like I'm just chilling out college style (although I usually hate beer, I have found a few types that are pleasant). I thought I hated the taste of alcohol, but I was wrong. And the social lubricant effects cannot be discounted, as is the fun of being tipsy. Remember how we were all judged on Twilighters Anonymous for getting \"crunked\" and then writing a scathing review of Twilight the movie?&lt;br&gt;&lt;br&gt;Next time we see each other we shall go drink cocktails. I say this to both PG and Amber.</description>\n\t\t</item>\n\t\t<item>\n\t\t\t<guid>http://bamber.blogspot.com/#jsid-1260215035-829</guid>\n\t\t\t<link>http://bamber.blogspot.com/#jsid-1260215035-829</link>\n\t\t\t<pubDate>Mon, 07 Dec 2009 19:43:55 +0000</pubDate>\n\t\t\t<dc:creator>PG</dc:creator>\n\t\t\t<title>I've really gone off vodka\u2026</title>\n\t\t\t<description>I've really gone off vodka in the last few years, so the raspberry stoli + 7UP doesn't sound good, but Kir Royales are nice. The places I suggested (Town &amp;amp; Country in DC; Anvil in H'ton) have huge cocktail lists that include both classics and specialty cocktails. If you want to find good cocktails, it might be worth the money to go to places of this type instead of random cheaper bars.</description>\n\t\t</item>\n\t\t<item>\n\t\t\t<guid>http://bamber.blogspot.com/#jsid-1260209429-689</guid>\n\t\t\t<link>http://bamber.blogspot.com/#jsid-1260209429-689</link>\n\t\t\t<pubDate>Mon, 07 Dec 2009 18:10:29 +0000</pubDate>\n\t\t\t<dc:creator>cd</dc:creator>\n\t\t\t<title>Raspberry stoli and 7up is\u2026</title>\n\t\t\t<description>Raspberry stoli and 7up is a booze + soda that at least is a bit different from the jack/coke variety.\xa0 And I generally have luck anywhere in the US getting a decent enough Brandy Manhattan (up).\xa0&lt;br&gt;&lt;br&gt;But what do you actually LIKE drinking?\xa0 Sounds like your forcing the cocktail issue just for the sake of ordering a cocktail?\xa0 Can you go for champagne or wine or something instead?\xa0 Kir Royale is nice (champagne plus creme di casis) and usually available everywhere that isn't decorated solely with fluorescent promotional beer signs.</description>\n\t\t</item>\n\t\t<item>\n\t\t\t<guid>http://bamber.blogspot.com/2009/12/in-which-i-complain-about-bars.html#jsid-1260144340-95</guid>\n\t\t\t<link>http://bamber.blogspot.com/2009/12/in-which-i-complain-about-bars.html#jsid-1260144340-95</link>\n\t\t\t<pubDate>Mon, 07 Dec 2009 00:05:40 +0000</pubDate>\n\t\t\t<dc:creator>bamber</dc:creator>\n\t\t\t<title>Maybe I am just not good\u2026</title>\n\t\t\t<description>Maybe I am just not good at telling what a rum-n-coke bar is (whether they have a pricey cocktail list full of fresh fruit and unusual infusions is apparently not a good tell), or what is a straightforward classic and what is an offbeat special request (Old Fashioneds, frex? If you don't have a floor full of peanut shells you should be able to make one!). Some places have specialty cocktail lists, but that's generally no help in the pursuit of a new favorite drink, unless you commit to going to the same bar going forward. &lt;br&gt;&lt;br&gt;You reminded me, though, that pear vodka and ginger ale is tasty.\xa0</description>\n\t\t</item>\n\t\t<item>\n\t\t\t<guid>http://bamber.blogspot.com/2009/12/in-which-i-complain-about-bars.html#jsid-1260133405-339</guid>\n\t\t\t<link>http://bamber.blogspot.com/2009/12/in-which-i-complain-about-bars.html#jsid-1260133405-339</link>\n\t\t\t<pubDate>Sun, 06 Dec 2009 21:03:25 +0000</pubDate>\n\t\t\t<dc:creator>Helen</dc:creator>\n\t\t\t<title>Ordering a fancy cocktail\u2026</title>\n\t\t\t<description>Ordering a fancy cocktail at a rum-n-coke bar is not entirely unlike like ordering spring asparagus risotto at a diner. I'm with Belle: if you want complicated, order from a specialty list if they have one (but even then that's no indicator of quality - a cocktail's worth the two-figure price tag if they're using fresh fruits and herbs and housemade infusions, otherwise you're just playing into the Call It A Martini And They'll Pay Fifteen Bucks hustle).&lt;br&gt;&lt;br&gt;Better yet, find a straightforward classic that you like, and order it by brand. My favorites: a top-shelf blanco or silver tequila (NEVER Cuervo) with the juice of a whole lime (fresh) and a splash of soda, a Hendrick's gimlet, or a true Dark 'n Stormy with Myers rum and ginger beer. If I'm at a bar where it's crowded or divey or I'm just feeling easy to please, I go with Canadian Club or Old Overholt (both rye whiskeys) and ginger ale, slice of lime.</description>\n\t\t</item>\n\t\t<item>\n\t\t\t<guid>http://bamber.blogspot.com/#jsid-1260116410-598</guid>\n\t\t\t<link>http://bamber.blogspot.com/#jsid-1260116410-598</link>\n\t\t\t<pubDate>Sun, 06 Dec 2009 16:20:10 +0000</pubDate>\n\t\t\t<dc:creator>Bill</dc:creator>\n\t\t\t<title>All of these issues are solveabl\u2026</title>\n\t\t\t<description>All of these issues are solveable except for the \"cheap\" part.\xa0</description>\n\t\t</item>\n\t\t<item>\n\t\t\t<guid>http://www.bamber.blogspot.com/#jsid-1260110971-149</guid>\n\t\t\t<link>http://www.bamber.blogspot.com/#jsid-1260110971-149</link>\n\t\t\t<pubDate>Sun, 06 Dec 2009 14:49:31 +0000</pubDate>\n\t\t\t<dc:creator>RM</dc:creator>\n\t\t\t<title>Try \"PX\" in DC. \xa0They'll\u2026</title>\n\t\t\t<description>Try \"PX\" in DC. \xa0They'll get it right.\xa0</description>\n\t\t</item>\n\t\t<item>\n\t\t\t<guid>http://bamber.blogspot.com/#jsid-1260049317-988</guid>\n\t\t\t<link>http://bamber.blogspot.com/#jsid-1260049317-988</link>\n\t\t\t<pubDate>Sat, 05 Dec 2009 21:41:58 +0000</pubDate>\n\t\t\t<dc:creator>asg</dc:creator>\n\t\t\t<title>Now you've done it; you've\u2026</title>\n\t\t\t<description>Now you've done it; you've posted something else with \"bella\" in the text, thus inviting back the Twilight crowd.</description>\n\t\t</item>\n\t\t<item>\n\t\t\t<guid>http://bamber.blogspot.com/#jsid-1260044404-831</guid>\n\t\t\t<link>http://bamber.blogspot.com/#jsid-1260044404-831</link>\n\t\t\t<pubDate>Sat, 05 Dec 2009 20:20:04 +0000</pubDate>\n\t\t\t<dc:creator>Belle Lettre</dc:creator>\n\t\t\t<title>I've been having luck going\u2026</title>\n\t\t\t<description>I've been having luck going to some of the bars in the nicer restaurants in my neighborhood and ordering from their specialty cocktail list or ordering any of the following standards: old fashioneds, manhattans, and sidecars.</description>\n\t\t</item>\n\t\t<item>\n\t\t\t<guid>http://bamber.blogspot.com/#jsid-1260040599-842</guid>\n\t\t\t<link>http://bamber.blogspot.com/#jsid-1260040599-842</link>\n\t\t\t<pubDate>Sat, 05 Dec 2009 19:16:39 +0000</pubDate>\n\t\t\t<dc:creator>roykay</dc:creator>\n\t\t\t<title>I might not, but I probably\u2026</title>\n\t\t\t<description>I might not, but I probably should. I mean this same guy who is accepted as \"one of the girls\", but is below their station, manages to cut a couple from the herd under the same situation? Sounds apocryphal to me. \"Stay away from jazz and liquor and the men who play for fun...\" I am also pretty sure that one of the inhibitions alcohol lowers is a sense of class. People can related more readily to eacj other when they arent wworried what society will think of them after its discovered WHO they just fucked. In the sober light of day all the inhibitions come flowing back and people try to devise a story that will set well with their peers.</description>\n\t\t</item>\n\t\t<item>\n\t\t\t<guid>http://bamber.blogspot.com/#jsid-1260024641-903</guid>\n\t\t\t<link>http://bamber.blogspot.com/#jsid-1260024641-903</link>\n\t\t\t<pubDate>Sat, 05 Dec 2009 14:50:41 +0000</pubDate>\n\t\t\t<dc:creator>jcd</dc:creator>\n\t\t\t<title>I agree with much of your\u2026</title>\n\t\t\t<description>I agree with much of your list.\xa0 I liked Thomas Covenant as a pimply teenager, as did many of my friends, but on trying to read the newest book in the series recently I found myself stopped by the character names.\xa0 \"Lord Foul?\"\xa0 \"Droll RockWorm?\"\xa0 One of the minor pleasures of reading Tolkien is the names--with the exception of \"Grima WormTongue,\" which I thought much too blunt.</description>\n\t\t</item>\n\t\t<item>\n\t\t\t<guid>http://bamber.blogspot.com/2009/12/in-which-i-complain-about-bars.html#jsid-1260021418-653</guid>\n\t\t\t<link>http://bamber.blogspot.com/2009/12/in-which-i-complain-about-bars.html#jsid-1260021418-653</link>\n\t\t\t<pubDate>Sat, 05 Dec 2009 13:56:58 +0000</pubDate>\n\t\t\t<dc:creator>PG</dc:creator>\n\t\t\t<title>Along the lines of what Mike\u2026</title>\n\t\t\t<description>Along the lines of what Mike said, I think you are going to the wrong bars. I recommend Town &amp;amp; Country at the Mayflower hotel if you want a big selection of cocktails (100) that are competently made. Ditto Anvil in Houston. For when I am dealing with ignorant bartenders, I have made the godfather my standby: easy for me to remember, hard for them to screw up. Though I know not to go back to a bar if they try to charge me the cost of 2 drinks for it.</description>\n\t\t</item>\n\t\t<item>\n\t\t\t<guid>http://bamber.blogspot.com/#jsid-1259999164-771</guid>\n\t\t\t<link>http://bamber.blogspot.com/#jsid-1259999164-771</link>\n\t\t\t<pubDate>Sat, 05 Dec 2009 07:46:04 +0000</pubDate>\n\t\t\t<dc:creator>Mike</dc:creator>\n\t\t\t<title>I regret this sex that I\u2026</title>\n\t\t\t<description>&lt;span style=\"\"&gt;&lt;i&gt;I regret this sex that I was OK with while it was happening, but I wouldn't have fucked that ugly chick when sober.&lt;/i&gt;&lt;/span&gt;&lt;br&gt;&lt;br&gt;That describes probably 9/10 date rape cases. \xa0Seems if that's the standard, it should apply to women. \xa0Incidentally, there's a post at Overcoming Bias talking about the date-rape-drug myth.</description>\n\t\t</item>\n\t</channel>\n</rss>\n\n", message:undefined, modified:(new Date(1265723567665)), baseUri:"http://p3k.org/rss/", query:"frameColor=black&textColor=black&_=1256936594308&titleBarColor=#ffffff&compact=true&fontFace=&align=&showXmlButton=true&maxItems=7&setup=true&boxFillColor=white&titleBarTextColor=black&width=200&url=http://js-kit.com/rss/bamber.blogspot.com&", param:{textColor:"black", width:"200", align:"", fontFace:"", url:"http://js-kit.com/rss/bamber.blogspot.com", compact:"true", frameColor:"black", showXmlButton:"true", setup:"true", boxFillColor:"white", _:"1256936594308", titleBarColor:"#ffffff", maxItems:"7", titleBarTextColor:"black"}, box:"<table class=\"rssBox\" width=\"${width}\" bgcolor=\"${frameColor}\" \n      style=\"table-layout: fixed; overflow: hidden; font-family: ${fontFace};\" \n      align=\"${align}\" cellspacing=\"1\" cellpadding=\"7\" border=\"0\">\n<tr bgcolor=\"${titleBarColor}\">\n<td>\n   ${xmlButton}\n   <strong>${title}</strong>\n   <div>\n      <small style=\"color: ${titleBarTextColor};\">${date}</small>\n   </div>\n</td>\n</tr>\n<tr bgcolor=\"${boxFillColor}\">\n<td class=\"rssBoxContent\" style=\"color: ${textColor};\">\n   ${image}\n   ${items}\n   ${input}\n   <div class=\"rssBoxPromo\" style=\"margin-top: 0px; text-align: left; \n         font: 9px verdana, sans-serif\">\n      RSS box by <a href=\"http://p3k.org/rss\">p3k.org</a>.\n   </div>\n</td>\n</tr>\n</table>\n\n", image:"<a href=\"${link}\"><img src=\"${source}\" width=\"${width}\" height=\"${height}\" \nalt=\"${title}\" title=\"${title}\" align=\"${align}\" valign=\"${valign}\" \nhspace=\"${hspace}\" vspace=\"${vspace}\" border=\"0\" /></a>\n\n", input:"<form method=\"get\" action=\"${link}\">\n${description}\n<input type=\"text\" name=\"${name}\" size=\"15\" /> <input type=\"submit\" \nvalue=\"${title}\" />\n</form>\n\n", item:"<div class=\"rssBoxItemContent\">\n${title}\n${break}\n${description}\n${buttons}\n</div><br />\n\n", date:"${year}-${month}-${day}, ${hours}:${minutes}h\n\n", link:"<a class=\"${class}\" href=\"${link}\" style=\"${style}\">${text}</a>\n", error:"<?xml version=\"1.0\"?>\n<rss version=\"error\">\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 invalid RSS feed URL. Please check and possibly correct \n         your input, then try again.</description>\n      </item>\n   </channel>\n</rss>\n\n"})};
function debug(str) {
   return document.write('<p><span style="background-color: yellow;">', 
         str, '</span><p>');
}

org.p3k.RssBox = function() {
   var ref;
   var ISOPATTERN = /([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9:]+).*$/;
   
   var data = org.p3k;
   data.defaults = {
      url: "http://blog.p3k.org/rss",
      maxItems: 7,
      width: 200,
      align: "",
      frameColor: "black",
      titleBarColor: "lightblue",
      titleBarTextColor: "black",
      boxFillColor: "white",
      textColor: "black",
      showXmlButton: "",
      compact: ""
   };
   
   var baseUri = data.baseUri;
    
   var getColor = function(str) {
      if (str.length === 6 && parseInt(str, 16) && str.indexOf("#") !== 0) {
         str = "#" + str;
      }
      return str.toLowerCase();
   }

   var value;
   for (var i in data.defaults) {
      value = data.param[i];
      if (!value || value.length === 0) {
         data.param[i] = data.defaults[i];
      } else if (i.indexOf("Color") > 0) {
         data.param[i] = getColor(value);
      }
   }

   // FIXME: Ugly work-around for many boxes using too small width 
   // values because the former version did not show the exact output.
   if (data.param.javascript && data.param.width < 200) {
      data.param.width = 200;
   }
   // Remove obsolete parameters from param and query
   delete data.param.javascript;
   data.query = data.query.replace("javascript=true", "");   

   var NAMESPACES = {
      dc: "http://purl.org/dc/elements/1.1/",
      rdf: "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   };

   var getUrl = function(url) {
      url = baseUri + "proxy.r?" + encodeURIComponent(url);
   
      var HttpRequest = function() {
         return (typeof XMLHttpRequest !== "undefined") ?
            new XMLHttpRequest() : new ActiveXObject("Msxml2.XMLHTTP");
      }
   
      var request = new HttpRequest();
      request.open("GET", url, false);
      request.send(null);   
      if (!request.getResponseHeader("Date")) {
         var cached = request;
         var ifModifiedSince = cached.getResponseHeader("Last-Modified") || 
               new Date(0); // January 1, 1970
         request = new HttpRequest();
         request.open("GET", url, false);
         request.setRequestHeader("If-Modified-Since", ifModifiedSince);
         request.send("");
         if (request.status === 304) {
            request = cached; 
         }
      }
      return request;
   }
   
   var getDocument = function(source) {
      if (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;
         }
      }
      return null;
   }
   
   var getError = function() {
      var msg = null, root;
      if (!xml || data.message) {
         msg = data.message || "Unknown error.";
      } else if (xml.parseError && xml.parseError.errorCode) {
         msg = xml.parseError.reason; // IExplore
      } else if (root = xml.documentElement) {
         var errorNode;
         if (root.nodeName === "parsererror") {
            msg = xml.documentElement.textContent; // Mozilla
         } else if ((errorNode = root.childNodes[0]) && 
               errorNode.nodeName === "parsererror") {
            msg = errorNode.textContent; // Safari
         } else if (!/rss|rdf|scriptingNews/i.test(xml.documentElement.nodeName)) {
            msg = "Incompatible data format. Are you sure this is an RSS feed?";
         }
      }
      return msg;
   }
   
   var getNode = function(parent, name, namespace) {
      if (namespace) {
         if (typeof parent.getElementsByTagNameNS === "undefined") {
            var elements = parent.getElementsByTagName(namespace + ":" + name);
         } else {
            var elements = parent.getElementsByTagNameNS(NAMESPACES[namespace], name);
         }
      } else {
         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) {
      if (str) {
         return str.replace(/^\s*(\S*)\s*$/, "$1");
      }
      return "";
   }
   
   var padZero = function(n) {
      if (n < 10) {
         return "0" + n
      }
      return n;
   }

   var encodeXml = function(str) {
      if (!str) {
         return "";
      }
      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 renderDate = function(date) {
      if (date.constructor !== Date) {
         var str = String(date);
         var millis = Date.parse(str.replace(ISOPATTERN, "$1/$2/$3 $4"));
         if (millis) {
            date = new Date(millis);
         } else {
            date = new Date;
         }
      }

      return render(data.date, {
         year: date.getFullYear(),
         month: padZero(date.getMonth() + 1),
         day: padZero(date.getDate()),
         hours: padZero(date.getHours()),
         minutes: padZero(date.getMinutes()),
         seconds: padZero(date.getSeconds()),
         timeZone: "" // date.getTimezoneOffset()
      });
   }
   
   var renderButtons = function(enclosure, source) {
      var result = "";
      if (enclosure && enclosure.link) {
         result += render(data.image, {
            source: baseUri + "enclosure.gif",
            title: enclosure.type,
            link: encodeURI(enclosure.link),
            width: 13,
            height: 16
         });
      }
      if (source && source.link) {
         result += render(data.image, {
            source: baseUri + "source.gif",
            title: source.title,
            link: encodeURI(source.link),
            width: 15,
            height: 15
         });
      }
      return result;         
   }
   
   var param = data.param;
   var rss = data.rss = {items: []};
   var xml = getDocument(data.xml);

   rss.error = getError();
   if (rss.error !== null) {
      xml = getDocument(render(data.error, {
         link: baseUri + "?" + encodeXml(data.query),
         message: encodeXml(rss.error)
      }));
      param.compact = 0;
      param.showXmlButton = 1;
   }

   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"));
      }
   }
   
   if (type === "rdf:RDF") {
      rss.date = renderDate(getText(getNode(channel, "date", "dc")) || data.modified);
      rss.rights = getText(getNode(channel, "creator", "dc"));
      var input = getNode(root, "textinput");
      if (input && !getNode(input, "link")) {
         input = root.getElementsByTagName("textinput")[1];
      }
      if (input) {
         ref = rss.input = {};
         ref.link = getText(getNode(input, "link"));
         ref.description = getText(getNode(input, "description"));
         ref.name = getText(getNode(input, "name"));
         ref.title = getText(getNode(input, "title"));
      }
   } else {
      rss.date = renderDate(getText(getNode(channel, "lastBuildDate") || getText(getNode(channel, "pubDate"))) || data.modified);
      rss.rights = getText(getNode(channel, "copyright"));
   }
   
   var item, text, node;
   var items = xml.getElementsByTagName("item");

   for (var i=0; i<Math.min(items.length, param.maxItems); 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, "source")) {
        ref.source = {
           link: node.getAttribute("url"),
           title: getText(node)
        }
     }
     
     if (node = getNode(item, "enclosure")) {
        ref.enclosure = {
           link: node.getAttribute("url"),
           length: node.getAttribute("length"),
           type: node.getAttribute("type")
        }
     }
     
     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(data.item, {
         title: new function() {
            var title = (!param.compact ? "<strong>" : "");
            if (item.link) {
               title += render(data.link, {
                  link: encodeURI(item.link),
                  text: item.title,
                  'class': "rssBoxItemTitle"
               });
            } else {
               title += item.title;
            }
            !param.compact && (title += "</strong>");
            return new String(title); // FIXME: Funny, title alone will be rendered as [object]
         }(),
         'break': item.title && item.description ? "<br />" : "",
         description: (!param.compact || !item.title) && item.description,
         buttons: renderButtons(item.enclosure, item.source)
      });
   }
   
   var box = render(data.box, {
      title: rss.link ? render(data.link, {
         link: encodeURI(rss.link),
         text: rss.title,
         'class': "rssBoxTitle",
         style: "color: " + param.titleBarTextColor
      }) : rss.title,
      description: rss.description,
      items: items,

      xmlButton: param.showXmlButton && render(data.image, {
         link: param.url,
         source: baseUri + "rss.png",
         title: rss.format + " " + rss.version,
         width: 16,
         height: 16,
         align: "right",
         hspace: 3
      }),
      
      image: !param.compact && rss.image && render(data.image, {
         link: encodeURI(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
      }),
      
      input: !param.compact && rss.input && render(data.input, {
         link: encodeURI(rss.input.link),
         description: rss.input.description,
         name: rss.input.name,
         title: rss.input.title
      }),
      
      date: rss.date,
      width: param.width,
      frameColor: param.frameColor,
      fontFace: param.fontFace,
      align: param.align,
      titleBarColor: param.titleBarColor,
      titleBarTextColor: param.titleBarTextColor,
      boxFillColor: param.boxFillColor,
      textColor: param.textColor
   });

   if (!window.rssBoxSetup) {
      document.write(box);
   }
   
   return box;
};

org.p3k.RssBox();

