{"version":3,"names":["calledFromGeoIp","mapdetailinit","$maps","$","length","attr","each","self","this","loadMapify","data","mapOptions","JSON","stringify","parseJSON","pins","generatePinsList","setMapPins","getDirectionsUrl","i","split","join","replaceHrefForKhws","replaceButtonHref","mapId","lastSearchTermInLocator","parse","decodeURIComponent","window","sessionStorage","getItem","getGeoIps","replaceNameLocationForBaidu","formatUrlAndAssign","url","formattedUrl","replace","hrefSplit","miHref","tempObj","geoCoords","userLocation","lat","lng","setUserLatitudeAndLongitude","beforeOrigin","afterOriginSplit","finalURL1","description","originName","nameSplit","destination","removeClass","schemaOrg","html","address","streetAddress","addressLocality","btnHref","replaceString","latlng","latlngorigin","latlngdestiny","getBaiduName","origin","destiny","encodeURIComponent","BMap","Geolocation","getCurrentPosition","r","getStatus","latitude","longitude","catchError","err","navigator","geolocation","changeURL","position","attachEventHandler","coords","destLatLong","beforeRtxt","beforeOriginLatLong","direction","posLat","parseFloat","posLon","ajax","type","xhrFields","withCredentials","dataType","jsonpCallback","async","crossDomain","positionError","code","TIMEOUT","POSITION_UNAVAILABLE","PERMISSION_DENIED","getPinColor","pinColor","ind","color","pinClass","pinURI","toLowerCase","aMap","zoomMap","options","zoom","latitudeMap","center","longitudeMap","parseInt","toUpperCase","pinClassName","pinHeight","pin","height","pinWidth","width","mapifyOptions","key","disableMouse","disableZoom","mapType","showScale","cssClass","image","defaultPin","mapify","duplicated","isDuplicated","push","defaultPinArray","setTimeout","component","index","includes","parent","mapPins","Latitude","Longitude","mapProvider","mapifyID","mapifyURI","append","$map","title","eventInfo","startDate","endDate","city","province","country","pinImage","phone","pinsArray","pinsList","isChemicalDistributor","item","Title","Url","StartDate","EndDate","City","Province","Country","Phone","PinImage","pinsListStr","document","ready","on","addClass","jQuery","myCallBackMethod","successResponse","myCallBackMethodD","successResponseD","mode","timer","setInterval","hide","clearInterval","analytics","eventConfig","target","events","eventTarget","eventType","tags","event1","eventCategory","eventAction","eventLabel","external_url","page_type","page_title","page_bu","environment","page_language","sitecore_contact_id","pardot_cookie_id"],"sources":["assets/feature/Map/js/_map.js"],"sourcesContent":["var calledFromGeoIp = false;\r\n(function ($) {\r\n $(document).ready(function () {\r\n if ($('.sp01-map').length) {\r\n var mapId = $('.sp01-map').attr('id');\r\n }\r\n });\r\n\r\n var showconsent = $('.component.sp01-map').attr('data-show-consent');\r\n if (showconsent == 'false') {\r\n $(window).on('load', mapdetailinit);\r\n } else {\r\n $('.component.sp01-map').addClass('hide-map-div');\r\n }\r\n\r\n}(window.jQuery));\r\n\r\n\r\n\r\nfunction mapdetailinit() {\r\n var $maps = $('.component.sp01-map');\r\n if ($('.sp01-map').length) {\r\n var mapIdBaidu = $('.sp01-map').attr('id');\r\n }\r\n if (!$maps.length) return false;\r\n $maps.each(function () {\r\n var self = $(this);\r\n loadMapify(self.data('map-provider'));\r\n var mapOptions = JSON.stringify(self.data('map-options')),\r\n data = $.parseJSON(mapOptions);\r\n data.pins = generatePinsList(self);\r\n setMapPins(self, data);\r\n });\r\n if ($('.btn-direction-loc').length > 0) {\r\n var getDirectionsUrl = $('.btn-direction-loc a,a.directionBtnMobile');\r\n for (var i = 0; i < getDirectionsUrl.length; i++) {\r\n $(getDirectionsUrl[i]).attr(\"href\", $(getDirectionsUrl[i]).attr(\"href\").split(\"#\").join(\"\"));\r\n }\r\n replaceHrefForKhws();\r\n replaceButtonHref();\r\n\r\n if ($('.sp01-map').length) {\r\n var mapId = $('.sp01-map').attr('id');\r\n var lastSearchTermInLocator = JSON.parse(decodeURIComponent(window.sessionStorage.getItem(\"lastSearchTermInLocator\")));\r\n if (lastSearchTermInLocator == null || lastSearchTermInLocator == \"null\") {\r\n if (mapId != \"baiduMap\") {\r\n getGeoIps();\r\n }\r\n else {\r\n replaceNameLocationForBaidu();\r\n }\r\n }\r\n }\r\n }\r\n}\r\nfunction formatUrlAndAssign(url) {\r\n var formattedUrl = url.replace(\"#\", \"\");\r\n $('.btn-direction-loc a,a.directionBtnMobile').attr('href', formattedUrl);\r\n}\r\nfunction replaceButtonHref() {\r\n if (!$('.sp01-map').length) {\r\n return;\r\n }\r\n var mapId = $('.sp01-map').attr('id');\r\n var lastSearchTermInLocator = JSON.parse(decodeURIComponent(window.sessionStorage.getItem(\"lastSearchTermInLocator\")));\r\n var miHref = $('.btn-direction-loc a').attr('href');\r\n var hrefSplit;\r\n if (lastSearchTermInLocator !== null && lastSearchTermInLocator !== \"null\") {\r\n var tempObj = lastSearchTermInLocator;\r\n var geoCoords = tempObj.userLocation.lat + \",\" + tempObj.userLocation.lng;\r\n if (mapId !== \"baiduMap\") {\r\n setUserLatitudeAndLongitude(geoCoords, miHref, mapId);\r\n } else {\r\n hrefSplit = miHref.split('origin=latlng:');\r\n var beforeOrigin = hrefSplit[0];\r\n var afterOrigin = hrefSplit[1];\r\n var afterOriginSplit = afterOrigin.split('|');\r\n var latlngorigin = tempObj.userLocation.lat + \",\" + tempObj.userLocation.lng;\r\n var finalURL1 = beforeOrigin + 'origin=latlng:' + latlngorigin + '|' + afterOriginSplit[1] + '|' + afterOriginSplit[2];\r\n var description = tempObj.userLocation.originName;\r\n var nameSplit = finalURL1.split('name:');\r\n var destination = (nameSplit[1]).split('&destination=')[1];\r\n var finalURL = nameSplit[0] + 'name:' + description + '&destination=' + destination + 'name:' + nameSplit[2];\r\n formatUrlAndAssign(finalURL);\r\n $('.btn-direction-loc a,a.directionBtnMobile').removeClass(\"d-none\");\r\n }\r\n }\r\n\r\n if ($('#schemaorg-locator').length) {\r\n\r\n if (mapId == \"baiduMap\") {\r\n var schemaOrg = JSON.parse($('#schemaorg-locator').html());\r\n if (schemaOrg.address) {\r\n var address = schemaOrg.address.streetAddress + ' ' + schemaOrg.address.addressLocality;\r\n var btnHref = $('.btn-direction-loc a').attr('href');\r\n var replaceString = address.length > 0 ? '|name:' + address : '|name:destination';\r\n btnHref = btnHref.replace('|name:destination', replaceString);\r\n formatUrlAndAssign(btnHref);\r\n }\r\n }\r\n }\r\n\r\n}\r\n\r\nfunction replaceNameLocationForBaidu() {\r\n if (!$('.sp01-map').length) return false;\r\n var miHref = $('.btn-direction-loc a').attr('href');\r\n var latlng = miHref.split('latlng:');\r\n var latlngorigin = latlng[1].split('|name:')[0];\r\n var latlngdestiny = latlng[2].split('|name:')[0];\r\n getBaiduName(latlngorigin, 'o');\r\n if (latlng[2].split('|name:')[1].split(\"&mode\")[0] === \"destination\") {\r\n getBaiduName(latlngdestiny, 'd');\r\n }\r\n}\r\n\r\nfunction replaceHrefForKhws() {\r\n if (!$('.sp01-map').length) return false;\r\n var mapId = $('.sp01-map').attr('id');\r\n\r\n var miHref = $('.btn-direction-loc a').attr('href');\r\n var hrefSplit = miHref.split('&origin=');\r\n var origin, destiny, finalURL = '';\r\n if (hrefSplit.length > 1) {\r\n origin = hrefSplit[1];\r\n destiny = (hrefSplit[0]).split('&query=')[1];\r\n switch (mapId) {\r\n case \"googleMap\":\r\n finalURL = 'https://maps.google.com?daddr=' + destiny + '&saddr=' + origin;\r\n formatUrlAndAssign(finalURL);\r\n $('.btn-direction-loc a,a.directionBtnMobile').removeClass(\"d-none\");\r\n break;\r\n case \"yandexMap\":\r\n finalURL = 'https://yandex.ru/maps/?rtext=' + encodeURIComponent(origin) + '~' + encodeURIComponent(destiny) + '&rtt=mt';\r\n formatUrlAndAssign(finalURL);\r\n $('.btn-direction-loc a,a.directionBtnMobile').removeClass(\"d-none\");\r\n break;\r\n case \"baiduMap\":\r\n break;\r\n case \"bingMap\":\r\n finalURL = 'https://www.bing.com/maps?rtp=pos.' + origin.split(\",\").join(\"_\") + '~pos.' + destiny.split(\",\").join(\"_\");\r\n formatUrlAndAssign(finalURL);\r\n $('.btn-direction-loc a,a.directionBtnMobile').removeClass(\"d-none\");\r\n break;\r\n\r\n }\r\n }\r\n\r\n}\r\n\r\nfunction getGeoIps() {\r\n var mapId = $('.sp01-map').attr('id');\r\n if (mapId == \"baiduMap\") {\r\n var geolocation = new BMap.Geolocation();\r\n geolocation.getCurrentPosition(function (r) {\r\n if (this.getStatus() == 0) {\r\n calledFromGeoIp = true;\r\n var miHref = $('.btn-direction-loc a').attr('href');\r\n hrefSplit = miHref.split('origin=latlng:');\r\n var beforeOrigin = hrefSplit[0];\r\n var afterOrigin = hrefSplit[1];\r\n var afterOriginSplit = afterOrigin.split('|');\r\n var latlngorigin = r.latitude + \",\" + r.longitude;\r\n var finalURL1 = beforeOrigin + 'origin=latlng:' + latlngorigin + '|' + afterOriginSplit[1] + '|' + afterOriginSplit[2];\r\n formatUrlAndAssign(finalURL1);\r\n getBaiduName(latlngorigin, 'o');\r\n }\r\n else {\r\n catchError(r);\r\n }\r\n }, function (err) {\r\n $('.btn-direction-loc a,a.directionBtnMobile').removeClass(\"d-none\");\r\n });\r\n }\r\n else if (navigator.geolocation) {\r\n $('.btn-direction-loc a,a.directionBtnMobile').removeClass(\"d-none\");\r\n navigator.geolocation.getCurrentPosition(changeURL, catchError);\r\n } else {\r\n\r\n }\r\n}\r\n\r\nfunction changeURL(position) {\r\n if (position) {\r\n attachEventHandler(\".product-locator\", \"allow-location\", true, \"allow-location\");\r\n attachEventHandler(\".product-locator-ff\", \"allow-location\", true, \"allow-location\");\r\n }\r\n if ($('.sp01-map').length > 0) {\r\n var mapId = $('.sp01-map').attr('id');\r\n var miHref = $('.btn-direction-loc a').attr('href');\r\n if (mapId == \"baiduMap\") {\r\n return;\r\n }\r\n var geoCoords = position.coords.latitude + \",\" + position.coords.longitude;\r\n setUserLatitudeAndLongitude(geoCoords, miHref, mapId);\r\n }\r\n\r\n\r\n}\r\nfunction setUserLatitudeAndLongitude(geoCoords, miHref, mapId) {\r\n\r\n var hrefSplit, destLatLong, finalURL = '';\r\n switch (mapId) {\r\n case \"googleMap\":\r\n hrefSplit = miHref.split('daddr=');\r\n var beforeDaddr = hrefSplit[0];\r\n var afterDaddr = hrefSplit[1];\r\n destLatLong = afterDaddr.split('&')[0];\r\n finalURL = beforeDaddr + 'daddr=' + destLatLong + '&saddr=' + geoCoords;\r\n formatUrlAndAssign(finalURL);\r\n $('.btn-direction-loc a,a.directionBtnMobile').removeClass(\"d-none\");\r\n break;\r\n case \"yandexMap\":\r\n hrefSplit = miHref.split('rtext=');\r\n var beforeRtxt = hrefSplit[0];\r\n var afterRtxt = hrefSplit[1];\r\n destLatLong = afterRtxt.split('~')[1];\r\n var geoCoordsEncode = encodeURIComponent(geoCoords);\r\n finalURL = beforeRtxt + 'rtext=' + geoCoordsEncode + '~' + destLatLong;\r\n formatUrlAndAssign(finalURL);\r\n $('.btn-direction-loc a,a.directionBtnMobile').removeClass(\"d-none\");\r\n break;\r\n case \"bingMap\":\r\n hrefSplit = miHref.split('pos.');\r\n var beforeOriginLatLong = hrefSplit[0];\r\n destLatLong = hrefSplit[2];\r\n finalURL = beforeOriginLatLong + 'pos.' + geoCoords.split(\",\").join(\"_\") + '~pos.' + destLatLong;\r\n formatUrlAndAssign(finalURL);\r\n $('.btn-direction-loc a,a.directionBtnMobile').removeClass(\"d-none\");\r\n break;\r\n\r\n }\r\n}\r\nfunction getBaiduName(position, direction) {\r\n var posLat = parseFloat(position.split(',')[0]);\r\n var posLon = parseFloat(position.split(',')[1]);\r\n var description = \"\";\r\n\r\n if (direction == 'o') {\r\n $.ajax({\r\n url: \"https://api.map.baidu.com/telematics/v3/reverseGeocoding?location=\" + posLon + \",\" + posLat + \"&coord_type=gcj02&ak=4Kq2FM6g8buv7oQaYzt3t9cY&output=json\",\r\n type: \"GET\",\r\n xhrFields: { withCredentials: true },\r\n dataType: 'jsonp',\r\n jsonpCallback: 'myCallBackMethod',\r\n async: false, // this is by default false, so not need to mention\r\n crossDomain: true // tell the browser to allow cross domain calls.\r\n\r\n });\r\n } else {\r\n $.ajax({\r\n url: \"https://api.map.baidu.com/telematics/v3/reverseGeocoding?location=\" + posLon + \",\" + posLat + \"&coord_type=gcj02&ak=4Kq2FM6g8buv7oQaYzt3t9cY&output=json\",\r\n type: \"GET\",\r\n xhrFields: { withCredentials: true },\r\n dataType: 'jsonp',\r\n jsonpCallback: 'myCallBackMethodD',\r\n async: false, // this is by default false, so not need to mention\r\n crossDomain: true // tell the browser to allow cross domain calls.\t\t\t \r\n });\r\n }\r\n}\r\n\r\nwindow.myCallBackMethod = function (data) {\r\n successResponse(data);\r\n};\r\n\r\nsuccessResponse = function (data) {\r\n var description = data.description;\r\n if (description == '') description = data.city;\r\n if ($('.btn-direction-loc a').length > 0 && $('#baiduMap').length > 0) {\r\n var buttonHref = $('.btn-direction-loc a').attr('href');\r\n var nameSplit = buttonHref.split('name:');\r\n var destination = (nameSplit[1]).split('&destination=')[1];\r\n var finalURL = nameSplit[0] + 'name:' + description + '&destination=' + destination + 'name:' + nameSplit[2];\r\n formatUrlAndAssign(finalURL);\r\n if (!calledFromGeoIp) {\r\n getGeoIps();\r\n }\r\n else {\r\n $('.btn-direction-loc a,a.directionBtnMobile').removeClass(\"d-none\");\r\n }\r\n }\r\n\r\n};\r\n\r\n// myCallBackMethod({ \"description\": \"origin\" });\r\n\r\nwindow.myCallBackMethodD = function (data) {\r\n successResponseD(data);\r\n};\r\n\r\nsuccessResponseD = function (data) {\r\n var description = data.description;\r\n if (description == '') description = data.city;\r\n if ($('.btn-direction-loc a').length > 0 && $('#baiduMap').length > 0) {\r\n var myHref = $('.btn-direction-loc a').attr('href');\r\n var nameSplit = myHref.split('name:');\r\n var mode = (nameSplit[2]).split('&mode=')[1];\r\n var finalURL = nameSplit[0] + 'name:' + nameSplit[1] + 'name:' + description + '&mode=' + mode;\r\n formatUrlAndAssign(finalURL);\r\n }\r\n};\r\n\r\n// myCallBackMethodD({ \"description\": \"destiny\" });\r\n\r\n\r\nfunction catchError(positionError) {\r\n if (positionError) {\r\n attachEventHandler(\".product-locator\", \"block-location\", true, \"block-location\");//\r\n attachEventHandler(\".product-locator-ff\", \"block-location\", true, \"block-location\");//\r\n }\r\n switch (positionError.code) {\r\n case positionError.TIMEOUT:\r\n\r\n break;\r\n case positionError.POSITION_UNAVAILABLE:\r\n break;\r\n case positionError.PERMISSION_DENIED:\r\n break;\r\n\r\n }\r\n}\r\n\r\nfunction getPinColor() {\r\n var colors = ['Blue', 'Red', 'Yellow'],\r\n pinColor = 'blue';\r\n $.each(colors, function (ind, color) {\r\n if ($('link[href*=WEP-' + color + ']').length) {\r\n pinColor = color;\r\n }\r\n });\r\n return {\r\n pinClass: 'icon-map-pin-' + pinColor + '-small',\r\n pinURI: '/Assets/img/icons/icon-map-pin-' + pinColor.toLowerCase() + '-small.png'\r\n };\r\n}\r\n\r\nfunction setMapPins(aMap, data) {\r\n var zoomMap = data.options.zoom;\r\n var latitudeMap = data.options.center.latitude;\r\n var longitudeMap = data.options.center.longitude;\r\n if (zoomMap != \"\") {\r\n zoomMap = parseInt(zoomMap);\r\n }\r\n else {\r\n zoomMap = 10;\r\n }\r\n if (latitudeMap !== \"\") {\r\n latitudeMap = parseFloat(latitudeMap);\r\n }\r\n\r\n if (longitudeMap !== \"\") {\r\n longitudeMap = parseFloat(longitudeMap);\r\n }\r\n var aMapProvider = aMap.data('map-provider');\r\n var isGoogle = aMapProvider.toUpperCase() == \"GOOGLE\";\r\n var pinInfo = getPinColor(),\r\n pinImage = \"/assets/img/icons/icon-map-pin-blue-small.png\",\r\n pinClassName = pinInfo.pinClass,\r\n pinHeight = data.options.pin && data.options.pin.height ? data.options.pin.height : 34,\r\n pinWidth = data.options.pin && data.options.pin.width ? data.options.pin.width : 20,\r\n center = data.options.center,\r\n mapifyOptions = {\r\n key: data.options.key,\r\n type: data.options.type,\r\n disableMouse: data.options.disableMouse,\r\n disableZoom: true,\r\n mapType: data.options.mapType,\r\n showScale: data.options.showScale,\r\n zoom: zoomMap,\r\n pin: {\r\n cssClass: pinClassName,\r\n image: pinImage,\r\n height: pinHeight,\r\n width: pinWidth\r\n }\r\n };\r\n if (center && latitudeMap && longitudeMap) {\r\n mapifyOptions.center = { latitude: latitudeMap, longitude: longitudeMap };\r\n }\r\n var defaultPin = { position: { latitude: latitudeMap, longitude: longitudeMap } };\r\n aMap.mapify(mapifyOptions);\r\n\r\n var duplicated = isDuplicated();\r\n var mapPins = $('.sp01-map').data('map-pins');\r\n if (data.pins && data.pins.length) {\r\n\r\n if (!duplicated) {\r\n data.pins.push(defaultPin);\r\n }\r\n aMap.mapify('setPins', data.pins);\r\n\r\n } else {\r\n var defaultPinArray = [];\r\n defaultPinArray.push(defaultPin);\r\n aMap.mapify('setPins', defaultPinArray);\r\n }\r\n\r\n aMap.mapify('setBoundaryToPins');\r\n setTimeout(function () {\r\n var arr = $('img');\r\n arr.each(function (component, index) {\r\n var imgSrc = $(this).attr('src');\r\n if (imgSrc.includes('transparent.png')) {\r\n $(this).parent().attr('tabindex', '-1');\r\n }\r\n });\r\n }, 5000);\r\n}\r\nfunction isDuplicated() {\r\n var mapOptions = JSON.parse($('.sp01-map').attr('data-map-options'));\r\n\r\n var mapPins = $('.sp01-map').data('map-pins');\r\n if (mapPins) {\r\n if (mapOptions.options.center.latitude == mapPins[0].Latitude && mapOptions.options.center.longitude == mapPins[0].Longitude) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n}\r\nfunction loadMapify(mapProvider) {\r\n if (!mapProvider) return false;\r\n var mapifyID = 'mapify-' + mapProvider,\r\n mapifyURI = '/assets/js/plugins/' + mapifyID + '.js';\r\n if (!$('#' + mapifyID).length) {\r\n $('body').append('