File: /home/dtptviut/domains/teleweb.dk/public_html/wp-content/plugins/w3-total-cache/pub/js/lightbox.js
var W3tc_Lightbox = {
window: jQuery(window),
container: null,
options: null,
create: function () {
var me = this;
this.container = jQuery(
'<div class="' +
this.options.id +
'"><div class="lightbox-close">' +
this.options.close +
'</div><div id="w3tc_lightbox_content" class="lightbox-content"></div><!-- Spinner --><div id="lightbox-spinner" class="lightbox-spinner hidden"><span class="dashicons dashicons-update"></span></div></div>',
).css({
top: 0,
left: 0,
width: 0,
height: 0,
position: "fixed",
"z-index": 9991,
display: "none",
});
jQuery("body").append(this.container);
this.window.resize(function () {
me.resize();
});
this.container.find(".lightbox-close").on("click", function () {
me.close();
});
jQuery(document).keyup(function (e) {
if (e.keyCode == 27) {
me.close();
} // esc
});
},
open: function (options) {
this.options = jQuery.extend(
{
id: "lightbox",
close: "",
width: 0,
height: 0,
maxWidth: 0,
maxHeight: 0,
minWidth: 0,
minHeight: 0,
widthPercent: 0.6,
heightPercent: 0.8,
content: null,
url: null,
callback: null,
},
options,
);
this.create();
if (this.options.content) {
this.content(this.options.content);
} else if (this.options.url) {
this.load(this.options.url, this.options.callback);
if (window.w3tc_ga) {
var w3tc_action = this.options.url.match(/w3tc_action=([^&]+)/);
if (!w3tc_action || !w3tc_action[1]) {
w3tc_action = this.options.url.match(/&(w3tc_[^&]+)&/);
}
if (w3tc_action && w3tc_action[1]) {
w3tc_ga("event", "pageview", {
eventLabel: "overlays/" + w3tc_action[1],
});
}
}
}
W3tc_Overlay.show();
this.container.show();
},
close: function () {
if (this.options.onClose) this.options.onClose();
this.container.remove();
W3tc_Overlay.hide();
},
resize: function () {
var width = this.options.width
? this.options.width
: this.window.width() * this.options.widthPercent;
var height = this.options.height
? this.options.height
: this.window.height() * this.options.heightPercent;
if (!this.options.maxWidth) this.options.maxWidth = this.window.width();
if (!this.options.maxHeight) this.options.maxHeight = this.window.height();
if (this.options.maxWidth && width > this.options.maxWidth) {
width = this.options.maxWidth;
} else if (width < this.options.minWidth) {
width = this.options.minWidth;
}
if (this.options.maxHeight && height > this.options.maxHeight) {
height = this.options.maxHeight;
} else if (height < this.options.minHeight) {
height = this.options.minHeight;
}
this.container.css({
width: width,
height: height,
});
this.container.css({
top:
this.window.height() / 2 - this.container.outerHeight() / 2 >= 0
? this.window.height() / 2 - this.container.outerHeight() / 2
: 0,
left:
this.window.width() / 2 - this.container.outerWidth() / 2 >= 0
? this.window.width() / 2 - this.container.outerWidth() / 2
: 0,
});
jQuery(".lightbox-content", this.container).css({
width: width,
height: height,
});
},
load: function (url, callback) {
this.content("");
this.loading(true);
var me = this;
jQuery.get(url, {}, function (content) {
me.loading(false);
if (content.substr(0, 9) === "Location ") {
w3tc_beforeupload_unbind();
window.location = content.substr(9);
return;
}
me.content(content);
if (callback) {
callback.call(this, me);
}
});
},
/**
* adds all controls of the form to the url
*/
load_form: function (url, form_selector, callback) {
data = {};
var v = jQuery(form_selector)
.find("input")
.each(function (i) {
var name = jQuery(this).attr("name");
var type = jQuery(this).attr("type");
if (type == "radio" || type == "checkbox") {
if (!jQuery(this).prop("checked")) return;
}
if (name) data[name] = jQuery(this).val();
});
this.content("");
this.loading(true);
var me = this;
jQuery.post(url, data, function (content) {
me.loading(false);
if (content.substr(0, 9) === "Location ") {
w3tc_beforeupload_unbind();
window.location = content.substr(9);
return;
}
me.content(content);
if (callback) {
callback.call(this, me);
}
});
},
content: function (content) {
return this.container.find(".lightbox-content").html(content);
},
width: function (width) {
if (width === undefined) {
return this.container.width();
} else {
this.container.css("width", width);
return this.resize();
}
},
height: function (height) {
if (height === undefined) {
return this.container.height();
} else {
this.container.css("height", height);
return this.resize();
}
},
loading: function (loading) {
if (loading)
this.container.find(".lightbox-content").addClass("lightbox-loader");
else
this.container.find(".lightbox-content").removeClass("lightbox-loader");
},
show_spinner: function () {
this.container.find(".lightbox-spinner").show(); // Show the spinner
this.container.find(".lightbox-content").css("opacity", "0.5"); // Gray out the modal
this.container.find("input, button, a").prop("disabled", true); // Disable other interactions
},
hide_spinner: function () {
this.container.find(".lightbox-spinner").hide(); // Hide the spinner
this.container.find(".lightbox-content").css("opacity", "1"); // Restore the modal opacity
this.container.find("input, button, a").prop("disabled", false); // Enable interactions
},
};
var W3tc_Overlay = {
window: jQuery(window),
container: null,
create: function () {
var me = this;
this.container = jQuery('<div id="overlay" />').css({
top: 0,
left: 0,
width: 0,
height: 0,
position: "fixed",
"z-index": 9990,
display: "none",
opacity: 0.6,
});
jQuery("body").append(this.container);
this.window.resize(function () {
me.resize();
});
this.window.scroll(function () {
me.resize();
});
},
show: function () {
this.create();
this.resize();
this.container.show();
},
hide: function () {
this.container.remove();
},
resize: function () {
this.container.css({
width: this.window.width(),
height: this.window.height(),
});
},
};
var w3tc_minify_recommendations_checked = {};
function w3tc_lightbox_minify_recommendations(nonce) {
W3tc_Lightbox.open({
width: 1000,
url:
"admin.php?page=w3tc_minify&w3tc_test_minify_recommendations&_wpnonce=" +
nonce,
callback: function (lightbox) {
var theme = jQuery("#recom_theme").val();
if (jQuery.ui && jQuery.ui.sortable) {
jQuery("#recom_js_files,#recom_css_files").sortable({
axis: "y",
stop: function () {
jQuery(this)
.find("li")
.each(function (index) {
jQuery(this)
.find("td:eq(1)")
.html(index + 1 + ".");
});
},
});
}
if (w3tc_minify_recommendations_checked[theme] !== undefined) {
jQuery("#recom_js_files :text,#recom_css_files :text").each(
function () {
var hash =
jQuery(this)
.parents("li")
.find("[name=recom_js_template]")
.val() +
":" +
jQuery(this).val();
if (
w3tc_minify_recommendations_checked[theme][hash] !== undefined
) {
var checkbox = jQuery(this).parents("li").find(":checkbox");
if (w3tc_minify_recommendations_checked[theme][hash]) {
checkbox.attr("checked", "checked");
} else {
checkbox.removeAttr("checked");
}
}
},
);
}
jQuery("#recom_theme").change(function () {
jQuery("#recom_js_files :checkbox,#recom_css_files :checkbox").each(
function () {
var li = jQuery(this).parents("li");
var hash =
li.find("[name=recom_js_template]").val() +
":" +
li.find(":text").val();
if (w3tc_minify_recommendations_checked[theme] === undefined) {
w3tc_minify_recommendations_checked[theme] = {};
}
w3tc_minify_recommendations_checked[theme][hash] =
jQuery(this).is(":checked");
},
);
lightbox.load(
"admin.php?page=w3tc_minify&w3tc_test_minify_recommendations&theme_key=" +
jQuery(this).val() +
"&_wpnonce=" +
nonce,
lightbox.options.callback,
);
});
jQuery("#recom_js_check").on("click", function () {
if (jQuery("#recom_js_files :checkbox:checked").length) {
jQuery("#recom_js_files :checkbox").removeAttr("checked");
} else {
jQuery("#recom_js_files :checkbox").attr("checked", "checked");
}
return false;
});
jQuery("#recom_css_check").on("click", function () {
if (jQuery("#recom_css_files :checkbox:checked").length) {
jQuery("#recom_css_files :checkbox").removeAttr("checked");
} else {
jQuery("#recom_css_files :checkbox").attr("checked", "checked");
}
return false;
});
jQuery(".recom_apply", lightbox.container).on("click", function () {
var theme = jQuery("#recom_theme").val();
jQuery("#js_files li").each(function () {
if (
jQuery(this)
.find(":text")
.attr("name")
.indexOf("js_files[" + theme + "]") != -1
) {
jQuery(this).remove();
}
});
jQuery("#css_files li").each(function () {
if (
jQuery(this)
.find(":text")
.attr("name")
.indexOf("css_files[" + theme + "]") != -1
) {
jQuery(this).remove();
}
});
jQuery("#recom_js_files li").each(function () {
if (jQuery(this).find(":checkbox:checked").length) {
w3tc_minify_js_file_add(
theme,
jQuery(this).find("[name=recom_js_template]").val(),
jQuery(this).find("[name=recom_js_location]").val(),
jQuery(this).find("[name=recom_js_file]").val(),
);
}
});
jQuery("#recom_css_files li").each(function () {
if (jQuery(this).find(":checkbox:checked").length) {
w3tc_minify_css_file_add(
theme,
jQuery(this).find("[name=recom_css_template]").val(),
jQuery(this).find("[name=recom_css_file]").val(),
);
}
});
w3tc_minify_js_theme(theme);
w3tc_minify_css_theme(theme);
w3tc_input_enable(
".js_enabled",
jQuery("#minify_js_enable:checked").length,
);
w3tc_input_enable(
".css_enabled",
jQuery("#minify_css_enable:checked").length,
);
lightbox.close();
});
lightbox.resize();
},
});
}
function w3tc_lightbox_self_test(nonce) {
W3tc_Lightbox.open({
width: 800,
minHeight: 300,
url:
"admin.php?page=w3tc_dashboard&w3tc_test_self&_wpnonce=" +
w3tcGetAdminNonce("w3tc_test_self"),
callback: function (lightbox) {
jQuery(".button-primary", lightbox.container).on("click", function () {
lightbox.close();
});
lightbox.resize();
},
});
}
function w3tc_lightbox_upgrade(nonce, data_src, renew_key) {
var client_id = "";
if (window.w3tc_ga) {
client_id = w3tc_ga_cid;
}
var minWidth = jQuery(window).width() - 30;
var minHeight = jQuery(window).height() - 30;
W3tc_Lightbox.open({
id: "w3tc-overlay",
close: "",
maxWidth: 1000,
minWidth: minWidth < 1000 ? minWidth : 1000,
minHeight: minHeight < 500 ? minHeight : 500,
url:
"admin.php?page=w3tc_dashboard&w3tc_licensing_upgrade&_wpnonce=" +
encodeURIComponent(nonce) +
"&data_src=" +
encodeURIComponent(data_src) +
(renew_key ? "&renew_key=" + encodeURIComponent(renew_key) : "") +
(client_id ? "&client_id=" + encodeURIComponent(client_id) : ""),
callback: function (lightbox) {
lightbox.options.height = jQuery("#w3tc-upgrade").outerHeight();
jQuery(".button-primary", lightbox.container).on("click", function () {
lightbox.close();
});
jQuery("#w3tc-purchase", lightbox.container).on("click", function () {
lightbox.close();
w3tc_lightbox_buy_plugin(
w3tcGetAdminNonce("w3tc_licensing_buy_plugin"),
data_src,
renew_key,
client_id,
);
});
jQuery("#w3tc-purchase-link", lightbox.container).on(
"click",
function () {
lightbox.close();
if (jQuery("#licensing").length) {
jQuery([document.documentElement, document.body]).animate(
{
scrollTop: jQuery("#licensing").offset().top,
},
2000,
);
}
},
);
// Allow for customizations of the "upgrade" overlay specifically.
jQuery(".w3tc-overlay").addClass("w3tc-overlay-upgrade");
lightbox.resize();
},
});
}
function w3tc_lightbox_buy_plugin(nonce, data_src, renew_key, client_id) {
if (window.w3tc_ga) {
client_id = w3tc_ga_cid;
}
var minWidth = jQuery(window).width() - 30;
var minHeight = jQuery(window).height() - 30;
W3tc_Lightbox.open({
id: "w3tc-overlay",
maxWidth: 1000,
minWidth: minWidth < 1000 ? minWidth : 1000,
minHeight: minHeight < 700 ? minHeight : 700,
url:
"admin.php?page=w3tc_dashboard&w3tc_licensing_buy_plugin" +
"&_wpnonce=" +
encodeURIComponent(nonce) +
"&data_src=" +
encodeURIComponent(data_src) +
(renew_key ? "&renew_key=" + encodeURIComponent(renew_key) : "") +
(client_id ? "&client_id=" + encodeURIComponent(client_id) : ""),
callback: function (lightbox) {
var w3tc_license_listener = function (event) {
if (event.origin.substr(event.origin.length - 12) !== ".w3-edge.com")
return;
var data = event.data.split(" ");
if (data[0] === "license") {
// legacy purchase
w3tc_lightbox_save_license_key(null, function () {
lightbox.close();
});
} else if (data[0] === "v2_license") {
// reset default timeout
var iframe = document.getElementById("buy_frame");
if (iframe.contentWindow && iframe.contentWindow.postMessage)
iframe.contentWindow.postMessage("v2_license_accepted", "*");
lightbox.options.onClose = function () {
window.location = window.location + "&refresh";
};
w3tc_lightbox_save_license_key(data[1], null, function () {
jQuery("#buy_frame").attr("src", data[3]);
});
}
};
if (window.addEventListener) {
addEventListener("message", w3tc_license_listener, false);
} else if (attachEvent) {
attachEvent("onmessage", w3tc_license_listener);
}
jQuery(".button-primary", lightbox.container).on("click", function () {
lightbox.close();
});
// Allow for customizations of the "upgrade" overlay specifically.
jQuery(".w3tc-overlay").addClass("w3tc-overlay-upgrade");
lightbox.resize();
},
});
}
function w3tc_lightbox_save_license_key(license_key, nonce, callback) {
if (typeof nonce === "function") {
callback = nonce;
nonce = null;
}
if (null === license_key || undefined === license_key) {
license_key = jQuery("#plugin_license_key").val();
} else {
jQuery("#plugin_license_key").val(license_key);
}
if (!nonce) {
nonce = w3tcGetAdminNonce("w3tc_default_save_license_key");
}
var params = {
w3tc_default_save_license_key: 1,
license_key: license_key,
_wpnonce: "array" === jQuery.type(nonce) ? nonce[0] : nonce,
};
jQuery
.post(
"admin.php?page=w3tc_dashboard",
params,
function (data) {
callback();
},
"json",
)
.fail(callback);
}
jQuery(function () {
jQuery(".button-minify-recommendations").on("click", function () {
var nonce = jQuery(this).metadata().nonce;
w3tc_lightbox_minify_recommendations(nonce);
return false;
});
jQuery(".button-self-test").on("click", function () {
var nonce = jQuery(this).metadata().nonce;
w3tc_lightbox_self_test(nonce);
return false;
});
jQuery(".button-buy-plugin").on("click", function () {
var data_src = jQuery(this).data("src");
var nonce = jQuery(this).data("nonce");
if (!nonce) {
nonce = w3tcGetAdminNonce("w3tc_licensing_upgrade");
}
var renew_key = jQuery(this).data("renew-key");
if (window.w3tc_ga) {
w3tc_ga("event", "button", {
eventCategory: "click",
eventLabel: "license_upgrade_" + data_src,
});
}
w3tc_lightbox_upgrade(nonce, data_src, renew_key);
jQuery("#w3tc-license-instruction").show();
return false;
});
jQuery(".button-renew-plugin").on("click", function () {
var data_src = jQuery(this).data("src");
var nonce = jQuery(this).data("nonce");
if (!nonce) {
nonce = w3tcGetAdminNonce("w3tc_licensing_buy_plugin");
}
var renew_key = jQuery(this).data("renew-key");
if (window.w3tc_ga) {
w3tc_ga("event", "button", {
eventCategory: "click",
eventLabel: "license_renew_" + data_src,
});
}
w3tc_lightbox_buy_plugin(nonce, data_src, renew_key);
return false;
});
jQuery("body").on("click", ".w3tc_lightbox_close", function () {
W3tc_Lightbox.close();
});
});