{"id":1156,"date":"2020-08-24T10:02:28","date_gmt":"2020-08-24T03:02:28","guid":{"rendered":"https:\/\/giatui2h.com\/?page_id=1156"},"modified":"2026-10-17T12:13:50","modified_gmt":"2026-10-17T05:13:50","slug":"cheap-laundry-in-nha-trang","status":"publish","type":"page","link":"https:\/\/giatui2h.com\/en\/cheap-laundry-in-nha-trang\/","title":{"rendered":"Laundry Prices in Nha Trang: 3 kg 60,000\u20ab, 5 kg 90,000\u20ab"},"content":{"rendered":"<p>[et_pb_section fb_built=&#8221;1&#8243; admin_label=&#8221;Header&#8221; _builder_version=&#8221;4.27.7&#8243; background_color=&#8221;#c8cad3&#8243; use_background_color_gradient=&#8221;on&#8221; background_color_gradient_type=&#8221;circular&#8221; background_color_gradient_direction_radial=&#8221;top left&#8221; background_color_gradient_stops=&#8221;#ffffff 60%|rgba(161,176,221,0.64) 60%&#8221; background_color_gradient_overlays_image=&#8221;on&#8221; background_color_gradient_start=&#8221;#ffffff&#8221; background_color_gradient_start_position=&#8221;60%&#8221; background_color_gradient_end=&#8221;rgba(161,176,221,0.64)&#8221; background_color_gradient_end_position=&#8221;60%&#8221; background_enable_image=&#8221;off&#8221; custom_padding=&#8221;8vw||6vw||false|false&#8221; top_divider_color=&#8221;#ffffff&#8221; bottom_divider_style=&#8221;clouds2&#8243; bottom_divider_color=&#8221;#ffffff&#8221; bottom_divider_height=&#8221;10.5vw&#8221; bottom_divider_flip=&#8221;horizontal&#8221; border_color_all=&#8221;#ff8c00&#8243; border_width_top=&#8221;40px&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_row column_structure=&#8221;1_2,1_2&#8243; _builder_version=&#8221;4.16&#8243; max_width=&#8221;80%&#8221; custom_padding=&#8221;||&#8221; animation_direction=&#8221;bottom&#8221; use_custom_width=&#8221;on&#8221; width_unit=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;1_2&#8243; _builder_version=&#8221;4.16&#8243; custom_padding=&#8221;|||&#8221; global_colors_info=&#8221;{}&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_text _builder_version=&#8221;4.27.7&#8243; text_font=&#8221;||||||||&#8221; text_text_color=&#8221;rgba(0,0,0,0.56)&#8221; text_font_size=&#8221;8px&#8221; text_line_height=&#8221;2em&#8221; ul_font=&#8221;||||||||&#8221; ol_font=&#8221;||||||||&#8221; header_font=&#8221;|700|||||||&#8221; header_font_size=&#8221;4vw&#8221; header_line_height=&#8221;1.2em&#8221; header_2_font=&#8221;||||||||&#8221; header_2_font_size=&#8221;32px&#8221; header_3_font=&#8221;||||||||&#8221; header_4_font=&#8221;||||||||&#8221; header_5_font=&#8221;||||||||&#8221; header_6_font=&#8221;||||||||&#8221; width=&#8221;100%&#8221; max_width=&#8221;100%&#8221; module_alignment=&#8221;left&#8221; custom_margin=&#8221;-32px||4px|||&#8221; custom_padding=&#8221;||4px|||&#8221; animation_style=&#8221;fade&#8221; animation_direction=&#8221;top&#8221; animation_starting_opacity=&#8221;100%&#8221; header_font_size_tablet=&#8221;&#8221; header_font_size_phone=&#8221;42px&#8221; header_font_size_last_edited=&#8221;on|phone&#8221; header_2_font_size_tablet=&#8221;&#8221; header_2_font_size_phone=&#8221;24px&#8221; header_2_font_size_last_edited=&#8221;on|phone&#8221; locked=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221; text_font_size__hover=&#8221;14px&#8221; text_font_size__hover_enabled=&#8221;14px&#8221; text_letter_spacing__hover=&#8221;0px&#8221; text_letter_spacing__hover_enabled=&#8221;0px&#8221; text_line_height__hover=&#8221;1.7em&#8221; text_line_height__hover_enabled=&#8221;1.7em&#8221; text_text_shadow_style__hover=&#8221;none&#8221; text_text_shadow_style__hover_enabled=&#8221;none&#8221; text_text_shadow_color__hover=&#8221;rgba(0,0,0,0.4)&#8221; text_text_shadow_color__hover_enabled=&#8221;rgba(0,0,0,0.4)&#8221; link_font_size__hover=&#8221;14px&#8221; link_font_size__hover_enabled=&#8221;14px&#8221; link_letter_spacing__hover=&#8221;0px&#8221; link_letter_spacing__hover_enabled=&#8221;0px&#8221; link_line_height__hover=&#8221;1em&#8221; link_line_height__hover_enabled=&#8221;1em&#8221; link_text_shadow_style__hover=&#8221;none&#8221; link_text_shadow_style__hover_enabled=&#8221;none&#8221; link_text_shadow_color__hover=&#8221;rgba(0,0,0,0.4)&#8221; link_text_shadow_color__hover_enabled=&#8221;rgba(0,0,0,0.4)&#8221; ul_font_size__hover=&#8221;14px&#8221; ul_font_size__hover_enabled=&#8221;14px&#8221; ul_letter_spacing__hover=&#8221;0px&#8221; ul_letter_spacing__hover_enabled=&#8221;0px&#8221; ul_line_height__hover=&#8221;1em&#8221; ul_line_height__hover_enabled=&#8221;1em&#8221; ul_text_shadow_style__hover=&#8221;none&#8221; ul_text_shadow_style__hover_enabled=&#8221;none&#8221; ul_text_shadow_color__hover=&#8221;rgba(0,0,0,0.4)&#8221; ul_text_shadow_color__hover_enabled=&#8221;rgba(0,0,0,0.4)&#8221; ol_font_size__hover=&#8221;14px&#8221; ol_font_size__hover_enabled=&#8221;14px&#8221; ol_letter_spacing__hover=&#8221;0px&#8221; ol_letter_spacing__hover_enabled=&#8221;0px&#8221; ol_line_height__hover=&#8221;1em&#8221; ol_line_height__hover_enabled=&#8221;1em&#8221; ol_text_shadow_style__hover=&#8221;none&#8221; ol_text_shadow_style__hover_enabled=&#8221;none&#8221; ol_text_shadow_color__hover=&#8221;rgba(0,0,0,0.4)&#8221; ol_text_shadow_color__hover_enabled=&#8221;rgba(0,0,0,0.4)&#8221; quote_font_size__hover=&#8221;14px&#8221; quote_font_size__hover_enabled=&#8221;14px&#8221; quote_letter_spacing__hover=&#8221;0px&#8221; quote_letter_spacing__hover_enabled=&#8221;0px&#8221; quote_line_height__hover=&#8221;1em&#8221; quote_line_height__hover_enabled=&#8221;1em&#8221; quote_text_shadow_style__hover=&#8221;none&#8221; quote_text_shadow_style__hover_enabled=&#8221;none&#8221; quote_text_shadow_color__hover=&#8221;rgba(0,0,0,0.4)&#8221; quote_text_shadow_color__hover_enabled=&#8221;rgba(0,0,0,0.4)&#8221; text_orientation__hover=&#8221;left&#8221; text_orientation__hover_enabled=&#8221;left&#8221; background_layout__hover=&#8221;light&#8221; background_layout__hover_enabled=&#8221;light&#8221; header_font_size__hover=&#8221;30px&#8221; header_font_size__hover_enabled=&#8221;30px&#8221; header_letter_spacing__hover=&#8221;0px&#8221; header_letter_spacing__hover_enabled=&#8221;0px&#8221; header_text_shadow_style__hover=&#8221;none&#8221; header_text_shadow_style__hover_enabled=&#8221;none&#8221; header_text_shadow_color__hover=&#8221;rgba(0,0,0,0.4)&#8221; header_text_shadow_color__hover_enabled=&#8221;rgba(0,0,0,0.4)&#8221; header_2_font_size__hover=&#8221;26px&#8221; header_2_font_size__hover_enabled=&#8221;26px&#8221; header_2_letter_spacing__hover=&#8221;0px&#8221; header_2_letter_spacing__hover_enabled=&#8221;0px&#8221; header_2_line_height__hover=&#8221;1em&#8221; header_2_line_height__hover_enabled=&#8221;1em&#8221; header_2_text_shadow_style__hover=&#8221;none&#8221; header_2_text_shadow_style__hover_enabled=&#8221;none&#8221; header_2_text_shadow_color__hover=&#8221;rgba(0,0,0,0.4)&#8221; header_2_text_shadow_color__hover_enabled=&#8221;rgba(0,0,0,0.4)&#8221; header_3_font_size__hover=&#8221;22px&#8221; header_3_font_size__hover_enabled=&#8221;22px&#8221; header_3_letter_spacing__hover=&#8221;0px&#8221; header_3_letter_spacing__hover_enabled=&#8221;0px&#8221; header_3_line_height__hover=&#8221;1em&#8221; header_3_line_height__hover_enabled=&#8221;1em&#8221; header_3_text_shadow_style__hover=&#8221;none&#8221; header_3_text_shadow_style__hover_enabled=&#8221;none&#8221; header_3_text_shadow_color__hover=&#8221;rgba(0,0,0,0.4)&#8221; header_3_text_shadow_color__hover_enabled=&#8221;rgba(0,0,0,0.4)&#8221; header_4_font_size__hover=&#8221;18px&#8221; header_4_font_size__hover_enabled=&#8221;18px&#8221; header_4_letter_spacing__hover=&#8221;0px&#8221; header_4_letter_spacing__hover_enabled=&#8221;0px&#8221; header_4_line_height__hover=&#8221;1em&#8221; header_4_line_height__hover_enabled=&#8221;1em&#8221; header_4_text_shadow_style__hover=&#8221;none&#8221; header_4_text_shadow_style__hover_enabled=&#8221;none&#8221; header_4_text_shadow_color__hover=&#8221;rgba(0,0,0,0.4)&#8221; header_4_text_shadow_color__hover_enabled=&#8221;rgba(0,0,0,0.4)&#8221; header_5_font_size__hover=&#8221;16px&#8221; header_5_font_size__hover_enabled=&#8221;16px&#8221; header_5_letter_spacing__hover=&#8221;0px&#8221; header_5_letter_spacing__hover_enabled=&#8221;0px&#8221; header_5_line_height__hover=&#8221;1em&#8221; header_5_line_height__hover_enabled=&#8221;1em&#8221; header_5_text_shadow_style__hover=&#8221;none&#8221; header_5_text_shadow_style__hover_enabled=&#8221;none&#8221; header_5_text_shadow_color__hover=&#8221;rgba(0,0,0,0.4)&#8221; header_5_text_shadow_color__hover_enabled=&#8221;rgba(0,0,0,0.4)&#8221; header_6_font_size__hover=&#8221;14px&#8221; header_6_font_size__hover_enabled=&#8221;14px&#8221; header_6_letter_spacing__hover=&#8221;0px&#8221; header_6_letter_spacing__hover_enabled=&#8221;0px&#8221; header_6_line_height__hover=&#8221;1em&#8221; header_6_line_height__hover_enabled=&#8221;1em&#8221; header_6_text_shadow_style__hover=&#8221;none&#8221; header_6_text_shadow_style__hover_enabled=&#8221;none&#8221; header_6_text_shadow_color__hover=&#8221;rgba(0,0,0,0.4)&#8221; header_6_text_shadow_color__hover_enabled=&#8221;rgba(0,0,0,0.4)&#8221;]<\/p>\n<h1>Laundry prices in Nha Trang<\/h1>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.27.7&#8243; text_font_size=&#8221;16px&#8221; header_font_size=&#8221;31px&#8221; header_2_font=&#8221;Times New Roman|700|||||||&#8221; header_2_text_color=&#8221;#71cfd6&#8243; custom_padding=&#8221;||0px|||&#8221; header_font_size_last_edited=&#8221;off|desktop&#8221; global_colors_info=&#8221;{}&#8221;]Wash &amp; dry is priced by weight, not per item. The table below is the full list \u2014 there are no hidden fees.<\/p>\n<h2>Wash &amp; dry by weight<\/h2>\n<table>\n<thead>\n<tr>\n<th>Weight<\/th>\n<th>Price<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Up to 3 kg<\/td>\n<td>60,000 VND<\/td>\n<\/tr>\n<tr>\n<td>Up to 5 kg<\/td>\n<td>90,000 VND<\/td>\n<\/tr>\n<tr>\n<td>Up to 7 kg<\/td>\n<td>120,000 VND<\/td>\n<\/tr>\n<tr>\n<td>Over 7 kg<\/td>\n<td>18,000 VND per kg<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>The price covers washing, drying, folding and packing.<\/p>\n<h2>How we weigh<\/h2>\n<p>Tiers are <strong>inclusive<\/strong>. A 4.2 kg bag falls under the up-to-5-kg tier and costs 90,000 VND \u2014 nothing extra for the remainder.<\/p>\n<p>Dry laundry is weighed in front of you at drop-off. Wet laundry is weighed after washing and drying, because wet clothes are far heavier and weighing them then would cost you more.<\/p>\n<p>Over 7 kg switches to a per-kilo rate. For example, 9 kg is 9 \u00d7 18,000 = 162,000 VND.<\/p>\n<h2>What one wash load covers<\/h2>\n<p>The prices above are for <strong>one wash load<\/strong> \u2014 your whole bag goes through the machine together.<\/p>\n<p>Your laundry is never mixed with another customer&#8217;s. But within your own bag, whites and colours still go in together unless you ask us to separate them.<\/p>\n<p><strong>If whites and colours are washed together, we cannot take responsibility for colour bleeding.<\/strong> This is stated on the price board in the shop, and we repeat it here so you can decide before handing your bag over.<\/p>\n<p>If you want whites, darks or anything likely to run washed separately, tell us at drop-off. Each extra load is charged as its own order at the rates above.<\/p>\n<h2>Other services<\/h2>\n<table>\n<thead>\n<tr>\n<th>Service<\/th>\n<th>Price<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Ironing<\/td>\n<td>20,000 VND per item<\/td>\n<\/tr>\n<tr>\n<td>Sneaker cleaning<\/td>\n<td>70,000 VND per pair<\/td>\n<\/tr>\n<tr>\n<td>Soft toys and stuffed animals<\/td>\n<td>Depends on size<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Soft toys are priced by size, so send a photo on WhatsApp and we can quote straight away.[\/et_pb_text][dsm_button button_one_text=&#8221;SEE THE ADDRESS&#8221; button_one_url=&#8221;https:\/\/maps.google.com\/?cid=14645360106988054345&#8243; button_one_url_new_window=&#8221;on&#8221; button_one_lightbox_close_color=&#8221;RGBA(255,255,255,0)&#8221; button_two_text=&#8221;BOOK A PICKUP&#8221; button_two_url=&#8221;https:\/\/giatui2h.com\/giat-ui-giao-nhan-tan-noi\/&#8221; button_two_lightbox_close_color=&#8221;RGBA(255,255,255,0)&#8221; button_alignment=&#8221;center&#8221; separator_gap_tablet=&#8221;&#8221; separator_gap_phone=&#8221;&#8221; separator_gap_last_edited=&#8221;on|phone&#8221; _builder_version=&#8221;4.27.7&#8243; _module_preset=&#8221;default&#8221; separator_text_text_color=&#8221;RGBA(255,255,255,0)&#8221; tooltip_one_font=&#8221;Arial|600|||||||&#8221; tooltip_two_font=&#8221;Arial|600|||||||&#8221; custom_button_one=&#8221;on&#8221; button_one_text_color=&#8221;#FFFFFF&#8221; button_one_bg_color=&#8221;#ff8c00&#8243; button_one_border_width=&#8221;0px&#8221; button_one_border_color=&#8221;RGBA(255,255,255,0)&#8221; button_one_border_radius=&#8221;6px&#8221; button_one_letter_spacing=&#8221;0px&#8221; button_one_font=&#8221;Arial|600|||||||&#8221; button_one_use_icon=&#8221;off&#8221; custom_button_two=&#8221;on&#8221; button_two_text_color=&#8221;#FFFFFF&#8221; button_two_bg_color=&#8221;#ff8c00&#8243; button_two_border_width=&#8221;0px&#8221; button_two_border_color=&#8221;RGBA(255,255,255,0)&#8221; button_two_border_radius=&#8221;6px&#8221; button_two_font=&#8221;Arial|600|||||||&#8221; button_two_use_icon=&#8221;off&#8221; custom_margin=&#8221;||||false|false&#8221; custom_padding=&#8221;||||false|false&#8221; separator_text_font_size_tablet=&#8221;&#8221; separator_text_font_size_phone=&#8221;&#8221; separator_text_font_size_last_edited=&#8221;on|phone&#8221; tooltip_one_font_size_tablet=&#8221;&#8221; tooltip_one_font_size_phone=&#8221;&#8221; tooltip_one_font_size_last_edited=&#8221;on|phone&#8221; button_one_text_size_tablet=&#8221;&#8221; button_one_text_size_phone=&#8221;17px&#8221; button_one_text_size_last_edited=&#8221;on|phone&#8221; button_two_text_size_tablet=&#8221;&#8221; button_two_text_size_phone=&#8221;17px&#8221; button_two_text_size_last_edited=&#8221;on|phone&#8221; background_layout_last_edited=&#8221;off|phone&#8221; button_one_text_shadow_style=&#8221;preset5&#8243; button_two_text_shadow_style=&#8221;preset5&#8243; locked=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221;][\/dsm_button][\/et_pb_column][et_pb_column type=&#8221;1_2&#8243; _builder_version=&#8221;4.16&#8243; custom_padding=&#8221;|||&#8221; global_colors_info=&#8221;{}&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_text _builder_version=&#8221;4.27.7&#8243; text_font_size=&#8221;16px&#8221; header_font_size=&#8221;31px&#8221; header_2_font=&#8221;Times New Roman|700|||||||&#8221; header_2_text_color=&#8221;#71cfd6&#8243; custom_padding=&#8221;||0px|||&#8221; header_font_size_last_edited=&#8221;off|desktop&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<h2>Bedding and curtain prices<\/h2>\n<p>These are priced per kilo on their own, not folded into a clothing load, because heavy items need a different wash and dry cycle.<\/p>\n<table>\n<thead>\n<tr>\n<th>Item<\/th>\n<th>Price<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Bed sheets<\/td>\n<td>20,000 VND per kg<\/td>\n<\/tr>\n<tr>\n<td>Curtains<\/td>\n<td>25,000 VND per kg<\/td>\n<\/tr>\n<tr>\n<td>Blankets<\/td>\n<td>30,000 VND per kg<\/td>\n<\/tr>\n<tr>\n<td>Mattress toppers, rugs<\/td>\n<td>40,000 VND per kg<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Minimum 60,000 VND per order in this group. Heavy items need a long dry, so they usually come back the same day or the next rather than within two to four hours.<\/p>\n<p>Each service, how long it takes and the \u201cWhat we do not do\u201d list are set out on the <a href=\"https:\/\/giatui2h.com\/en\/instant-laundry-in-nha-trang\/\">services page<\/a>.<\/p>\n<h2>Pickup and delivery fee<\/h2>\n<p>If you cannot get to the shop, we collect and return \u2014 hotels, apartments or private homes across the city.<\/p>\n<p>The fee is <strong>30,000 to 150,000 VND<\/strong> depending on distance. Closer to the centre, lower. We quote the exact amount when confirming your order, before the driver sets off.<\/p>\n<p>The areas we cover are listed on <a href=\"https:\/\/giatui2h.com\/en\/laundry-near-me-nha-trang-service-areas\/\">laundry near you in Nha Trang, by area<\/a>. To book, call or message <a href=\"tel:+84812397666\">+84 812 397 666<\/a> on WhatsApp, Zalo or Kakao, or fill in the form on the <a href=\"https:\/\/giatui2h.com\/en\/laundry-pickup-and-delivery-service\/\">pickup and delivery page<\/a>.<\/p>\n<h2>Compared with hotel laundry<\/h2>\n<p>Hotels usually charge per item: so much for a shirt, so much for a pair of trousers. That works out fine if you only need two or three things cleaned.<\/p>\n<p>But if you have been travelling a few days and have a full bag, per-item pricing adds up to noticeably more than paying by weight. That is why most travellers in Nha Trang take their laundry to a shop rather than leaving it at reception.<\/p>\n<p>Do the sum yourself: three days of laundry for two people usually comes to around 4\u20135 kg, which is 90,000 VND here.<\/p>\n<h2>Questions about pricing<\/h2>\n<h3>Are there any extra fees?<\/h3>\n<p>No. The listed price covers washing, drying, folding and packing. Only two things cost extra, and you choose both: the pickup fee if you want us to come to you, and a second load if you want colours washed separately.<\/p>\n<h3>Do rush orders cost more?<\/h3>\n<p>No. We do not charge a rush fee. Tell us when you need it, we move your order up the queue where we can, and if we cannot make it we say so beforehand.<\/p>\n<h3>When do I pay?<\/h3>\n<p>Up to you \u2014 when you drop the laundry off, or when you come back for it. We print a receipt showing the weight, the service and the amount.<\/p>\n<h3>What if I only have a little laundry?<\/h3>\n<p>The lowest tier is up to 3 kg at 60,000 VND. A lighter bag is still charged at that tier, because each order runs as its own load.<\/p>\n<h3>Is there a different rate for regulars?<\/h3>\n<p>No. We use one price list for everyone, whether you come once or every week.<\/p>\n<h2>Sending your laundry<\/h2>\n<ul>\n<li><strong>Bring it to the shop<\/strong> \u2014 8 Nguyen Thi Minh Khai, at the Hung Vuong junction. Open 07:00\u201322:00 daily. Directions on the <a href=\"https:\/\/giatui2h.com\/en\/nha-trang-laundry-address\/\">address and opening hours<\/a> page.<\/li>\n<li><strong>Call or message<\/strong> \u2014 <a href=\"tel:+84812397666\">+84 812 397 666<\/a>, works on Zalo, WhatsApp and Kakao<\/li>\n<li><strong>Fill in the form<\/strong> \u2014 <a href=\"https:\/\/giatui2h.com\/en\/laundry-pickup-and-delivery-service\/\">book pickup and delivery<\/a><\/li>\n<\/ul>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.27.7&#8243; _module_preset=&#8221;default&#8221;][et_pb_column _builder_version=&#8221;4.27.7&#8243; _module_preset=&#8221;default&#8221; type=&#8221;4_4&#8243;][et_pb_image src=&#8221;https:\/\/giatui2h.com\/wp-content\/uploads\/2026\/10\/IMG_3203.jpeg&#8221; _builder_version=&#8221;4.27.7&#8243; _module_preset=&#8221;default&#8221; alt=&#8221;Bang gia giat ui Nha Trang&#8221; title_text=&#8221;IMG_3203&#8243; hover_enabled=&#8221;0&#8243; sticky_enabled=&#8221;0&#8243;][\/et_pb_image][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; fullwidth=&#8221;on&#8221; _builder_version=&#8221;4.27.7&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_fullwidth_code _builder_version=&#8221;4.27.7&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<style><!-- [et_pb_line_break_holder] -->\/* ==========================================================================<!-- [et_pb_line_break_holder] -->   GI\u1eb6T \u1ee6I 2H \u2014 T\u00ccM C\u1eecA H\u00c0NG G\u1ea6N B\u1ea0N<!-- [et_pb_line_break_holder] -->   D\u00e1n nguy\u00ean file n\u00e0y v\u00e0o Divi: Module Code ho\u1eb7c Module Fullwidth Code.<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->   TR\u01af\u1edaC KHI D\u00c1N<!-- [et_pb_line_break_holder] -->   1. \u0110i\u1ec1n API_KEY v\u00e0 MAP_ID trong kh\u1ed1i CONFIG (\u0111\u1ea7u th\u1ebb script b\u00ean d\u01b0\u1edbi).<!-- [et_pb_line_break_holder] -->      Google Cloud c\u1ea7n b\u1eadt: Maps JavaScript API, Distance Matrix API.<!-- [et_pb_line_break_holder] -->   2. L\u00ean web th\u1eadt: \u0111\u1eb7t SHOW_SAMPLE th\u00e0nh false \u0111\u1ec3 \u1ea9n c\u00e1c c\u1eeda h\u00e0ng m\u1eabu.<!-- [et_pb_line_break_holder] -->   3. Trang ch\u1ec9 \u0111\u01b0\u1ee3c c\u00f3 M\u1ed8T b\u1ea3n Maps API. N\u1ebfu c\u00f2n Divi Map module th\u00ec xo\u00e1 \u0111i.<!-- [et_pb_line_break_holder] -->   4. WP Rocket, m\u1ee5c File Optimization, Delay JavaScript execution:<!-- [et_pb_line_break_holder] -->      th\u00eam hai d\u00f2ng  maps.googleapis.com  v\u00e0  g2hLocator  v\u00e0o \u00f4 lo\u1ea1i tr\u1eeb.<!-- [et_pb_line_break_holder] -->   5. Xo\u00e1 cache nh\u01b0 m\u1ecdi l\u1ea7n: th\u01b0 m\u1ee5c cache c\u1ee7a WP Rocket (wp-rocket v\u00e0 min)<!-- [et_pb_line_break_holder] -->      r\u1ed3i  redis-cli FLUSHALL<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->   N\u1ebeU D\u00d9NG FULLWIDTH CODE MODULE<!-- [et_pb_line_break_holder] -->   a) Module Settings, Advanced, Animation: \u0111\u1eb7t None. Animation c\u1ee7a Divi g\u1eafn<!-- [et_pb_line_break_holder] -->      transform l\u00ean ph\u1ea7n t\u1eed cha, Google Maps s\u1ebd v\u1ebd l\u1ec7ch, ch\u1ec9 hi\u1ec7n m\u1ed9t g\u00f3c.<!-- [et_pb_line_break_holder] -->   b) Section ch\u1ee9a module: b\u1ecf padding tr\u00e1i ph\u1ea3i n\u1ebfu mu\u1ed1n b\u1ea3n \u0111\u1ed3 ch\u1ea1m m\u00e9p.<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->   GHI CH\u00da CHO NG\u01af\u1edcI S\u1eecA CODE (Divi Code Module hay l\u00e0m h\u1ecfng m\u1ea5y th\u1ee9 n\u00e0y)<!-- [et_pb_line_break_holder] -->   - Kh\u00f4ng d\u00f9ng ch\u00fa th\u00edch HTML trong ph\u1ea7n markup.<!-- [et_pb_line_break_holder] -->   - Trong script: ch\u1ec9 d\u00f9ng ch\u00fa th\u00edch nhi\u1ec1u d\u00f2ng, kh\u00f4ng d\u00f9ng k\u00fd t\u1ef1 \"v\u00e0\" tr\u1ea7n,<!-- [et_pb_line_break_holder] -->     kh\u00f4ng d\u00f9ng to\u00e1n t\u1eed logic hai k\u00fd t\u1ef1, vi\u1ebft ES5 (var, function).<!-- [et_pb_line_break_holder] -->   - CSS: kh\u00f4ng d\u00f9ng shorthand inset (iOS Safari c\u0169 kh\u00f4ng hi\u1ec3u).<!-- [et_pb_line_break_holder] -->   ========================================================================== *\/<!-- [et_pb_line_break_holder] -->#g2h-locator{<!-- [et_pb_line_break_holder] -->  --g2h-blue:#1a73e8; --g2h-text:#202124; --g2h-sub:#5f6368; --g2h-line:#dadce0;<!-- [et_pb_line_break_holder] -->  --g2h-green:#188038; --g2h-red:#d93025; --g2h-pin:#ea4335;<!-- [et_pb_line_break_holder] -->  position:relative; display:grid;<!-- [et_pb_line_break_holder] -->  grid-template-columns:380px minmax(0,1fr); grid-template-rows:auto minmax(0,1fr);<!-- [et_pb_line_break_holder] -->  width:100%; height:560px; overflow:hidden;<!-- [et_pb_line_break_holder] -->  background:#fff; color:var(--g2h-text); text-align:left;<!-- [et_pb_line_break_holder] -->  font-family:Roboto,\"Helvetica Neue\",Arial,sans-serif; font-size:15px; line-height:1.4;<!-- [et_pb_line_break_holder] -->  border:1px solid var(--g2h-line); border-radius:12px;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#g2h-locator, #g2h-locator *{box-sizing:border-box}<!-- [et_pb_line_break_holder] -->#g2h-locator [hidden]{display:none !important}<!-- [et_pb_line_break_holder] -->#g2h-locator button{<!-- [et_pb_line_break_holder] -->  font:inherit; margin:0; cursor:pointer; text-transform:none; letter-spacing:0;<!-- [et_pb_line_break_holder] -->  box-shadow:none; min-height:0; width:auto; -webkit-appearance:none; appearance:none;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#g2h-locator a{text-decoration:none}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* ---------- \u0111\u1ea7u b\u1ea3ng ---------- *\/<!-- [et_pb_line_break_holder] -->#g2h-locator .g2h-head{<!-- [et_pb_line_break_holder] -->  grid-column:1; grid-row:1; padding:16px 16px 12px;<!-- [et_pb_line_break_holder] -->  border-bottom:1px solid var(--g2h-line); border-right:1px solid var(--g2h-line);<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* Ti\u00eau \u0111\u1ec1 l\u00e0 th\u1ebb H2 th\u1eadt (SEO). B\u1ed9 ch\u1ecdn c\u00f3 c\u1ea3 id l\u1eabn t\u00ean th\u1ebb \u0111\u1ec3 th\u1eafng style h2 c\u1ee7a Divi *\/<!-- [et_pb_line_break_holder] -->#g2h-locator h2.g2h-title{<!-- [et_pb_line_break_holder] -->  font-family:inherit; font-size:21px; font-weight:500; line-height:1.25; color:var(--g2h-text);<!-- [et_pb_line_break_holder] -->  margin:0 0 4px; padding:0; letter-spacing:0; text-transform:none; text-align:left;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#g2h-locator .g2h-stat{font-size:14px; color:var(--g2h-sub); margin:0 0 10px; min-height:18px}<!-- [et_pb_line_break_holder] -->#g2h-locator .g2h-btns{display:flex; flex-wrap:wrap}<!-- [et_pb_line_break_holder] -->#g2h-locator .g2h-btn{<!-- [et_pb_line_break_holder] -->  border:1px solid var(--g2h-line); background:#fff; color:var(--g2h-blue);<!-- [et_pb_line_break_holder] -->  border-radius:100px; padding:7px 14px; font-size:14.5px; font-weight:500; line-height:1.2;<!-- [et_pb_line_break_holder] -->  margin:0 8px 0 0;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#g2h-locator .g2h-btn-main{background:var(--g2h-blue); border-color:var(--g2h-blue); color:#fff}<!-- [et_pb_line_break_holder] -->#g2h-locator .g2h-btn[disabled]{opacity:.6; cursor:default}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* ---------- danh s\u00e1ch ---------- *\/<!-- [et_pb_line_break_holder] -->#g2h-locator .g2h-cards{<!-- [et_pb_line_break_holder] -->  grid-column:1; grid-row:2; min-height:0; overflow-y:auto;<!-- [et_pb_line_break_holder] -->  -webkit-overflow-scrolling:touch; border-right:1px solid var(--g2h-line);<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#g2h-locator .g2h-card{<!-- [et_pb_line_break_holder] -->  position:relative; padding:11px 16px 10px; background:#fff; cursor:pointer;<!-- [et_pb_line_break_holder] -->  border-bottom:1px solid var(--g2h-line);<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#g2h-locator .g2h-card:hover{background:#f8f9fa}<!-- [et_pb_line_break_holder] -->#g2h-locator .g2h-card.is-on{background:#e8f0fe}<!-- [et_pb_line_break_holder] -->#g2h-locator .g2h-top{display:flex; align-items:flex-start}<!-- [et_pb_line_break_holder] -->#g2h-locator .g2h-num{<!-- [et_pb_line_break_holder] -->  flex:0 0 22px; width:22px; height:22px; border-radius:50%; margin:0 8px 0 0;<!-- [et_pb_line_break_holder] -->  background:var(--g2h-pin); color:#fff; font-size:13px; font-weight:700;<!-- [et_pb_line_break_holder] -->  line-height:22px; text-align:center;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#g2h-locator .g2h-card.is-on .g2h-num{background:var(--g2h-blue)}<!-- [et_pb_line_break_holder] -->#g2h-locator .g2h-main{flex:1 1 auto; min-width:0}<!-- [et_pb_line_break_holder] -->#g2h-locator .g2h-name{<!-- [et_pb_line_break_holder] -->  display:block; border:0; background:none; padding:0; text-align:left;<!-- [et_pb_line_break_holder] -->  color:var(--g2h-blue); font-size:16px; font-weight:500; line-height:1.4;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#g2h-locator .g2h-dist{<!-- [et_pb_line_break_holder] -->  flex:0 0 auto; margin:0 0 0 10px; text-align:right; white-space:nowrap;<!-- [et_pb_line_break_holder] -->  font-size:15px; font-weight:700; line-height:1.4;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#g2h-locator .g2h-dist small{display:block; font-size:13px; font-weight:400; color:var(--g2h-sub)}<!-- [et_pb_line_break_holder] -->#g2h-locator .g2h-addr,<!-- [et_pb_line_break_holder] -->#g2h-locator .g2h-hours{font-size:14px; color:var(--g2h-sub); margin:3px 0 0 30px; padding:0}<!-- [et_pb_line_break_holder] -->#g2h-locator .g2h-hours b{font-weight:500}<!-- [et_pb_line_break_holder] -->#g2h-locator .g2h-hours.is-open b{color:var(--g2h-green)}<!-- [et_pb_line_break_holder] -->#g2h-locator .g2h-hours.is-shut b{color:var(--g2h-red)}<!-- [et_pb_line_break_holder] -->#g2h-locator .g2h-near{<!-- [et_pb_line_break_holder] -->  display:inline-block; margin:1px 0 0; padding:0 8px; border-radius:100px;<!-- [et_pb_line_break_holder] -->  background:#e6f4ea; color:var(--g2h-green); font-size:12.5px; font-weight:500;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#g2h-locator .g2h-acts{display:flex; margin:8px 0 0 30px}<!-- [et_pb_line_break_holder] -->#g2h-locator .g2h-act{<!-- [et_pb_line_break_holder] -->  display:inline-block; border:1px solid var(--g2h-line); border-radius:100px;<!-- [et_pb_line_break_holder] -->  padding:5px 13px; margin:0 8px 0 0; background:#fff; color:var(--g2h-blue);<!-- [et_pb_line_break_holder] -->  font-size:14px; font-weight:500; line-height:1.3;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#g2h-locator .g2h-act-main{background:var(--g2h-blue); border-color:var(--g2h-blue); color:#fff}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* ---------- b\u1ea3n \u0111\u1ed3 ---------- *\/<!-- [et_pb_line_break_holder] -->#g2h-locator .g2h-mapwrap{<!-- [et_pb_line_break_holder] -->  grid-column:2; grid-row:1 \/ span 2; position:relative; min-height:0; background:#e8eaed;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#g2h-locator #g2h-map{position:absolute; top:0; right:0; bottom:0; left:0}<!-- [et_pb_line_break_holder] -->#g2h-locator #g2h-map img{max-width:none !important}<!-- [et_pb_line_break_holder] -->#g2h-locator .g2h-msg{<!-- [et_pb_line_break_holder] -->  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);<!-- [et_pb_line_break_holder] -->  max-width:80%; padding:10px 14px; border-radius:10px; text-align:center;<!-- [et_pb_line_break_holder] -->  background:rgba(255,255,255,.94); color:var(--g2h-sub); font-size:14px;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#g2h-locator .g2h-pinwrap{padding:0 0 7px}<!-- [et_pb_line_break_holder] -->#g2h-locator .g2h-pin{<!-- [et_pb_line_break_holder] -->  width:30px; height:30px; border-radius:50% 50% 50% 0; transform:rotate(-45deg);<!-- [et_pb_line_break_holder] -->  background:var(--g2h-pin); border:2px solid #fff; box-shadow:0 1px 4px rgba(0,0,0,.4);<!-- [et_pb_line_break_holder] -->  display:flex; align-items:center; justify-content:center; cursor:pointer;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#g2h-locator .g2h-pin span{<!-- [et_pb_line_break_holder] -->  transform:rotate(45deg); color:#fff; font-size:14px; font-weight:700; line-height:1;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#g2h-locator .g2h-pin.is-on{width:38px; height:38px; background:var(--g2h-blue)}<!-- [et_pb_line_break_holder] -->#g2h-locator .g2h-pin.is-on span{font-size:16px}<!-- [et_pb_line_break_holder] -->#g2h-locator .g2h-me{<!-- [et_pb_line_break_holder] -->  width:18px; height:18px; border-radius:50%; transform:translateY(50%);<!-- [et_pb_line_break_holder] -->  background:var(--g2h-blue); border:3px solid #fff;<!-- [et_pb_line_break_holder] -->  box-shadow:0 0 0 7px rgba(26,115,232,.22), 0 1px 3px rgba(0,0,0,.35);<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#g2h-locator .g2h-iw{font-family:Roboto,Arial,sans-serif; max-width:230px; padding:0 4px 2px 0}<!-- [et_pb_line_break_holder] -->#g2h-locator .g2h-iw-name{font-size:15px; font-weight:500; color:var(--g2h-text); margin:0 0 3px}<!-- [et_pb_line_break_holder] -->#g2h-locator .g2h-iw-addr{font-size:13.5px; color:var(--g2h-sub); margin:0 0 6px}<!-- [et_pb_line_break_holder] -->#g2h-locator .g2h-iw-link{font-size:14px; font-weight:500; color:var(--g2h-blue)}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* ---------- MOBILE: b\u1ea3n \u0111\u1ed3 tr\u00e0n khung, d\u1ea3i th\u1ebb vu\u1ed1t ngang \u1edf \u0111\u00e1y ---------- *\/<!-- [et_pb_line_break_holder] -->@media (max-width:767px){<!-- [et_pb_line_break_holder] -->  #g2h-locator{<!-- [et_pb_line_break_holder] -->    display:block; height:78vh; min-height:500px; max-height:720px;<!-- [et_pb_line_break_holder] -->    border-left:0; border-right:0; border-radius:0;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #g2h-locator .g2h-mapwrap{position:absolute; top:0; right:0; bottom:0; left:0}<!-- [et_pb_line_break_holder] -->  #g2h-locator .g2h-head{<!-- [et_pb_line_break_holder] -->    position:absolute; top:10px; left:10px; right:10px; z-index:3;<!-- [et_pb_line_break_holder] -->    padding:10px 12px; background:#fff; border:0; border-radius:12px;<!-- [et_pb_line_break_holder] -->    box-shadow:0 1px 2px rgba(60,64,67,.3), 0 2px 6px 2px rgba(60,64,67,.15);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #g2h-locator h2.g2h-title{font-size:18px; line-height:1.3; margin:0 0 2px}<!-- [et_pb_line_break_holder] -->  #g2h-locator .g2h-stat{font-size:13.5px; margin:0 0 8px}<!-- [et_pb_line_break_holder] -->  #g2h-locator .g2h-cards{<!-- [et_pb_line_break_holder] -->    position:absolute; left:0; right:0; bottom:14px; z-index:3;<!-- [et_pb_line_break_holder] -->    display:flex; align-items:flex-end; overflow-x:auto; overflow-y:hidden;<!-- [et_pb_line_break_holder] -->    padding:6px 12px 8px; border:0;<!-- [et_pb_line_break_holder] -->    -webkit-overflow-scrolling:touch; scroll-snap-type:x mandatory; scrollbar-width:none;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #g2h-locator .g2h-cards::-webkit-scrollbar{display:none}<!-- [et_pb_line_break_holder] -->  #g2h-locator .g2h-card{<!-- [et_pb_line_break_holder] -->    flex:0 0 84%; margin:0 10px 0 0; padding:12px 14px; border:0; border-radius:14px;<!-- [et_pb_line_break_holder] -->    scroll-snap-align:center;<!-- [et_pb_line_break_holder] -->    box-shadow:0 1px 2px rgba(60,64,67,.3), 0 2px 6px 2px rgba(60,64,67,.15);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #g2h-locator .g2h-cards.is-single .g2h-card{flex-basis:100%; margin-right:0}<!-- [et_pb_line_break_holder] -->  #g2h-locator .g2h-card:hover{background:#fff}<!-- [et_pb_line_break_holder] -->  #g2h-locator .g2h-card.is-on{<!-- [et_pb_line_break_holder] -->    background:#fff;<!-- [et_pb_line_break_holder] -->    box-shadow:0 0 0 2px var(--g2h-blue), 0 2px 6px 2px rgba(60,64,67,.15);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #g2h-locator .g2h-addr,<!-- [et_pb_line_break_holder] -->  #g2h-locator .g2h-hours{margin-left:0}<!-- [et_pb_line_break_holder] -->  \/* ch\u1eeba 56px b\u00ean ph\u1ea3i \u0111\u1ec3 n\u00fat G\u1ecdi kh\u00f4ng b\u1ecb widget chat n\u1ed5i \u0111\u00e8 l\u00ean *\/<!-- [et_pb_line_break_holder] -->  #g2h-locator .g2h-acts{margin-left:0; padding-right:56px}<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"g2h-locator\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"g2h-head\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<h2 class=\"g2h-title\" id=\"g2h-title\">C\u1eeda h\u00e0ng gi\u1eb7t \u1ee7i g\u1ea7n b\u1ea1n<\/h2>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"g2h-stat\" id=\"g2h-stat\" aria-live=\"polite\">B\u1ea5m n\u00fat \u0111\u1ec3 xem c\u1eeda h\u00e0ng gi\u1eb7t \u1ee7i g\u1ea7n b\u1ea1n nh\u1ea5t<\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"g2h-btns\"><!-- [et_pb_line_break_holder] -->      <button type=\"button\" class=\"g2h-btn g2h-btn-main\" id=\"g2h-locate\">D\u00f9ng v\u1ecb tr\u00ed c\u1ee7a t\u00f4i<\/button><!-- [et_pb_line_break_holder] -->      <button type=\"button\" class=\"g2h-btn\" id=\"g2h-all\">Xem t\u1ea5t c\u1ea3<\/button><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"g2h-cards\" id=\"g2h-cards\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"g2h-mapwrap\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div id=\"g2h-map\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"g2h-msg\" id=\"g2h-msg\">\u0110ang t\u1ea3i b\u1ea3n \u0111\u1ed3\u2026<\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><script><!-- [et_pb_line_break_holder] -->(function(){<!-- [et_pb_line_break_holder] -->  if (window.g2hLocatorBooted) return;<!-- [et_pb_line_break_holder] -->  window.g2hLocatorBooted = true;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* =====================================================================<!-- [et_pb_line_break_holder] -->     1. C\u1ea4U H\u00ccNH<!-- [et_pb_line_break_holder] -->     ===================================================================== *\/<!-- [et_pb_line_break_holder] -->  var CONFIG = {<!-- [et_pb_line_break_holder] -->    API_KEY: \"AIzaSyBkWtfoCeuFwJBN3S6swjhc4gA5eL4U60Q\",<!-- [et_pb_line_break_holder] -->    MAP_ID: \"17e19792fbc4ff7a8df0682f\",<!-- [et_pb_line_break_holder] -->    SHOW_SAMPLE: true,          \/* true: hi\u1ec7n c\u1ea3 c\u1eeda h\u00e0ng m\u1eabu \u0111\u1ec3 demo. L\u00ean web th\u1eadt: false *\/<!-- [et_pb_line_break_holder] -->    DISTANCE_MODE: \"driving\",   \/* \"driving\": qu\u00e3ng \u0111\u01b0\u1eddng ch\u1ea1y xe. \"straight\": \u0111\u01b0\u1eddng chim bay *\/<!-- [et_pb_line_break_holder] -->    ROUTE_TOP: 5,               \/* ch\u1ec9 h\u1ecfi qu\u00e3ng \u0111\u01b0\u1eddng cho N c\u1eeda h\u00e0ng g\u1ea7n nh\u1ea5t (t\u1ed1i \u0111a 25) *\/<!-- [et_pb_line_break_holder] -->    FIT: 3,                     \/* c\u00f3 v\u1ecb tr\u00ed kh\u00e1ch: khung nh\u00ecn g\u1ed3m kh\u00e1ch v\u00e0 N c\u1eeda h\u00e0ng g\u1ea7n nh\u1ea5t *\/<!-- [et_pb_line_break_holder] -->    FAR_KM: 50,                 \/* kh\u00e1ch \u1edf xa h\u01a1n m\u1ee9c n\u00e0y: ch\u1ec9 khung c\u00e1c c\u1eeda h\u00e0ng, kh\u00f4ng k\u00e9o t\u1edbi kh\u00e1ch *\/<!-- [et_pb_line_break_holder] -->    DEBUG: false                \/* true: in nh\u1eadt k\u00fd ra console *\/<!-- [et_pb_line_break_holder] -->  };<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* Th\u00eam c\u1eeda h\u00e0ng: ch\u00e9p m\u1ed9t d\u00f2ng, \u0111\u1ed5i id, t\u00ean, \u0111\u1ecba ch\u1ec9, lat, lng.<!-- [et_pb_line_break_holder] -->     sample:true  = d\u1eef li\u1ec7u gi\u1ea3 \u0111\u1ec3 demo, t\u1ef1 \u1ea9n khi SHOW_SAMPLE l\u00e0 false.<!-- [et_pb_line_break_holder] -->     cid          = m\u00e3 CID c\u1ee7a Google Business Profile (kh\u00f4ng b\u1eaft bu\u1ed9c). *\/<!-- [et_pb_line_break_holder] -->  var STORES = [<!-- [et_pb_line_break_holder] -->    { id: \"ntmk\", name: \"Gi\u1eb7t \u1ee6i 2H \u2013 2 Hours Laundry\",<!-- [et_pb_line_break_holder] -->      addr: \"08 Nguy\u1ec5n Th\u1ecb Minh Khai, Nha Trang, Kh\u00e1nh H\u00f2a\",<!-- [et_pb_line_break_holder] -->      lat: 12.2387284, lng: 109.1949388,<!-- [et_pb_line_break_holder] -->      phone: \"+84812397666\", phoneText: \"0812 397 666\",<!-- [et_pb_line_break_holder] -->      open: \"07:00\", close: \"22:00\", cid: \"14645360106988054345\" },<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      { id: \"da-tuong\", name: \"Gi\u1eb7t \u1ee6i 2H \u2013 2 Hours Laundry\",<!-- [et_pb_line_break_holder] -->      addr: \"15 D\u00e3 T\u01b0\u1ee3ng, Nha Trang, Kh\u00e1nh H\u00f2a\",<!-- [et_pb_line_break_holder] -->      lat: 12.2188299, lng: 109.2041355,<!-- [et_pb_line_break_holder] -->      phone: \"+84812397666\", phoneText: \"0812 397 666\",<!-- [et_pb_line_break_holder] -->      open: \"07:00\", close: \"22:00\", cid: \"9287242316172481567\" },<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  ];<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* =====================================================================<!-- [et_pb_line_break_holder] -->     2. NG\u00d4N NG\u1eee \u2014 t\u1ef1 ch\u1ecdn theo thu\u1ed9c t\u00ednh lang c\u1ee7a trang (WPML: vi, en, ru, ko)<!-- [et_pb_line_break_holder] -->     ===================================================================== *\/<!-- [et_pb_line_break_holder] -->  var I18N = {<!-- [et_pb_line_break_holder] -->    vi: {<!-- [et_pb_line_break_holder] -->      dec: \",\", min: \"ph\u00fat\", hour: \"gi\u1edd\",<!-- [et_pb_line_break_holder] -->      title: \"C\u1eeda h\u00e0ng gi\u1eb7t \u1ee7i g\u1ea7n b\u1ea1n\",<!-- [et_pb_line_break_holder] -->      hint: \"B\u1ea5m n\u00fat \u0111\u1ec3 xem c\u1eeda h\u00e0ng gi\u1eb7t \u1ee7i g\u1ea7n b\u1ea1n nh\u1ea5t\",<!-- [et_pb_line_break_holder] -->      locate: \"D\u00f9ng v\u1ecb tr\u00ed c\u1ee7a t\u00f4i\", all: \"Xem t\u1ea5t c\u1ea3\",<!-- [et_pb_line_break_holder] -->      locating: \"\u0110ang x\u00e1c \u0111\u1ecbnh v\u1ecb tr\u00ed c\u1ee7a b\u1ea1n\u2026\",<!-- [et_pb_line_break_holder] -->      routing: \"\u0110ang t\u00ednh qu\u00e3ng \u0111\u01b0\u1eddng\u2026\",<!-- [et_pb_line_break_holder] -->      sortedRoad: \"S\u1eafp x\u1ebfp theo qu\u00e3ng \u0111\u01b0\u1eddng di chuy\u1ec3n t\u1eeb v\u1ecb tr\u00ed c\u1ee7a b\u1ea1n\",<!-- [et_pb_line_break_holder] -->      sortedStraight: \"S\u1eafp x\u1ebfp theo kho\u1ea3ng c\u00e1ch \u0111\u01b0\u1eddng th\u1eb3ng (\u2248) t\u1eeb v\u1ecb tr\u00ed c\u1ee7a b\u1ea1n\",<!-- [et_pb_line_break_holder] -->      noGeo: \"Tr\u00ecnh duy\u1ec7t c\u1ee7a b\u1ea1n kh\u00f4ng h\u1ed7 tr\u1ee3 \u0111\u1ecbnh v\u1ecb.\",<!-- [et_pb_line_break_holder] -->      denied: \"B\u1ea1n \u0111\u00e3 ch\u1eb7n quy\u1ec1n v\u1ecb tr\u00ed. Tr\u00ean iPhone: C\u00e0i \u0111\u1eb7t \u203a Quy\u1ec1n ri\u00eang t\u01b0 \u203a D\u1ecbch v\u1ee5 \u0111\u1ecbnh v\u1ecb \u203a Safari. Ho\u1eb7c b\u1ea5m Ch\u1ec9 \u0111\u01b0\u1eddng \u1edf c\u1eeda h\u00e0ng b\u00ean d\u01b0\u1edbi.\",<!-- [et_pb_line_break_holder] -->      timeout: \"Ch\u01b0a l\u1ea5y \u0111\u01b0\u1ee3c v\u1ecb tr\u00ed. Th\u1eed l\u1ea1i b\u1eb1ng m\u1ea1ng di \u0111\u1ed9ng thay v\u00ec Wi-Fi, ho\u1eb7c b\u1ea5m Ch\u1ec9 \u0111\u01b0\u1eddng \u1edf c\u1eeda h\u00e0ng b\u00ean d\u01b0\u1edbi.\",<!-- [et_pb_line_break_holder] -->      directions: \"Ch\u1ec9 \u0111\u01b0\u1eddng\", call: \"G\u1ecdi\", nearest: \"G\u1ea7n b\u1ea1n nh\u1ea5t\",<!-- [et_pb_line_break_holder] -->      open: \"\u0110ang m\u1edf\", closed: \"\u0110\u00e3 \u0111\u00f3ng c\u1eeda\",<!-- [et_pb_line_break_holder] -->      closesAt: \"\u0110\u00f3ng l\u00fac {t}\", opensAt: \"M\u1edf l\u00fac {t}\",<!-- [et_pb_line_break_holder] -->      you: \"V\u1ecb tr\u00ed c\u1ee7a b\u1ea1n\", viewOnMaps: \"Xem tr\u00ean Google Maps\",<!-- [et_pb_line_break_holder] -->      loading: \"\u0110ang t\u1ea3i b\u1ea3n \u0111\u1ed3\u2026\",<!-- [et_pb_line_break_holder] -->      mapFail: \"Kh\u00f4ng t\u1ea3i \u0111\u01b0\u1ee3c b\u1ea3n \u0111\u1ed3. Danh s\u00e1ch c\u1eeda h\u00e0ng v\u1eabn d\u00f9ng \u0111\u01b0\u1ee3c.\"<!-- [et_pb_line_break_holder] -->    },<!-- [et_pb_line_break_holder] -->    en: {<!-- [et_pb_line_break_holder] -->      dec: \".\", min: \"min\", hour: \"h\",<!-- [et_pb_line_break_holder] -->      title: \"Laundry shops near you\",<!-- [et_pb_line_break_holder] -->      hint: \"Tap the button to find the laundry shop nearest to you\",<!-- [et_pb_line_break_holder] -->      locate: \"Use my location\", all: \"Show all\",<!-- [et_pb_line_break_holder] -->      locating: \"Finding your location\u2026\",<!-- [et_pb_line_break_holder] -->      routing: \"Calculating driving distance\u2026\",<!-- [et_pb_line_break_holder] -->      sortedRoad: \"Sorted by driving distance from your location\",<!-- [et_pb_line_break_holder] -->      sortedStraight: \"Sorted by straight-line distance (\u2248) from your location\",<!-- [et_pb_line_break_holder] -->      noGeo: \"Your browser does not support location.\",<!-- [et_pb_line_break_holder] -->      denied: \"Location access is blocked. On iPhone: Settings \u203a Privacy \u203a Location Services \u203a Safari. Or tap Directions on a store below.\",<!-- [et_pb_line_break_holder] -->      timeout: \"Could not get your location. Try mobile data instead of Wi-Fi, or tap Directions on a store below.\",<!-- [et_pb_line_break_holder] -->      directions: \"Directions\", call: \"Call\", nearest: \"Nearest to you\",<!-- [et_pb_line_break_holder] -->      open: \"Open\", closed: \"Closed\",<!-- [et_pb_line_break_holder] -->      closesAt: \"Closes {t}\", opensAt: \"Opens {t}\",<!-- [et_pb_line_break_holder] -->      you: \"Your location\", viewOnMaps: \"View on Google Maps\",<!-- [et_pb_line_break_holder] -->      loading: \"Loading map\u2026\",<!-- [et_pb_line_break_holder] -->      mapFail: \"The map could not be loaded. The store list still works.\"<!-- [et_pb_line_break_holder] -->    },<!-- [et_pb_line_break_holder] -->    ru: {<!-- [et_pb_line_break_holder] -->      dec: \",\", min: \"\u043c\u0438\u043d\", hour: \"\u0447\",<!-- [et_pb_line_break_holder] -->      title: \"\u041f\u0440\u0430\u0447\u0435\u0447\u043d\u044b\u0435 \u0440\u044f\u0434\u043e\u043c \u0441 \u0432\u0430\u043c\u0438\",<!-- [et_pb_line_break_holder] -->      hint: \"\u041d\u0430\u0436\u043c\u0438\u0442\u0435 \u043a\u043d\u043e\u043f\u043a\u0443, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0439\u0442\u0438 \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0443\u044e \u043f\u0440\u0430\u0447\u0435\u0447\u043d\u0443\u044e\",<!-- [et_pb_line_break_holder] -->      locate: \"\u041c\u043e\u0451 \u043c\u0435\u0441\u0442\u043e\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\", all: \"\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0432\u0441\u0435\",<!-- [et_pb_line_break_holder] -->      locating: \"\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u0432\u0430\u0448\u0435 \u043c\u0435\u0441\u0442\u043e\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u2026\",<!-- [et_pb_line_break_holder] -->      routing: \"\u0421\u0447\u0438\u0442\u0430\u0435\u043c \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043f\u043e \u0434\u043e\u0440\u043e\u0433\u0435\u2026\",<!-- [et_pb_line_break_holder] -->      sortedRoad: \"\u041e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043e \u043f\u043e \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u044e \u043f\u043e \u0434\u043e\u0440\u043e\u0433\u0435 \u043e\u0442 \u0432\u0430\u0441\",<!-- [et_pb_line_break_holder] -->      sortedStraight: \"\u041e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043e \u043f\u043e \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u044e \u043f\u043e \u043f\u0440\u044f\u043c\u043e\u0439 (\u2248) \u043e\u0442 \u0432\u0430\u0441\",<!-- [et_pb_line_break_holder] -->      noGeo: \"\u0412\u0430\u0448 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0433\u0435\u043e\u043b\u043e\u043a\u0430\u0446\u0438\u044e.\",<!-- [et_pb_line_break_holder] -->      denied: \"\u0414\u043e\u0441\u0442\u0443\u043f \u043a \u0433\u0435\u043e\u043b\u043e\u043a\u0430\u0446\u0438\u0438 \u0437\u0430\u043f\u0440\u0435\u0449\u0451\u043d. \u041d\u0430 iPhone: \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u203a \u041a\u043e\u043d\u0444\u0438\u0434\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u203a \u0421\u043b\u0443\u0436\u0431\u044b \u0433\u0435\u043e\u043b\u043e\u043a\u0430\u0446\u0438\u0438 \u203a Safari. \u0418\u043b\u0438 \u043d\u0430\u0436\u043c\u0438\u0442\u0435 \u00ab\u041c\u0430\u0440\u0448\u0440\u0443\u0442\u00bb \u0443 \u043d\u0443\u0436\u043d\u043e\u0439 \u043f\u0440\u0430\u0447\u0435\u0447\u043d\u043e\u0439.\",<!-- [et_pb_line_break_holder] -->      timeout: \"\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043c\u0435\u0441\u0442\u043e\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435. \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u0432\u043c\u0435\u0441\u0442\u043e Wi-Fi \u0438\u043b\u0438 \u043d\u0430\u0436\u043c\u0438\u0442\u0435 \u00ab\u041c\u0430\u0440\u0448\u0440\u0443\u0442\u00bb \u0443 \u043d\u0443\u0436\u043d\u043e\u0439 \u043f\u0440\u0430\u0447\u0435\u0447\u043d\u043e\u0439.\",<!-- [et_pb_line_break_holder] -->      directions: \"\u041c\u0430\u0440\u0448\u0440\u0443\u0442\", call: \"\u041f\u043e\u0437\u0432\u043e\u043d\u0438\u0442\u044c\", nearest: \"\u0411\u043b\u0438\u0436\u0435 \u0432\u0441\u0435\u0433\u043e \u043a \u0432\u0430\u043c\",<!-- [et_pb_line_break_holder] -->      open: \"\u041e\u0442\u043a\u0440\u044b\u0442\u043e\", closed: \"\u0417\u0430\u043a\u0440\u044b\u0442\u043e\",<!-- [et_pb_line_break_holder] -->      closesAt: \"\u0434\u043e {t}\", opensAt: \"\u043e\u0442\u043a\u0440\u043e\u0435\u0442\u0441\u044f \u0432 {t}\",<!-- [et_pb_line_break_holder] -->      you: \"\u0412\u044b \u0437\u0434\u0435\u0441\u044c\", viewOnMaps: \"\u041e\u0442\u043a\u0440\u044b\u0442\u044c \u0432 Google Maps\",<!-- [et_pb_line_break_holder] -->      loading: \"\u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u043a\u0430\u0440\u0442\u0443\u2026\",<!-- [et_pb_line_break_holder] -->      mapFail: \"\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043a\u0430\u0440\u0442\u0443. \u0421\u043f\u0438\u0441\u043e\u043a \u043f\u0440\u0430\u0447\u0435\u0447\u043d\u044b\u0445 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d.\"<!-- [et_pb_line_break_holder] -->    },<!-- [et_pb_line_break_holder] -->    ko: {<!-- [et_pb_line_break_holder] -->      dec: \".\", min: \"\ubd84\", hour: \"\uc2dc\uac04\",<!-- [et_pb_line_break_holder] -->      title: \"\ub0b4 \uc8fc\ubcc0 \uc138\ud0c1\uc18c\",<!-- [et_pb_line_break_holder] -->      hint: \"\ubc84\ud2bc\uc744 \ub20c\ub7ec \uac00\uc7a5 \uac00\uae4c\uc6b4 \uc138\ud0c1\uc18c\ub97c \ucc3e\uc544\ubcf4\uc138\uc694\",<!-- [et_pb_line_break_holder] -->      locate: \"\ub0b4 \uc704\uce58 \uc0ac\uc6a9\", all: \"\uc804\uccb4 \ubcf4\uae30\",<!-- [et_pb_line_break_holder] -->      locating: \"\ud604\uc7ac \uc704\uce58\ub97c \ud655\uc778\ud558\ub294 \uc911\u2026\",<!-- [et_pb_line_break_holder] -->      routing: \"\uc774\ub3d9 \uac70\ub9ac\ub97c \uacc4\uc0b0\ud558\ub294 \uc911\u2026\",<!-- [et_pb_line_break_holder] -->      sortedRoad: \"\ud604\uc7ac \uc704\uce58\uc5d0\uc11c \uc774\ub3d9 \uac70\ub9ac\uc21c\uc73c\ub85c \uc815\ub82c\ud588\uc2b5\ub2c8\ub2e4\",<!-- [et_pb_line_break_holder] -->      sortedStraight: \"\ud604\uc7ac \uc704\uce58\uc5d0\uc11c \uc9c1\uc120 \uac70\ub9ac(\u2248)\uc21c\uc73c\ub85c \uc815\ub82c\ud588\uc2b5\ub2c8\ub2e4\",<!-- [et_pb_line_break_holder] -->      noGeo: \"\uc774 \ube0c\ub77c\uc6b0\uc800\ub294 \uc704\uce58 \uae30\ub2a5\uc744 \uc9c0\uc6d0\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.\",<!-- [et_pb_line_break_holder] -->      denied: \"\uc704\uce58 \uad8c\ud55c\uc774 \ucc28\ub2e8\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4. iPhone: \uc124\uc815 \u203a \uac1c\uc778\uc815\ubcf4 \ubcf4\ud638 \u203a \uc704\uce58 \uc11c\ube44\uc2a4 \u203a Safari. \ub610\ub294 \uc544\ub798 \ub9e4\uc7a5\uc758 \uae38\ucc3e\uae30\ub97c \ub204\ub974\uc138\uc694.\",<!-- [et_pb_line_break_holder] -->      timeout: \"\uc704\uce58\ub97c \uac00\uc838\uc624\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4. Wi-Fi \ub300\uc2e0 \ubaa8\ubc14\uc77c \ub370\uc774\ud130\ub85c \ub2e4\uc2dc \uc2dc\ub3c4\ud558\uac70\ub098 \uc544\ub798 \ub9e4\uc7a5\uc758 \uae38\ucc3e\uae30\ub97c \ub204\ub974\uc138\uc694.\",<!-- [et_pb_line_break_holder] -->      directions: \"\uae38\ucc3e\uae30\", call: \"\uc804\ud654\", nearest: \"\uac00\uc7a5 \uac00\uae4c\uc6b4 \ub9e4\uc7a5\",<!-- [et_pb_line_break_holder] -->      open: \"\uc601\uc5c5 \uc911\", closed: \"\uc601\uc5c5 \uc885\ub8cc\",<!-- [et_pb_line_break_holder] -->      closesAt: \"{t}\uc5d0 \uc601\uc5c5 \uc885\ub8cc\", opensAt: \"{t}\uc5d0 \uc601\uc5c5 \uc2dc\uc791\",<!-- [et_pb_line_break_holder] -->      you: \"\ub0b4 \uc704\uce58\", viewOnMaps: \"Google \uc9c0\ub3c4\uc5d0\uc11c \ubcf4\uae30\",<!-- [et_pb_line_break_holder] -->      loading: \"\uc9c0\ub3c4\ub97c \ubd88\ub7ec\uc624\ub294 \uc911\u2026\",<!-- [et_pb_line_break_holder] -->      mapFail: \"\uc9c0\ub3c4\ub97c \ubd88\ub7ec\uc624\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4. \ub9e4\uc7a5 \ubaa9\ub85d\uc740 \uacc4\uc18d \uc774\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\"<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->  };<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* =====================================================================<!-- [et_pb_line_break_holder] -->     3. TI\u1ec6N \u00cdCH<!-- [et_pb_line_break_holder] -->     ===================================================================== *\/<!-- [et_pb_line_break_holder] -->  var AMP = String.fromCharCode(38);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  function $(id){ return document.getElementById(id); }<!-- [et_pb_line_break_holder] -->  function or(a, b){ return a ? a : b; }<!-- [et_pb_line_break_holder] -->  function el(tag, cls, text){<!-- [et_pb_line_break_holder] -->    var n = document.createElement(tag);<!-- [et_pb_line_break_holder] -->    if (cls) n.className = cls;<!-- [et_pb_line_break_holder] -->    if (text) n.textContent = text;<!-- [et_pb_line_break_holder] -->    return n;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  function log(){<!-- [et_pb_line_break_holder] -->    if (!CONFIG.DEBUG) return;<!-- [et_pb_line_break_holder] -->    if (!window.console) return;<!-- [et_pb_line_break_holder] -->    console.log.apply(console, [\"[g2h]\"].concat([].slice.call(arguments)));<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  function isMobile(){<!-- [et_pb_line_break_holder] -->    if (!window.matchMedia) return false;<!-- [et_pb_line_break_holder] -->    return window.matchMedia(\"(max-width: 767px)\").matches;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  var root = $(\"g2h-locator\");<!-- [et_pb_line_break_holder] -->  if (!root) return;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  var elTitle = $(\"g2h-title\"), elStat = $(\"g2h-stat\"), elBtn = $(\"g2h-locate\"),<!-- [et_pb_line_break_holder] -->      elAll = $(\"g2h-all\"), elCards = $(\"g2h-cards\"), elMap = $(\"g2h-map\"), elMsg = $(\"g2h-msg\");<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  var langAttr = or(document.documentElement.getAttribute(\"lang\"), \"vi\").toLowerCase().slice(0, 2);<!-- [et_pb_line_break_holder] -->  var LANG = I18N[langAttr] ? langAttr : \"vi\";<!-- [et_pb_line_break_holder] -->  var T = I18N[LANG];<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  var rows = [], user = null, active = null;<!-- [et_pb_line_break_holder] -->  var map = null, info = null, Adv = null, useAdv = false, inited = false;<!-- [et_pb_line_break_holder] -->  var meMarker = null, meAdv = false;<!-- [et_pb_line_break_holder] -->  var lastFit = \"all\", roadTried = false, reqId = 0, progScroll = false;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  (function(){<!-- [et_pb_line_break_holder] -->    var i, s;<!-- [et_pb_line_break_holder] -->    for (i = 0; i < STORES.length; i++) {<!-- [et_pb_line_break_holder] -->      s = STORES[i];<!-- [et_pb_line_break_holder] -->      if (s.sample) { if (!CONFIG.SHOW_SAMPLE) continue; }<!-- [et_pb_line_break_holder] -->      rows.push({ id: s.id, s: s, straight: null, road: null, marker: null, adv: false, pin: null, card: null, lastClick: 0 });<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->  })();<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  function findRow(id){<!-- [et_pb_line_break_holder] -->    var i;<!-- [et_pb_line_break_holder] -->    for (i = 0; i < rows.length; i++) { if (rows[i].id === id) return rows[i]; }<!-- [et_pb_line_break_holder] -->    return null;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  function showMsg(text){ elMsg.textContent = text; elMsg.hidden = false; }<!-- [et_pb_line_break_holder] -->  function hideMsg(){ elMsg.hidden = true; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* ---- kho\u1ea3ng c\u00e1ch ---- *\/<!-- [et_pb_line_break_holder] -->  function rad(d){ return d * Math.PI \/ 180; }<!-- [et_pb_line_break_holder] -->  function haversine(a, b){<!-- [et_pb_line_break_holder] -->    var R = 6371000, dLat = rad(b.lat - a.lat), dLng = rad(b.lng - a.lng);<!-- [et_pb_line_break_holder] -->    var h = Math.sin(dLat \/ 2) * Math.sin(dLat \/ 2) +<!-- [et_pb_line_break_holder] -->            Math.cos(rad(a.lat)) * Math.cos(rad(b.lat)) * Math.sin(dLng \/ 2) * Math.sin(dLng \/ 2);<!-- [et_pb_line_break_holder] -->    return 2 * R * Math.asin(Math.sqrt(h));<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  function effM(r){<!-- [et_pb_line_break_holder] -->    if (r.road) return r.road.m;<!-- [et_pb_line_break_holder] -->    if (r.straight !== null) return r.straight;<!-- [et_pb_line_break_holder] -->    return 0;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  function compute(){<!-- [et_pb_line_break_holder] -->    var i;<!-- [et_pb_line_break_holder] -->    for (i = 0; i < rows.length; i++) {<!-- [et_pb_line_break_holder] -->      rows[i].straight = haversine(user, { lat: rows[i].s.lat, lng: rows[i].s.lng });<!-- [et_pb_line_break_holder] -->      rows[i].road = null;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  \/* C\u1eeda h\u00e0ng ngo\u00e0i ROUTE_TOP v\u1eabn x\u1ebfp theo s\u1ed1 chim bay. N\u1ebfu c\u00f3 nhi\u1ec1u c\u1eeda h\u00e0ng<!-- [et_pb_line_break_holder] -->     h\u01a1n ROUTE_TOP th\u00ec t\u0103ng ROUTE_TOP \u0111\u1ec3 th\u1ee9 t\u1ef1 kh\u00f4ng b\u1ecb l\u1eabn hai lo\u1ea1i s\u1ed1. *\/<!-- [et_pb_line_break_holder] -->  function sortRows(){<!-- [et_pb_line_break_holder] -->    if (!user) return;<!-- [et_pb_line_break_holder] -->    rows.sort(function(a, b){ return effM(a) - effM(b); });<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  function fmtDist(m){<!-- [et_pb_line_break_holder] -->    if (m < 1000) return (Math.round(m \/ 10) * 10) + \" m\";<!-- [et_pb_line_break_holder] -->    var km = m \/ 1000;<!-- [et_pb_line_break_holder] -->    var txt = km < 10 ? km.toFixed(1) : String(Math.round(km));<!-- [et_pb_line_break_holder] -->    return txt.replace(\".\", T.dec) + \" km\";<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  function fmtDur(sec){<!-- [et_pb_line_break_holder] -->    var min = Math.max(1, Math.round(sec \/ 60));<!-- [et_pb_line_break_holder] -->    if (min < 60) return min + \" \" + T.min;<!-- [et_pb_line_break_holder] -->    var h = Math.floor(min \/ 60), rest = min % 60;<!-- [et_pb_line_break_holder] -->    return h + \" \" + T.hour + (rest ? \" \" + rest + \" \" + T.min : \"\");<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* ---- gi\u1edd m\u1edf c\u1eeda, t\u00ednh theo gi\u1edd Vi\u1ec7t Nam (UTC+7) b\u1ea5t k\u1ec3 m\u00e1y kh\u00e1ch \u1edf m\u00fai n\u00e0o ---- *\/<!-- [et_pb_line_break_holder] -->  function toMin(s){<!-- [et_pb_line_break_holder] -->    var p = String(s).split(\":\");<!-- [et_pb_line_break_holder] -->    return parseInt(p[0], 10) * 60 + parseInt(p[1], 10);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  function vnNow(){<!-- [et_pb_line_break_holder] -->    var d = new Date();<!-- [et_pb_line_break_holder] -->    return ((d.getUTCHours() + 7) % 24) * 60 + d.getUTCMinutes();<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  function hoursInfo(s){<!-- [et_pb_line_break_holder] -->    if (!s.open) return null;<!-- [et_pb_line_break_holder] -->    if (!s.close) return null;<!-- [et_pb_line_break_holder] -->    var now = vnNow(), isOpen = now >= toMin(s.open) ? now < toMin(s.close) : false;<!-- [et_pb_line_break_holder] -->    return {<!-- [et_pb_line_break_holder] -->      open: isOpen,<!-- [et_pb_line_break_holder] -->      label: isOpen ? T.open : T.closed,<!-- [et_pb_line_break_holder] -->      note: (isOpen ? T.closesAt : T.opensAt).replace(\"{t}\", isOpen ? s.close : s.open)<!-- [et_pb_line_break_holder] -->    };<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* Kh\u00f4ng g\u1eedi origin: \u0111\u1ec3 Google Maps t\u1ef1 l\u1ea5y v\u1ecb tr\u00ed hi\u1ec7n t\u1ea1i c\u1ee7a m\u00e1y,<!-- [et_pb_line_break_holder] -->     ch\u00ednh x\u00e1c h\u01a1n v\u1ecb tr\u00ed tr\u00ecnh duy\u1ec7t tr\u1ea3 v\u1ec1 qua Wi-Fi. *\/<!-- [et_pb_line_break_holder] -->  function dirUrl(s){<!-- [et_pb_line_break_holder] -->    var u = \"https:\/\/www.google.com\/maps\/dir\/?api=1\" + AMP + \"destination=\" +<!-- [et_pb_line_break_holder] -->            encodeURIComponent(s.lat + \",\" + s.lng);<!-- [et_pb_line_break_holder] -->    if (s.placeId) u += AMP + \"destination_place_id=\" + encodeURIComponent(s.placeId);<!-- [et_pb_line_break_holder] -->    return u;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* =====================================================================<!-- [et_pb_line_break_holder] -->     4. DANH S\u00c1CH \/ D\u1ea2I TH\u1eba<!-- [et_pb_line_break_holder] -->     ===================================================================== *\/<!-- [et_pb_line_break_holder] -->  function renderCards(){<!-- [et_pb_line_break_holder] -->    var i, r, s, card, top, main, name, dist, hrs, h, b, acts, a;<!-- [et_pb_line_break_holder] -->    while (elCards.firstChild) elCards.removeChild(elCards.firstChild);<!-- [et_pb_line_break_holder] -->    elCards.className = rows.length === 1 ? \"g2h-cards is-single\" : \"g2h-cards\";<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    for (i = 0; i < rows.length; i++) {<!-- [et_pb_line_break_holder] -->      r = rows[i]; s = r.s;<!-- [et_pb_line_break_holder] -->      card = el(\"div\", \"g2h-card\");<!-- [et_pb_line_break_holder] -->      card.setAttribute(\"data-id\", r.id);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      top = el(\"div\", \"g2h-top\");<!-- [et_pb_line_break_holder] -->      top.appendChild(el(\"span\", \"g2h-num\", String(i + 1)));<!-- [et_pb_line_break_holder] -->      main = el(\"div\", \"g2h-main\");<!-- [et_pb_line_break_holder] -->      name = el(\"button\", \"g2h-name\", s.name);<!-- [et_pb_line_break_holder] -->      name.type = \"button\";<!-- [et_pb_line_break_holder] -->      main.appendChild(name);<!-- [et_pb_line_break_holder] -->      if (user) {<!-- [et_pb_line_break_holder] -->        if (i === 0) { if (rows.length > 1) main.appendChild(el(\"div\", \"g2h-near\", T.nearest)); }<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->      top.appendChild(main);<!-- [et_pb_line_break_holder] -->      if (user) {<!-- [et_pb_line_break_holder] -->        dist = el(\"div\", \"g2h-dist\", (r.road ? \"\" : \"\u2248 \") + fmtDist(effM(r)));<!-- [et_pb_line_break_holder] -->        if (r.road) dist.appendChild(el(\"small\", \"\", fmtDur(r.road.sec)));<!-- [et_pb_line_break_holder] -->        top.appendChild(dist);<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->      card.appendChild(top);<!-- [et_pb_line_break_holder] -->      card.appendChild(el(\"div\", \"g2h-addr\", s.addr));<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      h = hoursInfo(s);<!-- [et_pb_line_break_holder] -->      if (h) {<!-- [et_pb_line_break_holder] -->        hrs = el(\"div\", h.open ? \"g2h-hours is-open\" : \"g2h-hours is-shut\");<!-- [et_pb_line_break_holder] -->        b = el(\"b\", \"\", h.label);<!-- [et_pb_line_break_holder] -->        hrs.appendChild(b);<!-- [et_pb_line_break_holder] -->        hrs.appendChild(document.createTextNode(\" \u00b7 \" + h.note));<!-- [et_pb_line_break_holder] -->        card.appendChild(hrs);<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      acts = el(\"div\", \"g2h-acts\");<!-- [et_pb_line_break_holder] -->      a = el(\"a\", \"g2h-act g2h-act-main\", T.directions);<!-- [et_pb_line_break_holder] -->      a.href = dirUrl(s); a.target = \"_blank\"; a.rel = \"noopener\";<!-- [et_pb_line_break_holder] -->      acts.appendChild(a);<!-- [et_pb_line_break_holder] -->      if (s.phone) {<!-- [et_pb_line_break_holder] -->        a = el(\"a\", \"g2h-act\", T.call);<!-- [et_pb_line_break_holder] -->        a.href = \"tel:\" + s.phone;<!-- [et_pb_line_break_holder] -->        a.title = or(s.phoneText, s.phone);<!-- [et_pb_line_break_holder] -->        acts.appendChild(a);<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->      card.appendChild(acts);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      elCards.appendChild(card);<!-- [et_pb_line_break_holder] -->      r.card = card;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    markActive();<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  function markActive(){<!-- [et_pb_line_break_holder] -->    var i, r, on;<!-- [et_pb_line_break_holder] -->    for (i = 0; i < rows.length; i++) {<!-- [et_pb_line_break_holder] -->      r = rows[i]; on = r.id === active;<!-- [et_pb_line_break_holder] -->      if (r.card) r.card.className = on ? \"g2h-card is-on\" : \"g2h-card\";<!-- [et_pb_line_break_holder] -->      if (r.pin) r.pin.className = on ? \"g2h-pin is-on\" : \"g2h-pin\";<!-- [et_pb_line_break_holder] -->      if (r.marker) {<!-- [et_pb_line_break_holder] -->        if (r.adv) { r.marker.zIndex = on ? 999 : rows.length - i; }<!-- [et_pb_line_break_holder] -->        else { if (r.marker.setZIndex) r.marker.setZIndex(on ? 999 : rows.length - i); }<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  function smoothScroll(node, x, y){<!-- [et_pb_line_break_holder] -->    var opt = { behavior: \"smooth\" };<!-- [et_pb_line_break_holder] -->    if (x !== null) opt.left = Math.max(0, x);<!-- [et_pb_line_break_holder] -->    if (y !== null) opt.top = Math.max(0, y);<!-- [et_pb_line_break_holder] -->    if (\"scrollBehavior\" in document.documentElement.style) {<!-- [et_pb_line_break_holder] -->      try { node.scrollTo(opt); return; } catch (e) { log(e); }<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    if (x !== null) node.scrollLeft = opt.left;<!-- [et_pb_line_break_holder] -->    if (y !== null) node.scrollTop = opt.top;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  function scrollToCard(id){<!-- [et_pb_line_break_holder] -->    var r = findRow(id);<!-- [et_pb_line_break_holder] -->    if (!r) return;<!-- [et_pb_line_break_holder] -->    if (!r.card) return;<!-- [et_pb_line_break_holder] -->    var c = r.card;<!-- [et_pb_line_break_holder] -->    if (isMobile()) {<!-- [et_pb_line_break_holder] -->      progScroll = true;<!-- [et_pb_line_break_holder] -->      smoothScroll(elCards, c.offsetLeft - (elCards.clientWidth - c.offsetWidth) \/ 2, null);<!-- [et_pb_line_break_holder] -->      setTimeout(function(){ progScroll = false; }, 600);<!-- [et_pb_line_break_holder] -->      return;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    smoothScroll(elCards, null, c.offsetTop - elCards.offsetTop);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  function deselect(){<!-- [et_pb_line_break_holder] -->    active = null;<!-- [et_pb_line_break_holder] -->    markActive();<!-- [et_pb_line_break_holder] -->    if (info) info.close();<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* from: \"card\" (b\u1ea5m th\u1ebb) | \"marker\" (b\u1ea5m ghim) | \"strip\" (vu\u1ed1t d\u1ea3i th\u1ebb) *\/<!-- [et_pb_line_break_holder] -->  function select(id, from){<!-- [et_pb_line_break_holder] -->    if (id === active) {<!-- [et_pb_line_break_holder] -->      if (from === \"card\") { if (!isMobile()) { deselect(); return; } }<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    active = id;<!-- [et_pb_line_break_holder] -->    markActive();<!-- [et_pb_line_break_holder] -->    if (from !== \"strip\") scrollToCard(id);<!-- [et_pb_line_break_holder] -->    showOnMap();<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  elCards.addEventListener(\"click\", function(e){<!-- [et_pb_line_break_holder] -->    var n = e.target, id;<!-- [et_pb_line_break_holder] -->    while (n) {<!-- [et_pb_line_break_holder] -->      if (n === elCards) return;<!-- [et_pb_line_break_holder] -->      if (n.tagName === \"A\") return;   \/* link Ch\u1ec9 \u0111\u01b0\u1eddng, G\u1ecdi: \u0111\u1ec3 tr\u00ecnh duy\u1ec7t t\u1ef1 x\u1eed l\u00fd *\/<!-- [et_pb_line_break_holder] -->      id = n.getAttribute ? n.getAttribute(\"data-id\") : null;<!-- [et_pb_line_break_holder] -->      if (id) { select(id, \"card\"); return; }<!-- [et_pb_line_break_holder] -->      n = n.parentNode;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->  });<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* Mobile: vu\u1ed1t d\u1ea3i th\u1ebb t\u1edbi \u0111\u00e2u th\u00ec b\u1ea3n \u0111\u1ed3 \u0111i theo t\u1edbi \u0111\u00f3 *\/<!-- [et_pb_line_break_holder] -->  var stripTimer = null;<!-- [et_pb_line_break_holder] -->  function onStripSettled(){<!-- [et_pb_line_break_holder] -->    var mid = elCards.scrollLeft + elCards.clientWidth \/ 2, best = null, bestD = Infinity, i, c, d;<!-- [et_pb_line_break_holder] -->    for (i = 0; i < rows.length; i++) {<!-- [et_pb_line_break_holder] -->      c = rows[i].card;<!-- [et_pb_line_break_holder] -->      if (!c) continue;<!-- [et_pb_line_break_holder] -->      d = Math.abs(c.offsetLeft + c.offsetWidth \/ 2 - mid);<!-- [et_pb_line_break_holder] -->      if (d < bestD) { bestD = d; best = rows[i]; }<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    if (!best) return;<!-- [et_pb_line_break_holder] -->    if (best.id === active) return;<!-- [et_pb_line_break_holder] -->    select(best.id, \"strip\");<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  elCards.addEventListener(\"scroll\", function(){<!-- [et_pb_line_break_holder] -->    if (!isMobile()) return;<!-- [et_pb_line_break_holder] -->    if (progScroll) return;<!-- [et_pb_line_break_holder] -->    clearTimeout(stripTimer);<!-- [et_pb_line_break_holder] -->    stripTimer = setTimeout(onStripSettled, 140);<!-- [et_pb_line_break_holder] -->  });<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* =====================================================================<!-- [et_pb_line_break_holder] -->     5. B\u1ea2N \u0110\u1ed2<!-- [et_pb_line_break_holder] -->     ===================================================================== *\/<!-- [et_pb_line_break_holder] -->  function clearMarker(mk, adv){<!-- [et_pb_line_break_holder] -->    if (!mk) return;<!-- [et_pb_line_break_holder] -->    if (adv) { mk.map = null; return; }<!-- [et_pb_line_break_holder] -->    mk.setMap(null);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  function makeMarker(r, i){<!-- [et_pb_line_break_holder] -->    var pos = { lat: r.s.lat, lng: r.s.lng }, wrap, pin, mk;<!-- [et_pb_line_break_holder] -->    if (useAdv) {<!-- [et_pb_line_break_holder] -->      wrap = el(\"div\", \"g2h-pinwrap\");<!-- [et_pb_line_break_holder] -->      pin = el(\"div\", \"g2h-pin\");<!-- [et_pb_line_break_holder] -->      pin.appendChild(el(\"span\", \"\", String(i + 1)));<!-- [et_pb_line_break_holder] -->      wrap.appendChild(pin);<!-- [et_pb_line_break_holder] -->      mk = new Adv({ map: map, position: pos, content: wrap, title: r.s.name, zIndex: rows.length - i });<!-- [et_pb_line_break_holder] -->      try { mk.gmpClickable = true; } catch (e0) { log(e0); }<!-- [et_pb_line_break_holder] -->      r.adv = true; r.pin = pin;<!-- [et_pb_line_break_holder] -->    } else {<!-- [et_pb_line_break_holder] -->      mk = new google.maps.Marker({<!-- [et_pb_line_break_holder] -->        map: map, position: pos, title: r.s.name, zIndex: rows.length - i,<!-- [et_pb_line_break_holder] -->        label: { text: String(i + 1), color: \"#ffffff\", fontWeight: \"700\" }<!-- [et_pb_line_break_holder] -->      });<!-- [et_pb_line_break_holder] -->      r.adv = false; r.pin = null;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    function onClick(){<!-- [et_pb_line_break_holder] -->      var now = Date.now();<!-- [et_pb_line_break_holder] -->      if (now - r.lastClick < 300) return;<!-- [et_pb_line_break_holder] -->      r.lastClick = now;<!-- [et_pb_line_break_holder] -->      select(r.id, \"marker\");<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    try { mk.addListener(\"click\", onClick); } catch (e1) { log(e1); }<!-- [et_pb_line_break_holder] -->    if (r.adv) {<!-- [et_pb_line_break_holder] -->      if (mk.addEventListener) { try { mk.addEventListener(\"gmp-click\", onClick); } catch (e2) { log(e2); } }<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    r.marker = mk;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  function drawMarkers(){<!-- [et_pb_line_break_holder] -->    if (!map) return;<!-- [et_pb_line_break_holder] -->    var i;<!-- [et_pb_line_break_holder] -->    for (i = 0; i < rows.length; i++) {<!-- [et_pb_line_break_holder] -->      clearMarker(rows[i].marker, rows[i].adv);<!-- [et_pb_line_break_holder] -->      rows[i].marker = null; rows[i].pin = null;<!-- [et_pb_line_break_holder] -->      makeMarker(rows[i], i);<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    markActive();<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  function drawMe(){<!-- [et_pb_line_break_holder] -->    if (!map) return;<!-- [et_pb_line_break_holder] -->    if (!user) return;<!-- [et_pb_line_break_holder] -->    clearMarker(meMarker, meAdv);<!-- [et_pb_line_break_holder] -->    meMarker = null;<!-- [et_pb_line_break_holder] -->    if (useAdv) {<!-- [et_pb_line_break_holder] -->      meMarker = new Adv({ map: map, position: user, content: el(\"div\", \"g2h-me\"), title: T.you, zIndex: 0 });<!-- [et_pb_line_break_holder] -->      meAdv = true;<!-- [et_pb_line_break_holder] -->      return;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    meMarker = new google.maps.Marker({<!-- [et_pb_line_break_holder] -->      map: map, position: user, title: T.you, zIndex: 0,<!-- [et_pb_line_break_holder] -->      icon: { path: google.maps.SymbolPath.CIRCLE, scale: 8, fillColor: \"#1a73e8\",<!-- [et_pb_line_break_holder] -->              fillOpacity: 1, strokeColor: \"#ffffff\", strokeWeight: 3 }<!-- [et_pb_line_break_holder] -->    });<!-- [et_pb_line_break_holder] -->    meAdv = false;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* Mobile: thanh ti\u00eau \u0111\u1ec1 n\u1ed5i ph\u00eda tr\u00ean v\u00e0 d\u1ea3i th\u1ebb ph\u00eda d\u01b0\u1edbi \u0111\u1ec1u \u0111\u00e8 l\u00ean b\u1ea3n \u0111\u1ed3,<!-- [et_pb_line_break_holder] -->     n\u00ean \u0111o \u0111\u00fang chi\u1ec1u cao th\u1eadt c\u1ee7a ch\u00fang (\u0111\u1ed5i theo ng\u00f4n ng\u1eef, c\u1ee1 ch\u1eef) r\u1ed3i ch\u1eeba ra.<!-- [et_pb_line_break_holder] -->     C\u1ed9ng th\u00eam 50px ph\u00eda tr\u00ean cho chi\u1ec1u cao c\u1ee7a ghim. *\/<!-- [et_pb_line_break_holder] -->  function fitPad(){<!-- [et_pb_line_break_holder] -->    if (!isMobile()) return { top: 60, right: 60, bottom: 60, left: 60 };<!-- [et_pb_line_break_holder] -->    var head = root.querySelector(\".g2h-head\"), H = root.clientHeight;<!-- [et_pb_line_break_holder] -->    var top = head ? head.offsetTop + head.offsetHeight + 50 : 145;<!-- [et_pb_line_break_holder] -->    var bottom = H - elCards.offsetTop + 12;<!-- [et_pb_line_break_holder] -->    if (top < 120) top = 120;<!-- [et_pb_line_break_holder] -->    if (bottom < 210) bottom = 210;<!-- [et_pb_line_break_holder] -->    if (top + bottom > H - 90) return { top: 120, right: 40, bottom: 210, left: 40 };<!-- [et_pb_line_break_holder] -->    return { top: top, right: 40, bottom: bottom, left: 40 };<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* mode: \"all\" = m\u1ecdi c\u1eeda h\u00e0ng | s\u1ed1 N = kh\u00e1ch v\u00e0 N c\u1eeda h\u00e0ng g\u1ea7n nh\u1ea5t *\/<!-- [et_pb_line_break_holder] -->  function fitTo(mode){<!-- [et_pb_line_break_holder] -->    if (!map) return;<!-- [et_pb_line_break_holder] -->    lastFit = mode;<!-- [et_pb_line_break_holder] -->    var b = new google.maps.LatLngBounds(), list = rows, n = 0, i, near = false;<!-- [et_pb_line_break_holder] -->    if (mode !== \"all\") {<!-- [et_pb_line_break_holder] -->      if (user) { if (rows.length) near = rows[0].straight <= CONFIG.FAR_KM * 1000; }<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    if (near) { list = rows.slice(0, mode); b.extend(user); n++; }<!-- [et_pb_line_break_holder] -->    for (i = 0; i < list.length; i++) { b.extend({ lat: list[i].s.lat, lng: list[i].s.lng }); n++; }<!-- [et_pb_line_break_holder] -->    if (n === 0) return;<!-- [et_pb_line_break_holder] -->    if (n === 1) { map.setCenter(b.getCenter()); map.setZoom(16); return; }<!-- [et_pb_line_break_holder] -->    try { map.fitBounds(b, fitPad()); } catch (e) { log(\"fitBounds l\u1ed7i\", e); return; }<!-- [et_pb_line_break_holder] -->    google.maps.event.addListenerOnce(map, \"idle\", function(){<!-- [et_pb_line_break_holder] -->      if (map.getZoom() > 17) map.setZoom(17);<!-- [et_pb_line_break_holder] -->    });<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  function openInfo(r){<!-- [et_pb_line_break_holder] -->    if (isMobile()) { if (info) info.close(); return; }<!-- [et_pb_line_break_holder] -->    if (!r.marker) return;<!-- [et_pb_line_break_holder] -->    if (!info) info = new google.maps.InfoWindow();<!-- [et_pb_line_break_holder] -->    var box = el(\"div\", \"g2h-iw\"), a;<!-- [et_pb_line_break_holder] -->    box.appendChild(el(\"div\", \"g2h-iw-name\", r.s.name));<!-- [et_pb_line_break_holder] -->    box.appendChild(el(\"div\", \"g2h-iw-addr\", r.s.addr));<!-- [et_pb_line_break_holder] -->    a = el(\"a\", \"g2h-iw-link\", r.s.cid ? T.viewOnMaps : T.directions);<!-- [et_pb_line_break_holder] -->    a.href = r.s.cid ? \"https:\/\/maps.google.com\/?cid=\" + r.s.cid : dirUrl(r.s);<!-- [et_pb_line_break_holder] -->    a.target = \"_blank\"; a.rel = \"noopener\";<!-- [et_pb_line_break_holder] -->    box.appendChild(a);<!-- [et_pb_line_break_holder] -->    info.setContent(box);<!-- [et_pb_line_break_holder] -->    try { info.open({ map: map, anchor: r.marker }); } catch (e) { info.open(map, r.marker); }<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  function showOnMap(){<!-- [et_pb_line_break_holder] -->    var r = findRow(active);<!-- [et_pb_line_break_holder] -->    if (!r) return;<!-- [et_pb_line_break_holder] -->    if (!map) return;<!-- [et_pb_line_break_holder] -->    map.panTo({ lat: r.s.lat, lng: r.s.lng });<!-- [et_pb_line_break_holder] -->    if (map.getZoom() < 15) map.setZoom(15);<!-- [et_pb_line_break_holder] -->    openInfo(r);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  function build(){<!-- [et_pb_line_break_holder] -->    if (inited) return;<!-- [et_pb_line_break_holder] -->    inited = true;<!-- [et_pb_line_break_holder] -->    if (!rows.length) { showMsg(\"STORES \u0111ang tr\u1ed1ng.\"); return; }<!-- [et_pb_line_break_holder] -->    if (!Adv) {<!-- [et_pb_line_break_holder] -->      if (google.maps.marker) {<!-- [et_pb_line_break_holder] -->        if (google.maps.marker.AdvancedMarkerElement) Adv = google.maps.marker.AdvancedMarkerElement;<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    var hasMapId = CONFIG.MAP_ID ? CONFIG.MAP_ID.indexOf(\"DAN_\") !== 0 : false;<!-- [et_pb_line_break_holder] -->    useAdv = Adv ? hasMapId : false;   \/* Advanced Marker b\u1eaft bu\u1ed9c ph\u1ea3i c\u00f3 Map ID *\/<!-- [et_pb_line_break_holder] -->    log(useAdv ? \"d\u00f9ng AdvancedMarkerElement\" : \"d\u00f9ng Marker ki\u1ec3u c\u0169\");<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    var opts = {<!-- [et_pb_line_break_holder] -->      center: { lat: rows[0].s.lat, lng: rows[0].s.lng }, zoom: 14,<!-- [et_pb_line_break_holder] -->      gestureHandling: \"cooperative\",   \/* cu\u1ed9n trang kh\u00f4ng b\u1ecb b\u1ea3n \u0111\u1ed3 nu\u1ed1t *\/<!-- [et_pb_line_break_holder] -->      mapTypeControl: false, streetViewControl: false, fullscreenControl: false,<!-- [et_pb_line_break_holder] -->      clickableIcons: false<!-- [et_pb_line_break_holder] -->    };<!-- [et_pb_line_break_holder] -->    if (hasMapId) opts.mapId = CONFIG.MAP_ID;<!-- [et_pb_line_break_holder] -->    try { map = new google.maps.Map(elMap, opts); }<!-- [et_pb_line_break_holder] -->    catch (e) { log(e); showMsg(T.mapFail); return; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    hideMsg();<!-- [et_pb_line_break_holder] -->    drawMarkers();<!-- [et_pb_line_break_holder] -->    map.addListener(\"click\", function(){ if (!isMobile()) deselect(); });<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    if (!user) { fitTo(\"all\"); return; }<!-- [et_pb_line_break_holder] -->    drawMe();<!-- [et_pb_line_break_holder] -->    fitTo(CONFIG.FIT);<!-- [et_pb_line_break_holder] -->    if (CONFIG.DISTANCE_MODE === \"driving\") { if (!roadTried) fetchRoadDistances(); }<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  function initMap(){<!-- [et_pb_line_break_holder] -->    if (google.maps.importLibrary) {<!-- [et_pb_line_break_holder] -->      google.maps.importLibrary(\"maps\")<!-- [et_pb_line_break_holder] -->        .then(function(){ return google.maps.importLibrary(\"marker\"); })<!-- [et_pb_line_break_holder] -->        .then(function(lib){<!-- [et_pb_line_break_holder] -->          if (lib) { if (lib.AdvancedMarkerElement) Adv = lib.AdvancedMarkerElement; }<!-- [et_pb_line_break_holder] -->          build();<!-- [et_pb_line_break_holder] -->        })<!-- [et_pb_line_break_holder] -->        [\"catch\"](function(e){ log(\"importLibrary l\u1ed7i\", e); build(); });<!-- [et_pb_line_break_holder] -->      return;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    build();<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* Kh\u00f4ng d\u1ef1ng b\u1ea3n \u0111\u1ed3 khi khung c\u00f2n 0px (tab \u1ea9n, Divi ch\u01b0a bung layout):<!-- [et_pb_line_break_holder] -->     d\u1ef1ng l\u00fac \u0111\u00f3 l\u00e0 tile v\u1ebd l\u1ec7ch, ch\u1ec9 hi\u1ec7n m\u1ed9t g\u00f3c. *\/<!-- [et_pb_line_break_holder] -->  function sized(){<!-- [et_pb_line_break_holder] -->    return elMap.offsetWidth > 0 ? elMap.offsetHeight > 0 : false;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  function whenSized(fn){<!-- [et_pb_line_break_holder] -->    var t0 = Date.now();<!-- [et_pb_line_break_holder] -->    (function poll(){<!-- [et_pb_line_break_holder] -->      if (sized()) { fn(); return; }<!-- [et_pb_line_break_holder] -->      if (Date.now() - t0 > 30000) { fn(); return; }<!-- [et_pb_line_break_holder] -->      setTimeout(poll, 150);<!-- [et_pb_line_break_holder] -->    })();<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  function mapsReady(){<!-- [et_pb_line_break_holder] -->    if (!window.google) return false;<!-- [et_pb_line_break_holder] -->    if (!window.google.maps) return false;<!-- [et_pb_line_break_holder] -->    if (window.google.maps.Map) return true;<!-- [et_pb_line_break_holder] -->    return !!window.google.maps.importLibrary;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  function findExistingTag(){<!-- [et_pb_line_break_holder] -->    return document.querySelector('script[src*=\"maps.googleapis.com\/maps\/api\/js\"]');<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  function waitForGoogle(cb){<!-- [et_pb_line_break_holder] -->    var t0 = Date.now();<!-- [et_pb_line_break_holder] -->    (function poll(){<!-- [et_pb_line_break_holder] -->      if (mapsReady()) { cb(); return; }<!-- [et_pb_line_break_holder] -->      if (Date.now() - t0 > 20000) { showMsg(T.mapFail); return; }<!-- [et_pb_line_break_holder] -->      setTimeout(poll, 120);<!-- [et_pb_line_break_holder] -->    })();<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  var ensureGuard = false;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* Kh\u00f4ng bao gi\u1edd n\u1ea1p b\u1ea3n Maps API th\u1ee9 hai.<!-- [et_pb_line_break_holder] -->     Locator th\u01b0\u1eddng n\u1eb1m cu\u1ed1i trang n\u00ean IntersectionObserver c\u00f3 th\u1ec3 b\u1eafn TR\u01af\u1edaC khi<!-- [et_pb_line_break_holder] -->     tr\u00ecnh duy\u1ec7t \u0111\u1ecdc t\u1edbi script Maps c\u1ee7a b\u00ean kh\u00e1c \u1edf footer. V\u00ec v\u1eady ph\u1ea3i ch\u1edd<!-- [et_pb_line_break_holder] -->     trang t\u1ea3i xong m\u1edbi d\u00e1m k\u1ebft lu\u1eadn l\u00e0 ch\u01b0a ai n\u1ea1p. *\/<!-- [et_pb_line_break_holder] -->  function ensureMaps(){<!-- [et_pb_line_break_holder] -->    if (mapsReady()) { log(\"d\u00f9ng b\u1ea3n Maps API \u0111\u00e3 c\u00f3 tr\u00ean trang\"); whenSized(initMap); return; }<!-- [et_pb_line_break_holder] -->    if (findExistingTag()) {<!-- [et_pb_line_break_holder] -->      log(\"\u0111\u00e3 c\u00f3 th\u1ebb script Maps c\u1ee7a b\u00ean kh\u00e1c, ch\u1edd n\u00f3 t\u1ea3i xong\");<!-- [et_pb_line_break_holder] -->      waitForGoogle(function(){ whenSized(initMap); });<!-- [et_pb_line_break_holder] -->      return;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    if (document.readyState !== \"complete\") {<!-- [et_pb_line_break_holder] -->      if (ensureGuard) return;<!-- [et_pb_line_break_holder] -->      ensureGuard = true;<!-- [et_pb_line_break_holder] -->      window.addEventListener(\"load\", function(){ ensureGuard = false; ensureMaps(); });<!-- [et_pb_line_break_holder] -->      return;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    injectLoader();<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  window.g2hMapInit = function(){ whenSized(initMap); };<!-- [et_pb_line_break_holder] -->  window.gm_authFailure = function(){ showMsg(T.mapFail); };<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  function injectLoader(){<!-- [et_pb_line_break_holder] -->    if ($(\"g2h-gmaps-js\")) return;<!-- [et_pb_line_break_holder] -->    if (CONFIG.API_KEY.indexOf(\"DAN_\") === 0) {<!-- [et_pb_line_break_holder] -->      showMsg(\"Ch\u01b0a \u0111i\u1ec1n API_KEY trong CONFIG. Danh s\u00e1ch c\u1eeda h\u00e0ng v\u1eabn ch\u1ea1y, b\u1ea3n \u0111\u1ed3 ch\u01b0a t\u1ea3i.\");<!-- [et_pb_line_break_holder] -->      return;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    log(\"t\u1ef1 n\u1ea1p Maps API\");<!-- [et_pb_line_break_holder] -->    var p = new URLSearchParams({<!-- [et_pb_line_break_holder] -->      key: CONFIG.API_KEY, v: \"weekly\", libraries: \"marker\",<!-- [et_pb_line_break_holder] -->      language: LANG, region: \"VN\", loading: \"async\", callback: \"g2hMapInit\"<!-- [et_pb_line_break_holder] -->    });<!-- [et_pb_line_break_holder] -->    var sc = document.createElement(\"script\");<!-- [et_pb_line_break_holder] -->    sc.id = \"g2h-gmaps-js\";<!-- [et_pb_line_break_holder] -->    sc.async = true;<!-- [et_pb_line_break_holder] -->    sc.src = \"https:\/\/maps.googleapis.com\/maps\/api\/js?\" + p.toString();<!-- [et_pb_line_break_holder] -->    sc.onerror = function(){ showMsg(T.mapFail); };<!-- [et_pb_line_break_holder] -->    document.head.appendChild(sc);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* =====================================================================<!-- [et_pb_line_break_holder] -->     6. \u0110\u1ecaNH V\u1eca V\u00c0 QU\u00c3NG \u0110\u01af\u1edcNG<!-- [et_pb_line_break_holder] -->     ===================================================================== *\/<!-- [et_pb_line_break_holder] -->  function fail(msg){<!-- [et_pb_line_break_holder] -->    elBtn.disabled = false;<!-- [et_pb_line_break_holder] -->    elStat.textContent = msg;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  function locate(){<!-- [et_pb_line_break_holder] -->    if (!navigator.geolocation) { fail(T.noGeo); return; }<!-- [et_pb_line_break_holder] -->    elBtn.disabled = true;<!-- [et_pb_line_break_holder] -->    elStat.textContent = T.locating;<!-- [et_pb_line_break_holder] -->    navigator.geolocation.getCurrentPosition(function(pos){<!-- [et_pb_line_break_holder] -->      user = { lat: pos.coords.latitude, lng: pos.coords.longitude };<!-- [et_pb_line_break_holder] -->      log(\"v\u1ecb tr\u00ed kh\u00e1ch\", user, \"sai s\u1ed1 ~\" + Math.round(pos.coords.accuracy) + \" m\");<!-- [et_pb_line_break_holder] -->      elBtn.disabled = false;<!-- [et_pb_line_break_holder] -->      active = null;<!-- [et_pb_line_break_holder] -->      roadTried = false;<!-- [et_pb_line_break_holder] -->      compute();          \/* x\u1ebfp s\u01a1 b\u1ed9 b\u1eb1ng chim bay: hi\u1ec7n ngay, kh\u00f4ng ch\u1edd API *\/<!-- [et_pb_line_break_holder] -->      sortRows();<!-- [et_pb_line_break_holder] -->      renderCards();<!-- [et_pb_line_break_holder] -->      drawMarkers();<!-- [et_pb_line_break_holder] -->      drawMe();<!-- [et_pb_line_break_holder] -->      fitTo(CONFIG.FIT);<!-- [et_pb_line_break_holder] -->      if (isMobile()) elCards.scrollLeft = 0; else elCards.scrollTop = 0;<!-- [et_pb_line_break_holder] -->      if (CONFIG.DISTANCE_MODE === \"driving\") {<!-- [et_pb_line_break_holder] -->        if (mapsReady()) { elStat.textContent = T.routing; fetchRoadDistances(); return; }<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->      elStat.textContent = T.sortedStraight;<!-- [et_pb_line_break_holder] -->    }, function(err){<!-- [et_pb_line_break_holder] -->      if (err.code === 1) { fail(T.denied); return; }<!-- [et_pb_line_break_holder] -->      fail(T.timeout);<!-- [et_pb_line_break_holder] -->    }, { enableHighAccuracy: true, timeout: 15000, maximumAge: 300000 });<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* Qu\u00e3ng \u0111\u01b0\u1eddng ch\u1ea1y xe th\u1eadt. Ch\u1ec9 ch\u1ea1y SAU khi \u0111\u00e3 c\u00f3 danh s\u00e1ch x\u1ebfp b\u1eb1ng chim bay.<!-- [et_pb_line_break_holder] -->     H\u1ecfng th\u00ec im l\u1eb7ng gi\u1eef s\u1ed1 chim bay (c\u00f3 d\u1ea5u \u2248). *\/<!-- [et_pb_line_break_holder] -->  function fetchRoadDistances(){<!-- [et_pb_line_break_holder] -->    roadTried = true;<!-- [et_pb_line_break_holder] -->    var mine = ++reqId;<!-- [et_pb_line_break_holder] -->    var top = rows.slice(0, Math.min(CONFIG.ROUTE_TOP, 25));<!-- [et_pb_line_break_holder] -->    if (!top.length) return;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    function run(Svc){<!-- [et_pb_line_break_holder] -->      var svc;<!-- [et_pb_line_break_holder] -->      try { svc = new Svc(); } catch (e) { log(e); roadDone(false); return; }<!-- [et_pb_line_break_holder] -->      svc.getDistanceMatrix({<!-- [et_pb_line_break_holder] -->        origins: [ user ],<!-- [et_pb_line_break_holder] -->        destinations: top.map(function(r){ return { lat: r.s.lat, lng: r.s.lng }; }),<!-- [et_pb_line_break_holder] -->        travelMode: \"DRIVING\",<!-- [et_pb_line_break_holder] -->        unitSystem: google.maps.UnitSystem ? google.maps.UnitSystem.METRIC : 0<!-- [et_pb_line_break_holder] -->      }, function(res, status){<!-- [et_pb_line_break_holder] -->        if (mine !== reqId) return;   \/* kh\u00e1ch \u0111\u00e3 b\u1ea5m \u0111\u1ecbnh v\u1ecb l\u1ea1i, b\u1ecf k\u1ebft qu\u1ea3 c\u0169 *\/<!-- [et_pb_line_break_holder] -->        if (status !== \"OK\") { log(\"Distance Matrix l\u1ed7i:\", status); roadDone(false); return; }<!-- [et_pb_line_break_holder] -->        var els = res.rows[0].elements, i;<!-- [et_pb_line_break_holder] -->        for (i = 0; i < top.length; i++) {<!-- [et_pb_line_break_holder] -->          if (!els[i]) continue;<!-- [et_pb_line_break_holder] -->          if (els[i].status !== \"OK\") continue;<!-- [et_pb_line_break_holder] -->          top[i].road = { m: els[i].distance.value, sec: els[i].duration.value };<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->        roadDone(true);<!-- [et_pb_line_break_holder] -->      });<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    if (google.maps.importLibrary) {<!-- [et_pb_line_break_holder] -->      google.maps.importLibrary(\"routes\")<!-- [et_pb_line_break_holder] -->        .then(function(lib){ run(lib.DistanceMatrixService); })<!-- [et_pb_line_break_holder] -->        [\"catch\"](function(e){<!-- [et_pb_line_break_holder] -->          log(\"kh\u00f4ng n\u1ea1p \u0111\u01b0\u1ee3c th\u01b0 vi\u1ec7n routes:\", e);<!-- [et_pb_line_break_holder] -->          if (google.maps.DistanceMatrixService) { run(google.maps.DistanceMatrixService); return; }<!-- [et_pb_line_break_holder] -->          roadDone(false);<!-- [et_pb_line_break_holder] -->        });<!-- [et_pb_line_break_holder] -->      return;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    if (google.maps.DistanceMatrixService) { run(google.maps.DistanceMatrixService); return; }<!-- [et_pb_line_break_holder] -->    roadDone(false);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  function roadDone(ok){<!-- [et_pb_line_break_holder] -->    if (ok) {<!-- [et_pb_line_break_holder] -->      sortRows();<!-- [et_pb_line_break_holder] -->      renderCards();<!-- [et_pb_line_break_holder] -->      drawMarkers();<!-- [et_pb_line_break_holder] -->      if (!active) fitTo(CONFIG.FIT);<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    elStat.textContent = ok ? T.sortedRoad : T.sortedStraight;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* Kh\u00e1ch t\u1eebng cho ph\u00e9p \u0111\u1ecbnh v\u1ecb tr\u00ean site n\u00e0y th\u00ec t\u1ef1 x\u1ebfp lu\u00f4n, kh\u1ecfi b\u1ea5m l\u1ea1i *\/<!-- [et_pb_line_break_holder] -->  function autoLocate(){<!-- [et_pb_line_break_holder] -->    if (!navigator.permissions) return;<!-- [et_pb_line_break_holder] -->    if (!navigator.permissions.query) return;<!-- [et_pb_line_break_holder] -->    try {<!-- [et_pb_line_break_holder] -->      navigator.permissions.query({ name: \"geolocation\" })<!-- [et_pb_line_break_holder] -->        .then(function(p){ if (p.state === \"granted\") locate(); })<!-- [et_pb_line_break_holder] -->        [\"catch\"](function(e){ log(e); });<!-- [et_pb_line_break_holder] -->    } catch (e) { log(e); }<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* =====================================================================<!-- [et_pb_line_break_holder] -->     7. KH\u1edeI CH\u1ea0Y<!-- [et_pb_line_break_holder] -->     ===================================================================== *\/<!-- [et_pb_line_break_holder] -->  elTitle.textContent = T.title;<!-- [et_pb_line_break_holder] -->  elStat.textContent = T.hint;<!-- [et_pb_line_break_holder] -->  elBtn.textContent = T.locate;<!-- [et_pb_line_break_holder] -->  elAll.textContent = T.all;<!-- [et_pb_line_break_holder] -->  elMsg.textContent = T.loading;<!-- [et_pb_line_break_holder] -->  if (rows.length < 2) elAll.hidden = true;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  renderCards();   \/* danh s\u00e1ch hi\u1ec7n ngay, kh\u00f4ng ph\u1ee5 thu\u1ed9c b\u1ea3n \u0111\u1ed3 *\/<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  elBtn.addEventListener(\"click\", locate);<!-- [et_pb_line_break_holder] -->  elAll.addEventListener(\"click\", function(){<!-- [et_pb_line_break_holder] -->    deselect();<!-- [et_pb_line_break_holder] -->    fitTo(\"all\");<!-- [et_pb_line_break_holder] -->  });<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  var lastW = window.innerWidth, resizeTimer = null;<!-- [et_pb_line_break_holder] -->  window.addEventListener(\"resize\", function(){<!-- [et_pb_line_break_holder] -->    if (window.innerWidth === lastW) return;   \/* b\u1ecf qua l\u00fac thanh \u0111\u1ecba ch\u1ec9 mobile co gi\u00e3n *\/<!-- [et_pb_line_break_holder] -->    lastW = window.innerWidth;<!-- [et_pb_line_break_holder] -->    clearTimeout(resizeTimer);<!-- [et_pb_line_break_holder] -->    resizeTimer = setTimeout(function(){ if (!active) fitTo(lastFit); }, 250);<!-- [et_pb_line_break_holder] -->  });<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* Lazy-load: ch\u1ec9 t\u1ea3i Maps khi kh\u1ed1i n\u00e0y cu\u1ed9n t\u1edbi g\u1ea7n m\u00e0n h\u00ecnh *\/<!-- [et_pb_line_break_holder] -->  function start(){<!-- [et_pb_line_break_holder] -->    ensureMaps();<!-- [et_pb_line_break_holder] -->    autoLocate();<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  if (\"IntersectionObserver\" in window) {<!-- [et_pb_line_break_holder] -->    var io = new IntersectionObserver(function(entries){<!-- [et_pb_line_break_holder] -->      var i;<!-- [et_pb_line_break_holder] -->      for (i = 0; i < entries.length; i++) {<!-- [et_pb_line_break_holder] -->        if (entries[i].isIntersecting) { io.disconnect(); start(); return; }<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    }, { rootMargin: \"300px 0px\" });<!-- [et_pb_line_break_holder] -->    io.observe(root);<!-- [et_pb_line_break_holder] -->  } else {<!-- [et_pb_line_break_holder] -->    start();<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->})();<!-- [et_pb_line_break_holder] --><\/script>[\/et_pb_fullwidth_code][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; next_background_color=&#8221;#ffffff&#8221; admin_label=&#8221;Footer&#8221; _builder_version=&#8221;4.27.7&#8243; background_color=&#8221;#ff8c00&#8243; custom_margin=&#8221;0px||-30px||false|false&#8221; custom_padding=&#8221;0px|0px|0px|0px|false|false&#8221; bottom_divider_style=&#8221;clouds2&#8243; bottom_divider_height=&#8221;120px&#8221; saved_tabs=&#8221;all&#8221; locked=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_row _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_heading title=&#8221;Address and opening hours&#8221; _builder_version=&#8221;4.27.7&#8243; _module_preset=&#8221;default&#8221; title_level=&#8221;h2&#8243; title_font=&#8221;Arial|600|||||||&#8221; title_text_align=&#8221;center&#8221; title_text_color=&#8221;#FFFFFF&#8221; title_font_size=&#8221;29px&#8221; title_line_height=&#8221;1.6em&#8221; title_text_shadow_style=&#8221;preset1&#8243; global_colors_info=&#8221;{}&#8221;][\/et_pb_heading][\/et_pb_column][\/et_pb_row][et_pb_row column_structure=&#8221;1_2,1_2&#8243; _builder_version=&#8221;4.27.7&#8243; width=&#8221;95%&#8221; max_width=&#8221;2560px&#8221; min_height=&#8221;100px&#8221; custom_margin=&#8221;|auto||auto|false|false&#8221; custom_padding=&#8221;||||false|false&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;1_2&#8243; _builder_version=&#8221;4.16&#8243; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.27.7&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;Arial||||||||&#8221; text_font_size=&#8221;17px&#8221; header_4_font=&#8221;Arial||||||||&#8221; header_4_font_size=&#8221;20px&#8221; background_color=&#8221;rgba(255,255,255,0.2)&#8221; background_layout=&#8221;dark&#8221; custom_margin=&#8221;0px||||false|false&#8221; custom_padding=&#8221;10px|15px|10px|15px|true|true&#8221; text_text_shadow_style=&#8221;preset5&#8243; header_text_shadow_style=&#8221;preset5&#8243; border_radii=&#8221;on|10px|10px|10px|10px&#8221; box_shadow_style=&#8221;preset2&#8243; global_colors_info=&#8221;{}&#8221;]<\/p>\n<h3>2 Hours Laundry &#8211; 08 Nguy\u1ec5n Th\u1ecb Minh Khai<\/h3>\n<p><span style=\"font-size: 16px;\"><strong>Address:<\/strong>8 Nguyen Thi Minh Khai, Nha Trang, Khanh Hoa 650000 (At the Hung Vuong junction. Near the Main Square and the Night Market. Next to Panorama)<\/span><span style=\"font-size: 16px;\"><\/span><\/p>\n<p><strong>Opening hours: 07:00 \u2013 22:00 daily<\/strong><\/p>\n<p><strong>Tel:<\/strong> +84 258 3810 888 (Shop) | + 84 812 397 666 (Zalo, Whatsapp, Kakao)<\/p>\n<p><span><\/span><\/p>\n<p>[\/et_pb_text][et_pb_button button_url=&#8221;https:\/\/maps.google.com\/?cid=14645360106988054345&#8243; url_new_window=&#8221;on&#8221; button_text=&#8221;Ch\u1ec9 \u0111\u01b0\u1eddng t\u1edbi \u0111\u00e2y&#8221; button_alignment=&#8221;center&#8221; _builder_version=&#8221;4.27.7&#8243; _module_preset=&#8221;default&#8221; custom_button=&#8221;on&#8221; button_text_size=&#8221;17px&#8221; button_text_color=&#8221;#0C71C3&#8243; button_bg_color=&#8221;#ffffff&#8221; button_border_width=&#8221;2px&#8221; button_border_radius=&#8221;6px&#8221; button_font=&#8221;|700|||||||&#8221; button_use_icon=&#8221;off&#8221; button_rel=&#8221;off|off|off|on|on&#8221; background_layout=&#8221;dark&#8221; custom_margin=&#8221;||||false|false&#8221; custom_padding=&#8221;||||false|false&#8221; global_colors_info=&#8221;{}&#8221;][\/et_pb_button][\/et_pb_column][et_pb_column type=&#8221;1_2&#8243; _builder_version=&#8221;4.16&#8243; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.27.7&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;Arial||||||||&#8221; text_font_size=&#8221;17px&#8221; header_4_font=&#8221;Arial||||||||&#8221; header_4_font_size=&#8221;20px&#8221; background_color=&#8221;rgba(255,255,255,0.2)&#8221; background_layout=&#8221;dark&#8221; custom_margin=&#8221;0px||||false|false&#8221; custom_padding=&#8221;10px|15px|10px|15px|true|true&#8221; text_text_shadow_style=&#8221;preset5&#8243; header_text_shadow_style=&#8221;preset5&#8243; border_radii=&#8221;on|10px|10px|10px|10px&#8221; box_shadow_style=&#8221;preset2&#8243; global_colors_info=&#8221;{}&#8221;]<\/p>\n<h3>2 Hours Laundry &#8211; 15 D\u00e3 T\u01b0\u1ee3ng<\/h3>\n<p><span style=\"font-size: 16px;\"><strong>Address:<\/strong><\/span>15 D\u00e3 T\u01b0\u1ee3ng Street, Nha Trang, Kh\u00e1nh H\u00f2a 650000 (right at the corner of Tr\u1ea7n Ph\u00fa Street, near the beach)<span style=\"font-size: 16px;\"><\/span><\/p>\n<p><strong>Opening hours: 07:00 \u2013 22:00 daily<\/strong><\/p>\n<p><strong>Tel:<\/strong> +84 812 397 666 (Zalo, Whatsapp, Kakao)<\/p>\n<p><span><\/span><\/p>\n<p>[\/et_pb_text][et_pb_button button_url=&#8221;https:\/\/google.com\/maps?cid=9287242316172481567&#8243; url_new_window=&#8221;on&#8221; button_text=&#8221;Ch\u1ec9 \u0111\u01b0\u1eddng t\u1edbi \u0111\u00e2y&#8221; button_alignment=&#8221;center&#8221; _builder_version=&#8221;4.27.7&#8243; _module_preset=&#8221;default&#8221; custom_button=&#8221;on&#8221; button_text_size=&#8221;17px&#8221; button_text_color=&#8221;#0C71C3&#8243; button_bg_color=&#8221;#ffffff&#8221; button_border_width=&#8221;2px&#8221; button_border_radius=&#8221;6px&#8221; button_font=&#8221;|700|||||||&#8221; button_use_icon=&#8221;off&#8221; button_rel=&#8221;off|off|off|on|on&#8221; background_layout=&#8221;dark&#8221; custom_margin=&#8221;||||false|false&#8221; custom_padding=&#8221;||||false|false&#8221; global_colors_info=&#8221;{}&#8221;][\/et_pb_button][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Laundry prices in Nha TrangWash &amp; dry is priced by weight, not per item. The table below is the full list \u2014 there are no hidden fees. Wash &amp; dry by weight Weight Price Up to 3 kg 60,000 VND Up to 5 kg 90,000 VND Up to 7 kg 120,000 VND Over 7 kg 18,000 VND per kg The price covers washing, drying, folding and packing. How we weigh Tiers are inclusive. A 4.2 kg bag falls under the up-to-5-kg tier and costs 90,000 VND \u2014 nothing extra for the remainder. Dry laundry is weighed in front of you at drop-off. Wet laundry is weighed after washing and drying, because wet clothes are far heavier and weighing them then would cost you more. Over 7 kg switches to a per-kilo rate. For example, 9 kg is 9 \u00d7 18,000 = 162,000 VND. What one wash load covers The prices above are for one wash load \u2014 your whole bag goes through the machine together. Your laundry is never mixed with another customer&#8217;s. But within your own bag, whites and colours still go in together unless you ask us to separate them. If whites and colours are washed together, we [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"areas":[],"class_list":["post-1156","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/giatui2h.com\/en\/wp-json\/wp\/v2\/pages\/1156","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/giatui2h.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/giatui2h.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/giatui2h.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/giatui2h.com\/en\/wp-json\/wp\/v2\/comments?post=1156"}],"version-history":[{"count":0,"href":"https:\/\/giatui2h.com\/en\/wp-json\/wp\/v2\/pages\/1156\/revisions"}],"wp:attachment":[{"href":"https:\/\/giatui2h.com\/en\/wp-json\/wp\/v2\/media?parent=1156"}],"wp:term":[{"taxonomy":"gh_area","embeddable":true,"href":"https:\/\/giatui2h.com\/en\/wp-json\/wp\/v2\/areas?post=1156"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}