PageSourceSearch

https://elcoyote.org/wp-content/plugins/download-manager/assets/js/front_ver-3.2.66.js

js elcoyote.org collected 2026-10-03 17:46:59 UTC 40,838 bytes, 872 lines download raw bytes

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

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.