$(document).ready(function() { var filesPath = 'data/other_f/'; // For each video content $('.vVideo').each(function (i, el) { if ($(el).attr('data-content') != 'video') { return; } var link = $(el).text(); var videoId, videoType; videoId = ParseYoutube(link); videoType = "youtube"; if (!videoId.length) { videoId = ParseVimeo(link); videoType = "vimeo"; } if (!videoId.length) { return; } if (videoType == "youtube") { $(el).html(''); } else if (videoType == "vimeo") { $(el).html(''); } //console.log(link); }); // For each file content $('.fFile').each(function (i, el) { if ($(el).attr('data-content') != 'file') { return; } var filename = $(el).attr('data-file') var ext = GetFileExt(filename); if (filename[0] == '/' && filename[1] == '/' && filename[2] != '/') { ; } else { return; } var link = filename.replace('//', filesPath); $(el).html(''+ $(el).html() +'').addClass('fFile-'+ ext).removeAttr('data-file'); }); }); function ParseYoutube(url) { var regExp = /^.*((youtu.be\/)|(v\/)|(\/u\/\w\/)|(embed\/)|(watch\?))\??v?=?([^#\&\?]*).*/; var match = url.match(regExp); if (match&&match[7].length==11) { return match[7]; } else { return ''; } } function ParseVimeo(url) { // var regExp = /http:\/\/(www\.)?vimeo.com\/(\d+)($|\/)/; var regExp = /^.*(www\.)?vimeo.com\/(\d+)($|\/)/; var match = url.match(regExp); if (match) { return match[2]; } else { return ''; } } function GetFileExt(fullPath) { var re = /(?:\.([^.]+))?$/; ext = re.exec(fullPath)[1]; return ext; } function ShowLoad(str) { if (str.length) { $("#loadingDiv b").html(str); } $("#loadingDiv").show(); } function HideLoad() { $("#loadingDiv").hide(); } function IsEmail(email) { var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/; return regex.test(email); } var isSending = false; function attachForms() { $('form.smplForm').each(function (index, element) { // element == this // Необходимо наличие элементов // Тег формы: Обязательное наличие class="smplForm", пример:
// Имя формы: // Откуда форма (со страницы): // Кнопка отправить .formSubmit в слое .sendButton:
Відправити
// Ползунок загрузки (часики/кружки) в слое .loader: // При успешной отпраки, ответ об этом в слое .success: // Поля: // * В каждом обязательном к заполнению поле, необходимо наличие data-err="текст ошибки для отображения" // * Для полей с валидацией e-mail доавлять data-eml="yes" // * Для полей в которых до ввода текст, присудствуюет текст-имя поля, добавлять параметр data-pre="Имя поля" // Расставить внутри полей их имена (если используется в полях data-pre) $(element).find('input,textarea').each(function (index, el) { if ($(el).attr('type') == 'hidden') { return true; } // data-pre / placeholder var placeholder = $(el).attr('data-pre'); if (placeholder.length) { var s = $.trim($(el).val()) if (s.length <= 0) { $(el).val(placeholder); }; $(el).attr('placeholder', placeholder); $(el).focusin (function() { var s = $.trim($(el).val()); if (s == placeholder) { $(el).val(""); }; }) .focusout(function() { var s = $.trim($(el).val()); if (s.length <= 0) { $(el).val(placeholder); }; }); } }); // Клик на кнопку отправить $(element).find('.formSubmit').click(function () { if (isSending == true) { return; } var isOk = true; $(element).find('select, input').each(function (i, el) { if ($(el).attr('type') == 'hidden') { return true; } var val = $.trim( $(el).val() ), errMsg = $(el).attr('data-err'), tag = $(el).prop('tagName'), placeholder = $(el).attr('data-pre'); if (typeof errMsg == 'undefined') { errMsg = ''; } if (tag == 'INPUT' && errMsg.length > 0) { if (val.length <= 0 || placeholder == val) { $(el).focus(); alert(errMsg); isOk = false; return false; } else if ($(el).attr('data-eml') == "yes" && !IsEmail(val)) { $(el).focus(); alert(errMsg); isOk = false; return false; } } else if (tag == 'SELECT' && errMsg.length > 0) { if (val.length <= 0 || val == 0) { $(el).focus(); alert(errMsg); isOk = false; return false; } } }); if (!isOk) { return false; } // есть поля неправильно заполненые // инициировать процесс отправки isSending = true; $(element).find('.sendButton').hide(); $(element).find('.loader').show(); // очистить пустые поля $(element).find('input').each(function (index, el) { if ($(el).attr('type') == 'hidden') { return true; } // data-pre / placeholder var placeholder = $(el).attr('data-pre'); if (placeholder.length) { var s = $.trim($(el).val()) if (s == placeholder) { $(el).val(''); } } }); var gotoLink = $(this).attr('data-goto'); // отправить аяксом $.ajax( { type: 'POST', url: 'http://potapovdev.com/api/lp24.php?m=lp24&act=sendform', cache: false, data: $(element).serialize(), dataType: 'json', success: function(data) { if (data.mailer == false) { alert("Ошибка отправки данных :( \nПовторите попытку позже или перезвоните нам."); $(element).find('.loader').hide(); isSending = false; $(element).find('.sendButton').show(); } else { $(element).find('.success').show(); $(element).find('.loader').hide(); isSending = false; if (gotoLink.length) { window.location.href = gotoLink; } } }, error: function(xhr, ajaxOptions, thrownError) { $(element).find('.loader').hide(); isSending = false; $(element).find('.sendButton').show(); alert("Ошибка отправки данных :( \nПовторите попытку позже или перезвоните нам."); } }); }); }); }