Changeset 2368


Ignore:
Timestamp:
08/13/12 16:13:19 (9 months ago)
Author:
sanil
Message:

Added just in time loading for RSS feeds as well as no related videos text for [ticket #1426]

Location:
plugins/related
Files:
6 edited

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  
    22 
    33    import com.longtailvideo.jwplayer.events.*; 
     4    import com.longtailvideo.jwplayer.parsers.*; 
    45    import com.longtailvideo.jwplayer.player.*; 
    56    import com.longtailvideo.jwplayer.plugins.*; 
    67    import com.longtailvideo.jwplayer.utils.*; 
    7     import com.longtailvideo.jwplayer.parsers.*; 
    8  
     8     
    99    import flash.display.*; 
    1010    import flash.events.*; 
     
    5858        /** The latest player playback state. **/ 
    5959        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; 
    6064 
    6165 
     
    97101        private function _errorHandler(evt:ErrorEvent):void { 
    98102            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                } 
    104114 
    105115        /** Hide the list with related videos. **/ 
     
    165175            _heading.selectable = false; 
    166176            _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                         
    172179            _container.addChild(_heading); 
    173180            // Add the grid for thumbs 
     
    181188            // Reset old data 
    182189            _file = undefined; 
     190                        _related = new Array(); 
     191                        _isLoaded = false; 
    183192            while(_grid.numChildren > 0) { 
    184193                _grid.removeChildAt(0); 
     
    194203            if(_player.playlist.currentItem['ova.hidden']) { 
    195204                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                } 
    204217 
    205218        /** Loader has loaded the mRSS feed. **/ 
     
    212225                return; 
    213226            } 
    214             var related:Array = new Array(); 
     227          
    215228            for (var i:Number = 0; i < rss.length; i++) { 
    216229                if(rss[i].image && rss[i].title && ( 
    217230                    (_config.onclick == 'play' && rss[i].file) ||  
    218231                    (_config.onclick != 'play' && rss[i].link))) { 
    219                     related.push(rss[i]); 
     232                    _related.push(rss[i]); 
    220233                } 
    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                } 
    253275 
    254276        /** The replay button was clicked. **/ 
     
    258280        }; 
    259281 
     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                } 
    260288 
    261289        /** Reposition the screens when the player resizes itself **/ 
     
    265293            _back.height = height; 
    266294            _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); 
    271295            // Store thumb dimensions on first resize. 
    272296            _dimensions = [140,80,width,height]; 
     297                        _repaint(); 
    273298            if(_config.dimensions) { 
    274299                var dim:Array = _config.dimensions.split('x'); 
     
    282307        /** Show the list with related videos. **/ 
    283308        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                        } 
    295322        }; 
    296323 
  • plugins/related/src/js/related.js

    r2364 r2368  
    2222        /** Reference to the replay button. **/ 
    2323        var _replay; 
     24        /** Flag to remember if related videos have been loaded. **/ 
     25        var _isLoaded; 
     26        /** Array of related videos **/ 
     27        var _related; 
    2428 
    2529 
     
    7377        /** Display the related videos menu. **/ 
    7478        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();     
    8389            } 
    8490        }; 
     
    118124                console.log("RELATED: "+message); 
    119125            } 
    120             _file = undefined; 
    121126            _grid.innerHTML = ''; 
    122             _hide(); 
    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]); 
    126131        }; 
    127132 
     
    147152        function _item(event) { 
    148153            // Reset old data 
     154            _isLoaded = false; 
    149155            _file = undefined; 
     156            _related = []; 
    150157            _grid.innerHTML = ''; 
    151158            _hide(); 
     
    157164                _file = _options['file']; 
    158165            } 
     166 
     167            if(_options.usedock !== false) { 
     168                _player.getPlugin("dock").setButton('related',show,ICON_RELATED); 
     169            } 
     170        }; 
     171 
     172 
     173        function _load() { 
    159174            // 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) {     
    164177                jwplayer.utils.ajax(_file, _loaded, _error); 
    165178            } else { 
    166179                _error("No related videos file found"); 
    167             } 
    168         }; 
     180            }  
     181        } 
    169182 
    170183 
     
    172185        function _loaded(event) { 
    173186            var rss = []; 
    174             var related = []; 
    175187            try { 
    176188                rss = jwplayer.utils.parsers.rssparser.parse(event.responseXML.firstChild); 
     
    183195                    (_options.onclick == 'play' && rss[i].file) ||  
    184196                    (_options.onclick != 'play' && rss[i].link))) { 
    185                     related.push(rss[i]); 
     197                    _related.push(rss[i]); 
    186198                } 
    187199            } 
     200            _repaint(); 
     201        };  
     202 
     203        function _repaint() { 
    188204            // Render the thumbnails. 
    189             if(related.length) { 
     205            _grid.innerHTML = ''; 
     206            if(_related !== undefined && _related.length) { 
    190207                var col = 0; 
    191208                var row = 0; 
    192209                _dimensions[4] = 0; 
    193210                _dimensions[5] = 0; 
    194                 for(var j = 0; j < related.length; j++) { 
     211                for(var j = 0; j < _related.length; j++) { 
    195212                    // Append new thumb to grid. 
    196213                    var thumb = jwplayer.related.thumb( 
    197214                        _dimensions[0], 
    198215                        _dimensions[1], 
    199                         related[j], 
     216                        _related[j], 
    200217                        _click 
    201218                    ); 
     
    220237                    } 
    221238                } 
     239                _setHeading("Watch related videos"); 
    222240                _reposition(_dimensions[2],_dimensions[3]); 
    223241            } else { 
    224242                _error("RSS feed has 0 entries that contain title,link and image."); 
    225243            } 
    226         }; 
     244        } 
    227245 
    228246 
     
    245263            _div.appendChild(_close); 
    246264            _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"); 
    252266            _style(_heading,_headingStyle); 
    253267            _div.appendChild(_heading); 
     
    259273        _player.onPlay(_hide); 
    260274 
     275        function _setHeading(new_heading) { 
     276            if(_options.heading) {  
     277                _heading.innerHTML = _options.heading; 
     278            } else { 
     279                _heading.innerHTML = new_heading; 
     280            } 
     281        } 
     282 
    261283        /** Store thumb dimensions on first resize. **/ 
    262284        this.resize = function(width,height) { 
    263285            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]); 
    271291                } 
    272292            } 
    273             _reposition(width,height); 
     293            _repaint(); 
    274294        }; 
    275295 
  • plugins/related/test/errors.html

    r2365 r2368  
    1616 
    1717<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', 
     18function 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, 
    2423        plugins: { 
    2524            '../related.js': { 
     
    2827            } 
    2928        }, 
    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); 
    3238}; 
    3339</script> 
    3440 
    35  
     41<h3>Flash</h3> 
    3642<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> 
    4248</ul> 
    4349 
     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> 
    4458 
    4559<p> 
  • plugins/related/test/modes.html

    r2364 r2368  
    2222        image: 'http://content.bitsontherun.com/thumbs/3XnJSIm4-720.jpg', 
    2323        height: 300, 
    24         controlbar: 'bottom', 
    2524        plugins: { 
    2625            '../related.js': { 
Note: See TracChangeset for help on using the changeset viewer.