var org = {p3k: ({url:"http://www.pokerverzeichnis.info/pokernews/feed/rss/", xml:"<?xml version=\"1.0\" encoding=\"UTF-8\"?><rss version=\"0.92\">\n<channel>\n\t<title>Poker News</title>\n\t<link>http://www.pokerverzeichnis.info/pokernews</link>\n\t<description></description>\n\t<lastBuildDate>Thu, 09 Sep 2010 06:57:31 +0000</lastBuildDate>\n\t<docs>http://backend.userland.com/rss092</docs>\n\t<language>en</language>\n\t<!-- generator=\"WordPress/3.0.1\" -->\n\n\t<item>\n\t\t<title>PHIL IVEY, BESTER POKERSPIELER DER WELT, IST AM WOCHENENDE ZU GAST IN WIEN</title>\n\t\t<description><![CDATA[M\xfcnchen, 8. September 2010. Am kommenden Wochenende ist es so weit: Die FullTiltPoker.net Million Euro Challenge findet von 10. bis 12. September erstmals in Wien statt. Wie heute bekannt wurde, wird der weltbekannte Pokerprofi Phil Ivey das Poker-Event in der \u201eAula der Wissenschaften\u201c besuchen. Das Idol vieler Pokeramateure reist extra aus den USA an. Ivey [...]]]></description>\n\t\t<link>http://www.pokerverzeichnis.info/pokernews/phil-ivey-bester-pokerspieler-der-welt-ist-am-wochenende-zu-gast-in-wien/</link>\n\t\t\t</item>\n\t<item>\n\t\t<title>Jake Cody gewinnt erste WPT London Poker Classic</title>\n\t\t<description><![CDATA[Wunderkind aus Rochdale verhindert Auszahlung des 1 Millionen Dollar Bonus London, 6. September 2010 \u2013 Das 22-j\xe4hrige Wunderkind aus Gro\xdfbritannien Jake Cody ist der Gewinner des Main Events der ersten WPT London Poker Classic. Cody, aus Rochdale Nordwestengland, holt sich damit seinen ersten WPT Titel und einen Scheck in H\xf6he von 273.783 Pfund (fast 330.000 [...]]]></description>\n\t\t<link>http://www.pokerverzeichnis.info/pokernews/jake-cody-gewinnt-erste-wpt-london-poker-classic/</link>\n\t\t\t</item>\n\t<item>\n\t\t<title>Ab Mittwoch rollt der \u201eSchneeball\u201c auf PartyPoker.com</title>\n\t\t<description><![CDATA[Gibraltar, 31. August 2010 \u2013 Am Mittwoch, den 1. September startet die \u201eSchneeball\u201c-Aktion auf PartyPoker.com. Spieler k\xf6nnen bei der Aktion bis zu 15 verschiedene Cashpreise und Tickets f\xfcr Freerolls gewinnen. Insgesamt gibt es bis zu 5.000\xa0Dollar Bargeld sowie Freeroll-Pl\xe4tze im Gesamtwert von 100.000\xa0Dollar zu gewinnen. Ein Sprecher von PartyPoker.com: \u201eDiese Aktion ist f\xfcr alle Spieler [...]]]></description>\n\t\t<link>http://www.pokerverzeichnis.info/pokernews/ab-mittwoch-rollt-der-%e2%80%9eschneeball%e2%80%9c-auf-partypoker-com/</link>\n\t\t\t</item>\n\t<item>\n\t\t<title>Countdown l\xe4uft f\xfcr Gro\xdfbritanniens gr\xf6\xdften Poker-Monat aller Zeiten</title>\n\t\t<description><![CDATA[London als Poker-Hauptstadt &#8211; 2 Mitglieder der November Nine best\xe4tigen Teilnahme an WPT London Poker Classic Gibraltar, 25. August 2010 \u2013 Der Countdown f\xfcr den gr\xf6\xdften Poker-Monat in der Geschichte von Gro\xdfbritannien l\xe4uft. Er beginnt am n\xe4chsten Montag, den 30. August, wenn es am Tag 1A des Main Events der ersten World Poker Tour London [...]]]></description>\n\t\t<link>http://www.pokerverzeichnis.info/pokernews/countdown-lauft-fur-grosbritanniens-grosten-poker-monat-aller-zeiten/</link>\n\t\t\t</item>\n\t<item>\n\t\t<title>PartyPoker.com bringt im September den \u201eSchneeball\u201c ins Rollen</title>\n\t\t<description><![CDATA[Promo-Aktion f\xfcr Gelegenheits- und Vielspieler: vom 1. bis 30. September Bargeld und Freeroll-Pl\xe4tze zu gewinnen Gibraltar, 23. August 2010 \u2013 www.PartyPoker.com stellt mit dem \u201eSchneeball\u201c eine neue \u201eeiskalte\u201c, klassische Promo-Aktion sowohl f\xfcr Gelegenheitsspieler als auch f\xfcr Vielspieler vor. Beim &#8220;Schneeball&#8221; gibt es bis zu 5.000\xa0Dollar Bargeld sowie Freeroll-Pl\xe4tze im Gesamtwert von 100.000\xa0Dollar zu gewinnen. Ein [...]]]></description>\n\t\t<link>http://www.pokerverzeichnis.info/pokernews/partypoker-com-bringt-im-september-den-%e2%80%9eschneeball%e2%80%9c-ins-rollen/</link>\n\t\t\t</item>\n\t<item>\n\t\t<title>Oktoberfest-Aktion speziell f\xfcr deutsche Spieler</title>\n\t\t<description><![CDATA[10 Oktoberfest-Pakete auf PartyPoker.com zu gewinnen \u2013 3 Freerolls am 14. September Gibraltar, 20. August 2010 \u2013 Vom 23. August bis zum 12. September bekommen deutsche Kunden auf www.PartyPoker.com eine exklusive Chance auf einen unvergesslichen Besuch beim gr\xf6\xdften Volksfest der Welt. PartyPoker.com vergibt in drei Freerolls 10 Oktoberfest-Pakete speziell an die deutschen Spieler. Ein Sprecher [...]]]></description>\n\t\t<link>http://www.pokerverzeichnis.info/pokernews/oktoberfest-aktion-speziell-fur-deutsche-spieler/</link>\n\t\t\t</item>\n\t<item>\n\t\t<title>World Poker Tour in Amn\xe9ville mit PartyPoker \u2013 das f\xfcr deutsche Pokerspieler n\xe4chstgelegene WPT-Event aller Zeiten!</title>\n\t\t<description><![CDATA[Gibraltar, 19. August 2010 \u2013 Mitten im deutsch-franz\xf6sischen Grenzgebiet wird ab dem 30. Oktober 2010 im Casino von Amn\xe9ville ein WPT-Event stattfinden, das f\xfcr alle deutschen Pokerspieler quasi vor der Haust\xfcre liegt. PartyPoker ist als Sponsor der Veranstaltung dabei und bietet unter www.partypoker.com zahlreiche Qualifier und Freerolls f\xfcr WPT Amn\xe9ville 2010. Das \u20ac3.200 + 300 [...]]]></description>\n\t\t<link>http://www.pokerverzeichnis.info/pokernews/world-poker-tour-in-amneville-mit-partypoker-%e2%80%93-das-fur-deutsche-pokerspieler-nachstgelegene-wpt-event-aller-zeiten/</link>\n\t\t\t</item>\n\t<item>\n\t\t<title>\u201eThere\u2019s no business like \u201aSnow Business\u2018\u201c</title>\n\t\t<description><![CDATA[Mit neuer Slotmaschine auf PartyCasino.com den gr\xf6\xdften progressiven Jackpot der Branche knacken Gibraltar, 12. August 2010 \u2013 www.PartyCasino.com, das weltweit gr\xf6\xdfte Online-Casino, stellt die neue Jackpot-Slotmaschine \u201eSnow Business\u201c vor. Zu Beginn des Jahres 2010 startete PartyCasino.com mit \u201eThe Big One\u201c den gr\xf6\xdften progressiven Jackpot in der Online Gaming Branche und gab den Spielern mit dem [...]]]></description>\n\t\t<link>http://www.pokerverzeichnis.info/pokernews/%e2%80%9ethere%e2%80%99s-no-business-like-%e2%80%9asnow-business%e2%80%98%e2%80%9c/</link>\n\t\t\t</item>\n\t<item>\n\t\t<title>PartyCasino.com stellt 10 Oktoberfest-Pakete zur Verf\xfcgung</title>\n\t\t<description><![CDATA[Wer zuerst 10.000 Punkte sammelt, gewinnt! Gibraltar, 11. August 2010 \u2013 In diesem Jahr feiert das M\xfcnchner Oktoberfest sein 200stes Jubil\xe4um und verspricht dieses Mal, eine der gr\xf6\xdften, besten und denkw\xfcrdigsten Partys aller Zeiten zu werden. Palladium VIP&#8217;s k\xf6nnen sich auf www.PartyCasino.com ganz einfach ihren Platz auf dem Oktoberfest sichern: die ersten zehn Spieler, die [...]]]></description>\n\t\t<link>http://www.pokerverzeichnis.info/pokernews/partycasino-com-stellt-10-oktoberfest-pakete-zur-verfugung/</link>\n\t\t\t</item>\n\t<item>\n\t\t<title>Letzte Chance zur Online-Qualifikation f\xfcr erste WPT London Poker Classic</title>\n\t\t<description><![CDATA[Mike Sexton und Jesse May kommentieren Main Event Gibraltar, 6. August 2010 \u2013 An diesem Wochenende haben Spieler die letzte Chance, sich online auf www.PartyPoker.com f\xfcr den Main Event der ersten World Poker Tour London Poker Classic zu qualifizieren, der vom 30. August bis zum 4. September im Palm Beach Casino, Mayfair stattfindet. Als Sponsor [...]]]></description>\n\t\t<link>http://www.pokerverzeichnis.info/pokernews/letzte-chance-zur-online-qualifikation-fur-erste-wpt-london-poker-classic/</link>\n\t\t\t</item>\n</channel>\n</rss>\n", message:undefined, modified:(new Date(1284016582030)), baseUri:"http://p3k.org/rss/", query:"frameColor=black&textColor=black&_=1257170843058&titleBarColor=#714904&compact=true&fontFace=&align=&showXmlButton=true&maxItems=15&setup=true&boxFillColor=#ede1a7&titleBarTextColor=#fff4c8&width=150&url=http://www.pokerverzeichnis.info/pokernews/feed/rss/&", param:{textColor:"black", width:"150", align:"", fontFace:"", url:"http://www.pokerverzeichnis.info/pokernews/feed/rss/", compact:"true", frameColor:"black", showXmlButton:"true", setup:"true", boxFillColor:"#ede1a7", _:"1257170843058", titleBarColor:"#714904", maxItems:"15", titleBarTextColor:"#fff4c8"}, 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();

