jQuery(document).ready(function($) { $("#district-map-select").click(function(){ $("#district-map-select").hide(); $("#districtsList input[type=checkbox]").each(function(){ var id = $(this).attr("data-id"); $(this).removeClass("active"); $(this).prop("checked", false); $("#"+id, svgdom).myRemoveClass("active"); }); var selected = $(".ms-district").val(); if (selected && selected.length > 0) { var svgobject = document.getElementById('Layer_1'); if ('contentDocument' in svgobject) { var svgdom = svgobject.contentDocument; } for (var i = 0; i < selected.length; i++) { $("#districtsList input[value='" + selected[i] + "']").each(function () { var id = $(this).attr("data-id"); $(this).addClass("active"); $(this).prop("checked", true); $("#"+id, svgdom).myAddClass("active"); }); } } $("#raion__map").show(); $(".raion-popup").show(); $("body").addClass("lock"); $("body").animate({ scrollTop: 200}, 500 ); return false; }); $("#raion-closer, .raion").click(function() { var selected = []; $("#districtsList input[type=checkbox].active").each(function(){ selected.push($(this).attr('value')); }); $(".ms-district").val(selected); $(".ms-district").multiselect("reload"); $('#district-map-select').show(); $("#raion__map").hide(); $(".raion-popup").hide(); $("body").removeClass("lock"); $("body").animate({ scrollTop: 550}, 500 ); }); }); jQuery.fn.myAddClass = function (classTitle) { return this.each(function() { var oldClass = jQuery(this).attr("class"); oldClass = oldClass ? oldClass : ''; jQuery(this).attr("class", (oldClass+" "+classTitle).trim()); }); }; jQuery.fn.myRemoveClass = function (classTitle) { return this.each(function() { var oldClassString = ' '+jQuery(this).attr("class")+' '; var newClassString = oldClassString.replace(new RegExp(' '+classTitle+' ','g'), ' ').trim(); if (!newClassString) jQuery(this).removeAttr("class"); else jQuery(this).attr("class", newClassString); }); }; jQuery.fn.hasAttr = function(name) { return this.attr(name) !== undefined; }; $(window).load(function () { var svgobject = document.getElementById('Layer_1'); if ('contentDocument' in svgobject) { var svgdom = svgobject.contentDocument; } $("#districtsList input[type=checkbox].active").each(function(){ var id = $(this).attr("data-id"); $("#"+id, svgdom).myAddClass("active"); }); $("#districtsList input[type=checkbox]").change(function() { var id = $(this).attr("data-id"); if (this.checked) { $(this).addClass("active"); $("#"+id, svgdom).myAddClass("active"); } else { $("#"+id, svgdom).myRemoveClass("active"); $(this).removeClass("active"); } }); $("#regionsList li").click(function() { // выбор целой области var id = $(this).attr("id"); if ($(this).hasClass("active")) { $("."+id, svgdom).myRemoveClass("active"); $(this).removeClass("active"); $('#districtsList input[type=checkbox].'+id).removeAttr("checked"); $('#districtsList input[type=checkbox].'+id).removeClass("active"); } else { $("."+id, svgdom).myAddClass("active"); $(this).addClass("active"); $('#districtsList input[type=checkbox].'+id).attr("checked","checked"); $('#districtsList input[type=checkbox].'+id).addClass("active"); } }); $("#districtsList input[type=checkbox] + span").hover( function () { var id = $(this).siblings("input").attr("data-id"); $("#"+id, svgdom).myAddClass("hover"); }, function () { var id = $(this).siblings('input').attr("data-id"); $("#"+id, svgdom).myRemoveClass("hover"); } ); $("#regionsList li").hover( function () { var id = $(this).attr("id"); $("."+id, svgdom).myAddClass("hover"); $('#districtsList input[type=checkbox].'+id).addClass("hover"); }, function () { var id = $(this).attr("id"); $("."+id, svgdom).myRemoveClass("hover"); $('#districtsList input[type=checkbox].'+id).removeClass("hover"); } ); $(".area", svgdom).hover( function () { var id = $(this).attr("id"); $("#districtsList input[data-id="+id+"]").addClass("hover"); }, function () { var id = $(this).attr("id"); $("#districtsList input[data-id="+id+"]").removeClass("hover"); } ); $(".area", svgdom).click(function() { var id = $(this).attr("id"); $('#districtsList input[data-id="'+id+'"]').trigger('click'); }); });