var text = null;
var logo = null;
var logo_remove_background = null;
var placeholder = "https://genqrcode.com";
var style = "0";
var inner_eye_style = "0";
var outer_eye_style = "0";
var color = "#000000";
var background_color = "#FFFFFF";
var inner_eye_color = "#000000";
var outer_eye_color = "#000000";
var frame_style = "0";
var frame_text = "SCAN ME";
var frame_color = "#000000";
var invert_colors = false;
var transparent_background = false;
var gradient_style = "0";
var gradient_color_start = "#FF0000";
var gradient_color_end = "#7F007F";
var gradient_start_offset = "5";
var gradient_end_offset ="95";
var selectedDynamicID = null;
var dynamicShortURL = null;
var dynamicFileId = null;
var dynamicFileName = null;
var customLogoId = null;
var isDownloading = false;
var lastArguments = {"logo":logo, "language":document.documentElement.lang, "imageformat":"svg", "type":0, "text":placeholder, "style":style, "inner_eye_style":inner_eye_style, "outer_eye_style":outer_eye_style};
var csrfToken = document.querySelector('meta[name="csrf-token"]').getAttribute("content");
$(document).ready(function() {
loadSessionAfterReload();
$("input[name='stl-format-select']").change(function() {
var selectedValue = $("input[name='stl-format-select']:checked").attr("id");
if (selectedValue === "stl-radio-with-base") {
$("#magnet-option-div").removeClass("d-none");
} else {
$("#magnet-option-div").addClass("d-none");
}
});
$("input[name='vcard-format-select']").change(function() {
//var selectedValue = $("input[name='vcard-format-select']:checked").attr("id");
var selectedValue = $("input[name='vcard-format-select']:checked").attr("id");
if (selectedValue !== "vcard-radio-text") {
$("#vcard-radio-text").prop('checked',true);
openDynamicVCardInfoModal();
} else {
}
});
$("#dynamic-checkbox-vcard").change(function() {
var checked = $("#dynamic-checkbox-vcard").prop("checked");
if (checked) {
$("#dynamic-checkbox-vcard").prop('checked', false);
openDynamicVCardInfoModal();
}
});
$("#stl-option-magnet").change(function() {
$("#magnet-round-content-div").toggleClass("d-none", $(this).val() != 1);
$("#magnet-square-content-div").toggleClass("d-none", $(this).val() != 2);
});
if (gradient_style != 0) {
$("#color-picker-normal").addClass("d-none");
$("#color-picker-gradient").removeClass("d-none");
$("#gradient-selector-div").removeClass("d-none");
let element = document.getElementById('gradient-selector');
element.value = gradient_style;
} else {
$("#color-picker-normal").removeClass("d-none");
$("#color-picker-gradient").addClass("d-none");
$("#gradient-selector-div").addClass("d-none");
}
const fileInput = document.getElementById('file');
fileInput.onchange = () => {
var fd = new FormData();
var files = $('#file')[0].files;
// Check file selected or not
if(files.length > 0 ){
$("#custom-image").removeClass("d-none");
fd.append('file',files[0]);
$.ajax({
url: '/uploadImage',
type: 'post',
data: fd,
contentType: false,
headers: { 'genqrcode-api-language': "hi", "X-CSRF-TOKEN": csrfToken},
processData: false,
success: function(data){
tmpPath = data['result'];
if(data != 0){
customLogoId = tmpPath;
logo = tmpPath;
replaceCustomImage(tmpPath);
lastArguments["logo"] = logo;
replaceImage(true);
}else{
alert('file not uploaded');
}
},
error: function (data) {
if (data.status === 419) {
saveSessionBeforeReload();
window.location.reload();
} else {
const result = JSON.parse(data.responseText);
if (null != result.display_message) {
alert(result.display_message);
} else {
alert('file not uploaded');
}
}
}
});
}
}
const pdfFileInput = document.getElementById('pdffile');
pdfFileInput.onchange = () => {
var files = $('#pdffile')[0].files;
uploadFile(files);
}
const vCardFileInput = document.getElementById('vcardfile');
vCardFileInput.onchange = () => {
var files = $('#vcardfile')[0].files;
uploadFile(files);
}
function uploadFile(files) {
var fd = new FormData();
// Check file selected or not
if(files.length > 0 ){
fd.append('file',files[0]);
$.ajax({
url: '/uploadFile',
type: 'post',
data: fd,
contentType: false,
headers: { 'genqrcode-api-language': "hi", "X-CSRF-TOKEN": csrfToken},
processData: false,
success: function(data){
fileId = data['result'];
if(data != 0){
dynamicFileId = fileId;
replaceImage(true);
} else {
alert('file not uploaded');
}
},
error: function (data) {
if (data.status === 419) {
saveSessionBeforeReload();
window.location.reload();
} else {
$('#pdffile').val("");
$('#vcardfile').val("");
const result = JSON.parse(data.responseText);
if (null != result.display_message) {
alert(result.display_message);
} else {
alert('file not uploaded');
}
}
}
});
}
}
$('.shapes-list').on("click", "button.select-shapes-button", function() {
if (style != this.id) {
style = this.id;
lastArguments["style"] = style;
replaceImage(true);
}
});
$('.shapes-inner-eye-list').on("click", "button.select-inner-eye-shapes-button", function() {
if (inner_eye_style != this.id) {
inner_eye_style = this.id;
lastArguments["inner_eye_style"] = inner_eye_style;
replaceImage(true);
}
});
$('.shapes-outer-eye-list').on("click", "button.select-outer-eye-shapes-button", function() {
if (outer_eye_style != this.id) {
outer_eye_style = this.id;
lastArguments["outer_eye_style"] = outer_eye_style;
replaceImage(true);
}
});
$('.shapes-frame-list').on("click", "button.select-frame-shapes-button", function() {
if (frame_style != this.id) {
frame_style = this.id;
lastArguments["frame_style"] = frame_style;
replaceImage(true);
}
});
$('.template-button-ukrain').on("click", function() {
var parameters = {};
parameters['gradient_style'] = 2;
parameters['gradient_color_start'] = "#0057B8";
parameters['gradient_color_end'] = "#FFD700";
parameters['gradient_start_offset'] = 50;
parameters['gradient_end_offset'] = 50;
clickTemplate(parameters, -1);
});
$('.template-button-video').on("click", function() {
var parameters = {};
parameters['outer_eye_style'] = 1;
parameters['inner_eye_style'] = 1;
parameters['logo'] = "youtube";
parameters['style'] = 19;
parameters['logo_remove_background'] = true;
parameters['gradient_style'] = 1;
parameters['gradient_color_start'] = "#FF0000"
parameters['gradient_color_end'] = "#A30505"
parameters['gradient_start_offset'] = 5;
parameters['gradient_end_offset'] = 95;
clickTemplate(parameters, -1);
});
$('#url-data').focusout(function() {
replaceImage(true);
});
$('#text-body').focusout(function() {
replaceImage(true);
});
$('.frame-text').focusout(function() {
if (frame_text != this.value) {
frame_text = this.value;
lastArguments["frame_text"] = frame_text;
replaceImage(true);
}
});
$('#gradient-start-offset').focusout(function() {
if (gradient_start_offset != this.value) {
gradient_start_offset = this.value;
lastArguments["gradient_start_offset"] = gradient_start_offset;
replaceImage(true);
}
});
$('#gradient-end-offset').focusout(function() {
if (gradient_end_offset != this.value) {
gradient_end_offset = this.value;
lastArguments["gradient_end_offset"] = gradient_end_offset;
replaceImage(true);
}
});
$('.logo-list').on("click", "img.select-logo-button", function() {
if (logo != this.id) {
logo = this.id;
lastArguments["logo"] = logo;
replaceImage(true);
}
});
$('#invert-colors').click(function() {
if (invert_colors != $('#invert-colors').is(':checked')) {
invert_colors = $('#invert-colors').is(':checked');
lastArguments["invert_colors"] = invert_colors;
lastArguments["color"] = color + (invert_colors ? (transparent_background ? "00" : "FF") : "FF");
lastArguments["background_color"] = background_color + (invert_colors ? "FF" : (transparent_background ? "00" : "FF"));
replaceImage(true);
}
})
$('#transparent-background').click(function() {
if (transparent_background != $('#transparent-background').is(':checked')) {
transparent_background = $('#transparent-background').is(':checked');
lastArguments["color"] = color + (invert_colors ? (transparent_background ? "00" : "FF") : "FF");
lastArguments["background_color"] = background_color + (invert_colors ? "FF" : (transparent_background ? "00" : "FF"));
replaceImage(true);
}
})
$('#remove-logo-button').click(function() {
logo = null;
lastArguments["logo"] = null;
replaceImage(true);
})
$('#logo-remove-background').click(function() {
if (logo_remove_background != $('#logo-remove-background').is(':checked')) {
logo_remove_background = $('#logo-remove-background').is(':checked');
lastArguments["logo_remove_background"] = logo_remove_background;
replaceImage(true);
}
})
$('#enable-gradient').click(function() {
changeGradient();
if (gradient_style != 0) {
$("#color-picker-normal").addClass("d-none");
$("#color-picker-gradient").removeClass("d-none");
$("#gradient-selector-div").removeClass("d-none");
} else {
$("#color-picker-normal").removeClass("d-none");
$("#color-picker-gradient").addClass("d-none");
$("#gradient-selector-div").addClass("d-none");
}
})
$('#gradient-selector').change(function() {
changeGradient();
})
function changeGradient() {
if ($('#enable-gradient').is(':checked')) {
var select = document.getElementById('gradient-selector');
gradient_style = select.options[select.selectedIndex].value;
lastArguments["gradient_style"] = gradient_style;
replaceImage(true);
} else {
gradient_style = 0;
lastArguments["gradient_style"] = gradient_style;
replaceImage(true);
}
}
$('#loginFromPopup').click(function() {
openLoginFromDynamicInfoModal();
})
$('#registerFromPopup').click(function() {
openRegisterFromDynamicInfoModal();
})
$('#openRegisterFromDynamicInfoModal').click(function() {
openRegisterFromDynamicInfoModal();
})
$('#loginFromPopupPDF').click(function() {
openLoginFromDynamicPDFInfoModal();
})
$('#registerFromPopupPDF').click(function() {
openRegisterFromDynamicPDFInfoModal();
})
$('#loginFromPopupVCard').click(function() {
openLoginFromDynamicVCardInfoModal();
})
$('#registerFromPopupVCard').click(function() {
openRegisterFromDynamicVCardInfoModal();
})
$('#qrgen').click(function() {
replaceImage(false);
})
$("#custom-image").click(function () {
logo = customLogoId;
lastArguments["logo"] = logo;
replaceImage(true);
});
$('#colorpicker1').focusout(function(){
color = this.value;
lastArguments["color"] = color + (invert_colors ? (transparent_background ? "00" : "FF") : "FF");
replaceImage(true);
});
$('#colorpicker4').focusout(function(){
background_color = this.value;
lastArguments["background_color"] = background_color + (invert_colors ? "FF" : (transparent_background ? "00" : "FF"));
replaceImage(true);
});
$('#colorpicker2').focusout(function(){
inner_eye_color = this.value;
lastArguments["inner_eye_color"] = inner_eye_color;
replaceImage(true);
});
$('#colorpicker3').focusout(function(){
outer_eye_color = this.value;
lastArguments["outer_eye_color"] = outer_eye_color;
replaceImage(true);
});
$('#colorpickerGradientStart').focusout(function() {
gradient_color_start = this.value;
lastArguments["gradient_color_start"] = gradient_color_start;
replaceImage(true);
});
$('#colorpickerGradientEnd').focusout(function() {
gradient_color_end = this.value;
lastArguments["gradient_color_end"] = gradient_color_end;
replaceImage(true);
});
$('#colorpickerFrame').focusout(function() {
frame_color = this.value;
lastArguments["frame_color"] = frame_color;
replaceImage(true);
});
$('#embed_imagesize').focusout(function() {
if (this.value < 100) {
this.value = 100;
}
if (this.value > 2000) {
this.value = 2000;
}
setEmbeddedLinks();
});
$('#embed_bordersize').focusout(function() {
if (this.value < 0) {
this.value = 0;
}
if (this.value > 10) {
this.value = 10;
}
setEmbeddedLinks();
});
})
function saveSessionBeforeReload() {
var id = $('.tab-content .active').attr('id');
sessionStorage.setItem("tab", id);
switch(id) {
case 'url':
sessionStorage.setItem("url-data", $('input[name="url-data"]').val());
break;
case 'text':
sessionStorage.setItem("text-body", $('textarea[name="text-body"]').val());
break;
case 'wifi':
sessionStorage.setItem("wifi-ssid", $('input[name="wifi-ssid"]').val());
sessionStorage.setItem("wifi-password", $('input[name="wifi-password"]').val());
sessionStorage.setItem("wifi-networktype", $('input[name="wifi-networktype"]').val());
sessionStorage.setItem("wifi-ishidden", $('input[name="wifi-ishidden"]').is(':checked'));
break;
case 'sms':
sessionStorage.setItem("sms-phone-number", $('input[name="sms-phone-number"]').val());
sessionStorage.setItem("sms-message", $('textarea[name="sms-message"]').val());
break;
case 'email':
sessionStorage.setItem("email-address", $('input[name="email-address"]').val());
sessionStorage.setItem("email-subject", $('input[name="email-subject"]').val());
sessionStorage.setItem("email-body", $('textarea[name="email-body"]').val());
break;
case 'phone':
sessionStorage.setItem("phone-number", $('input[name="phone-number"]').val());
break;
case 'crypto':
sessionStorage.setItem("crypto-type-select", $('input[name = "crypto-type-select"]:checked').val());
sessionStorage.setItem("crypto-address", $('input[name="crypto-address"]').val());
sessionStorage.setItem("crypto-amount", $('input[name="crypto-amount"]').val());
break;
case 'vcard':
sessionStorage.setItem("vc-firstname", $('input[name="vc-firstname"]').val());
sessionStorage.setItem("vc-lastname", $('input[name="vc-lastname"]').val());
sessionStorage.setItem("vc-lastname", $('input[name="vc-lastname"]').val());
sessionStorage.setItem("vc-mobileNumber", $('input[name="vc-mobileNumber"]').val());
sessionStorage.setItem("vc-phoneNumber", $('input[name="vc-phoneNumber"]').val());
sessionStorage.setItem("vc-fax", $('input[name="vc-fax"]').val());
sessionStorage.setItem("vc-email", $('input[name="vc-email"]').val());
sessionStorage.setItem("vc-company", $('input[name="vc-company"]').val());
sessionStorage.setItem("vc-title", $('input[name="vc-title"]').val());
sessionStorage.setItem("vc-street", $('input[name="vc-street"]').val());
sessionStorage.setItem("vc-city", $('input[name="vc-city"]').val());
sessionStorage.setItem("vc-zipcode", $('input[name="vc-zipcode"]').val());
sessionStorage.setItem("vc-state", $('input[name="vc-state"]').val());
sessionStorage.setItem("vc-country", $('input[name="vc-country"]').val());
sessionStorage.setItem("vc-website", $('input[name="vc-website"]').val());
break;
case 'whatsapp':
sessionStorage.setItem("whatsapp-phone-number", $('input[name="whatsapp-phone-number"]').val());
sessionStorage.setItem("whatsapp-message", $('textarea[name="whatsapp-message"]').val());
break;
case 'calendar':
sessionStorage.setItem("calendar-title", $("#calendar-title").val());
sessionStorage.setItem("calendar-location", $("#calendar-location").val());
sessionStorage.setItem("calendar-description", $("#calendar-description").val());
sessionStorage.setItem("calendar-startdate", $("#calendar-startdate").val());
sessionStorage.setItem("calendar-enddate", $("#calendar-enddate").val());
break;
case 'geo':
sessionStorage.setItem("geo-latitude", $("#geo-latitude").val());
sessionStorage.setItem("geo-longitude", $("#geo-longitude").val());
break;
case 'socialmedia':
sessionStorage.setItem("url-socialmedia", $("#url-socialmedia").val());
break;
}
}
function loadSessionAfterReload() {
var id = sessionStorage.getItem("tab");
if (id != null) {
$('a[href="#' + id + '"]').click();
switch(id) {
case 'url':
$('input[name="url-data"]').val(sessionStorage.getItem("url-data"));
break;
case 'text':
$('textarea[name="text-body"]').val(sessionStorage.getItem("text-body"));
break;
case 'wifi':
$('input[name="wifi-ssid"]').val(sessionStorage.getItem("wifi-ssid"));
$('input[name="wifi-password"]').val(sessionStorage.getItem("wifi-password"));
$('input[name="wifi-networktype"]').val(sessionStorage.getItem("wifi-networktype"));
$('input[name="wifi-ishidden"]').prop('checked', sessionStorage.getItem("wifi-ishidden"));
break;
case 'sms':
$('input[name="sms-phone-number"]').val(sessionStorage.getItem("sms-phone-number"));
$('textarea[name="sms-message"]').val(sessionStorage.getItem("sms-message"));
break;
case 'email':
$('input[name="email-address"]').val(sessionStorage.getItem("email-address"));
$('input[name="email-subject"]').val(sessionStorage.getItem("email-subject"));
$('textarea[name="email-body"]').val(sessionStorage.getItem("email-body"));
break;
case 'phone':
$('input[name="phone-number"]').val(sessionStorage.getItem("phone-number"));
break;
case 'crypto':
$('input[name="crypto-type-select"][value="' + sessionStorage.getItem("crypto-type-select") + '"]').prop('checked', true);
$('input[name="crypto-address"]').val(sessionStorage.getItem("crypto-address"));
$('input[name="crypto-amount"]').val(sessionStorage.getItem("crypto-amount"));
break;
case 'vcard':
$('input[name="vc-firstname"]').val(sessionStorage.getItem("vc-firstname"));
$('input[name="vc-lastname"]').val(sessionStorage.getItem("vc-lastname"));
$('input[name="vc-mobileNumber"]').val(sessionStorage.getItem("vc-mobileNumber"));
$('input[name="vc-phoneNumber"]').val(sessionStorage.getItem("vc-phoneNumber"));
$('input[name="vc-fax"]').val(sessionStorage.getItem("vc-fax"));
$('input[name="vc-email"]').val(sessionStorage.getItem("vc-email"));
$('input[name="vc-company"]').val(sessionStorage.getItem("vc-company"));
$('input[name="vc-title"]').val(sessionStorage.getItem("vc-title"));
$('input[name="vc-street"]').val(sessionStorage.getItem("vc-street"));
$('input[name="vc-city"]').val(sessionStorage.getItem("vc-city"));
$('input[name="vc-zipcode"]').val(sessionStorage.getItem("vc-zipcode"));
$('input[name="vc-state"]').val(sessionStorage.getItem("vc-state"));
$('input[name="vc-country"]').val(sessionStorage.getItem("vc-country"));
$('input[name="vc-website"]').val(sessionStorage.getItem("vc-website"));
break;
case 'whatsapp':
$('input[name="whatsapp-phone-number"]').val(sessionStorage.getItem("whatsapp-phone-number"));
$('textarea[name="whatsapp-message"]').val(sessionStorage.getItem("whatsapp-message"));
break;
case 'calendar':
$("#calendar-title").val(sessionStorage.getItem("calendar-title"));
$("#calendar-location").val(sessionStorage.getItem("calendar-location"));
$("#calendar-description").val(sessionStorage.getItem("calendar-description"));
$("#calendar-startdate").val(sessionStorage.getItem("calendar-startdate"));
$("#calendar-enddate").val(sessionStorage.getItem("calendar-enddate"));
break;
case 'geo':
$("#geo-latitude").val(sessionStorage.getItem("geo-latitude"));
$("#geo-longitude").val(sessionStorage.getItem("geo-longitude"));
break;
case 'socialmedia':
$("#url-socialmedia").val(sessionStorage.getItem("url-socialmedia"));
break;
}
}
sessionStorage.clear();
}
function allRequiredFieldsCorrect() {
var magnetOption = $("#stl-option-magnet").val();
if (magnetOption == "1") {
var magnetDepth = parseFloat($('#stl_round_magnet_depth').val());
var baseHeight = parseFloat($('#stl_base_height').val());
if (magnetDepth >= baseHeight) {
alert("\u091A\u0941\u0902\u092C\u0915 \u0915\u0940 \u0917\u0939\u0930\u093E\u0908 \u0906\u0927\u093E\u0930 \u0915\u0940 \u0917\u0939\u0930\u093E\u0908 \u0938\u0947 \u0915\u092E \u0939\u094B\u0928\u0940 \u091A\u093E\u0939\u093F\u090F");
return false
}
var magnetDiameter = parseFloat($('#stl_round_magnet_diameter').val());
var imageSize = parseFloat($('#stl_size').val());
if (magnetDiameter >= imageSize) {
alert("\u091A\u0941\u0902\u092C\u0915 \u0915\u093E \u0935\u094D\u092F\u093E\u0938 \u091B\u0935\u093F \u0915\u0947 \u0906\u0915\u093E\u0930 \u0938\u0947 \u0915\u092E \u0939\u094B\u0928\u093E \u091A\u093E\u0939\u093F\u090F");
return false
}
};
if (magnetOption == "2") {
var magnetDepth = parseFloat($('#stl_square_magnet_depth').val());
var baseHeight = parseFloat($('#stl_base_height').val());
if (magnetDepth >= baseHeight) {
alert("\u091A\u0941\u0902\u092C\u0915 \u0915\u0940 \u0917\u0939\u0930\u093E\u0908 \u0906\u0927\u093E\u0930 \u0915\u0940 \u0917\u0939\u0930\u093E\u0908 \u0938\u0947 \u0915\u092E \u0939\u094B\u0928\u0940 \u091A\u093E\u0939\u093F\u090F");
return false
}
var magnetWidth = parseFloat($('#stl_square_magnet_width').val());
var magnetHeight = parseFloat($('#stl_square_magnet_height').val());
var imageSize = parseFloat($('#stl_size').val());
if (magnetWidth >= imageSize || magnetHeight >= imageSize) {
alert("\u091A\u0941\u0902\u092C\u0915 \u0915\u0940 \u091A\u094C\u0921\u093C\u093E\u0908 \u0914\u0930 \u090A\u0902\u091A\u093E\u0908 \u091B\u0935\u093F \u0915\u0947 \u0906\u0915\u093E\u0930 \u0938\u0947 \u0915\u092E \u0939\u094B\u0928\u0940 \u091A\u093E\u0939\u093F\u090F");
return false
}
}
switch($('.tab-content .active').attr('id')) {
case 'url':
return $('input[name="url-data"]').val().trim().length > 0;
case 'text':
return $('textarea[name="text-body"]').val().trim().length > 0;
case 'wifi':
return (
$('input[name="wifi-ssid"]').val() &&
$('input[name="wifi-password"]').val());
case 'sms':
return (
$('input[name="sms-phone-number"]').val() &&
$('textarea[name="sms-message"]').val());
case 'email':
return (
$('input[name="email-address"]').val() &&
$('input[name="email-subject"]').val() &&
$('textarea[name="email-body"]').val());
case 'phone':
return $('input[name="phone-number"]').val();
case 'crypto':
return $('input[name="crypto-address"]').val();
case 'dynamic-url':
return $('input[name="dynamic-target-url"]').val().trim().length > 0;
case 'dynamic-pdf':
return null != dynamicFileId;
case 'vcard':
var selectedValue = $("input[name='vcard-format-select']:checked").attr("id");
if (selectedValue === "vcard-radio-text") {
return true;
} else {
return null != dynamicFileId;
}
case 'whatsapp':
return $('input[name="whatsapp-phone-number"]').val();
case 'calendar':
return (
$("#calendar-title").val() &&
$("#calendar-startdate").val() &&
$("#calendar-enddate").val());
case 'geo':
return $("#geo-latitude").val() && $("#geo-longitude").val();
case 'socialmedia':
return $("#url-socialmedia").val();
}
return false
}
function getArguments() {
var id = $('.tab-content .active').attr('id');
var arguments = {};
arguments["style"] = style;
arguments["inner_eye_style"] = inner_eye_style;
arguments["outer_eye_style"] = outer_eye_style;
arguments["logo"] = logo;
arguments["color"] = color + (invert_colors ? (transparent_background ? "00" : "FF") : "FF");
arguments["background_color"] = background_color + (invert_colors ? "FF" : (transparent_background ? "00" : "FF"));
arguments["inner_eye_color"] = inner_eye_color;
arguments["outer_eye_color"] = outer_eye_color;
arguments["imageformat"] = "svg";
arguments["language"] = document.documentElement.lang;
arguments["frame_style"] = frame_style;
arguments["frame_text"] = frame_text;
arguments["frame_color"] = frame_color;
arguments["invert_colors"] = invert_colors;
arguments["gradient_style"] = gradient_style;
arguments["gradient_color_start"] = gradient_color_start;
arguments["gradient_color_end"] = gradient_color_end;
arguments["gradient_start_offset"] = gradient_start_offset;
arguments["gradient_end_offset"] = gradient_end_offset;
arguments['stl_type'] = $('input[name = "stl-format-select"]:checked').val();
arguments['logo_remove_background'] = logo_remove_background;
arguments['stl_size'] = $('#stl_size').val();
arguments['stl_qr_height'] = $('#stl_qr_code_height').val();
arguments['stl_base_height'] = $('#stl_base_height').val();
arguments['stl_include_stands'] = $('#stl-include-stands').is(':checked');
var magnetOption = $("#stl-option-magnet").val();
arguments['stl_qr_magnet_type'] = magnetOption;
if (magnetOption == "1") {
arguments['stl_qr_magnet_count'] = $('select[name="stl_round_magnet_count"]').val();
arguments['stl_qr_magnet_diameter'] = $('#stl_round_magnet_diameter').val();
arguments['stl_qr_magnet_depth'] = $('#stl_round_magnet_depth').val();
} else if (magnetOption == "2") {
arguments['stl_qr_magnet_count'] = $('select[name="stl_square_magnet_count"]').val();
arguments['stl_qr_magnet_width'] = $('#stl_square_magnet_width').val();
arguments['stl_qr_magnet_height'] = $('#stl_square_magnet_height').val();
arguments['stl_qr_magnet_depth'] = $('#stl_square_magnet_depth').val();
} else {
arguments['stl_qr_magnet_count'] = "0";
}
switch(id) {
case 'url':
arguments["type"] = 0
arguments["text"] = $('input[name="url-data"]').val();
break;
case 'text':
arguments["type"] = 0;
arguments["text"] = $('textarea[name="text-body"]').val();
break;
case 'socialmedia':
arguments["type"] = 0;
arguments["text"] = $('#url-socialmedia').val();
break;
case 'wifi':
arguments["type"] = 1;
arguments["network"] = $('input[name="wifi-ssid"]').val();
arguments["password"] = $('input[name="wifi-password"]').val();
arguments["encryption"] = $('select[name="wifi-networktype"]').val();
arguments["hidden"] = $('input[name="wifi-ishidden"]').is(':checked');
break;
case 'sms':
arguments["type"] = 2;
arguments["number"] = $('input[name="sms-phone-number"]').val();
arguments["text"] = $('textarea[name="sms-message"]').val();
break;
case 'email':
arguments["type"] = 3;
arguments["email"] = $('input[name="email-address"]').val();
arguments["subject"] = $('input[name="email-subject"]').val();
arguments["message"] = $('textarea[name="email-body"]').val();
break;
case 'phone':
arguments["type"] = 4;
arguments["number"] = $('input[name="phone-number"]').val();
break;
case 'crypto':
arguments["type"] = 5;
arguments["cryptotype"] = $('input[name = "crypto-type-select"]:checked').val();
arguments["address"] = $('input[name="crypto-address"]').val();
arguments["amount"] = $('input[name="crypto-amount"]').val();
break;
case 'vcard':
var selectedValue = $("input[name='vcard-format-select']:checked").attr("id");
if (selectedValue === "vcard-radio-text" && !$("#dynamic-checkbox-vcard").prop("checked")) {
arguments["type"] = 6;
arguments["vc_first_name"] = $('input[name="vc-firstname"]').val();
arguments["vc_last_name"] = $('input[name="vc-lastname"]').val();
arguments["vc_mobile"] = $('input[name="vc-mobileNumber"]').val();
arguments["vc_phone"] = $('input[name="vc-phoneNumber"]').val();
arguments["vc_fax"] = $('input[name="vc-fax"]').val();
arguments["vc_email"] = $('input[name="vc-email"]').val();
arguments["vc_company"] = $('input[name="vc-company"]').val();
arguments["vc_job"] = $('input[name="vc-title"]').val();
arguments["vc_street"] = $('input[name="vc-street"]').val();
arguments["vc_city"] = $('input[name="vc-city"]').val();
arguments["vc_zip"] = $('input[name="vc-zipcode"]').val();
arguments["vc_state"] = $('input[name="vc-state"]').val();
arguments["vc_country"] = $('input[name="vc-country"]').val();
arguments["vc_website"] = $('input[name="vc-website"]').val();
} else {
arguments["type"] = 0;
arguments["text"] = dynamicShortURL != null ? dynamicShortURL : placeholder;
}
break;
case 'whatsapp':
arguments["type"] = 7;
arguments["number"] = $('input[name="whatsapp-phone-number"]').val();
arguments["text"] = $('textarea[name="whatsapp-message"]').val();
break;
case 'calendar':
arguments["type"] = 8;
arguments["ve_summary"] = $("#calendar-title").val();
arguments["ve_location"] = $("#calendar-location").val();
arguments["ve_description"] = $("#calendar-description").val();
arguments["ve_timezone"] = Intl.DateTimeFormat().resolvedOptions().timeZone;
arguments["ve_start"] = formatDate($("#calendar-startdate").val());
arguments["ve_end"] = formatDate($("#calendar-enddate").val());
break;
case 'geo':
arguments["type"] = 9;
arguments["ge_latitude"] = $("#geo-latitude").val();
arguments["ge_longitude"] = $("#geo-longitude").val();
break;
case 'dynamic-url':
arguments["type"] = 0;
arguments["text"] = dynamicShortURL != null ? dynamicShortURL : placeholder;
var utmEnabled = $("#url-qr-utm-enabled").is(':checked');
if (utmEnabled) {
arguments["utm_source"] = $("#url-qr-utm-source").val();
arguments["utm_medium"] = $("#url-qr-utm-medium").val();
arguments["utm_campaign"] = $("#url-qr-utm-campaign").val();
arguments["utm_term"] = $("#url-qr-utm-term").val();
arguments["utm_content"] = $("#url-qr-utm-content").val();
}
case 'dynamic-pdf':
arguments["type"] = 0;
arguments["text"] = dynamicShortURL != null ? dynamicShortURL : placeholder;
}
return arguments
}
function formatDate(input) {
if (!input) {
return null;
}
var [datePart, timePart] = input.split("T");
var date = datePart.replace(/-/g, "");
var time = timePart.replace(/:/g, "");
var formattedDateTime = `${date}T${time}00`;
return formattedDateTime;
}
function argumentsToUrl(arguments, generate) {
var url = generate ? "generate" : "preview";
var firstProp = true;
for (var prop in arguments) {
if (!arguments.hasOwnProperty(prop)) {
//The current property is not a direct property of p
continue;
}
if (firstProp) {
url += "?";
} else {
url += "&";
}
firstProp = false;
url += prop;
url += "=";
url += encodeURIComponent(arguments[prop]);
}
return url;
}
function replaceCustomImage(path) {
$.ajax({
type: "GET",
url: '/tmp/' + path,
dataType: 'text',
headers: { 'genqrcode-api-language': "hi", "X-CSRF-TOKEN": csrfToken},
success: function(data) {
$("#custom-image").attr("src", "data:image/png;base64,"+data);
$(".preview img").show(); // Display image element
},
error: function (data) {
if (data.status === 419) {
saveSessionBeforeReload();
window.location.reload();
} else {
const result = JSON.parse(data.responseText);
alert(result["errors"][0]);
}
}
});
}
function replaceImage(displayLast) {
if (allRequiredFieldsCorrect()) {
lastArguments = getArguments();
replaceImageWithArguments(lastArguments);
} else if (displayLast) {
replaceImageWithArguments(lastArguments);
}
}
var previewCache = {};
var runningRequests = {};
var previewCacheSize = 0;
function replaceImageWithArguments(arguments) {
var sortedArguments = Object.keys(arguments)
.sort()
.reduce((sortedObj, key) => {
sortedObj[key] = arguments[key];
return sortedObj;
}, {});
var hash = simpleHash(sortedArguments);
if (previewCache[hash] != null) {
$('#previewsvgwrapper').children().replaceWith(previewCache[hash]);
return;
}
if (runningRequests[hash] != null && runningRequests[hash] + 2000 > Date.now()) {
return;
}
runningRequests[hash] = Date.now();
$.ajax({
type: "POST",
url: '/preview',
data: JSON.stringify(sortedArguments),
contentType:"application/json",
headers: { 'genqrcode-api-language': "hi", "X-CSRF-TOKEN": csrfToken},
dataType: 'text',
success: function(data) {
previewCache[hash] = data;
delete runningRequests[hash];
previewCacheSize += data.length;
$('#previewsvgwrapper').children().replaceWith(data);
//Reset cache if bigger than 150MB
if (previewCacheSize > 157286400) {
previewCache = {};
previewCacheSize = 0;
}
},
error: function (data) {
delete runningRequests[hash];
if (data.status === 419) {
saveSessionBeforeReload();
window.location.reload();
} else {
const result = JSON.parse(data.responseText);
alert(result["errors"][0]);
}
}
});
}
function simpleHash(data) {
var string = Object.keys(data)
.map(key => `${key}:${data[key]}`)
.join('');
var hash = 0;
if (string.length == 0) return hash;
for (i = 0; i < string.length; i++) {
char = string.charCodeAt(i);
hash = ((hash << 5) - hash) + char;
hash = hash & hash;
}
return hash;
}
function downloadFile(format, element) {
if (isDownloading) {
return;
}
$('#qrgen').click();
if (allRequiredFieldsCorrect()) {
isDownloading = true;
element.prepend(' ');
var postArguments = getArguments();
postArguments["imageformat"] = format;
postArguments["width"] = 1000;
postArguments["height"] = 1000;
$.ajax({
type: "POST",
url: '/generate',
data: JSON.stringify(postArguments),
contentType:"application/json",
headers: { 'genqrcode-api-language': "hi", "X-CSRF-TOKEN": csrfToken},
dataType: 'text',
success: function(data) {
const jsonData = JSON.parse(data);
var link = document.createElement('a');
var path = "tmp/" + jsonData.result;
link.href = path;
link.download ="qrcode."+format;
link.click();
isDownloading = false;
const element = document.getElementById('download-spinner');
element.remove();
},
error: function () {
if (data.status === 419) {
saveSessionBeforeReload();
window.location.reload();
} else {
isDownloading = false;
const element = document.getElementById('download-spinner');
element.remove();
}
}
});
}
}
function openDynamicVCardInfoModal() {
setTimeout(function(){
$('#dynamicVCardInfoModal').modal('show');
}, 230);
}
function openDynamicInfoModal(){
setTimeout(function(){
$('#dynamicInfoModal').modal('show');
}, 230);
}
function openRegisterFromDynamicInfoModal(){
setTimeout(function(){
$('#dynamicInfoModal').modal('hide');
}, 230);
openRegisterModal();
}
function openLoginFromDynamicInfoModal() {
setTimeout(function(){
$('#dynamicInfoModal').modal('hide');
}, 230);
openLoginModal();
}
function openDynamicPDFInfoModal(){
setTimeout(function(){
$('#dynamicPDFInfoModal').modal('show');
}, 230);
}
function openRegisterFromDynamicPDFInfoModal(){
setTimeout(function(){
$('#dynamicPDFInfoModal').modal('hide');
}, 230);
openRegisterModal();
}
function openLoginFromDynamicPDFInfoModal() {
setTimeout(function(){
$('#dynamicPDFInfoModal').modal('hide');
}, 230);
openLoginModal();
}
function openRegisterFromDynamicVCardInfoModal(){
setTimeout(function(){
$('#dynamicVCardInfoModal').modal('hide');
}, 230);
openRegisterModal();
}
function openLoginFromDynamicVCardInfoModal() {
setTimeout(function(){
$('#dynamicVCardInfoModal').modal('hide');
}, 230);
openLoginModal();
}
function openWebsiteEmbedModal() {
setEmbeddedLinks();
setTimeout(function(){
$('#embedWebsiteModal').modal('show');
}, 230);
}
function openSTLDownloadModal() {
$("#stl").show();
$("#3d-modal-title-stl").show();
$("#3mf").hide();
$("#3d-modal-title-3mf").hide();
$("#disclaimer-3mf").hide();
$("#obj").hide();
$("#3d-modal-title-obj").hide();
$('#qrgen').click();
setTimeout(function(){
$('#download3DModal').modal('show');
}, 230);
}
function open3MFDownloadModal() {
$("#stl").hide();
$("#3d-modal-title-stl").hide();
$("#3mf").show();
$("#3d-modal-title-3mf").show();
$("#disclaimer-3mf").show();
$("#obj").hide();
$("#3d-modal-title-obj").hide();
$('#qrgen').click();
setTimeout(function(){
$('#download3DModal').modal('show');
}, 230);
}
function openOBJDownloadModal() {
$("#stl").hide();
$("#obj").show();
$("#3d-modal-title-stl").hide();
$("#3d-modal-title-obj").show();
$("#3mf").hide();
$("#3d-modal-title-3mf").hide();
$("#disclaimer-3mf").hide();
$('#qrgen').click();
setTimeout(function(){
$('#download3DModal').modal('show');
}, 230);
}
function setEmbeddedLinks() {
var arguments = getArguments();
arguments['width'] = $('#embed_imagesize').val();
arguments['height'] = $('#embed_imagesize').val();
arguments['bordersize'] = $('#embed_bordersize').val();
var urlArguments = encodeData(arguments);
var url = "https://genqrcode.com/embedded?" + urlArguments;
var htmlImage = '
';
$('input[name="embed_other"]').val(url);
$('input[name="embed_website"]').val(htmlImage);
$('img[name="embed_preview_qrcode"]').attr('src', url);
}
function encodeData(data) {
return Object.keys(data).map(function(key) {
return [key, data[key]].map(encodeURIComponent).join("=");
}).join("&");
}
$('#jpeg').click(function() {
downloadFile('jpeg', $('#jpeg'));
})
$('#png').click(function() {
downloadFile('png', $('#png'));
})
$('#svg').click(function() {
downloadFile('svg', $('#svg'));
})
$('#eps').click(function() {
downloadFile('eps', $('#eps'));
})
$('#tiff').click(function() {
downloadFile('tiff', $('#tiff'));
})
$('#gif').click(function() {
downloadFile('gif', $('#gif'));
})
$('#stl').click(function() {
downloadFile('stl', $('#stl'));
})
$('#3mf').click(function() {
downloadFile('3mf', $('#3mf'));
})
$('#obj').click(function() {
downloadFile('obj', $('#obj'));
})
$('#webp').click(function() {
downloadFile('webp', $('#webp'));
})
$('#openSTLDownloadModal').click(function() {
openSTLDownloadModal();
})
$('#open3MFDownloadModal').click(function() {
open3MFDownloadModal();
})
$('#openOBJDownloadModal').click(function() {
openOBJDownloadModal();
})
$('#openWebsiteEmbedModal').click(function() {
openWebsiteEmbedModal();
})
$('#openDynamicInfoModal').click(function() {
openDynamicInfoModal();
})
$('#openDynamicPDFInfoModal').click(function() {
openDynamicPDFInfoModal();
})
$('#save-as-template').click(function() {
saveAsTemplate();
})
$(document).on("keypress", "input.form-control", function(e) {
if (e.which == 13) {
$('#qrgen').click();
}
});
var lastTemplateId = -1;
function clickTemplate(a, id) {
lastTemplateId = id;
$("#delete-template").prop('disabled',lastTemplateId == -1)
logo = a["logo"] ? a["logo"] : null;
logo_remove_background = a['logo_remove_background'] ? a['logo_remove_background'] : false;
style = a["style"] ? a["style"] : 0;
outer_eye_style = a["outer_eye_style"] ? a["outer_eye_style"] : 0;
inner_eye_style = a["inner_eye_style"] ? a["inner_eye_style"] : 0;
color = a["color"] ? a["color"].slice(0,7) : "#000000";
background_color = a["background_color"] ? a["background_color"].slice(0, 7) : "#FFFFFF";
inner_eye_color = a["inner_eye_color"] ? a["inner_eye_color"].slice(0, 7) : "#000000";
outer_eye_color = a["outer_eye_color"] ? a["outer_eye_color"].slice(0, 7) : "#000000";
frame_style = a["frame_style"] ? a["frame_style"] : 0;
frame_text = a["frame_text"] ? a["frame_text"] : "SCAN ME";
frame_color = a["frame_color"] ? a["frame_color"].slice(0, 7) : "#000000";
invert_colors = a["invert_colors"] ? a['invert_colors'] : false;
transparent_background = a["color"] ? a["color"].slice(7, 9) == "00" : false;
gradient_style = a["gradient_style"] ? a["gradient_style"] : 0;
gradient_color_start = a["gradient_color_start"] ? a["gradient_color_start"] : "#FF00FF";
gradient_color_end = a["gradient_color_end"] ? a["gradient_color_end"] : "#FF0000";
gradient_start_offset = a["gradient_start_offset"] ? a["gradient_start_offset"] : 5;
gradient_end_offset = a["gradient_end_offset"] ? a["gradient_end_offset"] : 95;
lastArguments['logo'] = logo;
lastArguments['logo_remove_background'] = logo_remove_background;
lastArguments['style'] = style;
lastArguments['outer_eye_style'] = outer_eye_style;
lastArguments['inner_eye_style'] = inner_eye_style;
lastArguments['color'] = color;
lastArguments['background_color'] = background_color;
lastArguments['inner_eye_color'] = inner_eye_color;
lastArguments['outer_eye_color'] = outer_eye_color;
lastArguments['frame_style'] = frame_style;
lastArguments['frame_text'] = frame_text;
lastArguments['frame_color'] = frame_color;
lastArguments['invert_colors'] = invert_colors;
lastArguments['transparent_background'] = transparent_background;
lastArguments['gradient_style'] = gradient_style;
lastArguments['gradient_color_start'] = gradient_color_start;
lastArguments['gradient_color_end'] = gradient_color_end;
lastArguments['gradient_start_offset'] = gradient_start_offset;
lastArguments['gradient_end_offset'] = gradient_end_offset;
if (gradient_style != 0) {
document.getElementById('enable-gradient').checked = true;
$("#color-picker-normal").addClass("d-none");
$("#color-picker-gradient").removeClass("d-none");
$("#gradient-selector-div").removeClass("d-none");
let element = document.getElementById('gradient-selector');
element.value = gradient_style;
} else {
document.getElementById('enable-gradient').checked = false;
$("#color-picker-normal").removeClass("d-none");
$("#color-picker-gradient").addClass("d-none");
$("#gradient-selector-div").addClass("d-none");
}
$('#colorpicker1').val(color);
$('#colorpicker4').val(background_color);
$('#colorpicker2').val(inner_eye_color);
$('#colorpicker3').val(outer_eye_color);
$('#transparent-background').prop('checked', transparent_background);
$('#invert-colors').prop('checked', invert_colors);
$('#gradient-selector').val(gradient_style);
$('#colorpickerGradientStart').val(gradient_color_start);
$('#colorpickerGradientEnd').val(gradient_color_end);
$('#gradient-start-offset').val(gradient_start_offset);
$('#gradient-end-offset').val(gradient_end_offset);
$('#logo-remove-background').prop('checked', logo_remove_background);
$('.frame-text').val(frame_text);
$('#colorpickerFrame').val(frame_color);
replaceImage(true);
}
function saveAsTemplate() {
setTimeout(function(){
$('#templateInfoModal').modal('show');
}, 230);
}
function openLoginFromTemplateInfoModal() {
setTimeout(function(){
$('#templateInfoModal').modal('hide');
}, 230);
openLoginModal();
}
function openRegisterFromTemplateInfoModal(){
setTimeout(function(){
$('#templateInfoModal').modal('hide');
}, 230);
openRegisterModal();
}
$('#loginFromTemplatePopup').click(function() {
openLoginFromTemplateInfoModal();
})
$('#registerFromTemplatePopup').click(function() {
openRegisterFromTemplateInfoModal();
})