function create_elem(n) { var list_elem = document.createElement('li'); list_elem.innerHTML = ' '; list_elem.innerHTML += ''; return list_elem; } function show_ajax_loading(elem) { if (!$(".js_loading_popup").length) { console.log('popup not found'); return false; } var popup = $(".js_loading_popup"); var elem_coords = elem.offset(); var ajax_loading_params = { top: elem_coords.top + 'px', left: elem_coords.left + 'px', width: elem.get(0).offsetWidth + 'px', height: elem.get(0).offsetHeight + 'px', display: 'block' }; popup.css(ajax_loading_params); } function hide_ajax_loading() { if ($(".js_loading_popup").length) $(".js_loading_popup").hide(); } function promtDialog(ob) { $("#request_dialog_vin_confirm").dialog({ autoOpen: false, modal: true, width: '450px', buttons: { "Ввести VIN": function () { $(this).dialog("close"); $("#vin").focus(); }, "Оставить пустым": function () { $(this).dialog("close"); /* setTimeout(function () { show_ajax_loading($(".ui-dialog")) }, 500); request_dialog_submit(); */ } } }); if(ob.val() == 1 && $("#vin").val() == '') { $("#request_dialog_vin_confirm").dialog('open'); } } function get_name_select() { var sel = $("#avto_param select"); var res = []; for(var i = 0; i < sel.length; i++) { res.push(sel[i].name); } return res; } function reset_params(start, fields_order) { for (var k = start + 1; k < fields_order.length; k++) { $("select[name='" + fields_order[k] + "'] option:first").attr('selected', 'selected'); $("select[name='" + fields_order[k] + "']") .attr('disabled', 'disabled') .removeAttr('style'); } $("select[name='" + fields_order[start + 1] + "']") .removeAttr('disabled') .css({color : '#000'}) .addClass('current'); } $(document).ready(function() { var flag = 0; $(".switch").click(function() { if(flag == 0) { $(".fog").css("display","none"); $(".text").css({overflow:'visible', height:'auto'}); $(this).html('Свернуть'); flag = 1; } else { $(".fog").css("display","block"); $(".text").css({overflow:'hidden', height:'62px'}); $(this).html('Развернуть'); flag = 0; } }); $(".add_part").click(function() { var count = $('#parts_param li').length; var el = create_elem(count + 1); $('#parts_param').append(el); return false; }); $(".status").change(function() { promtDialog($(this)); }); var fields_order = get_name_select(); var skip_fields = ['year']; var parent_block = $("#avto_param"); for (var i in fields_order) { parent_block.on('change', 'select[name="' + fields_order[i] + '"]', function () { var name = $(this).attr('name'); var ind = fields_order.indexOf(name); var params = {}; $('select', parent_block).removeClass('current'); // if element must be skipped, just unlock next if (skip_fields.indexOf(name) > -1) { reset_params(ind, fields_order); } else if ($(this).val() == 0) { reset_params(ind - 1, fields_order); } else { for (var k = 0; k <= ind; k++) { params[fields_order[k]] = $('select[name="' + fields_order[k] + '"]').val(); } if (typeof fields_order[ind + 1] != 'undefined') { show_ajax_loading($("#avto_param")); $.get( '/library/cms2/auto_base.php', { do: fields_order[ind + 1], build_html:1, params: params }, function (data) { var select = $('select[name="' + fields_order[ind + 1] + '"]'); $('option:not(:first-child)', select).remove(); if (typeof data.data != 'undefined') { for (var j in data.data) { $(select).append(data.data[j]); } } hide_ajax_loading(); //$(".ajax_loading_comment").show(); reset_params(ind, fields_order); if (data.data.length == 1) { $("option:last", select).attr('selected', 'selected'); select.trigger('change'); } }, 'json' ); } } }); } $.widget("custom.catcomplete", $.ui.autocomplete, { _renderMenu: function (ul, items) { var that = this, currentCategory = ""; $.each(items, function (index, item) { if (item.category != currentCategory) { ul.append("
  • " + item.category + ":
  • "); currentCategory = item.category; } that._renderItemData(ul, item); }); } }); $("#parts_param li input[type='text']").catcomplete({ delay: 100, source: function (request, response) { $.ajax({ url: "/searchRubric.php", dataType: "json", data: { search_query: request.term }, success: function (data) { response(data.data); } }); }, minLength: 3, open: function () { $(this).removeClass("ui-corner-all").addClass("ui-corner-top"); }, close: function () { $(this).removeClass("ui-corner-top").addClass("ui-corner-all"); } }); });