window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-EDT9R03DHT');

Закрытая ринопластика

 

Внимание! Профессор Блохин не выполняет ринопластику.
Операции по коррекции носа выполняют хирурги Клиники Блохина –
С.М. Абрамян и Г.И. ТумаковЗакрытая ринопластика 1

Закрытая ринопластика — современная методика пластической хирургии, которая позволяет восстановить функциональность носа, а также улучшить его эстетические характеристики. Уникальность метода состоит в том, что доступ к основным структурам носа хирурги получают через небольшие разрезы на слизистой оболочке внутри полости органа. Наружные швы полностью отсутствуют.
 
Закрытая ринопластика 2

Цены на ринопластику

Операция

Цена

Микроринопластика

от 500 000 руб.

Ринопластика

от 350 000 руб.

Повторная ринопластика (после других клиник)

от 420 000 руб.

Внимание! Профессор Блохин не выполняет ринопластику. Эту операцию проводят другие хирурги клиники.
 

Закрытая ринопластика имеет ряд исключительных преимуществ:

  1. После проведения операции на внешних кожных покровах не остается послеоперационных рубцов.
  2. Благодаря малой травматизации тканей после процедуры появляется лишь незначительная отечность — значительно меньшая, чем если бы операция выполнялась открытым способом.
  3. Продолжительность пластической операции в разы сокращается и редко длится более часа.
  4. Снижается риск осложнений, которые могут возникнуть после любого оперативного вмешательства (особенно, когда речь идет о пациентах в возрасте).
  5. Отсутствует риск появления рубцов.

 

 

Когда проводится закрытая ринопластика

Пластическая операция позволяет исправить ряд эстетических и медицинских дефектов носа. Вот только некоторые из них:

  • наличие горбинки;
  • последствия травм носа, а также ожогов и обморожений;
  • врожденные дефекты;
  • слишком широкая спинка носа;
  • нос “картошкой”;
  • выравнивание перегородки и устранение других дефектов;
  • необходимость опустить или приподнять кончик носа;
  • желание изменить расстояние между верхней губой и носом;
  • непропорционально маленький носовой проход (это часто становится причиной нарушения дыхательной функции);
  • непропорциональность раковин по отношению к носу и/или их некрасивая форма;
  • слишком длинный нос (или наличие неровностей в его форме);
  • неэстетичный кончик носа, требующий исправления;
  • дефекты и особенности индивидуального характера.

Часто проблема пациента состоит не только в отсутствии природной эстетики лица. Пластика носа позволяет избавиться от нарушений дыхания (устранить деформации, искривления костного и хрящевого остова посредством коррекции внутренней перегородки в носу — септопластики), физиологического и психологического дискомфорта.

 

 

Преимущества и недостатки закрытой ринопластики

 

Важно понимать, что несмотря на множество достоинств закрытого способа коррекции носа, у него есть и свои недостатки. Ему часто отдают предпочтение сами хирурги, поскольку эндоназальная ринопластика позволяет избежать шрамов и рубцов, защитить от повреждений сосудистую сетку и нервные окончания, сократить время операции и период последующей реабилитации. Однако есть и важные факторы, на которые следует обратить внимание:

  • Только врачи высокой квалификации с огромным опытом работы должны допускаться к этой процедуре. Ведь одна из наиболее трудоемких задач состоит в последующем наложении швов на слизистую, расположенную на сводах крыльных хрящей. Крайне важно соблюдать симметричность и ювелирную технику выполнения этой задачи.

 

 

Есть ли противопоказания к закрытой ринопластике?

 

Помимо индивидуальных особенностей организма и наличия ряда врожденных заболеваний, которые не позволят выполнять пластическую операцию, основная масса противопоказаний к эндоназальной пластике ничем не отличается от тех, что предъявляются к процедуре ринопластики в целом.

Операция не проводится, если:

  • пациенту еще нет 18 лет (за редким исключением);
  • обследование выявило инфекции в организме и пр.

 

Кроме того, врачи могут отказать в проведении процедуры, если:

  • критически деформированы мягкие ткани носа после большого количества хурургических вмешательств в прошлом;
  • пациент психически нестабилен.

 

 

 

Почему в нашей клинике отдают предпочтение эндоназальной ринопластике

 

Именно закрытая операция позволяет свести к нулю риски, связанные с травмированием сосудов и нервов, расположенных в области носа. Это позволяет исключить риск ишемических осложнений, сохранить кровообращение. Кроме того, подобное оперативное вмешательство позволяет обеспечить безопасность пациенту в долгосрочной перспективе. Можно говорить, что с возрастом и изменением состояния кожных покровов и сосудов не произойдут изменения формы носа, внутренних его структур.
 

 

Специфика подготовки к операции

 

Медицинский осмотр и ряд анализов — обязательные условия подготовки к операции. Специалистам крайне важно определить функциональные особенности работы ряда органов, оценить общее состояние организма и его готовность в процедуре, проверить, нет ли врожденных дефектов, которые могут препятствовать проведению пластики в целом или выполнению процедуры закрытым методом.

Пациенту необходимо строго следовать рекомендациям врачей в предоперационной подготовке.

Сама техника выполнения операции предполагает выполнение небольших по размерам разрезов на внутренней части носовой полости, через которые в область носа вводится эндоскоп.

Разрезы могут быть:

  • краевыми (выполняются по самому краю слизистой внутри ноздри);
  • межхрящевыми (выполняются, если работа хирурга связана с обеспечением доступа к костной части носовой спинки);
  • трансфикционными (выполняются в той части, где перегородка соединяется с крыльным хрящом).

 

Деформированные участки изменяют в соответствии с предварительным планом операции. В целях повышения видимости структурных элементов носа, изображение с эндоскопа выводится на большой экран в операционной. Это позволяет исключить травмирование тканей, сосудов, нервных окончаний.

Важно! Специалист должен быть максимально осторожен. Деформация мягких тканей в носовой области опасна, поскольку сама кожа в этом месте малоподвижна и неэластична. При помощи специальных швов, наложенных в слизистой, можно снизить риск возникновения послеоперационных осложнений, воспаления и пр.

 

 

Реабилитация

 

После эндоназальной ринопластики пациент должен в полной мере соблюдать рекомендации лечащего врача. В течение недели после операции вы будете носить не бандаж, а специальную гипсовую повязку, фиксирующую нос в заданном положении, а также фиксирующие бинтовые турунды в носу в течение 3 дней после операции. Повязку нельзя мочить, следует избегать нагрузки на перегородку, отказаться от очков и пр. Кроме того, учтите, что последующие три месяца вам будет нельзя посещать спортзал и активно отдыхать, также необходимо будет избегать повышенных нагрузок. Учтите, что любое чувствительное механическое повреждение носа в первые 3 месяца после операции может привести к полной потере достигнутого результата.

 

 

Преимущества закрытой ринопластики в нашей клинике

 

«Фрау Клиник» — одна из лучших клиник пластической хирургии не только в Москве, но и во всей России. Ее основал известный профессор, опытнейший пластический хирург со стажем, доктор наук и автор целого комплекса научных статей — Блохин Сергей Николаевич.

Клиника оснащена современным медицинским оборудованием, а операции здесь проводят хирурги-профессионалы, стаж которых составляет не менее 10 лет.

Главная задача, которую мы ставим перед собой — быть эффективными для наших пациентов и гарантировать им полную безопасность. И с этим мы справляемся превосходно!
 

 

Результаты работы
Все работы
Закрытая ринопластика 3
Закрытая ринопластика 4
Закрытая ринопластика 5
Закрытая ринопластика 6
Закрытая ринопластика 7
Закрытая ринопластика 8
Закрытая ринопластика 9
Закрытая ринопластика 10
Закрытая ринопластика 11
Закрытая ринопластика 12
Закрытая ринопластика 13
Закрытая ринопластика 14

Запись на консультацию

Стоимость консультации: 3 000 руб.

Для записи на прием к профессору С.Н. Блохину позвоните нам в клинику
по тел: 8 495 120 06 10 или оставьте заявку.



Нажимая на кнопку “Отправить”, вы соглашаетесь с Политикой обработки персональных данных

(function () {
let CFSTP = function () {
if (!(this instanceof CFSTP)) {
return;
}
this.forms = [
//blokhin.ru
{
container: "form#contact-form-callback",
success: {
part: "pathname",
text: "mail-sent",
},
},
{
container: "form#contact-form-price",
success: {
part: "pathname",
text: "mail-sent",
},
},
//blokhin.ru
//frauklinik.ru
{
page: "/form/",
container: "form",
success: {
element: "div#first h1",
text: "Ваша заявка отправлена",
attribute: "innerText",
},
},
//frauklinik.ru
];
this.mnemonic = {
name: ["text-707", "phone"],
phone: ["tel-87", "name"],
email: [],
form_name: [],
};
(this.config = {
debug: false,
fnames: false,
fnamesMess: false,
}),
(this.version = "1.0");
};

//Methods

CFSTP.prototype.getData = function (form) {
let result = [];
let fields = form.querySelectorAll("input, select, textarea");
for (const key in fields) {
if (fields.hasOwnProperty(key)) {
if (
fields[key]["type"] &&
fields[key]["type"] == "radio" &&
!fields[key]["checked"]
) {
continue;
}
let fieldName = [];
let fieldValue = "";
if (fields[key].hasAttribute("name")) {
fieldName.push(fields[key]["name"]);
} else if (fields[key].hasAttribute("id")) {
fieldName.push(fields[key]["id"]);
} else if (fields[key].hasAttribute("class")) {
fields[key]["classList"].forEach((element) => {
fieldName.push(element);
});
} else {
continue;
}
if (
fields[key]["tagName"] == "SELECT" &&
fields[key].querySelector(
'option[value="' + fields[key]["value"].replace(/"/g, '\"') + '"]'
)
) {
fieldValue = fields[key].querySelector(
'option[value="' + fields[key]["value"].replace(/"/g, '\"') + '"]'
).innerText;
} else {
fieldValue = fields[key]["value"];
}
if (fieldName && fieldValue) {
fieldName.forEach((element) => {
result.push({
name: element,
value: fieldValue,
});
});
}
}
}
return result;
};

CFSTP.prototype.writeData = function (form) {
this.formData = {};
if (
this.forms[this.currentForm] &&
this.forms[this.currentForm]["widget"]
) {
this.formData.cWidget = this.forms[this.currentForm]["widget"];
} else {
this.formData.cWidget = "request";
}
this.formData.cData = this.createObject(this.getData(form));
if (this.config.debug) {
console.group(
"%c%s%s",
"color: red;",
"Writing form data №",
this.currentForm
);
console.log(this.formData);
console.groupEnd();
}
sessionStorage.setItem("cFormData", JSON.stringify(this.formData));
};

CFSTP.prototype.createObject = function (formData) {
let cData = { name: "", message: "" };
if (!formData) {
return false;
}
for (const key in formData) {
if (formData.hasOwnProperty(key)) {
this.mnemonic.name.forEach(function (item, i, arr) {
if (formData[key]["name"] == item) {
cData.name += formData[key]["value"] + " ";
}
});
this.mnemonic.phone.forEach(function (item, i, arr) {
if (formData[key]["name"] == item) {
cData.phone = formData[key]["value"];
}
});
this.mnemonic.email.forEach(function (item, i, arr) {
if (formData[key]["name"] == item) {
cData.email = formData[key]["value"];
}
});
for (const key2 in this.mnemonic.message) {
if (this.mnemonic.message.hasOwnProperty(key2)) {
if (
formData[key]["name"] == this.mnemonic.message[key2]["name"] &&
formData[key]["name"] != ""
) {
cData.message +=
this.mnemonic.message[key2]["text"] +
" : " +
formData[key]["value"] +
"n";
}
}
}
for (const key2 in this.mnemonic.form_name) {
if (this.mnemonic.message.hasOwnProperty(key2)) {
if (
formData[key]["name"] == this.mnemonic.form_name[key2]["name"] &&
formData[key]["name"] != ""
) {
cData.form_name = formData[key]["value"];
}
}
}
}
}
if (!this.config["fnames"] && cData.form_name) {
cData.form_name = "";
}
if (this.config["fnames"] && !cData.form_name) {
if (this.forms[this.currentForm].hasOwnProperty("formName")) {
cData.form_name = this.forms[this.currentForm]["formName"];
if (this.config["fnamesMess"]) {
cData.message +=
"FormName: " + this.forms[this.currentForm]["formName"] + ";";
}
}
}
document
.querySelectorAll(".simplecheckout-cart .name a")
.forEach((element) => {
cData.message += element.innerText + "; ";
});
return cData;
};

CFSTP.prototype.formHandler = function (e) {
let form;
if (!e.isTrusted) {
return;
}
for (const key in this.forms) {
if (this.forms.hasOwnProperty(key)) {
const container = this.forms[key]["container"];
form = e.target.closest(container);
if (form) {
if (
this.forms[key].page &&
!location.href.includes(this.forms[key].page)
) {
continue;
} else {
this.currentForm = key;
this.writeData(form);
break;
}
}
}
}
//console.log(form);
if (!form) {
return;
}
};

//Sending
CFSTP.prototype.waitingMainScript = function () {
let that = this;
let counter = 0;
let is_good = false;
let int = setInterval(function () {
if (is_good || counter > 40) {
clearInterval(int);
if (is_good) {
if (that.config.debug) {
console.log("GOOD");
}
that.sendData();
}
if (counter > 40) {
if (that.config.debug) {
console.log("BAD");
that.sendData();
}
}
}
counter++;
if (!window.Comagic) {
return;
}
is_good = true;
counter++;
let credentials;
try {
credentials = Comagic.getCredentials();
} catch {
return;
}
for (var field in credentials) {
if (credentials.hasOwnProperty(field)) {
if (credentials[field]) {
if (field == "hit_id" && isNaN(credentials[field])) {
is_good = false;
}
} else {
is_good = false;
}
}
}
}, 500);
};

CFSTP.prototype.sendData = function () {
for (const key in this.forms) {
if (this.forms.hasOwnProperty(key)) {
let success = this.forms[key]["success"];
if (
success.part &&
document.location[success.part].indexOf(success.text) + 1
) {
this.sendFormToCM();
break;
} else if (
success.element &&
document.querySelector(success.element) &&
(success.attribute == "innerText" ||
document
.querySelector(success.element)
.hasAttribute(success.attribute)) &&
(document
.querySelector(success.element)
.innerText.indexOf(success.text) + 1 ||
document
.querySelector(success.element)
.getAttribute(success.attribute)
.indexOf(success.text) + 1)
) {
this.sendFormToCM();
break;
}
}
}
};

CFSTP.prototype.sendFormToCM = function () {
let cFormData = JSON.parse(sessionStorage.getItem("cFormData"));
if (!cFormData) {
return;
}
sessionStorage.removeItem("cFormData");
let cData = cFormData.cData;
if (!cData) {
if (this.config.debug) {
console.group("%c%s", "color: gray;", "Form Data is missing");
console.groupEnd();
}
return;
}
if (this.config.debug) {
console.group("%c%s", "color: green;", "Sending form to Comagic-> ");
console.log(cData);
console.groupEnd();
} else {
if (cFormData.cWidget == "request") {
window.Comagic &&
Comagic.addOfflineRequest &&
Comagic.addOfflineRequest(cData);
} else if (cFormData.cWidget == "call") {
window.Comagic && Comagic.sitePhoneCall && Comagic.sitePhoneCall(cData);
} else if (cFormData.cWidget == "both") {
window.Comagic &&
Comagic.addOfflineRequest &&
Comagic.addOfflineRequest(cData) &&
Comagic.sitePhoneCall &&
Comagic.sitePhoneCall(cData);
}
}
};

CFSTP.prototype.init = function () {
document.addEventListener("click", this.formHandler.bind(this), true);
this.waitingMainScript();
};

let ComagicFormsSenderTP = new CFSTP();
ComagicFormsSenderTP.init();
})();

Вопросы и ответы
Могут ли остаться шрамы после операции?
Опытный хирург знает, как снизить риски возникновения дополнительных повреждений. Будут выполнены аккуратные разрезы в складках кожи, в незаметных местах – минимальные следы от хирургического вмешательства.
Насколько естественным будет результат после операции?
Пластика носит омолаживающий и эстетический эффекты. Черты лица остаются неизменными, но вы будете выглядеть на 10-12 лет моложе. Разгладятся морщины, кожа станет более эластичной, увлажненной и ухоженной.
Сколько требуется времени на реабилитацию после пластики лица? Когда будет окончательный результат?
Срок восстановления после пластической операции зависит от индивидуальных показателей. Огромное значение имеет методика, которую выбирает хирург, для восстановления естественной красоты черт лица. В клинике применяют разные подходы, в том числе используют малоинвазивные способы с научно доказанной эффективностью. При классических методиках подтяжки кожи лица окончательный результат можно будет оценить через 6-8 месяцев (полное восстановление тканей). Консультация с врачом поможет подготовиться к операции, узнать о специфике и особенностях разных подходов.
Будут ли изменения в мимике после операции?
Мы используем авторские методики «векторного лифтинга». Таким образом, кожа и ткани пациента распределяются по естественным векторам «молодости», как это было 10-15 лет назад. Исключается неестественная деформация лица и эффект маски.
Какая анестезия применяется при операции?
Выбор типа анестезии зависит от методики хирургического вмешательства и индивидуальных особенностей пациента. Это может быть местная анестезия или общий наркоз. Первый вариант лучше всего подходит при выполнении процедуры липофиллинга, а второй – необходим при более сложных операциях (например, реэндопротезировании молочных желез).
Есть ли риски потери чувствительности после операции?
Ни одно хирургическое вмешательство не является причиной полной потери чувствительности. Однако при некоторых методиках допустимо снижение чувствительности в зоне проведения операции (она восстанавливается в течение 1-2 месяцев).
Какие есть возрастные ограничения для пластики лица?
Требуется достижение 18 лет, а верхней границы нет. Так как перед операцией все пациенты проходят чек-ап и если состояние здоровья позволяет, то оперироваться можно и в 90 лет!
Какие есть риски и осложнения при пластических операциях на лице?
Пластика лица является совершенно безопасной процедурой. Однако важно понимать, что при любом хирургическом вмешательстве есть риски, возможность возникновения неприятных ощущений, последствий. Среди наиболее распространенных осложнений – кровотечения, инфекции, появление рубцов, временная потеря чувствительности, неправильное заживление ран. Опытные хирурги знают, как снизить риски. Необходима тщательная подготовка к операции, проведение консультации с пациентом, проверка анализов.
Какие есть ограничения до и после операции?
Пластическая операция на лице требует соблюдения определенных правил во время подготовки. Важно придерживаться всех рекомендаций врача. Например, может понадобиться временно ограничить употребление добавок, лекарств, прекратить курить, употреблять алкоголь. В некоторых случаях рекомендуется соблюдение диеты, инструкций по уходу за кожей лица. После операции пациент должен быть аккуратнее с ранами, снизить физическую активность и избегать долгого пребывания на солнце. Обязательным требованием является консультации с врачом во время послеоперационного ухода.
Наши врачи
Мария Егорова
Мария Егорова
ВЕДУЩИЙ ПЛАСТИЧЕСКИЙ ХИРУРГ

Мария Егорова - Сертифицированный пластический хирург. Профессиональная подготовка и повышение квалификации под руководством д.м.н. профессора Блохина С.Н. и Doctor of Medicine Вульфа И.А.

Николай Найденов
Николай Найденов
ВЕДУЩИЙ ПЛАСТИЧЕСКИЙ ХИРУРГ

Специалист с двойной сертификацией. Помимо успешной практики по пластического хирурга, ведет практику как сосудистый хирург.

Владимир Козлов
Владимир Козлов
ПЛАСТИЧЕСКИЙ ХИРУРГ

Сертифицированный пластический хирург Frau Klinik. Эксперт в области комплексного омоложения лица, лауреат международной премии “White beauty awards.

Олег Бадак
Олег Бадак
ПЛАСТИЧЕСКИЙ ХИРУРГ

Сертифицированный пластический хирург. Владеет широким спектром эндоскопических и малоинвазивных методик эстетической хирургии лица и тела.

Александр Филиппов
Александр Филиппов
ПЛАСТИЧЕСКИЙ ХИРУРГ

Сертифицированный пластический хирург. Профессиональная подготовка и повышение квалификации под руководством д.м.н. профессора Блохина С.Н. и Doctor of Medicine Вульфа И.А.

Андрей Копасов
Андрей Копасов
ВЕДУЩИЙ ПЛАСТИЧЕСКИЙ ХИРУРГ

Сертифицированный пластический хирург. Профессиональная подготовка и повышение квалификации под руководством д.м.н. профессора Блохина С.Н. и Doctor of Medicine Вульфа И.А.

Глеб Тумаков
Глеб Тумаков
ВЕДУЩИЙ ПЛАСТИЧЕСКИЙ ХИРУРГ

Сертифицированный пластический хирург. Профессиональная подготовка и повышение квалификации под руководством д.м.н. профессора Блохина С.Н. и Doctor of Medicine Вульфа И.А.

(function () {
let CFSTP = function () {
if (!(this instanceof CFSTP)) {
return;
}
this.forms = [
//blokhin.ru
{
container: "form#contact-form-callback",
success: {
part: "pathname",
text: "mail-sent",
},
},
{
container: "form#contact-form-price",
success: {
part: "pathname",
text: "mail-sent",
},
},
//blokhin.ru
//frauklinik.ru
{
page: "/form/",
container: "form",
success: {
element: "div#first h1",
text: "Ваша заявка отправлена",
attribute: "innerText",
},
},
//frauklinik.ru
];
this.mnemonic = {
name: ["text-707", "phone"],
phone: ["tel-87", "name"],
email: [],
form_name: [],
};
(this.config = {
debug: false,
fnames: false,
fnamesMess: false,
}),
(this.version = "1.0");
};

//Methods

CFSTP.prototype.getData = function (form) {
let result = [];
let fields = form.querySelectorAll("input, select, textarea");
for (const key in fields) {
if (fields.hasOwnProperty(key)) {
if (
fields[key]["type"] &&
fields[key]["type"] == "radio" &&
!fields[key]["checked"]
) {
continue;
}
let fieldName = [];
let fieldValue = "";
if (fields[key].hasAttribute("name")) {
fieldName.push(fields[key]["name"]);
} else if (fields[key].hasAttribute("id")) {
fieldName.push(fields[key]["id"]);
} else if (fields[key].hasAttribute("class")) {
fields[key]["classList"].forEach((element) => {
fieldName.push(element);
});
} else {
continue;
}
if (
fields[key]["tagName"] == "SELECT" &&
fields[key].querySelector(
'option[value="' + fields[key]["value"].replace(/"/g, '\"') + '"]'
)
) {
fieldValue = fields[key].querySelector(
'option[value="' + fields[key]["value"].replace(/"/g, '\"') + '"]'
).innerText;
} else {
fieldValue = fields[key]["value"];
}
if (fieldName && fieldValue) {
fieldName.forEach((element) => {
result.push({
name: element,
value: fieldValue,
});
});
}
}
}
return result;
};

CFSTP.prototype.writeData = function (form) {
this.formData = {};
if (
this.forms[this.currentForm] &&
this.forms[this.currentForm]["widget"]
) {
this.formData.cWidget = this.forms[this.currentForm]["widget"];
} else {
this.formData.cWidget = "request";
}
this.formData.cData = this.createObject(this.getData(form));
if (this.config.debug) {
console.group(
"%c%s%s",
"color: red;",
"Writing form data №",
this.currentForm
);
console.log(this.formData);
console.groupEnd();
}
sessionStorage.setItem("cFormData", JSON.stringify(this.formData));
};

CFSTP.prototype.createObject = function (formData) {
let cData = { name: "", message: "" };
if (!formData) {
return false;
}
for (const key in formData) {
if (formData.hasOwnProperty(key)) {
this.mnemonic.name.forEach(function (item, i, arr) {
if (formData[key]["name"] == item) {
cData.name += formData[key]["value"] + " ";
}
});
this.mnemonic.phone.forEach(function (item, i, arr) {
if (formData[key]["name"] == item) {
cData.phone = formData[key]["value"];
}
});
this.mnemonic.email.forEach(function (item, i, arr) {
if (formData[key]["name"] == item) {
cData.email = formData[key]["value"];
}
});
for (const key2 in this.mnemonic.message) {
if (this.mnemonic.message.hasOwnProperty(key2)) {
if (
formData[key]["name"] == this.mnemonic.message[key2]["name"] &&
formData[key]["name"] != ""
) {
cData.message +=
this.mnemonic.message[key2]["text"] +
" : " +
formData[key]["value"] +
"n";
}
}
}
for (const key2 in this.mnemonic.form_name) {
if (this.mnemonic.message.hasOwnProperty(key2)) {
if (
formData[key]["name"] == this.mnemonic.form_name[key2]["name"] &&
formData[key]["name"] != ""
) {
cData.form_name = formData[key]["value"];
}
}
}
}
}
if (!this.config["fnames"] && cData.form_name) {
cData.form_name = "";
}
if (this.config["fnames"] && !cData.form_name) {
if (this.forms[this.currentForm].hasOwnProperty("formName")) {
cData.form_name = this.forms[this.currentForm]["formName"];
if (this.config["fnamesMess"]) {
cData.message +=
"FormName: " + this.forms[this.currentForm]["formName"] + ";";
}
}
}
document
.querySelectorAll(".simplecheckout-cart .name a")
.forEach((element) => {
cData.message += element.innerText + "; ";
});
return cData;
};

CFSTP.prototype.formHandler = function (e) {
let form;
if (!e.isTrusted) {
return;
}
for (const key in this.forms) {
if (this.forms.hasOwnProperty(key)) {
const container = this.forms[key]["container"];
form = e.target.closest(container);
if (form) {
if (
this.forms[key].page &&
!location.href.includes(this.forms[key].page)
) {
continue;
} else {
this.currentForm = key;
this.writeData(form);
break;
}
}
}
}
//console.log(form);
if (!form) {
return;
}
};

//Sending
CFSTP.prototype.waitingMainScript = function () {
let that = this;
let counter = 0;
let is_good = false;
let int = setInterval(function () {
if (is_good || counter > 40) {
clearInterval(int);
if (is_good) {
if (that.config.debug) {
console.log("GOOD");
}
that.sendData();
}
if (counter > 40) {
if (that.config.debug) {
console.log("BAD");
that.sendData();
}
}
}
counter++;
if (!window.Comagic) {
return;
}
is_good = true;
counter++;
let credentials;
try {
credentials = Comagic.getCredentials();
} catch {
return;
}
for (var field in credentials) {
if (credentials.hasOwnProperty(field)) {
if (credentials[field]) {
if (field == "hit_id" && isNaN(credentials[field])) {
is_good = false;
}
} else {
is_good = false;
}
}
}
}, 500);
};

CFSTP.prototype.sendData = function () {
for (const key in this.forms) {
if (this.forms.hasOwnProperty(key)) {
let success = this.forms[key]["success"];
if (
success.part &&
document.location[success.part].indexOf(success.text) + 1
) {
this.sendFormToCM();
break;
} else if (
success.element &&
document.querySelector(success.element) &&
(success.attribute == "innerText" ||
document
.querySelector(success.element)
.hasAttribute(success.attribute)) &&
(document
.querySelector(success.element)
.innerText.indexOf(success.text) + 1 ||
document
.querySelector(success.element)
.getAttribute(success.attribute)
.indexOf(success.text) + 1)
) {
this.sendFormToCM();
break;
}
}
}
};

CFSTP.prototype.sendFormToCM = function () {
let cFormData = JSON.parse(sessionStorage.getItem("cFormData"));
if (!cFormData) {
return;
}
sessionStorage.removeItem("cFormData");
let cData = cFormData.cData;
if (!cData) {
if (this.config.debug) {
console.group("%c%s", "color: gray;", "Form Data is missing");
console.groupEnd();
}
return;
}
if (this.config.debug) {
console.group("%c%s", "color: green;", "Sending form to Comagic-> ");
console.log(cData);
console.groupEnd();
} else {
if (cFormData.cWidget == "request") {
window.Comagic &&
Comagic.addOfflineRequest &&
Comagic.addOfflineRequest(cData);
} else if (cFormData.cWidget == "call") {
window.Comagic && Comagic.sitePhoneCall && Comagic.sitePhoneCall(cData);
} else if (cFormData.cWidget == "both") {
window.Comagic &&
Comagic.addOfflineRequest &&
Comagic.addOfflineRequest(cData) &&
Comagic.sitePhoneCall &&
Comagic.sitePhoneCall(cData);
}
}
};

CFSTP.prototype.init = function () {
document.addEventListener("click", this.formHandler.bind(this), true);
this.waitingMainScript();
};

let ComagicFormsSenderTP = new CFSTP();
ComagicFormsSenderTP.init();
})();