aboutsummaryrefslogtreecommitdiffstats
path: root/simplepie/demo
diff options
context:
space:
mode:
Diffstat (limited to 'simplepie/demo')
-rwxr-xr-xsimplepie/demo/cli_test.php23
-rw-r--r--simplepie/demo/for_the_demo/alternate_favicon.pngbin0 -> 28621 bytes
-rw-r--r--simplepie/demo/for_the_demo/background_blockquote.pngbin0 -> 27353 bytes
-rw-r--r--simplepie/demo/for_the_demo/background_menuitem.gifbin0 -> 533 bytes
-rw-r--r--simplepie/demo/for_the_demo/background_menuitem_off.gifbin0 -> 533 bytes
-rw-r--r--simplepie/demo/for_the_demo/background_menuitem_shadow.gifbin0 -> 250 bytes
-rw-r--r--simplepie/demo/for_the_demo/favicons/alternate.pngbin0 -> 28621 bytes
-rw-r--r--simplepie/demo/for_the_demo/favicons/blinklist.pngbin0 -> 4377 bytes
-rw-r--r--simplepie/demo/for_the_demo/favicons/blogmarks.pngbin0 -> 3823 bytes
-rw-r--r--simplepie/demo/for_the_demo/favicons/delicious.pngbin0 -> 3739 bytes
-rw-r--r--simplepie/demo/for_the_demo/favicons/digg.pngbin0 -> 4004 bytes
-rw-r--r--simplepie/demo/for_the_demo/favicons/magnolia.pngbin0 -> 4574 bytes
-rw-r--r--simplepie/demo/for_the_demo/favicons/myweb2.pngbin0 -> 4010 bytes
-rw-r--r--simplepie/demo/for_the_demo/favicons/newsvine.pngbin0 -> 3804 bytes
-rw-r--r--simplepie/demo/for_the_demo/favicons/reddit.pngbin0 -> 4239 bytes
-rw-r--r--simplepie/demo/for_the_demo/favicons/segnalo.pngbin0 -> 4116 bytes
-rw-r--r--simplepie/demo/for_the_demo/favicons/simpy.pngbin0 -> 4256 bytes
-rw-r--r--simplepie/demo/for_the_demo/favicons/spurl.pngbin0 -> 3970 bytes
-rw-r--r--simplepie/demo/for_the_demo/favicons/technorati.pngbin0 -> 4087 bytes
-rw-r--r--simplepie/demo/for_the_demo/favicons/wists.pngbin0 -> 3974 bytes
-rw-r--r--simplepie/demo/for_the_demo/feed.pngbin0 -> 715 bytes
-rw-r--r--simplepie/demo/for_the_demo/logo_simplepie_demo.pngbin0 -> 3047 bytes
-rw-r--r--simplepie/demo/for_the_demo/lucida-grande-bold.swfbin0 -> 21159 bytes
-rw-r--r--simplepie/demo/for_the_demo/mediaplayer.swfbin0 -> 32008 bytes
-rwxr-xr-xsimplepie/demo/for_the_demo/mediaplayer_readme.htm5
-rw-r--r--simplepie/demo/for_the_demo/mini_podcast.pngbin0 -> 1202 bytes
-rw-r--r--simplepie/demo/for_the_demo/place_audio.pngbin0 -> 851 bytes
-rw-r--r--simplepie/demo/for_the_demo/place_video.pngbin0 -> 36713 bytes
-rw-r--r--simplepie/demo/for_the_demo/sIFR-print.css35
-rw-r--r--simplepie/demo/for_the_demo/sIFR-screen.css39
-rw-r--r--simplepie/demo/for_the_demo/sifr-config.js40
-rw-r--r--simplepie/demo/for_the_demo/sifr.js19
-rw-r--r--simplepie/demo/for_the_demo/simplepie.css397
-rw-r--r--simplepie/demo/for_the_demo/sleight.js31
-rw-r--r--simplepie/demo/for_the_demo/source_files/place_audio_fireworksfile.pngbin0 -> 39177 bytes
-rw-r--r--simplepie/demo/for_the_demo/source_files/place_video_fireworksfile.pngbin0 -> 115826 bytes
-rw-r--r--simplepie/demo/for_the_demo/source_files/sIFR-r245/SifrStyleSheet.as71
-rw-r--r--simplepie/demo/for_the_demo/source_files/sIFR-r245/_README_.txt12
-rw-r--r--simplepie/demo/for_the_demo/source_files/sIFR-r245/options.as12
-rw-r--r--simplepie/demo/for_the_demo/source_files/sIFR-r245/sIFR.as359
-rw-r--r--simplepie/demo/for_the_demo/source_files/sIFR-r245/sifr.flabin0 -> 47104 bytes
-rw-r--r--simplepie/demo/for_the_demo/top_gradient.gifbin0 -> 1378 bytes
-rw-r--r--simplepie/demo/for_the_demo/verdana.swfbin0 -> 28575 bytes
-rw-r--r--simplepie/demo/for_the_demo/yanone-kaffeesatz-bold.swfbin0 -> 76780 bytes
-rw-r--r--simplepie/demo/handler_image.php6
-rw-r--r--simplepie/demo/index.php295
-rw-r--r--simplepie/demo/minimalistic.php137
-rw-r--r--simplepie/demo/multifeeds.php108
-rw-r--r--simplepie/demo/test.php62
49 files changed, 1651 insertions, 0 deletions
diff --git a/simplepie/demo/cli_test.php b/simplepie/demo/cli_test.php
new file mode 100755
index 000000000..ec933c5ad
--- /dev/null
+++ b/simplepie/demo/cli_test.php
@@ -0,0 +1,23 @@
+#!/usr/bin/php
+<?php
+include_once('../simplepie.inc');
+
+// Parse it
+$feed = new SimplePie();
+if (isset($argv[1]) && $argv[1] !== '')
+{
+ $feed->set_feed_url($argv[1]);
+ $feed->enable_cache(false);
+ $feed->init();
+}
+
+$items = $feed->get_items();
+
+foreach ($items as $item)
+{
+ echo $item->get_title() . "\n";
+}
+
+var_dump($feed->get_item_quantity());
+
+?> \ No newline at end of file
diff --git a/simplepie/demo/for_the_demo/alternate_favicon.png b/simplepie/demo/for_the_demo/alternate_favicon.png
new file mode 100644
index 000000000..063fb2805
--- /dev/null
+++ b/simplepie/demo/for_the_demo/alternate_favicon.png
Binary files differ
diff --git a/simplepie/demo/for_the_demo/background_blockquote.png b/simplepie/demo/for_the_demo/background_blockquote.png
new file mode 100644
index 000000000..8267e23a2
--- /dev/null
+++ b/simplepie/demo/for_the_demo/background_blockquote.png
Binary files differ
diff --git a/simplepie/demo/for_the_demo/background_menuitem.gif b/simplepie/demo/for_the_demo/background_menuitem.gif
new file mode 100644
index 000000000..fa765d670
--- /dev/null
+++ b/simplepie/demo/for_the_demo/background_menuitem.gif
Binary files differ
diff --git a/simplepie/demo/for_the_demo/background_menuitem_off.gif b/simplepie/demo/for_the_demo/background_menuitem_off.gif
new file mode 100644
index 000000000..236cf406d
--- /dev/null
+++ b/simplepie/demo/for_the_demo/background_menuitem_off.gif
Binary files differ
diff --git a/simplepie/demo/for_the_demo/background_menuitem_shadow.gif b/simplepie/demo/for_the_demo/background_menuitem_shadow.gif
new file mode 100644
index 000000000..95cfb820d
--- /dev/null
+++ b/simplepie/demo/for_the_demo/background_menuitem_shadow.gif
Binary files differ
diff --git a/simplepie/demo/for_the_demo/favicons/alternate.png b/simplepie/demo/for_the_demo/favicons/alternate.png
new file mode 100644
index 000000000..063fb2805
--- /dev/null
+++ b/simplepie/demo/for_the_demo/favicons/alternate.png
Binary files differ
diff --git a/simplepie/demo/for_the_demo/favicons/blinklist.png b/simplepie/demo/for_the_demo/favicons/blinklist.png
new file mode 100644
index 000000000..53200b3c6
--- /dev/null
+++ b/simplepie/demo/for_the_demo/favicons/blinklist.png
Binary files differ
diff --git a/simplepie/demo/for_the_demo/favicons/blogmarks.png b/simplepie/demo/for_the_demo/favicons/blogmarks.png
new file mode 100644
index 000000000..c5372614a
--- /dev/null
+++ b/simplepie/demo/for_the_demo/favicons/blogmarks.png
Binary files differ
diff --git a/simplepie/demo/for_the_demo/favicons/delicious.png b/simplepie/demo/for_the_demo/favicons/delicious.png
new file mode 100644
index 000000000..2e6021d26
--- /dev/null
+++ b/simplepie/demo/for_the_demo/favicons/delicious.png
Binary files differ
diff --git a/simplepie/demo/for_the_demo/favicons/digg.png b/simplepie/demo/for_the_demo/favicons/digg.png
new file mode 100644
index 000000000..3aa96770e
--- /dev/null
+++ b/simplepie/demo/for_the_demo/favicons/digg.png
Binary files differ
diff --git a/simplepie/demo/for_the_demo/favicons/magnolia.png b/simplepie/demo/for_the_demo/favicons/magnolia.png
new file mode 100644
index 000000000..da519f5ab
--- /dev/null
+++ b/simplepie/demo/for_the_demo/favicons/magnolia.png
Binary files differ
diff --git a/simplepie/demo/for_the_demo/favicons/myweb2.png b/simplepie/demo/for_the_demo/favicons/myweb2.png
new file mode 100644
index 000000000..2a12968d5
--- /dev/null
+++ b/simplepie/demo/for_the_demo/favicons/myweb2.png
Binary files differ
diff --git a/simplepie/demo/for_the_demo/favicons/newsvine.png b/simplepie/demo/for_the_demo/favicons/newsvine.png
new file mode 100644
index 000000000..5cdbb31c6
--- /dev/null
+++ b/simplepie/demo/for_the_demo/favicons/newsvine.png
Binary files differ
diff --git a/simplepie/demo/for_the_demo/favicons/reddit.png b/simplepie/demo/for_the_demo/favicons/reddit.png
new file mode 100644
index 000000000..65c38867c
--- /dev/null
+++ b/simplepie/demo/for_the_demo/favicons/reddit.png
Binary files differ
diff --git a/simplepie/demo/for_the_demo/favicons/segnalo.png b/simplepie/demo/for_the_demo/favicons/segnalo.png
new file mode 100644
index 000000000..748149b37
--- /dev/null
+++ b/simplepie/demo/for_the_demo/favicons/segnalo.png
Binary files differ
diff --git a/simplepie/demo/for_the_demo/favicons/simpy.png b/simplepie/demo/for_the_demo/favicons/simpy.png
new file mode 100644
index 000000000..30b23c1a5
--- /dev/null
+++ b/simplepie/demo/for_the_demo/favicons/simpy.png
Binary files differ
diff --git a/simplepie/demo/for_the_demo/favicons/spurl.png b/simplepie/demo/for_the_demo/favicons/spurl.png
new file mode 100644
index 000000000..f5be3963d
--- /dev/null
+++ b/simplepie/demo/for_the_demo/favicons/spurl.png
Binary files differ
diff --git a/simplepie/demo/for_the_demo/favicons/technorati.png b/simplepie/demo/for_the_demo/favicons/technorati.png
new file mode 100644
index 000000000..0f19e824e
--- /dev/null
+++ b/simplepie/demo/for_the_demo/favicons/technorati.png
Binary files differ
diff --git a/simplepie/demo/for_the_demo/favicons/wists.png b/simplepie/demo/for_the_demo/favicons/wists.png
new file mode 100644
index 000000000..2e2d294d1
--- /dev/null
+++ b/simplepie/demo/for_the_demo/favicons/wists.png
Binary files differ
diff --git a/simplepie/demo/for_the_demo/feed.png b/simplepie/demo/for_the_demo/feed.png
new file mode 100644
index 000000000..e23c50c85
--- /dev/null
+++ b/simplepie/demo/for_the_demo/feed.png
Binary files differ
diff --git a/simplepie/demo/for_the_demo/logo_simplepie_demo.png b/simplepie/demo/for_the_demo/logo_simplepie_demo.png
new file mode 100644
index 000000000..eda2d868b
--- /dev/null
+++ b/simplepie/demo/for_the_demo/logo_simplepie_demo.png
Binary files differ
diff --git a/simplepie/demo/for_the_demo/lucida-grande-bold.swf b/simplepie/demo/for_the_demo/lucida-grande-bold.swf
new file mode 100644
index 000000000..0a41e15eb
--- /dev/null
+++ b/simplepie/demo/for_the_demo/lucida-grande-bold.swf
Binary files differ
diff --git a/simplepie/demo/for_the_demo/mediaplayer.swf b/simplepie/demo/for_the_demo/mediaplayer.swf
new file mode 100644
index 000000000..bf78fd919
--- /dev/null
+++ b/simplepie/demo/for_the_demo/mediaplayer.swf
Binary files differ
diff --git a/simplepie/demo/for_the_demo/mediaplayer_readme.htm b/simplepie/demo/for_the_demo/mediaplayer_readme.htm
new file mode 100755
index 000000000..56e12c309
--- /dev/null
+++ b/simplepie/demo/for_the_demo/mediaplayer_readme.htm
@@ -0,0 +1,5 @@
+<html>
+<head>
+<meta http-equiv="refresh" content="0;url=http://www.jeroenwijering.com/extras/readme.html">
+</head>
+</html> \ No newline at end of file
diff --git a/simplepie/demo/for_the_demo/mini_podcast.png b/simplepie/demo/for_the_demo/mini_podcast.png
new file mode 100644
index 000000000..fd6faf2a3
--- /dev/null
+++ b/simplepie/demo/for_the_demo/mini_podcast.png
Binary files differ
diff --git a/simplepie/demo/for_the_demo/place_audio.png b/simplepie/demo/for_the_demo/place_audio.png
new file mode 100644
index 000000000..560ea0039
--- /dev/null
+++ b/simplepie/demo/for_the_demo/place_audio.png
Binary files differ
diff --git a/simplepie/demo/for_the_demo/place_video.png b/simplepie/demo/for_the_demo/place_video.png
new file mode 100644
index 000000000..be5ec8219
--- /dev/null
+++ b/simplepie/demo/for_the_demo/place_video.png
Binary files differ
diff --git a/simplepie/demo/for_the_demo/sIFR-print.css b/simplepie/demo/for_the_demo/sIFR-print.css
new file mode 100644
index 000000000..ec89b1961
--- /dev/null
+++ b/simplepie/demo/for_the_demo/sIFR-print.css
@@ -0,0 +1,35 @@
+/*=:project
+ scalable Inman Flash Replacement (sIFR) version 3.
+
+ =:file
+ Copyright: 2006 Mark Wubben.
+ Author: Mark Wubben, <http://novemberborn.net/>
+
+ =:history
+ * IFR: Shaun Inman
+ * sIFR 1: Mike Davidson, Shaun Inman and Tomas Jogin
+ * sIFR 2: Mike Davidson, Shaun Inman, Tomas Jogin and Mark Wubben
+
+ =:license
+ This software is licensed and provided under the CC-GNU LGPL.
+ See <http://creativecommons.org/licenses/LGPL/2.1/>
+*/
+
+
+/* This is the print stylesheet to hide the Flash headlines from the browser... regular browser text headlines will now print as normal */
+
+.sIFR-flash {
+ display: none !important;
+ height: 0;
+ width: 0;
+ position: absolute;
+ overflow: hidden;
+}
+
+.sIFR-alternate {
+ visibility: visible !important;
+ display: block !important;
+ position: static !important;
+ left: auto !important;
+ top: auto !important;
+} \ No newline at end of file
diff --git a/simplepie/demo/for_the_demo/sIFR-screen.css b/simplepie/demo/for_the_demo/sIFR-screen.css
new file mode 100644
index 000000000..778e09d2b
--- /dev/null
+++ b/simplepie/demo/for_the_demo/sIFR-screen.css
@@ -0,0 +1,39 @@
+/*=:project
+ scalable Inman Flash Replacement (sIFR) version 3.
+
+ =:file
+ Copyright: 2006 Mark Wubben.
+ Author: Mark Wubben, <http://novemberborn.net/>
+
+ =:history
+ * IFR: Shaun Inman
+ * sIFR 1: Mike Davidson, Shaun Inman and Tomas Jogin
+ * sIFR 2: Mike Davidson, Shaun Inman, Tomas Jogin and Mark Wubben
+
+ =:license
+ This software is licensed and provided under the CC-GNU LGPL.
+ See <http://creativecommons.org/licenses/LGPL/2.1/>
+*/
+
+/*---- sIFR ---*/
+.sIFR-flash {
+ visibility: visible !important;
+ margin: 0;
+ padding: 0;
+}
+
+.sIFR-replaced {
+ visibility: visible !important;
+}
+
+.sIFR-alternate {
+ position: absolute;
+ left: 0;
+ top: 0;
+ width: 0;
+ height: 0;
+ display: block;
+ overflow: hidden;
+}
+
+/*---- Header styling ---*/
diff --git a/simplepie/demo/for_the_demo/sifr-config.js b/simplepie/demo/for_the_demo/sifr-config.js
new file mode 100644
index 000000000..e7066b361
--- /dev/null
+++ b/simplepie/demo/for_the_demo/sifr-config.js
@@ -0,0 +1,40 @@
+var yanone_kaffeesatz = {
+ src: './for_the_demo/yanone-kaffeesatz-bold.swf'
+};
+
+var lucida_grande = {
+ src: './for_the_demo/lucida-grande-bold.swf'
+};
+
+sIFR.activate(yanone_kaffeesatz);
+//sIFR.activate(lucida_grande);
+
+sIFR.replace(yanone_kaffeesatz, {
+//sIFR.replace(lucida_grande, {
+
+ selector: 'h3.header',
+ wmode: 'transparent',
+ css: {
+ '.sIFR-root': {
+ 'text-align': 'center',
+ 'color': '#000000',
+ 'font-weight': 'bold',
+ 'background-color': '#EEFFEE',
+
+ 'font-size': '50px', // For Yanone Kaffeesatz
+ //'font-size': '40px', // For Lucida Grande
+
+ 'letter-spacing': '0' // For Yanone Kaffeesatz
+ //'letter-spacing': '-4' // For Lucida Grande
+
+ },
+ 'a': {
+ 'text-decoration': 'none',
+ 'color': '#000000'
+ },
+ 'a:hover': {
+ 'text-decoration': 'none',
+ 'color': '#666666'
+ }
+ }
+});
diff --git a/simplepie/demo/for_the_demo/sifr.js b/simplepie/demo/for_the_demo/sifr.js
new file mode 100644
index 000000000..0a8b1b6dc
--- /dev/null
+++ b/simplepie/demo/for_the_demo/sifr.js
@@ -0,0 +1,19 @@
+/*=:project
+ scalable Inman Flash Replacement (sIFR) version 3, revision 245
+
+ =:file
+ Copyright: 2006 Mark Wubben.
+ Author: Mark Wubben, <http://novemberborn.net/>
+
+ =:history
+ * IFR: Shaun Inman
+ * sIFR 1: Mike Davidson, Shaun Inman and Tomas Jogin
+ * sIFR 2: Mike Davidson, Shaun Inman, Tomas Jogin and Mark Wubben
+
+ =:license
+ This software is licensed and provided under the CC-GNU LGPL.
+ See <http://creativecommons.org/licenses/LGPL/2.1/>
+*/
+
+var parseSelector=(function(){var _1=/\s*,\s*/;var _2=/\s*([\s>+~(),]|^|$)\s*/g;var _3=/([\s>+~,]|[^(]\+|^)([#.:@])/g;var _4=/^[^\s>+~]/;var _5=/[\s#.:>+~()@]|[^\s#.:>+~()@]+/g;function parseSelector(_6,_7){_7=_7||document.documentElement;var _8=_6.split(_1),_9=[];for(var i=0;i<_8.length;i++){var _b=[_7],_c=toStream(_8[i]);for(var j=0;j<_c.length;){var _e=_c[j++],_f=_c[j++],_10="";if(_c[j]=="("){while(_c[j++]!=")"&&j<_c.length){_10+=_c[j]}_10=_10.slice(0,-1)}_b=select(_b,_e,_f,_10)}_9=_9.concat(_b)}return _9}function toStream(_11){var _12=_11.replace(_2,"$1").replace(_3,"$1*$2");if(_4.test(_12)){_12=" "+_12}return _12.match(_5)||[]}function select(_13,_14,_15,_16){return (_17[_14])?_17[_14](_13,_15,_16):[]}var _18={toArray:function(_19){var a=[];for(var i=0;i<_19.length;i++){a.push(_19[i])}return a}};var dom={isTag:function(_1d,tag){return (tag=="*")||(tag.toLowerCase()==_1d.nodeName.toLowerCase())},previousSiblingElement:function(_1f){do{_1f=_1f.previousSibling}while(_1f&&_1f.nodeType!=1);return _1f},nextSiblingElement:function(_20){do{_20=_20.nextSibling}while(_20&&_20.nodeType!=1);return _20},hasClass:function(_21,_22){return (_22.className||"").match("(^|\\s)"+_21+"(\\s|$)")},getByTag:function(tag,_24){return _24.getElementsByTagName(tag)}};var _17={"#":function(_25,_26){for(var i=0;i<_25.length;i++){if(_25[i].getAttribute("id")==_26){return [_25[i]]}}return []}," ":function(_28,_29){var _2a=[];for(var i=0;i<_28.length;i++){_2a=_2a.concat(_18.toArray(dom.getByTag(_29,_28[i])))}return _2a},">":function(_2c,_2d){var _2e=[];for(var i=0,_30;i<_2c.length;i++){_30=_2c[i];for(var j=0,_32;j<_30.childNodes.length;j++){_32=_30.childNodes[j];if(_32.nodeType==1&&dom.isTag(_32,_2d)){_2e.push(_32)}}}return _2e},".":function(_33,_34){var _35=[];for(var i=0,_37;i<_33.length;i++){_37=_33[i];if(dom.hasClass([_34],_37)){_35.push(_37)}}return _35},":":function(_38,_39,_3a){return (pseudoClasses[_39])?pseudoClasses[_39](_38,_3a):[]}};parseSelector.selectors=_17;parseSelector.pseudoClasses={};parseSelector.util=_18;parseSelector.dom=dom;return parseSelector})();
+var sIFR=new function(){var _3b=this;var _3c="sIFR-active";var _3d="sIFR-replaced";var _3e="sIFR-replacing";var _3f="sIFR-flash";var _40="sIFR-ignore";var _41="sIFR-alternate";var _42="sIFR-class";var _43="sIFR-layout";var _44=6;var _45=126;var _46=8;var _47="SIFR-PREFETCHED";var _48=[10,1.55,19,1.45,32,1.35,71,1.3,1.25];var _49=5;this.isActive=false;this.isEnabled=true;this.hideElements=true;this.preserveSingleWhitespace=false;this.fixWrap=true;this.fixHover=true;this.registerEvents=true;this.setPrefetchCookie=true;this.cookiePath="/";this.domains=[];this.fromLocal=true;this.forceClear=false;this.forceWidth=false;this.fitExactly=false;this.forceTextTransform=true;this.useDomContentLoaded=true;this.debugMode=false;this.hasFlashClassSet=false;this.delayCss=false;this.callbacks=[];var _4a=0;var _4b=false,_4c=false;var dom=new function(){var _4e="http://www.w3.org/1999/xhtml";this.getBody=function(){var _4f=document.getElementsByTagName("body");if(_4f.length==1){return _4f[0]}return null};this.addClass=function(_50,_51){if(_51){_51.className=((_51.className||"")==""?"":_51.className+" ")+_50}};this.removeClass=function(_52,_53){if(_53){_53.className=_53.className.replace(new RegExp("(^|\\s)"+_52+"(\\s|$)"),"").replace(/^\s+|(\s)\s+/g,"$1")}};this.hasClass=function(_54,_55){return new RegExp("(^|\\s)"+_54+"(\\s|$)").test(_55.className)};this.hasOneOfClassses=function(_56,_57){for(var i=0;i<_56.length;i++){if(this.hasClass(_56[i],_57)){return true}}return false};this.create=function(_59){if(document.createElementNS){return document.createElementNS(_4e,_59)}return document.createElement(_59)};this.setInnerHtml=function(_5a,_5b){if(ua.innerHtmlSupport){_5a.innerHTML=_5b}else{if(ua.xhtmlSupport){_5b=["<root xmlns=\"",_4e,"\">",_5b,"</root>"].join("");var xml=(new DOMParser()).parseFromString(_5b,"text/xml");xml=document.importNode(xml.documentElement,true);while(_5a.firstChild){_5a.removeChild(_5a.firstChild)}while(xml.firstChild){_5a.appendChild(xml.firstChild)}}}};this.nodeFromHtml=function(_5d){var _5e=this.create("div");_5e.innerHTML=_5d;return _5e.firstChild};this.getComputedStyle=function(_5f,_60){var _61;if(document.defaultView&&document.defaultView.getComputedStyle){_61=document.defaultView.getComputedStyle(_5f,null)[_60]}else{if(_5f.currentStyle){_61=_5f.currentStyle[_60]}}return _61||""};this.getStyleAsInt=function(_62,_63,_64){var _65=this.getComputedStyle(_62,_63);if(_64&&!/px$/.test(_65)){return 0}_65=parseInt(_65);return isNaN(_65)?0:_65};this.getZoom=function(){return _66.zoom.getLatest()}};this.dom=dom;var ua=new function(){var ua=navigator.userAgent.toLowerCase();var _69=(navigator.product||"").toLowerCase();this.macintosh=ua.indexOf("mac")>-1;this.windows=ua.indexOf("windows")>-1;this.quicktime=false;this.opera=ua.indexOf("opera")>-1;this.konqueror=_69.indexOf("konqueror")>-1;this.ie=false/*@cc_on || true @*/;this.ieSupported=this.ie&&!/ppc|smartphone|iemobile|msie\s5\.5/.test(ua)/*@cc_on && @_jscript_version >= 5.5 @*/;this.ieWin=this.ie&&this.windows/*@cc_on && @_jscript_version >= 5.1 @*/;this.windows=this.windows&&(!this.ie||this.ieWin);this.ieMac=this.ie&&this.macintosh/*@cc_on && @_jscript_version < 5.1 @*/;this.macintosh=this.macintosh&&(!this.ie||this.ieMac);this.safari=ua.indexOf("safari")>-1;this.webkit=ua.indexOf("applewebkit")>-1&&!this.konqueror;this.khtml=this.webkit||this.konqueror;this.gecko=!this.webkit&&_69=="gecko";this.operaVersion=this.opera&&/.*opera(\s|\/)(\d+\.\d+)/.exec(ua)?parseInt(RegExp.$2):0;this.webkitVersion=this.webkit&&/.*applewebkit\/(\d+).*/.exec(ua)?parseInt(RegExp.$1):0;this.geckoBuildDate=this.gecko&&/.*gecko\/(\d{8}).*/.exec(ua)?parseInt(RegExp.$1):0;this.konquerorVersion=this.konqueror&&/.*konqueror\/(\d\.\d).*/.exec(ua)?parseInt(RegExp.$1):0;this.flashVersion=0;if(this.ieWin){var axo;var _6b=false;try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7")}catch(e){try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");this.flashVersion=6;axo.AllowScriptAccess="always"}catch(e){_6b=this.flashVersion==6}if(!_6b){try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash")}catch(e){}}}if(!_6b&&axo){this.flashVersion=parseFloat(/([\d,?]+)/.exec(axo.GetVariable("$version"))[1].replace(/,/g,"."))}}else{if(navigator.plugins&&navigator.plugins["Shockwave Flash"]){var _6c=navigator.plugins["Shockwave Flash"];this.flashVersion=parseFloat(/(\d+\.?\d*)/.exec(_6c.description)[1]);var i=0;while(this.flashVersion>=_46&&i<navigator.mimeTypes.length){var _6e=navigator.mimeTypes[i];if(_6e.type=="application/x-shockwave-flash"&&_6e.enabledPlugin.description.toLowerCase().indexOf("quicktime")>-1){this.flashVersion=0;this.quicktime=true}i++}}}this.flash=this.flashVersion>=_46;this.transparencySupport=this.macintosh||this.windows;this.computedStyleSupport=this.ie||document.defaultView&&document.defaultView.getComputedStyle&&(!this.gecko||this.geckoBuildDate>=20030624);this.css=true;if(this.computedStyleSupport){try{var _6f=document.getElementsByTagName("head")[0];_6f.style.backgroundColor="#FF0000";var _70=dom.getComputedStyle(_6f,"backgroundColor");this.css=!_70||/\#F{2}0{4}|rgb\(255,\s?0,\s?0\)/i.test(_70);_6f.style.backgroundColor="";_6f=null}catch(e){}}this.xhtmlSupport=!!window.DOMParser&&!!document.importNode;try{var n=dom.create("span");if(!this.ieMac){n.innerHTML="x"}this.innerHtmlSupport=n.innerHTML=="x"}catch(e){this.innerHtmlSupport=false}this.zoomSupport=!!(this.opera&&document.documentElement);this.geckoXml=this.gecko&&(document.contentType||"").indexOf("xml")>-1;this.requiresPrefetch=this.ieWin||this.khtml;this.verifiedKonqueror=false;this.supported=this.flash&&this.css&&(!this.ie||this.ieSupported)&&(!this.opera||this.operaVersion>=8)&&(!this.webkit||this.webkitVersion>=412)&&(!this.konqueror||this.konquerorVersion>3.5)&&this.computedStyleSupport&&(this.innerHtmlSupport||!this.khtml&&this.xhtmlSupport)};this.ua=ua;var _72=new function(){var _73={leading:true,"margin-left":true,"margin-right":true,"text-indent":true};var _74=" ";function capitalize($){return $.toUpperCase()}this.normalize=function(str){if(_3b.preserveSingleWhitespace){return str.replace(/\s/g,_74)}return str.replace(/(\s)\s+/g,"$1").replace(/\xA0/,_74)};this.textTransform=function(_77,str){switch(_77){case "uppercase":str=str.toUpperCase();break;case "lowercase":str=str.toLowerCase();break;case "capitalize":var _79=str;str=str.replace(/^\w|\s\w/g,capitalize);if(str.indexOf("function capitalize")!=-1){var _7a=_79.replace(/(^|\s)(\w)/g,"$1$1$2$2").split(/^\w|\s\w/g);str="";for(var i=0;i<_7a.length;i++){str+=_7a[i].charAt(0).toUpperCase()+_7a[i].substring(1)}}break}return str};this.toHexString=function(str){if(typeof (str)!="string"||!str.charAt(0)=="#"||str.length!=4&&str.length!=7){return str}str=str.replace(/#/,"");if(str.length==3){str=str.replace(/(.)(.)(.)/,"$1$1$2$2$3$3")}return "0x"+str};this.toJson=function(obj){var _7e="";switch(typeof (obj)){case "string":_7e="\""+obj+"\"";break;case "number":case "boolean":_7e=obj.toString();break;case "object":_7e=[];for(var _7f in obj){if(obj[_7f]==Object.prototype[_7f]){continue}_7e.push("\""+_7f+"\":"+_72.toJson(obj[_7f]))}_7e="{"+_7e.join(",")+"}";break}return _7e};this.convertCssArg=function(arg){if(!arg){return {}}if(typeof (arg)=="object"){if(arg.constructor==Array){arg=arg.join("")}else{return arg}}var obj={};var _82=arg.split("}");for(var i=0;i<_82.length;i++){var $=_82[i].match(/([^\s{]+)\s*\{(.+)\s*;?\s*/);if(!$||$.length!=3){continue}if(!obj[$[1]]){obj[$[1]]={}}var _85=$[2].split(";");for(var j=0;j<_85.length;j++){var $2=_85[j].match(/\s*([^:\s]+)\s*\:\s*([^\s;]+)/);if(!$2||$2.length!=3){continue}obj[$[1]][$2[1]]=$2[2]}}return obj};this.extractFromCss=function(css,_89,_8a,_8b){var _8c=null;if(css&&css[_89]&&css[_89][_8a]){_8c=css[_89][_8a];if(_8b){delete css[_89][_8a]}}return _8c};this.cssToString=function(arg){var css=[];for(var _8f in arg){var _90=arg[_8f];if(_90==Object.prototype[_8f]){continue}css.push(_8f,"{");for(var _91 in _90){if(_90[_91]==Object.prototype[_91]){continue}var _92=_90[_91];if(_73[_91]){_92=parseInt(_92,10)}css.push(_91,":",_92,";")}css.push("}")}return escape(css.join(""))};this.bind=function(_93,_94){return function(){_93[_94].apply(_93,arguments)}}};this.util=_72;var _66={};_66.fragmentIdentifier=new function(){this.fix=true;var _95;this.cache=function(){_95=document.title};function doFix(){document.title=_95}this.restore=function(){if(this.fix){setTimeout(doFix,0)}}};_66.synchronizer=new function(){this.isBlocked=false;this.block=function(){this.isBlocked=true};this.unblock=function(){this.isBlocked=false;_96.replaceAll()}};_66.zoom=new function(){var _97=100;this.getLatest=function(){return _97};if(ua.zoomSupport&&ua.opera){var _98=document.createElement("div");_98.style.position="fixed";_98.style.left="-65536px";_98.style.top="0";_98.style.height="100%";_98.style.width="1px";_98.style.zIndex="-32";document.documentElement.appendChild(_98);function updateZoom(){if(!_98){return}var _99=window.innerHeight/_98.offsetHeight;var _9a=Math.round(_99*100)%10;if(_9a>5){_99=Math.round(_99*100)+10-_9a}else{_99=Math.round(_99*100)-_9a}_97=isNaN(_99)?100:_99;_66.synchronizer.unblock();document.documentElement.removeChild(_98);_98=null}_66.synchronizer.block();setTimeout(updateZoom,54)}};this.hacks=_66;var _9b={kwargs:[],replaceAll:function(){for(var i=0;i<this.kwargs.length;i++){_3b.replace(this.kwargs[i])}this.kwargs=[]}};var _96={kwargs:[],replaceAll:_9b.replaceAll};function isValidDomain(){if(_3b.domains.length==0){return true}var _9d="";try{_9d=document.domain}catch(e){}if(_3b.fromLocal&&sIFR.domains[0]!="localhost"){sIFR.domains.unshift("localhost")}for(var i=0;i<_3b.domains.length;i++){var _9f=_3b.domains[i];if(_9f=="*"||_9f==_9d){return true}var _a0=_9f.lastIndexOf("*");if(_a0>-1){_9f=_9f.substr(_a0+1);var _a1=_9d.lastIndexOf(_9f);if(_a1>-1&&(_a1+_9f.length)==_9d.length){return true}}}return false}this.activate=function(){if(!ua.supported||!this.isEnabled||this.isActive||!isValidDomain()){return}if(arguments.length>0){this.prefetch.apply(this,arguments)}this.isActive=true;if(this.hideElements){this.setFlashClass()}if(ua.ieWin&&_66.fragmentIdentifier.fix&&window.location.hash!=""){_66.fragmentIdentifier.cache()}else{_66.fragmentIdentifier.fix=false}if(!this.registerEvents){return}function handler(evt){_3b.initialize();if(evt&&evt.type=="load"){if(document.removeEventListener){document.removeEventListener("DOMContentLoaded",handler,false)}if(window.removeEventListener){window.removeEventListener("load",handler,false)}}}if(window.addEventListener){if(_3b.useDomContentLoaded&&ua.gecko){document.addEventListener("DOMContentLoaded",handler,false)}window.addEventListener("load",handler,false)}else{if(ua.ieWin){if(_3b.useDomContentLoaded){document.write("<scr"+"ipt id=__sifr_ie_onload defer src=//:></script>");document.getElementById("__sifr_ie_onload").onreadystatechange=function(){if(this.readyState=="complete"){handler();this.removeNode()}}}window.attachEvent("onload",handler)}}};this.setFlashClass=function(){if(this.hasFlashClassSet){return}dom.addClass(_3c,dom.getBody()||document.documentElement);this.hasFlashClassSet=true};this.removeFlashClass=function(){if(!this.hasFlashClassSet){return}dom.removeClass(_3c,dom.getBody());dom.removeClass(_3c,document.documentElement);this.hasFlashClassSet=false};this.initialize=function(){if(_4c||!this.isActive||!this.isEnabled){return}_4c=true;_9b.replaceAll();clearPrefetch()};function getSource(src){if(typeof (src)!="string"){if(src.src){src=src.src}if(typeof (src)!="string"){var _a4=[];for(var _a5 in src){if(src[_a5]!=Object.prototype[_a5]){_a4.push(_a5)}}_a4.sort().reverse();var _a6="";var i=-1;while(!_a6&&++i<_a4.length){if(parseFloat(_a4[i])<=ua.flashVersion){_a6=src[_a4[i]]}}src=_a6}}if(!src&&_3b.debugMode){throw new Error("sIFR: Could not determine appropriate source")}if(ua.ie&&src.charAt(0)=="/"){src=window.location.toString().replace(/([^:]+)(:\/?\/?)([^\/]+).*/,"$1$2$3")+src}return src}this.prefetch=function(){if(!ua.requiresPrefetch||!ua.supported||!this.isEnabled||!isValidDomain()){return}if(this.setPrefetchCookie&&new RegExp(";?"+_47+"=true;?").test(document.cookie)){return}try{_4b=true;if(ua.ieWin){prefetchIexplore(arguments)}else{prefetchLight(arguments)}if(this.setPrefetchCookie){document.cookie=_47+"=true;path="+this.cookiePath}}catch(e){if(_3b.debugMode){throw e}}};function prefetchIexplore(_a8){for(var i=0;i<_a8.length;i++){document.write("<script defer type=\"sifr/prefetch\" src=\""+getSource(_a8[i])+"\"></script>")}}function prefetchLight(_aa){for(var i=0;i<_aa.length;i++){new Image().src=getSource(_aa[i])}}function clearPrefetch(){if(!ua.ieWin||!_4b){return}try{var _ac=document.getElementsByTagName("script");for(var i=_ac.length-1;i>=0;i--){var _ae=_ac[i];if(_ae.type=="sifr/prefetch"){_ae.parentNode.removeChild(_ae)}}}catch(e){}}function getRatio(_af,_b0){for(var i=0;i<_b0.length;i+=2){if(_af<=_b0[i]){return _b0[i+1]}}return _b0[_b0.length-1]}function getFilters(obj){var _b3=[];for(var _b4 in obj){if(obj[_b4]==Object.prototype[_b4]){continue}var _b5=obj[_b4];_b4=[_b4.replace(/filter/i,"")+"Filter"];for(var _b6 in _b5){if(_b5[_b6]==Object.prototype[_b6]){continue}_b4.push(_b6+":"+escape(_72.toJson(_72.toHexString(_b5[_b6]))))}_b3.push(_b4.join(","))}return _b3.join(";")}function calculate(_b7){var _b8,_b9;if(!ua.ie){_b8=dom.getStyleAsInt(_b7,"lineHeight");_b9=Math.floor(dom.getStyleAsInt(_b7,"height")/_b8)}else{if(ua.ie){var _ba=_b7.innerHTML;_b7.style.visibility="visible";_b7.style.overflow="visible";_b7.style.position="static";_b7.style.zoom="normal";_b7.style.writingMode="lr-tb";_b7.style.width=_b7.style.height="auto";_b7.style.maxWidth=_b7.style.maxHeight=_b7.style.styleFloat="none";var _bb=_b7;var _bc=_b7.currentStyle.hasLayout;if(_bc){dom.setInnerHtml(_b7,"<div class=\""+_43+"\">X<br />X<br />X</div>");_bb=_b7.firstChild}else{dom.setInnerHtml(_b7,"X<br />X<br />X")}var _bd=_bb.getClientRects();_b8=_bd[1].bottom-_bd[1].top;_b8=Math.ceil(_b8*0.8);if(_bc){dom.setInnerHtml(_b7,"<div class=\""+_43+"\">"+_ba+"</div>");_bb=_b7.firstChild}else{dom.setInnerHtml(_b7,_ba)}_bd=_bb.getClientRects();_b9=_bd.length;if(_bc){dom.setInnerHtml(_b7,_ba)}_b7.style.visibility=_b7.style.width=_b7.style.height=_b7.style.maxWidth=_b7.style.maxHeight=_b7.style.overflow=_b7.style.styleFloat=_b7.style.position=_b7.style.zoom=_b7.style.writingMode=""}}return {lineHeight:_b8,lines:_b9}}this.replace=function(_be,_bf){if(!ua.supported){return}if(_bf){for(var _c0 in _be){if(typeof (_bf[_c0])=="undefined"){_bf[_c0]=_be[_c0]}}_be=_bf}if(!_4c){return _9b.kwargs.push(_be)}if(_66.synchronizer.isBlocked){return _96.kwargs.push(_be)}var _c1=_be.elements;if(!_c1&&parseSelector){_c1=parseSelector(_be.selector)}if(_c1.length==0){return}this.setFlashClass();var src=getSource(_be.src);var css=_72.convertCssArg(_be.css);var _c4=getFilters(_be.filters);var _c5=(_be.forceClear==null)?_3b.forceClear:_be.forceClear;var _c6=(_be.fitExactly==null)?_3b.fitExactly:_be.fitExactly;var _c7=_c6||(_be.forceWidth==null?_3b.forceWidth:_be.forceWidth);var _c8=parseInt(_72.extractFromCss(css,".sIFR-root","leading"))||0;var _c9=_72.extractFromCss(css,".sIFR-root","font-size",true)||0;var _ca=_72.extractFromCss(css,".sIFR-root","background-color",true)||"#FFFFFF";var _cb=_72.extractFromCss(css,".sIFR-root","kerning",true)||"";var _cc=_be.gridFitType||_72.extractFromCss(css,".sIFR-root","text-align")=="right"?"subpixel":"pixel";var _cd=_3b.forceTextTransform?_72.extractFromCss(css,".sIFR-root","text-transform",true)||"none":"none";var _ce=_72.extractFromCss(css,".sIFR-root","opacity",true)||"100";var _cf=_be.pixelFont||false;var _d0=_be.ratios||_48;if(parseInt(_c9).toString()!=_c9&&_c9.indexOf("px")==-1){_c9=0}else{_c9=parseInt(_c9)}if(parseFloat(_ce)<1){_ce=100*parseFloat(_ce)}var _d1=null;var _d2="";if(_c6){_72.extractFromCss(css,".sIFR-root","text-align",true)}if(!_be.modifyCss){_d2=_72.cssToString(css);_d1=_3b.fixHover&&_d2.indexOf("%3Ahover")>-1}var _d3=!ua.opera&&_3b.delayCss;var _d4=_be.wmode||"";if(!_d4){if(_be.transparent){_d4="transparent"}else{if(_be.opaque){_d4="opaque"}}}if(_d4=="transparent"){if(!ua.transparencySupport){_d4="opaque"}else{_ca="transparent"}}for(var i=0;i<_c1.length;i++){var _d6=_c1[i];if(!ua.verifiedKonqueror){if(dom.getComputedStyle(_d6,"lineHeight").match(/e\+08px/)){ua.supported=_3b.isEnabled=false;this.removeFlashClass();return}ua.verifiedKonqueror=true}if(dom.hasOneOfClassses([_3d,_3e,_40,_41],_d6)){continue}var _d7=_d6.offsetHeight;var _d8=_d6.offsetWidth;var _d9=dom.getComputedStyle(_d6,"display");if(!_d7||!_d8||_d9==null||_d9=="none"){continue}if(_c5&&ua.gecko){_d6.style.clear="both"}var _da=null;if(_3b.fixWrap&&ua.ie&&_d9=="block"){_da=_d6.innerHTML;dom.setInnerHtml(_d6,"X")}_d8=dom.getStyleAsInt(_d6,"width",ua.ie);if(_d8==0){var _db=dom.getStyleAsInt(_d6,"paddingRight",true);var _dc=dom.getStyleAsInt(_d6,"paddingLeft",true);var _dd=dom.getStyleAsInt(_d6,"borderRightWidth",true);var _de=dom.getStyleAsInt(_d6,"borderLeftWidth",true);_d8=_d6.offsetWidth-_dc-_db-_de-_dd}if(_da&&_3b.fixWrap&&ua.ie){dom.setInnerHtml(_d6,_da)}var _df,_e0;if(!_c9){var _e1=calculate(_d6);_df=Math.min(_45,Math.max(_44,_e1.lineHeight));if(_cf){_df=Math.max(8,8*Math.round(_df/8))}_e0=_e1.lines;if(isNaN(_e0)||!isFinite(_e0)||_e0==0){_e0=1}if(_e0>1&&_c8){_d7+=Math.round((_e0-1)*_c8)}}else{_df=_c9;_e0=1}_d7=Math.round(_e0*_df);if(_c5&&ua.gecko){_d6.style.clear=""}var _e2=dom.create("span");_e2.className=_41;var _e3=_d6.cloneNode(true);for(var j=0,l=_e3.childNodes.length;j<l;j++){_e2.appendChild(_e3.childNodes[j].cloneNode(true))}if(_be.modifyContent){_be.modifyContent(_e3,_be.selector)}if(_be.modifyCss){_d2=_be.modifyCss(css,_e3,_be.selector)}if(_d1==null){_d1=_3b.fixHover&&_d2.indexOf("%3Ahover")>-1}var _e6=handleContent(_e3,_cd);if(_be.modifyContentString){_e6=_be.modifyContentString(_e6,_be.selector)}if(_e6==""){continue}var _e7=["content="+_e6,"width="+_d8,"height="+_d7,"fitexactly="+(_c6?"true":""),"tunewidth="+(_be.tuneWidth||""),"tuneheight="+(_be.tuneHeight||""),"offsetleft="+(_be.offsetLeft||""),"offsettop="+(_be.offsetTop||""),"thickness="+(_be.thickness||""),"sharpness="+(_be.sharpness||""),"kerning="+_cb,"gridfittype="+_cc,"zoomsupport="+ua.zoomSupport,"flashfilters="+_c4,"opacity="+_ce,"blendmode="+(_be.blendMode||""),"size="+_df,"zoom="+dom.getZoom(),"css="+_d2,"selectable="+(_be.selectable==null?"true":_be.selectable),"lines="+_e0];var _e8=encodeURI(_e7.join("&amp;"));var _e9="sIFR_callback_"+_4a++;var _ea=new CallbackInfo(_e9,_e7,_be.onReplacement,_d1);window[_e9+"_DoFSCommand"]=(function(_eb){return function(_ec,arg){_eb.handle(_ec,arg)}})(_ea);_d7=Math.round(_e0*getRatio(_df,_d0)*_df)+_49;var _ee=_c7?_d8:"100%";var _ef;if(ua.ie){_ef=["<object classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" id=\"",_e9,"\" sifr=\"true\" width=\"",_ee,"\" height=\"",_d7,"\" class=\"",_3f,"\">","<param name=\"movie\" value=\"",src,"\"></param>","<param name=\"flashvars\" value=\"",_e8,"\"></param>","<param name=\"allowScriptAccess\" value=\"always\"></param>","<param name=\"quality\" value=\"best\"></param>","<param name=\"wmode\" value=\"",_d4,"\"></param>","<param name=\"bgcolor\" value=\"",_ca,"\"></param>","<param name=\"name\" value=\"",_e9,"\"></param>","</object>","<scr","ipt event=FSCommand(info,args) for=",_e9,">",_e9,"_DoFSCommand(info, args);","</","script>"].join("")}else{_ef=["<embed type=\"application/x-shockwave-flash\"",(_d3?" class=\""+_3f+"\"":"")," src=\"",src,"\" quality=\"best\" flashvars=\"",_e8,"\" width=\"",_ee,"\" height=\"",_d7,"\" wmode=\"",_d4,"\" bgcolor=\"",_ca,"\" name=\"",_e9,"\" id=\"",_e9,"\" allowScriptAccess=\"always\" sifr=\"true\"></embed>"].join("")}dom.setInnerHtml(_d6,_ef);_ea.flashNode=_d6.firstChild;_ea.html=_ef;_3b.callbacks.push(_ea);if(_be.selector){if(!_3b.callbacks[_be.selector]){_3b.callbacks[_be.selector]=[_ea]}else{_3b.callbacks[_be.selector].push(_ea)}}_d6.appendChild(_e2);dom.addClass(_d3?_3e:_3d,_d6);_ea.setupFixHover()}_66.fragmentIdentifier.restore()};this.getCallbackByFlashElement=function(_f0){for(var i=0;i<_3b.callbacks.length;i++){if(_3b.callbacks[i].id==_f0.getAttribute("id")){return _3b.callbacks[i]}}};function handleContent(_f2,_f3){var _f4=[],_f5=[];var _f6=_f2.childNodes;var i=0;while(i<_f6.length){var _f8=_f6[i];if(_f8.nodeType==3){var _f9=_72.normalize(_f8.nodeValue);_f9=_72.textTransform(_f3,_f9);_f5.push(_f9.replace(/\%/g,"%25").replace(/\&/g,"%26").replace(/\,/g,"%2C").replace(/\+/g,"%2B"))}if(_f8.nodeType==1){var _fa=[];var _fb=_f8.nodeName.toLowerCase();var _fc=_f8.className||"";if(/\s+/.test(_fc)){if(_fc.indexOf(_42)>-1){_fc=_fc.match("(\\s|^)"+_42+"-([^\\s$]*)(\\s|$)")[2]}else{_fc=_fc.match(/^([^\s]+)/)[1]}}if(_fc!=""){_fa.push("class=\""+_fc+"\"")}if(_fb=="a"){var _fd=_f8.getAttribute("href")||"";var _fe=_f8.getAttribute("target")||"";_fa.push("href=\""+_fd+"\"","target=\""+_fe+"\"")}_f5.push("<"+_fb+(_fa.length>0?" ":"")+escape(_fa.join(" "))+">");if(_f8.hasChildNodes()){_f4.push(i);i=0;_f6=_f8.childNodes;continue}else{if(!/^(br|img)$/i.test(_f8.nodeName)){_f5.push("</",_f8.nodeName.toLowerCase(),">")}}}if(_f4.length>0&&!_f8.nextSibling){do{i=_f4.pop();_f6=_f8.parentNode.parentNode.childNodes;_f8=_f6[i];if(_f8){_f5.push("</",_f8.nodeName.toLowerCase(),">")}}while(i==_f6.length-1&&_f4.length>0)}i++}return _f5.join("").replace(/\n|\r/g,"")}function CallbackInfo(id,vars,_101,_102){this.id=id;this.vars=vars;this._replacementHandler=_101;this._firedReplacementEvent=!(this._replacementHandler!=null);this._fixHover=_102;this._setClasses=!_3b.delayCss;this.html="";this._pings=0}CallbackInfo.prototype.getFlashElement=function(){return document.getElementById(this.id)};CallbackInfo.prototype.handle=function(info,arg){if(/(FSCommand\:)?resize/.test(info)){var _105=this.getFlashElement();var $=arg.split(/\:|,/);_105.setAttribute($[0],$[1]);if($.length>2){_105.setAttribute($[2],$[3])}if(!this._setClasses){if(!ua.ie&&!ua.opera){dom.addClass(_3f,_105)}dom.removeClass(_3e,_105.parentNode);dom.addClass(_3d,_105.parentNode);this._setClasses=true}if(ua.khtml){var _107=_105.offsetHeight}if(!this._firedReplacementEvent){this._replacementHandler(this);this._firedReplacementEvent=true}}else{if(/(FSCommand\:)?resetmovie/.test(info)){this.resetMovie()}else{if(/(FSCommand\:)?ping/.test(info)){if(this._pings>0){this.setupFixHover()}this._pings++}else{if(this.debugHandler&&/(FSCommand\:)?debug/.test(info)){this.debugHandler(info,arg)}}}}};CallbackInfo.prototype.call=function(type,_109){var _10a=this.getFlashElement();if(!_10a){return}_10a.SetVariable("callbackType",type);_10a.SetVariable("callbackValue",_109);_10a.SetVariable("callbackTrigger",true)};CallbackInfo.prototype.replaceText=function(_10b){_10b=escape(_10b);this.call("replacetext",_10b);this.vars[0]="content="+_10b;this.html=this.html.replace(/(flashvars(=|\"\svalue=)\")[^\"]+/,"$1"+encodeURI(this.vars.join("&amp;")))};CallbackInfo.prototype.resetMovie=function(){var _10c=this.getFlashElement();var node=_10c.parentNode;node.replaceChild(dom.nodeFromHtml(this.html),_10c);this.setupFixHover()};CallbackInfo.prototype.setupFixHover=function(){var _10e=this.getFlashElement();if(!this._fixHover||!_10e){return}var node=_10e.parentNode;if(node.addEventListener){node.addEventListener("mouseout",_72.bind(this,"fixHover"),false)}else{if(node.attachEvent){node.attachEvent("onmouseout",_72.bind(this,"fixHover"))}}};CallbackInfo.prototype.fixHover=function(){this.call("resettext")}}; \ No newline at end of file
diff --git a/simplepie/demo/for_the_demo/simplepie.css b/simplepie/demo/for_the_demo/simplepie.css
new file mode 100644
index 000000000..3753cb96d
--- /dev/null
+++ b/simplepie/demo/for_the_demo/simplepie.css
@@ -0,0 +1,397 @@
+/*
+Theme Name: SimplePie
+Theme URI: http://simplepie.org
+Description: A simple, yet beautiful theme inspired by several cleanly designed websites.
+Version: 1.4
+Author: Ryan Parman
+Author URI: http://skyzyx.com
+Updated: 21 June 2007
+*/
+
+
+/*********************************************
+HYPERLINK STYLES
+*********************************************/
+a {
+ color:#369;
+ text-decoration:underline;
+ padding:0 1px;
+}
+
+a:hover {
+ color:#fff !important;
+ background-color:#333;
+ text-decoration:none;
+ padding:0 1px;
+}
+
+a.nohover {
+ text-decoration:none;
+ border:none;
+}
+
+a.nohover:hover {
+ background-color:transparent;
+ border:none;
+}
+
+a.namelink {
+ padding:0;
+ margin:0;
+ overflow:hidden;
+ height:1px;
+}
+
+h4 a,
+.sample_feeds a {
+ color:#000;
+}
+
+
+/*********************************************
+GENERAL STYLES
+*********************************************/
+body {
+ /*font:12px/18px Verdana, sans-serif;*/
+ font:14px/1.5em "Lucida Grande", Tahoma, sans-serif;
+ letter-spacing:0px;
+ color:#333;
+ background-color:#fff;
+ margin:0;
+ padding:0;
+}
+
+div#site {
+ width:600px;
+ margin:50px auto 0 auto;
+}
+
+h1#logo {
+ margin:0;
+ padding:0;
+ text-align:center;
+}
+
+h1#logo a,
+h1#logo a:hover {
+ background-color:transparent;
+ text-decoration:none;
+ padding:0;
+}
+
+h2.image {
+ margin:0;
+ padding:0;
+ text-align:center;
+}
+
+h3 {
+ margin:20px 0 0 0;
+ padding:0;
+ font-size:1.5em;
+}
+
+h4 {
+ margin:20px 0 0 0;
+ padding:0;
+ font-size:1.2em;
+ letter-spacing:-1px;
+}
+
+h5 {
+ margin:10px 0 0 0;
+ padding:0;
+ font-size:1em;
+ font-weight:bold;
+}
+
+em {
+ font-style:normal;
+ background-color:#ffc;
+}
+
+p {
+ margin:0;
+ padding:5px 0;
+}
+
+ul, ol {
+ margin:10px 0 10px 20px;
+ padding:0 0 0 15px;
+}
+
+ul li, ol li {
+ margin:0 0 7px 0;
+ padding:0 0 0 3px;
+}
+
+form {
+ margin:0;
+ padding:0;
+}
+
+code {
+ font-size:1em;
+ background-color:#f3f3ff;
+ color:#000;
+}
+
+div#site pre {
+ background-color:#f3f3ff;
+ color:#000080;
+ border:1px dotted #000080;
+ overflow:auto;
+ padding:3px 5px;
+}
+
+blockquote {
+ font-size:1em;
+ color:#666;
+ border-left:4px solid #666;
+ margin:10px 0 10px 30px;
+ padding:0 5px 0 10px;
+ background:#f3f3f3 url(background_blockquote.png) repeat top left;
+}
+
+input, select, textarea {
+ font-size:12px;
+ line-height:1.2em;
+ padding:2px;
+}
+
+input[type=text], select, textarea {
+ background-color:#e9f5ff;
+ border:1px solid #333;
+}
+
+input[type=text]:focus, select:focus, textarea:focus {
+ background-color:#ffe;
+}
+
+.clearLeft {clear:left;}
+.clearRight {clear:right;}
+.clearBoth {clear:both;}
+.hide {display:none;}
+
+
+/*********************************************
+NAVIGATION STYLES
+*********************************************/
+div#header {
+ background:#fff url(top_gradient.gif) repeat-x top left;
+ margin:0;
+ padding:0;
+}
+
+div#header form {
+ margin:0;
+ padding:0;
+}
+
+div#header div#headerInner {
+ margin:0;
+ padding:0;
+}
+
+div#header div#headerInner div#logoContainer {}
+
+div#header div#headerInner div#logoContainerInner {
+ width:550px;
+ margin:0 auto;
+ padding:20px;
+}
+
+div#header div#headerInner div#logoContainer div#logo {
+ float:left;
+ width:200px;
+}
+
+div#header div#headerInner div#logoContainer div#logo a,
+div#header div#headerInner div#logoContainer div#logo a:hover {
+ border:none;
+ background:none;
+}
+
+div#header div#headerInner div#logoContainer div#feed {
+ float:right;
+ width:300px;
+ text-align:right;
+ padding:10px 0 0 0;
+}
+
+div#header div#headerInner div#logoContainer div#feed input.text {
+ width:60%;
+}
+
+div#header div#headerInner div#menu {
+ background:#eee url(background_menuitem_shadow.gif) repeat-x top left;
+ border-top:2px solid #ccc;
+ border-bottom:1px solid #ddd;
+ text-align:center;
+}
+
+div#header div#headerInner div#menu table {
+ width:auto;
+ margin:0 auto;
+}
+
+div#header div#headerInner div#menu ul {
+ display:block;
+ width:100%;
+ margin:0 auto;
+ padding:0;
+ font-size:12px;
+}
+
+div#header div#headerInner div#menu ul li {
+ display:block;
+ float:left;
+}
+
+div#header div#headerInner div#menu ul li a {
+ display:block;
+ margin:-2px 0 0 0;
+ padding:5px 7px 8px 7px;
+ text-decoration:none;
+ color:#666 !important;
+ background-color:transparent;
+}
+
+div#header div#headerInner div#menu ul li a:hover {
+ display:block;
+ margin:-2px 0 0 0;
+ padding:5px 7px 8px 7px;
+ text-decoration:none;
+ color:#666;
+ background:#fff url(background_menuitem_off.gif) no-repeat bottom right;
+}
+
+body#bodydemo div#header div#headerInner div#menu ul li#demo a {
+ display:block;
+ margin:-2px 0 0 0;
+ padding:5px 7px 8px 7px;
+ text-decoration:none;
+ color:#333;
+ font-weight:bold;
+ background:#fff url(background_menuitem.gif) no-repeat bottom right;
+}
+
+
+/*********************************************
+CONTENT STYLES
+*********************************************/
+div.chunk {
+ margin:20px 0 0 0;
+ padding:0 0 10px 0;
+ border-bottom:1px solid #ccc;
+}
+
+div.topchunk {
+ margin:0 !important;
+}
+
+.footnote,
+.footnote a {
+ font-size:12px;
+ line-height:1.3em;
+ color:#aaa;
+}
+
+.footnote em {
+ background-color:transparent;
+ font-style:italic;
+}
+
+.footnote code {
+ background-color:transparent;
+ font:11px/14px monospace;
+ color:#aaa;
+}
+
+p.subscribe {
+ background-color:#f3f3f3;
+ font-size:12px;
+ text-align:center;
+}
+
+p.highlight {
+ background-color:#ffc;
+ font-size:12px;
+ text-align:center;
+}
+
+p.sample_feeds {
+ font-size:12px;
+ line-height:1.2em;
+}
+
+div.sp_errors {
+ background-color:#eee;
+ padding:5px;
+ text-align:center;
+ font-size:12px;
+}
+
+.noborder {
+ border:none !important;
+}
+
+img.favicon {
+ margin:0 4px -2px 0;
+ width:16px;
+ height:16px;
+}
+
+p.favicons a,
+p.favicons a:hover {
+ border:none;
+ background-color:transparent;
+}
+
+p.favicons img {
+ border:none;
+}
+
+
+/*********************************************
+DEMO STYLES
+*********************************************/
+div#sp_input {
+ background-color:#ffc;
+ border:2px solid #f90;
+ padding:5px;
+ text-align:center;
+}
+
+div#sp_input input.text {
+ border:1px solid #999;
+ background:#e9f5ff url(feed.png) no-repeat 4px 50%;
+ width:75%;
+ padding:2px 2px 2px 28px;
+ font:18px/22px "Lucida Grande", Verdana, sans-serif;
+ font-weight:bold;
+ letter-spacing:-1px;
+}
+
+form#sp_form {
+ margin:15px 0;
+}
+
+div.focus {
+ margin:0;
+ padding:10px 20px;
+ background-color:#efe;
+}
+
+p.sample_feeds {
+ text-align:justify;
+}
+
+
+/*********************************************
+SIFR STYLES
+*********************************************/
+.sIFR-active h3.header {
+ visibility:hidden;
+ line-height:1em;
+}
diff --git a/simplepie/demo/for_the_demo/sleight.js b/simplepie/demo/for_the_demo/sleight.js
new file mode 100644
index 000000000..4b5058e9a
--- /dev/null
+++ b/simplepie/demo/for_the_demo/sleight.js
@@ -0,0 +1,31 @@
+/**********************************************************
+Sleight
+(c) 2001, Aaron Boodman
+http://www.youngpup.net
+**********************************************************/
+
+if (navigator.platform == "Win32" && navigator.appName == "Microsoft Internet Explorer" && window.attachEvent)
+{
+ document.writeln('<style type="text/css">img { visibility:hidden; } </style>');
+ window.attachEvent("onload", fnLoadPngs);
+}
+
+function fnLoadPngs()
+{
+ var rslt = navigator.appVersion.match(/MSIE (\d+\.\d+)/, '');
+ var itsAllGood = (rslt != null && Number(rslt[1]) >= 5.5);
+
+ for (var i = document.images.length - 1, img = null; (img = document.images[i]); i--)
+ {
+ if (itsAllGood && img.src.match(/\.png$/i) != null)
+ {
+ var src = img.src;
+ var div = document.createElement("DIV");
+ div.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "', sizing='scale')"
+ div.style.width = img.width + "px";
+ div.style.height = img.height + "px";
+ img.replaceNode(div);
+ }
+ img.style.visibility = "visible";
+ }
+}
diff --git a/simplepie/demo/for_the_demo/source_files/place_audio_fireworksfile.png b/simplepie/demo/for_the_demo/source_files/place_audio_fireworksfile.png
new file mode 100644
index 000000000..2bfd87d0c
--- /dev/null
+++ b/simplepie/demo/for_the_demo/source_files/place_audio_fireworksfile.png
Binary files differ
diff --git a/simplepie/demo/for_the_demo/source_files/place_video_fireworksfile.png b/simplepie/demo/for_the_demo/source_files/place_video_fireworksfile.png
new file mode 100644
index 000000000..d0629769c
--- /dev/null
+++ b/simplepie/demo/for_the_demo/source_files/place_video_fireworksfile.png
Binary files differ
diff --git a/simplepie/demo/for_the_demo/source_files/sIFR-r245/SifrStyleSheet.as b/simplepie/demo/for_the_demo/source_files/sIFR-r245/SifrStyleSheet.as
new file mode 100644
index 000000000..6a98ca552
--- /dev/null
+++ b/simplepie/demo/for_the_demo/source_files/sIFR-r245/SifrStyleSheet.as
@@ -0,0 +1,71 @@
+/*=:project
+ scalable Inman Flash Replacement (sIFR) version 3.
+
+ =:file
+ Copyright: 2006 Mark Wubben.
+ Author: Mark Wubben, <http://novemberborn.net/>
+
+ =:history
+ * IFR: Shaun Inman
+ * sIFR 1: Mike Davidson, Shaun Inman and Tomas Jogin
+ * sIFR 2: Mike Davidson, Shaun Inman, Tomas Jogin and Mark Wubben
+
+ =:license
+ This software is licensed and provided under the CC-GNU LGPL.
+ See <http://creativecommons.org/licenses/LGPL/2.1/>
+*/
+
+import TextField.StyleSheet;
+
+class SifrStyleSheet extends TextField.StyleSheet {
+ public var fontSize;
+ public var latestLeading = 0;
+
+ public function parseCSS(cssText:String) {
+ var native = new TextField.StyleSheet();
+ var parsed = native.parseCSS(cssText);
+
+ if(!parsed) return false;
+
+ var selectors = native.getStyleNames();
+ for(var i = selectors.length - 1; i >= 0; i--) {
+ var selector = selectors[i];
+ var nativeStyle = native.getStyle(selector);
+ var style = this.getStyle(selector) || nativeStyle;
+ if(style != nativeStyle) {
+ for(var property in nativeStyle) style[property] = nativeStyle[property];
+ }
+ this.setStyle(selector, style);
+ }
+
+ return true;
+ }
+
+ // Apply leading to the textFormat. Much thanks to <http://www.blog.lessrain.com/?p=98>.
+ private function applyLeading(format, leading) {
+ this.latestLeading = leading;
+
+ if(leading >= 0) {
+ format.leading = leading;
+ return format;
+ }
+
+ // Workaround for negative leading, which is ignored otherwise.
+ var newFormat = new TextFormat(null, null, null, null, null, null, null, null, null, null, null, null, leading);
+ for(var property in format) if(property != 'leading') newFormat[property] = format[property];
+
+ return newFormat;
+ }
+
+ public function transform(style) {
+ var format = super.transform(style);
+ if(style.leading) format = applyLeading(format, style.leading);
+ if(style.letterSpacing) format.letterSpacing = style.letterSpacing;
+ // Support font sizes relative to the size of .sIFR-root.
+ if(this.fontSize && style.fontSize && style.fontSize.indexOf('%')) {
+ format.size = this.fontSize * parseInt(style.fontSize) / 100;
+ }
+ format.kerning = _root.kerning == 'true' || !(_root.kerning == 'false') || sIFR.defaultKerning;
+ return format;
+ }
+} \ No newline at end of file
diff --git a/simplepie/demo/for_the_demo/source_files/sIFR-r245/_README_.txt b/simplepie/demo/for_the_demo/source_files/sIFR-r245/_README_.txt
new file mode 100644
index 000000000..2b9d32d20
--- /dev/null
+++ b/simplepie/demo/for_the_demo/source_files/sIFR-r245/_README_.txt
@@ -0,0 +1,12 @@
+This is a pre-release nightly of sIFR 3 (r245 to be exact). We (the SimplePie team) will be updating the
+sIFR code and font files from time to time as new releases of sIFR 3 are made available.
+
+In this folder you'll find a few Flash 8 files. The only one of you might want to mess with is sifr.fla.
+ * Open it up
+ * Double-click the rectangle in the middle
+ * Select all
+ * Change the font
+
+More information about sIFR 3 can be found here:
+ * http://dev.novemberborn.net/sifr3/
+ * http://wiki.novemberborn.net/sifr3/ \ No newline at end of file
diff --git a/simplepie/demo/for_the_demo/source_files/sIFR-r245/options.as b/simplepie/demo/for_the_demo/source_files/sIFR-r245/options.as
new file mode 100644
index 000000000..4d371954b
--- /dev/null
+++ b/simplepie/demo/for_the_demo/source_files/sIFR-r245/options.as
@@ -0,0 +1,12 @@
+// MTASC only parses as-files with class definitions, so here goes...
+class Options {
+ public static function apply() {
+ sIFR.fromLocal = true;
+ sIFR.domains = ['*'];
+
+ // Parsing `p.foo` might not work, see: <http://livedocs.macromedia.com/flash/mx2004/main_7_2/wwhelp/wwhimpl/common/html/wwhelp.htm?context=Flash_MX_2004&file=00001766.html>
+ // Appearantly you have to use hex color codes as well, names are not supported!
+
+ sIFR.styles.parseCSS('.foo { text-decoration: underline; }');
+ }
+}
diff --git a/simplepie/demo/for_the_demo/source_files/sIFR-r245/sIFR.as b/simplepie/demo/for_the_demo/source_files/sIFR-r245/sIFR.as
new file mode 100644
index 000000000..4902e003f
--- /dev/null
+++ b/simplepie/demo/for_the_demo/source_files/sIFR-r245/sIFR.as
@@ -0,0 +1,359 @@
+/*=:project
+ scalable Inman Flash Replacement (sIFR) version 3.
+
+ =:file
+ Copyright: 2006 Mark Wubben.
+ Author: Mark Wubben, <http://novemberborn.net/>
+
+ =:history
+ * IFR: Shaun Inman
+ * sIFR 1: Mike Davidson, Shaun Inman and Tomas Jogin
+ * sIFR 2: Mike Davidson, Shaun Inman, Tomas Jogin and Mark Wubben
+
+ =:license
+ This software is licensed and provided under the CC-GNU LGPL.
+ See <http://creativecommons.org/licenses/LGPL/2.1/>
+*/
+
+import SifrStyleSheet;
+
+class sIFR {
+ public static var DEFAULT_TEXT = 'Rendered with sIFR 3, revision 245';
+ public static var CSS_ROOT_CLASS = 'sIFR-root';
+ public static var DEFAULT_WIDTH = 300;
+ public static var DEFAULT_HEIGHT = 100;
+ public static var DEFAULT_ANTI_ALIAS_TYPE = 'advanced';
+ public static var MARGIN_LEFT = -3;
+ public static var PADDING_BOTTOM = 5; // Extra padding to make sure the movie is high enough in most cases.
+ public static var LEADING_REMAINDER = 2; // Flash uses the specified leading minus 2 as the applied leading.
+
+ public static var MAX_FONT_SIZE = 126;
+ public static var ALIASING_MAX_FONT_SIZE = 48;
+
+ //= Holds CSS properties and other rendering properties for the Flash movie.
+ // *Don't overwrite!*
+ public static var styles:SifrStyleSheet = new SifrStyleSheet();
+ //= Allow sIFR to be run from localhost
+ public static var fromLocal:Boolean = true;
+ //= Array containing domains for which sIFR may render text. Used to prevent
+ // hotlinking. Use `*` to allow all domains.
+ public static var domains:Array = [];
+ //= Whether kerning is enabled by default. This can be overriden from the client side.
+ // See also <http://livedocs.macromedia.com/flash/8/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00002811.html>.
+ public static var defaultKerning:Boolean = true;
+ //= Default value which can be overriden from the client side.
+ // See also <http://livedocs.macromedia.com/flash/8/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00002788.html>.
+ public static var defaultSharpness:Number = 0;
+ //= Default value which can be overriden from the client side.
+ // See also <http://livedocs.macromedia.com/flash/8/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00002787.html>.
+ public static var defaultThickness:Number = 0;
+ //= Default value which can be overriden from the client side.
+ // See also <http://livedocs.macromedia.com/flash/8/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00002732.html>.
+ public static var defaultOpacity:Number = -1; // Use client settings
+ //= Default value which can be overriden from the client side.
+ // See also <http://livedocs.macromedia.com/flash/8/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00002788.html>.
+ public static var defaultBlendMode:Number = -1; // Use cliest settings
+ //= Overrides the grid fit type as defined on the client side.
+ // See also <http://livedocs.macromedia.com/flash/8/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00002444.html>.
+ public static var enforcedGridFitType:String = null;
+ //= If `true` sIFR won't override the anti aliasing set in the Flash IDE when exporting.
+ // Thickness and sharpness won't be affected either.
+ public static var preserveAntiAlias:Boolean = false;
+ //= If `true` sIFR will disable anti-aliasing if the font size is larger than `ALIASING_MAX_FONT_SIZE`.
+ // This setting is *independent* from `preserveAntiAlias`.
+ public static var conditionalAntiAlias:Boolean = true;
+ //= Sets the anti alias type. By default it's `DEFAULT_ANTI_ALIAS_TYPE`.
+ // See also <http://livedocs.macromedia.com/flash/8/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00002733.html>.
+ public static var antiAliasType:String = null;
+ //= Flash filters can be added to this array and will be applied to the text field.
+ public static var filters:Array = [];
+ //= A mapping from the names of the filters to their actual objecs, used when transforming
+ // filters defined on the client. You can add additional filters here so they'll be supported
+ // when defined on the client.
+ public static var filterMap:Object = {
+ DisplacementMapFilter : flash.filters.DisplacementMapFilter,
+ ColorMatrixFilter : flash.filters.ColorMatrixFilter,
+ ConvolutionFilter : flash.filters.ConvolutionFilter,
+ GradientBevelFilter : flash.filters.GradientBevelFilter,
+ GradientGlowFilter : flash.filters.GradientGlowFilter,
+ BevelFilter : flash.filters.BevelFilter,
+ GlowFilter : flash.filters.GlowFilter,
+ BlurFilter : flash.filters.BlurFilter,
+ DropShadowFilter : flash.filters.DropShadowFilter
+ };
+
+ private static var instance;
+
+ private var textField;
+ private var content;
+ private var realHeight;
+ private var originalHeight;
+ private var currentHeight;
+ private var fontSize;
+ private var tuneWidth;
+ private var tuneHeight;
+
+
+
+ //= Sets the default styles for `sIFR.styles`. This method is called
+ // directly in `sifr.fla`, before options are applied.
+ public static function setDefaultStyles() {
+ sIFR.styles.parseCSS([
+ '.', CSS_ROOT_CLASS, ' { color: #000000; }',
+ 'strong { display: inline; font-weight: bold; } ',
+ 'em { display: inline; font-style: italic; }',
+ 'a { color: #0000FF; text-decoration: underline; }',
+ 'a:hover { color: #0000FF; text-decoration: none; }'
+ ].join(''));
+ }
+
+ //= Validates the domain sIFR is being used on.
+ // Returns `true` if the domain is valid, `false` otherwise.
+ public static function checkDomain():Boolean {
+ if(sIFR.domains.length == 0) return true;
+
+ var domain = (new LocalConnection()).domain();
+ if(sIFR.fromLocal) sIFR.domains.push('localhost');
+
+ for(var i = 0; i < sIFR.domains.length; i++) {
+ var match = sIFR.domains[i];
+ if(match == '*' || match == domain) return true;
+
+ var wildcard = match.lastIndexOf('*');
+ if(wildcard > -1) {
+ match = match.substr(wildcard + 1);
+ var matchPosition = domain.lastIndexOf(match);
+ if(matchPosition > -1 && (matchPosition + match.length) == domain.length) return true;
+ }
+ }
+
+ return false;
+ }
+
+ //= Runs sIFR. Called automatically.
+ public static function run() {
+ var holder = _root.holder;
+ var content = checkDomain() ? unescape(_root.content) : DEFAULT_TEXT
+ if(content == 'undefined' || content == '') {
+ content = DEFAULT_TEXT;
+ fscommand('resetmovie', '');
+ } else fscommand('ping', '');
+
+ // Sets stage parameters
+ Stage.scaleMode = 'noscale';
+ Stage.align = 'TL';
+ Stage.showMenu = false;
+
+ // Other parameters
+ var opacity = parseInt(_root.opacity);
+ if(!isNaN(opacity)) holder._alpha = sIFR.defaultOpacity == -1 ? opacity : sIFR.defaultOpacity;
+ else holder._alpha = 100;
+ _root.blendMode = sIFR.defaultBlendMode == -1 ? _root.blendmode : sIFR.defaultBlendMode;
+
+ sIFR.instance = new sIFR(holder.txtF, content);
+ // This should ignore resizes from the callback. Disabled for now.
+/* if(_root.zoomsupport == 'true') Stage.addListener({onResize: function() { sIFR.instance.scale() }});*/
+
+ // Setup callbacks
+ _root.watch('callbackTrigger', function() {
+ sIFR.callback();
+ return false;
+ });
+ }
+
+ private static function eval(str) {
+ var as;
+
+ if(str.charAt(0) == '{') { // Ah, we need to create an object
+ as = {};
+ str = str.substring(1, str.length - 1);
+ var $ = str.split(',');
+ for(var i = 0; i < $.length; i++) {
+ var $1 = $[i].split(':');
+ as[$1[0]] = sIFR.eval($1[1]);
+ }
+ } else if(str.charAt(0) == '"') { // String
+ as = str.substring(1, str.length - 1);
+ } else if(str == 'true' || str == 'false') { // Boolean
+ as = str == 'true';
+ } else { // Float
+ as = parseFloat(str);
+ }
+
+ return as;
+ }
+
+ private function applyFilters() {
+ var $filters = this.textField.filters;
+ $filters = $filters.concat(sIFR.filters);
+
+ var $ = _root.flashfilters.split(';'); // name,prop:value,...;
+ for(var i = 0; i < $.length; i++) {
+ var $1 = $[i].split(',');
+
+ var newFilter = new sIFR.filterMap[$1[0]]();
+ for(var j = 1; j < $1.length; j++) {
+ var $2 = $1[j].split(':');
+ newFilter[$2[0]] = sIFR.eval(unescape($2[1]));
+ }
+
+ $filters.push(newFilter);
+ }
+
+ this.textField.filters = $filters;
+ }
+
+ private function sIFR(textField, content) {
+ this.textField = textField;
+ this.content = content;
+
+ var offsetLeft = parseInt(_root.offsetleft);
+ textField._x = MARGIN_LEFT + (isNaN(offsetLeft) ? 0 : offsetLeft);
+ var offsetTop = parseInt(_root.offsettop);
+ if(!isNaN(offsetTop)) textField._y += offsetTop;
+
+ tuneWidth = parseInt(_root.tunewidth);
+ if(isNaN(tuneWidth)) tuneWidth = 0;
+ tuneHeight = parseInt(_root.tuneheight);
+ if(isNaN(tuneHeight)) tuneHeight = 0;
+
+ textField._width = tuneWidth + (isNaN(parseInt(_root.width)) ? DEFAULT_WIDTH : parseInt(_root.width));
+ textField._height = tuneHeight + (isNaN(parseInt(_root.height)) ? DEFAULT_HEIGHT : parseInt(_root.height));
+ textField.wordWrap = true;
+ textField.selectable = _root.selectable == 'true';
+ textField.gridFitType = sIFR.enforcedGridFitType || _root.gridfittype;
+ this.applyFilters();
+
+ // Determine font-size and the number of lines
+ this.fontSize = parseInt(_root.size);
+ if(isNaN(this.fontSize)) this.fontSize = 26;
+ styles.fontSize = this.fontSize;
+
+ if(!sIFR.preserveAntiAlias && (sIFR.conditionalAntiAlias && this.fontSize < ALIASING_MAX_FONT_SIZE
+ || !sIFR.conditionalAntiAlias)) {
+ textField.antiAliasType = sIFR.antiAliasType || DEFAULT_ANTI_ALIAS_TYPE;
+ }
+
+ if(!sIFR.preserveAntiAlias || !isNaN(parseInt(_root.sharpness))) {
+ textField.sharpness = parseInt(_root.sharpness);
+ }
+ if(isNaN(textField.sharpness)) textField.sharpness = sIFR.defaultSharpness;
+
+ if(!sIFR.preserveAntiAlias || !isNaN(parseInt(_root.thickness))) {
+ textField.thickness = parseInt(_root.thickness);
+ }
+ if(isNaN(textField.thickness)) textField.thickness = sIFR.defaultThickness;
+
+ // Set font-size and other styles
+ sIFR.styles.parseCSS(unescape(_root.css));
+
+ var rootStyle = styles.getStyle('.sIFR-root') || {};
+ rootStyle.fontSize = this.fontSize; // won't go higher than 126!
+ styles.setStyle('.sIFR-root', rootStyle);
+ textField.styleSheet = styles;
+
+ this.write(content);
+ this.repaint();
+ }
+
+ private function repaint() {
+ var leadingFix = this.isSingleLine() ? sIFR.styles.latestLeading : 0;
+ if(leadingFix > 0) leadingFix -= LEADING_REMAINDER;
+
+ // Flash wants to scroll the movie by one line, by adding the fontSize to the
+ // textField height this is no longer happens. We also add the absolute tuneHeight,
+ // to prevent a negative value from triggering the bug. We won't send the fake
+ // value to the JavaScript side, though.
+ textField._height = textField.textHeight + PADDING_BOTTOM + this.fontSize + Math.abs(tuneHeight) + tuneHeight - leadingFix;
+ this.realHeight = textField._height - this.fontSize - Math.abs(tuneHeight);
+ var arg = 'height:' + this.realHeight;
+ if(_root.fitexactly == 'true') arg += ',width:' + (textField.textWidth + tuneWidth);
+ fscommand('resize', arg);
+
+ this.originalHeight = textField._height;
+ this.currentHeight = Stage.height;
+
+ textField._xscale = textField._yscale = parseInt(_root.zoom);
+ }
+
+ private function write(content) {
+ this.textField.htmlText = ['<p class="', CSS_ROOT_CLASS, '">',
+ content, '</p>'
+ ].join('');
+ }
+
+ private function isSingleLine() {
+ return Math.round((this.textField.textHeight - sIFR.styles.latestLeading) / this.fontSize) == 1;
+ }
+
+ //= Scales the text field to the new scale of the Flash movie itself.
+ public function scale() {
+ this.currentHeight = Stage.height;
+ var scale = 100 * Math.round(this.currentHeight / this.originalHeight);
+ textField._xscale = textField._yscale = scale;
+ }
+
+ private function calculateRatios() {
+ var strings = ['X', 'X<br>X', 'X<br>X<br>X', 'X<br>X<br>X<br>X'];
+ var results = {};
+
+ for(var i = 1; i <= strings.length; i++) {
+ var size = 6;
+
+ this.write(strings[i - 1]);
+ while(size < MAX_FONT_SIZE) {
+ var rootStyle = sIFR.styles.getStyle('.sIFR-root') || {};
+ rootStyle.fontSize = size;
+ sIFR.styles.setStyle('.sIFR-root', rootStyle);
+ this.textField.styleSheet = sIFR.styles;
+ this.repaint();
+ var ratio = (this.realHeight - PADDING_BOTTOM) / i / size;
+ if(!results[size]) results[size] = ratio;
+ else results[size] = ((i - 1) * results[size] + ratio) / i;
+ size++;
+ }
+ }
+
+ var sizes = [], ratios = [];
+ var ratiosToSizes = {}, sizesToRatios = {};
+
+ for(var size in results) {
+ if(results[size] == Object.prototype[size]) continue;
+ var ratio = results[size];
+ ratiosToSizes[ratio] = Math.max(ratio, parseInt(size));
+ }
+
+ for(var ratio in ratiosToSizes) {
+ if(ratiosToSizes[ratio] == Object.prototype[ratio]) continue;
+ sizesToRatios[ratiosToSizes[ratio]] = roundDecimals(ratio, 2);
+ sizes.push(ratiosToSizes[ratio]);
+ }
+
+ sizes.sort(function(a, b) { return a - b; });
+ for(var j = 0; j < sizes.length - 1; j++) ratios.push(sizes[j], sizesToRatios[sizes[j]]);
+ ratios.push(sizesToRatios[sizes[sizes.length - 1]]);
+
+ fscommand('debug:ratios', '[' + ratios.join(',') + ']');
+ }
+
+ private function roundDecimals(value, decimals) {
+ return Math.round(value * Math.pow(10, decimals)) / Math.pow(10, decimals);
+ }
+
+ public static function callback() {
+ switch(_root.callbackType) {
+ case 'replacetext':
+ sIFR.instance.content = _root.callbackValue;
+ sIFR.instance.write(_root.callbackValue);
+ sIFR.instance.repaint();
+ break;
+ case 'resettext':
+ sIFR.instance.write('');
+ sIFR.instance.write(sIFR.instance.content);
+ break;
+ case 'ratios':
+ sIFR.instance.calculateRatios();
+ break;
+ }
+ }
+}
diff --git a/simplepie/demo/for_the_demo/source_files/sIFR-r245/sifr.fla b/simplepie/demo/for_the_demo/source_files/sIFR-r245/sifr.fla
new file mode 100644
index 000000000..2aa3f647f
--- /dev/null
+++ b/simplepie/demo/for_the_demo/source_files/sIFR-r245/sifr.fla
Binary files differ
diff --git a/simplepie/demo/for_the_demo/top_gradient.gif b/simplepie/demo/for_the_demo/top_gradient.gif
new file mode 100644
index 000000000..f77bd38f9
--- /dev/null
+++ b/simplepie/demo/for_the_demo/top_gradient.gif
Binary files differ
diff --git a/simplepie/demo/for_the_demo/verdana.swf b/simplepie/demo/for_the_demo/verdana.swf
new file mode 100644
index 000000000..baf035047
--- /dev/null
+++ b/simplepie/demo/for_the_demo/verdana.swf
Binary files differ
diff --git a/simplepie/demo/for_the_demo/yanone-kaffeesatz-bold.swf b/simplepie/demo/for_the_demo/yanone-kaffeesatz-bold.swf
new file mode 100644
index 000000000..c812a79dc
--- /dev/null
+++ b/simplepie/demo/for_the_demo/yanone-kaffeesatz-bold.swf
Binary files differ
diff --git a/simplepie/demo/handler_image.php b/simplepie/demo/handler_image.php
new file mode 100644
index 000000000..49c3ec89b
--- /dev/null
+++ b/simplepie/demo/handler_image.php
@@ -0,0 +1,6 @@
+<?php
+// This should be modifed as your own use warrants.
+
+require_once('../simplepie.inc');
+SimplePie_Misc::display_cached_file($_GET['i'], './cache', 'spi');
+?>
diff --git a/simplepie/demo/index.php b/simplepie/demo/index.php
new file mode 100644
index 000000000..1481ba917
--- /dev/null
+++ b/simplepie/demo/index.php
@@ -0,0 +1,295 @@
+<?php
+// Start counting time for the page load
+$starttime = explode(' ', microtime());
+$starttime = $starttime[1] + $starttime[0];
+
+// Include SimplePie
+// Located in the parent directory
+include_once('../simplepie.inc');
+include_once('../idn/idna_convert.class.php');
+
+// Create a new instance of the SimplePie object
+$feed = new SimplePie();
+
+//$feed->force_fsockopen(true);
+
+// Make sure that page is getting passed a URL
+if (isset($_GET['feed']) && $_GET['feed'] !== '')
+{
+ // Strip slashes if magic quotes is enabled (which automatically escapes certain characters)
+ if (function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc())
+ {
+ $_GET['feed'] = stripslashes($_GET['feed']);
+ }
+
+ // Use the URL that was passed to the page in SimplePie
+ $feed->set_feed_url($_GET['feed']);
+
+ // XML dump
+ $feed->enable_xml_dump(isset($_GET['xmldump']) ? true : false);
+}
+
+// Allow us to change the input encoding from the URL string if we want to. (optional)
+if (!empty($_GET['input']))
+{
+ $feed->set_input_encoding($_GET['input']);
+}
+
+// Allow us to choose to not re-order the items by date. (optional)
+if (!empty($_GET['orderbydate']) && $_GET['orderbydate'] == 'false')
+{
+ $feed->enable_order_by_date(false);
+}
+
+// Allow us to cache images in feeds. This will also bypass any hotlink blocking put in place by the website.
+if (!empty($_GET['image']) && $_GET['image'] == 'true')
+{
+ $feed->set_image_handler('./handler_image.php');
+}
+
+// We'll enable the discovering and caching of favicons.
+$feed->set_favicon_handler('./handler_image.php');
+
+// Initialize the whole SimplePie object. Read the feed, process it, parse it, cache it, and
+// all that other good stuff. The feed's information will not be available to SimplePie before
+// this is called.
+$success = $feed->init();
+
+// We'll make sure that the right content type and character encoding gets set automatically.
+// This function will grab the proper character encoding, as well as set the content type to text/html.
+$feed->handle_content_type();
+
+// When we end our PHP block, we want to make sure our DOCTYPE is on the top line to make
+// sure that the browser snaps into Standards Mode.
+?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
+<head>
+<title>SimplePie: Demo</title>
+
+<link rel="stylesheet" href="./for_the_demo/sIFR-screen.css" type="text/css" media="screen">
+<link rel="stylesheet" href="./for_the_demo/sIFR-print.css" type="text/css" media="print">
+<link rel="stylesheet" href="./for_the_demo/simplepie.css" type="text/css" media="screen, projector" />
+
+<script type="text/javascript" src="./for_the_demo/sifr.js"></script>
+<script type="text/javascript" src="./for_the_demo/sifr-config.js"></script>
+<script type="text/javascript" src="./for_the_demo/sleight.js"></script>
+
+</head>
+
+<body id="bodydemo">
+
+<div id="header">
+ <div id="headerInner">
+ <div id="logoContainer">
+ <div id="logoContainerInner">
+ <div align="center"><a href="http://simplepie.org"><img src="./for_the_demo/logo_simplepie_demo.png" alt="SimplePie Demo: PHP-based RSS and Atom feed handling" title="SimplePie Demo: PHP-based RSS and Atom feed handling" border="0" /></a></div>
+ <div class="clearLeft"></div>
+ </div>
+
+ </div>
+ <div id="menu">
+ <!-- I know, I know, I know... tables for layout, I know. If a web standards evangelist (like me) has to resort
+ to using tables for something, it's because no other possible solution could be found. This issue? No way to
+ do centered floats purely with CSS. The table box model allows for a dynamic width while centered, while the
+ CSS box model for DIVs doesn't allow for it. :( -->
+ <table cellpadding="0" cellspacing="0" border="0"><tbody><tr><td>
+<ul><li id="demo"><a href="./">SimplePie Demo</a></li><li><a href="http://simplepie.org/wiki/faq/start">FAQ/Troubleshooting</a></li><li><a href="http://simplepie.org/support/">Support Forums</a></li><li><a href="http://simplepie.org/wiki/reference/start">API Reference</a></li><li><a href="http://simplepie.org/blog/">Weblog</a></li><li><a href="../test/test.php">Unit Tests</a></li></ul>
+
+ <div class="clearLeft"></div>
+ </td></tr></tbody></table>
+ </div>
+ </div>
+</div>
+
+<div id="site">
+
+ <div id="content">
+
+ <div class="chunk">
+ <form action="" method="get" name="sp_form" id="sp_form">
+ <div id="sp_input">
+
+
+ <!-- If a feed has already been passed through the form, then make sure that the URL remains in the form field. -->
+ <p><input type="text" name="feed" value="<?php if ($feed->subscribe_url()) echo $feed->subscribe_url(); ?>" class="text" id="feed_input" />&nbsp;<input type="submit" value="Read" class="button" /></p>
+
+
+ </div>
+ </form>
+
+
+ <?php
+ // Check to see if there are more than zero errors (i.e. if there are any errors at all)
+ if ($feed->error())
+ {
+ // If so, start a <div> element with a classname so we can style it.
+ echo '<div class="sp_errors">' . "\r\n";
+
+ // ... and display it.
+ echo '<p>' . htmlspecialchars($feed->error()) . "</p>\r\n";
+
+ // Close the <div> element we opened.
+ echo '</div>' . "\r\n";
+ }
+ ?>
+
+ <!-- Here are some sample feeds. -->
+ <p class="sample_feeds"><strong>Or try one of the following:</strong>
+ <a href="?feed=http://www.詹姆斯.com/atomtests/iri/everything.atom" title="Test: International Domain Name support">詹姆斯.com</a>,
+ <a href="?feed=http://www.adultswim.com/williams/podcast/tools/xml/video_rss.xml" title="Humor from the people who make [adult swim] cartoons.">adult swim</a>,
+ <a href="?feed=http://afterdawn.com/news/afterdawn_rss.xml" title="Ripping, Burning, DRM, and the Dark Side of Consumer Electronics Media">Afterdawn</a>,
+ <a href="?feed=http://feeds.feedburner.com/ajaxian" title="AJAX and Scripting News">Ajaxian</a>,
+ <a href="?feed=http://www.andybudd.com/index.rdf&amp;image=true" title="Test: Bypass Image Hotlink Blocking">Andy Budd</a>,
+ <a href="?feed=http://feeds.feedburner.com/AskANinja" title="Test: Embedded Enclosures">Ask a Ninja</a>,
+ <a href="?feed=http://www.atomenabled.org/atom.xml" title="Test: Atom 1.0 Support">AtomEnabled.org</a>,
+ <a href="?feed=http://newsrss.bbc.co.uk/rss/newsonline_world_edition/front_page/rss.xml" title="World News">BBC News</a>,
+ <a href="?feed=http://newsrss.bbc.co.uk/rss/arabic/news/rss.xml" title="Test: Windows-1256 Encoding">BBC Arabic</a>,
+ <a href="?feed=http://newsrss.bbc.co.uk/rss/chinese/simp/news/rss.xml" title="Test: GB2312 Encoding">BBC China</a>,
+ <a href="?feed=http://newsrss.bbc.co.uk/rss/russian/news/rss.xml" title="Test: Windows-1251 Encoding">BBC Russia</a>,
+ <a href="?feed=http://inessential.com/xml/rss.xml" title="Developer of NetNewsWire">Brent Simmons</a>,
+ <a href="?feed=http://www.channelfrederator.com/rss" title="Test: Embedded Enclosures">Channel Frederator</a>,
+ <a href="?feed=http://rss.cnn.com/rss/cnn_topstories.rss" title="World News">CNN</a>,
+ <a href="?feed=http://digg.com/rss/index.xml" title="Tech news. Better than Slashdot.">Digg</a>,
+ <a href="?feed=http://revision3.com/diggnation/feed/quicktime-large" title="Tech and industry videocast.">Diggnation</a>,
+ <a href="?feed=http://www.flickr.com/services/feeds/photos_public.gne?format=rss2" title="Flickr Photos">Flickr</a>,
+ <a href="?feed=http://news.google.com/?output=rss" title="World News">Google News</a>,
+ <a href="?feed=http://video.google.com/videofeed?type=top100new&num=20&output=rss" title="Test: Media RSS Support">Google Video</a>,
+ <a href="?feed=http://blogs.law.harvard.edu/home/feed/rdf/" title="Test: Tag Stripping">Harvard Law</a>,
+ <a href="?feed=http://hagada.org.il/hagada/html/backend.php" title="Test: Window-1255 Encoding">Hebrew Language</a>,
+ <a href="?feed=http://www.infoworld.com/rss/news.xml" title="Test: Ad Stripping">InfoWorld</a>,
+ <a href="?feed=http://phobos.apple.com/WebObjects/MZStore.woa/wpa/MRSS/topsongs/limit=10/rss.xml&orderbydate=false" title="Test: Tag Stripping">iTunes</a>,
+ <a href="?feed=http://blog.japan.cnet.com/lessig/index.rdf" title="Test: EUC-JP Encoding">Japanese Language</a>,
+ <a href="?feed=http://nurapt.kaist.ac.kr/~jamaica/htmls/blog/rss.php&amp;input=EUC-KR" title="Test: EUC-KR Encoding">Korean Language</a>,
+ <a href="?feed=http://mir.aculo.us/xml/rss/feed.xml" title="Weblog for the developer of Scriptaculous">mir.aculo.us</a>,
+ <a href="?feed=http://images.apple.com/trailers/rss/newtrailers.rss" title="Apple's QuickTime movie trailer site">Movie Trailers</a>,
+ <a href="?feed=http://www.newspond.com/rss/main.xml" title="Tech and Science News">Newspond</a>,
+ <a href="?feed=http://nick.typepad.com/blog/index.rss" title="Developer of TopStyle and FeedDemon">Nick Bradbury</a>,
+ <a href="?feed=http://feeds.feedburner.com/ok-cancel" title="Usability comics and commentary">OK/Cancel</a>,
+ <a href="?feed=http://osnews.com/files/recent.rdf" title="News about every OS ever">OS News</a>,
+ <a href="?feed=http://weblog.philringnalda.com/feed/" title="Test: Atom 1.0 Support">Phil Ringnalda</a>,
+ <a href="?feed=http://kabili.libsyn.com/rss" title="Test: Improved enclosure type sniffing">Photoshop Videocast</a>,
+ <a href="?feed=http://www.pariurisportive.com/blog/xmlsrv/rss2.php?blog=2" title="Test: ISO-8859-1 Encoding">Romanian Language</a>,
+ <a href="?feed=http://www.erased.info/rss2.php" title="Test: KOI8-R Encoding">Russian Language</a>,
+ <a href="?feed=http://www.upsaid.com/isis/index.rdf" title="Test: BIG5 Encoding">Traditional Chinese Language</a>,
+ <a href="?feed=http://technorati.com/watchlists/rss.html?wid=29290" title="Technorati watch for SimplePie">Technorati</a>,
+ <a href="?feed=http://www.tbray.org/ongoing/ongoing.atom" title="Test: Atom 1.0 Support">Tim Bray</a>,
+ <a href="?feed=http://tuaw.com/rss.xml" title="Apple News">TUAW</a>,
+ <a href="?feed=http://www.tvgasm.com/atom.xml&amp;image=true" title="Test: Bypass Image Hotlink Blocking">TVgasm</a>,
+ <a href="?feed=http://uneasysilence.com/feed/" title="Interesting tech randomness">UNEASYsilence</a>,
+ <a href="?feed=http://feeds.feedburner.com/web20Show" title="Test: Embedded Enclosures">Web 2.0 Show</a>,
+ <a href="?feed=http://windowsvistablog.com/blogs/MainFeed.aspx" title="Test: Tag Stripping">Windows Vista Blog</a>,
+ <a href="?feed=http://xkcd.com/rss.xml" title="Test: LightHTTPd and GZipping">XKCD</a>,
+ <a href="?feed=http://rss.news.yahoo.com/rss/topstories" title="World News">Yahoo! News</a>,
+ <a href="?feed=http://youtube.com/rss/global/top_favorites.rss" title="Funny user-submitted videos">You Tube</a>,
+ <a href="?feed=http://zeldman.com/rss/" title="The father of the web standards movement">Zeldman</a></p>
+
+ </div>
+
+ <div id="sp_results">
+
+ <!-- As long as the feed has data to work with... -->
+ <?php if ($success): ?>
+ <div class="chunk focus" align="center">
+
+ <!-- If the feed has a link back to the site that publishes it (which 99% of them do), link the feed's title to it. -->
+ <h3 class="header"><?php if ($feed->get_link()) echo '<a href="' . $feed->get_link() . '">'; echo $feed->get_title(); if ($feed->get_link()) echo '</a>'; ?></h3>
+
+ <!-- If the feed has a description, display it. -->
+ <?php echo $feed->get_description(); ?>
+
+ </div>
+
+ <!-- Add subscribe links for several different aggregation services -->
+ <p class="subscribe"><strong>Subscribe:</strong> <a href="<?php echo $feed->subscribe_bloglines(); ?>">Bloglines</a>, <a href="<?php echo $feed->subscribe_google(); ?>">Google Reader</a>, <a href="<?php echo $feed->subscribe_msn(); ?>">My MSN</a>, <a href="<?php echo $feed->subscribe_netvibes(); ?>">Netvibes</a>, <a href="<?php echo $feed->subscribe_newsburst(); ?>">Newsburst</a><br /><a href="<?php echo $feed->subscribe_newsgator(); ?>">Newsgator</a>, <a href="<?php echo $feed->subscribe_odeo(); ?>">Odeo</a>, <a href="<?php echo $feed->subscribe_podnova(); ?>">Podnova</a>, <a href="<?php echo $feed->subscribe_rojo(); ?>">Rojo</a>, <a href="<?php echo $feed->subscribe_yahoo(); ?>">My Yahoo!</a>, <a href="<?php echo $feed->subscribe_feed(); ?>">Desktop Reader</a></p>
+
+
+ <!-- Let's begin looping through each individual news item in the feed. -->
+ <?php foreach($feed->get_items() as $item): ?>
+ <div class="chunk">
+
+ <?php
+ // Let's add a favicon for each item. If one doesn't exist, we'll use an alternate one.
+ if (!$favicon = $feed->get_favicon())
+ {
+ $favicon = './for_the_demo/favicons/alternate.png';
+ }
+ ?>
+
+ <!-- If the item has a permalink back to the original post (which 99% of them do), link the item's title to it. -->
+ <h4><img src="<?php echo $favicon; ?>" alt="Favicon" class="favicon" /><?php if ($item->get_permalink()) echo '<a href="' . $item->get_permalink() . '">'; echo $item->get_title(); if ($item->get_permalink()) echo '</a>'; ?>&nbsp;<span class="footnote"><?php echo $item->get_date('j M Y, g:i a'); ?></span></h4>
+
+ <!-- Display the item's primary content. -->
+ <?php echo $item->get_content(); ?>
+
+ <?php
+ // Check for enclosures. If an item has any, set the first one to the $enclosure variable.
+ if ($enclosure = $item->get_enclosure(0))
+ {
+ // Use the embed() method to embed the enclosure into the page inline.
+ echo '<div align="center">';
+ echo '<p>' . $enclosure->embed(array(
+ 'audio' => './for_the_demo/place_audio.png',
+ 'video' => './for_the_demo/place_video.png',
+ 'mediaplayer' => './for_the_demo/mediaplayer.swf',
+ 'altclass' => 'download'
+ )) . '</p>';
+
+ if ($enclosure->get_link() && $enclosure->get_type())
+ {
+ echo '<p class="footnote" align="center">(' . $enclosure->get_type();
+ if ($enclosure->get_size())
+ {
+ echo '; ' . $enclosure->get_size() . ' MB';
+ }
+ echo ')</p>';
+ }
+ if ($enclosure->get_thumbnail())
+ {
+ echo '<div><img src="' . $enclosure->get_thumbnail() . '" alt="" /></div>';
+ }
+ echo '</div>';
+ }
+ ?>
+
+ <!-- Add links to add this post to one of a handful of services. -->
+ <p class="footnote favicons" align="center">
+ <a href="<?php echo $item->add_to_blinklist(); ?>" title="Add post to Blinklist"><img src="./for_the_demo/favicons/blinklist.png" alt="Blinklist" /></a>
+ <a href="<?php echo $item->add_to_blogmarks(); ?>" title="Add post to Blogmarks"><img src="./for_the_demo/favicons/blogmarks.png" alt="Blogmarks" /></a>
+ <a href="<?php echo $item->add_to_delicious(); ?>" title="Add post to del.icio.us"><img src="./for_the_demo/favicons/delicious.png" alt="del.icio.us" /></a>
+ <a href="<?php echo $item->add_to_digg(); ?>" title="Digg this!"><img src="./for_the_demo/favicons/digg.png" alt="Digg" /></a>
+ <a href="<?php echo $item->add_to_magnolia(); ?>" title="Add post to Ma.gnolia"><img src="./for_the_demo/favicons/magnolia.png" alt="Ma.gnolia" /></a>
+ <a href="<?php echo $item->add_to_myweb20(); ?>" title="Add post to My Web 2.0"><img src="./for_the_demo/favicons/myweb2.png" alt="My Web 2.0" /></a>
+ <a href="<?php echo $item->add_to_newsvine(); ?>" title="Add post to Newsvine"><img src="./for_the_demo/favicons/newsvine.png" alt="Newsvine" /></a>
+ <a href="<?php echo $item->add_to_reddit(); ?>" title="Add post to Reddit"><img src="./for_the_demo/favicons/reddit.png" alt="Reddit" /></a>
+ <a href="<?php echo $item->add_to_segnalo(); ?>" title="Add post to Segnalo"><img src="./for_the_demo/favicons/segnalo.png" alt="Segnalo" /></a>
+ <a href="<?php echo $item->add_to_simpy(); ?>" title="Add post to Simpy"><img src="./for_the_demo/favicons/simpy.png" alt="Simpy" /></a>
+ <a href="<?php echo $item->add_to_spurl(); ?>" title="Add post to Spurl"><img src="./for_the_demo/favicons/spurl.png" alt="Spurl" /></a>
+ <a href="<?php echo $item->add_to_wists(); ?>" title="Add post to Wists"><img src="./for_the_demo/favicons/wists.png" alt="Wists" /></a>
+ <a href="<?php echo $item->search_technorati(); ?>" title="Who's linking to this post?"><img src="./for_the_demo/favicons/technorati.png" alt="Technorati" /></a>
+ </p>
+
+ </div>
+
+ <!-- Stop looping through each item once we've gone through all of them. -->
+ <?php endforeach; ?>
+
+ <!-- From here on, we're no longer using data from the feed. -->
+ <?php endif; ?>
+
+ </div>
+
+ <div>
+ <!-- Display how fast the page was rendered. -->
+ <p class="footnote">Page processed in <?php $mtime = explode(' ', microtime()); echo round($mtime[0] + $mtime[1] - $starttime, 3); ?> seconds.</p>
+
+ <!-- Display the version of SimplePie being loaded. -->
+ <p class="footnote">Powered by <a href="<?php echo SIMPLEPIE_URL; ?>"><?php echo SIMPLEPIE_NAME . ' ' . SIMPLEPIE_VERSION . ', Build ' . SIMPLEPIE_BUILD; ?></a>. Run the <a href="../compatibility_test/sp_compatibility_test.php">SimplePie Compatibility Test</a>. SimplePie is &copy; 2004&ndash;<?php echo date('Y'); ?>, Ryan Parman and Geoffrey Sneddon, and licensed under the <a href="http://www.opensource.org/licenses/bsd-license.php">BSD License</a>.</p>
+ </div>
+
+ </div>
+
+</div>
+
+</body>
+</html>
diff --git a/simplepie/demo/minimalistic.php b/simplepie/demo/minimalistic.php
new file mode 100644
index 000000000..56509c00c
--- /dev/null
+++ b/simplepie/demo/minimalistic.php
@@ -0,0 +1,137 @@
+<?php
+
+function microtime_float()
+{
+ if (version_compare(phpversion(), '5.0.0', '>='))
+ {
+ return microtime(true);
+ }
+ else
+ {
+ list($usec, $sec) = explode(' ', microtime());
+ return ((float) $usec + (float) $sec);
+ }
+}
+
+$start = microtime_float();
+
+include('../simplepie.inc');
+
+// Parse it
+$feed = new SimplePie();
+if (!empty($_GET['feed']))
+{
+ if (get_magic_quotes_gpc())
+ {
+ $_GET['feed'] = stripslashes($_GET['feed']);
+ }
+ $feed->set_feed_url($_GET['feed']);
+ $feed->init();
+}
+$feed->handle_content_type();
+
+?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title><?php echo (empty($_GET['feed'])) ? 'SimplePie' : 'SimplePie: ' . $feed->get_title(); ?></title>
+
+<!-- META HTTP-EQUIV -->
+<meta http-equiv="content-type" content="text/html; charset=<?php echo ($feed->get_encoding()) ? $feed->get_encoding() : 'UTF-8'; ?>" />
+<meta http-equiv="imagetoolbar" content="false" />
+
+<style type="text/css">
+html, body {
+ height:100%;
+ margin:0;
+ padding:0;
+}
+
+h1 {
+ background-color:#333;
+ color:#fff;
+ font-size:3em;
+ margin:0;
+ padding:5px 15px;
+ text-align:center;
+}
+
+div#footer {
+ padding:5px 0;
+}
+
+div#footer,
+div#footer a {
+ text-align:center;
+ font-size:0.7em;
+}
+
+div#footer a {
+ text-decoration:underline;
+}
+
+code {
+ background-color:#f3f3ff;
+ color:#000;
+}
+
+pre {
+ background-color:#f3f3ff;
+ color:#000080;
+ border:1px dotted #000080;
+ padding:3px 5px;
+}
+
+form {
+ margin:0;
+ padding:0;
+}
+
+div.chunk {
+ border-bottom:1px solid #ccc;
+}
+
+form#sp_form {
+ text-align:center;
+ margin:0;
+ padding:0;
+}
+
+form#sp_form input.text {
+ width:85%;
+}
+</style>
+
+</head>
+
+<body>
+ <h1><?php echo (empty($_GET['feed'])) ? 'SimplePie' : 'SimplePie: ' . $feed->get_title(); ?></h1>
+
+ <form action="" method="get" name="sp_form" id="sp_form">
+ <p><input type="text" name="feed" value="<?php echo ($feed->subscribe_url()) ? htmlspecialchars($feed->subscribe_url()) : 'http://'; ?>" class="text" id="feed_input" />&nbsp;<input type="submit" value="Read" class="button" /></p>
+ </form>
+
+ <div id="sp_results">
+ <?php if ($feed->data): ?>
+ <?php $items = $feed->get_items(); ?>
+ <p align="center"><span style="background-color:#ffc;">Displaying <?php echo $feed->get_item_quantity(); ?> most recent entries.</span></p>
+ <?php foreach($items as $item): ?>
+ <div class="chunk" style="padding:0 5px;">
+ <h4><a href="<?php echo $item->get_permalink(); ?>"><?php echo $item->get_title(); ?></a> <?php echo $item->get_date('j M Y'); ?></h4>
+ <?php echo $item->get_content(); ?>
+ <?php
+ if ($enclosure = $item->get_enclosure(0))
+ echo '<p><a href="' . $enclosure->get_link() . '" class="download"><img src="./for_the_demo/mini_podcast.png" alt="Podcast" title="Download the Podcast" border="0" /></a></p>';
+ ?>
+ </div>
+ <?php endforeach; ?>
+ </div>
+ <?php endif; ?>
+ </div>
+
+ <div id="footer">
+ Powered by <?php echo SIMPLEPIE_LINKBACK; ?>, a product of <a href="http://www.skyzyx.com">Skyzyx Technologies</a>.<br />
+ Page created in <?php echo round(microtime_float()-$start, 3); ?> seconds.
+ </div>
+</body>
+</html>
diff --git a/simplepie/demo/multifeeds.php b/simplepie/demo/multifeeds.php
new file mode 100644
index 000000000..b23d792a2
--- /dev/null
+++ b/simplepie/demo/multifeeds.php
@@ -0,0 +1,108 @@
+<?php
+/********************************************************************
+MULTIFEEDS TEST PAGE
+
+Nothing too exciting here. Just a sample page that demos integrated
+Multifeeds support as well as cached favicons and perhaps a few other
+things.
+
+Lots of this code is commented to help explain some of the new stuff.
+Code was tested in PHP 5.2.2, but *should* also work with earlier
+versions of PHP, as supported by SimplePie (PHP 4.1).
+
+********************************************************************/
+
+// Include the SimplePie library, and the one that handles internationalized domain names.
+require_once('../simplepie.inc');
+require_once('../idn/idna_convert.class.php');
+
+// Initialize some feeds for use.
+$feed = new SimplePie();
+$feed->set_feed_url(array(
+ 'http://rss.news.yahoo.com/rss/topstories',
+ 'http://news.google.com/?output=atom',
+ 'http://rss.cnn.com/rss/cnn_topstories.rss'
+));
+
+// When we set these, we need to make sure that the handler_image.php file is also trying to read from the same cache directory that we are.
+$feed->set_favicon_handler('./handler_image.php');
+$feed->set_image_handler('./handler_image.php');
+
+// Initialize the feed.
+$feed->init();
+
+// Make sure the page is being served with the UTF-8 headers.
+$feed->handle_content_type();
+
+// Begin the (X)HTML page.
+?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>Multifeeds Test page</title>
+ <link rel="stylesheet" href="../demo/for_the_demo/simplepie.css" type="text/css" media="screen" title="SimplePie Styles" charset="utf-8" />
+ <style type="text/css">
+ div#site {
+ width:600px;
+ }
+ span.footnote {
+ white-space:nowrap;
+ }
+ h1 {
+ line-height:1.4em;
+ }
+ h4 {
+ padding-left:20px;
+ background-color:transparent;
+ background-repeat:no-repeat;
+ background-position:0 1px;
+ }
+ .clearBoth {
+ clear:both;
+ }
+ </style>
+</head>
+<body>
+<div id="site">
+
+ <?php if ($feed->error): ?>
+ <p><?=$feed->error()?></p>
+ <?php endif ?>
+
+ <div class="chunk">
+ <h1>Quick-n-Dirty Multifeeds Demo</a></h1>
+ </div>
+
+ <?php
+ // Let's loop through each item in the feed.
+ foreach($feed->get_items() as $item):
+
+ // Let's give ourselves a reference to the parent $feed object for this particular item.
+ $feed = $item->get_feed();
+ ?>
+
+ <div class="chunk">
+ <h4 style="background-image:url(<?php echo $feed->get_favicon(); ?>);"><a href="<?php echo $item->get_permalink(); ?>"><?php echo html_entity_decode($item->get_title(), ENT_QUOTES, 'UTF-8'); ?></a></h4>
+
+ <!-- get_content() prefers full content over summaries -->
+ <?php echo $item->get_content(); ?>
+
+ <?php if ($enclosure = $item->get_enclosure()): ?>
+ <div>
+ <?php echo $enclosure->native_embed(array(
+ // New 'mediaplayer' attribute shows off Flash-based MP3 and FLV playback.
+ 'mediaplayer' => '../demo/for_the_demo/mediaplayer.swf'
+ )); ?>
+ </div>
+ <?php endif; ?>
+
+ <p class="footnote">Source: <a href="<?php echo $feed->get_permalink(); ?>"><?php echo $feed->get_title(); ?></a> | <?php echo $item->get_date('j M Y | g:i a'); ?></p>
+ </div>
+
+ <?php endforeach ?>
+
+ <p class="footnote">This is a test of the emergency broadcast system. This is only a test&hellip; beeeeeeeeeeeeeeeeeeeeeeeeeep!</p>
+
+</div>
+</body>
+</html> \ No newline at end of file
diff --git a/simplepie/demo/test.php b/simplepie/demo/test.php
new file mode 100644
index 000000000..5b9943abb
--- /dev/null
+++ b/simplepie/demo/test.php
@@ -0,0 +1,62 @@
+<?php
+include_once('../simplepie.inc');
+include_once('../idn/idna_convert.class.php');
+
+// Parse it
+$feed = new SimplePie();
+if (isset($_GET['feed']) && $_GET['feed'] !== '')
+{
+ if (get_magic_quotes_gpc())
+ {
+ $_GET['feed'] = stripslashes($_GET['feed']);
+ }
+ $feed->set_feed_url($_GET['feed']);
+ $feed->enable_cache(false);
+ $starttime = explode(' ', microtime());
+ $starttime = $starttime[1] + $starttime[0];
+ $feed->init();
+ $endtime = explode(' ', microtime());
+ $endtime = $endtime[1] + $endtime[0];
+ $time = $endtime - $starttime;
+}
+else
+{
+ $time = 'null';
+}
+
+$feed->handle_content_type();
+
+?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<title>SimplePie Test</title>
+<pre>
+<?php
+
+// memory_get_peak_usage() only exists on PHP 5.2 and higher if PHP is compiled with the --enable-memory-limit configuration option or on PHP 5.2.1 and higher (which runs as if --enable-memory-limit was on, with no option)
+if (function_exists('memory_get_peak_usage'))
+{
+ var_dump($time, memory_get_usage(), memory_get_peak_usage());
+}
+// memory_get_usage() only exists if PHP is compiled with the --enable-memory-limit configuration option or on PHP 5.2.1 and higher (which runs as if --enable-memory-limit was on, with no option)
+else if (function_exists('memory_get_usage'))
+{
+ var_dump($time, memory_get_usage());
+}
+else
+{
+ var_dump($time);
+}
+
+// Output buffer
+function callable_htmlspecialchars($string)
+{
+ return htmlspecialchars($string);
+}
+ob_start('callable_htmlspecialchars');
+
+// Output
+print_r($feed);
+ob_end_flush();
+
+?>
+</pre> \ No newline at end of file