Changeset 1957
- Timestamp:
- 08/16/11 09:45:30 (22 months ago)
- Location:
- plugins/related
- Files:
-
- 1 added
- 1 deleted
- 20 edited
-
doc/assets/related_dimensions.png (deleted)
-
doc/assets/related_example.png (modified) (previous)
-
doc/assets/related_iphone.png (added)
-
doc/guide.html (modified) (10 diffs)
-
related.js (modified) (1 diff)
-
related.swf (modified) (previous)
-
src/as/Related.as (modified) (5 diffs)
-
src/as/RelatedThumb.as (modified) (5 diffs)
-
src/js/related.js (modified) (8 diffs)
-
src/js/related.thumb.js (modified) (3 diffs)
-
test/assets/blender.xml (modified) (1 diff)
-
test/assets/heineken.xml (modified) (1 diff)
-
test/assets/screencasts.xml (modified) (1 diff)
-
test/basic.html (modified) (1 diff)
-
test/compatibility.html (modified) (1 diff)
-
test/css.html (modified) (1 diff)
-
test/dimensions.html (modified) (4 diffs)
-
test/errors.html (modified) (2 diffs)
-
test/index.html (modified) (1 diff)
-
test/modes.html (modified) (2 diffs)
-
test/options.html (modified) (5 diffs)
-
test/playlist.html (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
plugins/related/doc/guide.html
r1944 r1957 8 8 h2 { margin-top: 50px; } 9 9 h3 { margin-top: 25px; } 10 img , #player { -webkit-box-shadow: 0 0 5px #999; margin: 0 10px; }10 img.shadow, #player { -webkit-box-shadow: 0 0 5px #999; margin: 0 10px; } 11 11 pre { font-size: 12px; background: #E5F3C8; padding:5px 10px; border: 1px solid #D3EAA4; } 12 12 dd { color: #333; font-style: italic; } … … 26 26 <h2>Introduction</h2> 27 27 28 <p>The Related plugin for the JW Player presents a screen with related videos to your viewers. This screen is shown when a video is completed or when a viewer presses the <em>related</em> button. Upon clicking a related video, the viewer is redirected to the page with that video, improving user engagement and advertising opportunities.</p>29 30 <p><img alt="Related Example Player" src="assets/related_example.png" style="margin-left: 10px"/></p>31 32 <p>The list of related videos is loaded using an mRSS feed. The plugin automatically renders up to 2 rows of up to 5 related videos onthe screen. Buttons for re-playing the video and for closing the overlay are shown in the top corners.</p>33 34 <p>The plugin works in both Flash and HTML5, including touch devices like the iPad/iPhone and Android. When using a playlist, every entry can have its own related videos.</p>28 <p>The Related plugin for the JW Player presents a screen with related videos to your viewers. This screen is shown when a video is completed or when a viewer presses the <em>related</em> button. Upon clicking a related video, the viewer is either redirected to the page with that video, or the related video is loaded in the player.</p> 29 30 <p><img alt="Related Example Player" src="assets/related_example.png" /></p> 31 32 <p>The list of related videos is loaded using an mRSS feed. The plugin automatically renders as many thumbs as fit the screen. Buttons for re-playing the video and for closing the overlay are shown in the top corners.</p> 33 34 <p>The plugin works in both Flash and HTML5, including touch devices like the iPad/iPhone and Android. When using a playlist, every entry can have its own related videos.</p> 35 35 36 36 … … 42 42 <dl> 43 43 <dt><strong>file</strong> ( <em>undefined</em> )</dt> 44 <dd>Location of the mRSS file with related videos, e.g. <strong>http://example.com/related.xml</strong>.</dd> 44 <dd>Location of the mRSS file with related videos, e.g. <strong>http://example.com/related.xml</strong>. See below section for more info.</dd> 45 <dt><strong>onclick</strong> ( <em>play</em> )</dt> 46 <dd>What to do when the user clicks a thumb: play the related video in the player (<strong>play</strong>) or jump to the play page of the related video (<strong>link</strong>).</dd> 45 47 <dt><strong>oncomplete</strong> ( <em>true</em> )</dt> 46 48 <dd>Whether to display the related videos screen when the video is completed. When set <strong>false</strong>, the screen does not automatically pop up.</dd> … … 49 51 <dt><strong>heading</strong> ( <em>Watch related videos</em> )</dt> 50 52 <dd>Single line heading displayed above the grid with related videos. Generally contains a short call-to-action.</dd> 51 <dt><strong>titles</strong> ( <em>true</em> )</dt> 52 <dd>Whether to show the titles over the thumbs or not. When set <strong>false</strong>, only the thumbnail images are shown.</dd> 53 53 <dt><strong>dimensions</strong> ( <em>140x80</em> )</dt> 54 <dd>The width and height of each thumbnail in pixels. Set this to a different value to make the thumbnails larger (e.g. <strong>160x90</strong>) or smaller (e.g. <strong>120x70</strong>). Note the plugin always renders a fixed 10px spacing between the thumbs.</dd> 54 55 </dl> 55 56 … … 76 77 77 78 78 <h2>The mRSS F ile</h2>79 80 <p>The mRSS feed is loaded into the <strong>file</strong> option of the plugin is can be any standard feed, just like for the <a href="http://www.longtailvideo.com/support/jw-player/jw-player-for-flash-v5/19824/playlist-support-in-the-jw-player">JW Player playlist</a>. The <em>title</em>, <em>link</em> and <em>media:thumbnail</em> options are required and used by the plugin. All other data in the mRSS feed is ignored. Here's an example feed with threerelated videos:</p>79 <h2>The mRSS Feed</h2> 80 81 <p>The mRSS feed used for loading the related videos should be identical to those loading a <a href="http://www.longtailvideo.com/support/jw-player/jw-player-for-flash-v5/19824/playlist-support-in-the-jw-player">JW Player playlist</a>. Here's an example feed with 2 related videos:</p> 81 82 82 83 <pre> … … 86 87 <title>Big Buck Bunny</title> 87 88 <link>http://example.com/watch/28839</link> 88 <media:thumbnail>http://example.com/thumbs/28839.jpg</media:thumbnail> 89 </item> 90 91 <item> 92 <title>Sintel</title> 93 <link>http://example.com/watch/21987</link> 94 <media:thumbnail>http://example.com/thumbs/21987.jpg</media:thumbnail> 89 <media:content url="http://example.com/video/28839.mp4"/> 90 <media:thumbnail url="http://example.com/thumbs/28839.jpg"/> 95 91 </item> 96 92 … … 98 94 <title>Elephant's Dream</title> 99 95 <link>http://example.com/watch/8791</link> 100 <media:thumbnail>http://example.com/thumbs/8791.jpg</media:thumbnail> 96 <media:content url="http://example.com/video/8791.mp4"/> 97 <media:thumbnail url="http://example.com/thumbs/8791.jpg"/> 101 98 </item> 102 99 </channel> … … 104 101 </pre> 105 102 106 <p>Entries in the mRSS feed that do not contain a title, link and thumbnail are ignored. If the mRSS feed has 0 valid entries, or if the mRSS feed fails loading or parsing:</p> 103 <p>Note the following properties are required for every item in the feed. Items that do not contain these properties are ignored:</p> 104 105 <ul> 106 <li>The <strong>title</strong> (for diplaying the related video titles).</li> 107 <li>Either the <strong>media:thumbnail</strong> or <strong>jwplayer:image</strong> (for displaying the thumbs).</li> 108 <li>The <strong>link</strong>, in case the <em>onclick</em> option is set to <em>link</em> (for linking out).</li> 109 <li>Either the <strong>media:content</strong> or <strong>jwplayer:file</strong>, in case the <em>onclick</em> option is set to <em>play</em> (for playing the video).</li> 110 </ul> 111 112 <p>If the mRSS feed has 0 valid entries, or if the mRSS feed fails loading or parsing:</p> 107 113 108 114 <ul> … … 111 117 </ul> 112 118 113 114 115 <h2>Thumbnail dimensions</h2> 116 117 <p>By default, the thumbnails in the related videos screen are 140px wide by 70px high. The plugin will automatically render as many thumbs as fit the screen, with a maximum of 5 columns and 2 rows. A 10px spacing is used in between the thumbs:</p> 118 119 <p><img alt="Related Thumb Dimensions" src="assets/related_dimensions.png" style="margin-left: 10px" /></p> 120 121 <p>These dimensions can be changed by setting a configuration option: <strong>dimensions</strong>. This option needs to be a comma-separated list of the <em>width</em>, <em>height</em>, <em>columns</em> and <em>rows</em>. for example:</p> 122 123 <ul> 124 <li>Setting the dimensions option to <strong>"120,70,5,3"</strong> will render fairly small (120x70 pixels) thumbnails in up to 5 columns and 3 rows.</li> 125 <li>Setting the dimensions option to <strong>"200,120,2,1"</strong> will render up to two (one row, 2 columns) fairly large (200x120 pixels) thumbnails.</li> 126 </ul> 119 <h3>Related Related Videos</h3> 120 121 <p>For every item in the mRSS feed, you can include a <em><jwplayer:related.file></em> property. When using the <strong>onclick=play</strong> option, this will then define the related videos for your related videos. With this trick, you can create an endless carrousel of related videos for users that can't get enough watching your videos.</p> 122 123 <p>If no per-item related files are loaded, the global related videos file will remain active.</p> 124 127 125 128 126 129 127 <h2>Device Support</h2> 130 128 131 <p>On touch devices (iPhone, iPad, Android), the related plugin fully functions, with one exception: the Related dock button is not available when the video is playing. This because no custom controls can be shown when a video plays in fullscreen.</p> 132 133 <p>Before and after playback, the player is displayed inline in the page and the related videos screen is available.</p> 129 <p>On touch devices (iPhone, iPad, Android), the related plugin fully functions, with one exception: the dock button is not available when the video is playing. This because no custom controls can be shown when a video plays in fullscreen.</p> 130 131 <p><img alt="Realted plugin on iPhone" src="assets/related_iphone.png" style="margin-left: 10px" /></p> 132 133 <p>Before playback starts and after it completes, the player is displayed inline in the page and the related videos screen is available.</p> 134 134 135 135 … … 193 193 <ul> 194 194 <li>Load related videos using an mRSS feed.</li> 195 <li>Related videos are either linked to or loaded in the player</li> 195 196 <li>Enter related screen through dock button or upon complete.</li> 196 197 <li>Support for Flash and HTML5 modes (including touch devices).</li> -
plugins/related/related.js
r1944 r1957 1 (function(a){var b=function(e, t,w){var l;var g;var i;var q;var v;var u;var s;var j={cursor:"pointer",position:"absolute",left:"0px",top:"0px",margin:"0px",padding:"0px",display:"block",width:"50px",height:"50px"};var n={backgroundImage:"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAGQCAYAAACJccGfAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJlJREFUeNrskksKwDAIRFV6/+v1Nv0sQymkBD+jVchGdOY5hIlop6GEHrXd75hOnNqNIA5Y0cQaPisLGiZgQbbzFdhrS0/ksUUhhb02aKW0Rh6w0i55OCqRdmLd6Mb4C7nzKJkYCqkPh4nLv0QXNIJsg9BRVkpz+Nj6oKOQ+qSuYZuH9HVCcka4qCEgiYnLtWze+Garfu0lwAArHE4YPfyZuAAAAABJRU5ErkJggg==)",backgroundRepeat:"no-repeat",backgroundSize:"100% 100%",opacity:0,webkitTransition:"opacity 150ms linear",MozTransition:"opacity 150ms linear",msTransition:"opacity 150ms linear",transition:"opacity 150ms linear",cursor:"pointer",visibility:"hidden"};var o={position:"absolute",border:"none",color:"#FFF",display:"block",font:"16px/24px Arial,sans-serif",overflow:"hidden",width:"240px",margin:"0 0 0 0",textAlign:"center",textTransform:"none",textShadow:"#000 1px 1px 0",padding:"0 0 0 0"};var z="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAArlJREFUeNrsWe1xozAQhZv8hw7sDkQH5CpwOnA6oATSQdIB7sC5CshVgFMBuQqcq0BZzT3N7SiAFiw7nol2ZkcyWi16Wn28xUkSJUqUKN9CtNYlaUPa68/So01BvXanjiddAGBFxY70lvRA+kz64piZtnvSNX6/oc+Q3R1pgbb7NE3/XCIKG9IjaWciIrTrUd94otv57EKC0FgKmdCuQr1FOQUmQx99NjBmOWG2Gqkd6RaD2rIBHrE0p3w0ErulQMyMdlI7FgkOorbREfjpJHZzQSgMoBTaNQMgKrYHtO+Uwp7xvnMukEYYjYYdq2MgSskSZVFpQgIxp04ttPOB6Oz9IfBXS+zmABGFmA18CkRnDwHhhatDgchmAuk8IOzSunogEhB2w68uBmTB0qo9IDp7DF80Igs3+xSI6is3+9zj1wdCf9XxWwovxJJR89FIzLwQVRJSZlIU7bBfC2IvoR44YMJTlIWkUTsgGikZPCtpXEjjWxaJ5ipo/AmJ1VGSMIVIrG5m5cVp+oteVNi0lepjqa6xeUeqWyDVLcj+3ZPqFhdJdQdoe6iPD2USJUqUKFFOSMLUGfyqKSZxDiClgBCaG79aQFi998yPmcRROQNfeSJUOlEyN3g+YJONTEwWerZ7psrSbJ498ogwrtWirFmOYZMvhf7Wz4ZNWM8+gPfBbn6e5FD5aJcHZrRnM2uBVGxgG/a8ZsA75lPZfAf+a+b/GHRpEZl7ZcvjCR8GODHkYojkLQDsRlyaPgf4OTAflkCad/5FWxIMCBMz+LsUYoBQ8duxeYHdQ/LvD58xPzn3w58zuzw4jWez/YAvNWvU145NDuqeAwyn72tsYuNnR/Wn5P+/Wz8RQeu/GIj2aTm783uLTbp31vkj3xdoN/U9s2nxLMOead2sk/WvsWdUEiVKlChRrlE+BBgA99ZhJqocsJoAAAAASUVORK5CYII=";var A="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAytJREFUeNrsWC2T2zAQdToBAQUGBYaGgYGBBgUGBwwPHAg8UFB4P+VgQMGBgoMGBQcLAw0NCgwKDAoMOpPuJk/TrWpL68S5Xue0Mxp/PUt6q11pd6MoSJAgQf4nmZ36436/T+myosbX2PrcUqupfcXz2oebzWbNsxIhAjyZAhPjwStMRoohGYsJ7wZwS2oJvj0SofbiRIjEEiR4sJIGrRW4d9R+YpKVY3VzEB/EueTNSBLXWIGth4TB8SosqP2gdoNvf2vz2NcW/1wP4c4mIsxpR4OyxjofDqbCWv5M7RvMpwCmj0zHfePfQdy5K3IwEwzkxcF3+P5R+MsnmE7htPXjGK0PN5oIaSbBZEolrsFKSBIlnPrg4MC6pAQunXJFeOtshnzCwr3FxG0SZge7h8+sPatSQyGrKYmkcEINbuEg8YCVmuO7TyolTk0k7tn/h3A+EhGcX+PItRI3bvtVytJDohzrxP+KSOohwedLJ7bqF0vki4dEa+KvU0ORc4i0Sqdj3HsPCT7srnCvWd12SiK1OAN8uLmHRC6wGn+rpyTCE0gUh9MOE75xkOD77yK8d6UIiQ83iggOp1po04dj03rqIVHB0WtX7kEkFsDXY3IUrbPz+RDTIIUCxxr/YJHYgYQ5a1ySK3HjiWCH4Y5XTAZac+FanPJXIipYuRIn7hOKWp2SYF06sYqFuV00sXqdqW5P2O4tKiiLDztFdB0kSJAgQV6J8KGpiMtUkQS19eQZIh+Cdk0KMVJqxV/xUOFgAG/I26lCgpjNK3MlgQ067JCbHOIhEVM1eP+AE3qD/zJ6frKiARPeM5lDDZmuHM5k/B4h0BaKyPBfPcnJz0R4UmK5zURvjRah5Vtxv+npJzMmh35irNBHs0JsStRygc8mWxErPZUF7MRoCpr1lUI5cGSl3CHYbGA+rP07eh+NSIVPJtInHWuSK+nQaOfDR8eyqTGbHNkkl2TvRYb47OUg1moB8yqiP0uri57aVQ6cId0hnV3AjFL4l9ypYg05LZFGaLvDsykwNNBuE/2u2DdwaLsIXeL/TDxHlnNXYoOo8D6NggQJEiTIS5RfAgwAwPzrJ/KrwvYAAAAASUVORK5CYII=";var B=function(){if(q){e.pause(true);w.style.visibility="visible";w.style.opacity=1;try{e.getPlugin("display").hide();e.getPlugin("dock").hide()}catch(C){}}};function y(C){if(t.oncomplete!==false){setTimeout(B,50)}}function k(C){if(C==q){console.log("RELATED: Failed to load "+C)}else{console.log("RELATED: "+C)}q=undefined;u.innerHTML="";d();if(t.usedock!==false){e.getPlugin("dock").setButton("related",B,A)}}function d(C){setTimeout(r,200);w.style.opacity=0;try{e.getPlugin("display").show();e.getPlugin("dock").show()}catch(D){}}function r(){w.style.visibility="hidden"}function p(D){q=undefined;u.innerHTML="";d();var C=e.getPlaylist()[D.index];if(C["related.file"]){q=C["related.file"]}else{if(t.file){q=t.file}}if(q){if(t.usedock!==false){e.getPlugin("dock").setButton("related",B,z)}a.utils.ajax(q,f,k)}else{k("No related videos file found")}}function f(D){var J=[];var K=[];try{J=a.utils.parsers.rssparser.parse(D.responseXML.firstChild)}catch(I){k("This feed is not valid XML and/or RSS.");return}for(var H=0;H<J.length;H++){if(J[H].image&&J[H].link&&J[H].title){var G={link:J[H].link,image:J[H].image};if(t.titles!==false){G.title=J[H].title}K.push(G)}}if(K.length){var E=0;var L=0;for(var F=0;F<K.length;F++){var C=a.related.thumb(i[0],i[1],K[F].image,K[F].link,K[F].title);u.appendChild(C);m(C,{left:((i[0]+10)*E)+"px",top:((i[1]+10)*L)+"px"});i[6]=Math.max(i[6],i[0]*(E+1)+10*E);i[7]=Math.max(i[7],i[1]*(L+1)+10*L);if(E==i[2]-1||(i[0]+10)*(E+2)>i[4]){if(L==i[3]-1||(i[1]+10)*(L+2)>i[5]-40){break}else{L++;E=0}}else{E++}}c(i[4],i[5])}else{k("RSS feed has 0 entries that contain title,link and image.")}}function h(){if(e.getRenderingMode()=="flash"){return}e.onPlaylistItem(p);e.onComplete(y);m(w,n);w.onclick=d;s=document.createElement("div");m(s,j);m(s,{background:"transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAABKhJREFUeNrsWF1IY1cQvtGsVruSoCiKoqH+FVFvQClBxITimw/aLir4orCgxRfz5pOkqa9K1lSs+tCksKKomAgSlJImBRHqi0YRKihJ4y8oXuuu/z/TmXDvchH3p5uke6X3gyFzT85Jzndm5szMZRgZMmTIkCFDhoz/FwBAjfIM5bvHSkCJwgaDwd84jgOLxQI4vPSYCChQMq+vr394jUAdTk9Pwel0QklJCcTHx3/zGEh8jvLt1dXVKjwAsszY2Ngrq9X67FEQWVtbO4e34O7uDjY2NmBkZKRX8q6VmZkJZrMZDg4O3sYH1tfXoauryy51L2uOi4sDnU4Xio2TkxNwuVwwODgINzc3ISKXl5ehsZycnJeR+tPYKBDx3d7eBra3tw2zs7OfraysMKgzAwMDDF4CTFVVFRMbG8skJCQwaLXSxcVFNa6ZC/dPlVGyyi8o3uPjY83U1JRCqVQSCcDnL30+348syz5Rq9WMVquluVopxMRTlHKUr1G+QlG9Z36G2+3+ldzr4uICJicnKb94IrGXmDDXF+OG3Pjp3tra+qO9vf34PRu7zsrK+pMUhUIRcrFIIVwi15g3TklJSkpiCgoKSFW/Y74KA72CFIwj5uzsTDJEuL29vU2BSHl5OZOXl0c+zz7gVvEYJyXZ2dmhmDg/P2d2d3clkzeejo6O/oSnG7pW8YQBgxuQjI9OXzTvCYoBb689IZesrq5CZWVlxGIkbNTU1Jimp6ffJDt0NcDsDg6H43d8bEJ5jvIz5pBdYc7R0RH09vYSCekQSU9P/6Kpqekl5gv4EJDV6LZKS0sTKmJWMqk8MTHRgDkBMAG+kwRZor+/H5KTkwVr2KRYmthUKhU0NjbCzMwMbG5uwv7+PmBAh+JheHgYKioqAK9cgYRfHEdSgop3FfhAYRkZMmSIk6ceJWo5I+a/JOP1eg3RSoAx/+JEWRQLvUdAWeLHLHyK8KPU8mPNKCZ+jGB54LeaRd/TZw5vMZNoTq34OZIWoarWiE2RNzc3V9PZ2cnRGJbjLzAZajiOox6cyGiwgfoeC0hvfn5+AGGsr6+/T8bY1tbmxbUBbIc1VqvV29DQQC2AEdtfYfMtPT09VGCaIu7jHo9HyAF0gp7Dw0M/jZFOlqquriZrmfgXchw/z4SAvr6+Dn49zVW1trZyc3NzDrIIfU8bRt3W0dFBC2gdpKamkhs2R6vV9aL8RUp3d7dmeXmZVPJ9hvSJiQkDWoQe7cI8wvz8fF1paSmTkpJClg2YzWbv+Pi4lvoSEV4YjcYW7O+dWBU4saevw7G6aAe702AwMDs7O0bcoNFut1MvUqfT6ZZbWloYvV5/TL5PLrKwsOB801IWF5O7BIqKigxDQ0OBjIwMjfAduppPo9EsY6epRbcSDuPvaLmWh39WYVPlEF4k4ulSHPiDwaAFS3jw+0OxzOEa8nH/PdfyCIFOv2Gz2UCIBboI6K0kX4vVRusG1d+7PlV8BSvERLMQE6g7+M1wIj8Xr/eIikebUAnTepfLJaz7pIlPIGL6iLVkYa6srMz2yUt8igt+Ix9DhC0sLFwSbjwpVCQ5YWyElQoJGTJkSBD/CDAA0ma8tkQpWYgAAAAASUVORK5CYII=)"});s.onclick=x;w.appendChild(s);g=document.createElement("div");m(g,j);m(g,{background:"transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA0xJREFUeNrsVz1IW1EUjtKtQyh0yRQr2kFCIlHB7cUMBhpCXKKY5UVBnfwZWgUppFvHOEUkg84ucXBxeg1ChiKmUCQ0EV+K1Q4BnyKImujtOem95fp8pvTHeIX7weHlnXNeON+955x7rs0mISEhISEhISEh0UgQQoIgOyBvfuPnBvkM8lZEEiHCYWpqioA6buHnrVQqVeY3MzODfglhiFxfX1eICX19fRikypF4fnV1VTX7oQnELgSR9fX198QC/f39p2D2wM+nZ2dnJbN9aGiIEVFE2RRlcHCQwIrfIjMxMVG+vLz8aNZHIhFGQigimBqK1+vNn5yckHo4Pz8n4McI5EQicYNQR0fHzt7eniWJ3d1d4na7eRJ2m8Cw+/3+L1ZEVFV9NCSwOz07PDwsWhEBPenu7r7RzUQl8bJarX6tVyMXFxckEAgUhN0RiNEP58mNtgUtl8RiMbK/v3+L0MjIiC4cGYjrlTlQbMVdXV21mnA6neTo6OguMuIAVv67Ocienh5W2Bis4nK5vlmlmlDnyNLS0ms+uPHxcRaggSc7dfOEQqFT3m92dla8AxGCJNvb23xwKGGTnxoMBkmhUCDz8/O8n1C1kuACs5x+KeImv4RNQkLiUd3ZNZAHaaPN//sPfT7fh4c4E5r/YfXjIAY91xJ17CjTnD5Bv9FBwlRnp7tJ6NPTqBTCO7gOc9Rya2uroes66e3txQA1RVHI5OTktNlOdQoI3kMSeC+Zm5vDUz8MujQckEhWQ30+n89x08C9EolvbGyk6QzlpKJDMDoSWV1d1Xg7+gOIgkbYoVwuhys/3dbWhsEjQTzp9a2tLYPtDOjTfxLTk78lk81mB+DxDgTvHs6mpqYX7e3tGry3mO3sm0wm40P74uJiaXh4eKFYLJbgu07QLYyNjbWwMqPPgUbUyBrcMWywwLX8xndN036NI5ubm7wddysGxNZGR0cxuBWHw9GZTCYXjo+PMfhP+D00iRrRaDS6kkqlShyhe08v1TB+1vrBwcEy3sGBDKZPbZLFdKJ2A1IG7TpNLVbUBqQgNgl08pTL5RxrApFIBPVaI7ueSsd0fvDTuPYbp3aDGyDt1IeN+Ozu7uH0ekOKXUJCQkJCguKHAAMAvduPUQLB93IAAAAASUVORK5CYII=)"});g.onclick=d;w.appendChild(g);v=document.createElement("div");if(t.heading){v.innerHTML=t.heading}else{v.innerHTML="Watch related videos"}m(v,o);w.appendChild(v);u=document.createElement("div");w.appendChild(u);m(u,{position:"absolute"})}e.onReady(h);this.resize=function(E,C){if(e.getRenderingMode()=="flash"){return}if(!i){i=[140,80,5,2,E,C,0,0];if(t.dimensions){var F=t.dimensions.split(",");for(var D=0;D<4;D++){i[D]=Number(F[D])}}}c(E,C)};function c(D,C){m(w,{height:C+"px",width:D+"px"});m(g,{left:(D-50)+"px"});m(u,{left:Math.round(D/2-i[6]/2)+"px",top:Math.round(C/2-i[7]/2)+"px"});m(v,{left:Math.round(D/2-i[6]/2)+"px",width:i[6]+"px",top:Math.round(C/2-i[7]/2-30)+"px"})}function x(C){e.seek(0)}function m(C,D){for(var E in D){C.style[E]=D[E]}}};a().registerPlugin("related",b,"./related.swf")})(jwplayer);(function(a){if(a.related){return}a.related={};a.related.thumb=function(e,g,j,i,p){var b;var d={border:"1px solid #000",webkitBoxShadow:"0 0 4px #000",MozBoxShadow:"0 0 4px #000",msBoxShadow:"0 0 4px #000",boxShadow:"0 0 4px #000",backgroundColor:"#000",backgroundSize:"cover",position:"absolute",textDecoration:"none",display:"block",margin:"0 0 0 0",padding:"0 0 0 0"};var l;var o={psition:"absolute",left:"0px",top:"0px",border:"none",margin:"0 0 0 0",padding:"0 0 0 0"};var n;var k={backgroundColor:"rgba(0,0,0,0.8)",left:"0px",position:"absolute",border:"none",color:"#FFF",display:"block",font:"12px/26px Arial,sans-serif",overflow:"hidden",margin:"0 0 0 0",textAlign:"center",textDecoration:"none",textTransform:"none",padding:"0 0 0 0",height:"26px"};function f(q){c(b,{border:"1px solid #FFF",webkitBoxShadow:"0 0 4px #FFF",MozBoxShadow:"0 0 4px #FFF",msBoxShadow:"0 0 4px #FFF",boxShadow:"0 0 4px #FFF"})}function m(q){c(b,{border:"1px solid #000",webkitBoxShadow:"0 0 4px #000",MozBoxShadow:"0 0 4px #000",msBoxShadow:"0 0 4px #000",boxShadow:"0 0 4px #000"})}function h(){b=document.createElement("a");b.setAttribute("href",i);b.setAttribute("target","_top");b.onmouseout=m;b.onmouseover=f;c(b,d);c(b,{backgroundImage:"url("+j+")",width:(e-2)+"px",height:(g-2)+"px"});l=document.createElement("img");l.setAttribute("src","data:image/png;base64,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");c(l,o);c(l,{width:e-2+"px",height:g-20+"px"});b.appendChild(l);if(p){n=document.createElement("div");n.innerHTML=p;c(n,k);c(n,{top:(g-28)+"px",width:(e-2)+"px"});b.appendChild(n)}return b}function c(q,r){for(var s in r){q.style[s]=r[s]}}return h()}})(jwplayer);1 (function(a){var b=function(e,u,x){var m;var g;var i;var r;var w;var v;var t;var j={cursor:"pointer",position:"absolute",left:"0px",top:"0px",margin:"0px",padding:"0px",display:"block",width:"50px",height:"50px"};var o={backgroundImage:"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAGQCAYAAACJccGfAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJlJREFUeNrskksKwDAIRFV6/+v1Nv0sQymkBD+jVchGdOY5hIlop6GEHrXd75hOnNqNIA5Y0cQaPisLGiZgQbbzFdhrS0/ksUUhhb02aKW0Rh6w0i55OCqRdmLd6Mb4C7nzKJkYCqkPh4nLv0QXNIJsg9BRVkpz+Nj6oKOQ+qSuYZuH9HVCcka4qCEgiYnLtWze+Garfu0lwAArHE4YPfyZuAAAAABJRU5ErkJggg==)",backgroundRepeat:"no-repeat",backgroundSize:"100% 100%",opacity:0,webkitTransition:"opacity 150ms linear",MozTransition:"opacity 150ms linear",msTransition:"opacity 150ms linear",transition:"opacity 150ms linear",cursor:"pointer",visibility:"hidden"};var p={position:"absolute",border:"none",color:"#FFF",display:"block",font:"16px/24px Arial,sans-serif",overflow:"hidden",width:"240px",margin:"0 0 0 0",textAlign:"center",textTransform:"none",textShadow:"#000 1px 1px 0",padding:"0 0 0 0"};var A="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAArlJREFUeNrsWe1xozAQhZv8hw7sDkQH5CpwOnA6oATSQdIB7sC5CshVgFMBuQqcq0BZzT3N7SiAFiw7nol2ZkcyWi16Wn28xUkSJUqUKN9CtNYlaUPa68/So01BvXanjiddAGBFxY70lvRA+kz64piZtnvSNX6/oc+Q3R1pgbb7NE3/XCIKG9IjaWciIrTrUd94otv57EKC0FgKmdCuQr1FOQUmQx99NjBmOWG2Gqkd6RaD2rIBHrE0p3w0ErulQMyMdlI7FgkOorbREfjpJHZzQSgMoBTaNQMgKrYHtO+Uwp7xvnMukEYYjYYdq2MgSskSZVFpQgIxp04ttPOB6Oz9IfBXS+zmABGFmA18CkRnDwHhhatDgchmAuk8IOzSunogEhB2w68uBmTB0qo9IDp7DF80Igs3+xSI6is3+9zj1wdCf9XxWwovxJJR89FIzLwQVRJSZlIU7bBfC2IvoR44YMJTlIWkUTsgGikZPCtpXEjjWxaJ5ipo/AmJ1VGSMIVIrG5m5cVp+oteVNi0lepjqa6xeUeqWyDVLcj+3ZPqFhdJdQdoe6iPD2USJUqUKFFOSMLUGfyqKSZxDiClgBCaG79aQFi998yPmcRROQNfeSJUOlEyN3g+YJONTEwWerZ7psrSbJ498ogwrtWirFmOYZMvhf7Wz4ZNWM8+gPfBbn6e5FD5aJcHZrRnM2uBVGxgG/a8ZsA75lPZfAf+a+b/GHRpEZl7ZcvjCR8GODHkYojkLQDsRlyaPgf4OTAflkCad/5FWxIMCBMz+LsUYoBQ8duxeYHdQ/LvD58xPzn3w58zuzw4jWez/YAvNWvU145NDuqeAwyn72tsYuNnR/Wn5P+/Wz8RQeu/GIj2aTm783uLTbp31vkj3xdoN/U9s2nxLMOead2sk/WvsWdUEiVKlChRrlE+BBgA99ZhJqocsJoAAAAASUVORK5CYII=";var B="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAytJREFUeNrsWC2T2zAQdToBAQUGBYaGgYGBBgUGBwwPHAg8UFB4P+VgQMGBgoMGBQcLAw0NCgwKDAoMOpPuJk/TrWpL68S5Xue0Mxp/PUt6q11pd6MoSJAgQf4nmZ36436/T+myosbX2PrcUqupfcXz2oebzWbNsxIhAjyZAhPjwStMRoohGYsJ7wZwS2oJvj0SofbiRIjEEiR4sJIGrRW4d9R+YpKVY3VzEB/EueTNSBLXWIGth4TB8SosqP2gdoNvf2vz2NcW/1wP4c4mIsxpR4OyxjofDqbCWv5M7RvMpwCmj0zHfePfQdy5K3IwEwzkxcF3+P5R+MsnmE7htPXjGK0PN5oIaSbBZEolrsFKSBIlnPrg4MC6pAQunXJFeOtshnzCwr3FxG0SZge7h8+sPatSQyGrKYmkcEINbuEg8YCVmuO7TyolTk0k7tn/h3A+EhGcX+PItRI3bvtVytJDohzrxP+KSOohwedLJ7bqF0vki4dEa+KvU0ORc4i0Sqdj3HsPCT7srnCvWd12SiK1OAN8uLmHRC6wGn+rpyTCE0gUh9MOE75xkOD77yK8d6UIiQ83iggOp1po04dj03rqIVHB0WtX7kEkFsDXY3IUrbPz+RDTIIUCxxr/YJHYgYQ5a1ySK3HjiWCH4Y5XTAZac+FanPJXIipYuRIn7hOKWp2SYF06sYqFuV00sXqdqW5P2O4tKiiLDztFdB0kSJAgQV6J8KGpiMtUkQS19eQZIh+Cdk0KMVJqxV/xUOFgAG/I26lCgpjNK3MlgQ067JCbHOIhEVM1eP+AE3qD/zJ6frKiARPeM5lDDZmuHM5k/B4h0BaKyPBfPcnJz0R4UmK5zURvjRah5Vtxv+npJzMmh35irNBHs0JsStRygc8mWxErPZUF7MRoCpr1lUI5cGSl3CHYbGA+rP07eh+NSIVPJtInHWuSK+nQaOfDR8eyqTGbHNkkl2TvRYb47OUg1moB8yqiP0uri57aVQ6cId0hnV3AjFL4l9ypYg05LZFGaLvDsykwNNBuE/2u2DdwaLsIXeL/TDxHlnNXYoOo8D6NggQJEiTIS5RfAgwAwPzrJ/KrwvYAAAAASUVORK5CYII=";var C=function(){if(r){e.pause(true);x.style.visibility="visible";x.style.opacity=1;try{e.getPlugin("display").hide();e.getPlugin("dock").hide()}catch(D){}}};function k(D){if(u.onclick=="play"){e.load(D);e.play()}else{window.top.location=D.link}}function z(D){if(u.oncomplete!==false){setTimeout(C,50)}}function l(D){if(D==r){console.log("RELATED: Failed to load "+D)}else{console.log("RELATED: "+D)}r=undefined;v.innerHTML="";d();if(u.usedock!==false){e.getPlugin("dock").setButton("related",C,B)}}function d(D){setTimeout(s,200);x.style.opacity=0;try{e.getPlugin("display").show();e.getPlugin("dock").show()}catch(E){}}function s(){x.style.visibility="hidden"}function q(E){r=undefined;v.innerHTML="";d();var D=e.getPlaylist()[E.index];if(D["related.file"]){r=D["related.file"]}else{if(u.file){r=u.file}}if(r){if(u.usedock!==false){e.getPlugin("dock").setButton("related",C,A)}a.utils.ajax(r,f,l)}else{l("No related videos file found")}}function f(E){var J=[];var K=[];try{J=a.utils.parsers.rssparser.parse(E.responseXML.firstChild)}catch(I){l("This feed is not valid XML and/or RSS.");return}for(var H=0;H<J.length;H++){if(J[H].image&&J[H].title&&((u.onclick=="play"&&J[H].file)||(u.onclick!="play"&&J[H].link))){K.push(J[H])}}if(K.length){var F=0;var L=0;i[4]=0;i[5]=0;for(var G=0;G<K.length;G++){var D=a.related.thumb(i[0],i[1],K[G],k);v.appendChild(D);n(D,{left:((i[0]+10)*F)+"px",top:((i[1]+10)*L)+"px"});i[4]=Math.max(i[4],i[0]*(F+1)+10*F);i[5]=Math.max(i[5],i[1]*(L+1)+10*L);if((i[0]+10)*(F+2)>i[2]){if((i[1]+10)*(L+2)>i[3]-80){break}else{L++;F=0}}else{F++}}c(i[2],i[3])}else{l("RSS feed has 0 entries that contain title,link and image.")}}function h(){if(e.getRenderingMode()=="flash"){return}e.onPlaylistItem(q);e.onComplete(z);n(x,o);x.onclick=d;t=document.createElement("div");n(t,j);n(t,{background:"transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAABKhJREFUeNrsWF1IY1cQvtGsVruSoCiKoqH+FVFvQClBxITimw/aLir4orCgxRfz5pOkqa9K1lSs+tCksKKomAgSlJImBRHqi0YRKihJ4y8oXuuu/z/TmXDvchH3p5uke6X3gyFzT85Jzndm5szMZRgZMmTIkCFDhoz/FwBAjfIM5bvHSkCJwgaDwd84jgOLxQI4vPSYCChQMq+vr394jUAdTk9Pwel0QklJCcTHx3/zGEh8jvLt1dXVKjwAsszY2Ngrq9X67FEQWVtbO4e34O7uDjY2NmBkZKRX8q6VmZkJZrMZDg4O3sYH1tfXoauryy51L2uOi4sDnU4Xio2TkxNwuVwwODgINzc3ISKXl5ehsZycnJeR+tPYKBDx3d7eBra3tw2zs7OfraysMKgzAwMDDF4CTFVVFRMbG8skJCQwaLXSxcVFNa6ZC/dPlVGyyi8o3uPjY83U1JRCqVQSCcDnL30+348syz5Rq9WMVquluVopxMRTlHKUr1G+QlG9Z36G2+3+ldzr4uICJicnKb94IrGXmDDXF+OG3Pjp3tra+qO9vf34PRu7zsrK+pMUhUIRcrFIIVwi15g3TklJSkpiCgoKSFW/Y74KA72CFIwj5uzsTDJEuL29vU2BSHl5OZOXl0c+zz7gVvEYJyXZ2dmhmDg/P2d2d3clkzeejo6O/oSnG7pW8YQBgxuQjI9OXzTvCYoBb689IZesrq5CZWVlxGIkbNTU1Jimp6ffJDt0NcDsDg6H43d8bEJ5jvIz5pBdYc7R0RH09vYSCekQSU9P/6Kpqekl5gv4EJDV6LZKS0sTKmJWMqk8MTHRgDkBMAG+kwRZor+/H5KTkwVr2KRYmthUKhU0NjbCzMwMbG5uwv7+PmBAh+JheHgYKioqAK9cgYRfHEdSgop3FfhAYRkZMmSIk6ceJWo5I+a/JOP1eg3RSoAx/+JEWRQLvUdAWeLHLHyK8KPU8mPNKCZ+jGB54LeaRd/TZw5vMZNoTq34OZIWoarWiE2RNzc3V9PZ2cnRGJbjLzAZajiOox6cyGiwgfoeC0hvfn5+AGGsr6+/T8bY1tbmxbUBbIc1VqvV29DQQC2AEdtfYfMtPT09VGCaIu7jHo9HyAF0gp7Dw0M/jZFOlqquriZrmfgXchw/z4SAvr6+Dn49zVW1trZyc3NzDrIIfU8bRt3W0dFBC2gdpKamkhs2R6vV9aL8RUp3d7dmeXmZVPJ9hvSJiQkDWoQe7cI8wvz8fF1paSmTkpJClg2YzWbv+Pi4lvoSEV4YjcYW7O+dWBU4saevw7G6aAe702AwMDs7O0bcoNFut1MvUqfT6ZZbWloYvV5/TL5PLrKwsOB801IWF5O7BIqKigxDQ0OBjIwMjfAduppPo9EsY6epRbcSDuPvaLmWh39WYVPlEF4k4ulSHPiDwaAFS3jw+0OxzOEa8nH/PdfyCIFOv2Gz2UCIBboI6K0kX4vVRusG1d+7PlV8BSvERLMQE6g7+M1wIj8Xr/eIikebUAnTepfLJaz7pIlPIGL6iLVkYa6srMz2yUt8igt+Ix9DhC0sLFwSbjwpVCQ5YWyElQoJGTJkSBD/CDAA0ma8tkQpWYgAAAAASUVORK5CYII=)"});t.onclick=y;x.appendChild(t);g=document.createElement("div");n(g,j);n(g,{background:"transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA0xJREFUeNrsVz1IW1EUjtKtQyh0yRQr2kFCIlHB7cUMBhpCXKKY5UVBnfwZWgUppFvHOEUkg84ucXBxeg1ChiKmUCQ0EV+K1Q4BnyKImujtOem95fp8pvTHeIX7weHlnXNeON+955x7rs0mISEhISEhISEh0UgQQoIgOyBvfuPnBvkM8lZEEiHCYWpqioA6buHnrVQqVeY3MzODfglhiFxfX1eICX19fRikypF4fnV1VTX7oQnELgSR9fX198QC/f39p2D2wM+nZ2dnJbN9aGiIEVFE2RRlcHCQwIrfIjMxMVG+vLz8aNZHIhFGQigimBqK1+vNn5yckHo4Pz8n4McI5EQicYNQR0fHzt7eniWJ3d1d4na7eRJ2m8Cw+/3+L1ZEVFV9NCSwOz07PDwsWhEBPenu7r7RzUQl8bJarX6tVyMXFxckEAgUhN0RiNEP58mNtgUtl8RiMbK/v3+L0MjIiC4cGYjrlTlQbMVdXV21mnA6neTo6OguMuIAVv67Ocienh5W2Bis4nK5vlmlmlDnyNLS0ms+uPHxcRaggSc7dfOEQqFT3m92dla8AxGCJNvb23xwKGGTnxoMBkmhUCDz8/O8n1C1kuACs5x+KeImv4RNQkLiUd3ZNZAHaaPN//sPfT7fh4c4E5r/YfXjIAY91xJ17CjTnD5Bv9FBwlRnp7tJ6NPTqBTCO7gOc9Rya2uroes66e3txQA1RVHI5OTktNlOdQoI3kMSeC+Zm5vDUz8MujQckEhWQ30+n89x08C9EolvbGyk6QzlpKJDMDoSWV1d1Xg7+gOIgkbYoVwuhys/3dbWhsEjQTzp9a2tLYPtDOjTfxLTk78lk81mB+DxDgTvHs6mpqYX7e3tGry3mO3sm0wm40P74uJiaXh4eKFYLJbgu07QLYyNjbWwMqPPgUbUyBrcMWywwLX8xndN036NI5ubm7wddysGxNZGR0cxuBWHw9GZTCYXjo+PMfhP+D00iRrRaDS6kkqlShyhe08v1TB+1vrBwcEy3sGBDKZPbZLFdKJ2A1IG7TpNLVbUBqQgNgl08pTL5RxrApFIBPVaI7ueSsd0fvDTuPYbp3aDGyDt1IeN+Ozu7uH0ekOKXUJCQkJCguKHAAMAvduPUQLB93IAAAAASUVORK5CYII=)"});g.onclick=d;x.appendChild(g);w=document.createElement("div");if(u.heading){w.innerHTML=u.heading}else{w.innerHTML="Watch related videos"}n(w,p);x.appendChild(w);v=document.createElement("div");x.appendChild(v);n(v,{position:"absolute"})}e.onReady(h);this.resize=function(F,D){if(e.getRenderingMode()=="flash"){return}if(!i){i=[140,80,F,D,0,0];if(u.dimensions){var G=u.dimensions.split("x");for(var E=0;E<2;E++){i[E]=Number(G[E])}}}c(F,D)};function c(E,D){n(x,{height:D+"px",width:E+"px"});n(g,{left:(E-50)+"px"});n(v,{left:Math.round(E/2-i[4]/2)+"px",top:Math.round(D/2-i[5]/2)+"px"});n(w,{left:Math.round(E/2-i[4]/2)+"px",width:i[4]+"px",top:Math.round(D/2-i[5]/2-30)+"px"})}function y(D){e.seek(0)}function n(D,E){for(var F in E){D.style[F]=E[F]}}};a().registerPlugin("related",b,"./related.swf")})(jwplayer);(function(a){if(a.related){return}a.related={};a.related.thumb=function(f,h,n,p){var c;var e={border:"1px solid #000",webkitBoxShadow:"0 0 4px #000",MozBoxShadow:"0 0 4px #000",msBoxShadow:"0 0 4px #000",boxShadow:"0 0 4px #000",backgroundColor:"#000",backgroundSize:"cover",position:"absolute",textDecoration:"none",display:"block",margin:"0 0 0 0",padding:"0 0 0 0"};var k;var o={psition:"absolute",left:"0px",top:"0px",border:"none",margin:"0 0 0 0",padding:"0 0 0 0"};var m;var j={backgroundColor:"rgba(0,0,0,0.8)",left:"0px",position:"absolute",border:"none",color:"#FFF",display:"block",font:"12px/26px Arial,sans-serif",overflow:"hidden",margin:"0 0 0 0",textAlign:"center",textDecoration:"none",textTransform:"none",padding:"0 0 0 0",height:"26px"};function g(q){d(c,{border:"1px solid #FFF",webkitBoxShadow:"0 0 4px #FFF",MozBoxShadow:"0 0 4px #FFF",msBoxShadow:"0 0 4px #FFF",boxShadow:"0 0 4px #FFF"})}function l(q){d(c,{border:"1px solid #000",webkitBoxShadow:"0 0 4px #000",MozBoxShadow:"0 0 4px #000",msBoxShadow:"0 0 4px #000",boxShadow:"0 0 4px #000"})}function b(q){p(n)}function i(){c=document.createElement("div");c.onclick=b;c.onmouseout=l;c.onmouseover=g;d(c,e);d(c,{backgroundImage:"url("+n.image+")",width:(f-2)+"px",height:(h-2)+"px"});k=document.createElement("img");k.setAttribute("src","data:image/png;base64,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");d(k,o);d(k,{width:f-2+"px",height:h-20+"px"});c.appendChild(k);m=document.createElement("div");m.innerHTML=n.title;d(m,j);d(m,{top:(h-28)+"px",width:(f-2)+"px"});c.appendChild(m);return c}function d(q,r){for(var s in r){q.style[s]=r[s]}}return i()}})(jwplayer); -
plugins/related/src/as/Related.as
r1944 r1957 63 63 private function _backHandler(evt:MouseEvent):void { hide(); }; 64 64 65 66 /** A thumbnail is clicked. **/ 67 private function _clickHandler(item:Object):void { 68 if(_config.onclick == 'play') { 69 _player.load(item); 70 _player.play(); 71 } else { 72 navigateToURL(new URLRequest(item.link),'_top'); 73 } 74 }; 65 75 66 76 /** Display the related items on complete. **/ … … 202 212 var related:Array = new Array(); 203 213 for (var i:Number = 0; i < rss.length; i++) { 204 if(rss[i].image && rss[i].link && rss[i].title) { 205 var entry:Object = { 206 image: rss[i].image, 207 link: rss[i].link 208 } 209 if(_config.titles !== false) { 210 entry.title = rss[i].title 211 } 212 related.push(entry); 214 if(rss[i].image && rss[i].title && ( 215 (_config.onclick == 'play' && rss[i].file) || 216 (_config.onclick != 'play' && rss[i].link))) { 217 related.push(rss[i]); 213 218 } 214 219 } … … 220 225 _dimensions[0], 221 226 _dimensions[1], 222 related[j].image, 223 related[j].link, 224 related[j].title 227 related[j], 228 _clickHandler 225 229 ); 226 230 thumb.x = (_dimensions[0]+10) * col; 227 231 thumb.y = (_dimensions[1]+10) * row; 228 232 _grid.addChild(thumb); 229 if(col == _dimensions[2]-1 || 230 (_dimensions[0]+10)*(col+2) > _dimensions[4]) { 231 if(row == _dimensions[3]-1 || 232 (_dimensions[1]+10)*(row+2) > _dimensions[5]-40) { 233 if((_dimensions[0]+10)*(col+2) > _dimensions[2]) { 234 if((_dimensions[1]+10)*(row+2) > _dimensions[3]-80) { 233 235 break; 234 236 } else { … … 240 242 } 241 243 } 242 resize(_dimensions[ 4],_dimensions[5]);244 resize(_dimensions[2],_dimensions[3]); 243 245 } else { 244 246 _errorHandler(new ErrorEvent(ErrorEvent.ERROR,false,false, … … 266 268 _heading.x = Math.round(width/2 - _heading.width/2); 267 269 // Store thumb dimensions on first resize. 268 _dimensions = [140,80, 5,2,width,height];270 _dimensions = [140,80,width,height]; 269 271 if(_config.dimensions) { 270 var dim:Array = _config.dimensions.split(' ,');271 for(var i:Number=0; i< dim.length; i++) {272 var dim:Array = _config.dimensions.split('x'); 273 for(var i:Number=0; i<2; i++) { 272 274 _dimensions[i] = Number(dim[i]); 273 275 } -
plugins/related/src/as/RelatedThumb.as
r1944 r1957 21 21 /** Background for the entire thumb. **/ 22 22 private var _back:Sprite; 23 /** The link to redirect to. **/ 24 private var _link:String; 23 /** The handler to report clicks to. **/ 24 private var _click:Function; 25 /** The related item that was loaded. **/ 26 private var _item:Object; 25 27 /** Container that imports the preview thumbnail **/ 26 28 private var _loader:Loader; … … 42 44 43 45 /** Constructor. **/ 44 public function RelatedThumb(width:Number,height:Number,i mage:String,link:String,title:String=null) {46 public function RelatedThumb(width:Number,height:Number,item:Object,click:Function) { 45 47 _width = width; 46 48 _height = height; 47 _link = link; 49 _item = item; 50 _click = click; 48 51 _back = new Sprite(); 49 52 _back.graphics.beginFill(0,1); … … 53 56 _loader = new Loader(); 54 57 _loader.contentLoaderInfo.addEventListener(Event.COMPLETE,_loaderHandler); 55 _loader.load(new URLRequest(i mage));58 _loader.load(new URLRequest(item.image)); 56 59 addChild(_loader); 57 60 _mask = new Sprite(); … … 66 69 _glow.scaleY = _glow.scaleX; 67 70 addChild(_glow); 68 if(title) { 69 _overlay = new Sprite(); 70 _overlay.graphics.beginFill(0,0.8); 71 _overlay.graphics.drawRect(1,height-27,width-2,26); 72 addChild(_overlay); 73 _field = new TextField(); 74 _field.height = 20; 75 _field.width = width-10; 76 _field.x = 5; 77 _field.y = height-22; 78 _format = new TextFormat('Arial', 12, 0xFFFFFF); 79 _format.align = 'center'; 80 _field.defaultTextFormat = _format; 81 _field.selectable = false; 82 _field.text = title; 83 addChild(_field); 84 } 71 _overlay = new Sprite(); 72 _overlay.graphics.beginFill(0,0.8); 73 _overlay.graphics.drawRect(1,height-27,width-2,26); 74 addChild(_overlay); 75 _field = new TextField(); 76 _field.height = 20; 77 _field.width = width-10; 78 _field.x = 5; 79 _field.y = height-22; 80 _format = new TextFormat('Arial', 12, 0xFFFFFF); 81 _format.align = 'center'; 82 _field.defaultTextFormat = _format; 83 _field.selectable = false; 84 _field.text = item.title; 85 addChild(_field); 85 86 buttonMode = true; 86 87 mouseChildren = false; … … 92 93 93 94 /** Redirect on thumb click. **/ 94 private function _clickHandler(event:MouseEvent):void { 95 navigateToURL(new URLRequest(_link),'_top');95 private function _clickHandler(event:MouseEvent):void { 96 _click(_item); 96 97 }; 97 98 -
plugins/related/src/js/related.js
r1944 r1957 87 87 88 88 89 /** Link or play when a thumb is clicked. **/ 90 function _click(item) { 91 if(_options.onclick == 'play') { 92 _player.load(item); 93 _player.play(); 94 } else { 95 window.top.location = item.link; 96 } 97 }; 98 99 89 100 /** Display the related items on complete. **/ 90 101 function _complete(event) { … … 164 175 } 165 176 for (var i=0; i < rss.length; i++) { 166 if(rss[i].image && rss[i].link && rss[i].title) { 167 var obj = { link: rss[i].link, image: rss[i].image }; 168 if(_options.titles !== false) { 169 obj.title = rss[i].title; 170 } 171 related.push(obj); 177 if(rss[i].image && rss[i].title && ( 178 (_options.onclick == 'play' && rss[i].file) || 179 (_options.onclick != 'play' && rss[i].link))) { 180 related.push(rss[i]); 172 181 } 173 182 } … … 176 185 var col = 0; 177 186 var row = 0; 187 _dimensions[4] = 0; 188 _dimensions[5] = 0; 178 189 for(var j = 0; j < related.length; j++) { 179 190 // Append new thumb to grid. … … 181 192 _dimensions[0], 182 193 _dimensions[1], 183 related[j].image, 184 related[j].link, 185 related[j].title 194 related[j], 195 _click 186 196 ); 187 197 _grid.appendChild(thumb); … … 191 201 }); 192 202 // Store the new grid width and height 193 _dimensions[ 6] = Math.max(_dimensions[6],_dimensions[0]*(col+1)+10*col)194 _dimensions[ 7] = Math.max(_dimensions[7],_dimensions[1]*(row+1)+10*row)203 _dimensions[4] = Math.max(_dimensions[4],_dimensions[0]*(col+1)+10*col) 204 _dimensions[5] = Math.max(_dimensions[5],_dimensions[1]*(row+1)+10*row) 195 205 // Calculate column/row wrapping. 196 if(col == _dimensions[2]-1 || 197 (_dimensions[0]+10)*(col+2) > _dimensions[4]) { 198 if(row == _dimensions[3]-1 || 199 (_dimensions[1]+10)*(row+2) > _dimensions[5]-40) { 206 if((_dimensions[0]+10)*(col+2) > _dimensions[2]) { 207 if((_dimensions[1]+10)*(row+2) > _dimensions[3]-80) { 200 208 break; 201 209 } else { … … 207 215 } 208 216 } 209 _reposition(_dimensions[ 4],_dimensions[5]);217 _reposition(_dimensions[2],_dimensions[3]); 210 218 } else { 211 219 _error("RSS feed has 0 entries that contain title,link and image."); … … 250 258 if(_player.getRenderingMode() == 'flash') { return; } 251 259 if(!_dimensions) { 252 _dimensions = [140,80, 5,2,width,height,0,0];260 _dimensions = [140,80,width,height,0,0]; 253 261 if(_options.dimensions) { 254 var dim = _options.dimensions.split(' ,');255 for(var i=0; i< 4; i++) {262 var dim = _options.dimensions.split('x'); 263 for(var i=0; i<2; i++) { 256 264 _dimensions[i] = Number(dim[i]); 257 265 } … … 270 278 _style(_close,{left: (width-50)+'px'}); 271 279 _style(_grid,{ 272 left: Math.round(width/2 - _dimensions[ 6]/2)+'px',273 top: Math.round(height/2 - _dimensions[ 7]/2)+'px'280 left: Math.round(width/2 - _dimensions[4]/2)+'px', 281 top: Math.round(height/2 - _dimensions[5]/2)+'px' 274 282 }); 275 283 _style(_heading,{ 276 left: Math.round(width/2 - _dimensions[ 6]/2)+'px',277 width: _dimensions[ 6]+'px',278 top: Math.round(height/2 - _dimensions[ 7]/2 - 30)+'px'284 left: Math.round(width/2 - _dimensions[4]/2)+'px', 285 width: _dimensions[4]+'px', 286 top: Math.round(height/2 - _dimensions[5]/2 - 30)+'px' 279 287 }); 280 288 }; -
plugins/related/src/js/related.thumb.js
r1944 r1957 7 7 if(jwplayer.related) { return; } 8 8 jwplayer.related = {}; 9 jwplayer.related.thumb = function(_width,_height,_i mage,_link,_title) {9 jwplayer.related.thumb = function(_width,_height,_item,_handler) { 10 10 11 11 … … 83 83 84 84 85 /** Call the click handler when thumb is clicked. **/ 86 function _click(event) { 87 _handler(_item); 88 }; 89 90 85 91 /** Create all elements. **/ 86 92 function _setup() { 87 _back = document.createElement("a"); 88 _back.setAttribute('href',_link); 89 _back.setAttribute('target','_top'); 93 _back = document.createElement("div"); 94 _back.onclick = _click; 90 95 _back.onmouseout = _out; 91 96 _back.onmouseover = _over; 92 97 _style(_back,_backStyle); 93 98 _style(_back,{ 94 backgroundImage: 'url('+_i mage+')',99 backgroundImage: 'url('+_item.image+')', 95 100 width: (_width-2)+'px', 96 101 height: (_height-2)+'px' … … 104 109 }); 105 110 _back.appendChild(_glow); 106 if(_title) { 107 _text = document.createElement('div'); 108 _text.innerHTML = _title; 109 _style(_text,_textStyle); 110 _style(_text,{ 111 top: (_height-28) + 'px', 112 width: (_width-2) + 'px' 113 }); 114 _back.appendChild(_text); 115 } 111 _text = document.createElement('div'); 112 _text.innerHTML = _item.title; 113 _style(_text,_textStyle); 114 _style(_text,{ 115 top: (_height-28) + 'px', 116 width: (_width-2) + 'px' 117 }); 118 _back.appendChild(_text); 116 119 return _back; 117 120 } -
plugins/related/test/assets/blender.xml
r1940 r1957 1 <rss version="2.0" xmlns:media="http://search.yahoo.com/mrss/"> 1 <rss version="2.0" xmlns:media="http://search.yahoo.com/mrss/" 2 xmlns:jwplayer="http://developer.longtailvideo.com/trac/wiki/FlashFormats"> 2 3 <channel> 3 4 <item> 4 5 <title>Big Buck Bunny</title> 5 6 <link>http://content.bitsontherun.com/previews/ntPYsD4L-ALJ3XQCI</link> 6 <media:thumbnail url="http://content.bitsontherun.com/thumbs/ntPYsD4L-320.jpg" /> 7 <media:content url="http://content.bitsontherun.com/videos/ntPYsD4L.mp4" /> 8 <media:thumbnail url="http://content.bitsontherun.com/thumbs/ntPYsD4L.jpg" /> 9 <jwplayer:related.file>assets/blender.xml</jwplayer:related.file> 7 10 </item> 8 11 <item> 9 12 <title>Elephants Dream</title> 10 13 <link>http://content.bitsontherun.com/previews/LJSVMnCF-ALJ3XQCI</link> 11 <media:thumbnail url="http://content.bitsontherun.com/thumbs/LJSVMnCF-320.jpg" /> 14 <media:content url="http://content.bitsontherun.com/videos/LJSVMnCF.mp4" /> 15 <media:thumbnail url="http://content.bitsontherun.com/thumbs/LJSVMnCF.jpg" /> 16 <jwplayer:related.file>assets/blender.xml</jwplayer:related.file> 12 17 </item> 13 18 <item> 14 19 <title>Sintel</title> 15 20 <link>http://content.bitsontherun.com/previews/r3ABWwdO-ALJ3XQCI</link> 16 <media:thumbnail url="http://content.bitsontherun.com/thumbs/r3ABWwdO-320.jpg" /> 21 <media:content url="http://content.bitsontherun.com/videos/r3ABWwdO.mp4" /> 22 <media:thumbnail url="http://content.bitsontherun.com/thumbs/r3ABWwdO.jpg" /> 23 <jwplayer:related.file>assets/screencasts.xml</jwplayer:related.file> 17 24 </item> 18 25 </channel> -
plugins/related/test/assets/heineken.xml
r1940 r1957 88 88 <media:thumbnail url="http://i.ytimg.com/vi/ozWu3lzE8d0/0.jpg" height="90" width="120" time="00:01:26"/> 89 89 </item> 90 <item>91 <title>Northampton Saints vs Perpignan - Heineken Cup semi final - 2011</title>92 <link>http://www.youtube.com/watch?v=Olqz6eIUL_Y&feature=youtube_gdata</link>93 <media:thumbnail url="http://i.ytimg.com/vi/Olqz6eIUL_Y/0.jpg" height="90" width="120" time="00:02:47.500"/>94 </item>95 <item>96 <title>Heineken Open Design Explorations</title>97 <link>http://www.youtube.com/watch?v=zsszRzTPft4&feature=youtube_gdata</link>98 <media:thumbnail url="http://i.ytimg.com/vi/zsszRzTPft4/0.jpg" height="90" width="120" time="00:00:50.500"/>99 </item>100 90 </channel> 101 91 </rss> -
plugins/related/test/assets/screencasts.xml
r1944 r1957 1 <rss version="2.0" xmlns:media="http://search.yahoo.com/mrss/" >1 <rss version="2.0" xmlns:media="http://search.yahoo.com/mrss/" xmlns:jwplayer="http://developer.longtailvideo.com/trac/wiki/FlashFormats"> 2 2 <channel> 3 3 <item> 4 4 <title>Uploading videos</title> 5 5 <link>http://content.bitsontherun.com/previews/sFLjZ5Ne-izMKc5WX</link> 6 <media:thumbnail url="http://content.bitsontherun.com/thumbs/sFLjZ5Ne-320.jpg" /> 6 <media:content url="http://content.bitsontherun.com/videos/sFLjZ5Ne.mp4" /> 7 <media:thumbnail url="http://content.bitsontherun.com/thumbs/sFLjZ5Ne.jpg" /> 8 <jwplayer:related.file>assets/screencasts.xml</jwplayer:related.file> 7 9 </item> 8 10 <item> 9 11 <title>Creating playlists</title> 10 12 <link>http://content.bitsontherun.com/previews/WhmFbPBE-izMKc5WX</link> 11 <media:thumbnail url="http://content.bitsontherun.com/thumbs/WhmFbPBE-320.jpg" /> 13 <media:content url="http://content.bitsontherun.com/videos/WhmFbPBE.mp4" /> 14 <media:thumbnail url="http://content.bitsontherun.com/thumbs/WhmFbPBE.jpg" /> 15 <jwplayer:related.file>assets/screencasts.xml</jwplayer:related.file> 12 16 </item> 13 17 <item> 14 18 <title>Building players</title> 15 19 <link>http://content.bitsontherun.com/previews/f3oBo7sS-izMKc5WX</link> 16 <media:thumbnail url="http://content.bitsontherun.com/thumbs/f3oBo7sS-320.jpg" /> 20 <media:content url="http://content.bitsontherun.com/videos/f3oBo7sS.mp4" /> 21 <media:thumbnail url="http://content.bitsontherun.com/thumbs/f3oBo7sS.jpg" /> 22 <jwplayer:related.file>assets/screencasts.xml</jwplayer:related.file> 17 23 </item> 18 24 <item> 19 25 <title>Video Analytics</title> 20 26 <link>http://content.bitsontherun.com/previews/erpBm96r-izMKc5WX</link> 21 <media:thumbnail url="http://content.bitsontherun.com/thumbs/erpBm96r-320.jpg" /> 27 <media:content url="http://content.bitsontherun.com/videos/erpBm96r.mp4" /> 28 <media:thumbnail url="http://content.bitsontherun.com/thumbs/erpBm96r.jpg" /> 29 <jwplayer:related.file>assets/screencasts.xml</jwplayer:related.file> 22 30 </item> 23 31 <item> 24 32 <title>Reseller overview</title> 25 33 <link>http://content.bitsontherun.com/previews/yDtLAunz-izMKc5WX</link> 26 <media:thumbnail url="http://content.bitsontherun.com/thumbs/yDtLAunz-320.jpg" /> 34 <media:content url="http://content.bitsontherun.com/videos/yDtLAunz.mp4" /> 35 <media:thumbnail url="http://content.bitsontherun.com/thumbs/yDtLAunz.jpg" /> 36 <jwplayer:related.file>assets/blender.xml</jwplayer:related.file> 27 37 </item> 28 38 </channel> -
plugins/related/test/basic.html
r1938 r1957 1 <html> 1 <!DOCTYPE html> 2 <html lang="en"> 2 3 <head> 3 4 -
plugins/related/test/compatibility.html
r1938 r1957 1 <html> 1 <!DOCTYPE html> 2 <html lang="en"> 2 3 <head> 3 4 -
plugins/related/test/css.html
r1944 r1957 1 <html> 1 <!DOCTYPE html> 2 <html lang="en"> 2 3 <head> 3 4 -
plugins/related/test/dimensions.html
r1944 r1957 1 <html> 1 <!DOCTYPE html> 2 <html lang="en"> 2 3 <head> 3 4 … … 23 24 function reload(width,height,feed) { 24 25 var dimensions = document.getElementById("dimWidth").value + 25 "," + document.getElementById("dimHeight").value + 26 "," + document.getElementById("dimCols").value + 27 "," + document.getElementById("dimRows").value; 26 "x" + document.getElementById("dimHeight").value; 28 27 jwplayer("player").setup({ 29 28 file: 'http://content.bitsontherun.com/videos/nPripu9l-327.mp4', … … 46 45 47 46 <form> 48 <label>Width:</label><input type="text" id="dimWidth" value="140" /> 49 <label>Height:</label><input type="text" id="dimHeight" value="80" /> 50 <label>Cols:</label><input type="text" id="dimCols" value="5" /> 51 <label>Rows:</label><input type="text" id="dimRows" value="2" /> 47 <label>Thumb width:</label><input type="text" id="dimWidth" value="140" /> 48 <label>Thumb height:</label><input type="text" id="dimHeight" value="80" /> 52 49 </form> 53 50 … … 83 80 The related videos overlay should look good in various dimensions.<br /> 84 81 The larger the screen, the mover videos will fit.<br/> 85 The re is a maximum of 3 rows and 5 columns.82 The dimensions of a thumb can be changed to tweak the looks. 86 83 </p> 87 84 -
plugins/related/test/errors.html
r1944 r1957 1 <html> 1 <!DOCTYPE html> 2 <html lang="en"> 2 3 <head> 3 4 … … 28 29 '../related.js': { 29 30 file: feed, 31 onclick: 'play' 30 32 } 31 33 }, -
plugins/related/test/index.html
r1944 r1957 1 <html> 1 <!DOCTYPE html> 2 <html lang="en"> 2 3 <head> 3 4 -
plugins/related/test/modes.html
r1940 r1957 1 <html> 1 <!DOCTYPE html> 2 <html lang="en"> 2 3 <head> 3 4 … … 27 28 plugins: { 28 29 '../related.js': { 29 file: 'assets/blender.xml' 30 file: 'assets/blender.xml', 31 onclick: 'play' 30 32 } 31 33 }, -
plugins/related/test/options.html
r1944 r1957 1 <html> 1 <!DOCTYPE html> 2 <html lang="en"> 2 3 <head> 3 4 … … 19 20 20 21 <script type="text/javascript"> 21 function reload(oncomplete,usedock, titles,heading) {22 function reload(oncomplete,usedock,onclick,heading) { 22 23 jwplayer("player").setup({ 23 24 file: 'http://content.bitsontherun.com/videos/nPripu9l-327.mp4', … … 29 30 file: 'assets/blender.xml', 30 31 oncomplete: oncomplete, 31 titles: titles,32 onclick: onclick, 32 33 usedock: usedock, 33 34 heading: heading … … 41 42 42 43 <ul> 43 <li><a href="javascript:reload(true,true, true,'Watch related videos');">Oncomplete +dock enabled</a></li>44 <li><a href="javascript:reload(true,false, true,'Watch some additional related videos');">Only oncomplete, long heading</a></li>45 <li><a href="javascript:reload(false,true, true,'ÙÙØØ© اÙÙ44 <li><a href="javascript:reload(true,true,'link','Watch related videos');">Oncomplete and dock enabled</a></li> 45 <li><a href="javascript:reload(true,false,'link','Watch some additional related videos');">Only oncomplete, long heading</a></li> 46 <li><a href="javascript:reload(false,true,'link','ÙÙØØ© اÙÙ 46 47 ÙØ§ØªÙØ Ø§ÙØ¹Ø±ØšÙØ©');">Only the dock, arab heading</a></li> 47 <li><a href="javascript:reload(false,true,false,'ÙÙØØ© اÙÙ 48 ÙØ§ØªÙØ Ø§ÙØ¹Ø±ØšÙØ©');">Only the dock, no thumb titles</a></li> 48 <li><a href="javascript:reload(true,true,'play',' ');">Onclick set to play, empty heading</a></li> 49 49 </ul> 50 50 … … 53 53 The oncomplete option (true/false) determines whether related thumbs are shown at the end of the video.<br /> 54 54 The usedock option (true/false) determines whether a related dock button is shown.<br/> 55 A custom heading replaces the default <em>Watch more videos</em>. 55 A custom heading replaces the default <em>Watch more videos</em>.<br/> 56 When the onclick is set to <em>play</em>, related videos play inline instead of getting linked off.<br/> 56 57 </p> 57 58 -
plugins/related/test/playlist.html
r1940 r1957 1 <html> 1 <!DOCTYPE html> 2 <html lang="en"> 2 3 <head> 3 4 … … 27 28 width: 880 28 29 }; 29 if(typeof(list) == 'string') { 30 if(typeof(list) == 'string') { 30 31 options.file = list; 31 32 } else {
Note: See TracChangeset
for help on using the changeset viewer.
