var body; alertify.set('notifier','position', 'top-right'); (function ($) { $(document).ready(function () { 'use strict'; $(document).ajaxStart($.blockUI).ajaxStop($.unblockUI); body = $('body'); body.on('submit', 'form.form-ajax', function(){ var data; var error = false; var form = $(this); var yaCounterID = form.data("yacounter"); //console.log(">> yaCounter = " + form.data("yacounter")); var formHidden = $('.form-content', form); var message = $('.form-message', form); if(message.length == 0){ var message = $('.form-message', form.parent()); } $('.required', form).removeClass('form-error'); $('.required', form).each(function(){ if($(this).val() == '') { error = true; $(this).addClass('form-error'); } }); if( form.hasClass("calc-report-form") ){ var inputsWrap = $(".calc-report-form .hidden-inputs"); inputsWrap.html(''); $('.calc-report-form__input-summ').val($('.s-calc-result-bottom').html() + ' сом.'); $('.s-calc-count input').each(function() { if ( $(this).val() != 0) { inputsWrap.append('' ); } }); } if($('.formCalc') != undefined) { var formCalc = $('.formCalc').serializeArray(); var ajaxForm = form.serializeArray(); data = formCalc.concat(ajaxForm); } else { data = form.serializeArray(); }; if(!error){ $.ajax({ url: '/ajax/form', data: data, success: function(data){ console.log(data) if(data.success){ $('input:not(:submit)', form).val(''); $('textarea', form).val(''); if (yaCounterID) yaCounter34056770.reachGoal(yaCounterID); //formHidden.hide(); //message.css('color', '#323232'); //message.html(data.msg); if( form.hasClass("calc-report-form") ) { form.find(':submit').attr("disabled", "disabled"); }; alertify.success(data.msg); $.fancybox.close(); } else { //message.css('color', '#ff0000'); //message.html(data.error); alertify.error(data.error); } }, type: "POST", dataType: "json" }); } else { //message.css('color', '#ff0000'); //message.html('Заполните обязательные поля'); alertify.error('Заполните обязательные поля'); } return false; }); body.on('submit', '.validate-form', function(){ var form = $(this); var requiredError = false; $('.form-error', form).removeClass('form-error'); $('.required', form).each(function(){ var type = $(this).attr('type'); if(type == 'text' && $(this).val() == '') { requiredError = true; $(this).addClass('form-error'); } if((type == 'radio' || type == 'checkbox') && !$(this).prop('checked')) { requiredError = true; $(this).addClass('form-error'); } }); if(!requiredError) { return true; } else { $(".form-error", form).first().focus(); alertify.error('Заполните все обязательные поля'); } return false; }); body.on('click', '.goSubmit', function(){ $(this).closest('form').submit(); }); body.on('change', '.reloadByValue', function(){ window.location.replace($(this).val()); return false; }); body.on('submit', '.sendResponse', function(){ var $this = $(this); $.post('/ajax/response/', $this.serializeArray(), function(data) { if(data.success){ $this.closest('form').remove(); alertify.success('Ваш отзыв скоро появится!'); } else { alertify.error('Ошибка'); } }, 'json'); return false; }); body.on('submit', '.sendResponse2', function(){ var $this = $(this); $.post('/ajax/response2/', $this.serializeArray(), function(data) { if(data.success){ $this.closest('form').remove(); alertify.success('Ваш отзыв скоро появится!'); } else { alertify.error('Ошибка'); } }, 'json'); return false; }); body.on('submit', '.formCalc', function(){ var form = $(this); var resultPrice = 0; $('input:not(.calcSum--input)', form).each(function (e) { var go = true; if($(this).attr("type") == "radio" || $(this).attr("type") == "checkbox") { if(!$(this).prop("checked")) { go = false; } } else { if($(this).val() == "" && $(this).data('price') != undefined) { go = false; } } if(go) { var price = parseInt($(this).data('price')); if($(this).data('multiply') != undefined && $(this).data('multiply')) { price = price*parseInt($(this).val()); } resultPrice = resultPrice+price; } }); $('select', form).each(function (e) { var option = $(this).find("option:selected"); if(option.size() > 0 && option.data('price') != undefined){ var price = parseInt(option.data('price')); if(option.data('multiply') != undefined && option.data('multiply')) { if($(this).val() != "") price = price*parseInt($(this).val()); } resultPrice = resultPrice+price; } }); resultPrice = resultPrice*parseInt($('.square_all').val()); // $('.calcSumBlock').show(); $('.b-form-calculator__price').text(resultPrice); $('.calcSum--input').val(resultPrice); return false; }); var repairTypeSelected = false; $('.formCalc .repair-type input').on('change', function() { if($('.formCalc .square_all').val() != "") { $('.formCalc').submit(); } repairTypeSelected = true; }); $('.formCalc .square_all').on('keydown keyup', function (e) { // Allow: backspace, delete, tab, escape, enter and . if ($.inArray(e.keyCode, [46, 8, 9, 27, 13, 110, 190]) !== -1 || (e.keyCode === 65 && (e.ctrlKey === true || e.metaKey === true)) || (e.keyCode >= 35 && e.keyCode <= 40)) { return; } if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) { e.preventDefault(); } if(repairTypeSelected && e.type === "keyup") { $('.formCalc').submit(); } }); // Подгрузка информации после загрузки страницы (для SEO) $(".ajax_loading_block").each(function(indx, element){ if ($(element).data('filename')) { $.ajax({ type: "POST", url: "/sitefiles/include/" + $(element).data('filename') + ".php", data: "", success: function(data) { $(element).html(data); } }); } }); // END Подгрузка информации после загрузки страницы }); })(jQuery); function number_format( number, decimals, dec_point, thousands_sep ) { var i, j, kw, kd, km; if( isNaN(decimals = Math.abs(decimals)) ){ decimals = 2; } if( dec_point == undefined ){ dec_point = ","; } if( thousands_sep == undefined ){ thousands_sep = "."; } i = parseInt(number = (+number || 0).toFixed(decimals)) + ""; if( (j = i.length) > 3 ){ j = j % 3; } else{ j = 0; } km = (j ? i.substr(0, j) + thousands_sep : ""); kw = i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + thousands_sep); kd = (decimals ? dec_point + Math.abs(number - i).toFixed(decimals).replace(/-/, 0).slice(2) : ""); return km + kw + kd; }