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 if(parentWindow.hostname === window.location.hostname || 1) 375 $(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+"?__wpdmlo="+$(this).data('package')+"'></iframe>"); 376 else 377 window.parent.postMessage({ 378 'task': 'showiframe', 379 '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+"?__wpdmlo="+$(this).data('package')+"'></iframe>" 380 }, "*"); 381 382 }); 383
384 $body.on('click', '.wpdm-download-link.download-on-click', function (e) { 385 e.preventDefault(); 386 window.location.href = $(this).data('downloadurl'); 387 }); 388 389 $body.on('click', '.__wpdm_playvideo', function (e) { 390 e.preventDefault(); 391 $('#__wpdm_videoplayer').children('source').attr('src', $(this).data('video')); 392 console.log('loading...'); 393 var vid = document.getElementById("__wpdm_videoplayer"); 394 vid.onloadeddata = function() { 395 console.log('loaded....'); 396 }; 397 $("#__wpdm_videoplayer").get(0).load(); 398 399 }); 400 401 $body.on('change', '.terms_checkbox', function (e) { 402 if($(this).is(':checked')) 403 $('#wpdm-filelist-'+$(this).data('pid')+' .btn.inddl, #xfilelist .btn.inddl').removeAttr('disabled'); 404 else 405 $('#wpdm-filelist-'+$(this).data('pid')+' .btn.inddl, #xfilelist .btn.inddl').attr('disabled', 'disabled'); 406 }); 407 408 $body.on('click', '.wpdm-social-lock', function (e) { 409 410 try { 411 412 413 _PopupCenter($(this).data('url'), 'Social Lock', 600, 400); 414 415 }catch(e){} 416 417 }); 418 419 $body.on('click', '#wpdm-dashboard-sidebar a.list-group-item', function (e) { 420 location.href = this.href; 421 }); 422 423 var $input_group_input = $('.input-group input'); 424 $input_group_input.on('focus', function () { 425 $(this).parent('.input-group').find('.input-group-addon').addClass('input-group-addon-active'); 426 }); 427 $input_group_input.on('blur', function () { 428 $(this).parent().find('.input-group-addon').removeClass('input-group-addon-active'); 429 }); 430 431 432 $body.on('click', 'button.btn.inddl', function (e) { 433 e.preventDefault(); 434 var tis = this; 435 if($(this).data('dlurl') !== undefined){ 436 location.href = $(this).data('dlurl'); 437 return; 438 } 439 $.post( wpdm_ajax_url, { 440 action: 'wpdm_verify_file_pass', 441 wpdmfileid: $(tis).data('pid'), 442 wpdmfile: $(tis).data('file'), 443 actioninddlpvr: 1, 444 filepass: $($(tis).data('pass')).val() 445 }, function (res) { 446 if (res.error === '') { 447 var dlurl = res.downloadurl; 448 $(tis).data('dlurl', dlurl); 449 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>", 450 [{ 451 label: 'Close', 452 class: 'btn btn-secondary', 453 callback: function () { 454 this.modal('hide'); 455 return false; 456 } 457 }] 458 ); 459 } 460 }); 461 }); 462 463 $body.on('click', '.wpdm-download-locked.pop-over', function () { 464 var $dc = $($(this).attr('href')); 465 var prts = $(this).attr('href').split('_'); 466 var pid = prts[1]; 467 468 if ($(this).attr('data-ready') === undefined || $(this).attr('data-ready') === 'hide') { 469 470 $(this).popover({ 471 placement: 'bottom', 472 html: true, 473 content: function () { 474 475 if(wpdm_ajax_popup === 1) 476 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>'; 477 478 else 479 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>'; 480 481 482 } 483 }); 484 $(this).popover('show'); 485 486 if(wpdm_ajax_popup === 1) 487 $("#popcnt_"+pid).load(ajax_url,{action:'showLockOptions',id:pid}); 488 489 $(this).data('ready', 'show'); 490 } else { 491 $(this).popover('hide'); 492 $(this).date('ready', 'hide'); 493 } 494 495 return false;
496 }); 497 498 499 500 $body.on('click', '.wpdm-indir', function (e) { 501 e.preventDefault(); 502 WPDM.blockUI('#xfilelist'); 503 $('#xfilelist').load(location.href, { 504 action: 'wpdmfilelistcd', 505 pid: $(this).data('pid'), 506 cd: $(this).data('dir') 507 }, function (res) { 508 WPDM.unblockUI('#xfilelist'); 509 }); 510 }); 511 512 513 $body.on('click', '.role-tabs a', function (e) { 514 $('.role-tabs a').removeClass('active'); 515 $(this).addClass('active'); 516 }); 517 518 519 520 $body.on('click', '.btn-wpdm-a2f', function (e) { 521 var a2fbtn = $(this); 522 $.post(ajax_url, {action: 'wpdm_addtofav', pid: $(this).data('package')}, function (res) { 523 if(a2fbtn.hasClass('btn-secondary')) 524 a2fbtn.removeClass('btn-secondary').addClass('btn-danger').html(a2fbtn.data('rlabel')); 525 else 526 a2fbtn.removeClass('btn-danger').addClass('btn-secondary').html(a2fbtn.data('alabel')); 527 }); 528 }); 529 530 $body.on('click', '.wpdm-btn-play', function (e) { 531 e.preventDefault(); 532 533 if($('#wpdm-audio-player').length === 0) { 534 var player = document.createElement('audio'); 535 player.id = 'wpdm-audio-player'; 536 player.controls = 'controls'; 537 player.autoplay = 1; 538 player.type = 'audio/mpeg'; 539 $('body').append(player); 540 } 541 542 player = $('#wpdm-audio-player'); 543 var btn = $(this); 544 545 if (btn.data('state') === 'stop' || !btn.data('state')) { 546 player.css('display', 'none'); 547 player.attr('src', $(this).data('song') + "&play=song.mp3"); 548 } 549 550 if (btn.data('state') === 'playing') { 551 $(this).data('state', 'paused'); 552 player.trigger('pause'); 553 $(this).html("<i class='fa fa-play'></i>"); 554 return false; 555 } 556 557 if (btn.data('state') === 'paused') { 558 $(this).data('state', 'playing'); 559 player.trigger('play'); 560 $('.wpdm-btn-play').html("<i class='fa fa-play'></i>"); 561 $(this).html("<i class='fa fa-pause'></i>"); 562 return false; 563 } 564 565 566 $('.wpdm-btn-play').data("state", "stop"); 567 $('.wpdm-btn-play').html("<i class='fa fa-play'></i>"); 568 btn.html("<i class='fas fa-sun fa-spin'></i>"); 569 player.unbind('loadedmetadata'); 570 player.on('loadedmetadata', function () { 571 console.log("Playing " + this.src + ", for: " + this.duration + "seconds."); 572 btn.html("<i class='fa fa-pause'></i>"); 573 btn.data('state', 'playing'); 574 WPDM.audioUI(this); 575 }); 576 document.getElementById('wpdm-audio-player').onended = function () { 577 btn.html("<i class='fa fa-redo'></i>"); 578 btn.data('state', 'stop'); 579 } 580 }); 581 582 $('.wpdm_remove_empty').remove(); 583 584 /* Uploading files */ 585 var file_frame, dfield; 586 587 $body.on('click', '.wpdm-media-upload', function (event) { 588 event.preventDefault(); 589 dfield = $($(this).attr('rel')); 590 591 /* If the media frame already exists, reopen it. */ 592 if (file_frame) { 593 file_frame.open(); 594 return; 595 } 596 597 /* Create the media frame. */ 598 file_frame = wp.media.frames.file_frame = wp.media({ 599 title: $(this).data('uploader_title'), 600 button: { 601 text: $(this).data('uploader_button_text') 602 }, 603 multiple: false /* Set to true to allow multiple files to be selected */ 604 }); 605 606 /* When an image is selected, run a callback. */ 607 file_frame.on('select', function () { 608 /* We set multiple to false so only get one image from the uploader */ 609 attachment = file_frame.state().get('selection').first().toJSON(); 610 dfield.val(attachment.url); 611 612 }); 613 614 /* Finally, open the modal */ 615 file_frame.open(); 616 }); 617 618 $body.on('click', '.btn-image-selector' , function( event ){ 619 event.preventDefault(); 620 dfield = $($(this).attr('rel')); 621 var dfield_h = $($(this).attr('rel')+'_hidden'); 622 623 if ( file_frame ) { 624 file_frame.open(); 625 return; 626 } 627 628 file_frame = wp.media.frames.file_frame = wp.media({ 629 title: $( this ).data( 'uploader_title' ), 630 button: { 631 text: $( this ).data( 'uploader_button_text' ) 632 }, 633 multiple: false 634 }); 635 636 637 file_frame.on( 'select', function() { 638 639 attachment = file_frame.state().get('selection').first().toJSON(); 640 dfield.attr('src', attachment.url); 641 dfield_h.val(attachment.url); 642 643 }); 644 645 file_frame.open(); 646 }); 647 648 $body.on('click', '.pagination.async a, .__wpdm_load_async', function (e) { 649 e.preventDefault(); 650 var _cont = $(this).data('container'); 651 $(_cont).addClass('blockui'); 652 $.get(this.href, function (res) { 653 $(_cont).html($(res).find(_cont).html()); 654 $(_cont).removeClass('blockui'); 655 }); 656 }); 657 658 $('.__wpdm_submit_async').on('submit', function (e) { 659 e.preventDefault(); 660 var _cont = $(this).data('container'); 661 $(_cont).addClass('blockui'); 662 $(this).ajaxSubmit({ 663 success: function (response) { 664 $(_cont).html($(response).find(_cont).html()); 665 $(_cont).removeClass('blockui'); 666 } 667 }) 668 }); 669 670 671 672 var unlocked = []; 673 674 $('.wpdm-filelist-area[data-termlock]').on('mouseover', function () { 675 676 try { 677 if (unlocked[$(this).data('packageid')] === 1) return; 678 } catch (e) { 679 680 } 681 $('#term-panel-' + $(this).data('packageid')).fadeIn('fast'); 682 }); 683 684 $('.terms_checkbox').on('click', function () { 685 if($(this).is(':checked')){ 686 unlocked[$(this).data('pid')] = 1; 687 $('#term-panel-' + $(this).data('pid')).fadeOut('fast'); 688 $('.download_footer_'+$(this).data('pid')).slideDown(); 689 } 690 else 691 $('.download_footer_'+$(this).data('pid')).slideUp(); 692 }); 693 694 695 $formcontrol = $('.input-wrapper input'); 696 $formcontrol.on('focus', function () { 697 $('.input-wrapper').removeClass('input-focused'); 698 $(this).parent('.input-wrapper').addClass('input-focused'); 699 }); 700 $formcontrol.on('change', function () { 701 $('.input-wrapper').removeClass('input-focused'); 702 $(this).parent('.input-wrapper').addClass('input-focused'); 703 if($(this).val() !== '') 704 $(this).parent('.input-wrapper').addClass('input-withvalue'); 705 else 706 $(this).parent('.input-wrapper').removeClass('input-withvalue'); 707 }); 708 709}); 710 711function _PopupCenter(url, title, w, h) { 712 /* Fixes dual-screen position Most browsers Firefox */ 713 var dualScreenLeft = window.screenLeft != undefined ? window.screenLeft : screen.left; 714 var dualScreenTop = window.screenTop != undefined ? window.screenTop : screen.top; 715 716 var width = window.innerWidth ? window.innerWidth : document.documentElement.clientWidth ? document.documentElement.clientWidth : screen.width; 717 var height = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : screen.height; 718 719 var left = ((width / 2) - (w / 2)) + dualScreenLeft; 720 var top = ((height / 2) - (h / 2)) + dualScreenTop; 721 var newWindow = window.open(url, title, 'scrollbars=yes, width=' + w + ', height=' + h + ', top='
721+ top + ', left=' + left); 722 723 /* Puts focus on the newWindow */ 724 if (window.focus) { 725 newWindow.focus(); 726 } 727 728 return false; 729} 730 731function generatepass(id){ 732 tb_show('Generate Password',ajaxurl+'?action=wpdm_generate_password&id='+id); 733} 734 735function hideLockFrame() { 736 jQuery('#wpdm-lock-frame').remove(); 737} 738 739function wpdm_bootModal(heading, content, width) { 740 var html; 741 if(!width) width = 400; 742 jQuery("#w3eden__bootModal").remove(); 743 html = '<div class="w3eden" id="w3eden__bootModal"><div id="__bootModal" class="modal fade" tabindex="-1" role="dialog">\n' + 744 ' <div class="modal-dialog" style="width: '+width+'px" role="document">\n' + 745 ' <div class="modal-content" style="border-radius: 3px;overflow: hidden">\n' + 746 ' <div class="modal-header" style="padding: 12px 15px;background: #f5f5f5;">\n' + 747 ' <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' + 748 ' </div>\n' + 749 ' <div class="modal-body fetfont" style="line-height: 1.5;text-transform: unset;font-weight:400;letter-spacing:0.5px;font-size: 12px">\n' + 750 ' '+content+'\n' + 751 ' </div>\n' + 752 ' <div class="modal-footer" style="padding: 10px 15px">\n' + 753 ' <button type="button" class="btn btn-secondary btn-xs" data-dismiss="modal">Close</button>\n' + 754 ' </div>\n' + 755 ' </div>\n' + 756 ' </div>\n' + 757 '</div></div>'; 758 jQuery('body').append(html); 759 jQuery("#__bootModal").modal('show'); 760} 761 762function wpdm_boot_popup(heading, content, buttons) { 763 var html, $ = jQuery; 764 $("#w3eden__boot_popup").remove(); 765 var _buttons = ''; 766 if(buttons) { 767 _buttons = '<div class="modal-footer" style="padding: 8px 15px;">\n'; 768 $.each(buttons, function (i, button) { 769 var id = 'btx_' + i; 770 _buttons += "<button id='" + id + "' class='" + button.class + " btn-xs' style='font-size: 10px;padding: 3px 20px;'>" + button.label + "</button> "; 771 }); 772 _buttons += '</div>\n'; 773 } 774 775 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' + 776 ' <div class="modal-dialog" role="document" style="max-width: 100%;width: 350px">\n' + 777 ' <div class="modal-content" style="border-radius: 3px;overflow: hidden">\n' + 778 ' <div class="modal-header" style="padding: 12px 15px;background: #f5f5f5;">\n' + 779 ' <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' + 780 ' </div>\n' + 781 ' <div class="modal-body text-center" style="letter-spacing: 0.5px;font-size: 10pt;font-weight: 300;padding: 25px;line-height: 1.5">\n' + 782 ' '+content+'\n' + 783 ' </div>\n' + _buttons + 784 ' </div>\n' + 785 ' </div>\n' + 786 '</div></div>'; 787 $('body').append(html); 788 $("#__boot_popup").modal('show'); 789 $.each(buttons, function (i, button) { 790 var id = 'btx_'+i; 791 $('#'+id).unbind('click'); 792 $( '#'+id).bind('click' , function () { 793 button.callback.call($("#__boot_popup")); 794 return false; 795 }); 796 }); 797 return $("#__boot_popup"); 798} 799 800/** 801 * Open an url in iframe modal 802 * @param url 803 * @param closebutton 804 * @returns {boolean} 805 */ 806function wpdm_iframe_modal(url, closebutton) { 807 var iframe, $ = jQuery; 808 if(url === 'close') { 809 $('#wpdm_iframe_modal').remove(); 810 $('#ifcb').remove(); 811 $('body').removeClass('wpdm-iframe-modal-open'); 812 return false; 813 } 814 var closebutton_html = ""; 815 if(closebutton !== undefined && closebutton === true) 816 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>"; 817 818 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; 819 $('body').append(iframe).addClass('wpdm-iframe-modal-open'); 820 $('#wpdm_iframe_modal').fadeIn(); 821 822}
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.