// validation formulaire de contact
// Example starter JavaScript for disabling form submissions if there are invalid fields
function sendFormFooter() { // Fetch all the forms we want to apply custom Bootstrap validation styles to
var forms = document.getElementsByClassName('needs-validation');
// Loop over them and prevent submission
var validation = Array.prototype.filter.call(forms, function (form) {
if (form.checkValidity() === false) {
} else {
$.ajax({
url: "../send.php",
type: 'POST',
data: {
token: "" + $('#token').val() + "",
name: "" + $('input[name="name"]').val() + "",
email: "" + $('input[name="email"]').val() + "",
telephone: "" + $('input[name="telephone"]').val() + "",
organisation: "" + $('input[name="organisation"]').val() + "",
yourmessage: "" + $('textarea[name="your-message"]').val() + ""
},
success: function (data) {
if (data == "ok") {
$("#sendForm").empty().append("
" + window.MESSAGE_SENT +"
");
gtag_report_conversion();
} else {
$('#btnFormFooter').empty().append("" + window.ERROR_MESSAGE_NOT_SENT +"
");
}
}
});
}
form.classList.add('was-validated');
});
};
$(function () {
$('[data-toggle="tooltip"]').tooltip()
})
function recaptchaCallback() {
$('#btnFormFooter').removeAttr('disabled');
};
function recaptchaExpireCallback() {
$('#btnFormFooter').addAttr('disabled');
};
function recaptchaLiteCallback() {
$('#subscription-form-create-account').removeAttr('disabled');
};
function recaptchaLiteExpireCallback() {
$('#subscription-form-create-account').addAttr('disabled');
};
//Get in touch, aller au footer
function scrollToAnchor(aid){
var aTag = $("[id='"+ aid +"']");
if ($(window).width() > 991) {
$('html,body').animate({scrollTop: aTag.offset().top-87},'slow'); // la position du footer - la taille de la nav (seulement DT)
} else {
$('html,body').animate({scrollTop: aTag.offset().top},'slow');
}
}
function gtag_report_conversion(url) {
var callback = function () {
if (typeof (url) != 'undefined') {
window.location = url;
}
};
gtag('event', 'conversion', {
'send_to': 'AW-992762556/dPSTCK2Ak78DELy1sdkD',
'event_callback': callback
});
return false;
}
$( document ).ready(function() {
$("#subscription-go-login-form").on('click',function() {
$("#subscription-your-account-form").css('display','none');
$("#subscription-login-your-account-form").css('display','block');
});
$("#subscription-go-create-account-form").on('click',function() {
$("#subscription-your-account-form").css('display','block');
$("#subscription-login-your-account-form").css('display','none');
});
$('#subscription-domain-name').on('keyup',function() {
domain = $(this).val();
alreadyUsed = 0;
if (domain.length >= 3) {
$.ajax({
url: "__site_ajax/isDomainExist.php",
type:'POST',
data:{
domain:domain,
},
async: false,
success: function(data) {
alreadyUsed = data;
}
});
}
$('.domain-validation').css('color','crimson');
if (alreadyUsed == 1) {
$('#domain-validation-not-used').css('color','green');
this.setCustomValidity('');
} else {
this.setCustomValidity('Passwords must match');
}
if (domain.match("^[a-z]{3,11}$") != null) {
$('#domain-validation-letters').css('color','green');
$('#domain-validation-special-char').css('color','green');
} else if (domain.length >= 3 && domain.length <= 11) {
$('#domain-validation-letters').css('color','green');
} else if (domain.match("[a-z]") != null) {
$('#domain-validation-special-char').css('color','green');
}
});
$('#subscription-password').on('keyup',function() {
pwd = $(this).val();
$('.password-validation').css('color', 'crimson');
if (pwd.match("^(?=.*[a-z])(?=.*[A-Z])[a-zA-Z0-9\!\@\#\$\%\^\&\*\(\)\_\+\.\,\;\:\d]") != null && pwd.length >= 8) {
$('.password-validation').css('color','green');
} else {
if (pwd.length >= 8) {
$('#password-8char').css('color','green');
} else if (pwd.match("^(?=.*[a-z])(?=.*[A-Z])[a-zA-Z0-9\!\@\#\$\%\^\&\*\(\)\_\+\.\,\;\:\d]") != null) {
$('#password-letters').css('color','green');
}
}
});
// $('#subscription-organisation-country').on('change',function() {
// euCountries = ['DE','AT','BE','BG','CY','HR','DK','ES','EE','FI','FR','GR','HU','IE','IT','LV','LT','LU','MT','NL','PL','PT','CZ','RO','SK','SI','SE','GB'];
// if (euCountries.includes($(this).val())) {
// $('#subscription-organisation-vat').css('display','block');
// $('label[for=subscription-organisation-vat]').css('display','block');
// $('#subscription-organisation-vat').prop('required',true);
// } else {
// $('#subscription-organisation-vat').css('display','none');
// $('label[for=subscription-organisation-vat]').css('display','none');
// $('#subscription-organisation-vat').prop('required',false);
// }
// });
$('#price-lite').empty().append($('input[name=currency]:checked').attr('rel'));
$('input[name=currency]').click(function() {
$('#price-lite').empty().append($(this).attr('rel'));
$.ajax({
url: "__site_ajax/changeSessionVariable.php",
type:'POST',
data:{
currency:$(this).val(),
},
success: function(data) {
}
});
});
$('.slick-sectors').slick({
centerMode: true,
centerPadding: '100px',
infinite:true,
slidesToShow: 5,
swipeToSlide: true,
variableWidth:false,
prevArrow:' ',
nextArrow:' ',
responsive:
[{
breakpoint: 1700,
settings: {
arrows: true,
centerMode: true,
centerPadding: '40px',
slidesToShow: 5
}
},{
breakpoint: 1500,
settings: {
centerMode: true,
centerPadding: '40px',
slidesToShow: 3
}
},{
breakpoint: 768,
settings: {
arrows: false,
centerMode: true,
centerPadding: '40px',
slidesToShow: 1
}
},
{
breakpoint: 480,
settings: {
arrows: false,
centerMode: true,
centerPadding: '40px',
slidesToShow: 1
}
}]
});
// images
$(function() {
$('img').Lazy({
beforeLoad: function(element){
console.log('image "' + stripTime(element.data('src')) + '" is about to be loaded');
},
afterLoad: function(element) {
loadedElements++;
$('p span', sidebar).html(strPad(loadedElements, '0', 2));
$('ul', sidebar).append('element ' + strPad(loadedElements, '0', 2) + ' loaded ');
console.log('image "' + stripTime(element.data('src')) + '" was loaded successfully');
},
onError: function(element) {
loadedElements++;
$('p span', sidebar).html(strPad(loadedElements, '0', 2));
$('ul', sidebar).append('element ' + strPad(loadedElements, '0', 2) + ' NOT loaded ');
console.log('image "' + stripTime(element.data('src')) + '" could not be loaded');
},
onFinishedAll: function() {
console.log('finished loading ' + loadedElements + ' elements');
console.log('lazy instance is about to be destroyed')
}
});
});
// Menu
$('.nav-link').each(function(index) {
if (index == 0 && document.location.pathname.match(/[^\/]+$/) === null) {
$(this).parent().addClass('active');
return false;
}else if (document.location.pathname.match(/[^\/]+$/)[0] == $(this).attr('href')) {
$(this).parent().addClass('active');
}
});
if (document.location.pathname.match(/[^\/]+$/) != null) {
$('.dropdown-item').each(function(index) {
if (document.location.pathname.match(/[^\/]+$/)[0] == $(this).attr('href')) {
$(this).addClass('active');
$(this).parent().parent().addClass('active');
}
});
}
// Nav, affichage en scrollant top
var didScroll;
var lastScrollTop = 0;
var delta = 5;
var navbarHeight = $('nav').outerHeight();
$(window).scroll(function(event){
didScroll = true;
});
setInterval(function() {
if (didScroll) {
hasScrolled();
didScroll = false;
}
}, 250);
function hasScrolled() {
var st = $(this).scrollTop();
// Make sure they scroll more than delta
if(Math.abs(lastScrollTop - st) <= delta)
return;
// If they scrolled down and are past the navbar, add class .nav-up.
// This is necessary so you never see what is "behind" the navbar.
if (st > lastScrollTop && st > navbarHeight){
// Scroll Down
$('nav').removeClass('nav-down').addClass('nav-up');
} else {
// Scroll Up
if(st + $(window).height() < $(document).height()) {
$('nav').removeClass('nav-up').addClass('nav-down');
}
}
lastScrollTop = st;
}
// Nav, dropdown
var windowWidth = 0;
if ($(window).width() > 991) {
$('.dropdown').removeClass('show');
$('.dropdown-menu').removeClass('show');
} else {
if ($(window).height() < $('.navbar-collapse').height()) {
$('.dropdown').removeClass('show');
$('.dropdown-menu').removeClass('show');
} else {
$('.dropdown').addClass('show');
$('.dropdown-menu').addClass('show');
}
}
window.addEventListener('orientationchange', function(){
window.setTimeout(function() {
if ($(window).width() > 991 && windowWidth != $(window).width()) {
$('.dropdown').removeClass('show');
$('.dropdown-menu').removeClass('show');
$('.main-container').removeClass('menu-open');
$('.navbar-collapse').removeClass('show');
$('.navbar-brand').removeClass('collapse');
$('.menu-burger').addClass('collapsed');
$('.menu-burger').removeClass('is-active');
var windowWidth = $(window).width();
} else if($(window).width() < 991 && windowWidth != $(window).width()) {
var windowWidth = $(window).width();
if ($(window).height() < $('.navbar-collapse').height()) {
$('.dropdown').removeClass('show');
$('.dropdown-menu').removeClass('show');
} else {
$('.dropdown').addClass('show');
$('.dropdown-menu').addClass('show');
}
}
}, 200);
});
window.onresize = function() {
if ($(window).width() > 991 && windowWidth != $(window).width()) {
$('.dropdown').removeClass('show');
$('.dropdown-menu').removeClass('show');
$('.main-container').removeClass('menu-open');
$('.navbar-collapse').removeClass('show');
$('.navbar-brand').removeClass('collapse');
$('.menu-burger').addClass('collapsed');
$('.menu-burger').removeClass('is-active');
var windowWidth = $(window).width();
} else if($(window).width() < 991 && windowWidth != $(window).width()) {
var windowWidth = $(window).width();
if ($(window).height() < $('.navbar-collapse').height()) {
$('.dropdown').removeClass('show');
$('.dropdown-menu').removeClass('show');
} else {
$('.dropdown').addClass('show');
$('.dropdown-menu').addClass('show');
}
}
}
// Nav, décalage body et des différents éléments à l'ouverture du menu
$('.menu-burger').on('click',function() {
if ($(this).hasClass('collapsed')) {
$(this).addClass('is-active');
$('.main-container').addClass('menu-open');
$('.navbar-collapse').addClass('show');
$(this).removeClass('collapsed');
$('.navbar-brand').addClass('collapse');
} else {
$('.main-container').removeClass('menu-open');
$('.navbar-collapse').removeClass('show');
$('.navbar-brand').removeClass('collapse');
$(this).addClass('collapsed');
$(this).removeClass('is-active');
}
});
$(".get-in-touch").click(function(e) {
e.preventDefault();
scrollToAnchor('footer');
$('.main-container').removeClass('menu-open');
$('.navbar-collapse').removeClass('show');
$('.navbar-brand').removeClass('collapse');
$('.menu-burger').addClass('collapsed');
$('.menu-burger').removeClass('is-active');
});
$("#btn-request-demo").click(function(e) {
e.preventDefault();
scrollToAnchor('footer');
$('.main-container').removeClass('menu-open');
$('.navbar-collapse').removeClass('show');
$('.navbar-brand').removeClass('collapse');
$('.menu-burger').addClass('collapsed');
$('.menu-burger').removeClass('is-active');
});
// Typewriting
//made by vipul mirajkar thevipulm.appspot.com
var TxtType = function(el, toRotate, period) {
this.toRotate = toRotate;
this.el = el;
this.loopNum = 0;
this.period = parseInt(period, 10) || 2000;
this.txt = '';
this.tick();
this.isDeleting = false;
};
TxtType.prototype.tick = function() {
var i = this.loopNum % this.toRotate.length;
var fullTxt = this.toRotate[i];
if (this.isDeleting) {
this.txt = fullTxt.substring(0, this.txt.length - 1);
} else {
this.txt = fullTxt.substring(0, this.txt.length + 1);
}
this.el.innerHTML = ''+this.txt+' ';
var that = this;
var delta = 150 - Math.random() * 100;
if (this.isDeleting) { delta /= 2.5; }
if (!this.isDeleting && this.txt === fullTxt) {
delta = this.period;
this.isDeleting = true;
} else if (this.isDeleting && this.txt === '') {
this.isDeleting = false;
this.loopNum++;
delta = 500;
}
setTimeout(function() {
that.tick();
}, delta);
};
window.onload = function() {
var elements = document.getElementsByClassName('typewrite');
for (var i=0; i setTimeout(resolve, ms));
}
$('input:radio[name="options"]').change(
async function(){
if ($(this).is(':checked')) {
$('.tab-pane').removeClass('show');
await sleep(100);
$('.tab-pane').removeClass('active');
$('.tab-pane#'+$(this).attr('rel')).addClass('active');
await sleep(100);
$('.tab-pane#'+$(this).attr('rel')).addClass('show');
// append goes here
}
});
// agrandissement textarea footer
$('#validationCustomMessage').keyup(function(){
$(this).css({'height': 'auto'}).animate({ 'height' : this.scrollHeight} , 0);
});
// vidéo
// Gets the video src from the data-src on each button
var $videoSrc;
$('.video-btn').click(function() {
$videoSrc = $(this).data( "src" );
});
// when the modal is opened autoplay it
$('#videoPresentation').on('shown.bs.modal', function (e) {
// set the video src to autoplay and not to show related video. Youtube related video is like a box of chocolates... you never know what you're gonna get
$("#video").attr('src',$videoSrc + "?rel=0&showinfo=0&modestbranding=1&autoplay=1" );
});
// stop playing the youtube video when I close the modal
$('#videoPresentation').on('hide.bs.modal', function (e) {
// a poor man's stop video
$("#video").attr('src',$videoSrc);
});
// Random Clients
// init Masonry, shuffle in php
$('.grid').masonry({
// options
itemSelector: '.element-item',
fitWidth: false
});
// news hover
$("#news .div-news").hover(
function() {
$( "#news .row .div-news:first-child .news" ).removeClass( "hover" );
}, function() {
$( "#news .row .div-news:first-child .news" ).addClass( "hover" );
}
);
});
// subscription
function subscriptionStep(id,actualId) {
var stop = false;
var forms = document.getElementById(actualId);
// Loop over them and prevent submission
var validation = Array.prototype.filter.call(forms, function(form) {
if (form.checkValidity() === false) {
stop = true;
}
forms.classList.add('was-validated');
});
if (!stop) {
if (id == 'subscription-your-position') {
if (actualId == 'subscription-your-account-form') {
// créer compte
var terms = "0";
var policy = "0";
if ($('#subscription-terms').val() == 'on') {
terms = '1';
}
if ($('#subscription-policy').val() == 'on') {
policy = '1';
}
$.ajax({
url: "__site_ajax/subscription_createUser.php",
type:'POST',
data:{
email:$('#subscription-email').val(),
password:$('#subscription-password').val(),
terms:terms,
policy:policy
},
async: false,
success: function(data) {
if (data == "1") {
$('#subscription-email').get(0).setCustomValidity(ALREADY_EXISTS);
$('#subscription-email-already-exist').empty().append(ALREADY_EXISTS);
return false;
} else {
$('#subscription-email').get(0).setCustomValidity('');
$('#subscription-email-already-exist').empty().append('');
subscriptionDisplayStep(id);
}
}
});
} else {
// connexion
$('.wrongConnection').css('display', 'none');
$.ajax({
url: "__site_ajax/subscription_loginUser.php",
type:'POST',
data:{
email:$('#subscription-email-login').val(),
password:$('#subscription-password-login').val()
},
async: false,
success: function(data) {
if (data == "1") {
$('.wrongConnection').css('display', 'block');
return false;
} else {
data = JSON.parse(data);
if (data['finalisation'] == "0") {
$('#subscription-name').val(data['prenom']);
$('#subscription-lastname').val(data['nom']);
$('#subscription-phone').val(data['telephone']);
$('#subscription-job').val(data['job']);
$('#subscription-organisation-name').val(data['structure']);
$('#subscription-organisation-address').val(data['structure_adresse']);
$('#subscription-organisation-zip').val(data['structure_zip']);
$('#subscription-organisation-city').val(data['structure_ville']);
$('#subscription-organisation-country').val(data['structure_pays']);
$('#subscription-organisation-registration-number').val(data['structure_registration']);
$('#subscription-organisation-vat').val(data['structure_vat']);
$('input[name=subscription-type][value='+data['profile']+']').prop('checked', true);
$('#subscription-language').val(data['langue']);
$('#subscription-domain-name').val(data['domaine']);
subscriptionDisplayStep(id);
} else {
subscriptionDisplayStep("subscription-finalize");
}
}
}
});
}
}
if (id == 'subscription-your-organisation') {
// sauvegarder valeurs
$.ajax({
url: "__site_ajax/subscription_infosUser.php",
type:'POST',
data:{
name:$('#subscription-name').val(),
lastname:$('#subscription-lastname').val(),
phone:$('#subscription-phone').val(),
job:$('#subscription-job').val(),
},
async: false,
success: function(data) {
subscriptionDisplayStep(id);
}
});
}
if (id == 'subscription-your-diese-profile') {
// sauvegarder valeurs
$.ajax({
url: "__site_ajax/subscription_infosStructure.php",
type:'POST',
data:{
name:$('#subscription-organisation-name').val(),
address:$('#subscription-organisation-address').val(),
zip:$('#subscription-organisation-zip').val(),
region: $('#subscription-organisation-region').val(),
city:$('#subscription-organisation-city').val(),
country:$('#subscription-organisation-country').val(),
registration:$('#subscription-organisation-registration-number').val(),
vat:$('#subscription-organisation-vat').val(),
currency:$('input[name=currency]:checked').val()
},
async: false,
success: function(data) {
subscriptionDisplayStep(id);
}
});
}
if (id == 'subscription-finalize') {
// sauvegarder valeurs + envoyer mails
$.ajax({
url: "__site_ajax/subscription_infosDiese.php",
type:'POST',
data:{
profile:$('input[name=subscription-type]:checked').val(),
language:$('#subscription-language').val(),
domain:$('#subscription-domain-name').val(),
},
async: false,
success: function(data) {
$.ajax({
url: "__site_ajax/subscription_finalizeSubscription.php",
type:'POST',
async: false,
success: function(data) {
subscriptionDisplayStep(id);
}
});
}
});
}
}
}
function subscriptionDisplayStep (id) {
$('.subscription-form-part').removeClass('active');
$('.subscription-title-part').removeClass('active');
$('#'+id).addClass('active');
$('.subscription-title-part[for='+id+']').addClass('active');
}