1hjq(function(){ 2 if(hjq('.new_select_mark').length) 3 var res = oxInitForm('form.ox_form.ox_auto_standard_b'); 4 else 5 var res = oxInitForm('form.ox_form.ox_auto_standard'); 6 //////////////////// 7 8 var mode = ox_form_data.mode ? ox_form_data.mode : 'single'; 9 var compl = res.form.find('select[name="complectation"]'); 10 if(hjq('.new-form').length) 11 var picture = res.form.find('.new-form__img.picture'); 12 else 13 var picture = res.form.find('.info img.picture'); 14 var colors = res.form.find('.info ul.colors'); 15 16 if (mode == 'single'){ 17 var selected = ' selected '; 18 ox_form_data.complectations.forEach(function(item){ 19 compl.append('<option value="' + item.name + '"' + selected + '>' + item.name + '</option>'); 20 selected = ''; 21 }); 22 23 var mark = res.form.find('input[name="mark"]'); 24 mark.addClass('res').val(ox_form_data.mark); 25 mark.siblings('span').text(ox_form_data.mark).css('display', 'block'); 26 27 var model = res.form.find('input[name="model"]'); 28 model.addClass('res').val(ox_form_data.model); 29 model.siblings('span').text(ox_form_data.model).css('display', 'block'); 30 31 picture.attr('src', ox_form_data.image).attr('alt', ox_form_data.image_alt ? ox_form_data.image_alt : ''); 32 33 hjq('.ox_form_trigger').click(function(event){ 34 compl.find('option').eq(this.dataset.index).prop('selected', true); 35 setCompl(); 36 37 var is_cash = this.dataset.buy_type == 'cash'; 38 cb_cash.prop('checked', is_cash); 39 cb_credit.prop('checked', !is_cash); 40 cb_cash.closest('.radio_buttons').find('label').removeClass('active'); 41 if (is_cash){ 42 cb_cash.closest('label').addClass('active'); 43 res.blocks.credit.oxHide(true); 44 } 45 else{ 46 cb_credit.closest('label').addClass('active'); 47 res.blocks.credit.oxShow(); 48 } 49 50 hjq('html, body').animate( 51 { scrollTop: res.form.offset().top }, 500); 52 53 return false; 54 }); 55 56 compl.change(setCompl); 57 58 function setCompl(){ 59 var cur_comp = ox_form_data.complectations[compl.prop('selectedIndex')]; 60 if (cur_comp.image) 61 picture.attr('src', cur_comp.image).attr('alt', cur_comp.image_alt ? cur_comp.image_alt : ''); 62 updateSlider(cur_comp.price); 63 } 64 setCompl(); 65 } 66 else if (mode == 'select'){ 67 var mark = res.form.find('select[name="mark"]'); 68 mark.addClass('res').addClass('req').css('display', 'block'); 69 70 var model = res.form.find('select[name="model"]'); 71 model.addClass('res').addClass('req').css('display', 'block'); 72 73 mark.change(setMark); 74 75 var selected = ''; 76 hjq.each(ox_form_data.cars, function(index, item){ 77 mark.append('<option value="' + index + '"' + selected + '>' + index + '</option>'); 78 selected = ''; 79 80 }); 81 if(hjq('.new_select_mark').length){ 82 hjq('.new_select_mark').find('option')[0].innerHTML = "ÐÑбеÑиÑе маÑÐºÑ Ð°Ð²ÑомобилÑ"; 83 } 84 85 function setMark(){ 86 model.children().remove(); 87 if(hjq('.new_select_mark').length){ 88 if(hjq('.new_select_mark').val() == 'ÐÑбеÑиÑе маÑÐºÑ Ð°Ð²ÑомобилÑ') 89 model.append('<option selected>ÐÑбеÑиÑе моделÑ</option>'); 90 if(document.body.clientWidth < 992){ 91 hjq('.new_select_mark').change(function(){ 92 if(hjq('.swipe_next_part').length){ 93 if(hjq('.new_select_mark').val() !== 'ÐÑбеÑиÑе маÑÐºÑ Ð°Ð²ÑомобилÑ') { 94 hjq('.swipe_next_part').prop("disabled", false); 95 } 96 } 97 }) 98 99 } 100 } 101 selected = ' selected '; 102 hjq.each(ox_form_data.cars[mark.val()], function(index, item){ 103 model.append('<option value="' + index + '"' + selected + '>' + index + '</option>'); 104 selected = ''; 105 }); 106 setModel(); 107 } 108 109 model.change(setModel); 110 111 function setModel(){ 112 compl.children().remove(); 113 if(hjq('.new_select_mark').val() == 'ÐÑбеÑиÑе маÑÐºÑ Ð°Ð²ÑомобилÑ') 114 compl.append('<option selected>ÐÑбеÑиÑе комплекÑаÑиÑ</option>'); 115 selected = ''; 116 hjq.each(ox_form_data.cars[mark.val()][model.val()], function(index, item){ 117 compl.append('<option value="' + item.name + '"' + selected + '>' + item.name + '</option>'); 118 selected = ''; 119 }); 120 121 setCompl(); 122 } 123 124 compl.change(setCompl); 125 126 function setCompl(){ 127 var cur = ox_form_data.cars[mark.val()][model.val()][compl.prop('selectedIndex')]; 128 if (cur.image) 129 picture.attr('src', cur.image).attr('alt', cur.image_alt ? cur.image_alt : ''); 130 updateSlider(cur.price); 131 132 } 133 134 setMark(); 135 } 136 else if (mode == 'select_ajax'){ 137 if (!ox_form_data.cars) 138 ox_form_data.cars = []; 139 if (!ox_form_data.init) 140 ox_form_data.init = {}; 141 var initMark = !ox_form_data.init.mark; 142 var initModel = !ox_form_data.init.model; 143 var initCompl = !ox_form_data.init.complectation; 144 145 var mark = res.form.find('select[name="mark"]'); 146 mark.addClass('res').addClass('req').css('display', 'block'); 147 148 var model = res.form.find('select[name="model"]'); 149 model.addClass('res').addClass('req').css('display', 'block'); 150 151 function init(arr, select, id){ 152 var index = 0; 153 var result = false;
154 arr.forEach(function(item){ 155 if (item.id == id){ 156 select.prop('selectedIndex', index) 157 result = item; 158 } 159 index++; 160 }); 161 return result; 162 } 163 164 function getEl(arr, select){ 165 if (!initMark && select == mark){ 166 initMark = true; 167 return init(arr, select, ox_form_data.init.mark); 168 } 169 if (!initModel && select == model){ 170 initModel = true; 171 return init(arr, select, ox_form_data.init.model); 172 } 173 if (!initCompl && select == compl){ 174 initCompl = true; 175 return init(arr, select, ox_form_data.init.complectation); 176 } 177 var index = select.prop('selectedIndex'); 178 if (index >= 0) 179 return arr[index]; 180 return false; 181 } 182 183 function selectChain(markId, modelId, complId){ 184 initMark = false; 185 ox_form_data.init.mark = markId; 186 initModel = false; 187 ox_form_data.init.model = modelId; 188 initCompl = false; 189 ox_form_data.init.complectation = complId; 190 setMark(); 191 } 192 193 function ajax(query, select, arr){ 194 if (arr.length){ 195 select.children().remove(); 196 arr.forEach(function(item){ select.append('<option>' + item.name + '</option>'); }); 197 select.change(); 198 } 199 else{ 200 hjq.ajax({ 201 method: 'GET', 202 url: ox_form_data.ajax_url, 203 data: query, 204 dataType: 'json', 205 success: function(data){ 206 select.children().remove(); 207 data.forEach(function(item){ 208 arr.push(item); 209 select.append('<option>' + item.name + '</option>'); 210 }); 211 select.change(); 212 } 213 }); 214 } 215 } 216 217 function setMark(){ 218 var markEl = getEl(ox_form_data.cars, mark); 219 ajax({act: 'get_models', mark: markEl.id}, model, markEl.models); 220 } 221 222 mark.change(setMark); 223 224 function setModel(){ 225 var markEl = getEl(ox_form_data.cars, mark); 226 var modelEl = getEl(markEl.models, model); 227 if (modelEl.colors.length){ 228 colors.children().remove(); 229 modelEl.colors.forEach(function(item){ 230 var el = hjq('<li style="background: #' + item.hex + ';" title="' + item.name + '" data-src="' + item.src + '"></li>'); 231 el.click(function(){ picture.attr('src', this.dataset.src); }); 232 colors.append(el); 233 }); 234 picture.attr('src', modelEl.colors[0].src); 235 picture.fadeIn(); 236 colors.fadeIn(); 237 } 238 else{ 239 colors.fadeOut(); 240 if (modelEl.image){ 241 picture.attr('src', modelEl.image); 242 picture.fadeIn(); 243 } 244 else 245 picture.fadeOut(); 246 } 247 ajax({act: 'get_complectations', mark: markEl.id, model: modelEl.id}, compl, modelEl.complectations); 248 } 249 250 model.change(setModel); 251 252 compl.change(function(){ 253 var markEl = getEl(ox_form_data.cars, mark); 254 var modelEl = getEl(markEl.models, model); 255 var complEl = getEl(modelEl.complectations, compl); 256 updateSlider(complEl.price); 257 }); 258 259 hjq('.ox_form_trigger').click(function(event){ 260 selectChain(this.dataset.mark, this.dataset.model, this.dataset.complectation); 261 262 var is_cash = this.dataset.buy_type == 'cash'; 263 cb_cash.prop('checked', is_cash); 264 cb_credit.prop('checked', !is_cash); 265 cb_cash.closest('.radio_buttons').find('label').removeClass('active'); 266 if (is_cash){ 267 cb_cash.closest('label').addClass('active'); 268 res.blocks.credit.oxHide(true); 269 } 270 else{ 271 cb_credit.closest('label').addClass('active'); 272 res.blocks.credit.oxShow(); 273 } 274 275 hjq('html, body').animate( 276 { scrollTop: res.form.offset().top }, 500); 277 278 return false; 279 }); 280 281 if (!ox_form_data.cars.length) 282 ajax({act: 'get_marks'}, mark, ox_form_data.cars); 283 } 284 285 //////////////////// 286 287 var cb_cash = res.form.find('input[name="buy_type"][value="cash"]').first(); 288 var cb_credit = res.form.find('input[name="buy_type"][value="credit"]').first(); 289 290 if (cb_credit.prop('checked')) 291 res.blocks.credit.oxShow(); 292 293 function updateSlider(price){ 294 var format_price = price.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1 '); 295 var cprice = Math.round(price * 0.10); 296 297 res.form.find('input[name="price"]').val(price); 298 res.form.find('.info span.price').text(format_price); 299 300 var div = res.form.find('input[name="initial_payment"]').closest('.slider_cont'); 301 div.data('max', price); 302 div.find('.slider_input').val(cprice.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1 ')); 303 div.find('.right').text(format_price + ' ÑÑб'); 304 305 var sc = div.find('div.slider'); 306 //sc.slider('option', 'max', price); 307 //sc.slider('value', cprice); 308 sc.slider('option', { value: cprice, max: price }); 309 div.find('input.res').val(cprice); 310 } 311 312 //////////////////// 313 314 res.form.find('input[name="buy_type"]').change(function(){ 315 if (cb_cash.prop('checked')) 316 res.blocks.credit.oxHide(true); 317 else 318 res.blocks.credit.oxShow(); 319 }); 320 321 var tradein_inp = res.form.find('input[name="trade_in"]'); 322 var util_inp = res.form.find('input[name="util"]'); 323 324 if (tradein_inp.prop('checked')){ 325 res.blocks.tradein.setState(true, true); 326 util_inp.prop('checked', false); 327 res.blocks.util.setState(false, true); 328 } 329 else if (util_inp.prop('checked')){ 330 res.blocks.util.setState(true, true); 331 tradein_inp.prop('checked', false) 332 res.blocks.tradein.setState(false, true); 333 } 334 335 res.form.find('input[name="trade_in"]').change(function(){ 336 util_inp.prop('checked', false); 337 res.blocks.util.setState(false, true); 338 res.blocks.tradein.setState(this.checked, true); 339 }); 340 341 res.form.find('input[name="util"]').change(function(){ 342 tradein_inp.prop('checked', false); 343 res.blocks.tradein.setState(false, true); 344 res.blocks.util.setState(this.checked, true); 345 }); 346 347 var util_old_car = res.form.find('select[name="util_old_car"]'); 348 util_old_car.change(setUtilComp); 349 function setUtilComp(){ 350 var comp = util_old_car.find('option').eq(util_old_car[0].selectedIndex).data('comp'); 351 res.form.find('input[name="util_compensation"]').val(comp); 352 res.form.find('#util_compensation').text(comp.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1 ') + ' ÑÑб.'); 353 } 354 setUtilComp(); 355 356 res.form.find('#gos_programm_text span').hide(); 357 var gpv = res.form.find('input[name="gos_programm"]:checked'); 358 if (gpv.length && gpv.val()) 359 res.form.find('#gos_programm_text span#' + gpv.val()).show(); 360 361 res.form.find('input[name="gos_programm"]').change(function(){ 362 res.form.find('#gos_programm_text span').hide(); 363 if (this.value) 364 res.form.find('#gos_programm_text span#' + this.value).show(); 365 }); 366 367 res.form.submit(function(){ 368 if (!res.blocks.personal.oxIsShow()){ 369 res.blocks.base.oxHide(false); 370 res.blocks.personal.oxShow(); 371 res.button.val('ÐÑпÑавиÑÑ'); 372 } 373 else 374 res.sendForm(); 375 return false;
376 }); 377 378 res.form.slideDown(); 379});
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.