wow = new WOW({ mobile: false });
wow.init();
var sys_lang  = 'IT';
var translations = {
	'loading' : {
		'it': 'Caricamento in corso...',
		'en': 'Loading...',
		'fr': 'Chargement en cours...',
		'es': 'Cargando...',
		'de': 'Laden...'
	},
	'selezionati': {
		'it': 'selezionati',
		'en': 'selected',
		'fr': 'sélection',
		'es': 'seleccionados',
		'de': 'Auswahl'
	},
	'cerca': {
		'it': 'Cerca...',
		'en': 'Search...',
		'fr': 'Rechercher...',
		'es': 'Buscar...',
		'de': 'Suchen...'
	},
	'nessun-risultato-per': {
		'it': 'Nessun risultato per',
		'en': 'No results for',
		'fr': 'Aucun résultat pour',
		'es': 'Sin resultados para',
		'de': 'Keine Ergebnisse für'
	},
	'password-non-combaciano' : {
		'it': 'Le password inserite non combaciano',
		'en': 'Passwords do not match',
		'fr': 'Les mots de passe ne correspondent pas',
		'es': 'Las contraseñas no coinciden',
		'de': 'Passwörter stimmen nicht überein'
	},
	'error' : {
		'it': 'Errore',
		'en': 'Error',
		'fr': 'Erreur',
		'es': 'Error',
		'de': 'Fehler'
	},
	'internal-error' : {
		'it': 'Errore interno, riprova più tardi.',
		'en': 'Internal error, please try again later.',
		'fr': 'Erreur interne, veuillez réessayer plus tard.',
		'es': 'Error interno, inténtalo de nuevo más tarde.',
		'de': 'Interner Fehler, bitte versuchen Sie es später noch einmal.'
	},
	'caricamento-allegato' : {
		'it': 'Caricamento allegato',
		'en': 'Upload attachment',
		'fr': 'Téléchargement de la pièce jointe',
		'es': 'Cargar adjunto',
		'de': 'Anhang hochladen'
	},
	'errore-formato-pdf' : {
		'it': 'Il file caricato non è un file PDF',
		'en': 'The uploaded file is not a PDF file',
		'fr': 'Le fichier tÃ©lÃ©chargÃ© n\'est pas un fichier PDF',
		'es': 'El archivo cargado no es un archivo PDF',
		'de': 'Die hochgeladene Datei ist keine PDF-Datei'
	},
	'errore-peso-pdf' : {
		'it': 'Il file caricato pesa più di',
		'en': 'The uploaded file is larger than',
		'fr': 'Le fichier tÃ©lÃ©chargÃ© est plus gros que',
		'es': 'El archivo cargado es mÃ¡s grande que',
		'de': 'Die hochgeladene Datei ist grÃ¶ÃŸer als'
	} ,
	'immagini-inserite' : {
		'it': 'immagini inserite',
		'en': 'images uploaded',
		'fr': 'images tÃ©lÃ©chargÃ©es',
		'es': 'imÃ¡genes cargadas',
		'de': 'bilder hochgeladen'
	},
	'immagine-inserita' : {
		'it': 'immagine inserita',
		'en': 'image uploaded',
		'fr': 'image tÃ©lÃ©chargÃ©e',
		'es': 'imagen cargada',
		'de': 'bild hochgeladen'
	} 
};

function translate (key) {
	return translations[key][sys_lang.toLowerCase()];
}

var doc = $(document) ;

function initialize_page () {
	$("body").css("padding-top" , $(".navbar.fixed-top").outerHeight());
	if ($(".cookies_banner").length > 0) {
		setTimeout(function(){
			$(".cookies_banner").removeClass("hidden");
			$("html , body").addClass("overflow-hidden cookies_open");
		}, 1000);
	}
	stop_loading ();
}

function detect_mobile_navigator () {
    const toMatch = [ /Android/i, /webOS/i, /iPhone/i, /iPad/i, /iPod/i, /BlackBerry/i, /Windows Phone/i ];
    return toMatch.some((toMatchItem) => {
        return navigator.userAgent.match(toMatchItem);
    });
}

function detect_mobile_screen () {
	return ($(window).width() >= 1200) ? false : true;
}

function scroll_to(selector) {
	value = 0;
	if ($(window).width() > 1200)
		value = $(selector).offset().top + 1;
	else
		value = $(selector).offset().top - $(".navbar.fixed-top").outerHeight() + 1;
    $("html , body").animate({
        'scrollTop': value
    }, 500);
}

function get_current_date () {
    var now = new Date();
	var months = ["gennaio", "febbraio", "marzo","aprile", "maggio", "giugno", "luglio", "agosto", "settembre", "ottobre", "novembre", "dicembre"];
	$(".show_time_here").html( now.getDate() + ' ' + months[now.getMonth()] + ' ' + now.getFullYear() + ' ' + now.toTimeString().substr(0,5));
}


function validate_mail(email) {
    var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
    return emailReg.test(email );
}

function generate_alert (type,title,text,target = false) {
	if (target == false || target == 'false' || target == null || target == 'null') {
		Swal.fire({
			type: type,
			title: title,
			html: text,
			customClass: {
				confirmButton: 'btn btn-theme ease cursor-pointer text-white text-center d-block mx-auto',
			},
			buttonsStyling: false
		});
	}
	else if (target == true || target == 'true') {
		Swal.fire({
			type: type,
			title: title,
			html: text,
			customClass: {
				confirmButton: 'btn btn-theme ease cursor-pointer text-white text-center d-block mx-auto',
			},
			buttonsStyling: false
		}).then((result) => {
			location.reload(true);
		});
	}
	else {
		Swal.fire({
			type: type,
			title: title,
			html: text,
			customClass: {
				confirmButton: 'btn btn-theme ease cursor-pointer text-white text-center d-block mx-auto',
			},
			buttonsStyling: false
		}).then((result) => {
			location.href = target;
		});
		setTimeout(function(){
			location.href = target;
		}, 5000);
	}
}

function start_loading (text = 'Caricamento in corso...') {
    if ($("div.preloader").length == 0) 
        $("body").append("<div class='preloader' style='display: none'><span class='main_color mt-3'>"  + text + "</span><div class='spinner'><div></div></div></div>");
	else
		$(".preloader > span").html(text);
	$("html , body").addClass("overflow-hidden");
    $(".preloader").fadeIn(500);
}

function stop_loading () {
	setTimeout(function(){
		$(".preloader").fadeOut(500);
		$("html , body").removeClass("overflow-hidden");
		setTimeout(function(){
			$(".preloader").remove();
		}, 1000);
	}, 200);
}


doc.ready(function() {
    initialize_page ();
	setTimeout(function(){
		initialize_page ();
	}, 750);
});

$(window).resize(function() {
    initialize_page ();
	setTimeout(function(){
		initialize_page ();
	}, 750);
});

$(window).scroll(function(){ 
	if ($(this).scrollTop() > ($(window).height() / 2))
		$('body').addClass("after_scroll");
	else
		$('body').removeClass("after_scroll");
});

doc.on("click",".nav-toggle",function() {
    $(this).toggleClass("expanded");
});

doc.on("click" , "[data-href]" , function () {
	scroll_to ($(this).attr("data-href"));
});

// Cookies banner
doc.on("click" , ".btn_close_banner:not(.disabled) , .btn_accept_all_cookie:not(.disabled) , .btn_save_cookies:not(.disabled)" , function () {
	$(this).addClass("disabled");
	if ($(this).hasClass("accept_all"))
		$("form.cookies_form input[type='checkbox']").prop("checked", true);
	if ($(this).hasClass("reject_all"))
		$("form.cookies_form input[type='checkbox']:not([disabled])").prop("checked", false);
	$.ajax({
		url: abs + "ajax/engine.php",
		data: $("form.cookies_form").serialize(),
		type: "post",
		success: function() {
			$(".cookies_banner").addClass("hidden");
			location.reload(true);
		}
	});
});
//End of cookies banner


$(window).scroll(function() {
    if(window.scrollY >= 100) {
        $("nav.navbar").addClass("nav-w");
    }
    else {
        $("nav.navbar").removeClass("nav-w");

    }
});

if(document.querySelectorAll(".my-slider").length) {
    var slider = tns({
        container: '.my-slider',
        items: 1,
        responsive: {
            640: {
                items: 2
            },
            900: {
                items: 4
            }
        },
        slideBy: 1,
        nav: false,
        controlsPosition: "bottom",
        controlsContainer: ".controlsContainer",
        prevButton: "#prev",
        nextButton: "#next",
        mouseDrag: true,
        loop: true,
        autoplay: true,
        controls: false,
        autoplayButtonOutput: false
    });
}


doc.on("submit" , ".contact_form" , function (e) {
	start_loading();
	var form = $(this);
	var errors = [];
	form.find("button").addClass("disabled");
	e.preventDefault();
	grecaptcha.ready(function() {
        grecaptcha.execute(g_key, {action: 'submit'}).then(function(token) {
            $.ajax({
                url: abs + "ajax/engine.php",
                type: "POST",
                data: {
					action: 'check_captcha',
					response: token
                },
                success: function(res) {
                    result = JSON.parse(res);
                    if(result.success){
                        if(result.score > 0.5){
							form.find("input[type='text'][data-error] , textarea[data-error]").each(function() {
								if ($(this).attr("name") == 'email') {
									if (!validate_mail($(this).val().trim()) || $(this).val().trim() == '')  
                						errors.push($(this).attr('data-error'));
								}
								else {
									if ($(this).val().trim() == '')
										errors.push($(this).attr('data-error'));
								}
							});
							form.find("input[type='checkbox'][data-error]").each(function() {
								if($(this).prop("checked") === false)
									errors.push($(this).attr("data-error"));
							});
							if (errors != 0) {
								var text = "";
								for(i=0; i<errors.length; i++)
									text += "<span class='d-block text-center'>"+errors[i]+"</span>";
								generate_alert("error","Errore", text);
								form.find("button").removeClass("disabled");
								stop_loading();
							}
							else {
								$.ajax({
									url: abs + "ajax/engine.php",
									data: form.serialize(),
									type: "post",
									success: function(res) {
										var json = JSON.parse(res);
                                        if (!json.result)
										    generate_alert( ((json.result) ? 'success' : 'error') , ((json.result) ? 'Contatti' : 'Errore')  , ((json.result) ? 'Il tuo messaggio è stato inoltrato correttamente.' : 'Errore interno, riprova più tardi.')  , true);
                                        else
                                            location.href = abs + 'thank-you-page';
                                        form.find("button").removeClass("disabled");
										stop_loading();
										form.trigger("reset");
									}
								});
							}	
                        }
						else {
							generate_alert('error' , 'Errore' , 'Errore interno, riprova più tardi.' , true);
							form.find("button").removeClass("disabled");
							stop_loading();
							form.trigger("reset");
						}
                    }
					else {
						generate_alert('error' , 'Errore' , 'Errore interno, riprova più tardi.' , true);
						form.find("button").removeClass("disabled");
						stop_loading();
						form.trigger("reset");
					}
                }
            });
        });
    });
});



doc.on("click" , "[data-lang]" , function () {
	var location = $(this).attr("data-url");
    if ($(this).attr("data-lang") == 'IT' || $(this).attr("data-lang") == 'EN') {
        $.ajax({
            url: abs + "ajax/engine.php",
            data: {
                language: $(this).attr("data-lang"),
                action: 'change_language'
            },
            type: "POST",
            success: function(res) {
                var json = JSON.parse(res);
                if (json.result == true) {
                    window.location.href = location;
                    // location.reload(true);
                }
            }
        });
    }
});




function openForm() {
	$("#form").fadeIn(400);
  }
  
function closeForm() {
$("#form").fadeOut(400);
}


doc.ready(function() {
    initialize_page ();
	$('.slide:not(.carousel-fade)').owlCarousel({
		loop:true,
		margin:10,
		nav:false,
		autoplay:true,
		autoplayTimeout:4000,
		autoplayHoverPause:false,
		responsive:{
			0:{
				items:1
			},
			600:{
				items:1
			},
			1000:{
				items:1
			}
		}
	});

	setTimeout(function(){
		initialize_page ();
	}, 750);
});

$(window).resize(function() {
    initialize_page ();
	setTimeout(function(){
		initialize_page ();
	}, 750);
});



function openForm() {
	$("#form").fadeIn(400);
  }
  
function closeForm() {
$("#form").fadeOut(400);
}


doc.on("change , keyup" , "input.form-control , textarea.form-control" , function () {
    if ($(this).val().trim() != '')
        $(this).closest(".form-group").addClass("compiled");
    else
        $(this).closest(".form-group").removeClass("compiled");
});

doc.on("submit" , ".generic_form" , function (e) {
	start_loading();
	var form = $(this);
	var errors = [];
	form.find("button").addClass("disabled");
	e.preventDefault();
	grecaptcha.ready(function() {
        grecaptcha.execute(g_key, {action: 'submit'}).then(function(token) {
            $.ajax({
                url: abs + "ajax/engine.php",
                type: "POST",
                data: {
					action: 'check_captcha',
					response: token
                },
                success: function(res) {
                    result = JSON.parse(res);
                    if(result.success){
                        if(result.score > 0.5){
							form.find("input[type='text'][data-error] , input[type='password'][data-error] , textarea[data-error]").each(function() {
								if ($(this).attr("name") == 'email') {
									if (!validate_mail($(this).val().trim()) || $(this).val().trim() == '')  
                						errors.push($(this).attr('data-error'));
								}
								else {
									if ($(this).val().trim() == '')
										errors.push($(this).attr('data-error'));
								}
							});
							form.find("input[type='checkbox'][data-error]").each(function() {
								if($(this).prop("checked") === false)
									errors.push($(this).attr("data-error"));
							});
							if (form.find("[name='confirm_password']").length && errors == 0 && form.find("[name='confirm_password']").val() != form.find("[name='password']").val()) {
								errors.push(translate("password-non-combaciano"));
							}
							if (errors != 0) {
								var text = "";
								for(i=0; i<errors.length; i++)
									text += "<span class='d-block text-center'>"+errors[i]+"</span>";
								generate_alert("error",translate('error'), text);
								form.find("button").removeClass("disabled");
								stop_loading();
							}
							else {
								$.ajax({
									url: abs + "ajax/engine.php",
									type: "POST",
									data: form.serialize(),
									success: function(val) {
										json = JSON.parse(val);
										generate_alert(json.type , json.title , json.text , json.target);
										form.find("button").removeClass("disabled");
										stop_loading();
									}
								});
							}	
                        }
						else {
							generate_alert('error' , translate('error') , translate('internal-error') , true);
							form.find("button").removeClass("disabled");
							stop_loading();
							form.trigger("reset");
						}
                    }
					else {
						generate_alert('error' , translate('error') , translate('internal-error') , true);
						form.find("button").removeClass("disabled");
						stop_loading();
						form.trigger("reset");
					}
                }
            });
        });
    });
});

doc.on("click", "input[type='radio'][name='user_type']", function() {
	if($(this).attr("id") == "type_2"){
		$("#business_name").closest(".form-group").removeClass("d-none");

	}else{
		$("#business_name").closest(".form-group").addClass("d-none");
	}
});

doc.on("submit" , ".assistance_form" , function (e) {
	start_loading();
	var form = $(this);
	var errors = [];
	form.find("button").addClass("disabled");
	e.preventDefault();
	grecaptcha.ready(function() {
        grecaptcha.execute(g_key, {action: 'submit'}).then(function(token) {
            $.ajax({
                url: abs + "ajax/engine.php",
                type: "POST",
                data: {
					action: 'check_captcha',
					response: token
                },
                success: function(res) {
                    result = JSON.parse(res);
                    if(result.success){
                        if(result.score > 0.5){
							if($("input[type='radio']#type_2").prop("checked") == true && $("#business_name").val().trim() == ""){
								errors.push("Ragione sociale mancante");
							}
							form.find("input[type='text'][data-error] , input[type='password'][data-error] , textarea[data-error]").each(function() {
								if ($(this).attr("name") == 'email') {
									if (!validate_mail($(this).val().trim()) || $(this).val().trim() == '')  
                						errors.push($(this).attr('data-error'));
								}
								else {
									if ($(this).val().trim() == '')
										errors.push($(this).attr('data-error'));
								}
							});
							form.find("input[type='checkbox'][data-error]").each(function() {
								if($(this).prop("checked") === false)
									errors.push($(this).attr("data-error"));
							});
							if (form.find("[name='confirm_password']").length && errors == 0 && form.find("[name='confirm_password']").val() != form.find("[name='password']").val()) {
								errors.push(translate("password-non-combaciano"));
							}
							if (errors != 0) {
								var text = "";
								for(i=0; i<errors.length; i++)
									text += "<span class='d-block text-center'>"+errors[i]+"</span>";
								generate_alert("error",translate('error'), text);
								form.find("button").removeClass("disabled");
								stop_loading();
							}
							else {
								$.ajax({
									url: abs + "ajax/engine.php",
									type: "POST",
									data: form.serialize(),
									success: function(val) {
										json = JSON.parse(val);
										generate_alert(json.type , json.title , json.text , json.target);
										form.find("button").removeClass("disabled");
										stop_loading();
									}
								});
							}	
                        }
						else {
							generate_alert('error' , translate('error') , translate('internal-error') , true);
							form.find("button").removeClass("disabled");
							stop_loading();
							form.trigger("reset");
						}
                    }
					else {
						generate_alert('error' , translate('error') , translate('internal-error') , true);
						form.find("button").removeClass("disabled");
						stop_loading();
						form.trigger("reset");
					}
                }
            });
        });
    });
});

doc.on("change", "input[type='file'][accept='application/pdf']", function(evt) {
	var this_file = $(this);
	var pdf = $(this).prop("files")[0];
	var length = $(this).prop("files").length;
	var target = $(this).closest(".pdf_parent").find("[data-pdf]");
	if (length) {
		if (pdf.type != 'application/pdf') {
			generate_alert("error", "Caricamento allegato", "Il file caricato non è un file pdf.");
			this_file.val('');
			target.val('');
		}	
		else if (pdf.size > 51200000) {
			generate_alert("error", "Caricamento allegato", "Il file caricato pesa più di 50Mb.");
			this_file.val('');
			target.val('');
		}
		else {
			var f = evt.target.files[0];
			var reader = new FileReader();
			reader.onload = (function(theFile) {
				return function(e) {
					var binaryData = e.target.result;
					var base64String = window.btoa(binaryData);
					$(target).val(base64String);
				};
			})(f);
			reader.readAsBinaryString(f);
			lab.val(pdf.name);
		}
	}
	else {
		this_file.val('');
		target.val('');
	}
});


doc.on("change", "input[type='file'][accept='image/*,.pdf']", function(evt) {
	var this_file = $(this);
	var pdf = $(this).prop("files")[0];
	var length = $(this).prop("files").length;
	var target = $(this).closest(".pdf_parent").find("[data-pdf]");
	var ext = $(this).closest(".pdf_parent").find("[data-ext]");

	if (length) {
		if (pdf.type != 'application/pdf' && pdf.type.split('/')[0] != 'image') {
			generate_alert("error", "Caricamento allegato", "Il file caricato non è né un pdf né un'immagine.");
			this_file.val('');
			target.val('');
		}	
		else if (pdf.size > 51200000) {
			generate_alert("error", "Caricamento allegato", "Il file caricato pesa più di 50Mb.");
			this_file.val('');
			target.val('');
		}
		else {
			//Recupero l'estenzione del file
			if (pdf.type == 'application/pdf'){
				ext.val("pdf");

			}else{
				ext.val(pdf.type.split('/')[1]);
			}

			var f = evt.target.files[0];
			var reader = new FileReader();
			reader.onload = (function(theFile) {
				return function(e) {
					var binaryData = e.target.result;
					var base64String = window.btoa(binaryData);
					$(target).val(base64String);
				};
			})(f);
			reader.readAsBinaryString(f);
			lab.val(pdf.name);
		}
	}
	else {
		this_file.val('');
		target.val('');
	}
});