var org = {p3k: ({url:"http://updates.zdnet.com/?t=7&mode=rss", xml:"<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<rss version=\"2.0\" xmlns:s=\"http://www.zdnet.com/search\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\"  >\n    <channel>\n\t<title><![CDATA[ Resources | ZDNet ]]></title>\n\t<link><![CDATA[http://www.zdnet.com/search]]></link>\n\t<description><![CDATA[White papers, case studies, technical articles, and blog posts relating to your search]]></description>\n        <s:counts start=\"0\" returned=\"20\" found=\"63379\" />\n        <language>en-us</language>\n        <lastBuildDate>2010-09-09T00:05:19-07:00</lastBuildDate>\n        <item>\n                <title><![CDATA[Buy your own personal robot for just $400,000]]></title>\n                <link><![CDATA[http://www.zdnet.com/news/buy-your-own-personal-robot-for-just-400000/463667]]></link>\n                <s:doctype><![CDATA[News items]]></s:doctype>\n                <description><![CDATA[Willow Robot's open-source PR2, which can pretty much be programmed to do anything you want it to, is now officially for sale.]]></description>\n                <guid><![CDATA[http://www.zdnet.com/news/buy-your-own-personal-robot-for-just-400000/463667]]></guid>\n                <dc:creator><![CDATA[Leslie Katz CNET News]]></dc:creator>\n                <pubDate>2010-09-08T20:49:34Z</pubDate>\n                                    <category domain=\"http://www.zdnet.com/topics/battery\"><![CDATA[Battery]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/bot\"><![CDATA[Bot]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/willow+robot\"><![CDATA[Willow Robot]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/robots\"><![CDATA[Robots]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/engineering\"><![CDATA[Engineering]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/emerging+technologies\"><![CDATA[Emerging Technologies]]></category>\n                        </item>\n        <item>\n                <title><![CDATA[Mozilla ready to play games with Firefox]]></title>\n                <link><![CDATA[http://www.zdnet.com/news/mozilla-ready-to-play-games-with-firefox/463467]]></link>\n                <s:doctype><![CDATA[News items]]></s:doctype>\n                <description><![CDATA[Mozilla hopes to draw upon gaming to advance browser application development.]]></description>\n                <guid><![CDATA[http://www.zdnet.com/news/mozilla-ready-to-play-games-with-firefox/463467]]></guid>\n                <dc:creator><![CDATA[Stephen Shankland CNET News]]></dc:creator>\n                <pubDate>2010-09-08T17:20:35Z</pubDate>\n                                    <category domain=\"http://www.zdnet.com/topics/application+development\"><![CDATA[Application Development]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/mozilla+firefox\"><![CDATA[Mozilla Firefox]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/web+browser\"><![CDATA[Web Browser]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/mozilla+corp.\"><![CDATA[Mozilla Corp.]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/games\"><![CDATA[Games]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/software+development\"><![CDATA[Software Development]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/web+browsers\"><![CDATA[Web Browsers]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/ria\"><![CDATA[RIA]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/personal+technology\"><![CDATA[Personal Technology]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/software%252Fweb+development\"><![CDATA[Software/Web Development]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/internet\"><![CDATA[Internet]]></category>\n                        </item>\n        <item>\n                <title><![CDATA[Dell finally gives up on Windows XP]]></title>\n                <link><![CDATA[http://www.zdnet.com/news/dell-finally-gives-up-on-windows-xp/463433]]></link>\n                <s:doctype><![CDATA[News items]]></s:doctype>\n                <description><![CDATA[Dell said that it plans later this month to stop selling PCs downgraded to Windows XP, ahead of next month's deadline.]]></description>\n                <guid><![CDATA[http://www.zdnet.com/news/dell-finally-gives-up-on-windows-xp/463433]]></guid>\n                <dc:creator><![CDATA[Ina Fried CNET News]]></dc:creator>\n                <pubDate>2010-09-08T13:51:11Z</pubDate>\n                                    <category domain=\"http://www.zdnet.com/topics/dell+computer+corp.\"><![CDATA[Dell Computer Corp.]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/microsoft+windows\"><![CDATA[Microsoft Windows]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/microsoft+windows+xp\"><![CDATA[Microsoft Windows XP]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/microsoft+windows+7\"><![CDATA[Microsoft Windows 7]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/operating+systems\"><![CDATA[Operating Systems]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/software\"><![CDATA[Software]]></category>\n                        </item>\n        <item>\n                <title><![CDATA[Court allows cell phone tracking without a warrant]]></title>\n                <link><![CDATA[http://www.zdnet.com/news/court-allows-cell-phone-tracking-without-a-warrant/463418]]></link>\n                <s:doctype><![CDATA[News items]]></s:doctype>\n                <description><![CDATA[The FBI and other police agencies don't need a search warrant to track the locations of Americans' cell phones.]]></description>\n                <guid><![CDATA[http://www.zdnet.com/news/court-allows-cell-phone-tracking-without-a-warrant/463418]]></guid>\n                <dc:creator><![CDATA[Declan McCullagh CNET News]]></dc:creator>\n                <pubDate>2010-09-08T11:43:59Z</pubDate>\n                                    <category domain=\"http://www.zdnet.com/topics/phone\"><![CDATA[Phone]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/warrant\"><![CDATA[Warrant]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/cell+phone\"><![CDATA[Cell Phone]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/cellular+phones\"><![CDATA[Cellular Phones]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/consumer+electronics\"><![CDATA[Consumer Electronics]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/personal+technology\"><![CDATA[Personal Technology]]></category>\n                        </item>\n        <item>\n                <title><![CDATA[Facebook closes door for spammers]]></title>\n                <link><![CDATA[http://www.zdnet.com/news/facebook-closes-door-for-spammers/463417]]></link>\n                <s:doctype><![CDATA[News items]]></s:doctype>\n                <description><![CDATA[Facebook has closed a hole that was being used by spammers to automatically post wall messages and direct messages to friends.]]></description>\n                <guid><![CDATA[http://www.zdnet.com/news/facebook-closes-door-for-spammers/463417]]></guid>\n                <dc:creator><![CDATA[Elinor Mills CNET News]]></dc:creator>\n                <pubDate>2010-09-08T11:35:16Z</pubDate>\n                                    <category domain=\"http://www.zdnet.com/topics/facebook\"><![CDATA[Facebook]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/mozilla+firefox\"><![CDATA[Mozilla Firefox]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/spammer\"><![CDATA[Spammer]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/spam\"><![CDATA[Spam]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/security\"><![CDATA[Security]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/spam+and+phishing\"><![CDATA[Spam And Phishing]]></category>\n                        </item>\n        <item>\n                <title><![CDATA[ISPs could be freed from liability over user copyright abuses]]></title>\n                <link><![CDATA[http://www.zdnet.com/news/isps-could-be-freed-from-liability-over-user-copyright-abuses/463151]]></link>\n                <s:doctype><![CDATA[News items]]></s:doctype>\n                <description><![CDATA[ISPs could be freed from being liable for their users' copyright infringements according to what appears to be a leaked version of a proposed international trade agreement.]]></description>\n                <guid><![CDATA[http://www.zdnet.com/news/isps-could-be-freed-from-liability-over-user-copyright-abuses/463151]]></guid>\n                <dc:creator><![CDATA[Darren Pauli ZDNet Australia]]></dc:creator>\n                <pubDate>2010-09-07T14:37:50Z</pubDate>\n                                    <category domain=\"http://www.zdnet.com/topics/internet+service+provider\"><![CDATA[Internet Service Provider]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/agreement\"><![CDATA[Agreement]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/internet+service+providers+%28isps%29\"><![CDATA[Internet Service Providers (ISPs)]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/labor+relations\"><![CDATA[Labor Relations]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/internet\"><![CDATA[Internet]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/human+resources\"><![CDATA[Human Resources]]></category>\n                        </item>\n        <item>\n                <title><![CDATA[Book review: Hackers - 25th Anniversary Edition]]></title>\n                <link><![CDATA[http://www.zdnet.com/news/book-review-hackers-25th-anniversary-edition/463062]]></link>\n                <s:doctype><![CDATA[News items]]></s:doctype>\n                <description><![CDATA[Twenty-five years ago when the original Hackers was published, the term 'hacker' didn't mean a cybercriminal, and the few who used it meant it as high praise.]]></description>\n                <guid><![CDATA[http://www.zdnet.com/news/book-review-hackers-25th-anniversary-edition/463062]]></guid>\n                <dc:creator><![CDATA[ZDNet UK]]></dc:creator>\n                <pubDate>2010-09-07T14:03:42Z</pubDate>\n                                    <category domain=\"http://www.zdnet.com/topics/hacker\"><![CDATA[Hacker]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/hacking\"><![CDATA[Hacking]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/security\"><![CDATA[Security]]></category>\n                        </item>\n        <item>\n                <title><![CDATA[Google to reword privacy policy]]></title>\n                <link><![CDATA[http://www.zdnet.com/news/google-to-reword-privacy-policy/462949]]></link>\n                <s:doctype><![CDATA[News items]]></s:doctype>\n                <description><![CDATA[Google plans to update its privacy policy within the next few weeks in an effort to cut down on legal jargon.]]></description>\n                <guid><![CDATA[http://www.zdnet.com/news/google-to-reword-privacy-policy/462949]]></guid>\n                <dc:creator><![CDATA[Tom Espiner, ZDNet UK]]></dc:creator>\n                <pubDate>2010-09-07T12:03:53Z</pubDate>\n                                    <category domain=\"http://www.zdnet.com/topics/google+inc.\"><![CDATA[Google Inc.]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/privacy+policy\"><![CDATA[Privacy Policy]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/search\"><![CDATA[Search]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/blogging\"><![CDATA[Blogging]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/internet\"><![CDATA[Internet]]></category>\n                        </item>\n        <item>\n                <title><![CDATA[Cyberwar could be worse than a tsunami]]></title>\n                <link><![CDATA[http://www.zdnet.com/news/cyberwar-could-be-worse-than-a-tsunami/462576]]></link>\n                <s:doctype><![CDATA[News items]]></s:doctype>\n                <description><![CDATA[International cyberwar should be averted by a global cybersecurity peace treaty, according to the head of the International Telecommunications Union.]]></description>\n                <guid><![CDATA[http://www.zdnet.com/news/cyberwar-could-be-worse-than-a-tsunami/462576]]></guid>\n                <dc:creator><![CDATA[David Meyer ZDNet UK]]></dc:creator>\n                <pubDate>2010-09-03T12:50:03Z</pubDate>\n                                    <category domain=\"http://www.zdnet.com/topics/international+telecommunications+union\"><![CDATA[International Telecommunications Union]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/tsunami\"><![CDATA[Tsunami]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/cybersecurity\"><![CDATA[Cybersecurity]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/security\"><![CDATA[Security]]></category>\n                        </item>\n        <item>\n                <title><![CDATA[Toshiba recalls 41,000 Satellite laptops]]></title>\n                <link><![CDATA[http://www.zdnet.com/news/toshiba-recalls-41000-satellite-laptops/462479]]></link>\n                <s:doctype><![CDATA[News items]]></s:doctype>\n                <description><![CDATA[The Consumer Product Safety Commission issued a recall after reports of some overheating and even melting.]]></description>\n                <guid><![CDATA[http://www.zdnet.com/news/toshiba-recalls-41000-satellite-laptops/462479]]></guid>\n                <dc:creator><![CDATA[Erica Ogg, CNET News]]></dc:creator>\n                <pubDate>2010-09-02T20:39:53Z</pubDate>\n                                    <category domain=\"http://www.zdnet.com/topics/u.s.+consumer+product+safety+commission\"><![CDATA[U.S. Consumer Product Safety Commission]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/satellite\"><![CDATA[Satellite]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/toshiba+corp.\"><![CDATA[Toshiba Corp.]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/laptop+computer\"><![CDATA[Laptop Computer]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/notebooks\"><![CDATA[Notebooks]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/hardware\"><![CDATA[Hardware]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/notebooks+%26+tablets\"><![CDATA[Notebooks & Tablets]]></category>\n                        </item>\n        <item>\n                <title><![CDATA[India wants local servers from RIM, Google and Skype]]></title>\n                <link><![CDATA[http://www.zdnet.com/news/india-wants-local-servers-from-rim-google-and-skype/462378]]></link>\n                <s:doctype><![CDATA[News items]]></s:doctype>\n                <description><![CDATA[After its recent conflict with Research In Motion over access to customer data, India is expanding its reach to include Google and Skype.]]></description>\n                <guid><![CDATA[http://www.zdnet.com/news/india-wants-local-servers-from-rim-google-and-skype/462378]]></guid>\n                <dc:creator><![CDATA[Lance Whitney CNET News]]></dc:creator>\n                <pubDate>2010-09-02T17:16:49Z</pubDate>\n                                    <category domain=\"http://www.zdnet.com/topics/google+inc.\"><![CDATA[Google Inc.]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/india\"><![CDATA[India]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/research+in+motion+ltd.\"><![CDATA[Research In Motion Ltd.]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/skype+technologies+s.a.\"><![CDATA[Skype Technologies S.A.]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/indian+government\"><![CDATA[Indian Government]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/servers\"><![CDATA[Servers]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/hardware\"><![CDATA[Hardware]]></category>\n                        </item>\n        <item>\n                <title><![CDATA[Researchers crack code used by banks, defense]]></title>\n                <link><![CDATA[http://www.zdnet.com/news/researchers-crack-code-used-by-banks-defense/462230]]></link>\n                <s:doctype><![CDATA[News items]]></s:doctype>\n                <description><![CDATA[Researchers claim to have successfully cracked the quantum cryptography equipment used to cloak high-sensitive communications by banks and defense agencies.]]></description>\n                <guid><![CDATA[http://www.zdnet.com/news/researchers-crack-code-used-by-banks-defense/462230]]></guid>\n                <dc:creator><![CDATA[Tom Espiner ZDNet UK]]></dc:creator>\n                <pubDate>2010-09-02T12:40:20Z</pubDate>\n                                    <category domain=\"http://www.zdnet.com/topics/bank\"><![CDATA[Bank]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/researcher\"><![CDATA[Researcher]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/cryptography\"><![CDATA[Cryptography]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/digital+security\"><![CDATA[Digital Security]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/security\"><![CDATA[Security]]></category>\n                        </item>\n        <item>\n                <title><![CDATA[China to require IDs for all cell phone users]]></title>\n                <link><![CDATA[http://www.zdnet.com/news/china-to-require-ids-for-all-cell-phone-users/462226]]></link>\n                <s:doctype><![CDATA[News items]]></s:doctype>\n                <description><![CDATA[Mobile phone users in China are now being asked to provide identification when they set up a new account.]]></description>\n                <guid><![CDATA[http://www.zdnet.com/news/china-to-require-ids-for-all-cell-phone-users/462226]]></guid>\n                <dc:creator><![CDATA[Elinor Mills CNET News]]></dc:creator>\n                <pubDate>2010-09-02T11:41:35Z</pubDate>\n                                    <category domain=\"http://www.zdnet.com/topics/china\"><![CDATA[China]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/phone\"><![CDATA[Phone]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/agency\"><![CDATA[Agency]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/cell+phone\"><![CDATA[Cell Phone]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/telecommunications\"><![CDATA[Telecommunications]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/cellular+phones\"><![CDATA[Cellular Phones]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/telecom+%26+utilities\"><![CDATA[Telecom & Utilities]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/consumer+electronics\"><![CDATA[Consumer Electronics]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/personal+technology\"><![CDATA[Personal Technology]]></category>\n                        </item>\n        <item>\n                <title><![CDATA[Sony sets date for 3D Blu-ray on PlayStation 3]]></title>\n                <link><![CDATA[http://www.zdnet.com/news/sony-sets-date-for-3d-blu-ray-on-playstation-3/462021]]></link>\n                <s:doctype><![CDATA[News items]]></s:doctype>\n                <description><![CDATA[3D Blu-ray playback is making its way to the PlayStation 3  in October, Sony CEO Howard Stringer announced at IFA in Berlin]]></description>\n                <guid><![CDATA[http://www.zdnet.com/news/sony-sets-date-for-3d-blu-ray-on-playstation-3/462021]]></guid>\n                <dc:creator><![CDATA[Don Reisinger CNET News]]></dc:creator>\n                <pubDate>2010-09-01T20:44:18Z</pubDate>\n                                    <category domain=\"http://www.zdnet.com/topics/sony+corp.\"><![CDATA[Sony Corp.]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/3d\"><![CDATA[3D]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/sony+playstation+3\"><![CDATA[Sony PlayStation 3]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/sony+playstation\"><![CDATA[Sony Playstation]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/3d+blu-ray+playback\"><![CDATA[3D Blu-ray Playback]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/game+players\"><![CDATA[Game Players]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/consumer+electronics\"><![CDATA[Consumer Electronics]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/personal+technology\"><![CDATA[Personal Technology]]></category>\n                        </item>\n        <item>\n                <title><![CDATA[Gartner lowers PC shipment forecast - still healthy]]></title>\n                <link><![CDATA[http://www.zdnet.com/news/gartner-lowers-pc-shipment-forecast-still-healthy/461798]]></link>\n                <s:doctype><![CDATA[News items]]></s:doctype>\n                <description><![CDATA[PC shipments in 2010 are likely to be healthy, but not quite as vigorous as earlier forecast..]]></description>\n                <guid><![CDATA[http://www.zdnet.com/news/gartner-lowers-pc-shipment-forecast-still-healthy/461798]]></guid>\n                <dc:creator><![CDATA[Lance Whitney CNET News]]></dc:creator>\n                <pubDate>2010-09-01T16:28:20Z</pubDate>\n                                    <category domain=\"http://www.zdnet.com/topics/pc\"><![CDATA[PC]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/shipment\"><![CDATA[Shipment]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/gartner+inc.\"><![CDATA[Gartner Inc.]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/desktops\"><![CDATA[Desktops]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/hardware\"><![CDATA[Hardware]]></category>\n                        </item>\n        <item>\n                <title><![CDATA[India's next targets: Google, Skype]]></title>\n                <link><![CDATA[http://www.zdnet.com/news/indias-next-targets-google-skype/461729]]></link>\n                <s:doctype><![CDATA[News items]]></s:doctype>\n                <description><![CDATA[India has instructed Google and Skype to allow its government to monitor their customer data or face being banned.]]></description>\n                <guid><![CDATA[http://www.zdnet.com/news/indias-next-targets-google-skype/461729]]></guid>\n                <dc:creator><![CDATA[]]></dc:creator>\n                <pubDate>2010-09-01T11:46:14Z</pubDate>\n                                    <category domain=\"http://www.zdnet.com/topics/google+inc.\"><![CDATA[Google Inc.]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/india\"><![CDATA[India]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/research+in+motion+ltd.\"><![CDATA[Research In Motion Ltd.]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/skype+technologies+s.a.\"><![CDATA[Skype Technologies S.A.]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/government\"><![CDATA[Government]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/vertical+industries\"><![CDATA[Vertical Industries]]></category>\n                        </item>\n        <item>\n                <title><![CDATA[Old QuickTime flaw exposes IE]]></title>\n                <link><![CDATA[http://www.zdnet.com/news/old-quicktime-flaw-exposes-ie/461613]]></link>\n                <s:doctype><![CDATA[News items]]></s:doctype>\n                <description><![CDATA[A zero-day vulnerability in Apple QuickTime that could allow a remote attacker to take over a computer running Internet Explorer has been reported by security researchers.]]></description>\n                <guid><![CDATA[http://www.zdnet.com/news/old-quicktime-flaw-exposes-ie/461613]]></guid>\n                <dc:creator><![CDATA[Tom Espiner ZDNet UK]]></dc:creator>\n                <pubDate>2010-08-31T20:49:56Z</pubDate>\n                                    <category domain=\"http://www.zdnet.com/topics/researcher\"><![CDATA[Researcher]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/apple+quicktime\"><![CDATA[Apple QuickTime]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/flaw\"><![CDATA[Flaw]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/microsoft+internet+explorer\"><![CDATA[Microsoft Internet Explorer]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/quicktime+flaw\"><![CDATA[QuickTime Flaw]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/web+browsers\"><![CDATA[Web Browsers]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/microsoft+windows+7\"><![CDATA[Microsoft Windows 7]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/digital+music\"><![CDATA[Digital Music]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/digital+media\"><![CDATA[Digital Media]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/security\"><![CDATA[Security]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/internet\"><![CDATA[Internet]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/operating+systems\"><![CDATA[Operating Systems]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/microsoft+windows\"><![CDATA[Microsoft Windows]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/software\"><![CDATA[Software]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/personal+technology\"><![CDATA[Personal Technology]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/consumer+electronics\"><![CDATA[Consumer Electronics]]></category>\n                        </item>\n        <item>\n                <title><![CDATA[HP pays $55 million to settle kickback scandal]]></title>\n                <link><![CDATA[http://www.zdnet.com/news/hp-pays-55-million-to-settle-kickback-scandal/461573]]></link>\n                <s:doctype><![CDATA[News items]]></s:doctype>\n                <description><![CDATA[Hewlett-Packard has agreed to pay the U.S. government $55 million to settle charges that it paid kickbacks to technology partners for recommending HP products to federal agencies.]]></description>\n                <guid><![CDATA[http://www.zdnet.com/news/hp-pays-55-million-to-settle-kickback-scandal/461573]]></guid>\n                <dc:creator><![CDATA[Lance Whitney, CNET News]]></dc:creator>\n                <pubDate>2010-08-31T16:06:44Z</pubDate>\n                                    <category domain=\"http://www.zdnet.com/topics/hewlett-packard+co.\"><![CDATA[Hewlett-Packard Co.]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/litigation\"><![CDATA[Litigation]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/advertising+%26+promotion\"><![CDATA[Advertising & Promotion]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/business+operations\"><![CDATA[Business Operations]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/marketing\"><![CDATA[Marketing]]></category>\n                        </item>\n        <item>\n                <title><![CDATA[Angry Digg users link to Reddit after redesign]]></title>\n                <link><![CDATA[http://www.zdnet.com/news/angry-digg-users-link-to-reddit-after-redesign/461197]]></link>\n                <s:doctype><![CDATA[News items]]></s:doctype>\n                <description><![CDATA[Apparently dissatisfied with a redesign that buries much of their influence, hard-core users of social-news site Digg have been gaming its &quot;Top News&quot; page .]]></description>\n                <guid><![CDATA[http://www.zdnet.com/news/angry-digg-users-link-to-reddit-after-redesign/461197]]></guid>\n                <dc:creator><![CDATA[Carolyn McCarthy CNET News]]></dc:creator>\n                <pubDate>2010-08-30T18:05:20Z</pubDate>\n                                    <category domain=\"http://www.zdnet.com/topics/digg\"><![CDATA[Digg]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/reddit\"><![CDATA[Reddit]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/games\"><![CDATA[Games]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/personal+technology\"><![CDATA[Personal Technology]]></category>\n                        </item>\n        <item>\n                <title><![CDATA[Choosing your second content management solution or third&acirc;&brvbar;]]></title>\n                <link><![CDATA[http://www.zdnet.com/news/choosing-your-second-content-management-solution-or-third/461195]]></link>\n                <s:doctype><![CDATA[News items]]></s:doctype>\n                <description><![CDATA[With the rapid growth of CMS spending, here's some advice to keep in mind when you're in the market for the next version says agencyq's Kurt Roberts.]]></description>\n                <guid><![CDATA[http://www.zdnet.com/news/choosing-your-second-content-management-solution-or-third/461195]]></guid>\n                <dc:creator><![CDATA[Kurt Roberts, agencyq, Special to ZDNet]]></dc:creator>\n                <pubDate>2010-08-30T17:42:07Z</pubDate>\n                                    <category domain=\"http://www.zdnet.com/topics/content+management+system\"><![CDATA[Content Management System]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/content+management\"><![CDATA[Content Management]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/enterprise+software\"><![CDATA[Enterprise Software]]></category>\n                                    <category domain=\"http://www.zdnet.com/topics/software\"><![CDATA[Software]]></category>\n                        </item>\n           </channel>\n</rss>\n", message:undefined, modified:(new Date(1284015919845)), baseUri:"http://p3k.org/rss/", query:"frameColor=#004080&textColor=#333333&_=1212126067260&titleBarColor=#004080&compact=&fontFace=tahoma, verdana, sans-serif&align=center&showXmlButton=&maxItems=20&boxFillColor=#ffffff&undefined=&titleBarTextColor=#ffffff&width=778&url=http://updates.zdnet.com/?t=7&mode=rss&", param:{textColor:"#333333", width:"778", align:"center", fontFace:"tahoma, verdana, sans-serif", url:"http://updates.zdnet.com/?t=7&mode=rss", compact:"", frameColor:"#004080", showXmlButton:"", undefined:"", boxFillColor:"#ffffff", _:"1212126067260", titleBarColor:"#004080", maxItems:"20", titleBarTextColor:"#ffffff"}, 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();

