(function() { var videoPlayer = []; function vs2() { var vs2 = document.createElement("script"); vs2.type = "text/javascript"; vs2.src = obstream.url+'tools/stream/videojs/flash/videojs-flash.js'; vs2.onload = vs3; (document.getElementsByTagName("head")[0] || document.documentElement).appendChild(vs2); } function vs3() { var vs3 = document.createElement("script"); vs3.type = "text/javascript"; vs3.src = obstream.url+'tools/stream/videojs/flash/videojs-flashls-source-handler.js'; (document.getElementsByTagName("head")[0] || document.documentElement).appendChild(vs3); } function css() { $('head').append(''); } function main() { // make sure we have some settings if(typeof(obstream)!='object' || typeof(obstream.url)!='string') return; if(obstream.url.charAt( obstream.url.length-1 )!='/') obstream.url = obstream.url + '/'; // add videojs if we don't have it already if(typeof(videojs)=='undefined') { $('body').append(''); var vs1 = document.createElement("script"); vs1.type = "text/javascript"; vs1.src = obstream.url+'tools/stream/videojs/core/video.min.js'; vs1.onload = vs2; (document.getElementsByTagName("head")[0] || document.documentElement).appendChild(vs1); } $('.ob-stream-widget').before('
'); $('.ob-stream-widget').hide(); $('.ob-stream-widget').each(function(widgetIndex,widget) { // set unique index for this widget $(widget).attr('data-index',widgetIndex); // add base html $(widget).append(''); $(widget).append(''); $(widget).append(''); $(widget).append(''); $(widget).append(''); $(widget).append(''); $(widget).append(''); $(widget).find('.ob-stream-widget-more button').click(function() { load(widget) }); load(widget); // livescroll if($(widget).attr('data-more')=='auto') { $(window).scroll(function() { // early return if loading not needed or already in progress if(!$(widget).find('.ob-stream-widget-more').is(':visible')) return; var threshold = $(widget).find('.ob-stream-widget-items').offset().top + $(widget).find('.ob-stream-widget-items').height() - 150; var current = $(window).scrollTop() + $(window).height(); if(current > threshold) { load(widget) } }); } }); // escape to hide modal window $(document).keyup(function(event) { if(event.which == 27) { closeModal(); closeMetadata(); } else if(event.which == 37) { modalLeft(); } else if(event.which == 39) { modalRight(); } }); $('.ob-stream-widget .ob-stream-widget-modal-close').on('click', closeModal); $('.ob-stream-widget .ob-stream-widget-modal-left').on('click', modalLeft); $('.ob-stream-widget .ob-stream-widget-modal-right').on('click', modalRight); $('.ob-stream-widget-metadata-close').on('click', closeMetadata); } function load(widget) { // prepare get data var media_id = $(widget).attr('data-media'); var genre_id = $(widget).attr('data-genre'); var category_id = $(widget).attr('data-category'); if(genre_id) var data = {'genre_id': genre_id}; else if(category_id) var data = {'category_id': category_id}; else if(media_id) var data = {'media_id': media_id}; else return true; // handle limit/page var limit = Math.max(0,$(widget).attr('data-limit')); var offset = Math.max(0,$(widget).attr('data-offset')); if(!limit) limit = 0; if(!offset) offset = 0; if(limit > 0) { data.limit = limit; data.offset = offset; // set new offset for next request $(widget).attr('data-offset',limit + offset); // hide loadmore (might re-show or not) $(widget).find('.ob-stream-widget-more').hide(); } // get our media and add $.get(obstream.url+'tools/stream/api.php', data, function(response) { var genres = response.genres; var media = response.media; var media_total = response.media_total; // sort media items if(obstream.itemSortBy) { media.sort(function(a,b) { if(a[obstream.itemSortBy]) var aName = a[obstream.itemSortBy].toLowerCase(); else var aName = ''; if(b[obstream.itemSortBy]) var bName = b[obstream.itemSortBy].toLowerCase(); else var bName = ''; if(obstream.itemSortDir=='asc') return ((aName < bName) ? -1 : ((aName > bName) ? 1 : 0)); else return ((aName < bName) ? 1 : ((aName > bName) ? -1 : 0)); }); } $('.ob-stream-widget-loading').remove(); $('.ob-stream-widget').show(); $.each(genres, function(index,genre) { $(widget).find('.ob-stream-widget-filter-genre').append( $('').text(genre.name).attr('value',genre.id) ); }); $(widget).find('.ob-stream-widget-filter-genre').change(listFilter); $(widget).find('.ob-stream-widget-filter-name').keyup(listFilter); $.each(media, function(index,item) { var $item = $(''); if(obstream.itemDisplay=='artist') var text = item.artist; else if(obstream.itemDisplay=='title') var text = item.title; else var text = item.artist+' - '+item.title; $item.append( $('').text(text) ); $item.attr('data-id',item.id); $item.attr('data-type',item.type); $item.attr('data-mime',item.mime); $item.attr('data-thumbnail',item.thumbnail); $item.attr('data-stream',item.stream); $item.attr('data-download',item.download); $item.attr('data-genre',item.genre_id); if(item.captions) $item.attr('data-captions',item.captions); if(item.type=='audio') var play = 'listen'; else if(item.type=='video') var play = 'watch'; else var play = 'view'; // thumbnail var $thumb = $($('')); if(item.thumbnail) $thumb.append($('