Packeta = window.Packeta || {};
Packeta.Viewport = {
element: null,
originalValue: null,
set: function() {
if (!Packeta.Viewport.element) {
Packeta.Viewport.element = document.querySelector("meta[name=viewport]");
if (Packeta.Viewport.element) {
Packeta.Viewport.originalValue = Packeta.Viewport.element.getAttribute("content");
} else {
Packeta.Viewport.originalValue = 'user-scalable=yes';
Packeta.Viewport.element = document.createElement('meta');
Packeta.Viewport.element.setAttribute("name", "viewport");
(document.head || document.getElementsByTagName('head')[0]).appendChild(Packeta.Viewport.element);
}
}
Packeta.Viewport.element.setAttribute('content', 'width=device-width, initial-scale=1.0, minimum-scale=1.0, user-scalable=yes');
},
restore: function() {
if (Packeta.Viewport.originalValue !== null) {
Packeta.Viewport.element.setAttribute('content', Packeta.Viewport.originalValue);
}
}
};
Packeta.Util = {
makeRequest: function(method, url, data, callback) {
try {
var xhr = new XMLHttpRequest();
xhr.open(method, url);
xhr.timeout = 5000;
xhr.onload = function() {
if (this.status >= 200 && this.status < 300) {
callback(xhr.response, false);
} else {
callback({
status: this.status,
statusText: xhr.statusText
}, true);
}
};
xhr.onerror = function() {
callback({
status: this.status,
statusText: xhr.statusText
}, true);
};
xhr.ontimeout = function() {
callback({
status: this.status,
statusText: xhr.statusText
}, true);
};
if (method === "POST" && data) {
xhr.send(data);
} else {
xhr.send();
}
} catch (error) {
callback({
error: "XMLHttpRequest error: " + error
}, true)
}
}
};
Packeta.Widget = {
baseUrl: 'https://widget.packeta.com/',
backupUrl: 'https://backup.widget.packeta.com/',
healthUrl: 'https://widget.packeta.com/v6/api/hcs/api/healthcheck',
errorUrl: 'https://error-page-service-widget-errors.prod.packeta-com.codenow.com/',
versions: {
backup: 'backup',
base: 'base',
error: 'error'
},
close: function() {},
initIframe: function(apiKey, callback, opts, inElement) {
Packeta.Widget.close();
if (!opts) {
opts = {};
}
if (!('version' in opts)) {
opts.version = 3;
}
opts.apiKey = apiKey;
var url = Packeta.Widget.baseUrl;
if (opts.currentVersion === Packeta.Widget.versions.backup) {
url = Packeta.Widget.backupUrl;
}
if (opts.currentVersion === Packeta.Widget.versions.error) {
url = Packeta.Widget.errorUrl;
}
url = url + 'v6/#/?';
for (let param in opts) {
url += "&" + param + "=" + encodeURIComponent(opts[param]);
}
var inline = (typeof(inElement) != "undefined" && inElement !== null);
var wrapper;
if (inline) {
wrapper = inElement;
} else {
Packeta.Viewport.set();
wrapper = document.createElement("div");
wrapper.setAttribute("style", "z-index: 999999; position: fixed; -webkit-backface-visibility: hidden; left: 0; top: 0; width: 100%; height: 100%; background: " + (opts.overlayColor || "rgba(0, 0, 0, 0.3)") + "; ");
wrapper.addEventListener("click", function() {