//enable bootstrap tooltips let tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]')) let tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) { return new bootstrap.Tooltip(tooltipTriggerEl) }) // event bindings jQuery(function($) { const base_url = window.location.origin; $('.cartadd').click(function(e) { if ($(this).hasClass('icon_cart_clicked')) return false; let guid = $('.guid') .attr('id') .substring(4); //alert(guid); $.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content'), }, }); $.post(base_url + '/cart/add?id=' + guid, function(resp) { $(e.target) .addClass('icon_cart_clicked') .attr('title', 'Added to Cart'); PNotify.defaults.icons = 'fontawesome5'; PNotify.success({ title: 'Release added to your Download Basket!', type: 'success', icon: 'fa fa-info fa-3x', Animate: { animate: true, in_class: 'bounceInLeft', out_class: 'bounceOutRight', }, desktop: { desktop: true, fallback: true, }, }); }); return false; }); $('.sabsend').click(function(e) { if ($(this).hasClass('icon_sab_clicked')) return false; let guid = $('.guid') .attr('id') .substring(4); let nzburl = base_url + '/sendtoqueue/' + guid; $.post(nzburl, function(resp) { $(e.target) .addClass('icon_sab_clicked') .attr('title', 'Added to Queue'); PNotify.defaults.icons = 'fontawesome5'; PNotify.success({ title: 'Release added to your download queue!', type: 'success', icon: 'fa fa-info fa-3x', Animate: { animate: true, in_class: 'bounceInLeft', out_class: 'bounceOutRight', }, desktop: { desktop: true, fallback: true, }, }); }); return false; }); $('.getsend').click(function(e) { if ($(this).hasClass('icon_nzbget_clicked')) return false; let guid = $('.guid') .attr('id') .substring(4); let nzburl = base_url + '/sendtoqueue/' + guid; $.post(nzburl, function(resp) { $(e.target) .addClass('icon_nzbget_clicked') .attr('title', 'Added to Queue'); PNotify.defaults.icons = 'fontawesome5'; PNotify.success({ title: 'Release added to your download queue!', type: 'success', icon: 'fa fa-info fa-3x', Animate: { animate: true, in_class: 'bounceInLeft', out_class: 'bounceOutRight', }, desktop: { desktop: true, fallback: true, }, }); }); return false; }); $('.sendtocouch').click(function(e) { if ($(this).hasClass('icon_cp_clicked')) return false; let id = $(this) .attr('id') .substring(4); let cpurl = base_url + 'sendtocouch/' + id; $.post(cpurl, function(resp) { $(e.target) .addClass('icon_cp_clicked') .attr('title', 'Added to CouchPotato'); PNotify.defaults.icons = 'fontawesome5'; PNotify.success({ title: 'Movie added to CoucPotato wanted list!', type: 'success', icon: 'fa fa-info fa-3x', Animate: { animate: true, in_class: 'bounceInLeft', out_class: 'bounceOutRight', }, desktop: { desktop: true, fallback: true, }, }); }); return false; }); $('.vortexsend').click(function(event) { if ($(this).hasClass('icon_nzbvortex_clicked')) return false; let guid = $('.guid') .attr('id') .substring(4); if (guid && guid.length > 0) { $.ajax({ url: base_url + 'nzbvortex?addQueue=' + guid + '&isAjax', cache: false, }) .done(function(html) { let message = 'Added ' + guid + ' to queue.'; $(event.target) .addClass('icon_nzbvortex_clicked') .attr('title', message); PNotify.defaults.icons = 'fontawesome5'; PNotify.success({ title: 'Release added to your download queue!', type: 'success', icon: 'fa fa-info fa-3x', Animate: { animate: true, in_class: 'bounceInLeft', out_class: 'bounceOutRight', }, desktop: { desktop: true, fallback: true, }, }); }) .fail(function(response) { alert(response.responseText); }); } return false; }); let vortexStates = new Array(); vortexStates[0] = 'Waiting'; vortexStates[1] = 'Downloading'; vortexStates[2] = 'Downloaded'; vortexStates[3] = 'Saving'; vortexStates[4] = 'Saved'; vortexStates[5] = 'Skipped'; // browse.tpl, search.tpl -- show icons on hover let orig_opac = $('table.data tr') .children('td.icons') .children('div.icon') .css('opacity'); $('table.data tr').hover( function() { $(this) .children('td.icons') .children('div.icon') .css('opacity', 1); }, function() { $(this) .children('td.icons') .children('div.icon') .css('opacity', orig_opac); } ); $('.forumpostsubmit').click(function(e) { if ($.trim($('#addMessage').val()) == '' || $.trim($('#addSubject').val()) == '') { alert('Please enter a subject and message.'); return false; } }); $('.forumreplysubmit').click(function(e) { if ($.trim($('#addMessage').val()) == '') { alert('Please enter a message.'); return false; } }); $('.check').click(function(e) { if (!$(e.target).is('input')) $(this) .children('.nzb_check') .attr( 'checked', !$(this) .children('.nzb_check') .attr('checked') ); }); $('.descmore').click(function(e) { $(this) .prev('.descinitial') .hide(); $(this) .next('.descfull') .show(); $(this).hide(); return false; }); $('.nzb_check_all').change(function() { if ($(this).attr('checked')) { $('table.data tr td input:checkbox').attr('checked', $(this).attr('checked')); } else { $('table.data tr td input:checkbox').removeAttr('checked'); } }); $('.nzb_check_all_season').change(function() { let season = $(this).attr('name'); $('table.data tr td input:checkbox').each(function(i, row) { if ($(row).attr('name') == season) { $(row).attr('checked', !$(row).attr('checked')); } }); }); // browse.tpl, search.tpl $('.icon_cart').click(function(e) { if ($(this).hasClass('icon_cart_clicked')) return false; let guid = $(this) .attr('id') .substring(4); //alert(guid); //alert(base_url + "/cart/add?id=" + guid); $.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content'), }, }); $.post(base_url + '/cart/add?id=' + guid, function(resp) { $(e.target) .addClass('icon_cart_clicked') .attr('title', ' Release added to Cart'); PNotify.defaults.icons = 'fontawesome5'; PNotify.success({ title: 'Release added to your download basket!', type: 'success', icon: 'fa fa-info fa-3x', Animate: { animate: true, in_class: 'bounceInLeft', out_class: 'bounceOutRight', }, desktop: { desktop: true, fallback: true, }, }); }); return false; }); $('.icon_nzbvortex').click(function(event) { if ($(this).hasClass('icon_nzbvortex_clicked')) return false; let guid = $(this) .parent() .parent() .attr('id') .substring(4); if (guid && guid.length > 0) { $.ajax({ url: base_url + '/nzbvortex?addQueue=' + guid + '&isAjax', cache: false, }) .done(function(html) { let message = 'Added ' + guid + ' to queue.'; $(event.target) .addClass('icon_nzbvortex_clicked') .attr('title', message); PNotify.defaults.icons = 'fontawesome5'; PNotify.success({ title: 'ADDED TO NZBVORTEX!', type: 'success', icon: 'fa fa-info fa-3x', Animate: { animate: true, in_class: 'bounceInLeft', out_class: 'bounceOutRight', }, desktop: { desktop: true, fallback: true, }, }); }) .fail(function(response) { alert(response.responseText); }); } return false; }); $(document).on('click', 'a.vortex-resume', function(event) { event.preventDefault(); $('#vortex-overlay-' + $(this).attr('href')).show(); $.get(base_url + 'nzbvortex?resume=' + $(this).attr('href') + '&isAjax'); $(this).removeAttr('href'); return false; }); $(document).on('click', 'a.vortex-pause', function(event) { event.preventDefault(); $('#vortex-overlay-' + $(this).attr('href')).show(); $.get(base_url + 'nzbvortex?pause=' + $(this).attr('href') + '&isAjax'); $(this).removeAttr('href'); return false; }); $(document).on('click', 'a.vortex-moveup', function(event) { event.preventDefault(); $('#vortex-overlay-' + $(this).attr('href')).show(); $.get(base_url + 'nzbvortex?moveup=' + $(this).attr('href') + '&isAjax'); $(this).removeAttr('href'); return false; }); $(document).on('click', 'a.vortex-movedown', function(event) { event.preventDefault(); $('#vortex-overlay-' + $(this).attr('href')).show(); $.get(base_url + 'nzbvortex?movedown=' + $(this).attr('href') + '&isAjax'); $(this).removeAttr('href'); return false; }); $(document).on('click', 'a.vortex-movetop', function(event) { event.preventDefault(); $('#vortex-overlay-' + $(this).attr('href')).show(); $.get(base_url + 'nzbvortex?movetop=' + $(this).attr('href') + '&isAjax'); $(this).removeAttr('href'); return false; }); $(document).on('click', 'a.vortex-movebottom', function(event) { event.preventDefault(); $('#vortex-overlay-' + $(this).attr('href')).show(); $.get(base_url + 'nzbvortex?movebottom=' + $(this).attr('href') + '&isAjax'); $(this).removeAttr('href'); return false; }); $(document).on('click', 'a.vortex-trash', function(event) { event.preventDefault(); $('#vortex-overlay-' + $(this).attr('href')).show(); $.get(base_url + 'nzbvortex?delete=' + $(this).attr('href') + '&isAjax'); $(this).removeAttr('href'); return false; }); $(document).on('click', 'a.vortex-filelist', function(event) { event.preventDefault(); let id = $(this).attr('href'); $('#vortex-overlay-' + id).show(); $.colorbox({}); $.ajax({ url: base_url + '/nzbvortex?filelist=' + id + '&isAjax', cache: false, }) .done(function(response) { $('#cboxLoadingGraphic').hide(); let json = $.parseJSON(response); console.log(json); $.each(json.files, function(k, v) { $('#cboxContent').append( '' + v.fileName + ' (' + vortexStates[v.state] + ')
' ); }); }) .fail(function(response) { alert('Unable to retrieve filelist: ' + response.responseText); }); $(this).removeAttr('href'); return false; }); $('.icon_sab').click(function(e) { if ($(this).hasClass('icon_sab_clicked')) return false; let guid = $(this) .attr('id') .substring(4); let nzburl = base_url + '/sendtoqueue/' + guid; $.post(nzburl, function(resp) { $(e.target) .addClass('icon_sab_clicked') .attr('title', 'Release added to Queue'); PNotify.defaults.icons = 'fontawesome5'; PNotify.success({ title: 'Release added to your download queue!', type: 'success', icon: 'fa fa-info fa-3x', Animate: { animate: true, in_class: 'bounceInLeft', out_class: 'bounceOutRight', }, desktop: { desktop: true, fallback: true, }, }); }); return false; }); $('.icon_nzbget').click(function(e) { if ($(this).hasClass('icon_nzbget_clicked')) return false; let guid = $(this) .attr('id') .substring(4); let nzburl = base_url + '/sendtoqueue/' + guid; $.post(nzburl, function(resp) { $(e.target) .addClass('icon_nzbget_clicked') .attr('title', 'Added to Queue'); PNotify.defaults.icons = 'fontawesome5'; PNotify.success({ title: 'Release added to your download queue!', type: 'success', icon: 'fa fa-info fa-3x', Animate: { animate: true, in_class: 'bounceInLeft', out_class: 'bounceOutRight', }, desktop: { desktop: true, fallback: true, }, }); }); return false; }); $('table.data a.modal_nfo').colorbox({ // NFO modal href: function() { return $(this).attr('href') + '&modal'; }, title: function() { return $(this) .parent() .parent() .children('a.title') .text(); }, innerWidth: '800px', innerHeight: '90%', initialWidth: '800px', initialHeight: '90%', speed: 0, opacity: 0.7, }); // Screenshot modal $('table.data a.modal_prev').colorbox({ scrolling: false, maxWidth: '800px', maxHeight: '450px', }); $('table.data a.modal_imdb') .colorbox({ // IMDB modal href: function() { return ( base_url + 'movie/' + $(this) .attr('name') .substring(4) + '&modal' ); }, title: function() { return $(this) .parent() .parent() .children('a.title') .text(); }, innerWidth: '800px', innerHeight: '450px', initialWidth: '800px', initialHeight: '450px', speed: 0, opacity: 0.7, }) .click(function() { $('#colorbox') .removeClass() .addClass('cboxMovie'); }); $('a.modal_imdbtrailer') .colorbox({ // IMDB trailer modal href: function() { return ( base_url + 'movietrailer/' + $(this) .attr('name') .substring(4) + '&modal' ); }, title: function() { return $(this) .parent() .parent() .children('a.title') .text(); }, innerWidth: '800px', innerHeight: '450px', initialWidth: '800px', initialHeight: '450px', speed: 0, opacity: 0.7, }) .click(function() { $('#colorbox') .removeClass() .addClass('cboxMovie'); }); $('table.data a.modal_music') .colorbox({ // Music modal href: function() { return ( base_url + 'musicmodal/' + $(this) .attr('name') .substring(4) + '&modal' ); }, title: function() { return $(this) .parent() .parent() .children('a.title') .text(); }, innerWidth: '800px', innerHeight: '450px', initialWidth: '800px', initialHeight: '450px', speed: 0, opacity: 0.7, }) .click(function() { $('#colorbox') .removeClass() .addClass('cboxMusic'); }); $('table.data a.modal_console') .colorbox({ // Console modal href: function() { return ( base_url + 'consolemodal/' + $(this) .attr('name') .substring(4) + '&modal' ); }, title: function() { return $(this) .parent() .parent() .children('a.title') .text(); }, innerWidth: '800px', innerHeight: '450px', initialWidth: '800px', initialHeight: '450px', speed: 0, opacity: 0.7, }) .click(function() { $('#colorbox') .removeClass() .addClass('cboxConsole'); }); $('table.data a.modal_book') .colorbox({ // Book modal href: function() { return ( base_url + 'bookmodal/' + $(this) .attr('name') .substring(4) + '&modal' ); }, title: function() { return $(this) .parent() .parent() .children('a.title') .text(); }, innerWidth: '800px', innerHeight: '450px', initialWidth: '800px', initialHeight: '450px', speed: 0, opacity: 0.7, }) .click(function() { $('#colorbox') .removeClass() .addClass('cboxBook'); }); $('#nzb_multi_operations_form').submit(function() { return false; }); $('button.nzb_multi_operations_download').on('click', function() { let ids = ''; $("table.data INPUT[type='checkbox']:checked").each(function(i, row) { if ($(row).val() != 'on') ids += $(row).val() + ','; }); ids = ids.substring(0, ids.length - 1); if (ids) window.location = base_url + '/getnzb?zip=1&id=' + ids; }); $('input.nzb_multi_operations_download_cart').on('click', function() { let ids = ''; $("table.data INPUT[type='checkbox']:checked").each(function(i, row) { if ($(row).val() != 'on') ids += $(row).val() + ','; }); ids = ids.substring(0, ids.length - 1); if (ids) window.location = base_url + '/getnzb?zip=1&id=' + ids; }); $('button.nzb_multi_operations_cart').on('click', function() { let guids = new Array(); $.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content'), }, }); $("table.data INPUT[type='checkbox']:checked").each(function(i, row) { let guid = $(row).val(); let $cartIcon = $(row) .parent() .children('div.icons') .children('.icon_cart'); if (guid && !$cartIcon.hasClass('icon_cart_clicked')) { $cartIcon.addClass('icon_cart_clicked').attr('title', 'Added to Cart'); guids.push(guid); PNotify.defaults.icons = 'fontawesome5'; PNotify.success({ title: 'Release added to your Download Basket!', type: 'success', icon: 'fa fa-info fa-3x', Animate: { animate: true, in_class: 'bounceInLeft', out_class: 'bounceOutRight', }, desktop: { desktop: true, fallback: true, }, }); } $(this).attr('checked', false); }); let guidstring = guids.toString(); //alert (guidstring); // This is just for testing shit $.post(base_url + '/cart/add?id=' + guidstring); }); $('button.nzb_multi_operations_sab').on('click', function() { $("table.data INPUT[type='checkbox']:checked").each(function(i, row) { let $sabIcon = $(row) .parent() .parent() .children('td.icons') .children('.icon_sab'); let guid = $(row).val(); //alert(guid); if (guid && !$sabIcon.hasClass('icon_sab_clicked')) { let nzburl = base_url + '/sendtoqueue/' + guid; // alert(nzburl); $.post(nzburl, function(resp) { $sabIcon.addClass('icon_sab_clicked').attr('title', 'Added to Queue'); PNotify.defaults.icons = 'fontawesome5'; PNotify.success({ title: 'Release added to your download queue!', type: 'success', icon: 'fa fa-info fa-3x', Animate: { animate: true, in_class: 'bounceInLeft', out_class: 'bounceOutRight', }, desktop: { desktop: true, fallback: true, }, }); }); } $(this).attr('checked', false); }); }); $('input.nzb_multi_operations_nzbget').on('click', function() { $("table.data INPUT[type='checkbox']:checked").each(function(i, row) { let $nzbgetIcon = $(row) .parent() .parent() .children('td.icons') .children('.icon_nzbget'); let guid = $(row).val(); if (guid && !$nzbgetIcon.hasClass('icon_nzbget_clicked')) { let nzburl = base_url + '/sendtoqueue/' + guid; $.post(nzburl, function(resp) { $nzbgetIcon.addClass('icon_nzbget_clicked').attr('title', 'Added to Queue'); PNotify.defaults.icons = 'fontawesome5'; PNotify.success({ title: 'Release added to your download queue!', type: 'success', icon: 'fa fa-info fa-3x', Animate: { animate: true, in_class: 'bounceInLeft', out_class: 'bounceOutRight', }, desktop: { desktop: true, fallback: true, }, }); }); } $(this).attr('checked', false); }); }); //front end admin functions $('input.nzb_multi_operations_edit').click(function() { let ids = ''; $("table.data INPUT[type='checkbox']:checked").each(function(i, row) { if ($(row).val() != 'on') ids += '&id[]=' + $(row).val(); }); if (ids) $('input.nzb_multi_operations_edit').colorbox({ href: function() { return ( base_url + 'ajax_release-admin?action=edit' + ids + '&from=' + encodeURIComponent(window.location) ); }, title: 'Edit Release', innerWidth: '400px', innerHeight: '250px', initialWidth: '400px', initialHeight: '250px', speed: 0, opacity: 0.7, }); }); $('input.nzb_multi_operations_delete').click(function() { let ids = ''; $("table.data INPUT[type='checkbox']:checked").each(function(i, row) { if ($(row).val() != 'on') ids += '&id[]=' + $(row).val(); }); if (ids) { PNotify.defaults.icons = 'fontawesome5'; const notice = PNotify.alert({ title: 'Confirmation Needed', text: 'Are you sure you want to delete the selected releases?', icon: 'glyphicon glyphicon-question-sign', hide: false, modules: { Confirm: { confirm: true, }, }, Buttons: { closer: false, sticker: false, }, History: { history: false, }, }); notice.on('pnotify.confirm', function() { $.post(base_url + 'ajax_release-admin?action=dodelete' + ids, function(resp) { location.reload(true); }); }); notice.on('pnotify.cancel', function() { alert('Cancelled'); }); } }); $('input.nzb_multi_operations_rebuild').click(function() { let ids = ''; $("table.data INPUT[type='checkbox']:checked").each(function(i, row) { if ($(row).val() != 'on') ids += '&id[]=' + $(row).val(); }); if (ids) if (confirm('Are you sure you want to rebuild the selected releases?')) { $.post(base_url + 'ajax_release-admin?action=dorebuild' + ids, function(resp) { location.reload(true); }); } }); //cart functions $('input.nzb_multi_operations_cartdelete').click(function() { let ids = new Array(); $("table.data INPUT[type='checkbox']:checked").each(function(i, row) { if ($(row).val() != 'on') ids.push($(row).val()); }); $.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content'), }, }); //alert(base_url + "/cart/delete/" + ids); if (ids) { PNotify.defaults.icons = 'fontawesome5'; const notice = PNotify.alert({ title: 'Confirmation Needed', text: 'Are you sure you want to delete the selected releases from your cart?', hide: false, modules: { Confirm: { confirm: true, }, }, Buttons: { closer: false, sticker: false, }, History: { history: false, }, }); notice.on('pnotify.confirm', function() { $.post(base_url + '/cart/delete/' + ids); }); notice.on('pnotify.cancel', function() { alert('Cancelled'); }); } }); $('input.nzb_multi_operations_cartsab').click(function() { let ids = new Array(); $("table.data INPUT[type='checkbox']:checked").each(function(i, row) { let guid = $(row).val(); let nzburl = base_url + '/sendtoqueue/' + guid; $.post(nzburl, function() { PNotify.defaults.icons = 'fontawesome5'; PNotify.success({ title: 'Releases sent to queue!', type: 'success', icon: 'fa fa-info fa-3x', Animate: { animate: true, in_class: 'bounceInLeft', out_class: 'bounceOutRight', }, desktop: { desktop: true, fallback: true, }, }); }); }); }); // headermenu.tpl $('#headsearch') .focus(function() { if (this.value == 'Search...') this.value = ''; else this.select(); }) .blur(function() { if (this.value == '') this.value = 'Search...'; }); $('#headsearch_form').submit(function() { $('#headsearch_go').trigger('click'); return false; }); $('#headsearch_go').click(function() { if ($('#headsearch').val() && $('#headsearch').val() != 'Search...') { let sText = $('#headsearch').val(); let sCat = $('#headcat').val() != -1 ? '&t=' + $('#headcat').val() : ''; document.location = base_url + '/search?id=' + sText + sCat; } }); // search.tpl $('#search_search_button').click(function() { if ($('#search').val()) document.location = base_url + '/search?id=' + $('#search').val() + ($('#search_cat').val() != -1 ? '&t=' + $('#search_cat').val() : ''); return false; }); $('#search').focus(function() { this.select(); }); // searchraw.tpl $('#searchraw_search_button').click(function() { if ($('#search').val()) document.location = base_url + '/searchraw/' + $('#search').val(); return false; }); $('#searchraw_download_selected').click(function() { if ($('#dl input:checked').length) $('#dl').trigger('submit'); return false; }); // login.tpl, register.tpl, search.tpl, searchraw.tpl if ($('#username').length) $('#username').focus(); if ($('#search').length) $('#search').focus(); // viewfilelist.tpl $('#viewfilelist_download_selected').click(function() { if ($('#fileform input:checked').length) $('#fileform').trigger('submit'); return false; }); // misc $('.confirm_action').click(function() { return confirm('Are you sure?'); }); // play audio preview $('.audioprev').click(function() { let a = document.getElementById( $(this) .next('audio') .attr('ID') ); if (a != null) { if ($(this).text() == 'Listen') { a.play(); $(this).text('Stop'); } else { a.pause(); a.currentTime = 0; $(this).text('Listen'); } } a.addEventListener('ended', function() { $(this) .prev() .text('Listen'); }); return false; }); // mmenu $('.mmenu').click(function() { document.location = $(this) .children('a') .attr('href'); return false; }); // mmenu_new $('.mmenu_new').click(function() { window.open( $(this) .children('a') .attr('href') ); return false; }); // searchraw.tpl, viewfilelist.tpl -- checkbox operations // selections let last1, last2; $('.checkbox_operations .select_all').click(function() { $("table.data INPUT[type='checkbox']") .attr('checked', true) .trigger('change'); return false; }); $('.checkbox_operations .select_none').click(function() { $("table.data INPUT[type='checkbox']") .attr('checked', false) .trigger('change'); return false; }); $('.checkbox_operations .select_invert').click(function() { $("table.data INPUT[type='checkbox']").each(function() { $(this) .attr('checked', !$(this).attr('checked')) .trigger('change'); }); return false; }); $('.checkbox_operations .select_range').click(function() { if (last1 && last2 && last1 < last2) $("table.data INPUT[type='checkbox']") .slice(last1, last2) .attr('checked', true) .trigger('change'); else if (last1 && last2) $("table.data INPUT[type='checkbox']") .slice(last2, last1) .attr('checked', true) .trigger('change'); return false; }); $('table.data td.check INPUT[type="checkbox"]').click(function(e) { // range event interaction -- see further above let rowNum = $(e.target) .parent() .parent()[0].rowIndex; if (last1) last2 = last1; last1 = rowNum; // perform range selection if (e.shiftKey && last1 && last2) { if (last1 < last2) $("table.data INPUT[type='checkbox']") .slice(last1, last2) .attr('checked', true) .trigger('change'); else $("table.data INPUT[type='checkbox']") .slice(last2, last1) .attr('checked', true) .trigger('change'); } }); $('table.data a.data_filename').click(function(e) { // click filenames to select // range event interaction -- see further above let rowNum = $(e.target) .parent() .parent()[0].rowIndex; if (last1) last2 = last1; last1 = rowNum; let $checkbox = $( 'table.data tr:nth-child(' + (rowNum + 1) + ') td.selection INPUT[type="checkbox"]' ); $checkbox.attr('checked', !$checkbox.attr('checked')); return false; }); // show/hide previews $('#showmoviepreviews').click(function() { $('#moviepreviews') .next('form') .toggle('fast'); $('#moviepreviews').toggle('fast', function() { $('#showmoviepreviews').text( ($('#moviepreviews').is(':visible') ? 'Hide' : 'Show') + ' previews' ); }); return false; }); // show/hide invite form $('#lnkSendInvite').click(function() { $('#divInvite').slideToggle('fast'); }); // send an invite $('#frmSendInvite').submit(function() { let inputEmailto = $('#txtInvite').val(); if (isValidEmailAddress(inputEmailto)) { // no caching of results $.ajax({ url: base_url + '/ajax_profile?action=1&rand=' + $.now(), data: { emailto: inputEmailto }, dataType: 'html', success: function(data) { $('#txtInvite').val(''); $('#divInvite').slideToggle('fast'); $('#divInviteSuccess') .text(data) .show(); $('#divInviteError').hide(); }, error: function(xhr, err, e) { alert('Error in ajax_profile: ' + err); }, }); } else { $('#divInviteSuccess').hide(); $('#divInviteError') .text('Invalid email') .show(); } return false; }); // movie.tpl $('.mlmore').click(function() { // show more movies $(this) .parent() .parent() .hide(); $(this) .parent() .parent() .parent() .children('.mlextra') .show(); return false; }); // lookup tmdb for a movie $('#frmMyMovieLookup').submit(function() { let movSearchText = $('#txtsearch').val(); // no caching of results $.ajax({ url: base_url + '/ajax_mymovies?rand=' + $.now(), data: { id: movSearchText }, dataType: 'html', success: function(data) { $('#divMovResults').html(data); }, error: function(xhr, err, e) { alert('Error in ajax_mymovies: ' + err); }, }); return false; }); // season selector in TV $('a[id^="seas_"]').click(function() { seas = $(this) .attr('ID') .replace('seas_', ''); $('table[class^="tb_"]').hide(); $('.tb_' + seas).show(); $('li', $(this).closest('ul')).removeClass('active'); $(this) .closest('li') .addClass('active'); return false; }); }); $.extend({ // http://plugins.jquery.com/project/URLEncode URLEncode: function(c) { let o = ''; let x = 0; c = c.toString(); let r = /(^[a-zA-Z0-9_.]*)/; while (x < c.length) { let m = r.exec(c.substr(x)); if (m != null && m.length > 1 && m[1] != '') { o += m[1]; x += m[1].length; } else { if (c[x] == ' ') o += '+'; else { let d = c.charCodeAt(x); let h = d.toString(16); o += '%' + (h.length < 2 ? '0' : '') + h.toUpperCase(); } x++; } } return o; }, URLDecode: function(s) { let o = s; let binVal, t; let r = /(%[^%]{2})/; while ((m = r.exec(o)) != null && m.length > 1 && m[1] != '') { b = parseInt(m[1].substr(1), 16); t = String.fromCharCode(b); o = o.replace(m[1], t); } return o; }, }); function isValidEmailAddress(emailAddress) { let pattern = new RegExp( /^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i ); return pattern.test(emailAddress); } function mymovie_del(imdbID, btn) { $.ajax({ url: base_url + '/ajax_mymovies?rand=' + $.now(), data: { del: imdbID }, dataType: 'html', success: function(data) { $(btn).hide(); $(btn) .prev('a') .show(); }, error: function(xhr, err, e) {}, }); return false; } function mymovie_add(imdbID, btn) { $(btn).hide(); $(btn) .next('a') .show(); $.ajax({ url: base_url + '/ajax_mymovies?rand=' + $.now(), data: { add: imdbID }, dataType: 'html', success: function(data) {}, error: function(xhr, err, e) {}, }); return false; } function getNzbGetQueue() { $.ajax({ url: 'queuedata?type=nzbget&id=' + $.now(), cache: false, success: function(html) { $('.nzbget_queue').html(html); setTimeout('getNzbGetQueue()', 2500); }, error: function() { $('.nzbget_queue').html( 'Could not contact your queue. Refresh' ); }, timeout: 5000, }); } function getHistory() { $.ajax({ url: 'queuedata?type=history&id=' + $.now(), cache: false, success: function(html) { $('.sab_history').html(html); setTimeout('getHistory()', 10000); }, error: function() { //$(".sab_history").html("Could not contact your queue. Refresh"); }, timeout: 5000, }); } /** ****** iswitch *********************** **/ $(function() { let checkAll = $('input.flat-all'); let checkboxes = $('input.flat'); $('input').iCheck({ checkboxClass: 'icheckbox_flat-green', radioClass: 'iradio_flat-green', }); checkAll.on('ifChecked ifUnchecked', function(event) { if (event.type === 'ifChecked') { checkboxes.iCheck('check'); } else { checkboxes.iCheck('uncheck'); } }); checkboxes.on('ifChanged', function(event) { if (checkboxes.filter(':checked').length === checkboxes.length) { checkAll.prop('checked', 'checked'); } else { checkAll.prop('checked', false); } checkAll.iCheck('update'); }); }); /** ****** /iswitch *********************** **/ /** ****** tinyMCE ************************* **/ tinyMCE.init({ selector: 'textarea#addMessage', theme: 'silver', plugins: [ 'advlist autolink link image lists charmap print preview hr anchor pagebreak spellchecker', 'searchreplace wordcount visualblocks visualchars code fullscreen insertdatetime media nonbreaking', 'save table directionality emoticons template paste code', ], theme_advanced_toolbar_location: 'top', theme_advanced_toolbar_align: 'left', toolbar: 'insertfile undo redo | styleselect | fontselect |sizeselect | fontsizeselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image | print preview media fullpage | forecolor backcolor emoticons | code', fontsize_formats: '8pt 9pt 10pt 11pt 12pt 13pt 14pt 15pt 16pt 17pt 18pt 24pt 36pt', mode: 'exact', relative_urls: false, remove_script_host: false, convert_urls: true, }); /** ****** /tinyMCE ************************* **/