Сутки52 SiteIntegration

by AntonKravchenko

HTML

{* 
	Для вывода кнопки открытия формы используем код:
	<span data-uf-open="/engine/ajax/uniform/uniform.php" data-uf-settings='{"formConfig": "callback"}' class="uf-btn">Заказать звонок</span> 
*}

<script type="text/javascript">
jQuery(function(){
	jQuery(".mask").mask("+7 (999) 999-99-99");
  $('.uf-btn').submit(function() { 
    send2crm('http://crm.sutki52.fanteko.ru/cb/SiteIntegration.php', $('[name="name"]').val(), $('[name="phone"]').val());  	
	});
});
</script>

<div class="uf-wrapper">
	<span class="mfp-close">&times;</span>
	<div class="uf-header">
		Забронировать проживание
	</div>
	[debug]<div class="uf-content">{debug}</div>[/debug]
	[error]
		<div class="uf-alert uf-alert-error">
			<b>Ошибка</b>
			<ul>
				[uf_token_error]
					<li>Ошибка сессии, попробуйте ещё раз.</li>
				[/uf_token_error]
				[uf_error_phone]
					<li>Вы не указали номер телефона</li>
				[/uf_error_phone]
			</ul>
		</div>
	[/error]
	[success]
		<div class="uf-content"><b>Ваша заявка принята!</b> <br> Ждите звонка менеджера в удобное для вас время.</div>
		<script type="text/javascript">
    window.onload = function() {
        yaCounter30593372.reachGoal('success')
    }
</script>
	[/success]
	[form]
		<div class="uf-content">		
			<div class="uf-field">
				<div class="uf-label">
					Ваш телефон
				</div>
				<div class="uf-field-input">
					<input class="mask uf-input uf-input-first [uf_error_phone]uf-input-error[/uf_error_phone]" type="text" name="phone" value="{uf_field_phone}" >
				</div>
			</div>
			<div class="uf-field">
				<div class="uf-label">
					Ваше имя
				</div>
				<div class="uf-field-input">
					<input class="uf-input [uf_error_name]uf-input-error[/uf_error_name]" type="text" name="name" value="{uf_field_name}">
				</div>
			</div>
			<div class="uf-field">
				<div class="uf-field-input">
			Отправьте заявку и мы с вами свяжемся
				</div>
			</div>
			<div class="uf-field">
				<div class="uf-label">
					&nbsp;
				</div>
				<div...

JavaScript

// ссылка на страницу, с которой отправляется запрос
var loc = document.location.hostname;
if (document.location.pathname) loc += document.location.pathname;
else if ('/'==loc.substring(loc.length-1)) loc = loc.substring(0, loc.length-1)

    // функция получает значение name из URL или переданного параметра url  
function getURLParameter(name, url) {
  	name = name.replace(/[\[]/, '\\\[').replace(/[\]]/, '\\\]');
  	var results = new RegExp('[?&]'+name+'=?([^&#]*)').exec(url || window.location.href);
  	return results === null ? null : results[1] || true;
}

    // функция создаёт объект XMLHTTPRequest
function getXmlHttp(){
  var xmlhttp;
  try {
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (e) {
    try {
      xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (E) {
      xmlhttp = false;
    }
  }
  if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
    xmlhttp = new XMLHttpRequest();
  }
  return xmlhttp;
}

function send2crm(to, name, phone) {
        var req = getXmlHttp();
        var params = 'url=' + loc + 
                     '&utm_source=' + getURLParameter('utm_source') + 
                     '&utm_term=' + getURLParameter('utm_term') + 
                     '&utm_medium=' + getURLParameter('utm_medium') + 
                     '&utm_content=' + getURLParameter('utm_content') + 
                     '&utm_campaign=' + getURLParameter('utm_campaign') + 
                     '&name=' +  name + 
                     '&phone=' + phone;
        req.open("POST", to, true); 
        req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        req.send(params);
}