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