PageSourceSearch

https://katinat.vn/wp-content/plugins/devvn-local-store/assets/js/devvn-localstore-jquery.js?ver=1.0.8

js katinat.vn collected 2026-10-08 00:47:04 UTC 27,521 bytes, 392 lines download raw bytes

vendor: 6,082 bytes, line 1
1function InfoBox(a){a=a||{},google.maps.OverlayView.apply(this,arguments),this.content_=a.content||"",this.disableAutoPan_=a.disableAutoPan||!1,this.maxWidth_=a.maxWidth||0,this.pixelOffset_=a.pixelOffset||new google.maps.Size(0,0),this.position_=a.position||new google.maps.LatLng(0,0),this.zIndex_=a.zIndex||null,this.boxClass_=a.boxClass||"infoBox",this.boxStyle_=a.boxStyle||{},this.closeBoxMargin_=a.closeBoxMargin||"2px",this.closeBoxURL_=a.closeBoxURL||"http://www.google.com/intl/en_us/mapfiles/close.gif",""===a.closeBoxURL&&(this.closeBoxURL_=""),this.infoBoxClearance_=a.infoBoxClearance||new google.maps.Size(1,1),void 0===a.visible&&(void 0===a.isHidden?a.visible=!0:a.visible=!a.isHidden),this.isHidden_=!a.visible,this.alignBottom_=a.alignBottom||!1,this.pane_=a.pane||"floatPane",this.enableEventPropagation_=a.enableEventPropagation||!1,this.div_=null,this.closeListener_=null,this.moveListener_=null,this.mapListener_=null,this.contextListener_=null,this.eventListeners_=null,this.fixedWidthSet_=null}InfoBox.prototype=new google.maps.OverlayView,InfoBox.prototype.createInfoBoxDiv_=function(){var a,b,c,d=this,e=function(a){a.cancelBubble=!0,a.stopPropagation&&a.stopPropagation()},f=function(a){a.returnValue=!1,a.preventDefault&&a.preventDefault(),d.enableEventPropagation_||e(a)};if(!this.div_){if(this.div_=document.createElement("div"),this.setBoxStyle_(),void 0===this.content_.nodeType?this.div_.innerHTML=this.getCloseBoxImg_()+this.content_:(this.div_.innerHTML=this.getCloseBoxImg_(),this.div_.appendChild(this.content_)),this.getPanes()[this.pane_].appendChild(this.div_),this.addClickHandler_(),this.div_.style.width?this.fixedWidthSet_=!0:0!==this.maxWidth_&&this.div_.offsetWidth>this.maxWidth_?(this.div_.style.width=this.maxWidth_,this.div_.style.overflow="auto",this.fixedWidthSet_=!0):(c=this.getBoxWidths_(),this.div_.style.width=this.div_.offsetWidth-c.left-c.right+"px",this.fixedWidthSet_=!1),this.panBox_(this.disableAutoPan_),!this.enableEventPropagation_){for(this.eventListeners_=[],b=["mousedown","mouseover","mouseout","mouseup","click","dblclick","touchstart","touchend","touchmove"],a=0;a<b.length;a++)this.eventListeners_.push(google.maps.event.addDomListener(this.div_,b[a],e));this.eventListeners_.push(google.maps.event.addDomListener(this.div_,"mouseover",function(a){this.style.cursor="default"}))}this.contextListener_=google.maps.event.addDomListener(this.div_,"contextmenu",f),google.maps.event.trigger(this,"domready")}},InfoBox.prototype.getCloseBoxImg_=function(){var a="";return""!==this.closeBoxURL_&&(a="<img",a+=" src='"+this.closeBoxURL_+"'",a+=" align=right",a+=" style='",a+=" position: relative;",a+=" cursor: pointer;",a+=" margin: "+this.closeBoxMargin_+";",a+="'>"),a},InfoBox.prototype.addClickHandler_=function(){var a;""!==this.closeBoxURL_?(a=this.div_.firstChild,this.closeListener_=google.maps.event.addDomListener(a,"click",this.getCloseClickHandler_())):this.closeListener_=null},InfoBox.prototype.getCloseClickHandler_=function(){var a=this;return function(b){b.cancelBubble=!0,b.stopPropagation&&b.stopPropagation(),google.maps.event.trigger(a,"closeclick"),a.close()}},InfoBox.prototype.panBox_=function(a){var b,d=0,e=0;if(!a&&(b=this.getMap())instanceof google.maps.Map){b.getBounds().contains(this.position_)||b.setCenter(this.position_),b.getBounds();var f=b.getDiv(),g=f.offsetWidth,h=f.offsetHeight,i=this.pixelOffset_.width,j=this.pixelOffset_.height,k=this.div_.offsetWidth,l=this.div_.offsetHeight,m=this.infoBoxClearance_.width,n=this.infoBoxClearance_.height,o=this.getProjection().fromLatLngToContainerPixel(this.position_);if(o.x<-i+m?d=o.x+i-m:o.x+k+i+m>g&&(d=o.x+k+i+m-g),this.alignBottom_?o.y<-j+n+l?e=o.y+j-n-l:o.y+j+n>h&&(e=o.y+j+n-h):o.y<-j+n?e=o.y+j-n:o.y+l+j+n>h&&(e=o.y+l+j+n-h),0!==d||0!==e){b.getCenter();b.panBy(d,e)}}},InfoBox.prototype.setBoxStyle_=function(){var a,b;if(this.div_){this.div_.className=this.boxClass_,this.div_.style.cssText="",b=this.boxStyle_;for(a in b)b.hasOwnProperty(a)&&(this.div_.style[a]=b[a]);this.div_.style.WebkitTransform="translateZ(0)",void 0!==this.div_.style.opacity&&""!==this.div_.style.opacity&&(this.div_.style.MsFilter='"progid:DXImageTransform.Microsoft.Alpha(Opacity='+100*this.div_.style.opacity+')"',this.div_.style.filter="alpha(opacity="+100*this.div_.style.opacity+")"),this.div_.style.position="absolute",this.div_.style.visibility="hidden",null!==this.zIndex_&&(this.div_.style.zIndex=this.zIndex_)}},InfoBox.prototype.getBoxWidths_=function(){var a,b={top:0,bottom:0,left:0,right:0},c=this.div_;return document.defaultView&&document.defaultView.getComputedStyle?(a=c.ownerDocument.defaultView.getComputedStyle(c,""))&&(b.top=parseInt(a.borderTopWidth,10)||0,b.bottom=parseInt(a.borderBottomWidth,10)||0,b.left=parseInt(a.borderLeftWidth,10)||0,b.right=parseInt(a.borderRightWidth,10)||0):document.documentElement.currentStyle&&c.currentStyle&&(b.top=parseInt(c.currentStyle.borderTopWidth,10)||0,b.bottom=parseInt(c.currentStyle.borderBottomWidth,10)||0,b.left=parseInt(c.currentStyle.borderLeftWidth,10)||0,b.right=parseInt(c.currentStyle.borderRightWidth,10)||0),b},InfoBox.prototype.onRemove=function(){this.div_&&(this.div_.parentNode.removeChild(this.div_),this.div_=null)},InfoBox.prototype.draw=function(){this.createInfoBoxDiv_();var a=this.getProjection().fromLatLngToDivPixel(this.position_);this.div_.style.left=a.x+this.pixelOffset_.width+"px",this.alignBottom_?this.div_.style.bottom=-(a.y+this.pixelOffset_.height)+"px":this.div_.style.top=a.y+this.pixelOffset_.height+"px",this.isHidden_?this.div_.style.visibility="hidden":this.div_.style.visibility="visible"},InfoBox.prototype.setOptions=function(a){void 0!==a.boxClass&&(this.boxClass_=a.boxClass,this.setBoxStyle_()),void 0!==a.boxStyle&&(this.boxStyle_=a.boxStyle,this.setBoxStyle_()),void 0!==a.content&&this.setContent(a.content),void 0!==a.disableAutoPan&&(this.disableAutoPan_=a.disableAutoPan),void 0!==a.maxWidth&&(this.maxWidth_=a.maxWidth),void 0!==a.pixelOffset&&(this.pixelOffset_=a.pixelOffset),void 0!==a.alignBottom&&(this.alignBottom_=a.al
1ignBottom),void 0!==a.position&&this.setPosition(a.position),void 0!==a.zIndex&&this.setZIndex(a.zIndex),void 0!==a.closeBoxMargin&&(this.closeBoxMargin_=a.closeBoxMargin),void 0!==a.closeBoxURL&&(this.closeBoxURL_=a.closeBoxURL),void 0!==a.infoBoxClearance&&(this.infoBoxClearance_=a.infoBoxClearance),void 0!==a.isHidden&&(this.isHidden_=a.isHidden),void 0!==a.visible&&(this.isHidden_=!a.visible),void 0!==a.enableEventPropagation&&(this.enableEventPropagation_=a.enableEventPropagation),this.div_&&this.draw()},InfoBox.prototype.setContent=function(a){this.content_=a,this.div_&&(this.closeListener_&&(google.maps.event.removeListener(this.closeListener_),this.closeListener_=null),this.fixedWidthSet_||(this.div_.style.width=""),void 0===a.nodeType?this.div_.innerHTML=this.getCloseBoxImg_()+a:(this.div_.innerHTML=this.getCloseBoxImg_(),this.div_.appendChild(a)),this.fixedWidthSet_||(this.div_.style.width=this.div_.offsetWidth+"px",void 0===a.nodeType?this.div_.innerHTML=this.getCloseBoxImg_()+a:(this.div_.innerHTML=this.getCloseBoxImg_(),this.div_.appendChild(a))),this.addClickHandler_()),google.maps.event.trigger(this,"content_changed")},InfoBox.prototype.setPosition=function(a){this.position_=a,this.div_&&this.draw(),google.maps.event.trigger(this,"position_changed")},InfoBox.prototype.setZIndex=function(a){this.zIndex_=a,this.div_&&(this.div_.style.zIndex=a),google.maps.event.trigger(this,"zindex_changed")},InfoBox.prototype.setVisible=function(a){this.isHidden_=!a,this.div_&&(this.div_.style.visibility=this.isHidden_?"hidden":"visible")},InfoBox.prototype.getContent=function(){return this.content_},InfoBox.prototype.getPosition=function(){return this.position_},InfoBox.prototype.getZIndex=function(){return this.zIndex_},InfoBox.prototype.getVisible=function(){return void 0!==this.getMap()&&null!==this.getMap()&&!this.isHidden_},InfoBox.prototype.show=function(){this.isHidden_=!1,this.div_&&(this.div_.style.visibility="visible")},InfoBox.prototype.hide=function(){this.isHidden_=!0,this.div_&&(this.div_.style.visibility="hidden")},InfoBox.prototype.open=function(a,b){var c=this;b&&(this.position_=b.getPosition(),this.moveListener_=google.maps.event.addListener(b,"position_changed",function(){c.setPosition(this.getPosition())}),this.mapListener_=google.maps.event.addListener(b,"map_changed",function(){c.setMap(this.map)})),this.setMap(a),this.div_&&this.panBox_()},InfoBox.prototype.close=function(){var a;if(this.closeListener_&&(google.maps.event.removeListener(this.closeListener_),this.closeListener_=null),this.eventListeners_){for(a=0;a<this.eventListeners_.length;a++)google.maps.event.removeListener(this.eventListeners_[a]);this.eventListeners_=null}this.moveListener_&&(google.maps.event.removeListener(this.moveListener_),this.moveListener_=null),this.mapListener_&&(google.maps.event.removeListener(this.mapListener_),this.mapListener_=null),this.contextListener_&&(google.maps.event.removeListener(this.contextListener_),this.contextListener_=null),this.setMap(null)};
2(function($){
3    $(document).ready(function(){
4
5        var dvls_city = $.parseJSON(devvn_localstore_array.local_address);
6        var citySelect = $('#dvls_city');
7        var districtSelect = $('#dvls_district');
8        var oldValueCity = citySelect.data('value');
9        var oldValueDistrict = districtSelect.data('value');
10        $(dvls_city).each(function(index, value){
11            var thisChecked = '';
12            if(oldValueCity == value.id) {
13                thisChecked = 'selected="selected"';
14                $(value.district).each(function(index, value) {
15                    var thisChecked = '';
16                    if(oldValueDistrict == value.id) {
17                        thisChecked = 'selected="selected"';
18                    }
19                    districtSelect.append('<option value="' + value.id + '" '+thisChecked+'>' + value.name + '</option>');
20                });
21            }
22            citySelect.append('<option value="'+value.id+'" '+thisChecked+'>'+value.name+'</option>');
23        });
24        $(citySelect).on('change',function(){
25            var thisval = $(this).val();
26            districtSelect.html('<option value="null" selected>'+devvn_localstore_array.select_text+'</option>');
27            $(dvls_city).each(function(index, value){
28                if(thisval == value.id){
29                    $(value.district).each(function(index, value) {
30                        districtSelect.append('<option value="' + value.id + '">' + value.name + '</option>');
31                    });
32                    return false;
33                }
34            });
35        });
36
37        var autocomplete,map,markers = [],infoWindow,geocoder,dvls_loading = false;
38        var mapDiv = $('#dvls_maps');
39        
40        function dvls_initMap() {
41            var dvls_center = {lat: mapDiv.data('lat'), lng: mapDiv.data('lng')};
42            map = new google.maps.Map(document.getElementById('dvls_maps'), {
43                zoom: parseInt(devvn_localstore_array.maps_zoom),
44                center: dvls_center,
45                //scrollwheel: false,
46            });
47            /*var marker = new google.maps.Marker({
48                position: dvls_center,
49                map: map
50            });*/
51            infoWindow = new google.maps.InfoWindow();
52
53            dvls_lastest_store();
54        }
55        dvls_initMap();
56        $('.dvls_near_you').on('click',function () {
57            var thisDisallow = $(this).data('disallow');
58            if(thisDisallow == 1) return false;
59            devvn_findstore_nearyou();
60            return false;
61        });
62        function dvls_notsupport_geocoder(){
63            $('.dvls_near_you').remove();
64        }
65        function dvls_disallow_geocoder(){
66            $('.dvls_near_you').attr('data-disallow','1').html(devvn_localstore_array.labels.disallow_labels);
67        }
68        function devvn_findstore_nearyou(){
69            if (navigator.geolocation) {
70                dvls_before_load();
71                navigator.geolocation.getCurrentPosition(successFunction, errorFunction);
72            } else {
73                dvls_notsupport_geocoder();
74                dvls_lastest_store();
75            }
76            geocoder = new google.maps.Geocoder();
77        }
78        function errorFunction() {
79            dvls_disallow_geocoder();
80            dvls_lastest_store();
81        }
82        function successFunction(position) {
83            var lat = position.coords.latitude;
84            var lng = position.coords.longitude;
85            var data = [];
86            data['lat'] = lat;
87            data['lng'] = lng;
88            data['near'] = true;
89            dvls_firstload_store(data);
90        }
91
92        function dvls_lastest_store() {
93            var data = [];
94            data['near'] = false;
95            dvls_firstload_store(data);
96        }
97
98        function dvls_before_load(){
99            dvls_loading = true;
100            $('.dvls_maps_body').addClass('devvn_loading');
101        }
102
103
104        function dvls_ajax_load_success(response){
105            if(response.success) {
106                var maps_data = response.data;
107                var bounds = new google.maps.LatLngBounds();
108                var dataMarker = [];
109                clearLocations(maps_data.length);
110                $('.dvls_result_wrap').html('');
111                for (var i = 0; i < maps_data.length; i++)
112                {
113                    var lat = (maps_data[i].maps_lat) ? maps_data[i].maps_lat : '';
114                    var lng = (maps_data[i].maps_lng) ? maps_data[i].maps_lng : '';
115                    var latlng = new google.maps.LatLng(lat,lng);
116                    dataMarker['stt'] = i;
117                    dataMarker['id'] = (maps_data[i].id) ? parseInt(maps_data[i].id) : '';
118                    dataMarker['title'] = (maps_data[i].title) ? maps_data[i].title : '';
119                    dataMarker['name'] = (maps_data[i].name) ? maps_data[i].name : '';
120                    dataMarker['thumb'] = (maps_data[i].thumb) ? maps_data[i].thumb : '';
121                    dataMarker['address'] = (maps_data[i].address) ? maps_data[i].address : '';
122                    dataMarker['city'] = (maps_data[i].city) ? parseInt(maps_data[i].city) : '';
123                    dataMarker['district'] = (maps_data[i].district) ? parseInt(maps_data[i].district) : '';
124                    dataMarker['phone1'] = (maps_data[i].phone1) ? maps_data[i].phone1 : '';
125                    dataMarker['phone2'] = (maps_data[i].phone2) ? maps_data[i].phone2 : '';
126                    dataMarker['hotline1'] = (maps_data[i].hotline1) ? maps_data[i].hotline1 : '';
127                    dataMarker['hotline2'] = (maps_data[i].hotline2) ? maps_data[i].hotline2 : '';
128                    dataMarker['email'] = (maps_data[i].email) ? maps_data[i].email : '';
129                    dataMarker['open'] = (maps_data[i].open) ? maps_data[i].open : '';
130                    var marker_defaultURL = (devvn_localstore_array.marker_default[0]) ? devvn_localstore_array.marker_default[0] : '';
131                    var marker_defaultH = (devvn_localstore_array.marker_default[2]) ? parseInt(devvn_localstore_array.marker_default[2]) : '';
132                    dataMarker['marker'] = (maps_data[i].marker && maps_data[i].marker[0]) ? maps_data[i].marker[0] : marker_defaultURL ;
133                    dataMarker['h_marker'] = (maps_data[i].marker && maps_data[i].marker[2]) ? parseInt(maps_data[i].marker[2]) : marker_defaultH;
134                    dataMarker['maps_lat'] = lat;
135                    dataMarker['maps_lng'] = lng;
136                    dataMarker['latlng'] = latlng;
137                    createMarker(dataMarker);
138                    bounds.extend(latlng);
139                    var has_thumb = '';
140                    if(dataMarker['thumb']) has_thumb = 'has_thumb';
141
142                    $html = '<div data-id="'+i+'" data-lat="'+lat+'" data-lng="'+lng+'" class="dvls_result_item '+has_thumb+'">';
143                    if(dataMarker['thumb']) {
144                        $html += '<div class="dvls_result_thumb"><img src="'+dataMarker['thumb']+'" alt=""></div>';
145                    }
146                    $html += '<div class="dvls_result_infor">';
147                    if(dataMarker['name']) {
148                        $html += '<h3>'+dataMarker['name']+'</h3>';
149                    }else{
150                        $html += '<h3>'+dataMarker['title']+'</h3>';
151                    }
152                    $html += '<p>'+dataMarker['address']+'</p>';
153                    $html += '<p>';
154                    if(dataMarker['hotline1']) {
155                        $html += '<a href="tel:'+dataMarker['hotline1']+'">'+dataMarker['hotline1']+'</a>';
156                    }
157                    if(dataMarker['hotline1'] && dataMarker['hotline2']) {
158                        $html += ' - ';
159                    }
160                    if(dataMarker['hotline2']) {
161                        $html += '<a href="tel:'+dataMarker['hotline2']+'">'+dataMarker['hotline2']+'</a>';
162                    }
163                    $html += '</p>';
164                    $html += '<a href="https://maps.google.com?saddr=Current+Location&daddr='+lat+','+lng+'" target="_blank" rel="nofollow">'+devvn_localstore_array.labels.get_directions+'</a>';
165                    $html += '</div>';
166                    $html += '</div>';
167
168                    $('.dvls_result_wrap').append($html);
169                }
170                if (maps_data.length){
171                    var listener = google.maps.event.addListener(map, "idle", function() {
172                        google.maps.event.removeListener(listener);
173                    });
174                    map.fitBounds(bounds);
175                    if(maps_data.length == 1){
176                        map.setZoom(parseInt(devvn_localstore_array.maps_zoom));
177                    }
178                    $(".dvls_result_wrap").on('click','.dvls_result_item',function() {
179                        var markerNum = $(this).data('id');
180                        var latsvl = $(this).data('lat');
181                        var lngsvl = $(this).data('lng');
182                        google.maps.event.trigger(markers[markerNum], 'click');
183                        map.setZoom(parseInt(devvn_localstore_array.maps_zoom));
184                        var b = new google.maps.LatLng(latsvl,lngsvl);
185                        map.setCenter(b);
186                        $(".dvls_result_wrap .dvls_result_item").removeClass('active');
187                        $(this).addClass('active');
188                    });
189                    /*$(".dvls_result_wrap").on('hover','.dvls_result_item',function() {
190                        var markerNum = $(this).data('id');
191                        var latsvl = $(this).data('lat');
192                        var lngsvl = $(this).data('lng');
193                        google.maps.event.trigger(markers[markerNum], 'click');
194                    });*/
195
196                    $('.dvls_result_status strong').html(maps_data.length);
197                    $('.dvls_result_status').addClass('show');
198                }
199            }else {
200                clearAllData();
201            }
202            $('.dvls_maps_body').removeClass('devvn_loading');
203        }
204
205        function dvls_firstload_store(data) {
206            var near = (data['near']) ? true : false;
207            var lat = (data['lat']) ? data['lat'] : '';
208            var lng = (data['lng']) ? data['lng'] : '';
209            var nonce = $('#dvls_nonce').val();
210            var action = 'dvls_loadlastest_store';
211            $.ajax({
212                type: "post",
213                dataType: "json",
214                url: devvn_localstore_array.ajaxurl,
215                data: {
216                    action: action,
217                    lat: lat,
218                    lng: lng,
219                    near: near,
220                    nonce: nonce
221                },
222                context: this,
223                beforeSend: function () {
224                    dvls_before_load();
225                },
226                success: function (response) {
227                    dvls_loading = false;
228                    dvls_ajax_load_success(response)
229                },
230                error: function () {
231                    dvls_loading = false;
232                    $('.dvls_maps_body').removeClass('devvn_loading');
233                }
234            });
235        }
236
237        function clearAllData(){
238            $('.dvls_result_wrap').html('');
239            clearLocations();
240            $('.dvls_result_status strong').html('0');
241            $('.dvls_result_status').addClass('show');
242            var b = new google.maps.LatLng(devvn_localstore_array.lat_default,devvn_localstore_array.lng_default);
243            map.setCenter(b);
244        }
245        function dvls_loadresult(){
246            var nonce = $('#dvls_nonce').val();
247            var cityid = $('#dvls_city').val();
248            var districtid = $('#dvls_district').val();
249            if(!dvls_loading) {
250                $.ajax({
251                    type: "post",
252                    dataType: "json",
253                    url: devvn_localstore_array.ajaxurl,
254                    data: {
255                        action: "dvls_load_localstores",
256                        cityid: cityid,
257                        districtid: districtid,
258                        nonce: nonce
259                    },
260                    context: this,
261                    beforeSend: function () {
262                        dvls_before_load();
263                    },
264                    success: function (response) {
265                        dvls_loading = false;
266                        dvls_ajax_load_success(response);
267                    },
268                    error: function () {
269                        $('.dvls_maps_body').removeClass('devvn_loading');
270                        dvls_loading = false;
271                    }
272                });
273            }
274        }
275        var lastInfobox;
276        var lastClickedMarker;
277        function createMarker(dataMarker){
278            var i = dataMarker.stt;
279            var h_marker = (dataMarker.h_marker) ? dataMarker.h_marker : 35;
280            var html = '';
281            html += '<div class="item infobox" data-id="'+i+'" >';
282            if(dataMarker.thumb) {
283                html += '<div class="item_infobox_thumb"><img src="'+dataMarker.thumb+'" alt=""></div>';
284            }
285            html += '<div class="item_infobox_infor">';
286            if(dataMarker.name) {
287                html += '<h3>'+dataMarker.name+'</h3>';
288            }else{
289                html += '<h3>'+dataMarker.title+'</h3>';
290            }
291            html += '<p>'+dataMarker.address+'</p>';
292            //tel
293            if(dataMarker.hotline1 || dataMarker.hotline2) {
294                html += '<p>'+devvn_localstore_array.labels.text_phone+': ';
295                if (dataMarker.phone1) {
296                    html += '<a href="tel:' + dataMarker.phone1 + '">' + dataMarker.phone1 + '</a>';
297                }
298                if (dataMarker.phone1 && dataMarker.phone2) {
299                    html += ' - ';
300                }
301                if (dataMarker.phone2) {
302                    html += '<a href="tel:' + dataMarker.phone2 + '">' + dataMarker.phone2 + '</a>';
303                }
304                html += '</p>';
305            }
306            //Hotline
307            if(dataMarker.hotline1 || dataMarker.hotline2) {
308                html += '<p>'+devvn_localstore_array.labels.text_hotline+': ';
309                if (dataMarker.hotline1) {
310                    html += '<a href="tel:' + dataMarker.hotline1 + '">' + dataMarker.hotline1 + '</a>';
311                }
312                if (dataMarker.hotline1 && dataMarker.hotline2) {
313                    html += ' - ';
314                }
315                if (dataMarker.hotline2) {
316                    html += '<a href="tel:' + dataMarker.hotline2 + '">' + dataMarker.hotline2 + '</a>';
317                }
318                html += '</p>';
319            }
320            //Email
321            html += '<p>';
322            if(dataMarker.email) {
323                html += devvn_localstore_array.labels.text_email+': <a href="mailto:'+dataMarker.email+'">'+dataMarker.email+'</a>';
324            }
325            html += '</p>';
326            //Open
327            if(dataMarker.open) {
328                html += '<p>'+devvn_localstore_array.labels.text_open+': '+dataMarker.open+'</p>';
329            }
330            html += '<a href="https://maps.google.com?saddr=Current+Location&daddr='+dataMarker.maps_lat+','+dataMarker.maps_lng+'" target="_blank" rel="nofollow">'+devvn_localstore_array.labels.get_directions+'</a>';
331            html += '</div>';
332
333            html += '</div>';
334            //Thêm icon map cho mỗi địa chỉ
335            var icon_image = "";
336            if(dataMarker.marker != "")
337                icon_image = new google.maps.MarkerImage(dataMarker.marker);
338            else
339                icon_image = new google.maps.MarkerImage(dataMarker.marker);
340
341            var marker = '';
342
343            if (dataMarker.marker)
344                marker = new google.maps.Marker({map: map, icon: icon_image, animation: google.maps.Animation.DROP, position: dataMarker.latlng});
345            else
346                marker = new google.maps.Marker({map: map, position: dataMarker.latlng, animation: google.maps.Animation.DROP});
347            var sWidth = -150;
348            if (matchMedia('only screen and (max-width: 500px)').matches) {
349                sWidth = -110;
350            }
351            google.maps.event.addListener(marker, 'click', function() {
352                infoboxOptions = {
353                    content: html,
354                    disableAutoPan: false,
355                    pixelOffset: new google.maps.Size(sWidth, -h_marker),
356                    zIndex: null,
357                    alignBottom: true,
358                    boxClass: "infobox-wrapper",
359                    closeBoxMargin: "15px 0px 0px 0px",
360                    closeBoxURL: devvn_localstore_array.close_icon,
361                    infoBoxClearance: new google.maps.Size(1, 1),
362                    enableEventPropagation: false
363                };
364
365                if( lastInfobox != undefined ){
366                    lastInfobox.close();
367                }
368                markers[i].infobox = new InfoBox(infoboxOptions);
369                markers[i].infobox.open(map, this);
370                lastInfobox = markers[i].infobox;
371                $('.dvls_result_item.active').removeClass("active");
372                $('.dvls_result_item[data-id='+i+']').addClass("active");
373                google.maps.event.addListener(markers[i].infobox,'closeclick',function(){
374                    $('.dvls_result_item.active').removeClass("active");
375                });
376            });
377
378            markers.push(marker);
379        }
380        function clearLocations(n){
381            infoWindow.close();
382            for (var i = 0; i < markers.length; i++)
383                markers[i].setMap(null);
384
385            markers.length = 0;
386        }
387        $('.dvls-submit').on('click',function(){
388            dvls_loadresult();
389            return false;
390        });
391    });
392})(jQuery);

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.