PageSourceSearch

https://www.ihre-frischekueche.de/wp-content/plugins/mapsvg/js/mapsvg.min.js

js ihre-frischekueche.de collected 2026-10-06 20:08:04 UTC 114,754 bytes, 4 lines download raw bytes

1var MapSVG={};window.MapSVG=MapSVG;MapSVG.templatesLoaded={};MapSVG.urls=mapsvg_paths;(function($,window,MapSVG){MapSVG.get=function(index){return jQuery(".mapsvg").eq(index).mapSvg()};MapSVG.extend=function(sub,base){sub.prototype=Object.create(base.prototype);sub.prototype.constructor=sub};MapSVG.ucfirst=function(string){return string.charAt(0).toUpperCase()+string.slice(1)};MapSVG.parseBoolean=function(string){switch(String(string).toLowerCase()){case"on":case"true":case"1":case"yes":case"y":return true;case"off":case"false":case"0":case"no":case"n":return false;default:return undefined}};MapSVG.isNumber=function(n){return!isNaN(parseFloat(n))&&isFinite(n)};MapSVG.safeURL=function(url){if(url.indexOf("http://")==0||url.indexOf("https://")==0)url="//"+url.split("://").pop();return url};MapSVG.convertToText=function(obj){var string=[];if(obj==undefined){return String(obj)}else if(typeof obj=="object"&&obj.join==undefined){var prop;for(prop in obj){if(obj.hasOwnProperty(prop)){var key=prop.search(/[^a-zA-Z]+/)===-1?prop:"'"+prop+"'";string.push(key+": "+MapSVG.convertToText(obj[prop]))}}return"{"+string.join(",")+"}"}else if(typeof obj=="object"&&!(obj.join==undefined)){var prop;for(prop in obj){string.push(MapSVG.convertToText(obj[prop]))}return"["+string.join(",")+"]"}else if(typeof obj=="function"){string.push(obj.toString().replace("function anonymous","function"))}else{var s=JSON.stringify(obj);string.push(s)}return string.join(",")};MapSVG.Controller=function(options){this.container=options.container;this.mapsvg=options.mapsvg;this.template=options.template;this.scrollable=options.scrollable===undefined?true:options.scrollable;this.withToolbar=options.withToolbar===undefined?true:options.withToolbar;this.templates={toolbar:Handlebars.compile(this.getToolbarTemplate()),main:this.getMainTemplate()};this.data=options.data;this.width=options.width;this.color=options.color;this.events=options.events;this._init()};MapSVG.Controller.prototype.viewDidLoad=function(){};MapSVG.Controller.prototype.viewDidAppear=function(){};MapSVG.Controller.prototype.viewDidDisappear=function(){};MapSVG.Controller.prototype._viewDidLoad=function(){if(this.scrollable)this.updateScroll()};MapSVG.Controller.prototype.updateScroll=function(){var _this=this;this.contentWrap.nanoScroller({preventPageScrolling:true});setTimeout(function(){_this.contentWrap.nanoScroller({preventPageScrolling:true})},300)};MapSVG.Controller.prototype.init=function(){};MapSVG.Controller.prototype._init=function(){var _this=this;_this.render();_this.init()};MapSVG.Controller.prototype.getToolbarTemplate=function(){return""};MapSVG.Controller.prototype.getMainTemplate=function(){return this.template};MapSVG.Controller.prototype.render=function(){var _this=this;this.view=$("<div />").attr("id","mapsvg-controller-"+this.name).addClass("mapsvg-controller-view");this.contentWrap=$("<div />").addClass("mapsvg-controller-view-wrap");this.contentView=$("<div />").addClass("mapsvg-controller-view-content");if(this.scrollable){this.contentWrap.addClass("nano");this.contentView.addClass("nano-content")}this.contentWrap.append(this.contentView);if(this.templates.toolbar){this.toolbarView=$("<div />").addClass("mapsvg-controller-view-toolbar");this.view.append(this.toolbarView)}this.view.append(this.contentWrap);this.container.append(this.view);this.container.data("controller",this);if(this.width)this.view.css({width:this.width});if(this.color)this.view.css({"background-color":this.color});this.redraw();setTimeout(function(){_this._viewDidLoad();_this.viewDidLoad();_this.setEventHandlersCommon();_this.setEventHandlers()},1)};MapSVG.Controller.prototype.redraw=function(){this.contentView.html(this.templates.main(this.data));if(this.templates.toolbar)this.toolbarView.html(this.templates.toolbar(this.data));this.updateTopShift();if(this.noPadding)this.contentView.css({padding:0});if(this.scrollable)this.updateScroll()};MapSVG.Controller.prototype.updateTopShift=function(){var _this=this;_this.contentWrap.css({top:_this.toolbarView.outerHeight(true)+"px"});setTimeout(function(){_this.contentWrap.css({top:_this.toolbarView.outerHeight(true)+"px"})},500)};MapSVG.Controller.prototype.setEventHandlersCommon=function(){};MapSVG.Controller.prototype.setEventHandlers=function(){};MapSVG.Controller.prototype.destroy=function(){this.view.empty().remove()};MapSVG.DirectoryController=function(options){this.database=options.database;this.noPadding=true;this.position=options.position;this.search=options.search;this.filters=options.filters;MapSVG.Controller.call(this,options)};MapSVG.extend(MapSVG.DirectoryController,MapSVG.Controller);MapSVG.DirectoryController.prototype.getToolbarTemplate=function(){var _this=this;var t='<div class="mapsvg-directory-search-wrap">';if(this.search){t+='<div class="mapsvg-directory-search-wrap-margin" >';t+='<input class="mapsvg-directory-search" placeholder="{{options.menu.searchPlaceholder}}" />';t+="</div>"}t+='<div class="mapsvg-directory-filter-wrap"></div>';t+="</div>";t+="</div>";return t};MapSVG.DirectoryController.prototype.viewDidLoad=function(){var _this=this;this.menuBtn=$('<div class="mapsvg-button-menu"><i class="mapsvg-icon-menu"></i> '+this.mapsvg.getData().options.mobileView.labelList+"</div>");this.mapBtn=$('<div class="mapsvg-button-map"><i class="mapsvg-icon-map"></i> '+this.mapsvg.getData().options.mobileView.labelMap+"</div>");this.mapBtn.addClass("active");this.container.addClass("closed");
1this.mobileButtons=$('<div class="mapsvg-mobile-buttons"></div>');this.mobileButtons.append(this.menuBtn,this.mapBtn);if(this.mapsvg.getData().options.menu.on!==false)this.mobileButtons.insertAfter(this.mapsvg.getData().$wrap);this.events&&this.events["shown"]&&this.events["shown"].call(this.view);if(this.mapsvg.getData().options.filters&&this.mapsvg.getData().options.filters.on){_this.formBuilder=new MapSVG.FormBuilder({container:_this.view.find(".mapsvg-directory-filter-wrap"),filtersMode:true,schema:_this.mapsvg.filtersSchema.getSchema(),editMode:false,mapsvg:_this.mapsvg,admin:_this.admin,events:{}});_this.formBuilder.view.on("change",'select,input[type="radio"]',function(){var filter={};var field=$(this).data("parameter-name");filter[field]=$(this).val();_this.database.query.setFilters(filter);_this.database.getAll(filter)})}if(this.mapsvg.getData().options.colors.directorySearch){this.toolbarView.css({"background-color":this.mapsvg.getData().options.colors.directorySearch})}};MapSVG.DirectoryController.prototype.setEventHandlers=function(){var _this=this;$(window).on("resize",function(){_this.updateTopShift()});this.view.on("keyup.menu.mapsvg",".mapsvg-directory-search",function(){var data={search:$(this).val()};if(_this.mapsvg.getData().options.menu.searchFallback)data.searchFallback=true;_this.database.getAll(data)});this.menuBtn.on("click",function(){if(!$(this).hasClass("active")){_this.toggle();$(this).parent().find("div").removeClass("active");$(this).addClass("active")}});this.mapBtn.on("click",function(){if(!$(this).hasClass("active")){_this.toggle();$(this).parent().find("div").removeClass("active");$(this).addClass("active")}});this.view.on("click.menu.mapsvg",".mapsvg-directory-item",function(e){e.preventDefault();var objID=$(this).data("object-id");var regions;var marker;var detailsViewObject;var eventObject;if(_this.mapsvg.getData().options.menu.source=="regions"){regions=[_this.mapsvg.getRegion(objID)];eventObject=regions[0];detailsViewObject=regions[0]}else{detailsViewObject=_this.database.getLoadedObject(objID);eventObject=detailsViewObject;if(detailsViewObject.regions){regions=detailsViewObject.regions.map(function(region){return _this.mapsvg.getRegion(region.id)})}}if(detailsViewObject.marker&&detailsViewObject.marker.id)marker=_this.mapsvg.getMarker(detailsViewObject.marker.id);if(_this.mapsvg.getData().options.actions.directoryItem.click.showDetail
1s){_this.mapsvg.loadDetailsView(detailsViewObject)}var skipPopover;if(regions&&regions.length>0){if(_this.mapsvg.getData().options.actions.directoryItem.click.zoom){_this.mapsvg.zoomTo(regions,3)}if(regions.length>1){_this.mapsvg.setMultiSelect(true)}regions.forEach(function(region){var center=region.getCenter();e.clientX=center[0];e.clientY=center[1];if(_this.mapsvg.getData().options.actions.directoryItem.click.selectRegion){region.setSelected(true)}if(_this.mapsvg.getData().options.actions.directoryItem.click.showRegionPopover){var content=_this.mapsvg.getData().templates.popoverRegion(region);_this.mapsvg.showPopover(e,content,null,region)}if(_this.mapsvg.getData().options.actions.directoryItem.click.fireRegionOnClick){var events=_this.mapsvg.getData().options.events;if(events&&events["click.region"])events&&events["click.region"].call(region,e,_this.mapsvg)}});if(regions.length>1){_this.mapsvg.setMultiSelect(false,false)}}if(marker){var center=marker.getCenter();e.clientX=center[0];e.clientY=center[1]-6;if(_this.mapsvg.getData().options.actions.directoryItem.click.showMarkerPopover){var content=_this.mapsvg.getData().templates.popoverMarker(detailsViewObject);_this.mapsvg.showPopover(e,content,null,marker)}if(_this.mapsvg.getData().options.actions.directoryItem.click.fireMarkerOnClick){var events=_this.mapsvg.getData().options.events;if(events&&events["click.marker"])events&&events["click.marker"].call(marker,e,_this.mapsvg)}}this.events&&this.events["click"]&&this.events["click"].call($(this),e,eventObject,_this.mapsvg);var actions=_this.mapsvg.getData().options.actions;if(actions.directoryItem.click.goToLink){var linkParts=actions.directoryItem.click.linkField.split(".");var url;if(linkParts.length>1){var obj=linkParts.shift();var attr="."+linkParts.join(".");if(obj=="Region"){if(region&&region.data)url=eval("region.data"+attr)}else{if(detailsViewObject)url=eval("detailsViewObject"+attr)}if(url)window.location.href=url}}}).on("mouseover.menu.mapsvg",".mapsvg-directory-item",function(e){var objID=$(this).data("object-id");var regions;if(_this.mapsvg.getData().options.menu.source=="regions"){regions=[_this.mapsvg.getRegion(objID)]}else{var detailsViewObject=_this.database.getLoadedObject(objID);if(detailsViewObject.regions){regions=detailsViewObject.regions.map(function(region){return _this.mapsvg.getRegion(region.id)})}}if(regions&&regions.length){_this.mapsvg.highlightRegions(regions);regions.forEach(function(region){if(region&&!region.disabled){_this.mapsvg.getData().options.mouseOver&&_this.mapsvg.getData().options.mouseOver.call(region,e,_this)}})}this.events&&this.events["mouseover"]&&this.events["mouseover"].call($(this))}).on("mouseout.menu.mapsvg",".mapsvg-directory-item",function(e){var objID=$(this).data("object-id");var regions;if(_this.mapsvg.getData().options.menu.source=="regions"){regions=[_this.mapsvg.getRegion(objID)]}else{var detailsViewObject=_this.database.getLoadedObject(objID);if(detailsViewObject.regions){regions=detailsViewObject.regions.map(function(region){return _this.mapsvg.getRegion(region.id)})}}if(regions&&regions.length){_this.mapsvg.unhighlightRegions(regions);regions.forEach(function(region){if(region&&!region.disabled){_this.mapsvg.getData().options.mouseOut&&_this.mapsvg.getData().options.mouseOut.call(region,e,_this)}})}this.events&&this.events["mouseout"]&&this.events["mouseout"].call($(this))}).on("click.menu.mapsvg",".mapsvg-filter-delete",function(e){var filterField=$(this).data("filter");_this.database.query.filters[filterField]=null;delete _this.database.query.filters[filterField];_this.mapsvg.deselectAllRegions();_this.mapsvg.loadDataObjects()})};MapSVG.DirectoryController.prototype.addFilter=function(field){var schema=this.database.getSchema()};MapSVG.DirectoryController.prototype.loadItemsToDirectory=function(){var items;var _this=this;items=this.database.getLoaded();if(this.database.table=="regions"){items=items.filter(function(item){var status=_this.mapsvg.getData().options.regionStatuses;if(status[item.status]){return!status[item.status].disabled}else{return true}})}this.contentView.html(this.templates.main({items:items}));this.setFilters();if(this.scrollable)this.updateScroll()};MapSVG.DirectoryController.prototype.getRegion=function(id){var _this=this;var region;if(_this.mapsvg.getData().options.menu.source=="regions"){region=_this.mapsvg.getRegion(id)}else{var obj=_this.database.getLoadedObject(id);if(obj.region_id)region=_this.mapsvg.getRegion(obj.region_id)}return region};MapSVG.DirectoryController.prototype.setFilters=function(){var _this=this;var filters=this.toolbarView.find(".mapsvg-directory-filter-wrap");this.toolbarView.find(".mapsvg-filter-tag").remove();if(_this.mapsvg.getData().options.filters&&_this.mapsvg.getData().options.filters.on||_this.database.query.filters&&Object.keys(_this.database.query.filters).length>0){for(var field_name in _this.database.query.filters){var field_value=_this.database.query.filters[field_name];var _field_name=field_name;var filterField=_this.mapsvg.filtersSchema.getField(_field_name);if(_this.mapsvg.getData().options.filters.on&&filterField){filters.find('[data-parameter-name="'+_field_name+'"]').val(field_value)}else{if(field_name=="regions"){_field_name="region";field_value=_this.mapsvg.getRegion(field_value).title||field_value}filters.append('<div class="mapsvg-filter-tag">'+_field_name+": "+field_value+' <span class="mapsvg-filter-delete" data-filter="'+field_name+'">
1×</span></div>')}}this.view.addClass("mapsvg-with-filter")}else{this.view.removeClass("mapsvg-with-filter")}this.updateTopShift()};MapSVG.DirectoryController.prototype.toggle=function(on){if(on){this.container.removeClass("closed")}else{this.container.toggleClass("closed")}this.updateTopShift()};MapSVG.DirectoryController.prototype.addPagination=function(pager){this.contentView.append('<div class="mapsvg-pagination-container"></div>');this.contentView.find(".mapsvg-pagination-container").html(pager)};MapSVG.DetailsController=function(options){MapSVG.Controller.call(this,options)};MapSVG.extend(MapSVG.DetailsController,MapSVG.Controller);MapSVG.DetailsController.prototype.getToolbarTemplate=function(){if(this.withToolbar)return'<div class="mapsvg-details-close"></div>';else return""};MapSVG.DetailsController.prototype.init=function(){};MapSVG.DetailsController.prototype.viewDidLoad=function(){this.events&&this.events["shown"]&&this.events["shown"].call(this.view)};MapSVG.DetailsController.prototype.setEventHandlers=function(){var _this=this;this.view.on("click",".mapsvg-details-close",function(){_this.destroy();_this.events&&_this.events["closed"]&&_this.events["closed"].call(_this)})}})(jQuery,window,MapSVG);(function($){var mapSVG={};function MapObject(){this.id="";this.objects=[];this.data={}}MapObject.prototype.isMarker=function(){return this.mapsvg_type=="marker"};MapObject.prototype.isRegion=function(){return this.mapsvg_type=="region"};MapObject.prototype.setData=function(data){var _this=this;for(var name in data){_this.data[name]=data[name]}};MapObject.prototype.getBBox=function(){var bbox=this.node[0].getBBox();return[bbox.x,bbox.y,bbox.width,bbox.height]};MapObject.prototype.getComputedStyle=function(prop,node){node=node||this.node[0];var _p1,_p2;if(_p1=node.getAttribute(prop)){return _p1}else if(_p2=node.getAttribute("style")){var s=_p2.split(";");var z=s.filter(function(e){var e=e.trim();var attr=e.split(":");if(attr[0]==prop)return true});if(z.length){return z[0].split(":").pop().trim()}}var parent=$(node).parent();var nodeType=parent.length?parent[0].tagName:null;if(nodeType&&nodeType!="svg")return this.getComputedStyle(prop,parent[0]);else return undefined};MapObject.prototype.getStyle=function(prop){var _p1,_p2;if(_p1=this.attr(prop)){return _p1}else if(_p2=this.attr("style")){var s=_p2.split(";");var z=s.filter(function(e){var e=e.trim();if(e.indexOf(prop)===0)return e});return z.length?z[0].split(":").pop().trim():undefined}return""};MapObject.prototype.getCenter=function(){var x=this.node[0].getBoundingClientRect().left;var y=this.node[0].getBoundingClientRect().top;var w=this.node[0].getBoundingClientRect().width;var h=this.node[0].getBoundingClientRect().height;return[x+w/2,y+h/2]};MapObject.prototype.setTooltip=function(text){this.tooltip=text?text:undefined};MapObject.prototype.setPopover=function(text){this.popover=text?text:undefined};MapObject.prototype.setHref=function(url){if(this.href&&this.node.parent("a").length)this.node.unwrap();this.href=url?url:undefined;if(this.href){var xlinkNS="http://www.w3.org/1999/xlink",svgNS="http://www.w3.org/2000/svg";var a=document.createElementNS(svgNS,"a");a.setAttributeNS(xlinkNS,"href",this.href);if(this.target)a.setAttribute("target",this.target);this.node.wrap($(a))}};MapObject.prototype.setTarget=function(target){this.target=target?target:undefined;if(this.href)var a=this.node.parent("a")[0];else return;this.target?a.setAttribute("target",target):a.removeAttribute("target")};MapObject.prototype.attr=function(v1,v2){var svgDom=this.node[0];if(typeof v1=="object"){$.each(v1,function(key,item){if(typeof item=="string"||typeof item=="number"){svgDom.setAttribute(key,item)}})}else if(typeof v1=="string"&&(typeof v2=="string"||typeof v2=="number")){svgDom.setAttribute(v1,v2)}else if(v2==undefined){return svgDom.getAttribute(v1)}};MapObject.prototype.setId=function(id){if(!id)return false;this.id=id;this.node[0].setAttribute("id",id);if(this.isMarker()){this.mapsvg.updateMarkersDict()}};function Region(jQueryObject,globalOptions,regionID,mapsvg){MapObject.call(this);this.node=jQueryObject;this.nodeType=jQueryObject[0].tagName;this.globalOptions=globalOptions;this.mapsvg=mapsvg;this.id=this.node.attr("id");if(this.id&&globalOptions.regionPrefix){this.setId(this.id.replace(globalOptions.regionPrefix,""))}this.id_no_spaces=this.id.replace(" ","_");this.title=this.node.attr("title");this.node[0].setAttribute("class",this.node.attr("class")+" mapsvg-region");this.svg_style={fill:this.getComputedStyle("fill")};this.svg_style.stroke=this.getComputedStyle("stroke");if(!_browser.ie)this.node.css({"vector-effect":"non-scaling-stroke"});else{var w=this.getComputedStyle("stroke-width");w=w?w.replace("px",""):"1";w=w=="1"?1.2:parseFloat(w);this.svg_style["stroke-width"]=w}var regionOptions=globalOptions.regions&&globalOptions.regions[this.id]?globalOptions.regions[this.id]:null;this.disabled=this.getDisabledState();this.disabled&&this.attr("class",this.attr("class")+" mapsvg-disabled");this.default_attr={};this.selected_attr={};this.hover_attr={};this.mapsvg_type="region";var selected=false;if(regionOptions&&regionOptions.selected){selected=true;delete regionOptions.selected}regionOptions&&this.update(regionOptions);this.setFill();if(selected)this.setSelected(true);this.saveState()}
1MapSVG.extend(Region,MapObject);Region.prototype.saveState=function(){this.initialState=JSON.stringify(this.getOptions())};Region.prototype.changed=function(){return JSON.stringify(this.getOptions())!=this.initialState};Region.prototype.getOptions=function(forTemplate){var globals=this.globalOptions.regions[this.id];var o={id:this.id,id_no_spaces:this.id_no_spaces,title:this.title,fill:this.globalOptions.regions[this.id]&&this.globalOptions.regions[this.id].fill,tooltip:this.tooltip,popover:this.popover,href:this.href,target:this.target,data:this.data,gaugeValue:this.gaugeValue};if(forTemplate){o.disabled=this.disabled;o.dataCounter=this.data&&this.data.length||0}$.each(o,function(key,val){if(val==undefined){delete o[key]}});if(this.customAttrs){var that=this;this.customAttrs.forEach(function(attr){o[attr]=that[attr]})}return o};Region.prototype.forTemplate=function(){var data={id:this.id,title:this.title,objects:this.objects,data:this.data};for(var key in this.data){data[key]=this.data[key]}return data};Region.prototype.update=function(options){for(var key in options){var setter="set"+MapSVG.ucfirst(key);if(setter in this)this[setter](options[key]);else{this[key]=options[key];this.customAttrs=this.customAttrs||[];this.customAttrs.push(key)}}};Region.prototype.setFill=function(fill){if(fill){var regions={};regions[this.id]={fill:fill};$.extend(true,this.globalOptions,{regions:regions})}else if(!fill&&fill!==undefined&&this.globalOptions.regions&&this.globalOptions.regions[this.id]&&this.globalOptions.regions[this.id].fill){delete this.globalOptions.regions[this.id].fill}if(this.globalOptions.gauge.on&&this.data&&this.data[this.globalOptions.regionChoroplethField]){var o=this.globalOptions.gauge;var w=(parseFloat(this.data[this.globalOptions.regionChoroplethField])-o.min)/o.maxAdjusted;var rgb={r:Math.round(o.colors.diffRGB.r*w+o.colors.lowRGB.r),g:Math.round(o.colors.diffRGB.g*w+o.colors.lowRGB.g),b:Math.round(o.colors.diffRGB.b*w+o.colors.lowRGB.b),a:Math.round(o.colors.diffRGB.a*w+o.colors.lowRGB.a)};this.default_attr["fill"]="rgba("+rgb.r+","+rgb.g+","+rgb.b+","+rgb.a+")"}else if(this.status!==undefined&&this.mapsvg.regionsDatabase&&this.mapsvg.regionsDatabase.getSchemaFieldByType("status")&&this.mapsvg.regionsDatabase.getSchemaFieldByType("status").optionsDict&&this.mapsvg.regionsDatabase.getSchemaFieldByType("status").optionsDict[this.status]&&this.mapsvg.regionsDatabase.getSchemaFieldByType("status").optionsDict[this.status].color){this.default_attr["fill"]=this.mapsvg.regionsDatabase.getSchemaFieldByType("status").optionsDict[this.status].color}else if(this.globalOptions.regions[this.id]&&this.globalOptions.regions[this.id].fill){this.default_attr["fill"]=this.globalOptions.regions[this.id].fill}else if(this.globalOptions.colors.base){this.default_attr["fill"]=this.globalOptions.colors.base}else if(this.svg_style.fill!="none"){this.default_attr["fill"]=this.svg_style.fill?this.svg_style.fill:this.globalOptions.colors.baseDefault}else{this.default_attr["fill"]="none"}if(MapSVG.isNumber(this.globalOptions.colors.selected))this.selected_attr["fill"]=MapSVG.tinycolor(this.default_attr.fill).lighten(parseFloat(this.globalOptions.colors.selected)).toRgbString();else this.selected_attr["fill"]=this.globalOptions.colors.selected;if(MapSVG.isNumber(this.globalOptions.colors.hover))this.hover_attr["fill"]=MapSVG.tinycolor(this.default_attr.fill).lighten(parseFloat(this.globalOptions.colors.hover)).toRgbString();else this.hover_attr["fill"]=this.globalOptions.colors.hover;this.node.css("fill",this.default_attr["fill"]);this.fill=this.default_attr["fill"];if(this.svg_style.stroke!="none"&&this.globalOptions.colors.stroke!=undefined){this.node.css("stroke",this.globalOptions.colors.stroke)}else{var s=this.svg_style.stroke==undefined?"":this.svg_style.stroke;this.node.css("stroke",s)}if(this.selected)this.select()};Region.prototype.setDisabled=function(on,skipSetFill){on=on!==undefined?MapSVG.parseBoolean(on):this.getDisabledState();var prevDisabled=this.disabled;this.disabled=on;on?this.attr("class",this.attr("class")+" mapsvg-disabled"):this.attr("class",this.attr("class").replace(" mapsvg-disabled",""));if(this.disabled!=prevDisabled)this.mapsvg.deselectRegion(this);!skipSetFill&&this.setFill()};Region.prototype.setStatus=function(status){var statusOptions;if(statusOptions=this.globalOptions.regionStatuses&&this.globalOptions.regionStatuses[status]){this.status=status;this.setDisabled(statusOptions.disabled,true)}else{this.status=undefined;this.setDisabled(false,true)}this.setFill()};Region.prototype.setSelected=function(on){this.mapsvg.selectRegion(this)};Region.prototype.setGaugeValue=function(val){this.gaugeValue=$.isNumeric(val)?parseFloat(val):undefined};Region.prototype.getDisabledState=function(asDefault){var opts=this.globalOptions.regions[this.id];if(!asDefault&&opts&&opts.disabled!==undefined){return opts.disabled}else if(this.globalOptions.disableAll||this.svg_style.fill=="none"||this.id=="labels"||this.id=="Labels"){return true}else{return false}};Region.prototype.highlight=function(){this.node.css({fill:this.hover_attr.fill})};Region.prototype.unhighlight=function(){this.node.css({fill:this.default_attr.fill})};Region.prototype.select=function(){this.node.css({fill:this.selected_attr.fill});this.selected=true};Region.prototype.deselect=function(){this.node.css({fill:this.default_attr.fill});this.selected=false};function Marker(options,scale,mapsvg){if(!options.id||!options.src)return false;MapObject.call(this);this.mapsvg=mapsvg;var img=document.createElementNS("http://www.w3.org/2000/svg","image");img.setAttributeNS(null,"height",options.height);img.setAttributeNS(null,"width",options.width);img.setAttributeNS("http://www.w3.org/1999/xlink","href",options.src);img.setAttributeNS(null,"x",options.x);
1img.setAttributeNS(null,"y",options.y);img.setAttributeNS(null,"visibility","visible");img.setAttribute("class","mapsvg-marker");this.node=$(img);this.src=options.src;this.setId(options.id);this.mapsvg_type="marker";this.x=parseFloat(options.x);this.y=parseFloat(options.y);this.width=parseFloat(options.width);this.height=parseFloat(options.height);this.tooltip=options.tooltip;this.popover=options.popover;this.href=options.href;this.target=options.target;this.default={x:this.x,y:this.y,width:this.width,height:this.height};this.geoCoords=options.geoCoords;this.attached=options.attached==undefined?true:MapSVG.parseBoolean(options.attached);this.isLink=options.isLink==undefined?false:MapSVG.parseBoolean(options.isLink);this.urlField=options.urlField;this.dataId=options.dataId==undefined?null:parseInt(options.dataId)}MapSVG.extend(Marker,MapObject);Marker.prototype.getOptions=function(){var o={id:this.id,attached:this.attached,isLink:this.isLink,urlField:this.urlField,dataId:this.dataId,tooltip:this.tooltip,popover:this.popover,href:this.href,target:this.target,src:this.src,width:this.default.width,height:this.default.height,x:this.x,y:this.y,geoCoords:this.geoCoords};$.each(o,function(key,val){if(val==undefined){delete o[key]}});return o};Marker.prototype.update=function(data,mapScale){for(var key in data){var setter="set"+MapSVG.ucfirst(key);if(setter in this)this[setter](data[key],mapScale)}};Marker.prototype.setSrc=function(src,mapScale){if(!src)return false;src=MapSVG.safeURL(src);mapScale=mapScale||this.mapScale;var img=new Image;var marker=this;this.src=src;img.onload=function(){marker.default.width=this.width;marker.default.height=this.height;marker.x=marker.x-(this.width-marker.width)/2;marker.y=marker.y-(this.height-marker.height);marker.attr({x:marker.x,y:marker.y,width:this.width,height:this.height});marker.width=this.width;marker.height=this.height;marker.node[0].setAttributeNS("http://www.w3.org/1999/xlink","href",src);marker.adjustPosition(mapScale);marker.src=src};img.src=src};Marker.prototype.setXy=function(xy){this.x=xy[0];this.y=xy[1];this.node[0].setAttribute("x",this.x);this.node[0].setAttribute("y",this.y);this.adjustPosition(this.mapScale);if(this.onChange)this.onChange.call(this)};Marker.prototype.moveToClick=function(xy){var _data=this.mapsvg.getData();var options=this.mapsvg.getOptions();var markerOptions={};xy[0]=xy[0]/_data.scale-this.width/2+_data.viewBox[0];xy[1]=xy[1]/_data.scale-this.height+_data.viewBox[1];if(_data.mapIsGeo)this.geoCoords=this.mapsvg.convertPixelToGeo(this.x+this.width/2,this.y+(this.height-1));markerOptions.xy=xy;this.update(markerOptions)};Marker.prototype.adjustPosition=function(mapScale){var w=this.default.cx!==undefined?this.default.cx:this.default.width/2;var h=this.default.cy!==undefined?this.default.cy:this.default.height;var dx=w-w/mapScale;var dy=h-h/mapScale;this.attr("width",this.default.width/mapScale);this.attr("height",this.default.height/mapScale);this.attr("transform","translate("+dx+","+dy+")");this.mapScale=mapScale};Marker.prototype.setGeoCoords=function(coords){if(typeof coords=="string"){coords=coords.trim().split(",");coords=[parseFloat(coords[0]),parseFloat(coords[1])]}if(typeof coords=="object"&&coords.length==2){if($.isNumeric(coords[0])&&$.isNumeric(coords[1])){var xy=this.mapsvg.convertGeoToPixel(coords);xy[0]=xy[0]-this.width/2+.3;xy[1]=xy[1]-this.height+1.5;this.setXy(xy)}}};Marker.getDefaultCoords=function(markerX,markerY,markerWidth,markerHeight,mapScale){markerX=parseFloat(markerX);markerY=parseFloat(markerY);markerWidth=parseFloat(markerWidth);markerHeight=parseFloat(markerHeight);markerX=markerX+markerWidth/(2*mapScale)-markerWidth/2;markerY=markerY+markerHeight/mapScale-markerHeight;return[markerX,markerY]};Marker.prototype.drag=function(startCoords,scale,endCallback,clickCallback){var _this=this;this.ox=this.x;this.oy=this.y;$("body").on("mousemove.drag.mapsvg",function(e){e.preventDefault();var mouseNew=mouseCoords(e);var dx=mouseNew.x-startCoords.x;var dy=mouseNew.y-startCoords.y;_this.x=_this.ox+dx/scale;_this.y=_this.oy+dy/scale;_this.attr({x:_this.x,y:_this.y})});$("body").on("mouseup.drag.mapsvg",function(e){e.preventDefault();_this.undrag();var mouseNew=mouseCoords(e);var dx=mouseNew.x-startCoords.x;var dy=mouseNew.y-startCoords.y;_this.x=_this.ox+dx/scale;_this.y=_this.oy+dy/scale;_this.attr({x:_this.x,y:_this.y});endCallback.call(_this);if(_this.ox==_this.x&&_this.oy==_this.y)clickCallback.call(_this)})};Marker.prototype.undrag=function(){$("body").off(".drag.mapsvg")};Marker.prototype.delete=function(){if(this.href)this.node.parent("a").empty().remove();
1this.mapsvg.getData().$map.find("#"+this.id).empty().remove()};Marker.prototype.setObject=function(obj){this.object=obj;this.databaseObject=obj;this.objects=[obj]};var instances={};var globalID=0;var userAgent=navigator.userAgent.toLowerCase();var touchDevice=userAgent.indexOf("ipad")>-1||userAgent.indexOf("iphone")>-1||userAgent.indexOf("ipod")>-1||userAgent.indexOf("android")>-1;var _browser={};_browser.ie=userAgent.indexOf("msie")>-1||userAgent.indexOf("trident")>-1||userAgent.indexOf("edge")>-1?{}:false;_browser.firefox=userAgent.indexOf("firefox")>-1;if(!String.prototype.trim){String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")}}var mouseCoords=function(e){if(e.clientX){return{x:e.clientX+$(document).scrollLeft(),y:e.clientY+$(document).scrollTop()}}if(e.pageX){return{x:e.pageX,y:e.pageY}}else if(touchDevice){e=e.originalEvent;return e.touches&&e.touches[0]?{x:e.touches[0].pageX,y:e.touches[0].pageY}:{x:e.changedTouches[0].pageX,y:e.changedTouches[0].pageY}}};var defaults={markerLastID:0,regionLastID:0,dataLastID:1,disableAll:false,width:null,height:null,lockAspectRatio:true,padding:{top:0,left:0,right:0,bottom:0},maxWidth:null,maxHeight:null,minWidth:null,minHeight:null,loadingText:"Loading map...",colors:{baseDefault:"#000000",background:"#eeeeee",selected:40,hover:20,directory:"#fafafa",status:{}},regions:{},markers:[],viewBox:[],cursor:"default",onClick:null,mouseOver:null,mouseOut:null,menuOnClick:null,beforeLoad:null,afterLoad:null,zoom:{on:false,limit:[0,10],delta:1.15,buttons:{on:true,location:"right"},mousewheel:true},scroll:{on:false,limit:false,background:false},responsive:true,tooltips:{on:false,position:"bottom-right",template:""},popovers:{on:false,position:"top",template:"",centerOn:false},multiSelect:false,regionStatuses:{1:{label:"Enabled",value:"1",color:"",disabled:false},0:{label:"Disabled",value:"0",color:"",disabled:true}},events:{afterLoad:null,beforeLoad:null,databaseLoaded:null,"click.region":null,"mouseover.region":null,"mouseout.region":null,"click.marker":null,"mouseover.marker":null,"mouseout.marker":null,"click.directoryItem":null,"mouseover.directoryItem":null,"mouseout.directoryItem":null,"shown.popover":null,"shown.detailsView":null,"closed.popover":null,"closed.detailsView":null},templates:{popoverRegion:"",popoverMarker:"",tooltipRegion:"",tooltipMarker:"",directoryItem:"",detailsView:"",detailsViewRegion:""},gauge:{on:false,labels:{low:"low",high:"high"},colors:{lowRGB:null,highRGB:null,low:"#550000",high:"#ee0000"},min:0,max:0},filters:{on:false},menu:{on:false,search:false,customContainer:false,containerId:"",searchPlaceholder:"Search...",searchFallback:false,source:"database",width:"200px",position:"left",sortBy:"id",sortDirection:"desc",clickActions:{region:"default",marker:"default",directoryItem:{triggerClick:true,showPopover:false,showDetails:true}},
2detailsViewLocation:"overDirectory"},database:{pagination:{on:true,perpage:30},table:""},actions:{region:{click:{showDetails:false,showDetailsFor:"region",filterDirectory:false,loadObjects:false,showPopover:false,showPopoverFor:"region",goToLink:false}},marker:{click:{showDetails:false,showPopover:false,goToLink:false}},directoryItem:{click:{showDetails:true,showPopover:false,goToLink:false,selectRegion:true,fireRegionOnClick:true}}},detailsView:{location:"top",containerId:"",width:"100%"},mobileView:{labelMap:"Map",labelList:"List"}};var markerOptions={src:MapSVG.urls.root+"markers/pin1_red.png"};mapSVG=function(elem,options){var _data;this.methods={prototypes:{MapObject:MapObject,Region:Region,Marker:Marker},setMarkersClickAsLink:function(){this.database.loadSchema().done(function(schema){if(schema){schema.forEach(function(field){if(field.type=="marker"){_data.markerIsLink=MapSVG.parseBoolean(field.isLink);_data.markerUrlField=field.urlField}})}})},loadDataObjects:function(params){var _this=this;return _this.database.getAll(params)},loadDirectory:function(){var _this=this;if(!_data.editMode){if(_data.options.menu.on){_data.controllers.directory.loadItemsToDirectory()}if(_data.options.database.pagination.on){var pager=_this.getPagination();if(_data.options.menu.on){_data.controllers.directory.addPagination(pager)}else{_data.$map.append(pager)}}}},getPagination:function(callback){_data.pager&&_data.pager.empty().remove();_data.pager=$('<nav class="mapsvg-pagination"><ul class="pager"><!--<li class="mapsvg-first"><a href="#">
2First</a></li>--><li class="mapsvg-prev"><a href="#">&larr; Prev. '+_data.options.database.pagination.perpage+'</a></li><li class="mapsvg-next"><a href="#">Next '+_data.options.database.pagination.perpage+' &rarr;</a></li><!--<li class="mapsvg-last"><a href="#">Last</a></li>--></ul></nav>');if(_this.database.onFirstPage()&&!_this.database.hasMoreRecords){_data.pager.hide()}else{_data.pager.find(".mapsvg-prev").removeClass("disabled");_data.pager.find(".mapsvg-first").removeClass("disabled");_data.pager.find(".mapsvg-last").removeClass("disabled");_data.pager.find(".mapsvg-next").removeClass("disabled");_this.database.onLastPage()&&(_data.pager.find(".mapsvg-next").addClass("disabled")&&_data.pager.find(".mapsvg-last").addClass("disabled"));_this.database.onFirstPage()&&(_data.pager.find(".mapsvg-prev").addClass("disabled")&&_data.pager.find(".mapsvg-first").addClass("disabled"))}_data.pager.on("click",".mapsvg-next:not(.disabled)",function(e){e.preventDefault();if(!_this.database.hasMoreRecords)return;_this.database.getAll({page:_this.database.page+1}).done(function(){callback&&callback()})}).on("click",".mapsvg-prev:not(.disabled)",function(e){e.preventDefault();if(_this.database.onFirstPage())return;_this.database.getAll({page:_this.database.page-1}).done(function(){callback&&callback()})}).on("click",".mapsvg-first:not(.disabled)",function(e){e.preventDefault();if(_this.database.onFirstPage())return;_this.database.getAll({page:1}).done(function(){callback&&callback()})}).on("click",".mapsvg-last:not(.disabled)",function(e){e.preventDefault();if(_this.database.onLastPage())return;_this.database.getAll({lastpage:true}).done(function(){callback&&callback()})});return _data.pager},deleteMarkers:function(){while(_data.markers.length){_this.markerDelete(_data.markers[0])}},addDataObjectsAsMarkers:function(){var data=this.database.getLoaded();var _this=this;_this.deleteMarkers();data&&data.forEach(function(obj){if(obj.marker&&!(obj instanceof Marker)){obj.marker.id="marker_"+obj.id;obj.marker.attached=true;var marker=_this.markerAdd(obj.marker);marker&&marker.setObject(obj)}})},getCssUrl:function(){return MapSVG.urls.root+"css/mapsvg.css"},mouseCoords:mouseCoords,isGeo:function(){return _data.mapIsGeo},functionFromString:function(string){var func;var error=false;var fn=string.trim();if(fn.indexOf("{")==-1||fn.indexOf("function")!==0||fn.indexOf("(")==-1){return{error:"MapSVG user function error: no function body."}}var fnBody=fn.substring(fn.indexOf("{")+1,fn.lastIndexOf("}"));var params=fn.substring(fn.indexOf("(")+1,fn.indexOf(")"));try{func=new Function(params,fnBody)}catch(err){error=err}if(!error)return func;else return error},getOptions:function(forTemplate,forWeb,optionsDelta){var options=$.extend(true,{},_data.options);$.extend(true,options,optionsDelta);options.viewBox=_data._viewBox;options.filtersSchema=_this.filtersSchema.getSchema();delete options.markers;if(forTemplate){options.regions=[];_data.regions.forEach(function(r){options.regions.push(r.getOptions(forTemplate))});options.markers=_data.options.markers;options.svgFilename=options.source.split("/").pop()}else{_data.regions.forEach(function(r){r.changed()&&(options.regions[r.id]=r.getOptions())});if(_data.markers.length>0)options.markers=[];_data.markers.forEach(function(marker){if(!marker.attached)options.markers.push(marker.getOptions())})}if(forWeb)$.each(options,function(key,val){if(JSON.stringify(val)==JSON.stringify(defaults[key]))delete options[key]});delete options.backend;return options},setEvents:function(functions){_data.events=_data.events||{};for(var i in functions){if(typeof functions[i]==="string"){var func=functions[i]!=""?this.functionFromString(functions[i]):null;if(func&&!func.error&&!(func instanceof TypeError||func instanceof SyntaxError))_data.events[i]=func;else _data.events[i]=null}else if(typeof functions[i]==="function"){_data.events[i]=functions[i]}}$.extend(true,_data.options.events,functions)},setActions:function(options){$.extend(true,_data.options.actions,options)},setDetailsView:function(options){$.extend(true,_data.options.detailsView,options)},setMobileView:function(options){$.extend(true,_data.options.mobileView,options)},deleteDataField:function(name){_data.options.data.forEach(function(obj){delete obj[name]})}
2,addZeroDataField:function(name){_data.options.data.forEach(function(obj){obj[name]=""})},attachDataToRegions:function(){_data.regions.forEach(function(region){region.objects=[]});_this.database.getLoaded().forEach(function(obj,index){if(obj.regions&&obj.regions.length){if(typeof obj.regions=="object"){obj.regions.forEach(function(region){var r=_this.getRegion(region.id);if(r)r.objects.push(obj)})}}})},setTemplates:function(templates){var _this=this;_data.templates=_data.templates||{};for(var name in templates){if(name!=undefined){_data.options.templates[name]=templates[name];var t=_data.options.templates[name];if(name=="directoryItem"){t='{{#each items}}<div id="mapsvg-directory-item-{{id}}" class="mapsvg-directory-item" data-object-id="{{id}}">'+t+"</div>{{/each}}";name="directory"}_data.templates[name]=Handlebars.compile(t)}}},setRegionStatus:function(region,status){var status=_this.regionsDatabase.getSchemaField("status").optionsDict[status];if(status.disabled)region.setDisabled(true);else region.setDisabled(false);if(status.color)region.setFill(status.color);else region.setFill()},update:function(options){for(var key in options){if(key=="regions"){$.each(options.regions,function(id,regionOptions){var region=_this.getRegion(id);region&&region.update(regionOptions);if(regionOptions.gaugeValue!=undefined){_this.updateGaugeMinMax();_this.regionsRedrawColors()}if(regionOptions.disabled!=undefined){_this.deselectRegion(region);_data.options.regions[id]=_data.options.regions[id]||{};_data.options.regions[id].disabled=region.disabled}})}else if(key=="markers"){$.each(options.markers,function(id,markerOptions){var marker=_this.getMarker(id);marker&&marker.update(markerOptions)})}else{var setter="set"+MapSVG.ucfirst(key);if(_this.hasOwnProperty(setter))this[setter](options[key]);else _data.options[key]=options[key]}}},setTitle:function(title){title&&(_data.options.title=title)},setExtension:function(extension){if(extension){_data.options.extension=extension}else{delete _data.options.extension}},setDisableLinks:function(on){on=MapSVG.parseBoolean(on);if(on){_data.$map.on("click.a.mapsvg","a",function(e){e.preventDefault()})}else{_data.$map.off("click.a.mapsvg")}_data.disableLinks=on},setLoadingText:function(val){_data.options.loadingText=val},setLockAspectRatio:function(val){_data.options.lockAspectRatio=MapSVG.parseBoolean(val)},setOnClick:function(h){_data.options.onClick=h||undefined},setMouseOver:function(h){_data.options.mouseOver=h||undefined},setMouseOut:function(h){_data.options.mouseOut=h||undefined},setBeforeLoad:function(h){_data.options.beforeLoad=h||undefined},setAfterLoad:function(h){_data.options.afterLoad=h||undefined},setPopoverShown:function(h){_data.options.popoverShown=h||undefined},on:function(event,handler){_data.eventHandlers=_data.eventHandlers||{};_data.eventHandlers[event]=handler},setMarkerEditHandler:function(handler){_data.markerEditHandler=handler},setRegionChoroplethField:function(field){_data.options.regionChoroplethField=field;_this.redrawGauge()},setRegionEditHandler:function(handler){_data.regionEditHandler=handler},setDisableAll:function(on){on=MapSVG.parseBoolean(on);$.extend(true,_data.options,{disableAll:on});_data.regions.forEach(function(r){r.setDisabled()})},setRegionStatuses:function(_statuses){_data.options.regionStatuses=_statuses;var colors={};for(var status in _data.options.regionStatuses){colors[status]=_data.options.regionStatuses[status].color.length?_data.options.regionStatuses[status].color:undefined}_this.setColors({status:colors})},setColors:function(colors){if(colors.status)_data.options.colors.status=colors.status;else $.extend(true,_data.options,{colors:colors});$.each(_data.options.colors,function(key,color){if(color===null||color=="")delete _data.options.colors[key]});if(colors.background)_data.$map.css({background:_data.options.colors.background});if(colors.hover)_data.options.colors.hover=colors.hover==""+parseInt(colors.hover)?parseInt(colors.hover):colors.hover;if(colors.selected)_data.options.colors.selected=colors.selected==""+parseInt(colors.selected)?parseInt(colors.selected):colors.selected;_this.regionsRedrawColors()},setTooltips:function(options){if(options.on!==undefined)options.on=MapSVG.parseBoolean(options.on);$.extend(true,_data.options,{tooltips:options});if(!_data.mapTip){_data.mapTip=$("<div />").addClass("mapsvg-tooltip");_data.layers.popovers.append(_data.mapTip)}
2var event="mousemove.tooltip.mapsvg-"+_data.$map.attr("id");$("body").off(event);var tip=_data.mapTip[0];switch(_data.options.tooltips.position){case"bottom-right":$("body").on(event,function(e){window.m=mouseCoords(e);tip.style.left=e.clientX+$(window).scrollLeft()-_data.layers.popovers.offset().left+"px";tip.style.top=e.clientY+$(window).scrollTop()+25-_data.$map.offset().top+"px"});break;case"bottom-left":$("body").on(event,function(e){window.m=mouseCoords(e);tip.style.left=e.clientX+$(window).scrollLeft()-tip.offsetWidth+10-_data.layers.popovers.offset().left+"px";tip.style.top=e.clientY+$(window).scrollTop()+25-_data.$map.offset().top+"px"});break;case"bottom":$("body").on(event,function(e){window.m=mouseCoords(e);tip.style.left=e.clientX+$(window).scrollLeft()-tip.offsetWidth/2-_data.layers.popovers.offset().left+"px";tip.style.top=e.clientY+$(window).scrollTop()+25-_data.$map.offset().top+"px"});break;case"top":$("body").on(event,function(e){window.m=mouseCoords(e);tip.style.left=e.clientX+$(window).scrollLeft()-tip.offsetWidth/2-_data.layers.popovers.offset().left+"px";tip.style.top=e.clientY+$(window).scrollTop()-tip.offsetHeight-10-_data.$map.offset().top+"px"});break;case"top-right":$("body").on(event,function(e){window.m=mouseCoords(e);tip.style.left=e.clientX+$(window).scrollLeft()-_data.layers.popovers.offset().left+"px";tip.style.top=e.clientY+$(window).scrollTop()-tip.offsetHeight-10-_data.$map.offset().top+"px"});break;case"top-left":$("body").on(event,function(e){window.m=mouseCoords(e);tip.style.left=e.clientX+$(window).scrollLeft()-tip.offsetWidth+10-_data.layers.popovers.offset().left+"px";tip.style.top=e.clientY+$(window).scrollTop()-tip.offsetHeight-10-_data.$map.offset().top+"px"});break;case"left":$("body").on(event,function(e){window.m=mouseCoords(e);tip.style.left=e.clientX+$(window).scrollLeft()-tip.offsetWidth-10-_data.layers.popovers.offset().left+"px";tip.style.top=e.clientY+$(window).scrollTop()-tip.offsetHeight/2-_data.$map.offset().top+"px"});break;case"right":$("body").on(event,function(e){window.m=mouseCoords(e);tip.style.left=e.clientX+$(window).scrollLeft()+15-_data.layers.popovers.offset().left+"px";tip.style.top=e.clientY+$(window).scrollTop()-tip.offsetHeight/2-_data.$map.offset().top+"px"});break}},setPopovers:function(options){if(options.on!==undefined)options.on=MapSVG.parseBoolean(options.on);$.extend(_data.options.popovers,options);if(!_data.mapPopover){_data.mapPopover=$("<div />").addClass("mapsvg-popover");_data.mapPopover.closeButton=$('<div class="mapsvg-popover-close">&#10005;</div>');_data.mapPopover.contentDiv=$('<div class="mapsvg-popover-content"></div>');_data.mapPopover.append(_data.mapPopover.contentDiv);_data.mapPopover.append(_data.mapPopover.closeButton);_data.mapPopover.css({width:_data.options.popovers.width+(_data.options.popovers.width=="auto"?"":"px"),height:_data.options.popovers.height+(_data.options.popovers.height=="auto"?"":"px")});_data.mapPopover.closeButton.on("click touchstart",function(){_this.hidePopover();_this.deselectRegion();if(_data.events["closed.popover"]){_data.events["closed.popover"].call(_data.mapPopover,_this)}});_data.layers.popovers.append(_data.mapPopover)}if(_data.options.popovers.mobileFullscreen&&!_data.mapPopover.hasClass("mapsvg-popover-fullscreen"))_data.mapPopover.addClass("mapsvg-popover-fullscreen");$("body").off(".popover.mapsvg",_this.popoverOffHandler);if(!touchDevice)$("body").on("mousedown.popover.mapsvg",_this.popoverOffHandler)},setRegionPrefix:function(prefix){_data.options.regionPrefix=prefix},setInitialViewBox:function(v){if(typeof v=="string")v=v.trim().split(" ");_data._viewBox=[parseFloat(v[0]),parseFloat(v[1]),parseFloat(v[2]),parseFloat(v[3])];_data.zoomLevel=0},setViewBox:function(v,skipAdjustments){if(typeof v=="string"){v=v.trim().split(" ")}var d=v&&v.length==4?v:_data.svgDefault.viewBox;var isZooming=parseInt(d[2])!=_data.viewBox[2]||parseInt(d[3])!=_data.viewBox[3];_data.viewBox=[parseFloat(d[0]),parseFloat(d[1]),parseFloat(d[2]),parseFloat(d[3])];_data.whRatio=_data.viewBox[2]/_data.viewBox[3];if(!v){_data._viewBox=_data.viewBox;_data._scale=1}var p=_data.options.padding;if(p.top){_data.viewBox[1]-=p.top;_data.viewBox[3]+=p.top}if(p.right){_data.viewBox[2]+=p.right}if(p.bottom){_data.viewBox[3]+=p.bottom}if(p.left){_data.viewBox[0]-=p.left;_data.viewBox[2]+=p.left}_data.$svg[0].setAttribute("viewBox",_data.viewBox.join(" "));_this.setResponsive(_data.options.responsive,true);
2if(isZooming&&!skipAdjustments){_data.scale=_this.getScale();_this.markersAdjustPosition();if(_browser.ie){_this.mapAdjustStrokes()}}return true},redraw:function(){_data.$map.css({width:_data.$map.width(),height:_data.$map.width()/_data.whRatio});if(!_browser.ie){_data.$map.css({width:"auto",height:"auto"})}else{_data.$map.css({width:"auto"})}_this.updateSize()},setPadding:function(options){options=options||_data.options.padding;for(var i in options){options[i]=options[i]?parseInt(options[i]):0}$.extend(_data.options.padding,options);_this.setViewBox();_this.trigger("sizeChange")},trigger:function(event){_data.eventHandlers&&_data.eventHandlers[event]&&_data.eventHandlers[event]()},setSize:function(width,height,responsive){_data.options.width=parseFloat(width);_data.options.height=parseFloat(height);_data.options.responsive=responsive!=null?MapSVG.parseBoolean(responsive):_data.options.responsive;if(!_data.options.width&&!_data.options.height){_data.options.width=_data.svgDefault.width;_data.options.height=_data.svgDefault.height}else if(!_data.options.width&&_data.options.height){_data.options.width=parseInt(_data.options.height*_data.svgDefault.width/_data.svgDefault.height)}else if(_data.options.width&&!_data.options.height){_data.options.height=parseInt(_data.options.width*_data.svgDefault.height/_data.svgDefault.width)}_data.whRatio=_data.options.width/_data.options.height;_data.scale=_this.getScale();_this.setResponsive(responsive);if(_data.markers)_this.markersAdjustPosition();return[_data.options.width,_data.options.height]},setResponsive:function(on,force){on=on!=undefined?MapSVG.parseBoolean(on):_data.options.responsive;$(window).off("resize.mapsvg");if(on){$(window).on("resize.mapsvg",_this.updateSize);if(!_data.$map.hasClass("mapsvg-responsive")){_data.$map.addClass("mapsvg-responsive");_data.$map.css({width:"auto",height:"auto"})}_data.$map.height(_data.$map.width()/_data.whRatio);$(window).on("resize.mapsvg",function(){_data.$map.height(_data.$map.width()/_data.whRatio);_this.updateSize()})}else{_data.$map.removeClass("mapsvg-responsive");_data.$map.css({width:_data.options.width+"px",height:_data.options.height+"px"})}$.extend(true,_data.options,{responsive:on});_this.updateSize()},setScroll:function(options,skipEvents){options.on!=undefined&&(options.on=MapSVG.parseBoolean(options.on));options.limit!=undefined&&(options.limit=MapSVG.parseBoolean(options.limit));$.extend(true,_data.options,{scroll:options});!skipEvents&&_this.setEventHandlers()},setZoom:function(options){options=options||{};options.on!=undefined&&(options.on=MapSVG.parseBoolean(options.on));options.mousewheel!=undefined&&(options.mousewheel=MapSVG.parseBoolean(options.mousewheel));options.delta&&(options.delta=parseFloat(options.delta));if(options.limit){if(typeof options.limit=="string")options.limit=options.limit.split(";");options.limit=[parseInt(options.limit[0]),parseInt(options.limit[1])]}if(!_data.zoomLevels){_data.zoomLevels={};var _scale=1;for(var i=0;i<=100;i++){_data.zoomLevels[i+""]={_scale:_scale,viewBox:[0,0,_data._viewBox[2]/_scale,_data._viewBox[3]/_scale]};_scale=_scale*_data.options.zoom.delta}_scale=1;for(var i=0;i>=-100;i--){_data.zoomLevels[i+""]={_scale:_scale,viewBox:[0,0,_data._viewBox[2]/_scale,_data._viewBox[3]/_scale]};_scale=_scale/_data.options.zoom.delta}}$.extend(true,_data.options,{zoom:options});_data.$map.off("mousewheel.mapsvg");if(_data.options.zoom.on&&_data.options.zoom.mousewheel){_data.$map.on("mousewheel.mapsvg",function(event,delta,deltaX,deltaY){var d=delta>0?1:-1;_this.zoom(d);return false})}_this.setZoomButtons()},setZoomButtons:function(){var loc=_data.options.zoom.buttons.location||"hide";if(!_data.zoomButtons){var buttons=$("<div />").addClass("mapsvg-buttons");buttons.zoomIn=$("<div />").addClass("mapsvg-btn-zoom in");var event=touchDevice?"touchstart":"click";buttons.zoomIn.on(event,function(e){e.stopPropagation();_this.zoomIn()});buttons.zoomOut=$("<div />").addClass("mapsvg-btn-zoom out");buttons.zoomOut.on(event,function(e){e.stopPropagation();_this.zoomOut()});buttons.append(buttons.zoomIn).append(buttons.zoomOut);_data.zoomButtons=buttons;_data.$map.append(_data.zoomButtons)}_data.zoomButtons.removeClass("left");_data.zoomButtons.removeClass("right");loc=="right"&&_data.zoomButtons.addClass("right")||loc=="left"&&_data.zoomButtons.addClass("left");_data.options.zoom.on&&loc!="hide"?_data.zoomButtons.show():_data.zoomButtons.hide()},setCursor:function(type){type=type=="pointer"?"pointer":"default";_data.options.cursor=type;if(type=="pointer")_data.$map.addClass("mapsvg-cursor-pointer");else _data.$map.removeClass("mapsvg-cursor-pointer")},setPreloaderText:function(text){_data.options.loadingText=text},setMultiSelect:function(on,deselect){_data.options.multiSelect=MapSVG.parseBoolean(on);if(deselect!==false)_this.deselectAllRegions()},setGauge:function(options){options=options||_data.options.gauge;options.on!=undefined&&(options.on=MapSVG.parseBoolean(options.on));$.extend(true,_data.options,{gauge:options});var needsRedraw=false;if(!_data.$gauge){_data.$gauge={};_data.$gauge.gradient=$("<td>&nbsp;</td>").addClass("mapsvg-gauge-gradient");_this.setGaugeGradientCSS();_data.$gauge.container=$("<div />").addClass("mapsvg-gauge").hide();_data.$gauge.table=$("<table />");var tr=$("<tr />");_data.$gauge.labelLow=$("<td>"+_data.options.gauge.labels.low+"</td>");_data.$gauge.labelHigh=$("<td>"+_data.options.gauge.labels.high+"</td>");tr.append(_data.$gauge.labelLow);tr.append(_data.$gauge.gradient);tr.append(_data.$gauge.labelHigh);_data.$gauge.table.append(tr);_data.$gauge.container.append(_data.$gauge.table);_data.$map.append(_data.$gauge.container)}if(!_data.options.gauge.on&&_data.$gauge.container.is(":visible")){_data.$gauge.container.hide();needsRedraw=true}else if(_data.options.gauge.on&&!_data.$gauge.container.is(":visible")){_data.$gauge.container.show();needsRedraw=true;_this.regionsDatabase.on("change",function(){_this.redrawGauge()})}if(options.colors){_data.options.gauge.colors.lowRGB=MapSVG.tinycolor(_data.options.gauge.colors.low).toRgb();_data.options.gauge.colors.highRGB=MapSVG.tinycolor(_data.options.gauge.colors.high).toRgb();_data.options.gauge.colors.diffRGB={r:_data.options.gauge.colors.highRGB.r-_data.options.gauge.colors.lowRGB.r,g:_data.options.gauge.colors.highRGB.g-_data.options.gauge.colors.lowRGB.g,b:_data.options.gauge.colors.highRGB.b-_data.options.gauge.colors.lowRGB.b,a:_data.options.gauge.colors.highRGB.a-_data.options.gauge.colors.lowRGB.a};needsRedraw=true;_data.$gauge&&_this.setGaugeGradientCSS()}if(options.labels){_data.$gauge.labelLow.html(_data.options.gauge.labels.low);_data.$gauge.labelHigh.html(_data.options.gauge.labels.high)}needsRedraw&&_this.redrawGauge()},redrawGauge:function(){_this.updateGaugeMinMax();_this.regionsRedrawColors()},updateGaugeMinMax:function(){_data.options.gauge.min=0;_data.options.gauge.max=false;var values=[];_data.regions.forEach(function(r){var gauge=r.data&&r.data[_data.options.regionChoroplethField];gauge!=undefined&&parseFloat(values.push(gauge))});if(values.length>0){_data.options.gauge.min=values.length==1?0:Math.min.apply(null,values);_data.options.gauge.max=Math.max.apply(null,values);_data.options.gauge.maxAdjusted=_data.options.gauge.max-_data.options.gauge.min}},setGaugeGradientCSS:function(){_data.$gauge.gradient.css({background:_data.options.gauge.colors.low,background:"-moz-linear-gradient(left, "+_data.options.gauge.colors.low+" 1%,"+_data.options.gauge.colors.high+" 100%)",background:"-webkit-gradient(linear, left top, right top, color-stop(1%,"+_data.options.gauge.colors.low+"), color-stop(100%,"+_data.options.gauge.colors.high+"))",background:"-webkit-linear-gradient(left, "+_data.options.gauge.colors.low+" 1%,"+_data.options.gauge.colors.high+" 100%)",background:"-o-linear-gradient(left, "+_data.options.gauge.colors.low+" 1%,"+_data.options.gauge.colors.high+" 100% 100%)",background:"-ms-linear-gradient(left,  "+_data.options.gauge.colors.low+" 1%,"+_data.options.gauge.colors.high+" 100% 100%)",background:"linear-gradient(to right,"+_data.options.gauge.colors.low+" 1%,"+_data.options.gauge.colors.high+" 100%)",filter:'progid:DXImageTransform.Microsoft.gradient( startColorstr="'+_data.options.gauge.colors.low+'", endColorstr="'+_data.options.gauge.colors.high+'",GradientType=1 )'})},setCss:function(css){_data.options.css=css},setMenu:function(options){var _this=this;options=options||_data.options.menu;options.on!=undefined&&(options.on=MapSVG.parseBoolean(options.on));options.search!=undefined&&(options.search=MapSVG.parseBoolean(options.search));options.searchFallback!=undefined&&(options.searchFallback=MapSVG.parseBoolean(options.searchFallback));options.customContainer!=undefined&&(options.customContainer=MapSVG.parseBoolean(options.customContainer));$.extend(true,_data.options,{menu:options});if(_data.options.menu.on&&!_data.editMode){_data.controllers={};!options.customContainer&&_data.$directory.css({width:_data.options.menu.width});_data.controllers.directory=new MapSVG.DirectoryController({container:_data.$directory,data:_this.getData(),template:_data.templates.directory,mapsvg:_this,filters:_this.filters,database:_data.options.menu.source=="regions"?_this.regionsDatabase:_this.database,scrollable:!_data.options.menu.customContainer,position:_data.options.menu.position,search:_data.options.menu.search,events:{click:_data.events["click.directoryItem"],mou
2seover:_data.events["mouseover.directoryItem"],mouseout:_data.events["mouseout.directoryItem"]}})}},setDatabase:function(options){options=options||_data.options.database;if(options.pagination&&options.pagination.on!=undefined)options.pagination.on=MapSVG.parseBoolean(options.pagination.on);$.extend(true,_data.options,{database:options})},loadDetailsView:function(obj){var _this=this;_this.hidePopover();if(_this.detailsController)_this.detailsController.destroy();_this.detailsController=new MapSVG.DetailsController({color:_data.options.colors.detailsView,container:_data.$details,template:obj instanceof Region?_data.templates.detailsViewRegion:_data.templates.detailsView,mapsvg:_this,data:obj instanceof Region?obj.forTemplate():obj,scrollable:_data.options.detailsView.location!="custom",withToolbar:_data.options.detailsView.location!="custom",width:_data.options.detailsView.width,events:{shown:_data.events["shown.detailsView"],closed:function(){_this.deselectAllRegions();if(_data.events["closed.detailsView"]){_data.events["closed.detailsView"].call(_this,_this)}}}})},setMenuMarkers:function(options){options=options||_data.options.menuMarkers;options.on!=undefined&&(options.on=MapSVG.parseBoolean(options.on));$.extend(true,_data.options,{menuMarkers:options});_data.menuDatabase=_data.options.menu.source=="regions"?_data.regionsDatabase:_data.database;_data.$menuMarkers&&_data.$menuMarkers.off("click.menuMarkers.mapsvg");if(_data.options.menuMarkers.on){var menuContainer=$("#"+_data.options.menuMarkers.containerId);if(menuContainer.length){if(!_data.$menuMarkers){if(!menuContainer.is("ul")){_data.$menuMarkers=$("<ul />").appendTo(menuContainer)}else{_data.$menuMarkers=menuContainer}if(!_data.$menuMarkers.hasClass("mapsvg-menu-markers"))_data.$menuMarkers.addClass("mapsvg-menu-markers")}if(_data.$menuMarkers.children().length===0)_data.markers.sort(function(a,b){return a.id==b.id?0:+(a.id>b.id)||-1});_data.markers.forEach(function(marker,i){_data.$menuMarkers.append(_data.options.menuMarkers.template(marker))});_data.$menuMarkers.on("click.menuMarkers.mapsvg","a",function(e){e.preventDefault();var markerID=$(this).attr("href").replace("#","");var marker=_this.getMarker(markerID);var center=marker.getCenter();e={clientX:center[0],clientY:center[1]};_this.regionClickHandler(e,marker)}).on("mouseover.menuMarkers.mapsvg","a",function(e){e.preventDefault();var markerID=$(this).attr("href").replace("#","");var marker=_this.getMarker(markerID);_data.options.mouseOver&&_data.options.mouseOver.call(marker,e,_this)}).on("mouseout.menuMarkers.mapsvg","a",function(e){e.preventDefault();var markerID=$(this).attr("href").replace("#","");var marker=_this.getMarker(markerID);_data.options.mouseOut&&_data.options.mouseOut.call(marker,e,_this)})}}},getRegion:function(id){return _data.regions[_data.regionsDict[id]]},getMarker:function(id){return _data.markers[_data.markersDict[id]]},checkId:function(id){if(_this.getRegion(id))return{error:"This ID is already being used by a Region"};else if(_this.getMarker(id))return{error:"This ID is already being used by another Marker"};else return true},regionsRedrawColors:function(){_data.regions.forEach(function(region){region.setFill()})},destroy:function(){_data.$map.empty().insertBefore(_data.$wrap).attr("style","").removeClass("mapsvg mapsvg-responsive");_data.$wrap.remove();delete instances[_data.$map.attr("id")];return _this},getData:function(){return _data},getScale:function(){var ratio_def=_data.svgDefault.width/_data.svgDefault.height;var ratio_new=_data.options.width/_data.options.height;var scale1,scale2;var size=[_data.$map.width(),_data.$map.height()];scale2=size[0]/_data.viewBox[2];return scale2||1},updateSize:function(){_data.scale=_this.getScale();_this.markersAdjustPosition();if(_data.directoryWrap)_data.directoryWrap.height(_data.$map.height());if(_browser.ie){_this.mapAdjustStrokes()}},getViewBox:function(){return _data.viewBox},viewBoxSetBySize:function(width,height){width=parseFloat(width);height=parseFloat(height);_data._viewBox=_this.viewBoxGetBySize(width,height);_data.options.width=parseFloat(width);_data.options.height=parseFloat(height);_this.setViewBox(_data._viewBox,true);_data.whRatio=_data.viewBox[2]/_data.viewBox[3];if(!_data.options.responsive)_this.setResponsive();return _data.viewBox}
2,viewBoxGetBySize:function(width,height){var new_ratio=width/height;var old_ratio=_data.svgDefault.viewBox[2]/_data.svgDefault.viewBox[3];var vb=$.extend([],_data.svgDefault.viewBox);if(new_ratio!=old_ratio){if(new_ratio>old_ratio){vb[2]=_data.svgDefault.viewBox[3]*new_ratio;vb[0]=_data.svgDefault.viewBox[0]-(vb[2]-_data.svgDefault.viewBox[2])/2}else{vb[3]=_data.svgDefault.viewBox[2]/new_ratio;vb[1]=_data.svgDefault.viewBox[1]-(vb[3]-_data.svgDefault.viewBox[3])/2}}return vb},viewBoxReset:function(toInitial){if(toInitial){var v=_data._viewBox||_data.svgDefault.viewBox;_data.zoomLevel=0;_data._scale=1;_this.setViewBox(v)}else{_this.setViewBox()}},getGeoViewBox:function(){var v=_data.viewBox;var leftLon=_this.convertPixelToGeo(v[0],v[1])[1];var rightLon=_this.convertPixelToGeo(v[0]+v[2],v[1])[1];var topLat=_this.convertPixelToGeo(v[0],v[1])[0];var bottomLat=_this.convertPixelToGeo(v[0],v[1]+v[3])[0];return[leftLon,topLat,rightLon,bottomLat]},mapAdjustStrokes:function(){_data.regions.forEach(function(region){if(region.svg_style["stroke-width"]){region.node.css("stroke-width",region.svg_style["stroke-width"]/_data.scale)}})},zoomIn:function(){_this.zoom(1)},zoomOut:function(){_this.zoom(-1)},touchZoomStart:function(touchScale){var touchZoomStart=_data._scale;_data.scale=_data.scale*zoom_k;var zoom=_data._scale;_data._scale=_data._scale*zoom_k;var vWidth=_data.viewBox[2];var vHeight=_data.viewBox[3];var newViewBox=[];newViewBox[2]=_data._viewBox[2]/_data._scale;newViewBox[3]=_data._viewBox[3]/_data._scale;newViewBox[0]=_data.viewBox[0]+(vWidth-newViewBox[2])/2;newViewBox[1]=viewBox[1]+(vHeight-newViewBox[3])/2;_this.setViewBox(newViewBox)},touchZoomMove:function(){},touchZoomEnd:function(){},zoomTo:function(region,padding){var bbox=[],viewBox,viewBoxPrev=[];if(typeof region=="string"){region=_this.getRegion(region)}if(typeof region=="object"&&region.length!==undefined){var _bbox;bbox=region[0].getBBox();var xmin=[bbox[0]];var ymin=[bbox[1]];var w=bbox[0]+bbox[2];var xmax=[w];var h=bbox[1]+bbox[3];var ymax=[h];if(region.length>1){for(var i=1;i<region.length;i++){_bbox=region[i].getBBox();xmin.push(_bbox[0]);ymin.push(_bbox[1]);var _w=_bbox[0]+_bbox[2];var _h=_bbox[1]+_bbox[3];xmax.push(_w);ymax.push(_h)}}xmin=Math.min.apply(Math,xmin);ymin=Math.min.apply(Math,ymin);var w=Math.max.apply(Math,xmax)-xmin;var h=Math.max.apply(Math,ymax)-ymin;bbox=[xmin,ymin,w,h]}else{bbox=region.getBBox()}$.each(_data.zoomLevels,function(key,level){if(viewBoxPrev.length){if(bbox[2]>bbox[3]&&(viewBoxPrev[2]>bbox[2]&&bbox[2]>level.viewBox[2])){_data.zoomLevel=parseInt(key)-padding;var vb=_data.zoomLevels[_data.zoomLevel].viewBox;_this.setViewBox([bbox[0]-vb[2]/2+bbox[2]/2,bbox[1]-vb[3]/2+bbox[3]/2,vb[2],vb[3]]);_this.updateSize();_data._scale=_data.zoomLevels[_data.zoomLevel]._scale}else if(bbox[2]<bbox[3]&&(viewBoxPrev[3]>bbox[3]&&bbox[3]>level.viewBox[3])){_data.zoomLevel=parseInt(key)-padding;var vb=_data.zoomLevels[_data.zoomLevel].viewBox;_this.setViewBox([bbox[0]-vb[2]/2+bbox[2]/2,bbox[1]-vb[3]/2+bbox[3]/2,vb[2],vb[3]]);_this.updateSize();_data._scale=_data.zoomLevels[_data.zoomLevel]._scale}}viewBoxPrev=level.viewBox})},centerOn:function(region,yShift){var bbox=region.getBBox();var vb=_data.viewBox;yShift=yShift!==undefined?yShift:vb[3]*.25;_this.setViewBox([bbox[0]-vb[2]/2+bbox[2]/2,bbox[1]-vb[3]/2+bbox[3]/2-yShift,vb[2],vb[3]]);_this.updateSize();_data._scale=_data.zoomLevels[_data.zoomLevel]._scale},zoom:function(delta,exact){var vWidth=_data.viewBox[2];
3var vHeight=_data.viewBox[3];var newViewBox=[];var isInZoomRange=_data.zoomLevel>=_data.options.zoom.limit[0]&&_data.zoomLevel<=_data.options.zoom.limit[1];if(!exact){var d=delta>0?1:-1;if(!_data.zoomLevels[_data.zoomLevel+d])return;_data._zoomLevel=_data.zoomLevel;_data._zoomLevel+=d;if(isInZoomRange&&(_data._zoomLevel>_data.options.zoom.limit[1]||_data._zoomLevel<_data.options.zoom.limit[0]))return false;_data.zoomLevel=_data._zoomLevel;var z=_data.zoomLevels[_data.zoomLevel];_data._scale=z._scale;newViewBox=z.viewBox}else{var foundZoomLevel=false,i=1,prevScale,newScale;prevScale=_data.zoomLevels[0]._scale;while(!foundZoomLevel){if(exact>=prevScale&&exact<=_data.zoomLevels[i]._scale){foundZoomLevel=_data.zoomLevels[i]}i++}if(isInZoomRange&&(foundZoomLevel>_data.options.zoom.limit[1]||foundZoomLevel<_data.options.zoom.limit[0])
3)return false;_data._scale=exact;_data.zoomLevel=foundZoomLevel;newViewBox[2]=_data.touchZoomStartViewBox[2]/_data._scale;newViewBox[3]=_data.touchZoomStartViewBox[3]/_data._scale}newViewBox[0]=_data.viewBox[0]+(vWidth-newViewBox[2])/2;newViewBox[1]=_data.viewBox[1]+(vHeight-newViewBox[3])/2;if(_data.options.scroll.limit){if(newViewBox[0]<_data.svgDefault.viewBox[0])newViewBox[0]=_data.svgDefault.viewBox[0];else if(newViewBox[0]+newViewBox[2]>_data.svgDefault.viewBox[0]+_data.svgDefault.viewBox[2])newViewBox[0]=_data.svgDefault.viewBox[0]+_data.svgDefault.viewBox[2]-newViewBox[2];if(newViewBox[1]<_data.svgDefault.viewBox[1])newViewBox[1]=_data.svgDefault.viewBox[1];else if(newViewBox[1]+newViewBox[3]>_data.svgDefault.viewBox[1]+_data.svgDefault.viewBox[3])newViewBox[1]=_data.svgDefault.viewBox[1]+_data.svgDefault.viewBox[3]-newViewBox[3]}_this.setViewBox(newViewBox)},markerDelete:function(marker){var id=marker.id;if(!(marker instanceof Marker)){marker=_this.getMarker(marker.id)}if(_data.editingMarker&&_data.editingMarker.id==marker.id){_data.editingMarker=null;delete _data.editingMarker}marker.delete();_data.markers.splice(_data.markersDict[id],1);_this.updateMarkersDict();if(_data.markers.length==0)_data.options.markerLastID=0},markerAdd:function(opts,create){var options=$.extend(true,{},markerOptions,opts);if(!options.src)return false;options.src=MapSVG.safeURL(options.src);if(options.width&&options.height){return _this.markerAddFinalStep(options,create)}else{var img=new Image;img.onload=function(){options.width=this.width;options.height=this.height;return _this.markerAddFinalStep(options,create)};img.src=options.src}},markerAddFinalStep:function(options,create){if(options.xy||MapSVG.isNumber(options.x)&&MapSVG.
3isNumber(options.y)){var xy=options.xy||[options.x,options.y];if(create){xy[0]+=_data.scale<1?1:2;xy[1]+=1;xy[0]=xy[0]/_data.scale-options.width/2+_data.viewBox[0];xy[1]=xy[1]/_data.scale-options.height+_data.viewBox[1]}}else if(options.geoCoords){var xy=_this.convertGeoToPixel(options.geoCoords);xy[0]=xy[0]-options.width/2+.3;xy[1]=xy[1]-options.height+1.5}else{return false}options.x=xy[0];options.y=xy[1];options.id=options.id||_this.markerId();if(!options.geoCoords&&_data.mapIsGeo){options.geoCoords=_this.convertPixelToGeo(options.x+options.width/2,options.y+(options.height-1))}var marker=new Marker(options,_data.scale,_this);_data.$svg.append(marker.node);marker.href&&marker.setHref(marker.href);marker.adjustPosition(_data.scale);_data.markers.push(marker);_data.markersDict[marker.id]=_data.markers.length-1;if(create){if(typeof create=="function"){create(marker)}else{_data.markerEditHandler&&_data.markerEditHandler.call(marker)}}return marker},markerId:function(){_data.options.markerLastID=_data.options.markerLastID+1;var id="marker_"+_data.options.markerLastID;if(_data.markersDict[id]!=undefined)return _this.markerId();else return id},markersAdjustPosition:function(){var dx,dy;_data.markers.forEach(function(marker){marker.adjustPosition(_data.scale)})},markerMoveStart:function(){this.data("ox",parseFloat(this.attr("x")));this.data("oy",parseFloat(this.attr("y")))},markerMove:function(dx,dy){dx=dx/_data.scale;dy=dy/_data.scale;this.attr({x:this.data("ox")+dx,y:this.data("oy")+dy})},markerMoveEnd:function(){if(this.data("ox")==this.attr("x")&&this.data("oy")==this.attr("y")){options.markerEditHandler.call(this)}},setEditingMarker:function(marker_id){_data.editingMarker=_this.getMarker(marker_id)},unsetEditingMarker:function(){_data.editingMarker=null},getEditingMarker:function(){return _data.editingMarker},scrollStart:function(e,mapsvg){if($(e.target).hasClass("mapsvg-btn-zoom")||$(e.target).closest(".mapsvg-gauge").length)return false;if(_data.editMarkers.on&&$(e.target).attr("class")=="mapsvg-marker")return false;e.preventDefault();if(touchDevice){var ce=e.originalEvent&&e.originalEvent.touches&&e.originalEvent.touches[0]?e.originalEvent.touches[0]:e}else{var ce=e}_data.scroll={};_data.scroll.vxi=_data.viewBox[0];_data.scroll.vyi=_data.viewBox[1];_data.scroll.x=ce.clientX;_data.scroll.y=ce.clientY;_data.scroll.dx=0;_data.scroll.dy=0;_data.scroll.vx=0;_data.scroll.vy=0;if(!touchDevice)$("body").on("mousemove.scroll.mapsvg",_this.scrollMove).on("mouseup.scroll.mapsvg",function(e){_this.scrollEnd(e,mapsvg)})},scrollMove:function(e){e.preventDefault();_data.isScrolling=true;$("body").css({cursor:"move"});var ce=e.originalEvent&&e.originalEvent.touches&&e.originalEvent.touches[0]?e.originalEvent.touches[0]:e;_data.scroll.dx=_data.scroll.x-ce.clientX;_data.scroll.dy=_data.scroll.y-ce.clientY;var vx=parseInt(_data.scroll.vxi+_data.scroll.dx/_data.scale);var vy=parseInt(_data.scroll.vyi+_data.scroll.dy/_data.scale);if(_data.options.scroll.limit){if(vx<_data.svgDefault.viewBox[0])vx=_data.svgDefault.viewBox[0];else if(_data.viewBox[2]+vx>_data.svgDefault.viewBox[0]+_data.svgDefault.viewBox[2])vx=_data.svgDefault.viewBox[0]+_data.svgDefault.viewBox[2]-_data.viewBox[2];if(vy<_data.svgDefault.viewBox[1])vy=_data.svgDefault.viewBox[1];else if(_data.viewBox[3]+vy>_data.svgDefault.viewBox[1]+_data.svgDefault.viewBox[3])vy=_data.svgDefault.viewBox[1]+_data.svgDefault.viewBox[3]-_data.viewBox[3]}_data.scroll.vx=vx;_data.scroll.vy=vy;_this.setViewBox([_data.scroll.vx,_data.scroll.vy,_data.viewBox[2],_data.viewBox[3]])},scrollEnd:function(e,mapsvg){_data.isScrolling=false;if(Math.abs(_data.scroll.dx)<5&&Math.abs(_data.scroll.dy)<5){if(_data.editMarkers.on)_data.clickAddsMarker&&_this.markerAddClickHandler(e);else if(_data.region_clicked)_this.regionClickHandler(e,_data.region_clicked)}$("body").css({cursor:"default"});_data.viewBox[0]=_data.scroll.vx||_data.viewBox[0];_data.viewBox[1]=_data.scroll.vy||_data.viewBox[1];$("body").off(".scroll.mapsvg")},scrollRegionClickHandler:function(e,region){_data.region_clicked=region},touchStart:function(_e,mapsvg){if($(_e.target).hasClass("mapsvg-popover")||$(_e.target).closest(".mapsvg-popover").length){return true}_e.preventDefault();var e=_e.originalEvent;if(_data.options.zoom&&e.touches&&e.touches.length==2){_data.touchZoomStartViewBox=_data.viewBox;_data.touchZoomStart=_data.scale;_data.touchZoomEnd=1}else{_this.scrollStart(_e,mapsvg);_data.isScrolling=true}},touchMove:function(_e){if($(_e.target).hasClass("mapsvg-popover")||$(_e.target).closest(".mapsvg-popover").length){return true}_e.preventDefault();var e=_e.originalEvent;if(_data.options.zoom&&e.touches&&e.touches.length>=2){_this.zoom(null,e.scale);_data.isScrolling=false}else if(_data.isScrolling){_this.scrollMove(_e)}},touchEnd:function(_e){if($(_e.target).hasClass("mapsvg-popover")||$(_e.target).closest(".mapsvg-popover").length){return true}_e.preventDefault();var e=_e.originalEvent;if(_data.touchZoomStart){_data.touchZoomStart=false;_data.touchZoomEnd=false}else if(_data.isScrolling){_this.scrollEnd(_e)}},markersGroupHide:function(group){for(var i in _data.markers[group]){_data.markers[group][i].hide()}},markersGroupShow:function(group){for(var i in _data.markers[group]){_data.markers[group][i].show()}},regionsGroupSelect:function(group){for(var i in _data.markers[group]){_data.markers[group][i].hide()}},regionsGroupUnselect:function(group){for(var i in _data.markers[group]){_data.markers[group][i].show()}},markersGet:function(){return _data.markers},getSelected:function(){return _data.selected_id},selectRegion:function(id){_this.hidePopover();if(typeof id=="string"){var region=_this.getRegion(id)}else{var region=id}if(!region)return false;if(_data.options.multiSelect&&!_data.editRegions.on){if(region.selected){_this.deselectRegion(region);return}}else if(_data.selected_id.length>0){_this.deselectAllRegions()}_data.selected_id.push(region.id);region.select()},deselectAllRegions:function(){$.each(_data.selected_id,function(index,id){_this.deselectRegion(_this.getRegion(id))})},deselectRegion:function(region){if(!region)region=_this.getRegion(_data.selected_id[0]);if(region){region.deselect();var i=$.inArray(region.id,_data.selected_id);_data.selected_id.splice(i,1);if(_browser.ie)_this.mapAdjustStrokes()}}
3,highlightRegions:function(regions){regions.forEach(function(region){if(!region.selected&&!region.disabled){_data.highlightedRegions.push(region);region.highlight()}})},unhighlightRegions:function(){_data.highlightedRegions.forEach(function(region){if(!region.selected&&!region.disabled)region.unhighlight()});_data.highlightedRegions=[]},convertGeoToPixel:function(coords){var lat=parseFloat(coords[0]);var lon=parseFloat(coords[1]);var x=(lon-_data.geoViewBox.leftLon)*(_data.svgDefault.viewBox[2]/_data.mapLonDelta);var lat=lat*3.14159/180;var worldMapWidth=_data.svgDefault.viewBox[2]/_data.mapLonDelta*360/(2*3.14159);var mapOffsetY=worldMapWidth/2*Math.log((1+Math.sin(_data.mapLatBottomDegree))/(1-Math.sin(_data.mapLatBottomDegree)));var y=_data.svgDefault.viewBox[3]-(worldMapWidth/2*Math.log((1+Math.sin(lat))/(1-Math.sin(lat)))-mapOffsetY);x+=_data.svgDefault.viewBox[0];y+=_data.svgDefault.viewBox[1];return[x,y]},convertPixelToGeo:function(tx,ty){tx-=_data.svgDefault.viewBox[0];ty-=_data.svgDefault.viewBox[1];var worldMapRadius=_data.svgDefault.viewBox[2]/_data.mapLonDelta*360/(2*Math.PI);var mapOffsetY=worldMapRadius/2*Math.log((1+Math.sin(_data.mapLatBottomDegree))/(1-Math.sin(_data.mapLatBottomDegree)));var equatorY=_data.svgDefault.viewBox[3]+mapOffsetY;var a=(equatorY-ty)/worldMapRadius;var lat=180/Math.PI*(2*Math.atan(Math.exp(a))-Math.PI/2);var lon=_data.geoViewBox.leftLon+tx/_data.svgDefault.viewBox[2]*_data.mapLonDelta;lat=parseFloat(lat.toFixed(6));lon=parseFloat(lon.toFixed(6));return[lat,lon]},pickGaugeColor:function(gaugeValue){var w=(gaugeValue-_data.options.gauge.min)/_data.options.gauge.maxAdjusted;var rgb=[Math.round(_data.options.gauge.colors.diffRGB.r*w+_data.options.gauge.colors.lowRGB.r),Math.round(_data.options.gauge.colors.diffRGB.g*w+_data.options.gauge.colors.lowRGB.g),Math.round(_data.options.gauge.colors.diffRGB.b*w+_data.options.gauge.colors.lowRGB.b),Math.round(_data.options.gauge.colors.diffRGB.a*w+_data.options.gauge.colors.lowRGB.a)];return rgb},isRegionDisabled:function(id,svgfill){if(_data.options.regions[id]&&(_data.options.regions[id].disabled||svgfill=="none")){return true}else if((_data.options.regions[id]==undefined||MapSVG.parseBoolean(_data.options.regions[id].disabled))&&(_data.options.disableAll||svgfill=="none"||id=="labels"||id=="Labels")){return true}else{return false}},regionClickHandler:function(e,region,skipPopover){_data.region_clicked=null;var actions=_data.options.actions;if(_data.editRegions.on){_this.selectRegion(region.id);_data.regionEditHandler.call(region);return}if(region.mapsvg_type=="region"){_this.selectRegion(region.id);var regionData=region.forTemplate();if(actions.region.click.zoom){_this.zoomTo(region,6)}if((_data.editMode||_data.options.menu.on)&&actions.region.click.filterDirectory){_this.database.getAll({filters:{regions:region.id}})}
3if(!_data.editMode&&actions.region.click.showDetails){_this.loadDetailsView(region)}if(actions.region.click.showPopover){_this.hidePopover();var popover;var passingObject=actions.region.click.showPopoverFor=="region"?regionData:regionData.objects[0];popover=_data.templates.popoverRegion(passingObject);var center=region.getCenter();e.clientX=center[0];e.clientY=center[1];popover&&_this.showPopover(e,popover,null,region)}if(!_data.editMode&&actions.region.click.goToLink){var linkParts=actions.region.click.linkField.split(".");var url;if(linkParts.length>1){var obj=linkParts.shift();var attr="."+linkParts.join(".");if(obj=="Region"){if(region.data)url=eval("region.data"+attr)}else{if(region.objects&&region.objects[0])url=eval("region.objects[0]"+attr)}if(url&&!_data.disableLinks)window.location.href=url}}if(_data.events["click.region"])_data.events["click.region"].call(region,e,_this)}else if(region.mapsvg_type=="marker"){var passingObject=region.databaseObject;if((_data.editMode||_data.options.menu.on)&&actions.marker.click.filterDirectory)_this.database.getAll({filters:{id:region.databaseObject.id}});
3if(!_data.editMode&&actions.marker.click.showDetails)_this.loadDetailsView(passingObject);if(actions.marker.click.showPopover){_this.hidePopover();popover=_data.templates.popoverMarker(passingObject);popover&&_this.showPopover(e,popover,null,region)}if(!_data.editMode&&actions.marker.click.goToLink){var linkParts=actions.marker.click.linkField.split(".");var url;if(linkParts.length>1){var obj=linkParts.shift();var attr="."+linkParts.join(".");url=eval("passingObject"+attr);if(url&&!_data.disableLinks)window.location.href=url}}if(_data.events["click.marker"])_data.events["click.marker"].call(region,e,_this)}},fileExists:function(url){if(url.substr(0,4)=="data")return true;var http=new XMLHttpRequest;http.open("HEAD",url,false);http.send();return http.status!=404},getStyle:function(elem,prop){if(elem.currentStyle){var res=elem.currentStyle.margin}else if(window.getComputedStyle){if(window.getComputedStyle.getPropertyValue){var res=window.getComputedStyle(elem,null).getPropertyValue(prop)}else{var res=window.getComputedStyle(elem)[prop]}}return res},search:function(str){var results=[];str=str.toLowerCase();_data.regions.forEach(function(r){if(r.id.toLowerCase().indexOf(str)===0||r.id.toLowerCase().indexOf("-"+str)!==-1||r.title&&r.title.toLowerCase().indexOf(str)===0)results.push({id:r.id,id_no_spaces:r.id_no_spaces})});return results},searchMarkers:function(str){var results=[];str=str.toLowerCase();_data.markers.forEach(function(m){if(m.id.toLowerCase().indexOf(str)===0)results.push(m.id)});return results},searchData:function(field,str){var results=[];str=str.toLowerCase();_data.options.data.forEach(function(params){for(var i in params){if((""+params[i]).toLowerCase().indexOf(str)===0&&results.indexOf(params.id)==-1)results.push(params.id)}});return results},hideMarkersExceptOne:function(id){_data.markers.forEach(function(m){if(m.id!=id)m.attr("class",m.attr("class")+" mapsvg-marker-hidden")})},showMarkers:function(){_data.markers.forEach(function(m){m.attr("class",m.attr("class").replace(" mapsvg-marker-hidden",""))})},markerAddClickHandler:function(e){if($(e.target).hasClass("mapsvg-marker"))return false;var mc=mouseCoords(e);var x=mc.x-_data.$map.offset().left;var y=mc.y-_data.$map.offset().top;if(!$.isNumeric(x)||!$.isNumeric(y))return false;var data={xy:[x,y],group:_data.editMarkers.group};if(_data.editingMarker){_data.editingMarker.moveToClick([x,y]);return}if(window.defaultMarkerImage)data.src=window.defaultMarkerImage;_this.markerAdd(data,true)},setMarkersEditMode:function(on,clickAddsMarker){_data.clickAddsMarker=true;_data.editMarkers.on=MapSVG.parseBoolean(on);_this.deselectAllRegions();_this.setEventHandlers()},setRegionsEditMode:function(on){_data.editRegions.on=MapSVG.parseBoolean(on);_this.deselectAllRegions();_this.setEventHandlers()},setEditMode:function(on){_data.editMode=on},setDataEditMode:function(on){_data.editData.on=MapSVG.parseBoolean(on);_this.deselectAllRegions();_this.setEventHandlers()},setMarkers:function(markers){$.each(markers,function(i,marker){_this.markerAdd(marker)});_data.markers.sort(function(a,b){return a.id==b.id?0:+(a.id>b.id)||-1});_data.markers.forEach(function(marker,index){_data.markersDict[marker.id]=index})},setEventHandler:function(){},textBr:function(text){var htmls=[];var lines=text.split(/\n/);var tmpDiv=jQuery(document.createElement("div"));for(var i=0;i<lines.length;i++){htmls.push(tmpDiv.text(lines[i]).html())}return htmls.join("<br />")},runUserFunction:function(func){try{func()}catch(error){console.log("MapSVG user-defined function error: (line "+error.line+"): "+error.message)}},download:function(){if(!_data.downloadForm){_data.downloadForm=$('<form id="mdownload" action="/wp-content/plugins/mapsvg-dev/download.php" method="POST">
3<input type="hidden" name="svg_file" value="0" /><input type="hidden" name="svg_title"></form>');_data.downloadForm.appendTo("body")}_data.downloadForm.find('input[name="svg_file"]').val(_data.$svg.prop("outerHTML"));_data.downloadForm.find('input[name="svg_title"]').val(_data.options.title);setTimeout(function(){jQuery("#mdownload").submit()},500)},showTooltip:function(tip){if(tip.length){_data.mapTip.html(tip);_data.mapTip.addClass("mapsvg-tooltip-visible")}},getPopoverBody:function(object){var name="popover"+MapSVG.ucfirst(region.mapsvg_type);return _data.templates[name](object)},showPopover:function(e,content,pos,mapObject){if(mapObject&&_data.options.popovers.centerOn){_this.centerOn(mapObject,0)}if(mapObject){var center=mapObject.getCenter();e.clientX=center[0];e.clientY=center[1]}if(!pos||pos.length!=2){var m=mouseCoords(e);var pos=[m.x,m.y]}else{var scale=_this.getScale();pos[0]=_data.$map.offset().left+pos[0]*scale;pos[1]=_data.$map.offset().top+pos[1]*scale}if(content){_data.mapPopover.contentDiv.html(content);var nx=pos[0]-_data.layers.popovers.offset().left;var ny=_data.$map.height()-(pos[1]-_data.$map.offset().top-12);_data.mapPopover.css("left",nx).css("bottom",ny);_data.mapPopover.addClass("mapsvg-popover-visible");_data.mapPopover.addClass("mapsvg-popover-animate");if(_data.events["shown.popover"]){if(mapObject.mapsvg_type=="marker")mapObject=mapObject.databaseObject;_data.events["shown.popover"].call(_data.mapPopover,mapObject,_this)}}else{_data.mapPopover.removeClass("mapsvg-popover-animate");_data.mapPopover.removeClass("mapsvg-popover-visible")}},hidePopover:function(){_data.mapPopover.contentDiv.empty();_data.mapPopover.removeClass("mapsvg-popover-visible");_data.mapPopover.removeClass("mapsvg-popover-animate");if(_data.options.onPopoverClose)_data.options.onPopoverClose.call(_this)},hideTip:function(){_data.mapTip.removeClass("mapsvg-tooltip-visible")},popoverOffHandler:function(e){if($(e.target).closest(".mapsvg-popover").length)return false;_this.hidePopover()},mouseOverHandler:function(e){if(_data.options.tooltips.on){var name,data;if(this instanceof Region){name="tooltipRegion";data=this.forTemplate()}if(this instanceof Marker){name="tooltipMarker";data=this.object}_this.showTooltip(_data.templates[name](data))}if(this instanceof Region){if(!this.selected)this.highlight();if(_data.events["mouseover.region"])_data.events["mouseover.region"].call(this,e,_this)}else{if(_data.events["mouseover.marker"])_data.events["mouseover.marker"].call(this,e,_this)}},mouseOutHandler:function(e){if(_data.options.tooltips.on)_this.hideTip();if(this instanceof Region){if(!this.selected)this.unhighlight();if(_data.events["mouseout.region"])_data.events["mouseout.region"].call(this,e,_this)}else{if(_data.events["mouseout.marker"])_data.events["mouseout.marker"].call(this,e,_this)}},updateOptions:function(options){$.extend(true,_data.options,options)},updateMarkersDict:function(){_data.markersDict={};_data.markers.forEach(function(marker,i){_data.markersDict[marker.id]=i})},setEventHandlers:function(){_data.$map.off(".common.mapsvg");if(_data.editMarkers.on){var event2=touchDevice?"touchstart.common.mapsvg":"mousedown.common.mapsvg";_data.$map.on(event2,".mapsvg-marker",function(e){e.originalEvent.preventDefault();var marker=_this.getMarker($(this).attr("id"));var startCoords=mouseCoords(e);marker.drag(startCoords,_data.scale,function(){if(_data.mapIsGeo){this.geoCoords=_this.convertPixelToGeo(this.x+this.width/2,this.y+(this.height-1))}_data.markerEditHandler&&_data.markerEditHandler.call(this,true);if(this.onChange)this.onChange.call(this)},function(){_data.markerEditHandler&&_data.markerEditHandler.call(this);if(this.onChange)this.onChange.call(this)})})}if(!touchDevice){if(!_data.editMarkers.on){_data.$map.on("mouseover.common.mapsvg",".mapsvg-region",function(e){var id=$(this).attr("id");_this.mouseOverHandler.call(_this.getRegion(id),e,_this,options)}).on("mouseleave.common.mapsvg",".mapsvg-region",function(e){var id=$(this).attr("id");_this.mouseOutHandler.call(_this.getRegion(id),e,_this,options)})}if(!_data.editRegions.on){_data.$map.on("mouseover.common.mapsvg",".mapsvg-marker",function(e){var id=$(this).attr("id");_this.mouseOverHandler.call(_this.getMarker(id),e,_this,options)}).on("mouseleave.common.mapsvg",".mapsvg-marker",function(e){var id=$(this).attr("id");_this.mouseOutHandler.call(_this.getMarker(id),e,_this,options)})}}if(!_data.options.scroll.on){var event=touchDevice?"touchstart.common.mapsvg":"click.common.mapsvg";if(!_data.editMarkers.on){_data.$map.on(event,".mapsvg-region",function(e){_this.regionClickHandler.call(_this,e,_this.getRegion($(this).attr("id")))});_data.$map.on(event,".mapsvg-marker",function(e){_this.regionClickHandler.call(_this,e,_this.getMarker($(this).attr("id")))})}else{if(_data.clickAddsMarker)_data.$map.on(event,function(e){_this.markerAddClickHandler(e)})}}else{var event=touchDevice?"touchstart.common.mapsvg":"mousedown.common.mapsvg";_data.$map.on(event,".mapsvg-region",function(e){e.preventDefault();var obj=_this.getRegion($(this).attr("id"));_this.scrollRegionClickHandler.call(_this,e,obj)});_data.$map.on(event,".mapsvg-marker",function(e){e.preventDefault();var obj=_this.getMarker($(this).attr("id"));_this.scrollRegionClickHandler.call(_this,e,obj)});if(!touchDevice){_data.$map.on("mousedown.common.mapsvg",function(e){_this.scrollStart(e,_this)})}else{_data.$map.on("touchstart.common.mapsvg",function(e){_this.touchStart(e,_this)}).on("touchmove.common.mapsvg",_this.touchMove).on("touchend.common.mapsvg",_this.touchEnd)}}},addLayer:function(name){_data.layers[name]=$('<div class="mapsvg-layer mapsvg-layer-'+name+'"></div>');_data.$map.append(_data.layers[name])},getDatabaseService:function(){return this.database},init:function(opts,elem){if(!opts.source){throw new Error("MapSVG: please provide SVG file source.");return false}if(opts.source.indexOf("//")===0)opts.source=opts.source.replace(/^\/\/[^\/]+/,"").replace("//","/");else opts.source=opts.source.replace(/^.*:\/\/[^\/]+/,"").replace("//","/");_data={};_data.editMode=opts.editMode;delete opts.editMode;_data.options=$.extend(true,{},defaults,opts);_this.id=_data.options.db_map_id;if(_this.id=="new")_this.id=null;_data.highlightedRegions=[];_data.editRegions={on:false};_data.editMarkers={on:false};_data.editData={on:false};_data.map=elem;_data.$map=$(elem);_data.whRatio=0;_data.isScrolling=false;_data.markerOptions={};_data.svgDefault={};_data.refLength=0;_data.scale=1;_data._scale=1;_data.selected_id=[];_data.mapData={};_data.regions=[];_data.regionsDict={};_data.regionID={id:0};_data.markers=[];_data.markersDict={};_data._viewBox=[];_data.viewBox=[];_data.viewBoxZoom=[];_data.viewBoxFind=undefined;_data.zoomLevel=0;_data.scroll={};_data.layers={};_data.geoCoordinates=false;_data.geoViewBox={leftLon:0,topLat:0,rightLon:0,bottomLat:0};_this.setEvents(opts.events);if(_data.events.beforeLoad)try{_data.events.beforeLoad.call(_this)}catch(err){}if(_data.events.beforeLoad&&_data.events.beforeLoad["beforeLoad"]&&typeof _data.events.beforeLoad["beforeLoad"]==="function"){try{_data.events.beforeLoad["beforeLoad"].call(_this)}catch(err){}}_data.$map.addClass("mapsvg").css("background",_data.options.colors.background);if(!_data.editMode){_data.$wrap=$('<div class="mapsvg-wrap"></div>');_data.$wrap.insertBefore(_data.$map);_data.$wrap.append(_data.$map);if(_data.options.menu.on){if(!_data.options.menu.customContainer){_data.$directory=$('<div class="mapsvg-directory"></div>');if(_data.options.menu.position=="left")_data.$wrap.css({"padding-left":_data.options.menu.width});else{_data.$wrap.css({"padding-right":_data.options.menu.width});_data.$directory.addClass("mapsvg-directory-right")}_data.$wrap.append(_data.$directory)}else{_data.$directory=$("#"+_data.options.menu.containerId)}if(_data.options.colors.directory){_data.$directory.css({"background-color":_data.options.colors.directory})}}if(_data.options.detailsView.location!="custom"){_data.$details=$('<div class="mapsvg-details-container"></div>');_data.$wrap.append(_data.$details);if(!_data.options.menu.customContainer&&_data.options.detailsView.location=="near"){_data.$details.css({left:_data.options.menu.width});_data.$details.addClass("near")}else if(_data.options.detailsView.location=="top"){_data.$details.addClass("top")}}else{_data.$details=$("#"+_data.options.detailsView.containerId)}}var loading=$("<div>"+_data.options.loadingText+"</div>").addClass("mapsvg-loading");_data.$map.append(loading);_this.addLayer("popovers");loading.css({"margin-left":function(){return-($(this).outerWidth(false)/2)+"px"},"margin-top":function(){return-($(this).outerHeight(false)/2)+"px"}});if(_data.options.extension&&$().mapSvg.extensions&&$().mapSvg.extensions[_data.options.extension]){var ext=$().mapSvg.extensions[_data.options.extension];ext&&ext.common(_this)}$.ajax({url:_data.options.source,success:function(xmlData){var $data=$(xmlData);var svgTag=$data.find("svg");_data.$svg=svgTag;_data.svgDefault.width=svgTag.attr("width");_data.svgDefault.height=svgTag.attr("height");_data.svgDefault.viewBox=svgTag.attr("viewBox");if(_data.svgDefault.width&&_data.svgDefault.height){_data.svgDefault.width=parseFloat(_data.svgDefault.width.replace(/px/g,""));_data.svgDefault.height=parseFloat(_data.svgDefault.height.replace(/px/g,""));_data.svgDefault.viewBox=_data.svgDefault.viewBox?_data.svgDefault.viewBox.split(" "):[0,0,_data.svgDefault.width,_data.svgDefault.height]}else if(_data.svgDefault.viewBox){_data.svgDefault.viewBox=_data.svgDefault.viewBox.split(" ");_data.svgDefault.width=parseFloat(_data.svgDefault.viewBox[2]);_data.svgDefault.height=parseFloat(_data.svgDefault.viewBox[3])}else{alert("MapSVG needs width/height or viewBox parameter to be present in SVG file.");return false}var geo=svgTag.attr("mapsvg:geoViewBox");if(geo){geo=geo.split(" ");if(geo.length==4){_data.mapIsGeo=true;_data.geoCoordinates=true;var v=svgTag.attr("mapsvg:calibratedViewBox");_data.geoViewBox={leftLon:parseFloat(geo[0]),topLat:parseFloat(geo[1]),rightLon:parseFloat(geo[2]),bottomLat:parseFloat(geo[3])};_data.mapLonDelta=_data.geoViewBox.rightLon-_data.geoViewBox.leftLon;_data.mapLatBottomDegree=_data.geoViewBox.bottomLat*3.14159/180}}$.each(_data.svgDefault.viewBox,function(i,v){_data.svgDefault.viewBox[i]=parseInt(v)}
3);_data._viewBox=_data.options.viewBox.length==4&&_data.options.viewBox||_data.svgDefault.viewBox;$.each(_data._viewBox,function(i,v){_data._viewBox[i]=parseFloat(v)});svgTag.attr("preserveAspectRatio","xMidYMid meet");svgTag.attr("width","100%");svgTag.attr("height","100%");_data.$svg.find("path, polygon, circle, ellipse, rect").each(function(index){if($(this)[0].getAttribute("id")){var region=new Region($(this),_data.options,_data.regionID,_this);_data.regions.push(region)}});_data.regions.sort(function(a,b){return a.id==b.id?0:+(a.id>b.id)||-1});_data.regions.forEach(function(region,index){_data.regionsDict[region.id]=index});_this.setSize(_data.options.width,_data.options.height,_data.options.responsive);_data.$map.append(svgTag);var v=_data._viewBox;_this.setViewBox(v);var markers=_data.options.markers||_data.options.marks||[];_this.setMarkers(markers);_this.setScroll(_data.options.scroll,true);_this.setZoom(_data.options.zoom);if(_data.options.tooltipsMode)_data.options.tooltips.mode=_data.options.tooltipsMode;_this.setTooltips(_data.options.tooltips);if(_data.options.popover)_data.options.popovers=_data.options.popover;_this.setPopovers(_data.options.popovers);if(_data.options.cursor)_this.setCursor(_data.options.cursor);_this.setTemplates(_data.options.templates);if(_browser.ie)_this.mapAdjustStrokes();$("#"+_data.$map.attr("id")+" [title]").each(function(){this.removeAttribute("title")});$("#"+_data.$map.attr("id")+" title").remove();loading.hide();if(!_data.options.backend&&_data.options.extension&&$().mapSvg.extensions&&$().mapSvg.extensions[_data.options.extension]){var ext=$().mapSvg.extensions[_data.options.extension];ext&&ext.frontend(_this)}_this.filtersSchema=new MapSVG.Filters(_data.options.filtersSchema);_this.database=new MapSVG.DatabaseService({map_id:_this.id,perpage:_data.options.database.pagination.on?_data.options.database.pagination.perpage:0,sortBy:_data.options.menu.sortBy,sortDir:_data.options.menu.sortDirection,table:"database"},_this);_data.events["databaseLoaded"]&&_this.database.on("dataLoaded",_data.events["databaseLoaded"]);_this.database.on("dataLoaded",function(){_this.addDataObjectsAsMarkers();_this.attachDataToRegions();_this.loadDirectory();_data.events["databaseLoaded"]&&_data.events["databaseLoaded"].call(_this)});_this.database.on("schemaChange",function(){_this.database.getAll()});_this.regionsDatabase=new MapSVG.DatabaseService({map_id:_this.id,perpage:0,sortBy:_data.options.menu.sortBy,sortDir:_data.options.menu.sortDirection,table:"regions"},_this);_data.events["regionsLoaded"]&&_this.regionsDatabase.on("dataLoaded",_data.events["regionsLoaded"]);_this.regionsDatabase.on("dataLoaded",function(){_this.loadDirectory();_data.events["regionsLoaded"]&&_data.events["regionsLoaded"].call(_this)});_data.menuDatabase=_data.options.menu.source=="regions"?_this.regionsDatabase:_this.database;_this.setMenu();_this.setEventHandlers();_this.database.getAll().done(function(data){_this.regionsDatabase.getAll().done(function(regions){_this.regionsDatabase.loadSchema().done(function(){var statuses=_this.regionsDatabase.getSchemaFieldByType("status");if(statuses){_this.regionsDatabase.getLoaded().forEach(function(object){var region=_this.getRegion(object.id);region.data=object;if(statuses&&object.status!==undefined&&object.status!==null){region.setStatus(object.status)}})}_this.loadDirectory();_this.setGauge();if(_data.events["afterLoad"]&&typeof _data.events["afterLoad"]==="function"){try{_data.events["afterLoad"].call(_this)}catch(err){}}});_this.updateSize();if(_data.options.afterLoad)_data.options.afterLoad.call(_this);if(_data.options.dataLoaded)_data.options.dataLoaded.call()})})}});return _this}};var _this=this.methods};$.fn.mapSvg=function(opts){var id=$(this).attr("id");if(typeof opts=="object"&&instances[id]===undefined){instances[id]=new mapSVG(this,opts);return instances[id].methods.init(opts,this)}else if(instances[id]){return instances[id].methods}else{return instances}}})(jQuery);(function(Math){var trimLeft=/^\s+/,trimRight=/\s+$/,tinyCounter=0,mathRound=Math.round,mathMin=Math.min,mathMax=Math.max,mathRandom=Math.random;function tinycolor(color,opts){color=color?color:"";opts=opts||{};if(color instanceof tinycolor){return color}if(!(this instanceof tinycolor)){return new tinycolor(color,opts)}var rgb=inputToRGB(color);this._originalInput=color,this._r=rgb.r,this._g=rgb.g,this._b=rgb.b,this._a=rgb.a,this._roundA=mathRound(100*this._a)/100,this._format=opts.format||rgb.format;this._gradientType=opts.gradientType;if(this._r<1){this._r=mathRound(this._r)}if(this._g<1){this._g=mathRound(this._g)}if(this._b<1){this._b=mathRound(this._b)}this._ok=rgb.ok;this._tc_id=tinyCounter++}tinycolor.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var rgb=this.toRgb();return(rgb.r*299+rgb.g*587+rgb.b*114)/1e3;
4},getLuminance:function(){var rgb=this.toRgb();var RsRGB,GsRGB,BsRGB,R,G,B;RsRGB=rgb.r/255;GsRGB=rgb.g/255;BsRGB=rgb.b/255;if(RsRGB<=.03928){R=RsRGB/12.92}else{R=Math.pow((RsRGB+.055)/1.055,2.4)}if(GsRGB<=.03928){G=GsRGB/12.92}else{G=Math.pow((GsRGB+.055)/1.055,2.4)}if(BsRGB<=.03928){B=BsRGB/12.92}else{B=Math.pow((BsRGB+.055)/1.055,2.4)}return.2126*R+.7152*G+.0722*B},setAlpha:function(value){this._a=boundAlpha(value);this._roundA=mathRound(100*this._a)/100;return this},toHsv:function(){var hsv=rgbToHsv(this._r,this._g,this._b);return{h:hsv.h*360,s:hsv.s,v:hsv.v,a:this._a}},toHsvString:function(){var hsv=rgbToHsv(this._r,this._g,this._b);var h=mathRound(hsv.h*360),s=mathRound(hsv.s*100),v=mathRound(hsv.v*100);return this._a==1?"hsv("+h+", "+s+"%, "+v+"%)":"hsva("+h+", "+s+"%, "+v+"%, "+this._roundA+")"},toHsl:function(){var hsl=rgbToHsl(this._r,this._g,this._b);return{h:hsl.h*360,s:hsl.s,l:hsl.l,a:this._a}},toHslString:function(){var hsl=rgbToHsl(this._r,this._g,this._b);var h=mathRound(hsl.h*360),s=mathRound(hsl.s*100),l=mathRound(hsl.l*100);return this._a==1?"hsl("+h+", "+s+"%, "+l+"%)":"hsla("+h+", "+s+"%, "+l+"%, "+this._roundA+")"},toHex:function(allow3Char){return rgbToHex(this._r,this._g,this._b,allow3Char)},toHexString:function(allow3Char){return"#"+this.toHex(allow3Char)},toHex8:function(){return rgbaToHex(this._r,this._g,this._b,this._a)},toHex8String:function(){return"#"+this.toHex8()},toRgb:function(){return{r:mathRound(this._r),g:mathRound(this._g),b:mathRound(this._b),a:this._a}},toRgbString:function(){return this._a==1?"rgb("+mathRound(this._r)+", "+mathRound(this._g)+", "+mathRound(this._b)+")":"rgba("+mathRound(this._r)+", "+mathRound(this._g)+", "+mathRound(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:mathRound(bound01(this._r,255)*100)+"%",g:mathRound(bound01(this._g,255)*100)+"%",b:mathRound(bound01(this._b,255)*100)+"%",a:this._a}},toPercentageRgbString:function(){return this._a==1?"rgb("+mathRound(bound01(this._r,255)*100)+"%, "+mathRound(bound01(this._g,255)*100)+"%, "+mathRound(bound01(this._b,255)*100)+"%)":"rgba("+mathRound(bound01(this._r,255)*100)+"%, "+mathRound(bound01(this._g,255)*100)+"%, "+mathRound(bound01(this._b,255)*100)+"%, "+this._roundA+")"},toName:function(){if(this._a===0){return"transparent"}if(this._a<1){return false}return hexNames[rgbToHex(this._r,this._g,this._b,true)]||false},toFilter:function(secondColor){var hex8String="#"+rgbaToHex(this._r,this._g,this._b,this._a);var secondHex8String=hex8String;var gradientType=this._gradientType?"GradientType = 1, ":"";if(secondColor){var s=tinycolor(secondColor);secondHex8String=s.toHex8String()}return"progid:DXImageTransform.Microsoft.gradient("+gradientType+"startColorstr="+hex8String+",endColorstr="+secondHex8String+")"},toString:function(format){var formatSet=!!format;format=format||this._format;var formattedString=false;var hasAlpha=this._a<1&&this._a>=0;var needsAlphaFormat=!formatSet&&hasAlpha&&(format==="hex"||format==="hex6"||format==="hex3"||format==="name");if(needsAlphaFormat){if(format==="name"&&this._a===0){return this.toName()}return this.toRgbString()}if(format==="rgb"){formattedString=this.toRgbString()}if(format==="prgb"){formattedString=this.toPercentageRgbString()}if(format==="hex"||format==="hex6"){formattedString=this.toHexString()}if(format==="hex3"){formattedString=this.toHexString(true)}if(format==="hex8"){formattedString=this.toHex8String()}if(format==="name"){formattedString=this.toName()}if(format==="hsl"){formattedString=this.toHslString()}if(format==="hsv"){formattedString=this.toHsvString()}return formattedString||this.toHexString()},clone:function(){return tinycolor(this.toString())},_applyModification:function(fn,args){var color=fn.apply(null,[this].concat([].slice.call(args)));this._r=color._r;this._g=color._g;this._b=color._b;this.setAlpha(color._a);return this},lighten:function(){return this._applyModification(lighten,arguments)},brighten:function(){return this._applyModification(brighten,arguments)},darken:function(){return this._applyModification(darken,arguments)},desaturate:function(){return this._applyModification(desaturate,arguments)},saturate:function(){return this._applyModification(saturate,arguments)},greyscale:function(){return this._applyModification(greyscale,arguments)},spin:function(){return this._applyModification(spin,arguments)},_applyCombination:function(fn,args){return fn.apply(null,[this].concat([].slice.call(args)))},analogous:function(){return this._applyCombination(analogous,arguments)},complement:function(){return this._applyCombination(complement,arguments)},monochromatic:function(){return this._applyCombination(monochromatic,arguments)},splitcomplement:function(){return this._applyCombination(splitcomplement,arguments)},triad:function(){return this._applyCombination(triad,arguments)},tetrad:function(){return this._applyCombination(tetrad,arguments)}};
vendor: 5,393 bytes, line 4
4tinycolor.fromRatio=function(color,opts){if(typeof color=="object"){var newColor={};for(var i in color){if(color.hasOwnProperty(i)){if(i==="a"){newColor[i]=color[i]}else{newColor[i]=convertToPercentage(color[i])}}}color=newColor}return tinycolor(color,opts)};function inputToRGB(color){var rgb={r:0,g:0,b:0};var a=1;var ok=false;var format=false;if(typeof color=="string"){color=stringInputToObject(color)}if(typeof color=="object"){if(isValidCSSUnit(color.r)&&isValidCSSUnit(color.g)&&isValidCSSUnit(color.b)){rgb=rgbToRgb(color.r,color.g,color.b);ok=true;format=String(color.r).substr(-1)==="%"?"prgb":"rgb"}else if(isValidCSSUnit(color.h)&&isValidCSSUnit(color.s)&&isValidCSSUnit(color.v)){color.s=convertToPercentage(color.s);color.v=convertToPercentage(color.v);rgb=hsvToRgb(color.h,color.s,color.v);ok=true;format="hsv"}else if(isValidCSSUnit(color.h)&&isValidCSSUnit(color.s)&&isValidCSSUnit(color.l)){color.s=convertToPercentage(color.s);color.l=convertToPercentage(color.l);rgb=hslToRgb(color.h,color.s,color.l);ok=true;format="hsl"}if(color.hasOwnProperty("a")){a=color.a}}a=boundAlpha(a);return{ok:ok,format:color.format||format,r:mathMin(255,mathMax(rgb.r,0)),g:mathMin(255,mathMax(rgb.g,0)),b:mathMin(255,mathMax(rgb.b,0)),a:a}}function rgbToRgb(r,g,b){return{r:bound01(r,255)*255,g:bound01(g,255)*255,b:bound01(b,255)*255}}function rgbToHsl(r,g,b){r=bound01(r,255);g=bound01(g,255);b=bound01(b,255);var max=mathMax(r,g,b),min=mathMin(r,g,b);var h,s,l=(max+min)/2;if(max==min){h=s=0}else{var d=max-min;s=l>.5?d/(2-max-min):d/(max+min);switch(max){case r:h=(g-b)/d+(g<b?6:0);break;case g:h=(b-r)/d+2;break;case b:h=(r-g)/d+4;break}h/=6}return{h:h,s:s,l:l}}function hslToRgb(h,s,l){var r,g,b;h=bound01(h,360);s=bound01(s,100);l=bound01(l,100);function hue2rgb(p,q,t){if(t<0)t+=1;if(t>1)t-=1;if(t<1/6)return p+(q-p)*6*t;if(t<1/2)return q;if(t<2/3)return p+(q-p)*(2/3-t)*6;return p}if(s===0){r=g=b=l}else{var q=l<.5?l*(1+s):l+s-l*s;var p=2*l-q;r=hue2rgb(p,q,h+1/3);g=hue2rgb(p,q,h);b=hue2rgb(p,q,h-1/3)}return{r:r*255,g:g*255,b:b*255}}function rgbToHsv(r,g,b){r=bound01(r,255);g=bound01(g,255);b=bound01(b,255);var max=mathMax(r,g,b),min=mathMin(r,g,b);var h,s,v=max;var d=max-min;s=max===0?0:d/max;if(max==min){h=0}else{switch(max){case r:h=(g-b)/d+(g<b?6:0);break;case g:h=(b-r)/d+2;break;case b:h=(r-g)/d+4;break}h/=6}return{h:h,s:s,v:v}}function hsvToRgb(h,s,v){h=bound01(h,360)*6;s=bound01(s,100);v=bound01(v,100);var i=Math.floor(h),f=h-i,p=v*(1-s),q=v*(1-f*s),t=v*(1-(1-f)*s),mod=i%6,r=[v,q,p,p,t,v][mod],g=[t,v,v,q,p,p][mod],b=[p,p,t,v,v,q][mod];return{r:r*255,g:g*255,b:b*255}}function rgbToHex(r,g,b,allow3Char){var hex=[pad2(mathRound(r).toString(16)),pad2(mathRound(g).toString(16)),pad2(mathRound(b).toString(16))];if(allow3Char&&hex[0].charAt(0)==hex[0].charAt(1)&&hex[1].charAt(0)==hex[1].charAt(1)&&hex[2].charAt(0)==hex[2].charAt(1)){return hex[0].charAt(0)+hex[1].charAt(0)+hex[2].charAt(0)}return hex.join("")}function rgbaToHex(r,g,b,a){var hex=[pad2(convertDecimalToHex(a)),pad2(mathRound(r).toString(16)),pad2(mathRound(g).toString(16)),pad2(mathRound(b).toString(16))];return hex.join("")}tinycolor.equals=function(color1,color2){if(!color1||!color2){return false}return tinycolor(color1).toRgbString()==tinycolor(color2).toRgbString()};tinycolor.random=function(){return tinycolor.fromRatio({r:mathRandom(),g:mathRandom(),b:mathRandom()})};function desaturate(color,amount){amount=amount===0?0:amount||10;var hsl=tinycolor(color).toHsl();hsl.s-=amount/100;hsl.s=clamp01(hsl.s);return tinycolor(hsl)}function saturate(color,amount){amount=amount===0?0:amount||10;var hsl=tinycolor(color).toHsl();hsl.s+=amount/100;hsl.s=clamp01(hsl.s);return tinycolor(hsl)}function greyscale(color){return tinycolor(color).desaturate(100)}function lighten(color,amount){amount=amount===0?0:amount||10;var hsl=tinycolor(color).toHsl();hsl.l+=amount/100;hsl.l=clamp01(hsl.l);return tinycolor(hsl)}function brighten(color,amount){amount=amount===0?0:amount||10;var rgb=tinycolor(color).toRgb();rgb.r=mathMax(0,mathMin(255,rgb.r-mathRound(255*-(amount/100))));rgb.g=mathMax(0,mathMin(255,rgb.g-mathRound(255*-(amount/100))));rgb.b=mathMax(0,mathMin(255,rgb.b-mathRound(255*-(amount/100))));return tinycolor(rgb)}function darken(color,amount){amount=amount===0?0:amount||10;var hsl=tinycolor(color).toHsl();hsl.l-=amount/100;hsl.l=clamp01(hsl.l);return tinycolor(hsl)}function spin(color,amount){var hsl=tinycolor(color).toHsl();var hue=(hsl.h+amount)%360;hsl.h=hue<0?360+hue:hue;return tinycolor(hsl)}function complement(color){var hsl=tinycolor(color).toHsl();hsl.h=(hsl.h+180)%360;return tinycolor(hsl)}function triad(color){var hsl=tinycolor(color).toHsl();var h=hsl.h;return[tinycolor(color),tinycolor({h:(h+120)%360,s:hsl.s,l:hsl.l}),tinycolor({h:(h+240)%360,s:hsl.s,l:hsl.l})]}function tetrad(color){var hsl=tinycolor(color).toHsl();var h=hsl.h;return[tinycolor(color),tinycolor({h:(h+90)%360,s:hsl.s,l:hsl.l}),tinycolor({h:(h+180)%360,s:hsl.s,l:hsl.l}),tinycolor({h:(h+270)%360,s:hsl.s,l:hsl.l})]}function splitcomplement(color){var hsl=tinycolor(color).toHsl();var h=hsl.h;return[tinycolor(color),tinycolor({h:(h+72)%360,s:hsl.s,l:hsl.l}),tinycolor({h:(h+216)%360,s:hsl.s,l:hsl.l})]}function analogous(color,results,slices){results=results||6;slices=slices||30;var hsl=tinycolor(color).toHsl();var part=360/slices;var ret=[tinycolor(color)];for(hsl.h=(hsl.h-(part*results>>
41)+720)%360;--results;){hsl.h=(hsl.h+part)%360;ret.push(tinycolor(hsl))}return ret}function monochromatic(color,results){results=results||6;var hsv=tinycolor(color).toHsv();var h=hsv.h,s=hsv.s,v=hsv.v;var ret=[];var modification=1/results;while(results--){ret.push(tinycolor({h:h,s:s,v:v}));v=(v+modification)%1}return ret}tinycolor.mix=function(color1,color2,amount){amount=amount===0?0:amount||50;var rgb1=tinycolor(color1).toRgb();var rgb2=tinycolor(color2).toRgb();var p=amount/100;var w=p*2-1;var a=rgb2.a-rgb1.a;var w1;if(w*a==-1){w1=w}else{w1=(w+a)/(1+w*a)}w1=(w1+1)/2;var w2=1-w1;var rgba={r:rgb2.r*w1+rgb1.r*w2,g:rgb2.g*w1+rgb1.g*w2,b:rgb2.b*w1+rgb1.b*w2,a:rgb2.a*p+rgb1.a*(1-p)};return tinycolor(rgba)};tinycolor.readability=function(color1,color2){var c1=tinycolor(color1);var c2=tinycolor(color2);return(Math.max(c1.getLuminance(),c2.getLuminance())+.05)/(Math.min(c1.getLuminance(),c2.getLuminance())+.05)};tinycolor.isReadable=function(color1,color2,wcag2){var readability=tinycolor.readability(color1,color2);var wcag2Parms,out;out=false;wcag2Parms=validateWCAG2Parms(wcag2);switch(wcag2Parms.level+wcag2Parms.size){case"AAsmall":case"AAAlarge":out=readability>=4.5;break;case"AAlarge":out=readability>=3;break;case"AAAsmall":out=readability>=7;break}return out};tinycolor.mostReadable=function(baseColor,colorList,args){var bestColor=null;var bestScore=0;var readability;var includeFallbackColors,level,size;args=args||{};includeFallbackColors=args.includeFallbackColors;level=args.level;size=args.size;for(var i=0;i<colorList.length;i++){readability=tinycolor.readability(baseColor,colorList[i]);if(readability>bestScore){bestScore=readability;bestColor=tinycolor(colorList[i])}}if(tinycolor.isReadable(baseColor,bestColor,{level:level,size:size})||!includeFallbackColors){return bestColor}else{args.includeFallbackColors=false;return tinycolor.mostReadable(baseColor,["#fff","#000"],args)}};var names=tinycolor.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee9
40",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"};var hexNames=tinycolor.hexNames=flip(names);function flip(o){var flipped={};for(var i in o){if(o.hasOwnProperty(i)){flipped[o[i]]=i}}return flipped}function boundAlpha(a){a=parseFloat(a);if(isNaN(a)||a<0||a>1){a=1}return a}function bound01(n,max){if(isOnePointZero(n)){n="100%"}var processPercent=isPercentage(n);n=mathMin(max,mathMax(0,parseFloat(n)));if(processPercent){n=parseInt(n*max,10)/100}if(Math.abs(n-max)<1e-6){return 1}return n%max/parseFloat(max)}function clamp01(val){return mathMin(1,mathMax(0,val))}function parseIntFromHex(val){return parseInt(val,16)}function isOnePointZero(n){return typeof n=="string"&&n.indexOf(".")!=-1&&parseFloat(n)===1}function isPercentage(n){return typeof n==="string"&&n.indexOf("%")!=-1}function pad2(c){return c.length==1?"0"+c:""+c}function convertToPercentage(n){if(n<=1){n=n*100+"%"}return n}function convertDecimalToHex(d){return Math.round(parseFloat(d)*255).toString(16)}function convertHexToDecimal(h){return parseIntFromHex(h)/255}var matchers=function(){var CSS_INTEGER="[-\\+]?\\d+%?";var CSS_NUMBER="[-\\+]?\\d*\\.\\d+%?";var CSS_UNIT="(?:"+CSS_NUMBER+")|(?:"+CSS_INTEGER+")";var PERMISSIVE_MATCH3="[\\s|\\(]+("+CSS_UNIT+")[,|\\s]+("+CSS_UNIT+")[,|\\s]+("+CSS_UNIT+")\\s*\\)?";var PERMISSIVE_MATCH4="[\\s|\\(]+("+CSS_UNIT+")[,|\\s]+("+CSS_UNIT+")[,|\\s]+("+CSS_UNIT+")[,|\\s]+("+CSS_UNIT+")\\s*\\)?";return{CSS_UNIT:new RegExp(CSS_UNIT),rgb:new RegExp("rgb"+PERMISSIVE_MATCH3),rgba:new RegExp("rgba"+PERMISSIVE_MATCH4),hsl:new RegExp("hsl"+PERMISSIVE_MATCH3),hsla:new RegExp("hsla"+PERMISSIVE_MATCH4),hsv:new RegExp("hsv"+PERMISSIVE_MATCH3),hsva:new RegExp("hsva"
vendor: 2,068 bytes, line 4
4+PERMISSIVE_MATCH4),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}}();function isValidCSSUnit(color){return!!matchers.CSS_UNIT.exec(color)}function stringInputToObject(color){color=color.replace(trimLeft,"").replace(trimRight,"").toLowerCase();var named=false;if(names[color]){color=names[color];named=true}else if(color=="transparent"){return{r:0,g:0,b:0,a:0,format:"name"}}var match;if(match=matchers.rgb.exec(color)){return{r:match[1],g:match[2],b:match[3]}}if(match=matchers.rgba.exec(color)){return{r:match[1],g:match[2],b:match[3],a:match[4]}}if(match=matchers.hsl.exec(color)){return{h:match[1],s:match[2],l:match[3]}}if(match=matchers.hsla.exec(color)){return{h:match[1],s:match[2],l:match[3],a:match[4]}}if(match=matchers.hsv.exec(color)){return{h:match[1],s:match[2],v:match[3]}}if(match=matchers.hsva.exec(color)){return{h:match[1],s:match[2],v:match[3],a:match[4]}}if(match=matchers.hex8.exec(color)){return{a:convertHexToDecimal(match[1]),r:parseIntFromHex(match[2]),g:parseIntFromHex(match[3]),b:parseIntFromHex(match[4]),format:named?"name":"hex8"}}if(match=matchers.hex6.exec(color)){return{r:parseIntFromHex(match[1]),g:parseIntFromHex(match[2]),b:parseIntFromHex(match[3]),format:named?"name":"hex"}}if(match=matchers.hex3.exec(color)){return{r:parseIntFromHex(match[1]+""+match[1]),g:parseIntFromHex(match[2]+""+match[2]),b:parseIntFromHex(match[3]+""+match[3]),format:named?"name":"hex"}}return false}function validateWCAG2Parms(parms){var level,size;parms=parms||{level:"AA",size:"small"};level=(parms.level||"AA").toUpperCase();size=(parms.size||"small").toLowerCase();if(level!=="AA"&&level!=="AAA"){level="AA"}if(size!=="small"&&size!=="large"){size="small"}return{level:level,size:size}}if(typeof module!=="undefined"&&module.exports){module.exports=tinycolor}else if(typeof define==="function"&&define.amd){define(function(){return tinycolor})}else{MapSVG.tinycolor=tinycolor}})(Math,MapSVG);

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.