Changeset 2368
- Timestamp:
- 08/13/12 16:13:19 (9 months ago)
- Location:
- plugins/related
- Files:
-
- 6 edited
-
related.js (modified) (1 diff)
-
related.swf (modified) (previous)
-
src/as/Related.as (modified) (10 diffs)
-
src/js/related.js (modified) (10 diffs)
-
test/errors.html (modified) (2 diffs)
-
test/modes.html (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
plugins/related/related.js
r2364 r2368 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 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(B,50)}}function B(D){if(e.getState()=="IDLE"){C()}}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")}}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);e.onPlay(d);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",overflow:"hidden"};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/16px Arial,sans-serif",margin:"0 0 0 0",textAlign:"center",textDecoration:"none",textTransform:"none",padding:"5px"};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);var q=Math.ceil(n.title.length*6/f);d(m,{width:(f-10)+"px",top:(h-10-q*16)+"px"});c.appendChild(m);return c}function d(q,r){for(var s in r){q.style[s]=r[s]}}return i()}})(jwplayer);1 (function(a){var b=function(e,y,B){var n;var g;var j;var u;var A;var z;var x;var q;var r;var l={cursor:"pointer",position:"absolute",left:"0px",top:"0px",margin:"0px",padding:"0px",display:"block",width:"50px",height:"50px"};var p={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 s={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 E="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 G=function(){e.pause(true);B.style.visibility="visible";B.style.opacity=1;try{e.getPlugin("display").hide();e.getPlugin("dock").hide()}catch(I){}if(q==false){H()}};function k(I){if(y.onclick=="play"){e.load(I);e.play()}else{window.top.location=I.link}}function D(I){if(y.oncomplete!==false){setTimeout(F,50)}}function F(I){if(e.getState()=="IDLE"){G()}}function m(I){if(I==u){console.log("RELATED: Failed to load "+I)}else{console.log("RELATED: "+I)}z.innerHTML="";A.innerHTML="No related videos found";j[4]=200;j[5]=0;c(j[2],j[3])}function d(I){setTimeout(v,200);B.style.opacity=0;try{e.getPlugin("display").show();e.getPlugin("dock").show()}catch(J){}}function v(){B.style.visibility="hidden"}function t(J){q=false;u=undefined;r=[];z.innerHTML="";d();var I=e.getPlaylist()[J.index];if(I["related.file"]){u=I["related.file"]}else{if(y.file){u=y.file}}if(y.usedock!==false){e.getPlugin("dock").setButton("related",G,E)}}function H(){q=true;if(u){a.utils.ajax(u,f,m)}else{m("No related videos file found")}}function f(J){var L=[];try{L=a.utils.parsers.rssparser.parse(J.responseXML.firstChild)}catch(K){m("This feed is not valid XML and/or RSS.");return}for(var I=0;I<L.length;I++){if(L[I].image&&L[I].title&&((y.onclick=="play"&&L[I].file)||(y.onclick!="play"&&L[I].link))){r.push(L[I])}}w()}function w(){z.innerHTML="";if(r!==undefined&&r.length){var K=0;var L=0;j[4]=0;j[5]=0;for(var J=0;J<r.length;J++){var I=a.related.thumb(j[0],j[1],r[J],k);z.appendChild(I);o(I,{left:((j[0]+10)*K)+"px",top:((j[1]+10)*L)+"px"});j[4]=Math.max(j[4],j[0]*(K+1)+10*K);j[5]=Math.max(j[5],j[1]*(L+1)+10*L);if((j[0]+10)*(K+2)>j[2]){if((j[1]+10)*(L+2)>j[3]-80){break}else{L++;K=0}}else{K++}}h("Watch related videos");c(j[2],j[3])}else{m("RSS feed has 0 entries that contain title,link and image.")}}function i(){if(e.getRenderingMode()=="flash"){return}e.onPlaylistItem(t);e.onComplete(D);o(B,p);B.onclick=d;x=document.createElement("div");o(x,l);o(x,{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=)"});x.onclick=C;B.appendChild(x);g=document.createElement("div");o(g,l);o(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;B.appendChild(g);A=document.createElement("div");h("Watch related videos");o(A,s);B.appendChild(A);z=document.createElement("div");B.appendChild(z);o(z,{position:"absolute"})}e.onReady(i);e.onPlay(d);function h(I){if(y.heading){A.innerHTML=y.heading}else{A.innerHTML=I}}this.resize=function(K,I){if(e.getRenderingMode()=="flash"){return}j=[140,80,K,I,200,0];if(y.dimensions){var L=y.dimensions.split("x");for(var J=0;J<2;J++){j[J]=Number(L[J])}}w()};function c(J,I){o(B,{height:I+"px",width:J+"px"});o(g,{left:(J-50)+"px"});o(z,{left:Math.round(J/2-j[4]/2)+"px",top:Math.round(I/2-j[5]/2)+"px"});o(A,{left:Math.round(J/2-j[4]/2)+"px",width:j[4]+"px",top:Math.round(I/2-j[5]/2-30)+"px"})}function C(I){e.seek(0)}function o(I,J){for(var K in J){I.style[K]=J[K]}}};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",overflow:"hidden"};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/16px Arial,sans-serif",margin:"0 0 0 0",textAlign:"center",textDecoration:"none",textTransform:"none",padding:"5px"};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);var q=Math.ceil(n.title.length*6/f);d(m,{width:(f-10)+"px",top:(h-10-q*16)+"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
r2364 r2368 2 2 3 3 import com.longtailvideo.jwplayer.events.*; 4 import com.longtailvideo.jwplayer.parsers.*; 4 5 import com.longtailvideo.jwplayer.player.*; 5 6 import com.longtailvideo.jwplayer.plugins.*; 6 7 import com.longtailvideo.jwplayer.utils.*; 7 import com.longtailvideo.jwplayer.parsers.*; 8 8 9 9 import flash.display.*; 10 10 import flash.events.*; … … 58 58 /** The latest player playback state. **/ 59 59 private var _state:String; 60 /** Flag to remember if related videos have been loaded. **/ 61 private var _isLoaded:Boolean; 62 /** Array of related videos **/ 63 private var _related:Array; 60 64 61 65 … … 97 101 private function _errorHandler(evt:ErrorEvent):void { 98 102 Logger.log(evt.text,id); 99 _file = undefined; 100 if(_button) { 101 _button.visible = false; 102 } 103 }; 103 _heading.htmlText = "No related videos found"; 104 _resizeGrid(_dimensions[2],_dimensions[3]); 105 }; 106 107 private function _setHeading (new_heading:String):void { 108 if(_config.heading !== undefined) { 109 _heading.htmlText = _config.heading; 110 } else { 111 _heading.htmlText = "Watch related videos"; 112 } 113 } 104 114 105 115 /** Hide the list with related videos. **/ … … 165 175 _heading.selectable = false; 166 176 _heading.filters = new Array(new DropShadowFilter(1,45,0,1,1,1,1)); 167 if(_config.heading !== undefined) { 168 _heading.htmlText = _config.heading; 169 } else { 170 _heading.htmlText = "Watch related videos"; 171 } 177 _setHeading("Watch related videos"); 178 172 179 _container.addChild(_heading); 173 180 // Add the grid for thumbs … … 181 188 // Reset old data 182 189 _file = undefined; 190 _related = new Array(); 191 _isLoaded = false; 183 192 while(_grid.numChildren > 0) { 184 193 _grid.removeChildAt(0); … … 194 203 if(_player.playlist.currentItem['ova.hidden']) { 195 204 if(_button) { _button.visible = false; } 196 } else if(_file) { 197 _loader.load(new URLRequest(_file)); 198 if(_button) { _button.visible = true; } 199 } else { 200 if(_button) { _button.visible = false; } 201 } 202 }; 203 205 } 206 }; 207 208 private function _load():void { 209 _isLoaded = true; 210 if(_file) { 211 _loader.load(new URLRequest(_file)); 212 if(_button) { _button.visible = true; } 213 } else { 214 _errorHandler(new ErrorEvent(ErrorEvent.ERROR,false,false,"No related videos found")); 215 } 216 } 204 217 205 218 /** Loader has loaded the mRSS feed. **/ … … 212 225 return; 213 226 } 214 var related:Array = new Array();227 215 228 for (var i:Number = 0; i < rss.length; i++) { 216 229 if(rss[i].image && rss[i].title && ( 217 230 (_config.onclick == 'play' && rss[i].file) || 218 231 (_config.onclick != 'play' && rss[i].link))) { 219 related.push(rss[i]);232 _related.push(rss[i]); 220 233 } 221 } 222 if(related.length) { 223 var col:Number = 0; 224 var row:Number = 0; 225 for(var j:Number = 0; j < related.length; j++) { 226 var thumb:RelatedThumb = new RelatedThumb( 227 _dimensions[0], 228 _dimensions[1], 229 related[j], 230 _clickHandler 231 ); 232 thumb.x = (_dimensions[0]+10) * col; 233 thumb.y = (_dimensions[1]+10) * row; 234 _grid.addChild(thumb); 235 if((_dimensions[0]+10)*(col+2) > _dimensions[2]) { 236 if((_dimensions[1]+10)*(row+2) > _dimensions[3]-80) { 237 break; 238 } else { 239 row++; 240 col = 0; 241 } 242 } else { 243 col++; 244 } 245 } 246 resize(_dimensions[2],_dimensions[3]); 247 } else { 248 _errorHandler(new ErrorEvent(ErrorEvent.ERROR,false,false, 249 "RSS feed has 0 entries that contain title,link and image.")); 250 } 251 }; 252 234 } 235 236 _repaint(); 237 }; 238 239 private function _repaint():void { 240 while(_grid.numChildren > 0) { 241 _grid.removeChildAt(0); 242 } 243 244 if(_related.length) { 245 var col:Number = 0; 246 var row:Number = 0; 247 for(var j:Number = 0; j < _related.length; j++) { 248 var thumb:RelatedThumb = new RelatedThumb( 249 _dimensions[0], 250 _dimensions[1], 251 _related[j], 252 _clickHandler 253 ); 254 thumb.x = (_dimensions[0]+10) * col; 255 thumb.y = (_dimensions[1]+10) * row; 256 _grid.addChild(thumb); 257 if((_dimensions[0]+10)*(col+2) > _dimensions[2]) { 258 if((_dimensions[1]+10)*(row+2) > _dimensions[3]-80) { 259 break; 260 } else { 261 row++; 262 col = 0; 263 } 264 } else { 265 col++; 266 } 267 } 268 _setHeading("Watch related videos"); 269 _resizeGrid(_dimensions[2], _dimensions[3]); 270 } else { 271 _errorHandler(new ErrorEvent(ErrorEvent.ERROR,false,false, 272 "RSS feed has 0 entries that contain title,link and image.")); 273 } 274 } 253 275 254 276 /** The replay button was clicked. **/ … … 258 280 }; 259 281 282 private function _resizeGrid(width:Number, height:Number):void { 283 _grid.x = Math.round(width/2 - _grid.width/2); 284 _grid.y = Math.round(height/2 - _grid.height/2) + 15; 285 _heading.y = _grid.y - 30; 286 _heading.x = Math.round(width/2 - _heading.width/2); 287 } 260 288 261 289 /** Reposition the screens when the player resizes itself **/ … … 265 293 _back.height = height; 266 294 _close.x = width - 50; 267 _grid.x = Math.round(width/2 - _grid.width/2);268 _grid.y = Math.round(height/2 - _grid.height/2) + 15;269 _heading.y = _grid.y - 30;270 _heading.x = Math.round(width/2 - _heading.width/2);271 295 // Store thumb dimensions on first resize. 272 296 _dimensions = [140,80,width,height]; 297 _repaint(); 273 298 if(_config.dimensions) { 274 299 var dim:Array = _config.dimensions.split('x'); … … 282 307 /** Show the list with related videos. **/ 283 308 public function show():void { 284 if(_file) { 285 new Animations(_container).fade(1,0.2); 286 if(_state == 'PLAYING') { 287 _player.pause(); 288 } 289 // Only 5.7+... 290 try { 291 (_player.controls.display as Object).hide(); 292 (_player.controls.dock as Object).hide(); 293 } catch (error:Error) {} 294 } 309 new Animations(_container).fade(1,0.2); 310 if(_state == 'PLAYING') { 311 _player.pause(); 312 } 313 // Only 5.7+... 314 try { 315 (_player.controls.display as Object).hide(); 316 (_player.controls.dock as Object).hide(); 317 } catch (error:Error) {} 318 319 if(!_isLoaded) { 320 _load(); 321 } 295 322 }; 296 323 -
plugins/related/src/js/related.js
r2364 r2368 22 22 /** Reference to the replay button. **/ 23 23 var _replay; 24 /** Flag to remember if related videos have been loaded. **/ 25 var _isLoaded; 26 /** Array of related videos **/ 27 var _related; 24 28 25 29 … … 73 77 /** Display the related videos menu. **/ 74 78 var show = function() { 75 if(_file) { 76 _player.pause(true); 77 _div.style.visibility = 'visible'; 78 _div.style.opacity = 1; 79 try { 80 _player.getPlugin("display").hide(); 81 _player.getPlugin("dock").hide(); 82 } catch (e) { /* Only 5.7+ */ } 79 _player.pause(true); 80 _div.style.visibility = 'visible'; 81 _div.style.opacity = 1; 82 try { 83 _player.getPlugin("display").hide(); 84 _player.getPlugin("dock").hide(); 85 } catch (e) { /* Only 5.7+ */ } 86 87 if (_isLoaded == false) { 88 _load(); 83 89 } 84 90 }; … … 118 124 console.log("RELATED: "+message); 119 125 } 120 _file = undefined;121 126 _grid.innerHTML = ''; 122 _h ide();123 if(_options.usedock !== false) {124 _player.getPlugin("dock").setButton('related');125 }127 _heading.innerHTML = "No related videos found"; 128 _dimensions[4] = 200; 129 _dimensions[5] = 0; 130 _reposition(_dimensions[2],_dimensions[3]); 126 131 }; 127 132 … … 147 152 function _item(event) { 148 153 // Reset old data 154 _isLoaded = false; 149 155 _file = undefined; 156 _related = []; 150 157 _grid.innerHTML = ''; 151 158 _hide(); … … 157 164 _file = _options['file']; 158 165 } 166 167 if(_options.usedock !== false) { 168 _player.getPlugin("dock").setButton('related',show,ICON_RELATED); 169 } 170 }; 171 172 173 function _load() { 159 174 // Load the feed and set the dock icon 160 if(_file) { 161 if(_options.usedock !== false) { 162 _player.getPlugin("dock").setButton('related',show,ICON_RELATED); 163 } 175 _isLoaded = true; 176 if(_file) { 164 177 jwplayer.utils.ajax(_file, _loaded, _error); 165 178 } else { 166 179 _error("No related videos file found"); 167 } 168 } ;180 } 181 } 169 182 170 183 … … 172 185 function _loaded(event) { 173 186 var rss = []; 174 var related = [];175 187 try { 176 188 rss = jwplayer.utils.parsers.rssparser.parse(event.responseXML.firstChild); … … 183 195 (_options.onclick == 'play' && rss[i].file) || 184 196 (_options.onclick != 'play' && rss[i].link))) { 185 related.push(rss[i]);197 _related.push(rss[i]); 186 198 } 187 199 } 200 _repaint(); 201 }; 202 203 function _repaint() { 188 204 // Render the thumbnails. 189 if(related.length) { 205 _grid.innerHTML = ''; 206 if(_related !== undefined && _related.length) { 190 207 var col = 0; 191 208 var row = 0; 192 209 _dimensions[4] = 0; 193 210 _dimensions[5] = 0; 194 for(var j = 0; j < related.length; j++) {211 for(var j = 0; j < _related.length; j++) { 195 212 // Append new thumb to grid. 196 213 var thumb = jwplayer.related.thumb( 197 214 _dimensions[0], 198 215 _dimensions[1], 199 related[j],216 _related[j], 200 217 _click 201 218 ); … … 220 237 } 221 238 } 239 _setHeading("Watch related videos"); 222 240 _reposition(_dimensions[2],_dimensions[3]); 223 241 } else { 224 242 _error("RSS feed has 0 entries that contain title,link and image."); 225 243 } 226 } ;244 } 227 245 228 246 … … 245 263 _div.appendChild(_close); 246 264 _heading = document.createElement("div"); 247 if(_options.heading) { 248 _heading.innerHTML = _options.heading; 249 } else { 250 _heading.innerHTML = "Watch related videos"; 251 } 265 _setHeading("Watch related videos"); 252 266 _style(_heading,_headingStyle); 253 267 _div.appendChild(_heading); … … 259 273 _player.onPlay(_hide); 260 274 275 function _setHeading(new_heading) { 276 if(_options.heading) { 277 _heading.innerHTML = _options.heading; 278 } else { 279 _heading.innerHTML = new_heading; 280 } 281 } 282 261 283 /** Store thumb dimensions on first resize. **/ 262 284 this.resize = function(width,height) { 263 285 if(_player.getRenderingMode() == 'flash') { return; } 264 if(!_dimensions) { 265 _dimensions = [140,80,width,height,0,0]; 266 if(_options.dimensions) { 267 var dim = _options.dimensions.split('x'); 268 for(var i=0; i<2; i++) { 269 _dimensions[i] = Number(dim[i]); 270 } 286 _dimensions = [140,80,width,height,200,0]; 287 if(_options.dimensions) { 288 var dim = _options.dimensions.split('x'); 289 for(var i=0; i<2; i++) { 290 _dimensions[i] = Number(dim[i]); 271 291 } 272 292 } 273 _rep osition(width,height);293 _repaint(); 274 294 }; 275 295 -
plugins/related/test/errors.html
r2365 r2368 16 16 17 17 <script type="text/javascript"> 18 function reload(feed) { 19 jwplayer("player").setup({ 20 file: 'http://content.bitsontherun.com/videos/nPripu9l-327.mp4', 21 flashplayer: 'assets/player.swf', 22 height: 270, 23 image:'http://content.bitsontherun.com/thumbs/nPripu9l-480.jpg', 18 function reload(html5, feed) { 19 var options = { 20 file: 'http://content.bitsontherun.com/videos/3XnJSIm4-364765.mp4', 21 image: 'http://content.bitsontherun.com/thumbs/3XnJSIm4-720.jpg', 22 height: 300, 24 23 plugins: { 25 24 '../related.js': { … … 28 27 } 29 28 }, 30 width: 480 31 }); 29 width: 640, 30 stretching: 'fill' 31 }; 32 if(html5) { 33 options.modes = [{type: 'html5'},{type:'flash',src:'assets/player.swf'}]; 34 } else { 35 options.modes = [{type:'flash',src:'assets/player.swf'},{type: 'html5'}]; 36 } 37 jwplayer("player").setup(options); 32 38 }; 33 39 </script> 34 40 35 41 <h3>Flash</h3> 36 42 <ul> 37 <li><a href="javascript:reload( 'assets/blendr.xml');">Nonexisting feed</a></li>38 <li><a href="javascript:reload( 'http://www.longtailvideo.com/support/blog/feed');">Crossdomain loaded feed</a></li>39 <li><a href="javascript:reload( 'assets/malformed.xml');">Malformed feed</a></li>40 <li><a href="javascript:reload( 'assets/nothumbs.xml');">Entries without thumbs</a></li>41 <li><a href="javascript:reload( 'assets/empty.xml');">Feed without items</a></li>43 <li><a href="javascript:reload(false, 'assets/blendr.xml');">Nonexisting feed</a></li> 44 <li><a href="javascript:reload(false, 'http://www.longtailvideo.com/support/blog/feed');">Crossdomain loaded feed</a></li> 45 <li><a href="javascript:reload(false, 'assets/malformed.xml');">Malformed feed</a></li> 46 <li><a href="javascript:reload(false, 'assets/nothumbs.xml');">Entries without thumbs</a></li> 47 <li><a href="javascript:reload(false, 'assets/empty.xml');">Feed without items</a></li> 42 48 </ul> 43 49 50 <h3>HTML5</h3> 51 <ul> 52 <li><a href="javascript:reload(true, 'assets/blendr.xml');">Nonexisting feed</a></li> 53 <li><a href="javascript:reload(true, 'http://www.longtailvideo.com/support/blog/feed');">Crossdomain loaded feed</a></li> 54 <li><a href="javascript:reload(true, 'assets/malformed.xml');">Malformed feed</a></li> 55 <li><a href="javascript:reload(true, 'assets/nothumbs.xml');">Entries without thumbs</a></li> 56 <li><a href="javascript:reload(true, 'assets/empty.xml');">Feed without items</a></li> 57 </ul> 44 58 45 59 <p> -
plugins/related/test/modes.html
r2364 r2368 22 22 image: 'http://content.bitsontherun.com/thumbs/3XnJSIm4-720.jpg', 23 23 height: 300, 24 controlbar: 'bottom',25 24 plugins: { 26 25 '../related.js': {
Note: See TracChangeset
for help on using the changeset viewer.
