var config = new Array(); var ready = true; $(document).ready(function() { for (key in config) { if (key == '') continue; $("form[rel='" + key + "']").submit(function() { fsubmit(key); return false; }); } }); function fsubmit(key, requesttype) { $('input:checkbox').each(function() { if ($(this).is(":checked")) {} else { $(this).val(""); } }); $("form[@name='" + key + "'] *").css('background', ''); $("div.workzone").each(function() { $(this).find('textarea').attr('value', $(this).find('iframe').contents().find('body').html()); }); eval('validate_showErrorMethod=validate_' + key + '_showErrorMethod;'); if (validate_showErrorMethod.indexOf("#") != -1) { $(validate_showErrorMethod + ">*").remove("*"); $(validate_showErrorMethod).html(''); $(validate_showErrorMethod).css('display', ''); } var res = new Array(0); res = checkForm(key); for (element in res) { if (element.length > 0) { var tttt = 11; displayErrors(res, key); break; } } if (tttt != 11) { eval('validate_sendMethod=validate_' + key + '_sendMethod;'); if (requesttype == "post") { $("form[name='" + key + "']").submit(); } else { if (validate_sendMethod == 'ajax') { post(key); } else { $("form[name='" + key + "']").submit(); } } } } function post(fName) { if (ready) { $('input:checkbox').each(function() { if ($(this).is(":checked")) {} else { $(this).val(""); } }); $('.button').each(function() { $(this).remove(); }); $('.workzone').each(function() { $(this).find('textarea').val($(this).find('iframe').contents().find('body').html()); }); var b = $("form[@name='" + fName + "'] input,form[@name='" + fName + "'] textarea,form[@name='" + fName + "'] select"); var newstr = ""; b.each(function() { if ($(this).val() == "") { $(this).val(""); } newstr += this.name + '=' + $(this).val() + '&'; }); newstr += 'ajax=true'; newstr += '&formName=' + fName; $('.header_vcard_box').each( function() { if($(this).css('display') != 'none') { newstr += '&to=' + $(this).find('a').text(); } }); $.ajax({ type: "POST", url: 'https://nikosprom.ru/libs/send.php', //$("form[name='" + fName + "']").attr('action'), data: newstr, success: function(msg) { $('#col').html('Ваше сообщение отправлено!'); console.log(msg); } }); $("#preloader").show(); $("#loadbutton").hide(); } else { eval('validate_showErrorMethod=validate_' + fName + '_showErrorMethod;'); if (validate_showErrorMethod.indexOf("#") != -1) { $("

Ваша заявка уже была получена!

Наш менеджер скоро с Вами свяжется!

").appendTo(validate_showErrorMethod); } else { alert("Слишком частое отправление запроса,подождите,пожалуйста"); } } } function readyFalse() { ready = true; } function displayErrors(array, formName) { eval('validate_highlight=validate_' + formName + '_highlight;'); eval('validate_showErrorMethod=validate_' + formName + '_showErrorMethod;'); if (validate_highlight) { highlight(array, formName); } if (validate_showErrorMethod == "alert") { alertError(array); } if (validate_showErrorMethod.indexOf("#") != -1) { showErrorInDiv(array, validate_showErrorMethod); } } function highlight(array, formName) { for (field in array) { for (error in array[field]) { $("form[@name='" + formName + "'] *[name='" + field + "']").css('background', '#FFFCC6 '); } } } function alertError(array) { var string = ""; out: for (field in array) { for (error in array[field]) { var newError = getError(error, array[field]['caption'], array[field][error]); string += newError + "\n"; continue out; } } alert(string); } function showErrorInDiv(array, id) { var string = ""; out: for (field in array) { for (error in array[field]) { var newError = getError(error, array[field]['caption'], array[field][error]); $('#' + field + '-error').html(newError); $('#' + field + '-error').slideDown(500); continue out; } } $(id).append(string); } function getError($errorType, $fieldName, $value) { switch ($errorType) { case "maxlength": $string = "У поля «" + $fieldName + "» превышена максимальная длина - " + $value; break; case "minlength": $string = "Поле «" + $fieldName + "» - недостаточно символов"; break; case "email": $string = "Поле «" + $fieldName + "» заполнено неверно"; break; case "noempty": $string = "Поле «" + $fieldName + "» обязательно для заполнения"; break; case "nonumber": $string = "Поле «" + $fieldName + "» не должно содержать цифры"; break; case "numberonly": $string = "Поле «" + $fieldName + "» должно содержать только цифры"; break; case "eng": $string = "Поле «" + $fieldName + "» может содержать только латинские символы"; break; case "captcha": $string = "В поле «" + $fieldName + "» введен неверный код"; break; default: $string = "Ошибка"; } return $string; } function checkForm(formName) { var res; var error = new Array(0); var newArr = config[formName]; field = '1'; for (elem in newArr) { res = checkField(elem, newArr[elem], formName); field = elem; for (what in res) { if (what.length > 0) { error[elem] = new Array(); error[elem] = res; field = ''; error[elem]['caption'] = newArr[elem]['caption']; } else { delete error[elem]; field = ''; } } if (field !== '' && field !== 1) $('#' + elem + '-error').slideUp(500); } return error; } function checkField(field, value, formName) { if (field != 'date' && field != 'action' && field != 'parent') { var error2 = new Array(0); var res; var newArr = value; for (var handler in newArr) { if (handler != 'caption') { functionName = "check_" + handler; res = eval(functionName + "('" + field + "','" + newArr[handler] + "','" + formName + "')"); if (!res) { error2[handler] = newArr[handler]; } else { delete error2[handler]; } } } return error2; } } /*Обработчики*/ function check_maxlength(field, value, formName) { try { var string = $("#" + field + "").val(); } catch (e) { var string = $("#" + field + "").html(); } if (string.length > parseInt(value)) { return false; } return true; } function check_captcha(field, value, formName) { return true; } /*Min-lenght validation*/ function check_minlength(field, value, formName) { try { var string = $("#" + field + "").val(); } catch (e) { var string = $("#" + field + "").html(); } if (string.length < parseInt(value)) { return false; } return true; } /*Only numbers validation*/ function check_numberonly(field, value, formName) { try { var string = $("#" + field + "").val(); } catch (e) { var string = $("#" + field + "").html(); } var reg = new RegExp("[^0-9]+", 'i'); var result = reg.test(string); if (result) { return false; } return true; } /*No numbers validation*/ function check_nonumber(field, value, formName) { try { var string = $("#" + field + "").val(); } catch (e) { var string = $("#" + field + "").html(); } var reg = new RegExp("[0-9]", 'i'); var result = reg.test(string); if (result) { return false; } return true; } /*Only numbers and ENG symbols validation*/ function check_eng(field, value, formName) { try { var string = $("#" + field + "").val(); } catch (e) { var string = $("#" + field + "").html(); } var reg = new RegExp("[^A-Za-z0-9_\s]+", 'i'); var result = reg.test(string); if (result) { return false; } return true; } /*Only numbers and symbols validation*/ function check_numberandsimbols(field, value, formName) { try { var string = $("#" + field + "").val(); } catch (e) { var string = $("#" + field + "").html(); } var reg = new RegExp("[^0-9-_+@\s]", 'i'); var result = reg.test(string); if (!result) { return false; } return true; } /*E-mail validation*/ function check_email(field, value, formName) { try { var string = $("#" + field + "").val(); } catch (e) { var string = $("#" + field + "").html(); } return string.replace(/^\s+|\s+$/g, "") == '' || string.match(/^[\w\.\-]+@[\w\.\-]+\.[a-zA-Z]{2,}$/i) ? true : false; } /*No empty validation*/ function check_noempty(field, value, formName) { try { var string = $("#" + field + "").val(); } catch (e) { var string = $("#" + field + "").html(); } if (string.length < 1) { return false; } return true; } /*checkbox validation*/ function check_checkbox(field, value, formName) { var string = $("#" + field + "").attr('checked'); if (!string) { return false; } return true; }