var FormToLead = { property_and_field_data: [['title', 'TITLE'], ['name', 'NAME'], ['last_name', 'LAST_NAME'], ['second_name', 'SECOND_NAME'], ['city', 'ADDRESS_CITY'], ['phone', 'PHONE'], ['email', 'EMAIL'], ['comments', 'COMMENTS']], cookie_to_field: [['_ga', 'UF_CRM_GOOGLE_CID'], ['_ym_uid', 'UF_CRM_YM_CID']], get_to_field: [['utm_source', 'UTM_SOURCE'], ['utm_medium', 'UTM_MEDIUM'], ['utm_campaign', 'UTM_CAMPAIGN'], ['utm_term', 'UTM_TERM'], ['utm_content', 'UTM_CONTENT']], report: function(subject, text) { $.get("http://vkomi.ru/app/site/send-mail", {subject: subject, text: text}); }, get_cookie: function(name) { var match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)')); if (match) return match[2]; }, getGetValueByName: function(name) { var url = window.location.href; name = name.replace(/[\[\]]/g, '\$&'); var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'), results = regex.exec(url); if (!results) return null; if (!results[2]) return ''; return decodeURIComponent(results[2].replace(/\+/g, ' ')); }, send: function(data) { var send_data = {}; var unknown_properties = []; for (var k in data) { var find_property = false; for (var i = 0; i < this.property_and_field_data.length; i++) { var p = this.property_and_field_data[i]; if (p[0] == k) { find_property = true; send_data[p[1]] = data[k]; break; } } if (!find_property) { unknown_properties.push(k); } } for (var i = 0; i < this.cookie_to_field.length; i++) { var p = this.cookie_to_field[i]; send_data[p[1]] = this.get_cookie(p[0]); } for (var i = 0; i < this.get_to_field.length; i++) { var p = this.get_to_field[i]; send_data[p[1]] = this.getGetValueByName(p[0]); } if (unknown_properties.length > 0) { this.report('form to lead error', 'Неизвестные поля: '+unknown_properties.join(',')); } else { var _this = this; $.get("http://vkomi.ru/app/bitrix/save-form-to-lead", send_data).done(function(){ console.log('ajax_url_create_lea ok!') }).fail(function(xhr){ console.log(xhr); _this.report('form to lead error', 'Не удалось отправить '+xhr.responseText); }); } } }