(function() { var $, Fuvlc, activeXEnable, players; $ = jQuery; players = {}; activeXEnable = function() { var a, c; try { a = new ActiveXObject("VideoLAN.VLCPlugin.2"); } catch (_error) { c = _error; } if (a == null) { return null; } else { return a; } }; Fuvlc = (function() { function Fuvlc() {} Fuvlc.prototype.createVLC = function(obj) { var createAttrs, createParams; obj = $.extend(true, { attrs: { id: obj.id, name: obj.name, height: obj.height || 180, width: obj.width || 320, events: "true" }, params: { wmode: obj.wmode || 'opaque', windowless: obj.windowless || 'true', mrl: obj.src || obj.mrl || obj.filename || '', autoplay: obj.autoplay || 'true', loop: obj.loop || 'false', fullscreen: obj.fullscreen || 'true', showdisplay: obj.showdisplay || 'true', bgcolor: obj.bgcolor || '#222222' } }, obj); createAttrs = function(obj) { var aArray, attr, val; aArray = (function() { var results; results = []; for (attr in obj) { val = obj[attr]; if (/string|number/.test(typeof val) && val !== '') { results.push(" " + attr + "='" + val + "'"); } } return results; })(); return aArray.join(''); }; createParams = function(obj) { var aArray, attr, bArray, battr, bval, val; if (typeof obj === 'object') { aArray = (function() { var results; results = []; for (attr in obj) { val = obj[attr]; if (typeof val === 'object') { bArray = (function() { var results1; results1 = []; for (battr in val) { bval = val[battr]; results1.push(" " + battr + " = '" + (encodeURIComponent(bval)) + "' "); } return results1; })(); bArray.join('&'); } if (attr != null) { results.push(""); } else { results.push(void 0); } } return results; })(); obj = aArray.join(''); } return obj; }; if (obj.player === 'fbvlc') { return ""; } else if (obj.player === 'avaplayer') { return ""; } else { if (activeXEnable() != null) { return ""; } else { return ""; } } }; Fuvlc.prototype.createJW = function(obj) { var elemID; elemID = obj.id; delete obj.player; obj = $.extend(true, { flashplayer: obj.flashplayer, file: obj.file || "demo.mp4", image: obj.image || "", autostart: obj.autostart || false, streamer: obj.streamer || "rtmp://localhost:1935/stream", screencolor: obj.screencolor || '000000', wmode: obj.wmode || 'transparent', height: obj.height || 180, width: obj.width || 320, provider: obj.provider || "rtmp" }, obj); return jwplayer(elemID).setup(obj); }; return Fuvlc; })(); $.fn.extend({ fuvlc: function(args) { if (typeof args === 'object') { return this.each(function(idx, elem) { var fu, fuOjbect, test; if (args.player === 'webchimera') { wjs("#" + elem.id).addPlayer({ id: args.id, autoplay: 1 }); if (args.mrl != null) { wjs("#" + args.id).addPlaylist(args.mrl); } return players[args.id] = [wjs("#" + args.id)]; } else if (args.player === 'fbvlc' || args.player === 'avaplayer' || args.player === 'vlc') { test = document.createElement('object'); fu = new Fuvlc; fuOjbect = fu.createVLC(args); if (fuOjbect != null) { elem.innerHTML = fuOjbect; if (test.childNodes[0] != null) { elem.appendChild(test.childNodes[0]); } if (activeXEnable() != null) { $(elem.childNodes[0]).css("width", args.width).css("height", args.height); } } return players[args.id] = [document.getElementById(args.id)]; } else if (args.player === 'jwplayer') { fu = new Fuvlc; $(elem).append('
'); fu.createJW(args); return players[args.id] = [jwplayer(args.id)]; } }); } if (typeof args === 'string') { if (players[args].length < 2) { players[args].push({ apiPlay: function(url) { var options, p, ref; p = players[args][0]; if (((ref = p.container) != null ? ref.type.indexOf('flash') : void 0) > 0) { if (typeof url === 'object') { p.load(url); } else { p.load({ file: url }); } p.play(); return p; } if (p.VersionInfo != null) { if (arguments[1] != null) { options = arguments[1]; p.playlist.add(url, 'playing', options); p.playlist.playItem(0); } } else { if (arguments[1] != null) { options = arguments[1]; p.playlist.addWithOptions(url, options); p.playlist.playItem(0); } } return p; } }); } return players[args]; } if (typeof args === 'function') { this.find('object').andSelf().filter('object').each(function(idx, elem) { var jsInteractionTimeoutMs; jsInteractionTimeoutMs = 'jsInteractionTimeoutMs'; if (elem[jsInteractionTimeoutMs] == null) { elem[jsInteractionTimeoutMs] = 0; } if (elem[jsInteractionTimeoutMs] < 660) { if (elem.clientWidth || elem.clientHeight) { return args.call(this); } else { return setTimeout(function() { return $(elem)[fuvlc](args, elem[jsInteractionTimeoutMs] + 66); }); } } }); return this; } return $(this.children()[0]); } }); }).call(this); //# sourceMappingURL=data:application/json;base64,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LENBQWUsQ0FBQyxPQUFoQixDQUFBLENBQXlCLENBQUMsTUFBMUIsQ0FBaUMsUUFBakMsQ0FBMEMsQ0FBQyxJQUEzQyxDQUFnRCxTQUFDLEdBQUQsRUFBTSxJQUFOLEdBQUE7QUFDOUMsY0FBQSxzQkFBQTtBQUFBLFVBQUEsc0JBQUEsR0FBeUIsd0JBQXpCLENBQUE7O1lBQ0EsSUFBSyxDQUFBLHNCQUFBLElBQTJCO1dBRGhDO0FBRUEsVUFBQSxJQUFHLElBQUssQ0FBQSxzQkFBQSxDQUFMLEdBQStCLEdBQWxDO0FBQ0UsWUFBQSxJQUFHLElBQUksQ0FBQyxXQUFMLElBQW9CLElBQUksQ0FBQyxZQUE1QjtxQkFDRSxJQUFJLENBQUMsSUFBTCxDQUFVLElBQVYsRUFERjthQUFBLE1BQUE7cUJBR0UsVUFBQSxDQUFXLFNBQUEsR0FBQTt1QkFDVCxDQUFBLENBQUUsSUFBRixDQUFRLENBQUEsS0FBQSxDQUFSLENBQWUsSUFBZixFQUNFLElBQUssQ0FBQSxzQkFBQSxDQUFMLEdBQStCLEVBRGpDLEVBRFM7Y0FBQSxDQUFYLEVBSEY7YUFERjtXQUg4QztRQUFBLENBQWhELENBQUEsQ0FBQTtBQVVBLGVBQU8sSUFBUCxDQVhGO09BaEVBO0FBNEVBLGFBQU8sQ0FBQSxDQUFFLElBQUMsQ0FBQSxRQUFELENBQUEsQ0FBWSxDQUFBLENBQUEsQ0FBZCxDQUFQLENBN0VLO0lBQUEsQ0FBUDtHQURGLENBNUZBLENBQUE7QUFBQSIsImZpbGUiOiJmdXZsYy5qcyIsInNvdXJjZVJvb3QiOiIvc291cmNlLyIsInNvdXJjZXNDb250ZW50IjpbIiQgPSBqUXVlcnlcblxuIyA8b2JqZWN0IGlkPVwiSldQbGF5ZXJIVE1MNVwiICBjb2RlQmFzZT1cImh0dHA6Ly9kb3dubG9hZC52aWRlb2xhbi5vcmcvcHViL3ZpZGVvbGFuL3ZsYy9sYXN0L3dpbjMyL2F4dmxjLmNhYlwiIGNsYXNzaWQ9XCJjbHNpZDo5QkUzMTgyMi1GREFELTQ2MUItQUQ1MS1CRTFEMUMxNTk5MjFcIiB3aWR0aD1cIjk0MFwiIGhlaWdodD1cIjUwMFwiIHR5cGU9XCJhcHBsaWNhdGlvbi94LXZsYy1wbHVnaW5cIj5cbiMgICAgIDxQQVJBTSBOQU1FPVwiTVJMXCIgVkFMVUU9XCJydHNwOi8vOjg1NTQvdGVzdFwiLz5cbiMgICAgIDxQQVJBTSBOQU1FPVwid2luZG93bGVzc1wiIFZBTFVFPVwidHJ1ZVwiLz5cbiMgICAgIDxlbWJlZCB0eXBlPVwiYXBwbGljYXRpb24veC12bGMtcGx1Z2luXCIgd2luZG93bGVzcz1cInRydWVcIiBwbHVnaW5zcGFnZT1cImh0dHA6Ly93d3cudmlkZW9sYW4ub3JnXCIgc3JjPVwicnRzcDovLzo4NTU0L3Rlc3RcIiBpZD1cInZsY3BsYXllcl9ub3RfaWVcIj5cbiAgICAgICAgXG4jICAgICA8L2VtYmVkPlxuIyA8L29iamVjdD5cblxucGxheWVycyA9IHt9XG5cbmFjdGl2ZVhFbmFibGU9ICgpIC0+XG4gIHRyeSBcbiAgICBhID0gbmV3IEFjdGl2ZVhPYmplY3QoXCJWaWRlb0xBTi5WTENQbHVnaW4uMlwiKVxuICBjYXRjaCBjXG4gIGlmICFhPyB0aGVuIG51bGwgZWxzZSBhXG5cbmNsYXNzIEZ1dmxjXG5cblxuICBjcmVhdGVWTEM6IChvYmopIC0+XG5cbiAgICBvYmogPSAkLmV4dGVuZCB0cnVlLFxuICAgICAgYXR0cnM6XG4gICAgICAgIGlkOiBvYmouaWRcbiAgICAgICAgbmFtZTogb2JqLm5hbWVcbiAgICAgICAgaGVpZ2h0OiBvYmouaGVpZ2h0IG9yIDE4MFxuICAgICAgICB3aWR0aDogb2JqLndpZHRoIG9yIDMyMFxuICAgICAgICBldmVudHM6IFwidHJ1ZVwiXG4gICAgICBwYXJhbXM6XG4gICAgICAgIHdtb2RlOiBvYmoud21vZGUgb3IgJ29wYXF1ZSdcbiAgICAgICAgd2luZG93bGVzczogb2JqLndpbmRvd2xlc3Mgb3IgJ3RydWUnXG4gICAgICAgIG1ybDogb2JqLnNyYyBvciBvYmoubXJsIG9yIG9iai5maWxlbmFtZSBvciAnJ1xuICAgICAgICBhdXRvcGxheTogb2JqLmF1dG9wbGF5IG9yICd0cnVlJ1xuICAgICAgICBsb29wOiBvYmoubG9vcCBvciAnZmFsc2UnXG4gICAgICAgIGZ1bGxzY3JlZW46IG9iai5mdWxsc2NyZWVuIG9yICd0cnVlJ1xuICAgICAgICBzaG93ZGlzcGxheTogb2JqLnNob3dkaXNwbGF5IG9yICd0cnVlJ1xuICAgICAgICBiZ2NvbG9yOiBvYmouYmdjb2xvciBvciAnIzIyMjIyMidcbiAgICAgICwgb2JqXG4gICAgY3JlYXRlQXR0cnM9IChvYmopIC0+XG4gICAgICBhQXJyYXkgPSAgZm9yIGF0dHIsdmFsIG9mIG9iaiB3aGVuICAvLy9zdHJpbmd8bnVtYmVyLy8vLnRlc3QodHlwZW9mIHZhbCkgYW5kIHZhbCBpc250ICcnXG4gICAgICAgIFwiICN7YXR0cn09JyN7IHZhbCB9J1wiXG4gICAgICBhQXJyYXkuam9pbiAnJ1xuXG4gICAgY3JlYXRlUGFyYW1zPSAob2JqKSAtPlxuICAgICAgaWYgdHlwZW9mIG9iaiA9PSAnb2JqZWN0J1xuICAgICAgICBhQXJyYXkgPSBmb3IgYXR0ciwgdmFsIG9mIG9ialxuICAgICAgICAgIGlmIHR5cGVvZiB2YWwgPT0gJ29iamVjdCdcbiAgICAgICAgICAgIGJBcnJheSA9IGZvciBiYXR0ciwgYnZhbCBvZiB2YWxcbiAgICAgICAgICAgICAgXCIgI3tiYXR0cn0gPSAnI3tlbmNvZGVVUklDb21wb25lbnQoYnZhbCl9JyBcIlxuICAgICAgICAgICAgYkFycmF5LmpvaW4gJyZhbXA7J1xuICAgICAgICAgIGlmIGF0dHI/XG4gICAgICAgICAgICBcIjxwYXJhbSBuYW1lPScje2F0dHJ9JyB2YWx1ZT0nI3t2YWx9JyAvPlwiXG4gICAgICAgIG9iaiA9IGFBcnJheS5qb2luICcnXG4gICAgICByZXR1cm4gb2JqXG5cbiAgICBpZiBvYmoucGxheWVyID09ICdmYnZsYydcbiAgICAgICMgZmJ2bGNcbiAgICAgIFwiPG9iamVjdCB0eXBlPSdhcHBsaWNhdGlvbi94LWZiLXZsYycgICN7Y3JlYXRlQXR0cnMob2JqLmF0dHJzKX0gPiAje2NyZWF0ZVBhcmFtcyhvYmoucGFyYW1zKX0gIDwvb2JqZWN0PlwiXG4gICAgZWxzZSBpZiBvYmoucGxheWVyID09ICdhdmFwbGF5ZXInXG4gICAgICAjIGF2YXBsYXllclxuICAgICAgICByZXR1cm4gXCJcIlwiIFxuICAgICAgICAgICAgICAgIDxvYmplY3QgIGNsYXNzaWQ9XCJDTFNJRDpGMEY0NjQ5MS01MDMyLTQyOEItQUU1NC1BODg2M0MwQzBCRkZcIiAje2NyZWF0ZUF0dHJzKG9iai5hdHRycyl9PlxuICAgICAgICAgICAgICAgICAgICAje2NyZWF0ZVBhcmFtcyhvYmoucGFyYW1zKX1cbiAgICAgICAgICAgICAgICA8L29iamVjdD5cbiAgICAgICAgICAgICAgICBcIlwiXCJcbiAgICBlbHNlIFxuICAgICAgIyB2bGNcbiAgICAgIGlmIGFjdGl2ZVhFbmFibGUoKT9cbiAgICAgICAgXCI8b2JqZWN0IGNsYXNzaWQ9J2Nsc2lkOjlCRTMxODIyLUZEQUQtNDYxQi1BRDUxLUJFMUQxQzE1OTkyMScgI3tjcmVhdGVBdHRycyhvYmouYXR0cnMpfSA+ICN7Y3JlYXRlUGFyYW1zKG9iai5wYXJhbXMpfSA8L29iamVjdD5cIlxuICAgICAgZWxzZVxuICAgICAgICBcIjxlbWJlZCB0eXBlPSdhcHBsaWNhdGlvbi94LXZsYy1wbHVnaW4nICN7Y3JlYXRlQXR0cnMob2JqLmF0dHJzKX0gI3tjcmVhdGVBdHRycyhvYmoucGFyYW1zKX0gLz5cIlxuXG4gIGNyZWF0ZUpXOiAob2JqKSAtPlxuICAgIGVsZW1JRCA9IG9iai5pZFxuICAgIGRlbGV0ZSBvYmoucGxheWVyXG4gICAgb2JqID0gJC5leHRlbmQgdHJ1ZSxcbiAgICAgICAgZmxhc2hwbGF5ZXI6IG9iai5mbGFzaHBsYXllciBcbiAgICAgICAgZmlsZTogb2JqLmZpbGUgb3IgXCJkZW1vLm1wNFwiXG4gICAgICAgIGltYWdlOiBvYmouaW1hZ2Ugb3IgXCJcIlxuICAgICAgICBhdXRvc3RhcnQ6IG9iai5hdXRvc3RhcnQgb3IgZmFsc2VcbiAgICAgICAgc3RyZWFtZXI6IG9iai5zdHJlYW1lciBvciBcInJ0bXA6Ly9sb2NhbGhvc3Q6MTkzNS9zdHJlYW1cIlxuICAgICAgICBzY3JlZW5jb2xvcjogb2JqLnNjcmVlbmNvbG9yIG9yICcwMDAwMDAnXG4gICAgICAgIHdtb2RlOiBvYmoud21vZGUgb3IndHJhbnNwYXJlbnQnXG4gICAgICAgIGhlaWdodDogb2JqLmhlaWdodCBvciAxODBcbiAgICAgICAgd2lkdGg6IG9iai53aWR0aCBvciAzMjBcbiAgICAgICAgcHJvdmlkZXI6IG9iai5wcm92aWRlciBvciBcInJ0bXBcIlxuICAgICAgLCBvYmpcbiAgICBqd3BsYXllcihlbGVtSUQpLnNldHVwKG9iailcblxuXG4kLmZuLmV4dGVuZFxuICBmdXZsYzogKGFyZ3MpIC0+XG4gICAgaWYgdHlwZW9mIGFyZ3MgPT0gJ29iamVjdCdcbiAgICAgIHJldHVybiBAZWFjaCAoaWR4LCBlbGVtKSAtPlxuXG4gICAgICAgIGlmIGFyZ3MucGxheWVyID09ICd3ZWJjaGltZXJhJ1xuICAgICAgICAgIHdqcyhcIiNcIitlbGVtLmlkKS5hZGRQbGF5ZXJcbiAgICAgICAgICAgIGlkOiBhcmdzLmlkXG4gICAgICAgICAgICAjIHRoZW1lOiBcInNsZWVrXCJcbiAgICAgICAgICAgIGF1dG9wbGF5OiAxXG5cbiAgICAgICAgICB3anMoXCIjXCIrYXJncy5pZCkuYWRkUGxheWxpc3QgYXJncy5tcmwgaWYgYXJncy5tcmw/XG4gICAgICAgICAgcGxheWVyc1thcmdzLmlkXSA9IFt3anMoXCIjXCIrYXJncy5pZCldXG5cbiAgICAgICAgZWxzZSBpZiBhcmdzLnBsYXllciA9PSAnZmJ2bGMnIG9yIGFyZ3MucGxheWVyID09ICdhdmFwbGF5ZXInIG9yIGFyZ3MucGxheWVyID09ICd2bGMnXG5cbiAgICAgICAgICB0ZXN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnb2JqZWN0JylcbiAgICAgICAgICBmdSA9IG5ldyBGdXZsY1xuICAgICAgICAgIGZ1T2piZWN0ID0gZnUuY3JlYXRlVkxDIGFyZ3NcblxuXG4gICAgICAgICAgaWYgZnVPamJlY3Q/XG4gICAgICAgICAgICBlbGVtLmlubmVySFRNTCA9IGZ1T2piZWN0XG5cbiAgICAgICAgICAgIGlmIHRlc3QuY2hpbGROb2Rlc1swXT9cbiAgICAgICAgICAgICAgZWxlbS5hcHBlbmRDaGlsZCB0ZXN0LmNoaWxkTm9kZXNbMF1cbiAgICAgICAgICAgIGlmIGFjdGl2ZVhFbmFibGUoKT9cbiAgICAgICAgICAgICAgICAkKGVsZW0uY2hpbGROb2Rlc1swXSkuY3NzKFwid2lkdGhcIixhcmdzLndpZHRoKS5jc3MoXCJoZWlnaHRcIixhcmdzLmhlaWdodClcbiAgICAgICAgICBcbiAgICAgICAgICByZXR1cm4gcGxheWVyc1thcmdzLmlkXSA9IFtkb2N1bWVudC5nZXRFbGVtZW50QnlJZChhcmdzLmlkKV1cblxuICAgICAgICBlbHNlIGlmIGFyZ3MucGxheWVyID09ICdqd3BsYXllcidcblxuICAgICAgICAgIGZ1ID0gbmV3IEZ1dmxjXG4gICAgICAgICAgJChlbGVtKS5hcHBlbmQoJzxkaXYgaWQ9XCInK2FyZ3MuaWQrJ1wiIC8+JylcbiAgICAgICAgICBmdS5jcmVhdGVKVyBhcmdzXG4gICAgICAgICAgcmV0dXJuIHBsYXllcnNbYXJncy5pZF0gPSBbandwbGF5ZXIoYXJncy5pZCldXG5cbiAgICBpZiB0eXBlb2YgYXJncyA9PSAnc3RyaW5nJ1xuICAgICAgaWYgcGxheWVyc1thcmdzXS5sZW5ndGggPCAyXG4gICAgICAgIHBsYXllcnNbYXJnc10ucHVzaFxuICAgICAgICAgIGFwaVBsYXkgOiAodXJsKSAtPlxuICAgICAgICAgICAgICBwID0gcGxheWVyc1thcmdzXVswXVxuICAgICAgICAgICAgICBpZiBwLmNvbnRhaW5lcj8udHlwZS5pbmRleE9mKCdmbGFzaCcpID4gMFxuICAgICAgICAgICAgICAgICMgandwbGF5ZXJcbiAgICAgICAgICAgICAgICBpZih0eXBlb2YgdXJsID09ICdvYmplY3QnKVxuICAgICAgICAgICAgICAgICAgcC5sb2FkKHVybClcbiAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICBwLmxvYWQoe2ZpbGU6dXJsfSlcbiAgICAgICAgICAgICAgICBwLnBsYXkoKVxuICAgICAgICAgICAgICAgIHJldHVybiBwXG5cbiAgICAgICAgICAgICAgaWYgcC5WZXJzaW9uSW5mbz9cbiAgICAgICAgICAgICAgICAjIHZsY1xuICAgICAgICAgICAgICAgIGlmIGFyZ3VtZW50c1sxXT9cbiAgICAgICAgICAgICAgICAgIG9wdGlvbnMgPSBhcmd1bWVudHNbMV1cbiAgICAgICAgICAgICAgICAgIHAucGxheWxpc3QuYWRkKHVybCwgJ3BsYXlpbmcnLCBvcHRpb25zKVxuICAgICAgICAgICAgICAgICAgcC5wbGF5bGlzdC5wbGF5SXRlbSgwKTtcbiAgICAgICAgICAgICAgZWxzZSBcbiAgICAgICAgICAgICAgICBpZiBhcmd1bWVudHNbMV0/XG4gICAgICAgICAgICAgICAgICBvcHRpb25zID0gYXJndW1lbnRzWzFdXG4gICAgICAgICAgICAgICAgICBwLnBsYXlsaXN0LmFkZFdpdGhPcHRpb25zKHVybCwgb3B0aW9ucylcbiAgICAgICAgICAgICAgICAgIHAucGxheWxpc3QucGxheUl0ZW0oMCk7XG4gICAgICAgICAgICAgIHJldHVybiBwXG4gICAgICByZXR1cm4gcGxheWVyc1thcmdzXSBcblxuICAgIGlmIHR5cGVvZiBhcmdzID09ICdmdW5jdGlvbidcbiAgICAgIEBmaW5kKCdvYmplY3QnKS5hbmRTZWxmKCkuZmlsdGVyKCdvYmplY3QnKS5lYWNoIChpZHgsIGVsZW0pIC0+XG4gICAgICAgIGpzSW50ZXJhY3Rpb25UaW1lb3V0TXMgPSAnanNJbnRlcmFjdGlvblRpbWVvdXRNcydcbiAgICAgICAgZWxlbVtqc0ludGVyYWN0aW9uVGltZW91dE1zXSA/PSAwXG4gICAgICAgIGlmIGVsZW1banNJbnRlcmFjdGlvblRpbWVvdXRNc10gPCA2NjBcbiAgICAgICAgICBpZiBlbGVtLmNsaWVudFdpZHRoIG9yIGVsZW0uY2xpZW50SGVpZ2h0XG4gICAgICAgICAgICBhcmdzLmNhbGwgQFxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIHNldFRpbWVvdXQgLT5cbiAgICAgICAgICAgICAgJChlbGVtKVtmdXZsY10gYXJnc1xuICAgICAgICAgICAgICAsIGVsZW1banNJbnRlcmFjdGlvblRpbWVvdXRNc10gKyA2NlxuICAgICAgcmV0dXJuIEBcbiAgICByZXR1cm4gJChAY2hpbGRyZW4oKVswXSlcbiJdfQ== ;