# Контакты VoiceGuide

> Оставьте заявку - расскажем, как подключить голосового проводника к вашему сайту.

# Оставить заявку

Расскажите про ваш сайт и задачу - подскажем, подходит ли VoiceGuide, и как его подключить.

<form id="vg-contact" class="card" autocomplete="on">
  <label for="f-name">Имя</label>
  <input id="f-name" name="name" type="text" required maxlength="120">
  <label for="f-contact">Email или мессенджер для связи</label>
  <input id="f-contact" name="email" type="text" required maxlength="180">
  <label for="f-msg">Ваш сайт и задача</label>
  <textarea id="f-msg" name="message" rows="4" maxlength="2000"></textarea>
  <input type="text" name="website" tabindex="-1" autocomplete="off" style="position:absolute;left:-9999px" aria-hidden="true">
  <button type="submit">Отправить заявку</button>
  <p id="vg-form-status" style="margin-top:12px;color:var(--muted)"></p>
</form>

<script>
(function(){
  var f=document.getElementById('vg-contact'), s=document.getElementById('vg-form-status');
  var renderedAt=Date.now()/1000; // seconds, for time-to-submit guard
  f.addEventListener('submit',function(e){
    e.preventDefault();
    var payload={
      fields:{ name:f.name.value.trim(), email:f.email.value.trim(), message:f.message.value.trim() },
      website:f.website.value,
      rendered_at:renderedAt,
      idempotency_key:'vg-'+Math.round(renderedAt)+'-'+Math.round(performance.now())
    };
    s.textContent='Отправляю…';
    fetch('/api/forms/voiceguide/contact',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(payload)})
      .then(function(r){return r.json().then(function(d){return {ok:r.ok,d:d};});})
      .then(function(res){
        if(res.ok && res.d && res.d.ok){ f.reset(); renderedAt=Date.now()/1000; s.textContent='Спасибо! Заявка отправлена, мы свяжемся с вами.'; }
        else { s.textContent=(res.d&&res.d.message)||'Не удалось отправить, попробуйте ещё раз.'; }
      })
      .catch(function(){ s.textContent='Сеть недоступна, попробуйте позже.'; });
  });
})();
</script>