// 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'); }