{"id":693,"date":"2018-06-02T13:02:36","date_gmt":"2018-06-02T18:02:36","guid":{"rendered":"http:\/\/dev.praim.com\/?page_id=693"},"modified":"2022-11-28T16:59:13","modified_gmt":"2022-11-28T15:59:13","slug":"find_a_partner","status":"publish","type":"page","link":"https:\/\/www.praim.com\/en\/find_a_partner\/","title":{"rendered":"Find a Partner"},"content":{"rendered":"<div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-1 fusion-flex-container nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-padding-top:50px;--awb-padding-bottom:30px;--awb-background-color:#f7f8f8;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap\" style=\"max-width:1248px;margin-left: calc(-4% \/ 2 );margin-right: calc(-4% \/ 2 );\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-0 fusion_builder_column_1_1 1_1 fusion-flex-column\" style=\"--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-spacing-right-large:1.92%;--awb-margin-bottom-large:20px;--awb-spacing-left-large:1.92%;--awb-width-medium:100%;--awb-spacing-right-medium:1.92%;--awb-spacing-left-medium:1.92%;--awb-width-small:100%;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;\"><div class=\"fusion-column-wrapper fusion-flex-justify-content-flex-start fusion-content-layout-column\"><!doctype html>\n<html>\n<head>\n\t<style>\n\t\tlabel {\n\t\t\tdisplay: inline !important;\n\t\t}\n\t<\/style>\n\t<meta charset=\"utf-8\">\n\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1, shrink-to-fit=no\">\n\t<link rel=\"stylesheet\" href=\"https:\/\/stackpath.bootstrapcdn.com\/bootstrap\/4.2.1\/css\/bootstrap.min.css\" integrity=\"sha384-GJzZqFGwb1QTTN6wy59ffF1BuGJpLSa9DkKMp0DgiMDm4iYMj70gZWKYbI706tWS\" crossorigin=\"anonymous\">\n<\/head>\n<body>\n\t<div class=\"container-fluid\">\n\t\t<form id=\"form\" class=\"form-inline\">\n\t\t\t<div class=\"form-group mx-sm-3 mb-2\">\n\t\t\t\t<h5>Find a partner<\/h5>\n\t\t\t<\/div>\n\t\t\t<div class=\"form-group mb-2\">\n\t\t\t\t<input type=\"text\" class=\"form-control\" id=\"txtLocation\" placeholder=\"City\" autocomplete=\"off\">\n\t\t\t<\/div>\n\t\t\t<div class=\"form-group mx-sm-3 mb-2\">\n\t\t\t\t<input type=\"text\" class=\"form-control\" id=\"txtCompany\" placeholder=\"Name of the Partner\" autocomplete=\"off\">\n\t\t\t<\/div>\n\t\t<\/form>\n\t<\/div>\n\t<div id=\"map\" style=\"height: 600px; width: 100%; border: 1px solid #000; margin-bottom: 20px;\"\/>\n\t<script src=\"https:\/\/stackpath.bootstrapcdn.com\/bootstrap\/4.2.1\/js\/bootstrap.min.js\" integrity=\"sha384-B0UglyR+jN6CkvvICOB2joaf5I4l3gm9GU6Hc1og6Ls7i6U\/mkkaduKaBhlAXv9k\" crossorigin=\"anonymous\">\t<\/script>\n\t<script>!function (t, e) { \"use strict\"; \"undefined\" != typeof module && module.exports ? module.exports = e(require(\"jquery\")) : \"function\" == typeof define && define.amd ? define([\"jquery\"], function (t) { return e(t) }) : e(t.jQuery) }(this, function (t) { \"use strict\"; var e = function (s, i) { this.$element = t(s), this.options = t.extend({}, e.defaults, i), this.matcher = this.options.matcher || this.matcher, this.sorter = this.options.sorter || this.sorter, this.select = this.options.select || this.select, this.autoSelect = \"boolean\" != typeof this.options.autoSelect || this.options.autoSelect, this.highlighter = this.options.highlighter || this.highlighter, this.render = this.options.render || this.render, this.updater = this.options.updater || this.updater, this.displayText = this.options.displayText || this.displayText, this.itemLink = this.options.itemLink || this.itemLink, this.itemTitle = this.options.itemTitle || this.itemTitle, this.followLinkOnSelect = this.options.followLinkOnSelect || this.followLinkOnSelect, this.source = this.options.source, this.delay = this.options.delay, this.theme = this.options.theme && this.options.themes && this.options.themes[this.options.theme] || e.defaults.themes[e.defaults.theme], this.$menu = t(this.options.menu || this.theme.menu), this.$appendTo = this.options.appendTo ? t(this.options.appendTo) : null, this.fitToElement = \"boolean\" == typeof this.options.fitToElement && this.options.fitToElement, this.shown = !1, this.listen(), this.showHintOnFocus = (\"boolean\" == typeof this.options.showHintOnFocus || \"all\" === this.options.showHintOnFocus) && this.options.showHintOnFocus, this.afterSelect = this.options.afterSelect, this.afterEmptySelect = this.options.afterEmptySelect, this.addItem = !1, this.value = this.$element.val() || this.$element.text(), this.keyPressed = !1, this.focused = this.$element.is(\":focus\"), this.changeInputOnSelect = this.options.changeInputOnSelect || this.changeInputOnSelect, this.changeInputOnMove = this.options.changeInputOnMove || this.changeInputOnMove, this.openLinkInNewTab = this.options.openLinkInNewTab || this.openLinkInNewTab, this.selectOnBlur = this.options.selectOnBlur || this.selectOnBlur, this.showCategoryHeader = this.options.showCategoryHeader || this.showCategoryHeader }; e.prototype = { constructor: e, setDefault: function (t) { if (this.$element.data(\"active\", t), this.autoSelect || t) { var e = this.updater(t); e || (e = \"\"), this.$element.val(this.displayText(e) || e).text(this.displayText(e) || e).change(), this.afterSelect(e) } return this.hide() }, select: function () { var t = this.$menu.find(\".active\").data(\"value\"); if (this.$element.data(\"active\", t), this.autoSelect || t) { var e = this.updater(t); e || (e = \"\"), this.changeInputOnSelect && this.$element.val(this.displayText(e) || e).text(this.displayText(e) || e).change(), this.followLinkOnSelect && this.itemLink(t) ? (this.openLinkInNewTab ? window.open(this.itemLink(t), \"_blank\") : document.location = this.itemLink(t), this.afterSelect(e)) : this.followLinkOnSelect && !this.itemLink(t) ? this.afterEmptySelect(e) : this.afterSelect(e) } else this.afterEmptySelect(); return this.hide() }, updater: function (t) { return t }, setSource: function (t) { this.source = t }, show: function () { var e, s = t.extend({}, this.$element.position(), { height: this.$element[0].offsetHeight }), i = \"function\" == typeof this.options.scrollHeight ? this.options.scrollHeight.call() : this.options.scrollHeight; if (this.shown ? e = this.$menu : this.$appendTo ? (e = this.$menu.appendTo(this.$appendTo), this.hasSameParent = this.$appendTo.is(this.$element.parent())) : (e = this.$menu.insertAfter(this.$element), this.hasSameParent = !0), !this.hasSameParent) { e.css(\"position\", \"fixed\"); var o = this.$element.offset(); s.top = o.top, s.left = o.left } var n = t(e).parent().hasClass(\"dropup\") ? \"auto\" : s.top + s.height + i, h = t(e).hasClass(\"dropdown-menu-right\") ? \"auto\" : s.left; return e.css({ top: n, left: h }).show(), !0 === this.options.fitToElement && e.css(\"width\", this.$element.outerWidth() + \"px\"), this.shown = !0, this }, hide: function () { return this.$menu.hide(), this.shown = !1, this }, lookup: function (e) { if (this.query = null != e ? e : this.$element.val(), this.query.length < this.options.minLength && !this.options.showHintOnFocus) return this.shown ? this.hide() : this; var s = t.proxy(function () { t.isFunction(this.source) && 3 === this.source.length ? this.source(this.query, t.proxy(this.process, this), t.proxy(this.process, this)) : t.isFunction(this.source) ? this.source(this.query, t.proxy(this.process, this)) : this.source && this.process(this.source) }, this); clearTimeout(this.lookupWorker), this.lookupWorker = setTimeout(s, this.delay) }, process: function (e) { var s = this; return e = t.grep(e, function (t) { return s.matcher(t) }), (e = this.sorter(e)).length || this.options.addItem ? (e.length > 0 ? this.$element.data(\"active\", e[0]) : this.$element.data(\"active\", null), \"all\" != this.options.items && (e = e.slice(0, this.options.items)), this.options.addItem && e.push(this.options.addItem), this.render(e).show()) : this.shown ? this.hide() : this }, matcher: function (t) { return ~this.displayText(t).toLowerCase().indexOf(this.query.toLowerCase()) }, sorter: function (t) { for (var e, s = [], i = [], o = []; e = t.shift();) { var n = this.displayText(e); n.toLowerCase().indexOf(this.query.toLowerCase()) ? ~n.indexOf(this.query) ? i.push(e) : o.push(e) : s.push(e) } return s.concat(i, o) }, highlighter: function (t) { var e = this.query; if (\"\" === e) return t; var s, i = t.match(\/(>)([^<]*)(<)\/g), o = [], n = []; if (i && i.length) for (s = 0; s < i.length; ++s)i[s].length > 2 && o.push(i[s]); else (o = []).push(t); e = e.replace(\/[\\(\\)\\\/\\.\\*\\+\\?\\[\\]]\/g, function (t) { return \"\\\\\" + t }); var h, a = new RegExp(e, \"g\"); for (s = 0; s < o.length; ++s)(h = o[s].match(a)) && h.length > 0 && n.push(o[s]); for (s = 0; s < n.length; ++s)t = t.replace(n[s], n[s].replace(a, \"<strong>$&<\/strong>\")); return t }, render: function (e) { var s = this, i = this, o = !1, n = [], h = s.options.separator; return t.each(e, function (t, s) { t > 0 && s[h] !== e[t - 1][h] && n.push({ __type: \"divider\" }), this.showCategoryHeader && (!s[h] || 0 !== t && s[h] === e[t - 1][h] || n.push({ __type: \"category\", name: s[h] })), n.push(s) }), e = t(n).map(function (e, n) { if (\"category\" == (n.__type || !1)) return t(s.options.headerHtml || s.theme.headerHtml).text(n.name)[0]; if (\"divider\" == (n.__type || !1)) return t(s.options.headerDivider || s.theme.headerDivider)[0]; var h = i.displayText(n); return (e = t(s.options.item || s.theme.item).data(\"value\", n)).find(s.options.itemContentSelector || s.theme.itemContentSelector).addBack(s.options.itemContentSelector || s.theme.itemContentSelector).html(s.highlighter(h, n)), s.options.followLinkOnSelect && e.find(\"a\").attr(\"href\", i.itemLink(n)), e.find(\"a\").attr(\"title\", i.itemTitle(n)), h == i.$element.val() && (e.addClass(\"active\"), i.$element.data(\"active\", n), o = !0), e[0] }), this.autoSelect && !o && (e.filter(\":not(.dropdown-header)\").first().addClass(\"active\"), this.$element.data(\"active\", e.first().data(\"value\"))), this.$menu.html(e), this }, displayText: function (t) { return void 0 !== t && void 0 !== t.name ? t.name : t }, itemLink: function (t) { return null }, itemTitle: function (t) { return null }, next: function (e) { var s = this.$menu.find(\".active\").removeClass(\"active\").next(); for (s.length || (s = t(this.$menu.find(t(this.options.item || this.theme.item).prop(\"tagName\"))[0])); s.hasClass(\"divider\") || s.hasClass(\"dropdown-header\");)s = s.next(); s.addClass(\"active\"); var i = this.updater(s.data(\"value\")); this.changeInputOnMove && this.$element.val(this.displayText(i) || i) }, prev: function (e) { var s = this.$menu.find(\".active\").removeClass(\"active\").prev(); for (s.length || (s = this.$menu.find(t(this.options.item || this.theme.item).prop(\"tagName\")).last()); s.hasClass(\"divider\") || s.hasClass(\"dropdown-header\");)s = s.prev(); s.addClass(\"active\"); var i = this.updater(s.data(\"value\")); this.changeInputOnMove && this.$element.val(this.displayText(i) || i) }, listen: function () { this.$element.on(\"focus.bootstrap3Typeahead\", t.proxy(this.focus, this)).on(\"blur.bootstrap3Typeahead\", t.proxy(this.blur, this)).on(\"keypress.bootstrap3Typeahead\", t.proxy(this.keypress, this)).on(\"propertychange.bootstrap3Typeahead input.bootstrap3Typeahead\", t.proxy(this.input, this)).on(\"keyup.bootstrap3Typeahead\", t.proxy(this.keyup, this)), this.eventSupported(\"keydown\") && this.$element.on(\"keydown.bootstrap3Typeahead\", t.proxy(this.keydown, this)); var e = t(this.options.item || this.theme.item).prop(\"tagName\"); \"ontouchstart\" in document.documentElement ? this.$menu.on(\"touchstart\", e, t.proxy(this.touchstart, this)).on(\"touchend\", e, t.proxy(this.click, this)) : this.$menu.on(\"click\", t.proxy(this.click, this)).on(\"mouseenter\", e, t.proxy(this.mouseenter, this)).on(\"mouseleave\", e, t.proxy(this.mouseleave, this)).on(\"mousedown\", t.proxy(this.mousedown, this)) }, destroy: function () { this.$element.data(\"typeahead\", null), this.$element.data(\"active\", null), this.$element.unbind(\"focus.bootstrap3Typeahead\").unbind(\"blur.bootstrap3Typeahead\").unbind(\"keypress.bootstrap3Typeahead\").unbind(\"propertychange.bootstrap3Typeahead input.bootstrap3Typeahead\").unbind(\"keyup.bootstrap3Typeahead\"), this.eventSupported(\"keydown\") && this.$element.unbind(\"keydown.bootstrap3-typeahead\"), this.$menu.remove(), this.destroyed = !0 }, eventSupported: function (t) { var e = t in this.$element; return e || (this.$element.setAttribute(t, \"return;\"), e = \"function\" == typeof this.$element[t]), e }, move: function (t) { if (this.shown) switch (t.keyCode) { case 9: case 13: case 27: t.preventDefault(); break; case 38: if (t.shiftKey) return; t.preventDefault(), this.prev(); break; case 40: if (t.shiftKey) return; t.preventDefault(), this.next() } }, keydown: function (e) { 17 !== e.keyCode && (this.keyPressed = !0, this.suppressKeyPressRepeat = ~t.inArray(e.keyCode, [40, 38, 9, 13, 27]), this.shown || 40 != e.keyCode ? this.move(e) : this.lookup()) }, keypress: function (t) { this.suppressKeyPressRepeat || this.move(t) }, input: function (t) { var e = this.$element.val() || this.$element.text(); this.value !== e && (this.value = e, this.lookup()) }, keyup: function (t) { if (!this.destroyed) switch (t.keyCode) { case 40: case 38: case 16: case 17: case 18: break; case 9: if (!this.shown || this.showHintOnFocus && !this.keyPressed) return; this.select(); break; case 13: if (!this.shown) return; this.select(); break; case 27: if (!this.shown) return; this.hide() } }, focus: function (t) { this.focused || (this.focused = !0, this.keyPressed = !1, this.options.showHintOnFocus && !0 !== this.skipShowHintOnFocus && (\"all\" === this.options.showHintOnFocus ? this.lookup(\"\") : this.lookup())), this.skipShowHintOnFocus && (this.skipShowHintOnFocus = !1) }, blur: function (t) { this.mousedover || this.mouseddown || !this.shown ? this.mouseddown && (this.skipShowHintOnFocus = !0, this.$element.focus(), this.mouseddown = !1) : (this.selectOnBlur && this.select(), this.hide(), this.focused = !1, this.keyPressed = !1) }, click: function (t) { t.preventDefault(), this.skipShowHintOnFocus = !0, this.select(), this.$element.focus(), this.hide() }, mouseenter: function (e) { this.mousedover = !0, this.$menu.find(\".active\").removeClass(\"active\"), t(e.currentTarget).addClass(\"active\") }, mouseleave: function (t) { this.mousedover = !1, !this.focused && this.shown && this.hide() }, mousedown: function (t) { this.mouseddown = !0, this.$menu.one(\"mouseup\", function (t) { this.mouseddown = !1 }.bind(this)) }, touchstart: function (e) { e.preventDefault(), this.$menu.find(\".active\").removeClass(\"active\"), t(e.currentTarget).addClass(\"active\") }, touchend: function (t) { t.preventDefault(), this.select(), this.$element.focus() } }; var s = t.fn.typeahead; t.fn.typeahead = function (s) { var i = arguments; return \"string\" == typeof s && \"getActive\" == s ? this.data(\"active\") : this.each(function () { var o = t(this), n = o.data(\"typeahead\"), h = \"object\" == typeof s && s; n || o.data(\"typeahead\", n = new e(this, h)), \"string\" == typeof s && n[s] && (i.length > 1 ? n[s].apply(n, Array.prototype.slice.call(i, 1)) : n[s]()) }) }, e.defaults = { source: [], items: 8, minLength: 1, scrollHeight: 0, autoSelect: !0, afterSelect: t.noop, afterEmptySelect: t.noop, addItem: !1, followLinkOnSelect: !1, delay: 0, separator: \"category\", changeInputOnSelect: !0, changeInputOnMove: !0, openLinkInNewTab: !1, selectOnBlur: !0, showCategoryHeader: !0, theme: \"bootstrap3\", themes: { bootstrap3: { menu: '<ul class=\"typeahead dropdown-menu\" role=\"listbox\"><\/ul>', item: '<li><a class=\"dropdown-item\" href=\"#\" role=\"option\"><\/a><\/li>', itemContentSelector: \"a\", headerHtml: '<li class=\"dropdown-header\"><\/li>', headerDivider: '<li class=\"divider\" role=\"separator\"><\/li>' }, bootstrap4: { menu: '<div class=\"typeahead dropdown-menu\" role=\"listbox\"><\/div>', item: '<button class=\"dropdown-item\" role=\"option\"><\/button>', itemContentSelector: \".dropdown-item\", headerHtml: '<h6 class=\"dropdown-header\"><\/h6>', headerDivider: '<div class=\"dropdown-divider\"><\/div>' } } }, t.fn.typeahead.Constructor = e, t.fn.typeahead.noConflict = function () { return t.fn.typeahead = s, this }, t(document).on(\"focus.typeahead.data-api\", '[data-provide=\"typeahead\"]', function (e) { var s = t(this); s.data(\"typeahead\") || s.typeahead(s.data()) }) });<\/script>\n\t<script type=\"text\/javascript\" src=\"https:\/\/maps.googleapis.com\/maps\/api\/js?key=AIzaSyAvXMv5Hf67t2IU2kRIRkmSHFAq4ty_gWs&libraries=places\"><\/script>\n\t<script type=\"text\/javascript\" src=\"https:\/\/www.google.com\/jsapi\"><\/script>\n\t<script>\n    google.load('visualization', '1')\n    var map\n    var $ = jQuery\n    var infoWindow = new google.maps.InfoWindow()\n    var markerPlace = new google.maps.Marker()\n    var resellers = []\n    var inputLocation = document.getElementById('txtLocation')\n    var companyField = $('#txtCompany')\n\n    markers = {}\n    function initMap () {\n      map = new google.maps.Map(document.getElementById('map'), {\n        mapTypeControl: false,\n        fullscreenControl: false,\n        streetViewControl: false\n      })\n      var form = document.getElementById('form')\n      form.onsubmit = function (e) {\n        e.preventDefault()\n      }\n      $.ajax({\n        url: 'https:\/\/ipapi.co\/json',\n        type: 'GET'\n      })\n        .done(function (location) {\n          map.setCenter({ lat: location.latitude, lng: location.longitude });\n          var partners = $.ajax('https:\/\/loen3p3d49.execute-api.eu-central-1.amazonaws.com\/prod\/api-partners').done(function (res) {\n            var bounds = new google.maps.LatLngBounds()\n            resellers = res.data.map(r => {\n\t\t\t\tr.name = r.name.replace('##EX-EU##', '')\n\t\t\t\treturn r\n\t\t\t})\n            bounds.extend({ lat: location.latitude, lng: location.longitude })\n            if (!res.error) {\n              \/\/ metto i marker di tutti i resellers\n              for (var i = 0; i < resellers.length; i++) {\n                createMarker(resellers[i], i)\n              }\n\n              \/\/ posiziono la mappa sulla posizione attuale\n              goToPosition({ lat: location.latitude, lng: location.longitude }, false)\n\n              \/\/ set autocomplete for partners\n              companyField.typeahead({\n                source: resellers\n              })\n\n              companyField.change(function () {\n                var current = companyField.typeahead('getActive')\n                \/\/ centro la mappa sul nuovo punto\n                goToPosition(current.location, false)\n                \/\/ apro la infoWindow\n                infoWindow.setContent(current.contentString)\n                infoWindow.open(map, markers[current.name])\n                companyField.val('')\n              })\n\n              var options = {\n                types: ['(cities)']\n              };\n              autocomplete = new google.maps.places.Autocomplete(inputLocation, options);\n              google.maps.event.addListener(autocomplete, 'place_changed', function () {\n                var place = autocomplete.getPlace()\n                if (place.geometry && place.geometry.location) {\n                  var position = { lat: place.geometry.location.lat(), lng: place.geometry.location.lng() }\n                  goToPosition(position)\n                } else {\n                  $.ajax(`https:\/\/maps.googleapis.com\/maps\/api\/geocode\/json?address=${place.name}&key=AIzaSyAvXMv5Hf67t2IU2kRIRkmSHFAq4ty_gWs`)\n                    .done(function (res) {\n                      var position = res.results && res.results.length ? res.results[0].geometry.location : { lat: 46.0926904, lng: 11.1063288 }\n                      goToPosition(position)\n                    })\n                }\n                inputLocation.value = ''\n              })\n            }\n          })\n        })\n    }\n\n    \/\/ - Metto un marker generico sulla posizione,\n    \/\/ - riordino i reseller in base alla distanza da questa posizione e aggiorno le labels\n    \/\/ - setto i limiti della mappa in modo che compaia almeno un reseller\n    function goToPosition (position, setMarker = true) {\n      if (setMarker) {\n        markerPlace.setMap(map)\n        markerPlace.setPosition(position)\n      }\n      sort(resellers, position)\n      \/\/ ri-setto le label di tutti i markers\n      for (var i = 0; i < resellers.length; i++) {\n        markers[resellers[i].name].setLabel(`${i + 1}`)\n      }\n      var bounds = new google.maps.LatLngBounds();\n      bounds.extend(position)\n      bounds.extend(resellers[0].location)\n      map.fitBounds(bounds)\n    }\n\n    function sort (data, location) {\n      data = data.sort((a, b) => {\n        if (!a.location)\n          return 1\n        if (!b.location)\n          return -1\n        return distanceDiff(a.location.lat, a.location.lng, b.location.lat, b.location.lng, location.lat, location.lng)\n      })\n    }\n\n    function createMarker (item, i) {\n      var marker = new google.maps.Marker({\n        map: map,\n        position: item.location,\n        icon:\n          item.level === 'gold' ?\n            'https:\/\/www.praim.com\/wp-content\/uploads\/2019\/05\/gold.png' :\n            item.level === 'silver' ?\n              'https:\/\/www.praim.com\/wp-content\/uploads\/2019\/05\/silver.png' :\n              'https:\/\/www.praim.com\/wp-content\/uploads\/2020\/07\/bronze.png',\n        label: `${i + 1}`\n      })\n      var statCf =\n        item.level === 'gold' ?\n          '<span style=\"color:#d5960e\">Gold Partner<\/span>' :\n          item.level === 'silver' ?\n            '<span style=\"color:#919191\">Silver Partner<\/span>' :\n            '<span style=\"color:#cd7f32\">Bronze Partner<\/span>'\n      var contentString = `\n          <h4>${item.name.replace('##EX-EU##', '')}<\/h4>\n          <h5>${statCf}<\/h5>\n          <p>${item.address}<br\/>\n          ${item.zip}, ${item.city} ${item.territoryCode && item.territoryCode !== 'EE' ? ' (' + item.territoryCode + '),' : ''} ${item.country.replace(\/A\\d\/, 'AE')}<\/p>\n          <p>Phone: ${item.phone}<\/p>\n          ${item.web ? '<p>Web: <a href=\"http:\/\/' + item.web + '\" target=\"_blank\">' + item.web + '<\/a><\/p>' : ''}\n          ${item.email ? '<p>eMail: <a href=\"mailto:' + item.email + '\">' + item.email + '<\/a><\/p>' : ''}`\n      google.maps.event.addListener(marker, 'click', function () {\n        infoWindow.setContent(contentString)\n        infoWindow.open(map, this)\n      });\n      item.contentString = contentString\n      markers[item.name] = marker\n    }\n    \/\/ calculate distance(1, 2) - distance(2, 3)\n    function distanceDiff (lat1, lng1, lat2, lng2, lat3, lng3) {\n      var radlat1 = Math.PI * lat1 \/ 180\n      var radlat2 = Math.PI * lat2 \/ 180\n      var radlat3 = Math.PI * lat3 \/ 180\n      var thetaA = lng1 - lng3\n      var thetaB = lng2 - lng3\n      var radthetaA = Math.PI * thetaA \/ 180\n      var radthetaB = Math.PI * thetaB \/ 180\n      var sin = Math.sin(radlat3)\n      var cos = Math.cos(radlat3)\n      var distA = Math.sin(radlat1) * sin + Math.cos(radlat1) * cos * Math.cos(radthetaA)\n      var distB = Math.sin(radlat2) * sin + Math.cos(radlat2) * cos * Math.cos(radthetaB)\n      return Math.acos(distA) - Math.acos(distB)\n    }\n    google.maps.event.addDomListener(window, 'load', initMap)\n\t<\/script>\n<\/body>\n<\/html><\/div><\/div><\/div><\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":14,"featured_media":26719,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"100-width.php","meta":{"_acf_changed":false,"content-type":"","footnotes":""},"class_list":["post-693","page","type-page","status-publish","has-post-thumbnail","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Find a Partner &#8211; Praim<\/title>\n<meta name=\"description\" content=\"Find a Praim partner near you today. Together we can achieve more.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.praim.com\/en\/find_a_partner\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Find a Partner &#8211; Praim\" \/>\n<meta property=\"og:description\" content=\"Find a Praim partner near you today. Together we can achieve more.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.praim.com\/en\/find_a_partner\/\" \/>\n<meta property=\"og:site_name\" content=\"Praim\" \/>\n<meta property=\"article:modified_time\" content=\"2022-11-28T15:59:13+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.praim.com\/wp-content\/uploads\/2022\/11\/Banner-pagina-Partner-Locator-Praim-1920x350-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.praim.com\\\/en\\\/find_a_partner\\\/\",\"url\":\"https:\\\/\\\/www.praim.com\\\/en\\\/find_a_partner\\\/\",\"name\":\"Find a Partner &#8211; Praim\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.praim.com\\\/en\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.praim.com\\\/en\\\/find_a_partner\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.praim.com\\\/en\\\/find_a_partner\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.praim.com\\\/wp-content\\\/uploads\\\/2022\\\/11\\\/Banner-pagina-Partner-Locator-Praim-1920x350-1.png\",\"datePublished\":\"2018-06-02T18:02:36+00:00\",\"dateModified\":\"2022-11-28T15:59:13+00:00\",\"description\":\"Find a Praim partner near you today. Together we can achieve more.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.praim.com\\\/en\\\/find_a_partner\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.praim.com\\\/en\\\/find_a_partner\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.praim.com\\\/en\\\/find_a_partner\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.praim.com\\\/wp-content\\\/uploads\\\/2022\\\/11\\\/Banner-pagina-Partner-Locator-Praim-1920x350-1.png\",\"contentUrl\":\"https:\\\/\\\/www.praim.com\\\/wp-content\\\/uploads\\\/2022\\\/11\\\/Banner-pagina-Partner-Locator-Praim-1920x350-1.png\",\"width\":1920,\"height\":350},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.praim.com\\\/en\\\/find_a_partner\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.praim.com\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Find a Partner\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.praim.com\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/www.praim.com\\\/en\\\/\",\"name\":\"Praim\",\"description\":\"Smart Access to your Cloud\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.praim.com\\\/en\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.praim.com\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.praim.com\\\/en\\\/#organization\",\"name\":\"Praim srl\",\"url\":\"https:\\\/\\\/www.praim.com\\\/en\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.praim.com\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.praim.com\\\/wp-content\\\/uploads\\\/2019\\\/12\\\/praim-logo.png\",\"contentUrl\":\"https:\\\/\\\/www.praim.com\\\/wp-content\\\/uploads\\\/2019\\\/12\\\/praim-logo.png\",\"width\":230,\"height\":230,\"caption\":\"Praim srl\"},\"image\":{\"@id\":\"https:\\\/\\\/www.praim.com\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Find a Partner &#8211; Praim","description":"Find a Praim partner near you today. Together we can achieve more.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.praim.com\/en\/find_a_partner\/","og_locale":"en_US","og_type":"article","og_title":"Find a Partner &#8211; Praim","og_description":"Find a Praim partner near you today. Together we can achieve more.","og_url":"https:\/\/www.praim.com\/en\/find_a_partner\/","og_site_name":"Praim","article_modified_time":"2022-11-28T15:59:13+00:00","og_image":[{"width":1920,"height":350,"url":"https:\/\/www.praim.com\/wp-content\/uploads\/2022\/11\/Banner-pagina-Partner-Locator-Praim-1920x350-1.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.praim.com\/en\/find_a_partner\/","url":"https:\/\/www.praim.com\/en\/find_a_partner\/","name":"Find a Partner &#8211; Praim","isPartOf":{"@id":"https:\/\/www.praim.com\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.praim.com\/en\/find_a_partner\/#primaryimage"},"image":{"@id":"https:\/\/www.praim.com\/en\/find_a_partner\/#primaryimage"},"thumbnailUrl":"https:\/\/www.praim.com\/wp-content\/uploads\/2022\/11\/Banner-pagina-Partner-Locator-Praim-1920x350-1.png","datePublished":"2018-06-02T18:02:36+00:00","dateModified":"2022-11-28T15:59:13+00:00","description":"Find a Praim partner near you today. Together we can achieve more.","breadcrumb":{"@id":"https:\/\/www.praim.com\/en\/find_a_partner\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.praim.com\/en\/find_a_partner\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.praim.com\/en\/find_a_partner\/#primaryimage","url":"https:\/\/www.praim.com\/wp-content\/uploads\/2022\/11\/Banner-pagina-Partner-Locator-Praim-1920x350-1.png","contentUrl":"https:\/\/www.praim.com\/wp-content\/uploads\/2022\/11\/Banner-pagina-Partner-Locator-Praim-1920x350-1.png","width":1920,"height":350},{"@type":"BreadcrumbList","@id":"https:\/\/www.praim.com\/en\/find_a_partner\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.praim.com\/en\/"},{"@type":"ListItem","position":2,"name":"Find a Partner"}]},{"@type":"WebSite","@id":"https:\/\/www.praim.com\/en\/#website","url":"https:\/\/www.praim.com\/en\/","name":"Praim","description":"Smart Access to your Cloud","publisher":{"@id":"https:\/\/www.praim.com\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.praim.com\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.praim.com\/en\/#organization","name":"Praim srl","url":"https:\/\/www.praim.com\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.praim.com\/en\/#\/schema\/logo\/image\/","url":"https:\/\/www.praim.com\/wp-content\/uploads\/2019\/12\/praim-logo.png","contentUrl":"https:\/\/www.praim.com\/wp-content\/uploads\/2019\/12\/praim-logo.png","width":230,"height":230,"caption":"Praim srl"},"image":{"@id":"https:\/\/www.praim.com\/en\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.praim.com\/en\/wp-json\/wp\/v2\/pages\/693","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.praim.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.praim.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.praim.com\/en\/wp-json\/wp\/v2\/users\/14"}],"replies":[{"embeddable":true,"href":"https:\/\/www.praim.com\/en\/wp-json\/wp\/v2\/comments?post=693"}],"version-history":[{"count":79,"href":"https:\/\/www.praim.com\/en\/wp-json\/wp\/v2\/pages\/693\/revisions"}],"predecessor-version":[{"id":26923,"href":"https:\/\/www.praim.com\/en\/wp-json\/wp\/v2\/pages\/693\/revisions\/26923"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.praim.com\/en\/wp-json\/wp\/v2\/media\/26719"}],"wp:attachment":[{"href":"https:\/\/www.praim.com\/en\/wp-json\/wp\/v2\/media?parent=693"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}