!(function ($) { wp.customize.controlConstructor["bloglo-background"] = wp.customize.Control.extend({ ready: function () { "use strict"; var range, range_input, bloglo_range_input_number_timeout, control = this, value = control.setting._value; control.container.find(".background-image-advanced").hide(), control.container.on( "change", ".background-repeat select", function () { control.saveValue("background-repeat", $(this).val()); } ), control.container.on( "change click", ".background-size input", function () { control.saveValue("background-size", $(this).val()); } ), control.container.on( "change click", ".background-attachment input", function () { control.saveValue("background-attachment", $(this).val()); } ), control.container.on( "click", ".background-image-upload-button", function (e) { var image = wp .media({ multiple: !1, title: control.params.l10n.select_image, button: { text: control.params.l10n.use_image }, }) .open() .on("select", function () { var previewImage, imageUrl, imageID, preview, removeButton, uploadedImageJSON = image .state() .get("selection") .first() .toJSON(); (previewImage = _.isUndefined(uploadedImageJSON.sizes) ? uploadedImageJSON.url : _.isUndefined(uploadedImageJSON.sizes.medium) ? _.isUndefined(uploadedImageJSON.sizes.thumbnail) ? _.isUndefined(uploadedImageJSON.sizes.full) ? uploadedImageJSON.url : uploadedImageJSON.sizes.full.url : uploadedImageJSON.sizes.thumbnail.url : uploadedImageJSON.sizes.medium.url), (imageUrl = uploadedImageJSON.url), (imageID = uploadedImageJSON.id), uploadedImageJSON.width, uploadedImageJSON.height, "" !== imageUrl && (control.container .find(".background-image-advanced") .show(), control.container .find(".advanced-settings") .removeClass("hidden") .addClass("up")), control.saveValue("background-image", imageUrl), control.saveValue("background-image-id", imageID), (preview = control.container.find( ".placeholder, .thumbnail" )), (removeButton = control.container.find( ".background-image-upload-remove-button" )), preview.length && preview .removeClass() .addClass("thumbnail thumbnail-image") .html(''), removeButton.length && removeButton.show(); }); e.preventDefault(); } ), control.container.on( "click", ".background-image-upload-remove-button", function (e) { var preview, removeButton; e.preventDefault(), control.saveValue("background-image", ""), control.saveValue("background-image-id", ""), (preview = control.container.find(".placeholder, .thumbnail")), (removeButton = control.container.find( ".background-image-upload-remove-button" )), control.container.find(".background-image-advanced").hide(), control.container .find(".advanced-settings") .addClass("hidden") .removeClass("up"), preview.length && preview .removeClass() .addClass("placeholder") .html(control.params.l10n.placeholder), removeButton.length && removeButton.hide(); } ), control.container.on("click", ".advanced-settings", function (e) { $(this).toggleClass("up"), control.container.find(".background-image-advanced").toggle(); }), control.container .find("input.bloglo-range-input") .on("change keyup", function () { control.autocorrect_range_input_number( $(this), 1e3, bloglo_range_input_number_timeout ); }) .on("focusout", function () { control.autocorrect_range_input_number( $(this), 0, bloglo_range_input_number_timeout ); }), control.container .find("input[type=range]") .on("mousedown", function () { (range = $(this)), (range_input = range.parent().children(".bloglo-range-input")), (value = range.attr("value")), range_input.val(value), range.mousemove(function () { (value = range.attr("value")), range_input.val(value), clearTimeout(bloglo_range_input_number_timeout), (bloglo_range_input_number_timeout = setTimeout( function () { control.saveValue(range.data("key"), value); }, 25 )); }); }); }, saveValue: function (property, value) { var val = this.setting.get(); value !== (val = val || {})[property] && (((val = JSON.parse(JSON.stringify(val)))[property] = value), this.setting.set(val)); }, autocorrect_range_input_number: function (input_number, timeout) { var range_input = input_number, range = range_input.parent().find('input[type="range"]'), value = parseFloat(range_input.val()), reset = parseFloat( range.find(".bloglo-reset-range").attr("data-reset_value") ), step = parseFloat(range_input.attr("step")), min = parseFloat(range_input.attr("min")), max = parseFloat(range_input.attr("max")); clearTimeout(timeout), (timeout = setTimeout(function () { if (isNaN(value)) { return ( range_input.val(reset), void range.val(reset).trigger("change") ); } 1 <= step && 0 != value % 1 && ((value = Math.round(value)), range_input.val(value), range.val(value).trigger("change")), value > max && (range_input.val(max), range.val(max).trigger("change")), value < min && (range_input.val(min), range.val(min).trigger("change")); }, timeout)), range.val(value).trigger("change"), this.saveValue(range.data("key"), value); }, }); })(jQuery); !(function (e) { wp.customize.controlConstructor["bloglo-background"] = wp.customize.Control.extend({ ready: function () { "use strict"; var a, n, t, i = this, r = i.setting._value; i.container.find(".background-image-advanced").hide(), i.container.on("change", ".background-repeat select", function () { i.saveValue("background-repeat", e(this).val()); }), i.container.on("change click", ".background-size input", function () { i.saveValue("background-size", e(this).val()); }), i.container.on( "change click", ".background-attachment input", function () { i.saveValue("background-attachment", e(this).val()); } ), i.container.on( "click", ".background-image-upload-button", function (e) { var a = wp .media({ multiple: !1, title: i.params.l10n.select_image, button: { text: i.params.l10n.use_image }, }) .open() .on("select", function () { var e, n, t, r, o, u = a.state().get("selection").first().toJSON(); (e = _.isUndefined(u.sizes) ? u.url : _.isUndefined(u.sizes.medium) ? _.isUndefined(u.sizes.thumbnail) ? _.isUndefined(u.sizes.full) ? u.url : u.sizes.full.url : u.sizes.thumbnail.url : u.sizes.medium.url), (n = u.url), (t = u.id), u.width, u.height, "" !== n && (i.container.find(".background-image-advanced").show(), i.container .find(".advanced-settings") .removeClass("hidden") .addClass("up")), i.saveValue("background-image", n), i.saveValue("background-image-id", t), (r = i.container.find(".placeholder, .thumbnail")), (o = i.container.find( ".background-image-upload-remove-button" )), r.length && r .removeClass() .addClass("thumbnail thumbnail-image") .html(''), o.length && o.show(); }); e.preventDefault(); } ), i.container.on( "click", ".background-image-upload-remove-button", function (e) { var a, n; e.preventDefault(), i.saveValue("background-image", ""), i.saveValue("background-image-id", ""), (a = i.container.find(".placeholder, .thumbnail")), (n = i.container.find( ".background-image-upload-remove-button" )), i.container.find(".background-image-advanced").hide(), i.container .find(".advanced-settings") .addClass("hidden") .removeClass("up"), a.length && a .removeClass() .addClass("placeholder") .html(i.params.l10n.placeholder), n.length && n.hide(); } ), i.container.on("click", ".advanced-settings", function (a) { e(this).toggleClass("up"), i.container.find(".background-image-advanced").toggle(); }), i.container .find("input.bloglo-range-input") .on("change keyup", function () { i.autocorrect_range_input_number(e(this), 1e3, t); }) .on("focusout", function () { i.autocorrect_range_input_number(e(this), 0, t); }), i.container.find("input[type=range]").on("mousedown", function () { (a = e(this)), (n = a.parent().children(".bloglo-range-input")), (r = a.attr("value")), n.val(r), a.mousemove(function () { (r = a.attr("value")), n.val(r), clearTimeout(t), (t = setTimeout(function () { i.saveValue(a.data("key"), r); }, 25)); }); }); }, saveValue: function (e, a) { var n = this.setting.get(); a !== (n = n || {})[e] && (((n = JSON.parse(JSON.stringify(n)))[e] = a), this.setting.set(n)); }, autocorrect_range_input_number: function (e, a) { var n = e, t = n.parent().find('input[type="range"]'), i = parseFloat(n.val()), r = parseFloat( t.find(".bloglo-reset-range").attr("data-reset_value") ), o = parseFloat(n.attr("step")), u = parseFloat(n.attr("min")), s = parseFloat(n.attr("max")); clearTimeout(a), (a = setTimeout(function () { if (isNaN(i)) return n.val(r), void t.val(r).trigger("change"); 1 <= o && 0 != i % 1 && ((i = Math.round(i)), n.val(i), t.val(i).trigger("change")), i > s && (n.val(s), t.val(s).trigger("change")), i < u && (n.val(u), t.val(u).trigger("change")); }, a)), t.val(i).trigger("change"), this.saveValue(t.data("key"), i); }, }); })(jQuery);