(function(c){var x=function(v){function l(){this.pin=this.el=null;this.shift=6;this.drop=0;this.location=null;this.tooltiplink=this.tooltipthumb=!0;this.init=function(){this.el=c("<div></div>").addClass("mapplic-tooltip");this.close=c("<a></a>").addClass("mapplic-tooltip-close").attr("href","#").appendTo(this.el);this.close.on("click touchend",function(b){b.preventDefault();a.hideLocation();a.o.zoom&&!a.o.zoomoutclose||a.moveTo(.5,.5,a.fitscale,400,"easeInOutCubic")});this.tooltipthumb&&(this.thumbnail=
c("<img>").addClass("mapplic-tooltip-thumbnail").hide().appendTo(this.el));this.content=c("<div></div>").addClass("mapplic-tooltip-content").appendTo(this.el);this.title=c("<h4></h4>").addClass("mapplic-tooltip-title").appendTo(this.content);this.desc=c("<div></div>").addClass("mapplic-tooltip-description").appendTo(this.content);this.tooltiplink&&(this.link=c("<a>More</a>").addClass("mapplic-popup-link").attr("href","#").hide().appendTo(this.el));this.triangle=c("<div></div>").addClass("mapplic-tooltip-triangle").prependTo(this.el);
a.map.append(this.el);return this};this.show=function(b){if(b){var d=this;this.location=b;a.hovertip&&a.hovertip.hide();this.tooltipthumb&&(b.thumbnail?this.thumbnail.attr("src",b.thumbnail).show():this.thumbnail.hide());this.tooltiplink&&(b.link?this.link.attr("href",b.link).show():this.link.hide());this.title.text(b.title);b.description?this.desc.html(b.description):this.desc.empty();this.content[0].scrollTop=0;this.pin=c('.mapplic-pin[data-location="'+b.id+'"]');this.shift=0==this.pin.length?20:
Math.abs(parseFloat(this.pin.css("margin-top")))+20;c("img",this.el).off("load").on("load",function(){d.position();d.zoom(b)});this.position();this.el.stop().show();this.zoom(b)}};this.position=function(){if(this.location){var b=a.map.offset().left+a.map.width()*this.location.x-a.container.offset().left,c=a.map.offset().top+a.map.height()*this.location.y-a.container.offset().top,e=100*this.location.x,g=100*this.location.y,h=-this.el.outerHeight()-this.shift,k=-this.el.outerWidth()/2;if(a.o.smartip){var f=
.5;Math.abs(h)>c?(h=10,this.pin&&this.pin.length&&(h=this.pin.height()+parseFloat(this.pin.css("margin-top"))+20),this.el.addClass("mapplic-bottom")):this.el.removeClass("mapplic-bottom");this.el.outerWidth()/2>b?f=.5-(this.el.outerWidth()/2-b)/this.el.outerWidth():0>a.container.width()-b-this.el.outerWidth()/2&&(f=.5+(b+this.el.outerWidth()/2-a.container.width())/this.el.outerWidth());f=Math.max(0,Math.min(1,f));k=-this.el.outerWidth()*f;this.triangle.css("left",Math.max(5,Math.min(95,100*f))+"%")}this.el.css({left:e+
"%",top:g+"%",marginTop:h,marginLeft:k});this.drop=this.el.outerHeight()+this.shift}};this.zoom=function(b){var c=b.zoom?parseFloat(b.zoom):a.o.maxscale;var e=((a.container.height()-this.drop)/2+this.drop)/a.container.height();a.moveTo(b.x,b.y,c,600,"easeInOutCubic",e)};this.hide=function(){var a=this;this.location=null;this.el.stop().fadeOut(300,function(){a.desc&&a.desc.empty()})}}function m(){this.el=null;this.init=function(){this.el=c("<div></div>").addClass("mapplic-lightbox mfp-hide");this.title=
c("<h2></h2>").addClass("mapplic-lightbox-title").appendTo(this.el);this.desc=c("<div></div>").addClass("mapplic-lightbox-description").appendTo(this.el);this.link=c("<a>More</a>").addClass("mapplic-popup-link").attr("href","#").hide().appendTo(this.el);c("body").magnificPopup({delegate:".mapplic-popup-image",type:"image",removalDelay:300,mainClass:"mfp-fade"});a.el.append(this.el);return this};this.show=function(b){this.location=b;this.title.text(b.title);this.desc.html(b.description);b.link?this.link.attr("href",
b.link).show():this.link.hide();var d=this;c.magnificPopup.open({items:{src:this.el},type:"inline",removalDelay:300,mainClass:"mfp-fade",callbacks:{beforeClose:function(){d.hide()}}});var e=b.zoom?parseFloat(b.zoom):a.o.maxscale;a.moveTo(b.x,b.y,e,600,"easeInOutCubic");a.tooltip&&a.tooltip.hide()};this.hide=function(){this.location=null;a.hideLocation();a.o.zoom&&!a.o.zoomoutclose||a.moveTo(.5,.5,a.fitscale,400,"easeInOutCubic")}}function n(){this.pin=this.el=null;this.shift=6;this.hovertipdesc=!1;
this.init=function(){var b=this;this.el=c("<div></div>").addClass("mapplic-tooltip mapplic-hovertip");this.title=c("<h4></h4>").addClass("mapplic-tooltip-title").appendTo(this.el);this.hovertipdesc&&(this.desc=c("<div></div>").addClass("mapplic-tooltip-description").appendTo(this.el));this.triangle=c("<div></div>").addClass("mapplic-tooltip-triangle").appendTo(this.el);c(a.map).on("mouseover",".mapplic-layer a",function(){if(c(this).hasClass("mapplic-pin")){var d=c(this).data("location");b.pin=c('.mapplic-pin[data-location="'+
d+'"]');b.shift=Math.abs(parseFloat(b.pin.css("margin-top")))+20}else d=c(this).attr("xlink:href").slice(1),b.shift=20;(d=a.getLocationData(d))&&b.show(d)}).on("mouseout",function(){b.hide()});if(a.o.selector)c(a.map).on("mouseover",a.o.selector,function(){var d=a.getLocationData(c(this).attr("id"));b.shift=20;d&&b.show(d)}).on("mouseout",function(){b.hide()});a.map.append(this.el);return this};this.show=function(b){a.tooltip.location!=b&&(this.title.text(b.title),this.hovertipdesc&&this.desc.html(b.description),
this.position(b),this.el.stop().fadeIn(100))};this.position=function(b){var c=a.map.offset().left+a.map.width()*b.x-a.container.offset().left,e=a.map.offset().top+a.map.height()*b.y-a.container.offset().top,g=100*b.x;b=100*b.y;var h=-this.el.outerHeight()-this.shift,k=.5;Math.abs(h)>e?(h=10,this.pin&&this.pin.length&&(h=this.pin.height()+parseFloat(this.pin.css("margin-top"))+20),this.el.addClass("mapplic-bottom")):this.el.removeClass("mapplic-bottom");this.el.outerWidth()/2>c?k=.5-(this.el.outerWidth()/
2-c)/this.el.outerWidth():0>a.container.width()-c-this.el.outerWidth()/2&&(k=.5+(c+this.el.outerWidth()/2-a.container.width())/this.el.outerWidth());c=-this.el.outerWidth()*k;this.triangle.css("left",Math.max(10,Math.min(90,100*k))+"%");this.el.css({left:g+"%",top:b+"%",marginTop:h,marginLeft:c})};this.hide=function(){this.el.stop().fadeOut(200)}}function r(){this.param="location";this.init=function(){var a=this;this.check(0);window.onpopstate=function(b){b.state&&a.check(600);return!1}};this.check=
function(b){var c=this.getUrlParam(this.param);a.showLocation(c,b,!0)};this.getUrlParam=function(a){a=a.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");a=(new RegExp("[\\?&]"+a+"=([^&#]*)")).exec(location.search);return null===a?"":decodeURIComponent(a[1].replace(/\+/g," "))};this.update=function(a){a=window.location.protocol+"//"+window.location.host+window.location.pathname+"?"+this.param+"="+a;window.history.pushState({path:a},"",a)};this.clear=function(){history.pushState("",document.title,window.location.pathname)}}
function x(){this.param="location";this.init=function(){var a=this;this.check(0);c(window).on("hashchange",function(){a.check(600)})};this.check=function(b){var c=location.hash.slice(this.param.length+2);a.showLocation(c,b,!0)};this.update=function(a){window.location.hash=this.param+"-"+a};this.clear=function(){window.location.hash=this.param}}function C(){this.opacity=this.el=null;this.init=function(){this.el=c("<div></div>").addClass("mapplic-minimap").appendTo(a.container);this.el.click(function(b){b.preventDefault();
var d=(b.pageX-c(this).offset().left)/c(this).width();b=(b.pageY-c(this).offset().top)/c(this).height();a.moveTo(d,b,a.scale/a.fitscale,100)})};this.addLayer=function(a){var b=c("<div></div>").addClass("mapplic-minimap-layer").attr("data-floor",a.id).appendTo(this.el),e=this;c("<img>").attr("src",a.minimap).addClass("mapplic-minimap-background").appendTo(b);c("<div></div>").addClass("mapplic-minimap-overlay").appendTo(b);c("<img>").attr("src",a.minimap).addClass("mapplic-minimap-active").on("load",
function(){e.update();c(this).addClass("mapplic-clip-transition")}).appendTo(b)};this.show=function(a){c(".mapplic-minimap-layer",this.el).hide();c('.mapplic-minimap-layer[data-floor="'+a+'"]',this.el).show()};this.update=function(b,d){var e=c(".mapplic-minimap-active",this.el);void 0===b&&(b=a.x);void 0===d&&(d=a.y);var g=Math.round(a.container.width()/a.contentWidth/a.scale*this.el.width()),h=Math.round(a.container.height()/a.contentHeight/a.scale*this.el.height()),k=Math.round(-d/a.contentHeight/
a.scale*this.el.height()),f=Math.round(-b/a.contentWidth/a.scale*this.el.width()),D=f+g,l=k+h;e.each(function(){c(this)[0].style.clip="rect("+k+"px, "+D+"px, "+l+"px, "+f+"px)"});var y=this;this.el.show();this.el.css("opacity",1);clearTimeout(this.opacity);this.opacity=setTimeout(function(){y.el.css("opacity",0);setTimeout(function(){y.el.hide()},600)},2E3)}}function E(){this.list=this.el=null;this.init=function(){var b=this;this.el=c("<div></div>").addClass("mapplic-sidebar").appendTo(a.el);if(a.o.search){var d=
c("<form></form>").addClass("mapplic-search-form").submit(function(){return!1}).appendTo(this.el);a.clear=c("<button></button>").attr("type","button").addClass("mapplic-search-clear").click(function(){e.val("");e.keyup()}).appendTo(d);var e=c("<input>").attr({type:"text",spellcheck:"false",placeholder:"Search..."}).addClass("mapplic-search-input").keyup(function(){var a=c(this).val();b.search(a)}).prependTo(d)}d=c("<div></div>").addClass("mapplic-list-container").appendTo(this.el);this.list=c("<ol></ol>").addClass("mapplic-list").appendTo(d);
this.notfound=c("<p></p>").addClass("mapplic-not-found").text("Nothing found. Please try a different search.").appendTo(d);a.o.search||d.css("padding-top","0")};this.addCategories=function(a){var b=this.list;a&&c.each(a,function(a,d){var e=c("<li></li>").addClass("mapplic-list-category").attr("data-category",d.id),k=c("<ol></ol>").css("border-color",d.color).appendTo(e);"false"==d.show?k.hide():e.addClass("mapplic-opened");var f=c("<a></a>").attr("href","#").attr("title",d.title).css("background-color",
d.color).text(d.title).prependTo(e);f.on("click",function(a){a.preventDefault();e.toggleClass("mapplic-opened");k.slideToggle(200)});d.icon&&c("<img>").attr("src",d.icon).addClass("mapplic-list-thumbnail").prependTo(f);c("<span></span>").text("0").addClass("mapplic-list-count").prependTo(f);b.append(e)})};this.addLocation=function(b){var d=c("<li></li>").addClass("mapplic-list-location").addClass("mapplic-list-shown").attr("data-location",b.id),e=c("<a></a>").attr("href","#").click(function(d){d.preventDefault();
a.showLocation(b.id,600);668>c(window).width()&&c("html, body").animate({scrollTop:a.container.offset().top},400)}).appendTo(d);b.thumbnail&&c("<img>").attr("src",b.thumbnail).addClass("mapplic-list-thumbnail").appendTo(e);c("<h4></h4>").text(b.title).appendTo(e);c("<span></span>").html(b.about).appendTo(e);e=c('.mapplic-list-category[data-category="'+b.category+'"]');e.length?c("ol",e).append(d):this.list.append(d);c(".mapplic-list-count",e).text(c(".mapplic-list-shown",e).length)};this.search=function(b){b?
a.clear.fadeIn(100):a.clear.fadeOut(100);c(".mapplic-list li",a.el).each(function(){0>c(this).text().search(new RegExp(b,"i"))?(c(this).removeClass("mapplic-list-shown"),c(this).slideUp(200)):(c(this).addClass("mapplic-list-shown"),c(this).show())});c(".mapplic-list > li",a.el).each(function(){var a=c(".mapplic-list-shown",this).length;c(".mapplic-list-count",this).text(a)});0<c(".mapplic-list > li.mapplic-list-shown").length?this.notfound.fadeOut(200):this.notfound.fadeIn(200)}}function F(){this.el=
null;this.init=function(){this.el=c("<div></div>").addClass("mapplic-coordinates").appendTo(a.container);this.el.append("x: ");c("<code></code>").addClass("mapplic-coordinates-x").appendTo(this.el);this.el.append(" y: ");c("<code></code>").addClass("mapplic-coordinates-y").appendTo(this.el);c(".mapplic-layer",a.map).on("mousemove",function(b){var d=(b.pageX-a.map.offset().left)/a.map.width();b=(b.pageY-a.map.offset().top)/a.map.height();c(".mapplic-coordinates-x").text(parseFloat(d).toFixed(4));c(".mapplic-coordinates-y").text(parseFloat(b).toFixed(4))});
return this}}function G(){this.el=null;this.init=function(){this.el=c("<a></a>").attr("href","#").addClass("mapplic-clear-button").appendTo(a.container);this.el.on("click touchstart",function(b){b.preventDefault();a.hideLocation();a.moveTo(.5,.5,a.fitscale,400,"easeInOutCubic")});return this}}function H(){this.el=null;this.init=function(){this.el=c("<div></div>").addClass("mapplic-zoom-buttons").appendTo(a.container);a.o.clearbutton||this.el.css("bottom","0");this.zoomin=c("<a></ha>").attr("href",
"#").addClass("mapplic-zoomin-button").appendTo(this.el);this.zoomin.on("click touchstart",function(b){b.preventDefault();b=a.scale;a.scale=u(b+.8*b);a.x=p(a.x-(a.container.width()/2-a.x)*(a.scale/b-1));a.y=q(a.y-(a.container.height()/2-a.y)*(a.scale/b-1));t(a.x,a.y,a.scale,400,"easeInOutCubic")});this.zoomout=c("<a></ha>").attr("href","#").addClass("mapplic-zoomout-button").appendTo(this.el);this.zoomout.on("click touchstart",function(b){b.preventDefault();b=a.scale;a.scale=u(b-.4*b);a.x=p(a.x-(a.container.width()/
2-a.x)*(a.scale/b-1));a.y=q(a.y-(a.container.height()/2-a.y)*(a.scale/b-1));t(a.x,a.y,a.scale,400,"easeInOutCubic")});return this};this.update=function(b){this.zoomin.removeClass("mapplic-disabled");this.zoomout.removeClass("mapplic-disabled");b==a.fitscale?this.zoomout.addClass("mapplic-disabled"):b==a.o.maxscale&&this.zoomin.addClass("mapplic-disabled")}}function I(){this.el=null;this.init=function(){c("<a></a>").attr("href","#").attr("href","#").addClass("mapplic-fullscreen-button").click(function(b){b.preventDefault();
a.el.toggleClass("mapplic-fullscreen");c(document).resize()}).appendTo(a.container);c(document).keyup(function(a){27===a.keyCode&&(c(".mapplic-element.mapplic-fullscreen").removeClass("mapplic-fullscreen"),c(document).resize())})}}var a=this;a.o={source:"locations.json",selector:"[id^=landmark] > *",landmark:!1,mapfill:!1,height:420,markers:!0,minimap:!0,sidebar:!0,search:!0,deeplinking:!0,clearbutton:!0,zoombuttons:!0,zoomoutclose:!1,action:"tooltip",lightbox:!1,hovertip:!0,smartip:!0,fillcolor:"#4d5e6d",
fullscreen:!0,developer:!1,mousewheel:!0,alphabetic:!1,maxscale:3,zoom:!0};a.el=v;a.init=function(b){a.o=c.extend(a.o,b);a.el.addClass("mapplic-element mapplic-loading").height(a.o.height);"string"===typeof a.o.source?c.getJSON(a.o.source,function(b){z(b);a.el.removeClass("mapplic-loading")}).fail(function(){console.error("Couldn't load map data. (Make sure to run the script through web server)");a.el.removeClass("mapplic-loading").addClass("mapplic-error");alert("Data file missing or invalid!\nMake sure to run the script through web server.")}):
(z(a.o.source),a.el.removeClass("mapplic-loading"));return a};var z=function(b){a.data=b;var d=null;a.o.landmark=a.el.data("landmark");a.o.landmark&&(a.o.sidebar=!1,a.o.zoombuttons=!1,a.o.deeplinking=!1);a.container=c("<div></div>").addClass("mapplic-container").appendTo(a.el);a.map=c("<div></div>").addClass("mapplic-map").appendTo(a.container);a.o.zoom&&a.map.addClass("mapplic-zoomable");a.levelselect=c("<select></select>").addClass("mapplic-levels-select");a.contentWidth=parseFloat(b.mapwidth);
a.contentHeight=parseFloat(b.mapheight);a.o.minimap&&(a.minimap=new C,a.minimap.init());a.o.sidebar?(a.sidebar=new E,a.sidebar.init(),a.sidebar.addCategories(b.categories)):a.container.css("width","100%");var e=0;b.levels&&c.each(b.levels,function(b,k){var f=k.map,h=f.substr(f.lastIndexOf(".")+1).toLowerCase(),g=c("<div></div>").addClass("mapplic-layer").attr("data-floor",k.id).hide().appendTo(a.map);switch(h){case "jpg":case "jpeg":case "png":case "gif":c("<img>").attr("src",f).addClass("mapplic-map-image").appendTo(g);
break;case "svg":c("<div></div>").addClass("mapplic-map-image").load(f,function(){c(a.o.selector,this).each(function(){var b=a.getLocationData(c(this).attr("id"));if(b){c(this).attr("class","mapplic-clickable");b.el=c(this);var d=null;b.fill?d=b.fill:a.o.fillcolor&&(d=a.o.fillcolor);d&&(c(this).css("fill",d),c("> *",this).css("fill",d));a.o.landmark===b.id&&c(this).attr("class","mapplic-active")}});c(a.o.selector,this).on("click touchend",function(){a.dragging||a.showLocation(c(this).attr("id"),600)});
c("svg a",this).each(function(){var b=a.getLocationData(c(this).attr("xlink:href").substr(1));b&&(c(this).attr("class","mapplic-clickable"),b.el=c(this))});c("svg a",this).click(function(b){var d=c(this).attr("xlink:href").substr(1);a.showLocation(d,600);b.preventDefault()})}).appendTo(g);break;default:alert("File type "+h+" is not supported!")}a.minimap&&a.minimap.addLayer(k);a.levelselect.prepend(c("<option></option>").attr("value",k.id).text(k.title));if(!d||k.show)d=k.id;c.each(k.locations,function(b,
d){if(d.lat&&d.lng){var e=A(d.lat,d.lng);d.x=e.x;d.y=e.y}e=100*d.y;var k=100*d.x;d.pin||(d.pin="default");-1==d.pin.indexOf("hidden")&&a.o.markers&&(e=c("<a></a>").attr("href","#").addClass("mapplic-pin").css({top:e+"%",left:k+"%"}).appendTo(g),e.on("click touchend",function(b){b.preventDefault();a.showLocation(d.id,600)}),d.label&&e.html(d.label),d.fill&&e.css("background-color",d.fill),e.attr("data-location",d.id),e.addClass(d.pin),d.el=e);a.sidebar&&a.sidebar.addLocation(d)});e++});a.tooltip=(new l).init();
a.o.lightbox&&(a.lightbox=(new m).init());a.o.hovertip&&(a.hovertip=(new n).init());a.o.clearbutton&&(a.clearbutton=(new G).init());a.o.zoombuttons&&(a.zoombuttons=(new H).init());a.o.fullscreen&&(a.fullscreen=(new I).init());a.o.developer&&(a.devtools=(new F).init());console.log(a.devtools);if(1<e){a.levels=c("<div></div>").addClass("mapplic-levels");b=c('<a href="#"></a>').addClass("mapplic-levels-up").appendTo(a.levels);a.levelselect.appendTo(a.levels);var g=c('<a href="#"></a>').addClass("mapplic-levels-down").appendTo(a.levels);
a.container.append(a.levels);a.levelselect.change(function(){var b=c(this).val();a.switchLevel(b)});b.click(function(b){b.preventDefault();c(this).hasClass("mapplic-disabled")||a.switchLevel("+")});g.click(function(b){b.preventDefault();c(this).hasClass("mapplic-disabled")||a.switchLevel("-")})}a.switchLevel(d);c(window).resize(function(){if(668>c(window).width())if(a.el.hasClass("mapplic-fullscreen"))a.container.height(c(window).height());else{var b=Math.min(Math.max(a.container.width()*a.contentHeight/
a.contentWidth,2*c(window).height()/3),c(window).height()-66);a.container.height(b)}else a.container.height("100%");b=a.container.width()/a.contentWidth;var d=a.container.height()/a.contentHeight;a.fitscale=a.o.mapfill?b>d?b:d:b<d?b:d;a.scale=u(a.scale);a.x=p(a.x);a.y=q(a.y);t(a.x,a.y,a.scale,0)}).resize();a.o.landmark?a.showLocation(a.o.landmark,0):(b=a.getLocationData("init"))?a.moveTo(b.x,b.y,parseFloat(b.zoom),0):a.moveTo(.5,.5,a.fitscale,0);a.o.deeplinking&&(a.deeplinking=history.pushState?new r:
new x,a.deeplinking.init());a.el.trigger("mapready",a);a.o.zoom&&J()},J=function(){var b=a.map,d=c(".mapplic-map-image",a.map);document.ondragstart=function(){return!1};d.on("mousedown",function(d){a.dragging=!1;b.data("mouseX",d.pageX);b.data("mouseY",d.pageY);b.is(":animated")&&(b.stop(),a.x=p(b.offset().left-a.container.offset().left),a.y=q(b.offset().top-a.container.offset().top),a.scale=u(b.width()/a.contentWidth));b.addClass("mapplic-dragging");a.map.on("mousemove",function(c){a.dragging=!0;
var d=c.pageX-b.data("mouseX")+a.x;c=c.pageY-b.data("mouseY")+a.y;d=p(d);c=q(c);t(d,c);b.data("lastX",d);b.data("lastY",c)});c(document).on("mouseup",function(){a.x=b.data("lastX");a.y=b.data("lastY");a.map.off("mousemove");c(document).off("mouseup");b.removeClass("mapplic-dragging")})});a.el.on("dblclick",".mapplic-map-image",function(b){b.preventDefault();var c=a.scale;a.scale=u(2*c);a.x=p(a.x-(b.pageX-a.container.offset().left-a.x)*(a.scale/c-1));a.y=q(a.y-(b.pageY-a.container.offset().top-a.y)*
(a.scale/c-1));t(a.x,a.y,a.scale,400,"easeInOutCubic")});a.o.mousewheel&&c(".mapplic-layer",a.el).bind("mousewheel DOMMouseScroll",function(b,c){var d=a.scale;a.scale=u(d+d*c/5);b.preventDefault();a.x=p(a.x-(b.pageX-a.container.offset().left-a.x)*(a.scale/d-1));a.y=q(a.y-(b.pageY-a.container.offset().top-a.y)*(a.scale/d-1));t(a.x,a.y,a.scale,200,"easeOutCubic")});if(!("ontouchstart"in window||"onmsgesturechange"in window))return!0;d.on("touchstart",function(c){a.dragging=!1;c=c.originalEvent;var e=
b.position();b.data("touchY",c.changedTouches[0].pageY-e.top);b.data("touchX",c.changedTouches[0].pageX-e.left);d.on("touchmove",function(c){c.preventDefault();a.dragging=!0;c=c.originalEvent;1==c.touches.length?(a.x=p(c.changedTouches[0].pageX-b.data("touchX")),a.y=q(c.changedTouches[0].pageY-b.data("touchY")),t(a.x,a.y,a.scale,50)):d.off("touchmove")});d.on("touchend",function(a){d.off("touchmove touchend")})});var e=new Hammer(a.map[0],{transform_always_block:!0,drag_block_horizontal:!0,drag_block_vertical:!0});
e.get("pinch").set({enable:!0});var g=1,h;e.on("pinchstart",function(b){a.dragging=!1;h=g=a.scale/a.fitscale});e.on("pinch",function(b){a.dragging=!0;1!=b.scale&&(g=Math.max(1,Math.min(h*b.scale,100)));var c=a.scale;a.scale=u(g*a.fitscale);a.x=p(a.x-(b.center.x-a.container.offset().left-a.x)*(a.scale/c-1));a.y=q(a.y-(b.center.y-a.y)*(a.scale/c-1));t(a.x,a.y,a.scale,100)})},A=function(b,c){var d=a.data.rightLng-a.data.leftLng,g=a.data.bottomLat*Math.PI/180,h=a.data.mapwidth/d*360/(2*Math.PI);g=h/2*
Math.log((1+Math.sin(g))/(1-Math.sin(g)));b=b*Math.PI/180;return{x:a.data.mapwidth/d*(c-a.data.leftLng)/a.data.mapwidth,y:(a.data.mapheight-(h/2*Math.log((1+Math.sin(b))/(1-Math.sin(b)))-g))/a.data.mapheight}},B=function(a,c){var b=a.attr("class");-1==b.indexOf(c)&&a.attr("class",b+" "+c)},w=function(a,c){var b=a.attr("class");b&&a.attr("class",b.replace(c,"").trim())},p=function(b){var c=a.container.width()-a.contentWidth*a.scale;0>c?0<b?b=0:b<c&&(b=c):b=c/2;return b},q=function(b){var c=a.container.height()-
a.contentHeight*a.scale;0>c?0<=b?b=0:b<c&&(b=c):b=c/2;return b},u=function(b){b<a.fitscale?b=a.fitscale:b>a.o.maxscale&&(b=a.o.maxscale);a.zoombuttons&&a.zoombuttons.update(b);return b},t=function(b,c,e,g,h){void 0!==e?a.map.stop().animate({left:b,top:c,width:a.contentWidth*e,height:a.contentHeight*e},g,h,function(){a.tooltip&&a.tooltip.position()}):a.map.css({left:b,top:c});a.tooltip&&a.tooltip.position();a.minimap&&a.minimap.update(b,c);a.el.trigger("positionchanged",location)};a.switchLevel=function(b){switch(b){case "+":b=
c("option:selected",a.levelselect).removeAttr("selected").prev().prop("selected","selected").val();break;case "-":b=c("option:selected",a.levelselect).removeAttr("selected").next().prop("selected","selected").val();break;default:c('option[value="'+b+'"]',a.levelselect).prop("selected","selected")}if(b){var d=c('.mapplic-layer[data-floor="'+b+'"]',a.el);if(!d.is(":visible")){a.tooltip&&a.tooltip.hide();c(".mapplic-layer:visible",a.map).hide();d.show();a.minimap&&a.minimap.show(b);d=a.levelselect.get(0).selectedIndex;
var e=c(".mapplic-levels-up",a.el),g=c(".mapplic-levels-down",a.el);e.removeClass("mapplic-disabled");g.removeClass("mapplic-disabled");0==d?e.addClass("mapplic-disabled"):d==a.levelselect.get(0).length-1&&g.addClass("mapplic-disabled");a.el.trigger("levelswitched",b)}}};a.moveTo=function(b,c,e,g,h,k){g="undefined"!==typeof g?g:400;k="undefined"!==typeof k?k:.5;e="undefined"!==typeof e?e:a.scale/a.fitscale;a.scale=u(e);a.x=p(.5*a.container.width()-a.scale*a.contentWidth*b);a.y=q(a.container.height()*
k-a.scale*a.contentHeight*c);t(a.x,a.y,a.scale,g,h)};a.getLocationData=function(b){var d=null;c.each(a.data.levels,function(a,g){c.each(g.locations,function(a,c){c.id==b&&(d=c)})});return d};a.showLocation=function(b,d,e){c.each(a.data.levels,function(d,h){if(h.id==b)return a.switchLevel(h.id),!1;c.each(h.locations,function(d,f){if(f.id==b){switch(f.action&&"default"!=f.action?f.action:a.o.action){case "open-link":return window.location.href=f.link,!1;case "open-link-new-tab":return window.open(f.link),
!1;case "select":return f.el&&(-1<f.el.attr("class").indexOf("mapplic-active")?w(f.el,"mapplic-active"):B(f.el,"mapplic-active")),!1;case "none":var g=f.zoom?parseFloat(f.zoom):a.o.maxscale;a.switchLevel(h.id);a.moveTo(f.x,f.y,g,600,"easeInOutCubic");break;case "lightbox":a.switchLevel(h.id);a.lightbox.show(f);break;default:a.switchLevel(h.id),a.tooltip.show(f)}w(c(".mapplic-active",a.el),"mapplic-active");f.el&&B(f.el,"mapplic-active");a.deeplinking&&!e&&a.deeplinking.update(b);a.el.trigger("locationopened",
f)}})})};a.hideLocation=function(){w(c(".mapplic-active",a.el),"mapplic-active");a.deeplinking&&a.deeplinking.clear();a.tooltip&&a.tooltip.hide();a.el.trigger("locationclosed")};a.updateLocation=function(b){var c=a.getLocationData(b);c.id==b&&c.el.is("a")&&(c.lat&&c.lng&&(b=A(c.lat,c.lng),c.x=b.x,c.y=b.y),c.el.css({top:100*c.y+"%",left:100*c.x+"%"}))}};c.extend(c.easing,{def:"easeOutQuad",swing:function(c,l,m,n,r){return jQuery.easing[jQuery.easing.def](c,l,m,n,r)},easeOutQuad:function(c,l,m,n,r){return-n*
(l/=r)*(l-2)+m},easeOutCubic:function(c,l,m,n,r){return n*((l=l/r-1)*l*l+1)+m},easeInOutCubic:function(c,l,m,n,r){return 1>(l/=r/2)?n/2*l*l*l+m:n/2*((l-=2)*l*l+2)+m}});c.fn.mapplic=function(v){return this.each(function(){var l=c(this);if(!l.data("mapplic")){var m=(new x(l)).init(v);l.data("mapplic",m)}})}})(jQuery);