PageSourceSearch

https://www.avilactiva.es/wp-content/plugins/download-manager/assets/js/front.js?ver=3.1.28

js avilactiva.es collected 2026-09-25 00:29:04 UTC 39,771 bytes, 828 lines download raw bytes

1var allps;
2
3String.prototype.wpdm_shuffle = function () {
4    var a = this.split(""),
5        n = a.length;
6
7    for(var i = n - 1; i > 0; i--) {
8        var j = Math.floor(Math.random() * (i + 1));
9        var tmp = a[i];
10        a[i] = a[j];
11        a[j] = tmp;
12    }
13    return a.join("");
14}
15
16
17var WPDM = {
18
19    init: function($){
20
21    },
22
23    beep: function() {
24        if(WPDM.audio == undefined)
25            var snd = new  Audio("data:audio/wav;base64,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BZx5zfMakeAAAAmwAAAAF5F3P0w9GtAAACfAAAAAwLhMDmAYWMgVEG1U0FIGCBgXBXAtfMH10000EEEEEECUBYln03TTTdNBDZopopYvrTTdNa325mImNg3TTPV9q3pmY0xoO6bv3r00y+IDGid/9aaaZTGMuj9mpu9Mpio1dXrr5HERTZSmqU36A3CumzN/9Robv/Xx4v9ijkSRSNLQhAWumap82WRSBUqXStV/YcS+XVLnSS+WLDroqArFkMEsAS+eWmrUzrO0oEmE40RlMZ5+ODIkAyKAGUwZ3mVKmcamcJnMW26MRPgUw6j+LkhyHGVGYjSUUKNpuJUQoOIAyDvEyG8S5yfK6dhZc0Tx1KI/gviKL6qvvFs1+bWtaz58uUNnryq6kt5RzOCkPWlVqVX2a/EEBUdU1KrXLf40GoiiFXK///qpoiDXrOgqDR38JB0bw7SoL+ZB9o1RCkQjQ2CBYZKd/+VJxZRRZlqSkKiws0WFxUyCwsKiMy7hUVFhIaCrNQsKkTIsLivwKKigsj8XYlwt/WKi2N4d//uQRCSAAjURNIHpMZBGYiaQPSYyAAABLAAAAAAAACWAAAAApUF/Mg+0aohSIRobBAsMlO//Kk4soosy1JSFRYWaLC4qZBYWFRGZdwqKiwkNBVmoWFSJkWFxX4FFRQWR+LsS4W/rFRb/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////VEFHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAU291bmRib3kuZGUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjAwNGh0dHA6Ly93d3cuc291bmRib3kuZGUAAAAAAAAAACU=");
26        else
27            var snd = new  Audio(WPDM.audio);
28        snd.play();
29    },
30
31    uniqueID: function(){
32        var uniq = Date.now()+"abcdefghijklmnopqrstuvwxyz_";
33        uniq = uniq.wpdm_shuffle();
34        uniq = uniq.substring(1, 10);
35        return uniq;
36    },
37
38    popupWindow: function(url, title, w, h) {
39        /* Fixes dual-screen position                         Most browsers      Firefox */
40        var dualScreenLeft = window.screenLeft != undefined ? window.screenLeft : screen.left;
41        var dualScreenTop = window.screenTop != undefined ? window.screenTop : screen.top;
42
43        var width = window.innerWidth ? window.innerWidth : document.documentElement.clientWidth ? document.documentElement.clientWidth : screen.width;
44        var height = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : screen.height;
45
46        var left = ((width / 2) - (w / 2)) + dualScreenLeft;
47        var top = ((height / 2) - (h / 2)) + dualScreenTop;
48        var newWindow = window.open(url, title, 'scrollbars=yes, width=' + w + ', height=' + h + ', top=' + top + ', left=' + left);
49
50        /* Puts focus on the newWindow */
51        if (window.focus) {
52            newWindow.focus();
53        }
54
55        return false;
56    },
57
58    bootAlert: function(heading, content, width) {
59        var html;
60        if(!width) width = 400;
61        var modal_id = '__bootModal_' + WPDM.uniqueID();
62        html = '<div class="w3eden" id="w3eden'+modal_id+'"><div id="'+modal_id+'" class="modal fade" tabindex="-1" role="dialog">\n' +
63            '  <div class="modal-dialog" style="width: '+width+'px" role="document">\n' +
64            '    <div class="modal-content" style="border-radius: 4px;overflow: hidden">\n' +
65            '      <div class="modal-header" style="padding: 12px 15px;background: rgba(0,0,0,0.02);">\n' +
66            '        <h4 class="modal-title" style="font-size: 10pt;font-weight: 600;padding: 0;margin: 0;font-family:Montserrat, san-serif;letter-spacing: 0.5px">'+heading+'</h4>\n' +
67            '      </div>\n' +
68            '      <div class="modal-body fetfont" style="line-height: 1.5;text-transform: unset;font-weight:400;letter-spacing:0.5px;font-size: 12px">\n' +
69            '        '+content+'\n' +
70            '      </div>\n' +
71            '      <div class="modal-footer" style="padding: 10px 15px">\n' +
72            '        <button type="button" class="btn btn-secondary btn-xs" data-target="#'+modal_id+'" data-dismiss="modal">Close</button>\n' +
73            '      </div>\n' +
74            '    </div>\n' +
75            '  </div>\n' +
76            '</div></div>';
77        jQuery('body').append(html);
78        jQuery("#"+modal_id).modal({show: true, backdrop: 'static'});
79        return jQuery("#"+modal_id);
80    },
81
82
83    /**
84     * Local push notification
85     * @param title
86     * @param message
87     * @param icon
88     * @param image
89     * @param url
90     */
91    pushNotify: function(title, message, icon, image, url){
92        if (!('Notification' in window) || !('ServiceWorkerRegistration' in window)) {
93            return;
94        }
95
96        Notification.requestPermission(function (result) {
97            if(result === 'granted'){
98                console.log('Notification: ' + result);
99                try {
100                    var notification = new Notification(title, {body: message, icon: icon?icon:'https://cdn1.iconfinder.com/data/icons/hawcons/32/698558-icon-47-note-important-512.png', image: image?image:''});
101                    if(url) {
102                        notification.onclick = function (e) {
103                            e.preventDefault();
104                            window.open(url, '_blank');
105                        };
106                    }
107                } catch (err) {
108                    console.log('Notification API error: ' + err);
109                }
110            } else {
111                console.log('Notification: ' + result);
112            }
113        });
114
115    },
116
117
118
119    /**
120     * Shows notification
121     * @param message
122     * @param type
123     * @param position
124     */
125    notify: function(message, type, position, autoclose){
126        var $ = jQuery;
127        if(type === undefined || !type) type = 'info';
128        if(position === undefined || !position) position = 'top-right';
129        if(type === 'danger') type = 'error';
130        var notifycont = position.indexOf('#') >= 0 ? position : '#wpdm-notify-'+position ;
131        if($(notifycont).length  == 0)
132            $('body').prepend("<div id='wpdm-notify-"+position+"'></div>");
133        var notif = $("<div class='wpdm-notify fetfont wpdm-notify-"+type+"' style='display: none'>"+message+"</div>");
134        $(notifycont).append(notif);
135        $(notif).fadeIn();
136        if(autoclose !== undefined){
137            setTimeout(function () {
138
139                $(notif).animate({
140                    opacity: 0
141                }, 1000, function() {
142                    $(this).slideUp();
143                });
144
145            }, autoclose);
146        }
147        return $(notif);
148    },
149
150    /**
151     * Shows notification
152     * @param message
153     * @param type
154     * @param position
155     */
156    floatify: function(html, position){
157        var $ = jQuery;
158        if(position === undefined || !position) position = 'top-right';
159        var floatifycont = '#wpdm-floatify-'+position;
160        if($(floatifycont).length  == 0)
161            $('body').prepend("<div class='w3eden' id='wpdm-floatify-"+position+"'></div>");
162        var floatify = $("<div class='wpdm-floatify fetfont style='margin-right: -500px'>"+html+"</div>");
163        $(floatifycont).append(floatify);
164        $(floatify).animate({marginRight: '0px'});
165        return $(floatify);
166    },
167
168    blockUI: function(element, xhr){
169        jQuery(element).addClass("blockui");
170        if(xhr)
171            xhr.addEventListener("load", function () {
172                jQuery(element).removeClass("blockui");
173            });
174    },
175
176    unblockUI: function(element){
177        jQuery(element).removeClass("blockui");
178    },
179
180    overlay: function(element, html){
181        var $ = jQuery;
182        var overlaycontent = $("<div class='wpdm-overlay-content' style='display: none'>"+html+"<div class='wpdm-overlay-close' style='cursor: pointer'><i class='far fa-times-circle'></i> close</div></div>");
183        $(element).addClass('wpdm-overlay').append(overlaycontent);
184        $(overlaycontent).fadeIn();
185        $('body').on('click', '.wpdm-overlay-close', function () {
186            $(overlaycontent).fadeOut(function () {
187                $(this).remove();
188            });
189        });
190        return $(overlaycontent);
191    },
192
193
194    confirm: function(heading, content, buttons) {
195        var html, $ = jQuery;
196        var modal_id = '__boot_popup_' + WPDM.uniqueID();
197        $("#w3eden__boot_popup").remove();
198        var _buttons = '';
199        if(buttons) {
200            _buttons = '<div class="modal-footer" style="padding: 8px 15px;">\n';
201            $.each(buttons, function (i, button) {
202                var id = 'btx_' + i;
203                _buttons += "<button id='" + id + "' class='" + button.class + " btn-xs' style='font-size: 10px;padding: 3px 20px;'>" + button.label + "</button> ";
204            });
205            _buttons += '</div>\n';
206        }
207
208        html = '<div class="w3eden" id="w3eden'+modal_id+'"><div id="'+modal_id+'" style="z-index: 9999999 !important;" class="modal fade" tabindex="-1" role="dialog">\n' +
209            '  <div class="modal-dialog" role="document" style="max-width: 100%;width: 350px">\n' +
210            '    <div class="modal-content" style="border-radius: 3px;overflow: hidden">\n' +
211            '      <div class="modal-header" style="padding: 12px 15px;background: #f5f5f5;">\n' +
212            '        <h4 class="modal-title" style="font-size: 9pt;font-weight: 500;padding: 0;margin: 0;font-family:var(--wpdm-font), san-serif;letter-spacing: 0.5px">'+heading+'</h4>\n' +
213            '      </div>\n' +
214            '      <div class="modal-body text-center" style="font-family:var(--wpdm-font), san-serif;letter-spacing: 0.5px;font-size: 10pt;font-weight: 300;padding: 25px;line-height: 1.5">\n' +
215            '        '+content+'\n' +
216            '      </div>\n' + _buttons +
217            '    </div>\n' +
218            '  </div>\n' +
219            '</div></div>';
220        $('body').append(html);
221        $("#"+modal_id).modal('show');
222        $.each(buttons, function (i, button) {
223            var id = 'btx_'+i;
224            $('#'+id).unbind('click');
225            $( '#'+id).bind('click' , function () {
226                button.callback.call($("#"+modal_id));
227                return false;
228            });
229        });
230        return $("#"+modal_id);
231    },
232    audioUI: function(audio){
233        var $ = jQuery, song_length, song_length_m, song_length_s;
234
235        if(parseInt(wpdm_asset.bsversion) !== 3)
236            var player_html = '<div class="w3eden"><div style="display: none" class="wpdm-audio-player-ui" id="wpdm-audio-player-ui"><div class="card m-2"><div class="card-body text-center"><div class="media"><div class="mr-3 wpdm-audio-control-buttons"><button class="btn btn-primary btn-play" id="wpdm-btn-play"><i class="fa fa-play"></i></button> <button class="btn btn-primary btn-backward" id="wpdm-btn-backward"><i class="fa fa-backward"></i></button> <button class="btn btn-primary btn-forward" id="wpdm-btn-forward"><i class="fa fa-forward"></i></button></div><div class="media-body"><div class="position-relative"><div id="played">00:00</div><div id="mins">00:00</div></div><div class="progress"><div  id="wpdm-audio-progress" class="progress-bar bg-success" role="progressbar" style="width: 0%;" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100"></div></div></div><div class="ml-3 wpdm-audio-control-buttons"> <button class="btn btn-info btn-volumctrl" id="wpdm-btn-volumctrl"><i class="fa fa-volume-up"></i></button> <div class="volumctrl"><input type="range" min="0" max="1" step="0.01" value="3" class="p-0" id="wpdm-audio-volume"></div></div></div></div></div></div></div>';
237        else
238            var player_html = '<div class="w3eden"><div style="display: none" class="wpdm-audio-player-ui" id="wpdm-audio-player-ui"><div class="panel panel-default" style="margin: 0;border: 0;border-radius: 0;border-top: 1px solid #dddddd;background: #fcfcfc"><div class="panel-body text-center"><div class="media"><div class="pull-right wpdm-audio-control-buttons"><button class="btn btn-info btn-volumctrl" id="wpdm-btn-volumctrl"><i class="fa fa-volume-up"></i></button> <div class="volumctrl"> <input type="range" min="0" max="1" step="0.01" value="3" class="p-0" id="wpdm-audio-volume"> </div></div><div class="wpdm-audio-control-buttons pull-left"><nobr><button class="btn btn-primary btn-play" id="wpdm-btn-play"><i class="fa fa-play"></i></button> <button class="btn btn-primary btn-backward" id="wpdm-btn-backward"><i class="fa fa-backward"></i></button> <button class="btn btn-primary btn-forward" id="wpdm-btn-forward"><i class="fa fa-forward"></i></button></nobr></div><div class="media-body"><div class="position-relative"><div id="played">00:00</div><div id="mins">00:00</div></div><div class="progress"><div  id="wpdm-audio-progress" class="progress-bar bg-success" role="progressbar" style="width: 0%;" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100"></div></div></div></div></div></div></div></div>';
239
240        if(audio.duration !== Infinity) {
241            song_length = parseInt(audio.duration);
242            song_length_m = parseInt(song_length / 60);
243            song_length_s = song_length - (song_length_m * 60);
244            song_length_m = song_length_m > 9 ? song_length_m : "0" + song_length_m;
245            song_length_s = song_length_s > 9 ? song_length_s : "0" + song_length_s;
246        } else {
247            song_length_m = "--";
248            song_length_s = "--";
249            audio.addEventListener("durationchange", function (e) {
250                console.log(this.duration);
251                if (this.duration !== Infinity) {
252                    song_length = parseInt(this.duration);
253                    song_length_m = parseInt(song_length / 60);
254                    song_length_s = song_length - (song_length_m * 60);
255                    song_length_m = song_length_m > 9 ? song_length_m : "0" + song_length_m;
256                    song_length_s = song_length_s > 9 ? song_length_s : "0" + song_length_s;
257                    $('#mins').html(song_length_m+":"+song_length_s);
258                    next(song_length);
259                }
260            }, false);
261        }
262
263        if($('#wpdm-audio-player-ui').length === 0 ){
264            $('body').append(player_html);
265            $("#wpdm-audio-player-ui").slideDown();
266            $('#mins').html(song_length_m+":"+song_length_s);
267            $('body').on('click', '#wpdm-audio-player-ui .progress', function(e){
268                let value = e.offsetX * 100 / this.clientWidth;
269                var played = parseInt(song_length*value/100);
270                var played_m = parseInt(played/60);
271                var played_s = played - (played_m*60);
272                played_m = played_m > 9 ? played_m : "0"+played_m;
273                played_s = played_s > 9 ? played_s : "0"+played_s;
274                $('#played').html(played_m+":"+played_s);
275                audio.currentTime = (song_length*value)/100;
276                $(this).find('.progress-bar').css('width', value + "%");
277                //video.currentTime = duration * (value / 100);
278            });
279            $('body').on('click', '#wpdm-btn-backward', function(){
280                let value = (parseInt($('#wpdm-audio-player-ui .progress-bar').css('width'))/parseInt($('#wpdm-audio-player-ui .progress').css('width')))*100 - 10;
281                if(value < 0) value = 0;
282                var played = parseInt(song_length*value/100);
283                var played_m = parseInt(played/60);
284                var played_s = played - (played_m*60);
285                played_m = played_m > 9 ? played_m : "0"+played_m;
286                played_s = played_s > 9 ? played_s : "0"+played_s;
287                $('#played').html(played_m+":"+played_s);
288                audio.currentTime = (song_length*value)/100;
289                $('#wpdm-audio-player-ui .progress-bar').css('width', value + "%");
290            });
291            $('body').on('click', '#wpdm-btn-forward', function(){
292                let value = (parseInt($('#wpdm-audio-player-ui .progress-bar').css('width'))/parseInt($('#wpdm-audio-player-ui .progress').css('width')))*100 + 10;
293                if(value > 100) value = 100;
294                var played = parseInt(song_length*value/100);
295                var played_m = parseInt(played/60);
296                var played_s = played - (played_m*60);
297                played_m = played_m > 9 ? played_m : "0"+played_m;
298                played_s = played_s > 9 ? played_s : "0"+played_s;
299                $('#played').html(played_m+":"+played_s);
300                audio.currentTime = (song_length*value)/100;
301                $('#wpdm-audio-player-ui .progress-bar').css('width', value + "%");
302            });
303            $('#wpdm-btn-volumctrl').on('click', function(){
304                $(this).next('.volumctrl').toggle();
305            });
306            $('body').on('click', '.btn-play', function(){
307                if($(this).find('.fa').hasClass('fa-play')) {
308                    $(this).find('.fa').addClass('fa-pause').removeClass('fa-play');
309                    $(this).data('state', 'playing');
310                    audio.play();
311                }
312                else {
313                    $(this).find('.fa').addClass('fa-play').removeClass('fa-pause');
314                    $(this).data('state', 'paused');
315                    audio.pause();
316                }
317            });
318            $('body').on('change', '#wpdm-audio-volume', function () {
319                audio.volume = this.value;
320            });
321
322        }
323        $('#mins').html(song_length_m+":"+song_length_s);
324        audio.addEventListener("play", function(){
325            $('#wpdm-btn-play').find('.fa').addClass('fa-pause').removeClass('fa-play');
326        });
327        audio.addEventListener("pause", function(){
328            $('#wpdm-btn-play').find('.fa').addClass('fa-play').removeClass('fa-pause');
329        });
330        audio.addEventListener("timeupdate", function(e){
331            var song_length = parseInt(audio.duration);
332            var time_now = audio.currentTime;
333            var percent = (time_now/song_length)*100;
334            if(percent > 100) percent = 100;
335            $('#wpdm-audio-progress').css('width', percent+"%");
336            var played = parseInt(time_now);
337            var played_m = parseInt(played/60);
338            var played_s = played - (played_m*60);
339            played_m = played_m > 9 ? played_m : "0"+played_m;
340            played_s = played_s > 9 ? played_s : "0"+played_s;
341            $('#played').html(played_m+":"+played_s);
342        });
343
344
345
346    }
347
348};
349
350
351
352jQuery(function ($) {
353
354    var $body = $('body');
355
356    $body.on('click', '.wpdm-notify', function () {
357        /* $(this).addClass('wpdm-hide-right'); */
358        $(this).animate({marginRight: '-500px'}, 1000, function () {
359            $(this).remove();
360        });
361    });
362
363    $body.on('click', '.dismis-on-click', function () {
364        $(this).slideUp();
365    });
366
367    $body.on('click', '.wpdm-download-link.wpdm-download-locked', function (e) {
368        e.preventDefault();
369        hideLockFrame();
370
371        var parentWindow = document.createElement("a");
372        parentWindow.href = document.referrer.toString();
373
374        var __sep = '?';
375        if(wpdm_home_url.indexOf('?') > 0) __sep = '&';
376
377        if(parentWindow.hostname === window.location.hostname || 1)
378            $(window.parent.document.body).append("<iframe id='wpdm-lock-frame' style='left:0;top:0;width: 100%;height: 100%;z-index: 999999999;position: fixed;background: rgba(255,255,255,0.4) url("+wpdm_home_url+"wp-content/plugins/download-manager/assets/images/loader.svg) center center no-repeat;background-size: 80px 80px;border: 0;' src='"+wpdm_home_url+__sep+"__wpdmlo="+$(this).data('package')+"'></iframe>");
379        else
380            window.parent.postMessage({
381                'task': 'showiframe',
382                'iframe': "<iframe id='wpdm-lock-frame' style='left:0;top:0;width: 100%;height: 100%;z-index: 999999999;position: fixed;background: rgba(255,255,255,0.4) url("+wpdm_home_url+"wp-content/plugins/download-manager/assets/images/loader.svg) center center no-repeat;background-size: 80px 80px;border: 0;' src='"+wpdm_home_url+__sep+"__wpdmlo="+$(this).data('package')+"'></iframe>"
383            }, "*");
384
385    });
386
387    $body.on('click', '.wpdm-download-link.download-on-click', function (e) {
388        e.preventDefault();
389        if(this.target === '_blank')
390            window.open($(this).data('downloadurl'));
391        else
392            window.location.href = $(this).data('downloadurl');
393    });
394
395    $body.on('click', '.__wpdm_playvideo', function (e) {
396        e.preventDefault();
397        $('#__wpdm_videoplayer').children('source').attr('src', $(this).data('video'));
398        console.log('loading...');
399        var vid = document.getElementById("__wpdm_videoplayer");
400        vid.onloadeddata = function() {
401            console.log('loaded....');
402        };
403        $("#__wpdm_videoplayer").get(0).load();
404
405    });
406
407    $body.on('change', '.terms_checkbox', function (e) {
408        if($(this).is(':checked'))
409            $('#wpdm-filelist-'+$(this).data('pid')+' .btn.inddl, #xfilelist .btn.inddl').removeAttr('disabled');
410        else
411            $('#wpdm-filelist-'+$(this).data('pid')+' .btn.inddl, #xfilelist .btn.inddl').attr('disabled', 'disabled');
412    });
413
414    $body.on('click', '.wpdm-social-lock', function (e) {
415
416        try {
417
418
419            _PopupCenter($(this).data('url'), 'Social Lock', 600, 400);
420
421        }catch(e){}
422
423    });
424
425    $body.on('click', '#wpdm-dashboard-sidebar a.list-group-item', function (e) {
426        location.href = this.href;
427    });
428
429    var $input_group_input = $('.input-group input');
430    $input_group_input.on('focus', function () {
431        $(this).parent('.input-group').find('.input-group-addon').addClass('input-group-addon-active');
432    });
433    $input_group_input.on('blur', function () {
434        $(this).parent().find('.input-group-addon').removeClass('input-group-addon-active');
435    });
436
437
438    $body.on('click', 'button.btn.inddl', function (e) {
439        e.preventDefault();
440        var tis = this;
441        if($(this).data('dlurl') !== undefined){
442            location.href = $(this).data('dlurl');
443            return;
444        }
445        $.post( wpdm_ajax_url, {
446            action: 'wpdm_verify_file_pass',
447            wpdmfileid: $(tis).data('pid'),
448            wpdmfile: $(tis).data('file'),
449            actioninddlpvr: 1,
450            filepass: $($(tis).data('pass')).val()
451        }, function (res) {
452            if (res.error === '') {
453                var dlurl = res.downloadurl;
454                $(tis).data('dlurl', dlurl);
455                wpdm_boot_popup("Password Verified!", "<div style='padding: 50px;'>Please click following button to start download.<br/><br/><a href='"+dlurl+"' class='btn btn-lg btn-success' target='_blank'>Start Download</a></div>",
456                    [{
457                        label: 'Close',
458                        class: 'btn btn-secondary',
459                        callback: function () {
460                            this.modal('hide');
461                            return false;
462                        }
463                    }]
464                );
465            }
466        });
467    });
468
469    $body.on('click', '.wpdm-download-locked.pop-over', function () {
470        var $dc = $($(this).attr('href'));
471        var prts = $(this).attr('href').split('_');
472        var pid = prts[1];
473
474        if ($(this).attr('data-ready') === undefined || $(this).attr('data-ready') === 'hide') {
475
476            $(this).popover({
477                placement: 'bottom',
478                html: true,
479                content: function () {
480
481                    if(wpdm_ajax_popup === 1)
482                        return "<div id='popcnt_"+pid+"'><i class='fa fa-refresh fa-spin'></i> Loading...</div>"+'<div style="padding-top: 10px;border-top: 1px solid #eeeeee;text-align: right"><button class="btn btn-danger btn-xs po-close" s><i class="fa fa-times-circle"></i> Close</button></div>';
483
484                    else
485                        return $dc.html()+'<div style="padding-top: 10px;border-top: 1px solid #eeeeee;text-align: right"><button class="btn btn-danger btn-xs po-close" s><i class="fa fa-times-circle"></i> Close</button></div>';
486
487
488                }
489            });
490            $(this).popover('show');
491
492            if(wpdm_ajax_popup === 1)
493                $("#popcnt_"+pid).load(ajax_url,{action:'showLockOptions',id:pid});
494
495            $(this).data('ready', 'show');
496        } else {
497            $(this).popover('hide');
498            $(this).date('ready', 'hide');
499        }
500
501        return false;
502    });
503
504
505
506    $body.on('click', '.wpdm-indir', function (e) {
507        e.preventDefault();
508        WPDM.blockUI('#xfilelist');
509        $('#xfilelist').load(location.href, {
510            action: 'wpdmfilelistcd',
511            pid: $(this).data('pid'),
512            cd: $(this).data('dir')
513        }, function (res) {
514            WPDM.unblockUI('#xfilelist');
515        });
516    });
517
518
519    $body.on('click', '.role-tabs a', function (e) {
520        $('.role-tabs a').removeClass('active');
521        $(this).addClass('active');
522    });
523
524
525
526    $body.on('click', '.btn-wpdm-a2f', function (e) {
527        var a2fbtn = $(this);
528        $.post(ajax_url, {action: 'wpdm_addtofav', pid: $(this).data('package')}, function (res) {
529            if(a2fbtn.hasClass('btn-secondary'))
530                a2fbtn.removeClass('btn-secondary').addClass('btn-danger').html(a2fbtn.data('rlabel'));
531            else
532                a2fbtn.removeClass('btn-danger').addClass('btn-secondary').html(a2fbtn.data('alabel'));
533        });
534    });
535
536    $body.on('click', '.wpdm-btn-play', function (e) {
537        e.preventDefault();
538
539        if($('#wpdm-audio-player').length === 0) {
540            var player = document.createElement('audio');
541            player.id = 'wpdm-audio-player';
542            player.controls = 'controls';
543            player.autoplay = 1;
544            player.type = 'audio/mpeg';
545            $('body').append(player);
546        }
547
548        player = $('#wpdm-audio-player');
549        var btn = $(this);
550
551        if (btn.data('state') === 'stop' || !btn.data('state')) {
552            player.css('display', 'none');
553            player.attr('src', $(this).data('song') + "&play=song.mp3");
554        }
555
556        if (btn.data('state') === 'playing') {
557            $(this).data('state', 'paused');
558            player.trigger('pause');
559            $(this).html("<i class='fa fa-play'></i>");
560            return false;
561        }
562
563        if (btn.data('state') === 'paused') {
564            $(this).data('state', 'playing');
565            player.trigger('play');
566            $('.wpdm-btn-play').html("<i class='fa fa-play'></i>");
567            $(this).html("<i class='fa fa-pause'></i>");
568            return false;
569        }
570
571
572        $('.wpdm-btn-play').data("state", "stop");
573        $('.wpdm-btn-play').html("<i class='fa fa-play'></i>");
574        btn.html("<i class='fas fa-sun  fa-spin'></i>");
575        player.unbind('loadedmetadata');
576        player.on('loadedmetadata', function () {
577            console.log("Playing " + this.src + ", for: " + this.duration + "seconds.");
578            btn.html("<i class='fa fa-pause'></i>");
579            btn.data('state', 'playing');
580            WPDM.audioUI(this);
581        });
582        document.getElementById('wpdm-audio-player').onended = function () {
583            btn.html("<i class='fa fa-redo'></i>");
584            btn.data('state', 'stop');
585        }
586    });
587
588    $('.wpdm_remove_empty').remove();
589
590    /* Uploading files */
591    var file_frame, dfield;
592
593    $body.on('click', '.wpdm-media-upload', function (event) {
594        event.preventDefault();
595        dfield = $($(this).attr('rel'));
596
597        /* If the media frame already exists, reopen it. */
598        if (file_frame) {
599            file_frame.open();
600            return;
601        }
602
603        /* Create the media frame. */
604        file_frame = wp.media.frames.file_frame = wp.media({
605            title: $(this).data('uploader_title'),
606            button: {
607                text: $(this).data('uploader_button_text')
608            },
609            multiple: false  /* Set to true to allow multiple files to be selected */
610        });
611
612        /* When an image is selected, run a callback. */
613        file_frame.on('select', function () {
614            /* We set multiple to false so only get one image from the uploader */
615            attachment = file_frame.state().get('selection').first().toJSON();
616            dfield.val(attachment.url);
617
618        });
619
620        /* Finally, open the modal */
621        file_frame.open();
622    });
623
624    $body.on('click', '.btn-image-selector' , function( event ){
625        event.preventDefault();
626        dfield = $($(this).attr('rel'));
627        var dfield_h = $($(this).attr('rel')+'_hidden');
628
629        if ( file_frame ) {
630            file_frame.open();
631            return;
632        }
633
634        file_frame = wp.media.frames.file_frame = wp.media({
635            title: $( this ).data( 'uploader_title' ),
636            button: {
637                text: $( this ).data( 'uploader_button_text' )
638            },
639            multiple: false
640        });
641
642
643        file_frame.on( 'select', function() {
644
645            attachment = file_frame.state().get('selection').first().toJSON();
646            dfield.attr('src', attachment.url);
647            dfield_h.val(attachment.url);
648
649        });
650
651        file_frame.open();
652    });
653
654    $body.on('click', '.pagination.async a, .__wpdm_load_async', function (e) {
655        e.preventDefault();
656        var _cont = $(this).data('container');
657        $(_cont).addClass('blockui');
658        $.get(this.href, function (res) {
659            $(_cont).html($(res).find(_cont).html());
660            $(_cont).removeClass('blockui');
661        });
662    });
663
664    $('.__wpdm_submit_async').on('submit', function (e) {
665        e.preventDefault();
666        var _cont = $(this).data('container');
667        $(_cont).addClass('blockui');
668        $(this).ajaxSubmit({
669            success: function (response) {
670                $(_cont).html($(response).find(_cont).html());
671                $(_cont).removeClass('blockui');
672            }
673        })
674    });
675
676
677
678    var unlocked = [];
679
680    $('.wpdm-filelist-area[data-termlock]').on('mouseover', function () {
681
682        try {
683            if (unlocked[$(this).data('packageid')] === 1) return;
684        } catch (e) {
685
686        }
687        $('#term-panel-' + $(this).data('packageid')).fadeIn('fast');
688    });
689
690    $('.terms_checkbox').on('click', function () {
691        if($(this).is(':checked')){
692            unlocked[$(this).data('pid')] = 1;
693            $('#term-panel-' + $(this).data('pid')).fadeOut('fast');
694            $('.download_footer_'+$(this).data('pid')).slideDown();
695        }
696        else
697            $('.download_footer_'+$(this).data('pid')).slideUp();
698    });
699
700
701    $formcontrol = $('.input-wrapper input');
702    $formcontrol.on('focus', function () {
703        $('.input-wrapper').removeClass('input-focused');
704        $(this).parent('.input-wrapper').addClass('input-focused');
705    });
706    $formcontrol.on('change', function () {
707        $('.input-wrapper').removeClass('input-focused');
708        $(this).parent('.input-wrapper').addClass('input-focused');
709        if($(this).val() !== '')
710            $(this).parent('.input-wrapper').addClass('input-withvalue');
711        else
712            $(this).parent('.input-wrapper').removeClass('input-withvalue');
713    });
714
715});
716
717function _PopupCenter(url, title, w, h) {
718    /* Fixes dual-screen position                         Most browsers      Firefox */
719    var dualScreenLeft = window.screenLeft != undefined ? window.screenLeft : screen.left;
720    var dualScreenTop = window.screenTop != undefined ? window.screenTop : screen.top;
721
722    var width = window.innerWidth ? window.innerWidth : document.documentElement.clientWidth ? document.documentElement.clientWidth : screen.width;
723    var height = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : screen.height;
724
725    var left = ((width / 2) - (w / 2)) + dualScreenLeft;
726    var top = ((height / 2) - (h / 2)) + dualScreenTop;
727    var newWindow = window.open(url, title, 'scrollbars=yes, width=' + w + ', height=' + h + ', top=' 
727+ top + ', left=' + left);
728
729    /* Puts focus on the newWindow */
730    if (window.focus) {
731        newWindow.focus();
732    }
733
734    return false;
735}
736
737function generatepass(id){
738    tb_show('Generate Password',ajaxurl+'?action=wpdm_generate_password&id='+id);
739}
740
741function hideLockFrame() {
742    jQuery('#wpdm-lock-frame').remove();
743}
744
745function wpdm_bootModal(heading, content, width) {
746    var html;
747    if(!width) width = 400;
748    jQuery("#w3eden__bootModal").remove();
749    html = '<div class="w3eden" id="w3eden__bootModal"><div id="__bootModal" class="modal fade" tabindex="-1" role="dialog">\n' +
750        '  <div class="modal-dialog" style="width: '+width+'px" role="document">\n' +
751        '    <div class="modal-content" style="border-radius: 3px;overflow: hidden">\n' +
752        '      <div class="modal-header" style="padding: 12px 15px;background: #f5f5f5;">\n' +
753        '        <h4 class="modal-title" style="font-size: 9pt;font-weight: 500;padding: 0;margin: 0;font-family:Montserrat, san-serif;letter-spacing: 0.5px">'+heading+'</h4>\n' +
754        '      </div>\n' +
755        '      <div class="modal-body fetfont" style="line-height: 1.5;text-transform: unset;font-weight:400;letter-spacing:0.5px;font-size: 12px">\n' +
756        '        '+content+'\n' +
757        '      </div>\n' +
758        '      <div class="modal-footer" style="padding: 10px 15px">\n' +
759        '        <button type="button" class="btn btn-secondary btn-xs" data-dismiss="modal">Close</button>\n' +
760        '      </div>\n' +
761        '    </div>\n' +
762        '  </div>\n' +
763        '</div></div>';
764    jQuery('body').append(html);
765    jQuery("#__bootModal").modal('show');
766}
767
768function wpdm_boot_popup(heading, content, buttons) {
769    var html, $ = jQuery;
770    $("#w3eden__boot_popup").remove();
771    var _buttons = '';
772    if(buttons) {
773        _buttons = '<div class="modal-footer" style="padding: 8px 15px;">\n';
774        $.each(buttons, function (i, button) {
775            var id = 'btx_' + i;
776            _buttons += "<button id='" + id + "' class='" + button.class + " btn-xs' style='font-size: 10px;padding: 3px 20px;'>" + button.label + "</button> ";
777        });
778        _buttons += '</div>\n';
779    }
780
781    html = '<div class="w3eden" id="w3eden__boot_popup"><div id="__boot_popup" style="z-index: 9999999 !important;" class="modal fade" tabindex="-1" role="dialog">\n' +
782        '  <div class="modal-dialog" role="document" style="max-width: 100%;width: 350px">\n' +
783        '    <div class="modal-content" style="border-radius: 3px;overflow: hidden">\n' +
784        '      <div class="modal-header" style="padding: 12px 15px;background: #f5f5f5;">\n' +
785        '        <h4 class="modal-title" style="font-size: 9pt;font-weight: 500;padding: 0;margin: 0;font-family:Montserrat, san-serif;letter-spacing: 0.5px">'+heading+'</h4>\n' +
786        '      </div>\n' +
787        '      <div class="modal-body text-center" style="letter-spacing: 0.5px;font-size: 10pt;font-weight: 300;padding: 25px;line-height: 1.5">\n' +
788        '        '+content+'\n' +
789        '      </div>\n' + _buttons +
790        '    </div>\n' +
791        '  </div>\n' +
792        '</div></div>';
793    $('body').append(html);
794    $("#__boot_popup").modal('show');
795    $.each(buttons, function (i, button) {
796        var id = 'btx_'+i;
797        $('#'+id).unbind('click');
798        $( '#'+id).bind('click' , function () {
799            button.callback.call($("#__boot_popup"));
800            return false;
801        });
802    });
803    return $("#__boot_popup");
804}
805
806/**
807 * Open an url in iframe modal
808 * @param url
809 * @param closebutton
810 * @returns {boolean}
811 */
812function wpdm_iframe_modal(url, closebutton) {
813    var iframe, $ = jQuery;
814    if(url === 'close') {
815        $('#wpdm_iframe_modal').remove();
816        $('#ifcb').remove();
817        $('body').removeClass('wpdm-iframe-modal-open');
818        return false;
819    }
820    var closebutton_html = "";
821    if(closebutton !== undefined && closebutton === true)
822        closebutton_html = "<span id='ifcb' class='w3eden'><a href='#' onclick='return wpdm_iframe_modal(\"close\");' style='border-radius: 0;position: fixed;top: 0;right: 0;z-index: 9999999999 !important;width: 40px;line-height: 40px;padding: 0' class='btn btn-danger'><i class='fas fa-times'></i></a></span>";
823
824    iframe = '<iframe src="'+url+'" style="width: 100%;height: 100%;position: fixed;z-index: 999999999 !important;border: 0;left: 0;top: 0;right: 0;bottom: 0;background: rgba(0,0,0,0.2);display: none;" id="wpdm_iframe_modal"></iframe>'+closebutton_html;
825    $('body').append(iframe).addClass('wpdm-iframe-modal-open');
826    $('#wpdm_iframe_modal').fadeIn();
827
828}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.