')
// grecaptcha.render('div-show-recaptcha', {
// sitekey: '6Ld4mcsUAAAAAGRVf7_Mix45AEx6nGGiH88zr4pH',
// callback: function(response) {
// if(response.length > 0){
// upload_image_using_ajax(source_image, autogenerate_id, csrftoken)
// $('#recaptcha-main-div').html('');
// $('#recaptcha-main-div').css('display', 'none');
// }
// },
// theme: 'dark'
// });
// }else{
// upload_image_using_ajax(source_image, autogenerate_id, csrftoken)
// }
// }
}
function is_recaptcha_solved(){
return true;
// return isRecaptchaSolved;
}
function onSubmit(token){
if (global_source_image != '' && global_source_image != null) {
$('.btn2_upload').css({'display': ''});
$('.upload_image_div').css({'display': 'none'});
$('#upload_important_text').css('display', '');
$(document).scrollTop(0);
}
remove_bg(global_source_image)
//
// var csrftoken = $('meta[name=csrf-token]').attr('content');
// var formdata = new FormData();
// formdata.append("token", token);
//
// $.ajaxSetup({
// beforeSend: function (xhr, settings) {
// if (!/^(GET|HEAD|OPTIONS|TRACE)$/i.test(settings.type)) {
// xhr.setRequestHeader("X-CSRFToken", csrftoken)
// }
// }
// });
//
// $.ajax({
// url: '/get-recaptcha-score',
// type: 'POST',
// processData: false,
// contentType: false,
// data: formdata,
// async: false,
// success: function (data) {
// isRecaptchaSolved = data.status;
// remove_bg(global_source_image)
// }
// });
}
function createAutogeneratedID(){
return autogenerate_id = Math.random().toString(36).substr(2, 5);
}
function initializeImageDiv(autogen_id){
var generatedsHtml = generate_html(autogen_id, '', '', true);
$('.upload_image_div').css({'display': 'none'});
$('#upload_important_text').css('display', '');
$('.btn2_upload').css({'display': 'block'});
$("#main_image_container").prepend(generatedsHtml);
}
function showHideImageUploadLoader(autogen_id, isShow){
if(isShow){
$('#icon_close_' + autogen_id).css('display', 'none');
$('#progress_bar_div_' + autogen_id).css('display', '');
$('#progress_bar_div_gradient_' + autogen_id).css('display', '');
$('.clsBtnGradient_' + autogen_id).css('display', '');
}else{
$('#progress_bar_div_' + autogen_id).css('display', 'none');
$('#progress_bar_div_gradient_' + autogen_id).css('display', 'none');
$('#progress_bar_div_gradient_' + autogen_id).css('display', 'none');
$('.clsBtnGradient_' + autogen_id).css('display', 'none');
}
}
function removeImageDiv(autogen_id){
$('#slazzerImageDiv' + autogen_id).remove();
}
function activateTabRemoveBackground(autogenID){
$('#originalImage_' + autogenID).removeClass('active');
$('#transparentBg_' + autogenID).addClass('active');
$('#original_' + autogenID).removeClass('active show');
$('#transparent_' + autogenID).addClass('active show');
}
function trustTokenAPI(){
var csrftoken = $('meta[name=csrf-token]').attr('content');
var formdata = new FormData();
$.ajaxSetup({
beforeSend: function (xhr, settings) {
if (!/^(GET|HEAD|OPTIONS|TRACE)$/i.test(settings.type)) {
xhr.setRequestHeader("X-CSRFToken", csrftoken)
}
}
});
$.ajax({
url: '/auth/trust_token',
type: 'POST',
processData: false,
contentType: false,
async: false,
data: formdata,
success: function (data) {
},
error: function (error){}
});
}
function redirectPage(langCode){
if (langCode == undefined){return false;}
var pathname = window.location.pathname;
var splitData = pathname.split("/");
if(splitData.length == 2){
// if(splitData[1] == "help" || splitData[1] == "blog/" || splitData[1] == "help/" || splitData[1] == "blog"){
if(splitData[1] == "blog/" || splitData[1] == "blog"){
langCode = 'en'
}
if(langCode == 'en'){
redirectURL = '/'
}else{
if(splitData[1] == ''){
redirectURL = '/' + langCode
}else{
var langList = ['de', 'fr', 'it', 'ja', 'ru', 'id', 'es', 'pt', 'ko', 'zh', 'zh_hant_tw']
if(langList.includes(splitData[1])){
redirectURL = '/' + langCode
}else{
redirectURL = '/' + langCode + '/' + splitData[1]
}
}
}
}
else if(splitData.length == 3){
var langList = ['de', 'fr', 'it', 'ja', 'ru', 'id', 'es', 'pt', 'ko', 'zh', 'zh_hant_tw']
if(langList.includes(splitData[1])){
if(langCode == 'en'){
redirectURL = '/' + splitData[2]
}else{
redirectURL = '/' + langCode + '/' + splitData[2]
}
}else{
if(splitData[1] == "background-remover"){
redirectURL = '/' + splitData[1] + '/' + splitData[2]
}else{
redirectURL = '/' + langCode + '/' + splitData[1] + '/' + splitData[2]
}
}
}
else if(splitData.length == 4){
if(langCode == 'en'){
redirectURL = '/' + splitData[2] + '/' + splitData[3]
}else{
if(splitData[2] == "background-remover"){
redirectURL = '/' + splitData[2] + '/' + splitData[3]
}else{
redirectURL = '/' + langCode + '/' + splitData[2] + '/' + splitData[3]
}
}
}
// window.location.href = redirectURL;
save_lang_code(langCode, redirectURL)
}
function changeLanguageButton(){
if(LANG_CODE == ''){LANG_CODE = "/en"}
$('#btnSelectLanguage').html("");
var lang = LANG_CODE.replace('/', '');
$('#btnSelectLanguage').html($('#for' + lang.toUpperCase()).html());
}
function save_lang_code(LANG_CODE, redirectURL){
var formdata = new FormData()
formdata.append("lang_code", LANG_CODE)
var csrftoken = $('meta[name=csrf-token]').attr('content');
$.ajaxSetup({
beforeSend: function (xhr, settings) {
if (!/^(GET|HEAD|OPTIONS|TRACE)$/i.test(settings.type)) {
xhr.setRequestHeader("X-CSRFToken", csrftoken)
}
}
});
$.ajax({
url: '/save_lang_code',
type: 'POST',
processData: false,
contentType: false,
data: formdata,
success: function (data) {
if(data.status){
window.location.href = redirectURL;
}else{
window.location.reload();
}
},
error: function (error){}
});
}
function loadCloudflareRecaptcha(source_image, autogenerate_id, csrftoken, recaptchaDivId, is_existingImage){
var dataSitekey = "0x4AAAAAAARMQ_bSWt4IWzOR";
var hostName = $(location).attr('hostname');
if(hostName.indexOf("localhost") != -1){
dataSitekey = "0x4AAAAAAAQulv-eTqiKSZ4-";
}else if(hostName.indexOf("eutigo") != -1){
dataSitekey = "0x4AAAAAAARMQmALguP80a6K";
}else{
dataSitekey = "0x4AAAAAAARMQ_bSWt4IWzOR";
}
turnstile.render('#'+recaptchaDivId, {
sitekey: dataSitekey,
callback: function(token) {
apiTokenVerification(token, source_image, autogenerate_id, csrftoken, recaptchaDivId, is_existingImage)
}
});
}
function apiTokenVerification(token, source_image, autogenerate_id, csrftoken, recaptchaDivId, is_existingImage){
var csrftoken = $('meta[name=csrf-token]').attr('content');
var formdata = new FormData();
formdata.append("token", token);
$.ajaxSetup({
beforeSend: function (xhr, settings) {
if (!/^(GET|HEAD|OPTIONS|TRACE)$/i.test(settings.type)) {
xhr.setRequestHeader("X-CSRFToken", csrftoken)
}
}
});
$.ajax({
url: '/verify-unauthorized-token',
type: 'POST',
processData: false,
contentType: false,
data: formdata,
success: function (data) {
if(data.status){
$('#' + recaptchaDivId).html('');
$(".recaptchaWrap").remove();
generateToken(source_image, autogenerate_id, csrftoken, is_existingImage)
}else{
loadCloudflareRecaptcha(source_image, autogenerate_id, csrftoken, recaptchaDivId, is_existingImage)
}
}
});
}
function upload_image_using_ajax_after_solve_recaptcha(token, source_image, autogenerate_id, csrftoken, is_existingImage, isVerified=false){
// if(isImageProcessing == true){
// alert("You can upload one image at a time");
// return false;
// }else{
// New Added
if(is_existingImage){
var img_format = "jpg";
}else{
var img_format = source_image.name.replace(/^.*\./, '');
}
var f_list = ['jpg','JPG','png','PNG','jpeg', 'JPEG','webp','WEBP','bmp','BMP'];
if(jQuery.inArray(img_format, f_list) == -1){
$('#progress_bar_div').css('display', 'none');
removeImageDiv(autogenerate_id)
NO_Of_IMAGES = NO_Of_IMAGES - 1;
if(NO_Of_IMAGES <= 0){
// $(window).scrollTop(0);
$('#upload_important_text').css('display', 'none');
$('.btn2_upload').css({'display': 'none'});
$('.upload_image_div').css({'display': ''});
}
alert("Only jpg, png, and jpeg, webp file format supported");
return false;
}
// End New Added
show_desktop_popup()
// $(window).scrollTop(0);
var y = $(window).scrollTop();
$(window).scrollTop(y+100);
// var trustToken = trustTokenAPI()
// return false;
isImageProcessing = true
var formdata = new FormData();
if(is_existingImage){
formdata.append("image_url", source_image);
}else{
formdata.append("source_image_file", source_image);
}
formdata.append("autogenerate_id", autogenerate_id);
formdata.append("is_verified", isVerified);
$.ajaxSetup({
beforeSend: function (xhr, settings) {
if (!/^(GET|HEAD|OPTIONS|TRACE)$/i.test(settings.type)) {
xhr.setRequestHeader("X-CSRFToken", csrftoken);
xhr.setRequestHeader("X-Trust-Token", token);
}
}
});
$(".user_image_upload").attr("disabled", true);
$.ajax({
url: '/upload_image',
type: 'POST',
processData: false,
contentType: false,
data: formdata,
xhr: function () {
$(window).scrollTop(0);
var xhr = new window.XMLHttpRequest();
xhr.upload.addEventListener("progress", function (evt) {
if (evt.lengthComputable) {
var current_progress = evt.loaded / evt.total;
current_progress = parseInt(current_progress * 100);
$("#dynamic_" + autogenerate_id).css("width", current_progress + "%").attr("aria-valuenow", current_progress);
$('#transparentBg_' + autogenerate_id).css('pointer-events', 'none');
if (current_progress >= 1) {
showHideImageUploadLoader(autogenerate_id, true)
}
if (current_progress === 100) {
var reader = new FileReader();
$('#dynamicText_' + autogenerate_id).text("Processing.....");
if(is_existingImage){
$('#source_image_' + autogenerate_id).attr('src', source_image);
setTimeout(function () {
var browse_img_height = $('#source_image_' + autogenerate_id).height();
var browse_img_width = $('#source_image_' + autogenerate_id).width();
var RATIO = 0;
var GENERATE_HEIGHT = 0;
var GENERATE_WIDTH = 0;
if (browse_img_height > 600) {
if (browse_img_width > browse_img_height) {
RATIO = browse_img_height / browse_img_width;
GENERATE_WIDTH = 600;
GENERATE_HEIGHT = 600 * RATIO;
} else {
RATIO = browse_img_width / browse_img_height;
GENERATE_HEIGHT = 600;
GENERATE_WIDTH = 600 * RATIO;
}
} else {
GENERATE_WIDTH = browse_img_width;
GENERATE_HEIGHT = browse_img_height;
}
// $('#source_image_' + autogenerate_id).height(GENERATE_HEIGHT);
// $('#source_image_' + autogenerate_id).width(GENERATE_WIDTH);
$('#gradient_element_' + autogenerate_id).height(GENERATE_HEIGHT);
// $('#output_image_div_' + autogenerate_id).width(GENERATE_WIDTH);
}, 80);
}else{
reader.onload = function (f) {
$('#source_image_' + autogenerate_id).attr('src', f.target.result);
setTimeout(function () {
var browse_img_height = $('#source_image_' + autogenerate_id).height();
var browse_img_width = $('#source_image_' + autogenerate_id).width();
var RATIO = 0;
var GENERATE_HEIGHT = 0;
var GENERATE_WIDTH = 0;
if (browse_img_height > 600) {
if (browse_img_width > browse_img_height) {
RATIO = browse_img_height / browse_img_width;
GENERATE_WIDTH = 600;
GENERATE_HEIGHT = 600 * RATIO;
} else {
RATIO = browse_img_width / browse_img_height;
GENERATE_HEIGHT = 600;
GENERATE_WIDTH = 600 * RATIO;
}
} else {
GENERATE_WIDTH = browse_img_width;
GENERATE_HEIGHT = browse_img_height;
}
// $('#source_image_' + autogenerate_id).height(GENERATE_HEIGHT);
// $('#source_image_' + autogenerate_id).width(GENERATE_WIDTH);
$('#gradient_element_' + autogenerate_id).height(GENERATE_HEIGHT);
// $('#output_image_div_' + autogenerate_id).width(GENERATE_WIDTH);
}, 80);
};
reader.readAsDataURL(source_image);
}
}
}
}, false);
return xhr;
},
success: function (data) {
$(".user_image_upload").attr("disabled", false);
$('#transparentBg_' + autogenerate_id).css('pointer-events', '');
activateTabRemoveBackground(autogenerate_id)
showHideImageUploadLoader(autogenerate_id, false)
isImageProcessing = false;
remove_image_background(data, autogenerate_id)
$('#icon_close_' + autogenerate_id).css('display', '');
},
error: function(qXHR, textStatus, errorThrown){
if(qXHR.status == 429){
alert("Upload Limit Exited. You have upload 10 images in a minute. Please try again after 1 minute.");
window.location.reload();
}
$(".user_image_upload").attr("disabled", false);
}
});
// }
}
function sampleImageListWithClass(){
var firstData = randomIntFromInterval(1, 7);
var secondData = randomIntFromInterval(8, 14);
var thirdData = randomIntFromInterval(15, 21);
var forthData = randomIntFromInterval(22, 28);
var listNumber = [firstData, secondData, thirdData, forthData];
var html = "";
for(var i=0; i
`;
}
$('.sampleImageListWithClass').html("");
$('.sampleImageListWithClass').html(html);
}
function randomIntFromInterval(min, max) {
return Math.floor(Math.random() * (max - min + 1) + min);
}
function generateToken(source_image, autogenerate_id, csrftoken, is_existingImage) {
customImgSizeValidation(source_image)
.then(isValid => {
// if (isValid) {
// console.log("✅ Image is within limits");
// } else {
// console.log("❌ Image exceeds size or resolution limits");
// }
}).catch(err => console.error("Error:", err.message));
var csrftoken = $('meta[name=csrf-token]').attr('content');
var formdata = new FormData();
$.ajaxSetup({
beforeSend: function(xhr, settings) {
if (!/^(GET|HEAD|OPTIONS|TRACE)$/i.test(settings.type)) {
xhr.setRequestHeader("X-CSRFToken", csrftoken)
}
}
});
$.ajax({
url: '/generate_trust_token',
type: 'POST',
processData: false,
contentType: false,
data: formdata,
success: function(data) {
upload_image_using_ajax_after_solve_recaptcha(data.trust_token, source_image, autogenerate_id, csrftoken, is_existingImage)
},
error: function(xhr, status, error) {
if(xhr.status == 429){
alert("Upload Limit Exited. You have upload 10 images in a minute. Please try again after 1 minute.");
window.location.reload();
}
showHideImageUploadLoader(autogenerate_id, false)
isImageProcessing = false;
}
});
}
function getMobileOperatingSystem() {
var userAgent = navigator.userAgent || navigator.vendor || window.opera;
if (/android/i.test(userAgent)) {
return "android";
}
if (/iPad|iPhone|iPod/.test(userAgent) && !window.MSStream) {
return "ios";
}
return "Unknown";
}
function getMobileApp(){
var mobileOS = getMobileOperatingSystem();
if(mobileOS == 'ios'){
var APP_URL = "https://apps.apple.com/in/app/slazzer-background-remover/id6499511787";
}else{
var APP_URL = "https://play.google.com/store/search?q=slazzer&c=apps";
}
$('#getMobileApp').attr('href', APP_URL)
}
function onloadTurnstileCallback() {
}
function showMobileAppPopup(){
if($.cookie('_mobile_app_popup') == undefined){
$('#divGetMobileApp').addClass('show');
}
}
function showCreditInfo() {
$.ajax({
url: '/get_total_credit',
method: 'GET',
success: function(data) {
let formatted = parseFloat(data).toFixed(2);
$('#total-credit').text(formatted);
$('#refresh-credit-btn').removeClass('credit-refresh-btn');
},
error: function(xhr, status, error) {
$('#total-credit').text("0");
}
});
}
function showCreditInfo() {
$.ajax({
url: '/get_total_credit',
method: 'GET',
success: function(data) {
let formatted = parseFloat(data).toFixed(2);
$('#total-credit').text(formatted);
$('#refresh-credit-btn').removeClass('credit-refresh-btn');
},
error: function(xhr, status, error) {
$('#total-credit').text("0");
}
});
}
function showChangeLogInHeader() {
$.ajax({
url: '/change-log-details',
method: 'GET',
success: function(response) {
if (!response.status) return;
let FINAL_HTML = '';
let showLogCount = 0;
if(response.data.is_active_icon_show){$("#dropdownMenuButtonNotificationToggleACTIVE").css('display', '')}
outer: for (let historyLog of response.data.details) {
for (let LOG of historyLog.updates) {
FINAL_HTML += `
${historyLog.date} ${LOG}
`;
if (++showLogCount === 3) break outer;
}
}
if (window.location.pathname === '/change-log') {
if(response.data.details.length > 1){
$('#changeLogDetailsHistory').html('');
outer: for (let historyLog of response.data.details) {
var flexBox = `${historyLog.date}
`
for (let LOG of historyLog.updates) {
flexBox += `
-
${LOG}
`;
}
flexBox += `
`;
$('#changeLogDetailsHistory').append(flexBox);
}
}else{
$('#changeLogDetailsHistory').html('No update available');
}
}
$('#dropdownMenuButtonNotificationToggleID')
.html(FINAL_HTML)
.append(`View All`);
}
});
}
function closeHeaderPromotionBar(){
$('#headerFeaturesList').remove();
$('#navBer').removeClass('featureDrawerShow');
$('#header').css('top', 0);
}
function customImgSizeValidation(file) {
return new Promise((resolve, reject) => {
try {
// ---- 1️⃣ Check file size ----
const sizeInMB = file.size / (1024 * 1024);
if (sizeInMB > 12) {
return resolve(false); // ❌ Exceeds 12MB
}
// ---- 2️⃣ Create Image to check dimensions ----
const img = new Image();
const objectUrl = URL.createObjectURL(file);
img.onload = function () {
const totalPixels = img.width * img.height;
const megaPixels = totalPixels / 1_000_000;
URL.revokeObjectURL(objectUrl); // Clean up memory
if (megaPixels > 16) {
resolve(false); // ❌ Exceeds 16MP
} else {
resolve(true); // ✅ Valid
}
};
img.onerror = function () {
URL.revokeObjectURL(objectUrl);
reject(new Error("Invalid image file"));
};
img.src = objectUrl;
} catch (err) {
reject(err);
}
});
}
function getDeviceType() {
if (navigator.userAgentData && typeof navigator.userAgentData.mobile === 'boolean') {
if (navigator.userAgentData.mobile) return 'mobile';
}
const ua = navigator.userAgent || navigator.vendor || window.opera || '';
const tabletRegex = /iPad|Tablet|PlayBook|Silk|Kindle|Android(?!.*Mobile)/i;
const mobileRegex = /Android.*Mobile|iPhone|Windows Phone|BlackBerry|BB10|Mobile/i;
if (tabletRegex.test(ua)) return 'tablet';
if (mobileRegex.test(ua)) return 'mobile';
const width = Math.max(window.screen.width, window.innerWidth || 0);
const hasTouch = ('maxTouchPoints' in navigator && navigator.maxTouchPoints > 0) ||
('ontouchstart' in window);
if (width <= 768) return 'mobile';
if (width <= 1024 && hasTouch) return 'tablet';
return 'desktop';
}