1 if (typeof $ == 'undefined') $ = jQuery; 2 3 var validateConstructor = (function ($) { 4 var form = $("#ConstructorForm, #editConstructorForm"), submit = null, 5 method = {}, 6 regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/; 7 8 method.init = function () { 9 if (form.length) { 10 submit = form.find(":submit"); 11 $(":input", form) 12 .not(":hidden") 13 .not(":button") 14 .not(":submit") 15 .not(":checkbox") 16 .not(":radio") 17 .addClass("form-control"); 18 submit.after('<em class="errorConstructor"></em>'); 19 20 $('input[data-type="date"]').each(function () { 21 var date = $(this).val().split(" "); 22 $(this).val(date[0]).datepicker({ 23 startDate: '01-01-1700', 24 format: "dd.mm.yyyy", 25 autoclose: true, 26 language: "ru" 27 }); 28 }); 29 $('input[data-type="date-readonly"]').each(function () { 30 var date = $(this).val().split(" "); 31 $(this).val(date[0]); 32 }); 33 34 form.on("submit", function (e) { 35 method.checkForm(); 36 }); 37 // подÑÑÐµÑ ÑÑÐ¼Ð¼Ñ ÑленÑкого взноÑа 38 return method.summFee(); 39 } 40 return false; 41 }; 42 method.checkEmailChange = function (input) { 43 input.change(function () { 44 var email = input.val(); 45 if (!regex.test(email)) { 46 input.css('background-color', '#FFCCCC'); 47 if (input.prop('required')) { 48 submit.attr("disabled", "disabled"); 49 submit.next("em.errorConstructor").text(" ÐопÑавÑÑе адÑеÑ(а) Ñл. поÑÑÑ! "); 50 } 51 } else { 52 input.css('background-color', ''); 53 submit.removeAttr("disabled"); 54 submit.next("em.errorConstructor").remove(); 55 } 56 }); 57 }; 58 method.checkEmail = function (input) { 59 var email = input.val(); 60 if (!regex.test(email)) { 61 input.css('background-color', '#FFCCCC'); 62 submit.attr("disabled", "disabled"); 63 submit.next("em.errorConstructor").text(" ÐопÑавÑÑе адÑеÑ(а) Ñл. поÑÑÑ! "); 64 } else { 65 input.css('background-color', ''); 66 submit.removeAttr("disabled"); 67 submit.next("em.errorConstructor").remove(); 68 } 69 }; 70 method.checkForm = function () { 71 form.find('input[type="text"],input[type="email"]').each(function () { 72 var input = $(this), str = input.attr("name") || ""; 73 if (str.toLowerCase().indexOf("email") >= 0) { 74 method.checkEmail(input); 75 } 76 }); 77 }; 78 /** 79 * 2026 ÑаÑÑÐµÑ ÑленÑкого взноÑа 80 */ 81 method.summFee = function () { 82 /* 83 ÐаннÑе на 2026 год 84 15000:ÐинималÑÐ½Ð°Ñ ÑÑмма Ð´Ð»Ñ Ð²ÑÐµÑ Ð¾ÑганизаÑий:0 - не лÑгоÑник 85 3000:ÐиблиоÑеки в ÑÐµÐ³Ð¸Ð¾Ð½Ð°Ñ Ð Ð¤, 0-5 ÑоÑÑÑдников:4:0-5 - лÑгоÑник "4" = "ID" клаÑÑиÑикаÑоÑа rbaClassification и Ñ.п. 86 7000:ÐиблиоÑеки в ÑÐµÐ³Ð¸Ð¾Ð½Ð°Ñ Ð Ð¤, 6-15 ÑоÑÑÑдников:4:6-15 - лÑгоÑник 87 15000:ÐиблиоÑеки в ÑÐµÐ³Ð¸Ð¾Ð½Ð°Ñ Ð Ð¤, болÑÑе 15 ÑоÑÑÑдников:4:>15 - не лÑгоÑник 88 3000:ÐÑоÑеÑÑионалÑнÑе вÑÑÑие ÑÑебнÑе заведениÑ, 0-5 ÑоÑÑÑдников:5:0-5 - лÑгоÑник 89 7000:ÐÑоÑеÑÑионалÑнÑе вÑÑÑие ÑÑебнÑе заведениÑ, 6-15 ÑоÑÑÑдников:5:6-15 - лÑгоÑник 90 15000:ÐÑоÑеÑÑионалÑнÑе вÑÑÑие ÑÑебнÑе заведениÑ, болÑÑе 15 ÑоÑÑÑдников:5:>15 - не лÑгоÑник 91 3000:ÐÑоÑеÑÑионалÑнÑе обÑеÑÑвеннÑе обÑединениÑ:1 - лÑгоÑник 92 3000:ÐиблиоÑеки ÑпеÑиалÑнÑÑ Ð²ÐµÐ´Ð¾Ð¼ÑÑв:17 - лÑгоÑник 93 */ 94 var lgotnik = false; 95 var rba_org_classification_selector = $("[name=f_rba_org_classification]:not([readonly])"); 96 var rba_org_classification = rba_org_classification_selector.val(); 97 var rba_org_fin_year_fee = $("input[name='f_rba_org_fin_year_fee']"); 98 var rba_org_fin_oppo = $("input[name='f_rba_org_fin_oppo']"); 99 var rba_org_info_empl_number = $("input[name='f_rba_org_info_empl_number']"), 100 summ = $("input[name='f_rba_org_fin_summ']"), 101 rba_org_sections_rings = $("select[name='f_rba_org_sections_rings[]']"), 102 // ÐобавлÑем поле Ð´Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑÑ Ð³Ð¾Ð»Ð¾Ñов 103 f_poll_voices_add = $("input[name='f_poll_voices_add']"), 104 addSR = 0, data; 105 var ul = $('<ul class="dropdown relative" style="padding: 10px 10px 10px 20px; display: none; float: left; top: 0; z-index: 1; background: #fff; box-shadow: 0 2px 6px rgba(0, 0, 0, 0.17);"></ul>'); 106 var numSR = rba_org_sections_rings.val() || []; 107 var defaultFees = {}; 108 $.get("/services/membershipFee.html", function (d) { 109 data = d.split("\n"); 110 defaultFees = getDefaultFees(data); // полÑÑим знаÑÐµÐ½Ð¸Ñ Ð¿Ð¾ каÑегоÑиÑм 111 rba_org_fin_year_fee.trigger("feeChange"); 112 }); 113 114 // ФÑнкÑÐ¸Ñ Ð´Ð»Ñ Ð¿ÑовеÑки Ð¿Ð¾Ð¿Ð°Ð´Ð°Ð½Ð¸Ñ ÑиÑла в диапазон 115 function isInRange(num, range) { 116 if (!range) return false; 117 118 if (range.startsWith('>')) { 119 var min = parseInt(range.substring(1)); 120 return num > min; 121 } else if (range.includes('-')) { 122 var parts = range.split('-'); 123 var min = parseInt(parts[0]); 124 var max = parseInt(parts[1]); 125 return num >= min && num <= max; 126 } else if (range.includes('+')) { 127 var min = parseInt(range.replace('+', '')); 128 return num >= min; 129 } 130 return 0; 131 } 132 133 // ФÑнкÑÐ¸Ñ Ð´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð¿Ð¾ ÑмолÑÐ°Ð½Ð¸Ñ (0-5 ÑоÑÑÑдников) 134 function getDefaultFees(data) { 135 var fees = {}; 136 if (data) { 137 data.forEach(line => { 138 const parts = line.split(':'); 139 140 const value = parseInt(parts[0], 10); 141 const category = parts[2]; // напÑÐ¸Ð¼ÐµÑ "5" 142 const range = parts[3] || 'default'; // еÑли Ð½ÐµÑ Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½Ð° 143 144 if (!category) return; 145 146 if (!fees[category]) { 147 fees[category] = {}; 148 } 149 150 fees[category][range] = value; 151 }); 152 } 153 return fees; 154 } 155 156 // ФÑнкÑÐ¸Ñ Ð´Ð»Ñ ÑаÑÑеÑа ÑÑоимоÑÑи дополниÑелÑнÑÑ Ð³Ð¾Ð»Ð¾Ñов 157 function calculateAdditionalVoicesCost() { 158 var voicesCount = parseInt(f_poll_voices_add.val()) || 0; 159 return voicesCount * 15000; // ÐаждÑй Ð³Ð¾Ð»Ð¾Ñ ÑÑÐ¾Ð¸Ñ 15 000 ÑÑблей 160 } 161 162 // ФÑнкÑÐ¸Ñ Ð´Ð»Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð²Ð¸Ð´Ð¸Ð¼Ð¾ÑÑи Ð¿Ð¾Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑÑ Ð³Ð¾Ð»Ð¾Ñов 163 function updateAdditionalVoicesVisibility() { 164 var currentFee = parseInt(rba_org_fin_year_fee.val()) || 0; 165 166 // ÐоказÑваем поле ÑолÑко еÑли Ð²Ð·Ð½Ð¾Ñ >= 15000 167 if (currentFee >= 15000) { 168 $('#poll_voices_add_row').show(); 169 } else { 170 $('#poll_voices_add_row').hide(); 171 // СбÑаÑÑваем знаÑение пÑи ÑкÑÑÑии 172 f_poll_voices_add.val(0); 173 } 174 } 175 176 rba_org_classification_selector.on("change", function () { 177 rba_org_classification_selector.trigger("chosen:updated"); 178 return rba_org_fin_year_fee.trigger("feeChange"); 179 }); 180 181 ul.on("click", "a", function (e) { 182 e.preventDefault(); 183 return rba_org_fin_year_fee.val($(this).data("val")).trigger("feeChange"); 184 }); 185 186 187 /* 188 ÐплаÑа ÑекÑий: 189 - Ð´Ð»Ñ Ð²ÑÐµÑ , кÑоме лÑгоÑников: "за каждое ÑÑаÑÑие оÑганизаÑии в более 3-Ñ ÑекÑиÑÑ Ð²Ð·Ð¸Ð¼Ð°ÐµÑÑÑ Ð¿Ð»Ð°Ñа 1000 ÑÑб. за каждÑÑ Ð¿Ð¾ÑледÑÑÑÑÑ" 190 - Ð´Ð»Ñ Ð»ÑгоÑников: "за каждое ÑÑаÑÑие оÑганизаÑии в более 1-ой ÑекÑии взимаеÑÑÑ Ð¿Ð»Ð°Ñа 1000 ÑÑб. за каждÑÑ Ð¿Ð¾ÑледÑÑÑÑÑ" 191 */ 192 rba_org_sections_rings.on("change", function () { 193 numSR = $(this).val() || []; 194 if (numSR.length > 3) { 195 addSR = (numSR.length - 3) * 1000; 196 console.info('ÐÐ»Ñ Ð²ÑÐµÑ , кÑоме лÑгоÑников: за каждое ÑÑаÑÑие оÑганизаÑии в более 3-Ñ ÑекÑиÑÑ Ð²Ð·Ð¸Ð¼Ð°ÐµÑÑÑ Ð¿Ð»Ð°Ñа 1000 ÑÑб. за каждÑÑ Ð¿Ð¾ÑледÑÑÑÑÑ: ',addSR); 197 } 198 if (lgotnik) { 199 if (numSR.length > 1) { 200 addSR = (numSR.length - 1) * 1000; 201 } 202 console.info('ÐÐ»Ñ Ð»ÑгоÑников за каждое ÑÑаÑÑие оÑганизаÑии в более 1-ой ÑекÑии взимаеÑÑÑ Ð¿Ð»Ð°Ñа 1000 ÑÑб. за каждÑÑ Ð¿Ð¾ÑледÑÑÑÑÑ: ',addSR); 203 } 204 $(this).trigger("chosen:updated"); 205 206 return summ.val(parseInt(rba_org_fin_year_fee.val()) + addSR + calculateAdditionalVoicesCost()); 207 }); 208 209 rba_org_info_empl_number.on('change', function () { 210 rba_org_fin_year_fee.trigger("feeChange"); 211 }); 212 213 rba_org_fin_year_fee.on('change', function () { 214 rba_org_fin_year_fee.trigger("feeChange"); 215 }); 216 217 // ÐбÑабоÑÑик Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÐºÐ¾Ð»Ð¸ÑеÑÑва дополниÑелÑнÑÑ Ð³Ð¾Ð»Ð¾Ñов 218 f_poll_voices_add.on('change', function () { 219 var numberPattern = /^\d*$/; 220 if (!$(this).val() || $(this).val() === '') { 221 $(this).val(0); 222 } else { 223 $(this).val($(this).val().match(numberPattern)); 224 } 225 // ÐеÑеÑÑиÑÑваем иÑоговÑÑ ÑÑÐ¼Ð¼Ñ 226 summ.val(parseInt(rba_org_fin_year_fee.val()) + addSR + calculateAdditionalVoicesCost()); 227 }); 228 229 rba_org_fin_year_fee.on("feeChange", function (e) { 230 231 var actualFee = parseInt(rba_org_fin_year_fee.val()) || 0; // Ð¡Ð¾Ñ ÑÐ°Ð½ÐµÐ½Ð½Ð°Ñ Ð² ÐРплаÑа 232 var defaultFee = 15000; // 2026 233 rba_org_classification = rba_org_classification_selector.val(); 234 235 var member_num = parseInt(rba_org_info_empl_number.val()) || 0; 236 var foundFee = null; 237 238 // ÐÑем Ð¿Ð¾Ð´Ñ Ð¾Ð´ÑÑÑÑ ÑÑÐ¼Ð¼Ñ Ð² даннÑÑ 239 if (defaultFees[rba_org_classification] !== 'undefined') { 240 for (let range in defaultFees[rba_org_classification]) { 241 if (isInRange(member_num, range)) { 242 foundFee = defaultFees[rba_org_classification][range]; 243 console.info("СÑеди наÑÑÑоек найдена ÑÑмма " + foundFee + " Ð´Ð»Ñ " + member_num + " ÑоÑÑÑдников, диапазон: " + range); 244 } else if (range === 'default') { 245 foundFee = defaultFees[rba_org_classification]['default']; 246 console.info("СÑеди наÑÑÑоек найдена ÑÑмма по ÑмолÑÐ°Ð½Ð¸Ñ " + foundFee + " Ð´Ð»Ñ " + member_num + " ÑоÑÑÑдников, диапазон: " + range); 247 } 248 if (range === '>15') { 249 lgotnik = false; 250 console.info("РаÑÑÑиÑан Ðе лÑгоÑник"); 251 } 252 253 // ÐÑе Ñ ÐºÐ¾Ð³Ð¾ ÑÑмма менÑÑе 15 Ñ.Ñ. - лÑгоÑники 254 if (foundFee < 15000) { 255 console.info("РаÑÑÑиÑан ÐÑгоÑник"); 256 lgotnik = true; 257 } 258 } 259 } 260 261 if (actualFee !== defaultFee) { 262 console.info(`Ðбновление ÑÑаÑÑÑ Ð´Ð°Ð½Ð½ÑÑ : ÑÐ¾Ñ ÑÐ°Ð½ÐµÐ½Ð½Ð°Ñ Ð² ÐÐ ÑÑмма не одинакова Ñ ÑÑммой по-ÑмолÑаниÑ: ${actualFee} !== ${defaultFee}, ÑÑÑановим ÑнаÑала ${defaultFee}`); 263 rba_org_fin_year_fee.val(defaultFee); 264 } 265 // ÐÑли наÑли Ð¿Ð¾Ð´Ñ Ð¾Ð´ÑÑÑÑ ÑÑммÑ, иÑполÑзÑем ÐµÑ 266 if (foundFee !== null) { 267 console.info(`Ð¡Ð¾Ñ ÑÐ°Ð½ÐµÐ½Ð½Ð°Ñ Ð² ÐÐ ÑÑмма: ${actualFee}, ÑÑмма по-ÑмолÑаниÑ: ${defaultFee}. ÐÑли наÑли Ð¿Ð¾Ð´Ñ Ð¾Ð´ÑÑÑÑ ÑÑммÑ, иÑполÑзÑем еÑ`); 268 if (foundFee) { 269 rba_org_fin_year_fee.val(foundFee); 270 console.info("ÐÑполÑзÑеÑÑÑ Ð½Ð°Ð¹Ð´ÐµÐ½Ð½Ð°Ñ Ð² наÑÑÑÐ¾Ð¹ÐºÐ°Ñ ÑÑмма " + foundFee + " Ð´Ð»Ñ " + member_num + " ÑоÑÑÑдников, а не ÑÑмма по-ÑмолÑÐ°Ð½Ð¸Ñ " + defaultFee); 271 } else { 272 console.info(`ÐÑполÑзÑеÑÑÑ ÑÑмма по-ÑмолÑÐ°Ð½Ð¸Ñ ${defaultFee}; ÑÐ¾Ñ ÑÐ°Ð½ÐµÐ½Ð½Ð°Ñ Ð² ÐÐ ÑÑмма не иÑполÑзÑеÑÑÑ: ${actualFee}`); 273 } 274 } 275 276 // ÐбновлÑем видимоÑÑÑ Ð¿Ð¾Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑÑ Ð³Ð¾Ð»Ð¾Ñов 277 updateAdditionalVoicesVisibility(); 278 279 ul.hide(); 280 281 rba_org_sections_rings.change(); // пеÑеÑÑиÑаем оплаÑÑ Ð·Ð° ÑекÑии 282 console.info(`ÐÑÐ¾Ð³Ð¾Ð²Ð°Ñ ÑÑмма ${parseInt(rba_org_fin_year_fee.val())} + ${parseInt(rba_org_fin_oppo.val())} + ${addSR} + ${calculateAdditionalVoicesCost()}`); 283 return summ.val(parseInt(rba_org_fin_year_fee.val()) + parseInt(rba_org_fin_oppo.val()) + addSR + calculateAdditionalVoicesCost()); 284 }); 285 286 rba_org_fin_oppo.off("change").on("keyup change", function () { 287 return summ.val((parseInt(rba_org_fin_oppo.val
287()) + parseInt(rba_org_fin_year_fee.val()) + addSR + calculateAdditionalVoicesCost())); 288 }); 289 290 $("#f_rba_org_fin_oppo, #f_rba_org_info_empl_number, #f_rba_org_fin_summ, #f_rba_org_fin_year_fee").on("keyup change", function () { 291 var numberPattern = /^\d*$/; 292 if (!$(this).val() || $(this).val() === '' || !parseInt($(this).val())) 293 return $(this).val(0); 294 else 295 return $(this).val($(this).val().match(numberPattern)); 296 }); 297 298 // ÐниÑиализаÑÐ¸Ñ Ð²Ð¸Ð´Ð¸Ð¼Ð¾ÑÑи Ð¿Ð¾Ð»Ñ Ð¿Ñи загÑÑзке 299 updateAdditionalVoicesVisibility(); 300 return summ.val(parseInt(rba_org_fin_year_fee.val()) + addSR + calculateAdditionalVoicesCost()); 301 }; 302 303 return method; 304 }(jQuery)); 305 306 /** 307 * валидаÑÐ¸Ñ Ð¸ пÑ. 308 */ 309 jQuery(function ($) { 310 validateConstructor.init(); 311 }); 312 313 314 315
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.