"use strict"; (function($, _) { var isNotEmptyString = function(str) { if (_.isString(str)) { return str.trim().length; } return 0; }; var init = function($mapWrapper){ var maxZoom = 16, $mapCanvas = $mapWrapper.find('.fw-map-canvas'), mapCanvasOY = isNaN(parseInt($mapWrapper.data('map-height'))) ? parseInt($mapCanvas.width() * 0.66) : parseInt($mapWrapper.data('map-height')), locations = $mapWrapper.data('locations'), mapType = $mapWrapper.data('map-type'), mapStyle = $mapWrapper.data('map-style'), mapPin = $mapWrapper.data('map-pin'), initial_zoom = parseInt($mapWrapper.data('initial-zoom')), disableScroll = ($mapWrapper.data('disable-scrolling') ? true : false), mapOptions = { center: ( 'undefined' !== locations && locations.length) ? calculateCenter(locations) : new google.maps.LatLng(-34, 150), mapTypeId: google.maps.MapTypeId[mapType], scrollwheel: disableScroll, zoom: initial_zoom, styles: mapStyle }, markerBounds = new google.maps.LatLngBounds(), map = new google.maps.Map($mapCanvas.get(0), mapOptions); if ('undefined' !== locations && locations.length) { locations.forEach(function(location){ var gMapsCoords = new google.maps.LatLng(location.coordinates.lat, location.coordinates.lng); var icon = ''; if (isNotEmptyString(location.thumb)) { icon = location.thumb; } else { icon = mapPin.url; } var marker = new google.maps.Marker({ position: gMapsCoords, map: map, icon: icon }); markerBounds.extend(gMapsCoords); //set content InfoWindow template if ( isNotEmptyString(location.description) || isNotEmptyString(location.title) || isNotEmptyString(location.url) ) { var template = _.template( "<% function isNotEmptyString(str) { if (_.isString(str)) { return str.trim().length;} return 0; } %>" + "