1<!doctype html> 2<html> 3 4<head> 5 6 <!-- Google Tag Manager --> 7<!--
7<script>
vendor: 450 bytes, lines 7-21
7 8 (function(w, d, s, l, i) { 9 w[l] = w[l] || []; 10 w[l].push({ 11 'gtm.start': new Date().getTime(), 12 event: 'gtm.js' 13 }); 14 var f = d.getElementsByTagName(s)[0], 15 j = d.createElement(s), 16 dl = l != 'dataLayer' ? '&l=' + l : ''; 17 j.async = true; 18 j.src = 19 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; 20 f.parentNode.insertBefore(j, f); 21 })(window, document, 'script', 'dataLayer', '
21GTM-KS8K99B
vendor: 5 bytes, line 21
21');
22</script>
22 --> 23<!-- End Google Tag Manager --> 24<!-- Total traffic of all branding for this GTM --> 25<!-- stats_h.php already Added --> 26 27<!-- Google Tag Manager --> 28<!--
28<script>
vendor: 331 bytes, lines 28-32
28(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 29new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 30j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 31'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 32})(window,document,'script','dataLayer','
32GTM-T4FPDT7
vendor: 3 bytes, line 32
32');
32</script>
32 --> 33<!-- End Google Tag Manager --> 34<!-- Requested by Yanly, 2022-6-20 --> 35 36<!-- Google Tag Manager -->
37<script>
vendor: 450 bytes, lines 37-51
37 38 (function(w, d, s, l, i) { 39 w[l] = w[l] || []; 40 w[l].push({ 41 'gtm.start': new Date().getTime(), 42 event: 'gtm.js' 43 }); 44 var f = d.getElementsByTagName(s)[0], 45 j = d.createElement(s), 46 dl = l != 'dataLayer' ? '&l=' + l : ''; 47 j.async = true; 48 j.src = 49 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; 50 f.parentNode.insertBefore(j, f); 51 })(window, document, 'script', 'dataLayer', '
51GTM-MRRW6VS
vendor: 5 bytes, line 51
51');
52</script>
52 53<!-- End Google Tag Manager --> 54<!-- Requested by Jessica, 2025-7-16 --> 55 56<!-- <noscript><img height="1" width="1" style="display:none" src=https://www.facebook.com/tr?id=532491535639227&ev=PageView&noscript=1 57/></noscript> --> 58<!-- End Meta Pixel Code --> 59<!-- Requested by Nicky, 2023-2-15 --> 60 61<!-- Google tag (gtag.js) --> 62<!--
62<script async src=https://www.googletagmanager.com/gtag/js?id=G-YENKXPQCY9></script>
vendor: 2 bytes, line 62
62
63<script>
vendor: 130 bytes, lines 64-67
64window.dataLayer = window.dataLayer || []; 65function gtag(){dataLayer.push(arguments);} 66gtag('js', new Date()); 67gtag('config', '
67G-YENKXPQCY9
vendor: 5 bytes, line 67
67');
68</script>
68 --> 69<!-- Requested by Nicky, 2023-2-16 --> 70 71<!-- Google tag (gtag.js) -->
vendor: 65 bytes, lines 71-72
71 72<script async src="https://www.googletagmanager.com/gtag/js?id=
72G-LPD60FS341
vendor: 13 bytes, line 72
72"></script>
73<script> 74
vendor: 151 bytes, lines 74-81
74window.dataLayer = window.dataLayer || []; 75 76 function gtag() { 77 dataLayer.push(arguments); 78 } 79 gtag('js', new Date()); 80 81 gtag('config', '
81G-LPD60FS341
vendor: 5 bytes, line 81
81');
82</script>
82 83<!-- Requested by Jessica, 2025-7-16 --> 84
85<script> 86 window.addEventListener("load", function(event) { 87 if (window.location.href.includes("thx?id=")) { 88 gtag('event', 'CompleteRegistration', { 89 'method': 'Google' 90 }); 91 } 92 }); 93</script>
93 94<!-- Added by Ronald, 2023-7-1 --> 95 96<!-- Meta Pixel Code --> 97<!--
97<script>
vendor: 408 bytes, lines 97-106
97 98!function(f,b,e,v,n,t,s) 99{if(f.fbq)return;n=f.fbq=function(){n.callMethod? 100n.callMethod.apply(n,arguments):n.queue.push(arguments)}; 101if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; 102n.queue=[];t=b.createElement(e);t.async=!0; 103t.src=v;s=b.getElementsByTagName(e)[0]; 104s.parentNode.insertBefore(t,s)}(window, document,'script', 105'https://connect.facebook.net/en_US/fbevents.js'); 106fbq('init', '
1061175251526955733
vendor: 32 bytes, lines 106-107
106'); 107fbq('track', 'PageView');
108</script>
108 109<noscript><img height="1" width="1" style="display:none" 110src="https://www.facebook.com/tr?id=1175251526955733&ev=PageView&noscript=1" 111/></noscript> --> 112<!-- End Meta Pixel Code --> 113<!-- Requested by Rachel, 2024-07-15 --> 114 115<!-- Meta Pixel Code -->
116<script>
vendor: 545 bytes, lines 116-135
116 117 ! function(f, b, e, v, n, t, s) { 118 if (f.fbq) return; 119 n = f.fbq = function() { 120 n.callMethod ? 121 n.callMethod.apply(n, arguments) : n.queue.push(arguments) 122 }; 123 if (!f._fbq) f._fbq = n; 124 n.push = n; 125 n.loaded = !0; 126 n.version = '2.0'; 127 n.queue = []; 128 t = b.createElement(e); 129 t.async = !0; 130 t.src = v; 131 s = b.getElementsByTagName(e)[0]; 132 s.parentNode.insertBefore(t, s) 133 }(window, document, 'script', 134 'https://connect.facebook.net/en_US/fbevents.js'); 135 fbq('init', '
135532491535639227
vendor: 34 bytes, lines 135-136
135'); 136 fbq('track', 'PageView');
137</script>
137 138<noscript><img height="1" width="1" style="display:none" src=https://www.facebook.com/tr?id=532491535639227&ev=PageView&noscript=1 /></noscript> 139<!-- End Meta Pixel Code --> 140<!-- Requested by Nicky, 2023-2-15 --> 141 142<!-- Meta Pixel Code -->
143<script>
vendor: 545 bytes, lines 143-162
143 144 ! function(f, b, e, v, n, t, s) { 145 if (f.fbq) return; 146 n = f.fbq = function() { 147 n.callMethod ? 148 n.callMethod.apply(n, arguments) : n.queue.push(arguments) 149 }; 150 if (!f._fbq) f._fbq = n; 151 n.push = n; 152 n.loaded = !0; 153 n.version = '2.0'; 154 n.queue = []; 155 t = b.createElement(e); 156 t.async = !0; 157 t.src = v; 158 s = b.getElementsByTagName(e)[0]; 159 s.parentNode.insertBefore(t, s) 160 }(window, document, 'script', 161 'https://connect.facebook.net/en_US/fbevents.js'); 162 fbq('init', '
1622469630220087970
vendor: 34 bytes, lines 162-163
162'); 163 fbq('track', 'PageView');
164</script>
164 165<noscript><img height="1" width="1" style="display:none" 166 src="https://www.facebook.com/tr?id=2469630220087970&ev=PageView&noscript=1" /></noscript> 167<!-- End Meta Pixel Code --> 168<!-- Requested by Jessica, 2024-07-15 --> 169 <!-- Google Tag Manager --> <!-- Requested by S.L., 2021-10-5 --> 170
170<script>
vendor: 568 bytes, lines 170-184
170 171 (function(w, d, s, l, i) { 172 w[l] = w[l] || []; 173 w[l].push({ 174 'gtm.start': new Date().getTime(), 175 event: 'gtm.js' 176 }); 177 var f = d.getElementsByTagName(s)[0], 178 j = d.createElement(s), 179 dl = l != 'dataLayer' ? '&l=' + l : ''; 180 j.async = true; 181 j.src = 182 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; 183 f.parentNode.insertBefore(j, f); 184 })(window, document, 'script', 'dataLayer', '
184GTM-T4FPDT7
vendor: 9 bytes, lines 184-185
184'); 185
185</script>
185 186 <!-- End Google Tag Manager --> 187 188 <meta charset="utf-8"> 189 <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> 190 <meta name="description" content="10å¹´æ¿å è«æ¯ç¶é©ï¼åéèªå¯åå» å¹è¨æ¿å è«æ¯æ²»ç師ãå ¨ç·æ¡ç¨ç¾åæ¬å¨CANDELA GentleLASE Pro-755nmæ¿å è«æ¯åå¨ãç«å³ç»è¨å è²»é«é©ï¼äº«åå°æ¥æ¥µç·»è«æ¯é«é©ã"> 191 <meta property="og:image" itemprop="image" content="https://20beauty.com.hk/images/banner/banner-serviceplan-armpit-vline888-03-sq.jpg"> 192 <meta property="og:image:secure_url" itemprop="image" content="https://20beauty.com.hk/images/banner/banner-serviceplan-armpit-vline888-03-sq.jpg"> 193 194 <meta name="google-site-verification" content="qjfNkE9fooaa6SzoG437_dzN2yJepU21NwAHo6qkVCE" /> <!-- Added by S.L., 2021-9-21 --> 195 196 <title>20BEAUTYï½No.1 æ¿å è«æ¯é¦é¸ï½80è¬äººæ¬¡è«æ¯è¦è</title> 197 198 <link href="images/favicon.png" type="image/x-icon" rel="shortcut icon"> 199 <link href="bootstrap/css/bootstrap.min.css" rel="stylesheet" type="text/css"> 200 <link href="css/init.css" rel="stylesheet" type="text/css"> 201 <link href="js/wow/animate.css" rel="stylesheet" type="text/css"> 202 <link href="js/slick/slick.css" rel="stylesheet" type="text/css"> 203 <link href="js/slick/slick-theme.css" rel="stylesheet" type="text/css"> 204 <link href="js/datedropper3/datedropper.css" rel="stylesheet" type="text/css"> 205 <link href="js/fancybox/jquery.fancybox.min.css" rel="stylesheet" type="text/css"> 206 207
207<script src="js/jquery/jquery-2.0.3.min.js" type="text/javascript"></script>
207 208
208<script src="js/essentials/essentials.js" type="text/javascript"></script>
208 209
209<script src="js/wow/wow.min.js" type="text/javascript"></script>
209 210
210<script src="js/slick/slick.min.js" type="text/javascript"></script>
210 211
211<script src="js/datedropper3/datedropper.js" type="text/javascript"></script>
211 212
212<script src="js/hoursController/hoursController.js" type="text/javascript"></script>
212 213
213<script src="js/formOperation/formOperation.js" type="text/javascript"></script>
213 214
214<script src="js/marquee/marquee.js" type="text/javascript"></script>
214 215
215<script src="js/fancybox/jquery.fancybox.min.js" type="text/javascript"></script>
215 216 217 <style type="text/css"> 218 #banner-main { 219 background-image: url(images/banner/banner-homepage-01.jpg); 220 background-size: cover; 221 background-position: center center; 222 height: 345px; 223 } 224 225 /* sm */ 226 @media (min-width: 768px) { 227 #banner-main { 228 background-image: url(images/banner/banner-homepage-01.jpg); 229 background-size: cover; 230 background-position: center center; 231 height: 500px; 232 } 233 } 234 235 /* md */ 236 @media (min-width: 992px) {} 237 238 /* lg */ 239 @media (min-width: 1200px) {} 240 241 .fancybox-content { 242 padding: 0; 243 } 244 </style> 245 246
246<script type="text/javascript"> 247 $(function() { 248 $.essentials({ 249 whatsapp: 'component/icon-whatsapp-web-homepage/', 250 }); 251 $.formOperation(); 252 new WOW().init(); 253 254 $('.xs-slider-container').slick({ 255 arrows: false, 256 dots: true, 257 centerMode: true, 258 centerPadding: '24px', 259 infinite: false, 260 mobileFirst: true, 261 responsive: [{ 262 breakpoint: 480, 263 settings: "unslick" 264 }] 265 }); 266 267 $(document).ajaxStop(function() { 268 headerHeight = $('header').outerHeight(); 269 var stickyBarHeight = $('#sticky-bar').outerHeight(); 270 console.log('ajaxStop Header Height: ' + headerHeight + 'px'); 271 $('#header_comparison').css({ 272 'position': 'sticky', 273 'top': headerHeight + stickyBarHeight, 274 'background-color': 'rgba(255,255,255,1)', 275 // 'border-bottom':'0' 276 }); 277 278 $('#sticky-bar').css({ 279 'position': 'sticky', 280 'top': headerHeight, 281 }); 282 283 $('#sticky-bar .sticky-bar').css({ 284 'backdrop-filter': 'blur(20px)', 285 '-webkit-backdrop-filter': 'blur(20px)', 286 // 'border-bottom':'1px solid rgba(100,100,100,0.15)', 287 'border-bottom': '1px solid rgba(255,255,255,0.25)', 288 // 'border-top':'1px solid rgba(100,100,100,0.15)', 289 // 'background-color':'rgba(255,255,255,0.85)' 290 'background-color': 'rgba(229, 144, 144, 0.4)' 291 }); 292 }); 293 294 $('#banner-slider').slick({ 295 arrow: false, 296 dots: true, 297 autoplay: true, 298 autoplaySpeed: 5000 299 }); 300 301 $('marquee').marquee(); 302 303 // Session Storage (Popup) 304 // if(sessionStorage) { 305 // if(!sessionStorage.getItem('popyet') || sessionStorage.getItem('popyet') !== 'popped'){ 306 // setTimeout(function(){ 307 // $.fancybox.open({ 308 // src: '#pop' 309 // }); 310 // sessionStorage.setItem('popyet', 'popped'); 311 // console.log('"popyet" has just set to "popped"'); 312 // }, 2000); 313 // } 314 // if(sessionStorage.getItem('popyet') == 'popped') { 315 // console.log('The Up is already POPPED'); 316 // } 317 // } 318 319 // Offer Banner 320 // Import JSON 321 function getData(url) { 322 var data; 323 $.ajax({
324 async: false, //thats the trick 325 url: url, 326 dataType: 'json', 327 cache: false, 328 success: function(response) { 329 data = response; 330 } 331 }); 332 return data; 333 } 334 335 var json = getData('js/data/data_other_offer.json'); 336 337 console.log('JSON Data:'); 338 console.log(json); 339 340 // Filling Banners' Content 341 var totalBanner = $('.offer-banner').length; 342 343 for (i = 0; i < totalBanner; i++) { 344 var promotion = $('.offer-banner').eq(i).attr('data-promotion'); 345 console.log("Promotion: " + promotion); 346 347 for (y = 0; y < json.length; y++) { 348 if (json[y]['id'] == promotion) { 349 console.log('Title: ' + json[y]['title']); 350 351 $('.offer-banner').eq(i).attr('href', json[y]['url']); 352 353 if ($('.offer-banner').eq(i).attr('data-grid') == 'sq') { 354 $('.offer-banner').eq(i).css({ 355 'background-image': 'url(' + json[y]['thumb_sq'] + ')' 356 }); 357 } else { 358 $('.offer-banner').eq(i).css({ 359 'background-image': 'url(' + json[y]['thumb'] + ')' 360 }); 361 } 362 363 364 $('.offer-banner').eq(i).find('[data-offer-title]').html(json[y]['title']); 365 $('.offer-banner').eq(i).find('[data-offer-subtitle]').html(json[y]['subtitle']); 366 } 367 } 368 369 console.log('*********'); 370 } 371 372 $.hoursController(); 373 }); 374 </script>
374 375
375<script> 376function isValidEmailAddress(emailAddress) { 377 var pattern = /^([a-z\d!#$%&'*+\-\/=?^_`{|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+(\.[a-z\d!#$%&'*+\-\/=?^_`{|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+)*|"((([ \t]*\r\n)?[ \t]+)?([\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|\\[\x01-\x09\x0b\x0c\x0d-\x7f\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))*(([ \t]*\r\n)?[ \t]+)?")@(([a-z\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|[a-z\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF][a-z\d\-._~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]*[a-z\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])\.)+([a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|[a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF][a-z\d\-._~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]*[a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])\.?$/i; 378 return pattern.test(emailAddress); 379} 380</script>
380<style> 381 .grecaptcha-badge { 382 display: none; 383 } 384</style> 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 <!-- Google Tag Manager (RT / All in one gtg) --> 426
426<script>
vendor: 339 bytes, lines 426-430
426(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 427 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 428 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 429 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 430 })(window,document,'script','dataLayer','
430GTM-KS8K99B
vendor: 3 bytes, line 430
430');
430</script>
430 431 <!-- End Google Tag Manager -->
vendor: 65 bytes, lines 431-432
431 432<script src="https://www.recaptcha.net/recaptcha/api.js?render=
4326Leqgh4iAAAAAJnAOhZNhxjxZiGkkpJyNVB3CD_u
vendor: 23 bytes, line 432
432&lang=zh-TW"></script>
433<script>window.__geetestV4ScriptRequested = true;</script>
vendor: 1 bytes, line 433
433
434<script src="https://static.geetest.com/v4/gt4.js"></script>
434 435 <meta name="facebook-domain-verification" content="m99wyywogztgswc74zw4rtnhz9qelb" /> 436</head> 437 438<body> 439 440 441<!-- Google Tag Manager (noscript) -->
vendor: 68 bytes, lines 441-442
441 442<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
442GTM-MRRW6VS
vendor: 83 bytes, lines 442-443
442" 443height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
444<!-- End Google Tag Manager (noscript) --> 445 <!-- Google Tag Manager (noscript) (RT / All in one gtg) -->
vendor: 73 bytes, lines 445-446
445 446 <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
446GTM-KS8K99B
vendor: 93 bytes, lines 446-448
446" 447 height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 448
448<!-- End Google Tag Manager (noscript) --> 449 450 451 452 453 454 455 <!-- Google Tag Manager (noscript) --> <!-- Requested by S.L., 2021-10-5 -->
vendor: 73 bytes, lines 455-456
455 456 <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
456GTM-T4FPDT7
vendor: 101 bytes, lines 456-458
456" 457 height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 458
458<!-- End Google Tag Manager (noscript) --> 459 460 <main> 461 <!-- Sticky Bar/ --> 462 <section id="sticky-bar" style="z-index: 30;"> 463 <div class="container "> 464 <div class="sticky-bar ha_center_xs pad_xs_s_y pad_sm_m_y"> 465 <marquee class="noto-sans-hk-regular f-2-xs f-3-sm" scrollamount="2">ï¼è¿æ°å¤§çè³ï¼æ°å®¢æ¶é¦æ¬¡è³¼è²·ä»»ä½åè³æ ¼çç¨ï¼å³å¯è³ºå¾50%é«ç¾çç¨å¹å¼åè´ï¼          æ°å®¢æ¶ç¶²ä¸é ä»å³éå ¨ææ·¨ç½å«©è身é«è·ç乿¬¡ã</marquee> 466 </div> 467 </div> 468 </section> 469 <!-- /Sticky Bar --> 470 471 <!-- Banner Section/ --> 472 <section id="banner_container" class="container"> 473 <div id="banner-slider"> 474 <div> 475 <a href="fullface3000"> 476 <picture> 477 <source media="(min-width: 992px)" srcset="images/banner/banner-fullface3000-01-d.jpg"> 478 <source media="(min-width: 768px)" srcset="images/banner/banner-fullface3000-01-d.jpg"> 479 <img src="images/banner/banner-fullface3000-01-m.jpg" class="w-100-xs"> 480 </picture> 481 </a> 482 </div> 483 484 <!-- <div> 485 <a href="lgpromo888"> 486 <picture> 487 <source media="(min-width: 992px)" srcset="images/banner/banner-lgpromo888-01-d.jpg"> 488 <source media="(min-width: 768px)" srcset="images/banner/banner-lgpromo888-01-d.jpg"> 489 <img src="images/banner/banner-lgpromo888-01-m.jpg" class="w-100-xs"> 490 </picture> 491 </a> 492 </div> --> 493 494 495 496 <!-- <div> 497 <a href="promotion-Leg"> 498 <picture> 499 <source media="(min-width: 992px)" srcset="images/banner/banner-promotion-leg-01-d.jpg"> 500 <source media="(min-width: 768px)" srcset="images/banner/banner-promotion-leg-01-d.jpg"> 501 <img src="images/banner/banner-promotion-leg-01-m.jpg" class="w-100-xs"> 502 </picture> 503 </a> 504 </div> --> 505 506 <!-- <div> 507 <a href="promotion-body"> 508 <picture> 509 <source media="(min-width: 992px)" srcset="images/banner/banner-promotion-body-01-d.jpg"> 510 <source media="(min-width: 768px)" srcset="images/banner/banner-promotion-body-01-d.jpg"> 511 <img src="images/banner/banner-promotion-body-01-m.jpg" class="w-100-xs" alt="All In Oneå ¨èº«æ¿å è«æ¯ HK$ 19,800èµ·"> 512 </picture> 513 </a> 514 </div> --> 515 516 <!-- <div> 517 <a href="student_promo"> 518 <picture> 519 <source media="(min-width: 992px)" srcset="images/banner/banner-student_promo-04-d.jpg"> 520 <source media="(min-width: 768px)" srcset="images/banner/banner-student_promo-04-d.jpg"> 521 <img src="images/banner/banner-student_promo-04-m.jpg" class="w-100-xs" alt="å¸çæ¿å è«æ¯å°äº« HK$ 388/6次"> 522 </picture> 523 </a> 524 </div> --> 525 526 <!-- <div> 527 <a href="serviceplan380"> 528 <picture> 529 <source media="(min-width: 992px)" srcset="images/banner/banner-serviceplan380-02-d.jpg"> 530 <source media="(min-width: 768px)" srcset="images/banner/banner-serviceplan380-02-d.jpg"> 531 <img src="images/banner/banner-serviceplan380-02-m.jpg" class="w-100-xs" alt="HK$ 380å ¨èº«ä»»é¸ä¸åé¨ä½"> 532 </picture> 533 </a> 534 </div> --> 535 536 <!-- <div> 537 <a href="NOACNEæç¡çç¨"> 538 <picture> 539 <source media="(min-width: 992px)" srcset="images/banner/banner-offer-noacne-01-d.jpg"> 540 <source media="(min-width: 768px)" srcset="images/banner/banner-offer-noacne-01-d.jpg"> 541 <img src="images/banner/banner-offer-noacne-01-m.jpg" class="w-100-xs" alt="No Acne éåèçç¨ HK$388"> 542 </picture> 543 </a> 544 </div> --> 545 546 <div> 547 <a href="AcneProCure"> 548 <picture> 549 <source media="(min-width: 992px)" srcset="images/banner/banner-acne-pro-cure-01-d.jpg"> 550 <source media="(min-width: 768px)" srcset="images/banner/banner-acne-pro-cure-01-d.jpg"> 551 <img src="images/banner/banner-acne-pro-cure-01-m.jpg" class="w-100-xs"> 552 </picture> 553 </a> 554 </div> 555 </div> 556 </section> 557 <!-- /Banner Section --> 558 559 <!-- <br> --> 560 561 <!-- Promotion/ --> 562 <section> 563 <div class="container"> 564 <div class="ha_center_xs h-separator"> 565 <h3><span class="bg_white pad_xs_m_l pad_xs_m_r">ç²¾é¸åªæ </span></h3> 566 </div> 567 568 <br> 569 570 <div class="xs-slider-container g-container-xs g-tmpcol-4-sm g-gap-6-xs"> 571 <!-- Grid/ --> 572 <a href="armpit-bikinioffer" class="block_xs link_noline link_black grid-item mar_xs_m_b mar_sm_0_b relative g-2-sm banner wow fadeInUp" style="background-image:url(images/banner/banner-bikini-02.jpg);"> 573 <div class="grid-item-mask"> 574 <div class="flex_container_md alignitems_center_md"> 575 <div class="flex_1_md mar_xs_m_r nowrap font_xs_l" data-offer-title>éè ׿¯å å°¼</div> 576 <div class="font_md_l" data-offer-subtitle>æ¿å è«æ¯•HK$ 4,400<small>èµ·</small></div> 577 </div> 578 </div> 579 </a> 580 <!-- /Grid --> 581 582 <!-- Grid/ --> 583 <a href="offer-thermatrix" class="block_xs grid-item g-2-sm relative mar_xs_m_b mar_sm_0_b banner link_noline link_black wow fadeInUp" data-wow-delay="0.1s" style="background-image:url(images/banner/banner-offer-thermatrix-01-d.jpg);"> 584 <div class="grid-item-mask"> 585 <div class="flex_container_md alignitems_center_md"> 586 <div class="flex_1_md mar_xs_m_r nowrap font_xs_l" data-offer-title>
586AIè åBBåçæ§</div> 587 <div class="font_md_l" data-offer-subtitle>HK$ 388</div> 588 </div> 589 </div> 590 </a> 591 <!-- /Grid --> 592 593 <!-- Grid/ --> 594 <!-- <a href="javascript:void(0);" class="block_xs link_noline link_black grid-item mar_xs_m_b mar_sm_0_b relative g-2-sm banner offer-banner wow fadeInUp" data-wow-delay="0.2s" data-promotion="promotion-arm"> 595 <div class="grid-item-mask"> 596 <div class="flex_container_md alignitems_center_md"> 597 <div class="flex_1_md mar_xs_m_r nowrap font_xs_l" data-offer-title>Title</div> 598 <div class="font_md_l" data-offer-subtitle>Subtitle</div> 599 </div> 600 </div> 601 </a> --> 602 <!-- /Grid --> 603 604 <!-- Grid/ --> 605 <!-- <a href="javascript:void(0);" class="block_xs link_noline link_black grid-item mar_xs_m_b mar_sm_0_b relative g-2-sm banner offer-banner wow fadeInUp" data-wow-delay="0.3s" data-promotion="promotion-leg"> 606 <div class="grid-item-mask"> 607 <div class="flex_container_md alignitems_center_md"> 608 <div class="flex_1_md mar_xs_m_r nowrap font_xs_l" data-offer-title>Title</div> 609 <div class="font_md_l" data-offer-subtitle>Subtitle</div> 610 </div> 611 </div> 612 </a> --> 613 <!-- /Grid --> 614 </div> 615 </div> 616 </section> 617 <!-- /Promotion --> 618 619 <br> 620 621 <!-- Movie Section/ --> 622 <!-- <section> 623 <div class="container"> 624 <div class="ha_center_xs h-separator"> 625 <div class="inblk_xs bg_white"> 626 <h3><span class="bg_white pad_xs_m_l pad_xs_m_r">IN LOVE WITH YOU</span></h3> 627 <h3><span class="bg_white pad_xs_m_l pad_xs_m_r">å æ·¨ç¾è ç«äº®å¦å</span></h3> 628 </div> 629 </div> 630 631 <div class="pad_xs_xxl_y"> 632 <video poster="movies/branding.jpg" controls playsinline class="w-100-xs"> 633 <source src="movies/branding-03.mp4" type="video/mp4"> 634 Your browser does not support the video tag. 635 </video> 636 </div> 637 </div> 638 </section> --> 639 <!-- /Movie Section --> 640 641 <!-- <br> --> 642 643 <!-- Category/ --> 644 <section> 645 <div class="container"> 646 <div class="ha_center_xs h-separator"> 647 <h3><span class="bg_white pad_xs_m_l pad_xs_m_r">æ¿å è«æ¯æ¶è²»</span></h3> 648 </div> 649 650 <br> 651 <div class="g-container-xs g-tmpcol-3-sm g-gap-6-xs"> 652 <!-- Grid/ --> 653 <a href="serviceplan-face" class="relative link_noline link_black block_xs grid-item banner" style="background-image:url(images/banner/banner-face-01.jpg);"> 654 <div class="grid-item-mask flex_container_xs alignitems_center_xs"> 655 <div class="wow fadeIn"> 656 <div class="font_md_l">èé¨</div> 657 <div class="font_xs_s">ä¸å</div> 658 </div> 659 <div class="wow fadeInUp" data-wow-delay="0.15s"> 660 <div class="font_md_xl">HK$ 3,000</div> 661 </div> 662 </div> 663 </a> 664 <!-- /Grid --> 665 666 <!-- Grid/ --> 667 <a href="serviceplan-hairline" class="grid-item relative block_xs link_noline link_black banner" style="background-image:url(images/banner/banner-hairline-01.jpg);"> 668 <div class="grid-item-mask flex_container_xs alignitems_center_xs"> 669 <div class="wow fadeIn"> 670 <div class="font_md_l">é«®ç·</div> 671 <div class="font_xs_s">髮鬢</div> 672 </div> 673 <div class="wow fadeInUp" data-wow-delay="0.15s"> 674 <div class="font_md_xl">HK$ 4,500</div> 675 676 </div> 677 </div> 678 </a> 679 <!-- /Grid --> 680 681 <!-- Grid/ --> 682 <a href="serviceplan-armpit" class="grid-item relative block_xs link_noline link_black banner" style="background-image:url(images/banner/banner-armpit-03.jpg);"> 683 <div class="grid-item-mask flex_container_xs alignitems_center_xs"> 684 <div class="wow fadeIn"> 685 <div class="font_md_l">éè </div> 686 <div class="font_xs_s">æ¥çåªæ </div> 687 </div> 688 <div class="wow fadeInUp" data-wow-delay="0.15s"> 689 <div class="font_md_xl">HK$ 888</div> 690 </div> 691 </div> 692 </a> 693 <!-- /Grid --> 694 695 <!-- Grid/ --> 696 <a href="serviceplan-hand" class="grid-item relative block_xs link_noline link_black banner" style="background-image:url(images/banner/banner-hand-01.jpg);"> 697 <div class="grid-item-mask flex_container_xs alignitems_center_xs"> 698 <div class="wow fadeIn"> 699 <div class="font_md_l">æé¨</div> 700 <div class="font_xs_s">ææ</div> 701 </div> 702 <div class="wow fadeInUp" data-wow-delay="0.15s"> 703 <div class="font_md_xl">HK$ 4,000</div> 704 </div> 705 </div> 706 </a> 707 <!-- /Grid --> 708 709 <!-- Grid/ --> 710 <a href="serviceplan-chest" class="grid-item relative block_xs link_noline link_black banner" style="background-image:url(images/banner/banner-chest-01.jpg);"> 711 <div class="grid-item-mask flex_container_xs alignitems_center_xs"> 712 <div class="wow fadeIn"> 713 <div class="font_md_l">è¸è ¹</div> 714 <div class="font_xs_s">ä¸è ¹ç·</div> 715 </div> 716 <div class="wow fadeInUp" data-wow-delay="0.15s"> 717 <div class="font_md_xl">
717HK$ 3,800</div> 718 </div> 719 </div> 720 </a> 721 <!-- /Grid --> 722 723 <!-- Grid/ --> 724 <a href="serviceplan-shoulder" class="grid-item relative block_xs link_noline link_black banner" style="background-image:url(images/banner/banner-shoulder-01.jpg);"> 725 <div class="grid-item-mask flex_container_xs alignitems_center_xs"> 726 <div class="wow fadeIn"> 727 <div class="font_md_l">è©è</div> 728 <div class="font_xs_s">è©è</div> 729 </div> 730 <div class="wow fadeInUp" data-wow-delay="0.15s"> 731 <div class="font_md_xl">HK$ 3,800</div> 732 </div> 733 </div> 734 </a> 735 <!-- /Grid --> 736 737 <!-- Grid/ --> 738 <a href="serviceplan-bikini" class="grid-item relative block_xs link_noline link_black banner" style="background-image:url(images/banner/banner-bikini-01.jpg);"> 739 <div class="grid-item-mask flex_container_xs alignitems_center_xs"> 740 <div class="wow fadeIn"> 741 <div class="font_md_l">æ¯å å°¼</div> 742 <div class="font_xs_s">æ¯å 尼橫ä½</div> 743 </div> 744 <div class="wow fadeInUp" data-wow-delay="0.15s"> 745 <div class="font_md_xl">HK$ 5,500</div> 746 </div> 747 </div> 748 </a> 749 <!-- /Grid --> 750 751 <!-- Grid/ --> 752 <a href="serviceplan-foot" class="grid-item relative block_xs link_noline link_black banner" style="background-image:url(images/banner/banner-foot-01.jpg);"> 753 <div class="grid-item-mask flex_container_xs alignitems_center_xs"> 754 <div class="wow fadeIn"> 755 <div class="font_md_l">è ³é¨</div> 756 <div class="font_xs_s">è ³æ¿è</div> 757 </div> 758 <div class="wow fadeInUp" data-wow-delay="0.15s"> 759 <div class="font_md_xl">HK$ 4,000</div> 760 </div> 761 </div> 762 </a> 763 <!-- /Grid --> 764 765 <!-- Grid/ --> 766 <a href="serviceplan-body" class="grid-item relative block_xs link_noline link_black banner" style="background-image:url(images/banner/banner-body-01.jpg);"> 767 <div class="grid-item-mask flex_container_xs alignitems_center_xs"> 768 <div class="wow fadeIn"> 769 <div class="font_md_l">å ¨èº«åå ¨è</div> 770 <div class="font_xs_s">æ¥çåªæ </div> 771 </div> 772 <div class="wow fadeInUp" data-wow-delay="0.15s"> 773 <div class="font_md_xl">HK$ 44,000</div> 774 </div> 775 </div> 776 </a> 777 <!-- /Grid --> 778 </div> 779 780 <div class="home-content"> 781 <ul> 782 <li><a href="https://20beauty.com.hk/promotion-gp">ç¾å®¹</a></li> 783 <li><a href="https://20beauty.com.hk/promotion-gp">é«ç¾</a></li> 784 <li><a href="https://20beauty.com.hk/promotion-gp">ç®èä¿é¤</a></li> 785 <li><a href="https://20beauty.com.hk/promotion-gp">ç¾å®¹æ¨ä»</a></li> 786 <li><a href="https://20beauty.com.hk/promotion-gp">ç¾å®¹æ¨è¦</a></li> 787 <li><a href="https://20beauty.com.hk/promotion-gp">ç¾å®¹é¢æ¨ä»</a></li> 788 <li><a href="https://20beauty.com.hk/promotion-gp">ç¾å®¹é¢éé好</a></li> 789 <li><a href="https://20beauty.com.hk/promotion-gp">ç¾å®¹é¢ééå¹³</a></li> 790 <li><a href="https://20beauty.com.hk/promotion-gp">ç¾å®¹é¢ééæµ</a></li> 791 <li><a href="https://20beauty.com.hk/promotion-gp">ç¾å®¹é¢å¹³</a></li> 792 <li><a href="https://20beauty.com.hk/promotion-gp">ç¾å®¹é¢æµ</a></li> 793 <li><a href="https://20beauty.com.hk/promotion-gp">ç¾å®¹é¢å¥½</a></li> 794 <li><a href="https://20beauty.com.hk/promotion-gp">é«ç¾éé好</a></li> 795 <li><a href="https://20beauty.com.hk/promotion-gp">é«ç¾ééå¹³</a></li> 796 <li><a href="https://20beauty.com.hk/promotion-gp">é«ç¾ééæµ</a></li> 797 <li><a href="https://20beauty.com.hk/promotion-gp">é«ç¾æ¨è¦</a></li> 798 <li><a href="https://20beauty.com.hk/promotion-gp">é«ç¾æ¨ä»</a></li> 799 <li><a href="https://20beauty.com.hk/promotion-gp">ç¾å®¹åªæ </a></li> 800 <li><a href="https://20beauty.com.hk/promotion-gp">facial</a></li> 801 <li><a href="https://20beauty.com.hk/promotion-gp">facialåªæ </a></li> 802 <li><a href="https://20beauty.com.hk/promotion-gp">facialæ¨è¦</a></li> 803 <li><a href="https://20beauty.com.hk/promotion-gp">facialæ¨ä»</a></li> 804 <li><a href="https://20beauty.com.hk/promotion-gp">æ°å¨è·è</a></li> 805 <li><a href="https://20beauty.com.hk/promotion-gp">æ°å¨æ¥æç®è</a></li> 806 <li><a href="https://20beauty.com.hk/promotion-gp">ç®èä¿é¤</a></li> 807 <li><a href="https://20beauty.com.hk/promotion-gp">è·èæå¸</a></li> 808 <li><a href="https://20beauty.com.hk/promotion-gp">ä¿é¤æå¸</a></li> 809 <li><a href="https://20beauty.com.hk/promotion-gp">æç¡</a></li> 810 <li><a href="https://20beauty.com.hk/promotion-gp">æç¡å°</a></li> 811 <li><a href="https://20beauty.com.hk/promotion-gp">ç²åº</a></li> 812 <li><a href="https://20beauty.com.hk/promotion-gp">é»é </a></li> 813 <li><a href="https://20beauty.com.hk/promotion-gp">æ¸ é»é </a></li> 814 <li><a href="https://20beauty.com.hk/promotion-gp">å£ç½©è</a></li> 815 <li><a href="https://20beauty.com.hk/promotion-gp">æ¥æè£æ°´</a></li> 816 <li><a href="https://20beauty.com.hk/promotion-gp">ç®èæ¥æ</a></li> 817 <li><a href="https://20beauty.com.hk/promotion-gp">ç³é ç¡</a></li> 818 <li><a href="https://20beauty.com.hk/promotion-gp">å»ç¤</a></li> 819 <li><a href="https://20beauty.com.hk/promotion-gp">æ²¹æ§ç®è</a></li> 820 <li><a href="https://20beauty.com.hk/promotion-gp">ä¹¾æ§ç®è</a></li> 821 <li><a href="https://20beauty.com.hk/promotion-gp">æ¯åç²å¤§</a></li> 822 <li><a href="https://20beauty.com.hk/promotion-gp">ç®èä¹¾ç¥</a></li> 823 824 <li><a href="https://20beauty.com.hk/offer-thermatrix">ç¾å®¹</a></li> 825 <li><a href="https://20beauty.com.hk/offer-thermatrix">é«ç¾</a></li> 826 <li><a href="https://20beauty.com.hk/offer-thermatrix">ç®èä¿é¤</a></li> 827 <li><a href="https://20beauty.com.hk/offer-thermatrix">ç¾å®¹æ¨ä»</a></li> 828 <li><a href="https://20beauty.com.hk/offer-thermatrix">ç¾å®¹æ¨è¦</a></li> 829 <li><a href="https://20beauty.com.hk/offer-thermatrix">ç¾å®¹é¢æ¨è¦</a></li> 830 <li><a href="https://20beauty.com.hk/offer-thermatrix">ç¾å®¹é¢æ¨ä»</a></li> 831 <li><a href="https://20beauty.com.hk/offer-thermatrix">ç¾å®¹é¢éé好</a></li> 832 <li><a href="https://20beauty.com.hk/offer-thermatrix">ç¾å®¹é¢å¹³</a></li> 833 <li><a href="https://20beauty.com.hk/offer-thermatrix">ç¾å®¹é¢æµ</a></li> 834 <li><a href="https://20beauty.com.hk/offer-thermatrix">ç¾å®¹é¢å¥½</a></li> 835 <li><a href="https://20beauty.com.hk/offer-thermatrix">é«ç¾éé好</a></li> 836 <li><a href="https://20beauty.com.hk/offer-thermatrix">é«ç¾ééå¹³</a></li> 837 <li><a href="https://20beauty.com.hk/offer-thermatrix">é«ç¾ééæµ</a></li> 838 <li><a href="https://20beauty.com.hk/offer-thermatrix">é«ç¾æ¨è¦</a></li> 839 <li><a href="https://20beauty.com.hk/offer-thermatrix">é«ç¾æ¨ä»</a></li> 840 <li><a href="https://20beauty.com.hk/offer-thermatrix">ç¾å®¹åªæ </a></li> 841 <li><a href="https://20beauty.com.hk/offer-thermatrix">facial</a></li> 842 <li><a href="https://20beauty.com.hk/offer-thermatrix">facialåªæ </a></li> 843 <li><a href="https://20beauty.com.hk/offer-thermatrix">facialæ¨è¦</a></li> 844 <li><a href="https://20beauty.com.hk/offer-thermatrix">facialæ¨ä»</a></li> 845 <li><a href="https://20beauty.com.hk/offer-thermatrix">æ°å¨è·è</a></li> 846 <li><a href="https://20beauty.com.hk/offer-thermatrix">ç®èä¿é¤</a></li> 847 <li><a href="https://20beauty.com.hk/offer-thermatrix">æ°å¨æ¥æç®è</a></li> 848 <li><a href="https://20beauty.com.hk/offer-thermatrix">è·èæå¸</a></li> 849 <li><a href="https://20beauty.com.hk/offer-thermatrix">ä¿é¤æå¸</a></li> 850 <li><a href="https://20beauty.com.hk/offer-thermatrix">骨è å</a></li> 851 <li><a href="https://20beauty.com.hk/offer-thermatrix">è å</a></li> 852 <li><a href="https://20beauty.com.hk/offer-thermatrix">æç¡å°</a></li> 853 <li><a href="https://20beauty.com.hk/offer-thermatrix">ç´°ç´</a></li> 854 <li><a href="https://20beauty.com.hk/offer-thermatrix">é»ç¼å</a></li> 855 <li><a href="https://20beauty.com.hk/offer-thermatrix">ç¼è¢</a></li> 856 <li><a href="https://20beauty.com.hk/offer-thermatrix">æ¯åç²å¤§</a></li> 857 <li><a href="https://20beauty.com.hk/offer-thermatrix">å»å°</a></li> 858 <li><a href="https://20beauty.com.hk/offer-thermatrix">ç¤ç</a></li> 859 <li><a href="https://20beauty.com.hk/offer-thermatrix">å»ç¤</a></li> 860 <li><a href="https://20beauty.com.hk/offer-thermatrix">å»ç¼è¢</a></li> 861 <li><a href="https://20beauty.com.hk/offer-thermatrix">ç²åº</a></li> 862 <li><a href="https://20beauty.com.hk/offer-thermatrix">ç¾ç½</a></li> 863 <li><a href="https://20beauty.com.hk/offer-thermatrix">è·è</a></li> 864 865 <li><a href="https://20beauty.com.hk/æ¥µæ½¤æ°´å æ³¢">ç¾å®¹é¢æ¨è¦</a></li> 866 <li><a href="https://20beauty.com.hk/æ¥µæ½¤æ°´å æ³¢">ç®èä¿é¤</a></li> 867 <li><a href="https://20beauty.com.hk/æ¥µæ½¤æ°´å æ³¢">ç¾å®¹æ¨ä»</a></li> 868 <li><a href="https://20beauty.com.hk/æ¥µæ½¤æ°´å æ³¢">ç¾å®¹æ¨è¦</a></li> 869 <li><a href="https://20beauty.com.hk/æ¥µæ½¤æ°´å æ³¢">ç¾å®¹é¢æ¨ä»</a></li> 870 <li><a href="https://20beauty.com.hk/æ¥µæ½¤æ°´å æ³¢">ç¾å®¹é¢éé好</a></li> 871 <li><a href="https://20beauty.com.hk/æ¥µæ½¤æ°´å æ³¢">ç¾å®¹é¢å¹³</a></li> 872 <li><a href="https://20beauty.com.hk/æ¥µæ½¤æ°´å æ³¢">ç¾å®¹é¢æµ</a></li> 873 <li><a href="https://20beauty.com.hk/æ¥µæ½¤æ°´å æ³¢">ç¾å®¹é¢å¥½</a></li> 874 <li><a href="https://20beauty.com.hk/æ¥µæ½¤æ°´å æ³¢">é«ç¾éé好</a></li> 875 <li><a href="https://20beauty.com.hk/æ¥µæ½¤æ°´å æ³¢">é«ç¾ééå¹³</a></li> 876 <li><a href="https://20beauty.com.hk/æ¥µæ½¤æ°´å æ³¢">é«ç¾ééæµ</a></li> 877 <li><a href="https://20beauty.com.hk/æ¥µæ½¤æ°´å æ³¢">é«ç¾æ¨è¦</a></li> 878 <li><a href="https://20beauty.com.hk/æ¥µæ½¤æ°´å æ³¢">é«ç¾æ¨ä»</a></li> 879 <li><a href="https://20beauty.com.hk/æ¥µæ½¤æ°´å æ³¢">ç¾å®¹åªæ </a></li> 880 <li><a href="https://20beauty.com.hk/æ¥µæ½¤æ°´å æ³¢">facial</a></li> 881 <li><a href="https://20beauty.com.hk/æ¥µæ½¤æ°´å æ³¢">facialåªæ </a></li> 882 <li><a href="https://20beauty.com.hk/æ¥µæ½¤æ°´å æ³¢">facialæ¨è¦</a></li> 883 <li><a href="https://20beauty.com.hk/æ¥µæ½¤æ°´å æ³¢">facialæ¨ä»</a></li> 884 <li><a href="https://20beauty.com.hk/æ¥µæ½¤æ°´å æ³¢">æ°å¨è·è</a></li> 885 <li><a href="https://20beauty.com.hk/æ¥µæ½¤æ°´å æ³¢">ç®èä¿é¤</a></li> 886 <li><a href="https://20beauty.com.hk/æ¥µæ½¤æ°´å æ³¢">è·èæå¸</a></li> 887 <li><a href="https://20beauty.com.hk/æ¥µæ½¤æ°´å æ³¢">æ¥æè£æ°´</a></li> 888 <li><a href="https://20beauty.com.hk/æ¥µæ½¤æ°´å æ³¢">ç®èæ¥æ</a></li> 889 <li><a href="https://20beauty.com.hk/æ¥µæ½¤æ°´å æ³¢">æ¯åç²å¤§</a></li> 890 <li><a href="https://20beauty.com.hk/æ¥µæ½¤æ°´å æ³¢">æ·±å±¤ä¿æ¿</a></li> 891 <li><a href="https://20beauty.com.hk/æ¥µæ½¤æ°´å æ³¢">ä¿æ¿</a></li> 892 <li><a href="https://20beauty.com.hk/æ¥µæ½¤æ°´å æ³¢">æç¡</a></li> 893 <li><a href="https://20beauty.com.hk/æ¥µæ½¤æ°´å æ³¢">æç¡å°</a></li> 894 <li><a href="https://20beauty.com.hk/æ¥µæ½¤æ°´å æ³¢">ç²åº</a></li> 895 <li><a href="https://20beauty.com.hk/æ¥µæ½¤æ°´å æ³¢">é»é </a></li> 896 <li><a href="https://20beauty.com.hk/æ¥µæ½¤æ°´å æ³¢">å»å°</a></li> 897 <li><a href="https://20beauty.com.hk/æ¥µæ½¤æ°´å æ³¢">æ¸ é»é </a></li> 898 <li><a href="https://20beauty.com.hk/æ¥µæ½¤æ°´å æ³¢">å£ç½©è</a></li> 899 <li><a href="https://20beauty.com.hk/æ¥µæ½¤æ°´å æ³¢">ç³é ç¡</a></li> 900 <li><a href="https://20beauty.com.hk/æ¥µæ½¤æ°´å æ³¢">ç¤ç</a></li> 901 <li><a href="https://20beauty.com.hk/æ¥µæ½¤æ°´å æ³¢">å»ç¤</a></li> 902 <li><a href="https://20beauty.com.hk/æ¥µæ½¤æ°´å æ³¢">ç¾å®¹</a></li> 903 <li><a href="https://20beauty.com.hk/æ¥µæ½¤æ°´å æ³¢">é«ç¾</a></li> 904 <li><a href="https://20beauty.com.hk/æ¥µæ½¤æ°´å æ³¢">ç¾ç½</a></li> 905 <li><a href="https://20beauty.com.hk/æ¥µæ½¤æ°´å æ³¢">廿</a></li> 906 907 <li><a href="https://20beauty.com.hk/promotion-armpit">æ°¸ä¹ æ¿å è«æ¯</a></li> 908 <li><a href="https://20beauty.com.hk/promotion-armpit">馿¸¯è«æ¯</a></li> 909 <li><a href="https://20beauty.com.hk/promotion-armpit">è«æ¯åªæ </a></li> 910 <li><a href="https://20beauty.com.hk/promotion-armpit">è«æ¯promotion</a></li> 911 <li><a href="https://20beauty.com.hk/promotion-armpit">æ°¸ä¹ è«æ¯éé好</a></li> 912 <li><a href="https://20beauty.com.hk/promotion-armpit">è«æ¯éé好</a></li> 913 <li><a href="https://20beauty.com.hk/promotion-armpit"
913>è«æ¯ééå¹³</a></li> 914 <li><a href="https://20beauty.com.hk/promotion-armpit">è«æ¯ééæµ</a></li> 915 <li><a href="https://20beauty.com.hk/promotion-armpit">è«æ¯å¹³</a></li> 916 <li><a href="https://20beauty.com.hk/promotion-armpit">è«æ¯å¹é¢</a></li> 917 <li><a href="https://20beauty.com.hk/promotion-armpit">æ¿å è«æ¯éé好</a></li> 918 <li><a href="https://20beauty.com.hk/promotion-armpit">å è²»é«é©</a></li> 919 <li><a href="https://20beauty.com.hk/promotion-armpit">è«æ¯é«é©</a></li> 920 <li><a href="https://20beauty.com.hk/promotion-armpit">è«æ¯æ¨è¦</a></li> 921 <li><a href="https://20beauty.com.hk/promotion-armpit">è«æ¯æ¨ä»</a></li> 922 <li><a href="https://20beauty.com.hk/promotion-armpit">æ¿å è«æ¯æ¨ä»</a></li> 923 <li><a href="https://20beauty.com.hk/promotion-armpit">æ¿å è«æ¯æ¨è¦</a></li> 924 <li><a href="https://20beauty.com.hk/promotion-armpit">è«æ¯</a></li> 925 <li><a href="https://20beauty.com.hk/promotion-armpit">餿¯</a></li> 926 <li><a href="https://20beauty.com.hk/promotion-armpit">忝</a></li> 927 <li><a href="https://20beauty.com.hk/promotion-armpit">æ¿å è«æ¯</a></li> 928 <li><a href="https://20beauty.com.hk/promotion-armpit">æ¿å 餿¯</a></li> 929 <li><a href="https://20beauty.com.hk/promotion-armpit">èè </a></li> 930 <li><a href="https://20beauty.com.hk/promotion-armpit">èè è«æ¯</a></li> 931 <li><a href="https://20beauty.com.hk/promotion-armpit">éè è«æ¯</a></li> 932 <li><a href="https://20beauty.com.hk/promotion-armpit">è ä¸è«æ¯</a></li> 933 <li><a href="https://20beauty.com.hk/promotion-armpit">underarmè«æ¯</a></li> 934 <li><a href="https://20beauty.com.hk/promotion-armpit">underarm</a></li> 935 <li><a href="https://20beauty.com.hk/promotion-armpit">å¸çåªæ </a></li> 936 <li><a href="https://20beauty.com.hk/promotion-armpit">å¸çè</a></li> 937 <li><a href="https://20beauty.com.hk/promotion-armpit">å ¨èº«è«æ¯</a></li> 938 <li><a href="https://20beauty.com.hk/promotion-armpit">æ°¸ä¹ è«æ¯éé好</a></li> 939 <li><a href="https://20beauty.com.hk/promotion-armpit">æ°¸ä¹ è«æ¯ééæµ</a></li> 940 <li><a href="https://20beauty.com.hk/promotion-armpit">æ°¸ä¹ è«æ¯ééå¹³</a></li> 941 <li><a href="https://20beauty.com.hk/promotion-armpit">æ°¸ä¹ è«æ¯é鿍è¦</a></li> 942 <li><a href="https://20beauty.com.hk/promotion-armpit">æ°¸ä¹ è«æ¯é鿍ä»</a></li> 943 944 <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">æ°¸ä¹ æ¿å è«æ¯</a></li> 945 <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">馿¸¯è«æ¯</a></li> 946 <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">è«æ¯åªæ </a></li> 947 <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">è«æ¯promotion</a></li> 948 <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">æ°¸ä¹ è«æ¯éé好</a></li> 949 <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">è«æ¯éé好</a></li> 950 <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">è«æ¯å¹é¢</a></li> 951 <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">æ¿å è«æ¯éé好</a></li> 952 <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">å è²»é«é©</a></li> 953 <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">è«æ¯ééæµ</a></li> 954 <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">è«æ¯é«é©</a></li> 955 <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">è«æ¯æ¨è¦</a></li> 956 <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">è«æ¯æ¨ä»</a></li> 957 <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">è«æ¯</a></li> 958 <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">餿¯</a></li> 959 <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">忝</a></li> 960 <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">æ¿å è«æ¯</a></li> 961 <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">æ¿å 餿¯</a></li> 962 <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">èè </a></li> 963 <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">èè è«æ¯</a></li> 964 <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">éè è«æ¯</a></li> 965 <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">è ä¸è«æ¯</a></li> 966 <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">underarmè«æ¯</a></li> 967 <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">underarm</a></li> 968 <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">vline</a></li> 969 <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">v-line</a></li> 970 <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">vlineè«æ¯</a></li> 971 <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">æ¯å å°¼</a></li> 972 <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">æ¯å å°¼è«æ¯</a></li> 973 <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">è«æ¯å å°¼æ¯</a></li> 974 <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">bikiniè«æ¯</a></li> 975 <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">è«bikini</a></li> 976 <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">ç§èè«æ¯</a></li> 977 <li><a href="https://20beauty.com.hk/serviceplan-armpit-vline888">è«é°æ¯</a></li> 978 979 <li><a href="https://20beauty.com.hk/studentoffer">å¸çè«æ¯</a></li> 980 <li><a href="https://20beauty.com.hk/studentoffer">å¸çåªæ </a></li> 981 <li><a href="https://20beauty.com.hk/studentoffer">å¸çè</a></li> 982 <li><a href="https://20beauty.com.hk/studentoffer">æ°¸ä¹ æ¿å è«æ¯</a></li> 983 <li><a href="https://20beauty.com.hk/studentoffer">馿¸¯è«æ¯</a></li> 984 <li><a href="https://20beauty.com.hk/studentoffer">è«æ¯åªæ </a></li> 985 <li><a href="https://20beauty.com.hk/studentoffer">è«æ¯promotion</a></li> 986 <li><a href="https://20beauty.com.hk/studentoffer">æ°¸ä¹ è«æ¯éé好</a></li> 987 <li><a href="https://20beauty.com.hk/studentoffer">è«æ¯éé好</a></li> 988 <li><a href="https://20beauty.com.hk/studentoffer">è«æ¯å¹³</a></li> 989 <li><a href="https://20beauty.com.hk/studentoffer">è«æ¯å¹é¢</a></li> 990 <li><a href="https://20beauty.com.hk/studentoffer">æ¿å è«æ¯éé好</a></li> 991 <li><a href="https://20beauty.com.hk/studentoffer">æ¿å è«æ¯çç¨</a></li> 992 <li><a href="https://20beauty.com.hk/studentoffer">å è²»é«é©</a></li> 993 <li><a href="https://20beauty.com.hk/studentoffer">ç¾å®¹æ¨ä»</a></li> 994 <li><a href="https://20beauty.com.hk/studentoffer">ç¾å®¹æ¨è¦</a></li> 995 <li><a href="https://20beauty.com.hk/studentoffer">ç¾å®¹é¢æ¨è¦</a></li> 996 <li><a href="https://20beauty.com.hk/studentoffer">ç¾å®¹é¢éé好</a></li> 997 <li><a href="https://20beauty.com.hk/studentoffer">ç¾å®¹é¢åªæ </a></li> 998 <li><a href="https://20beauty.com.hk/studentoffer">è«æ¯æ¨è¦</a></li> 999 <li><a href="https://20beauty.com.hk/studentoffer">è«æ¯æ¨ä»</a></li> 1000 <li><a href="https://20beauty.com.hk/studentoffer">è«æ¯</a></li> 1001 <li><a href="https://20beauty.com.hk/studentoffer">æ¿å è«æ¯</a></li> 1002 <li><a href="https://20beauty.com.hk/studentoffer">èè è«æ¯</a></li> 1003 <li><a href="https://20beauty.com.hk/studentoffer">éè è«æ¯</a></li> 1004 <li><a href="https://20beauty.com.hk/studentoffer">underarmè«æ¯</a></li> 1005 <li><a href="https://20beauty.com.hk/studentoffer">underarm</a></li> 1006 <li><a href="https://20beauty.com.hk/studentoffer">v-line</a></li> 1007 <li><a href="https://20beauty.com.hk/studentoffer">vlineè«æ¯</a></li> 1008 <li><a href="https://20beauty.com.hk/studentoffer">æ¯å å°¼</a></li> 1009 <li><a href="https://20beauty.com.hk/studentoffer">æ¯å å°¼è«æ¯</a></li> 1010 <li><a href="https://20beauty.com.hk/studentoffer">è«æ¯å å°¼æ¯</a></li> 1011 <li><a href="https://20beauty.com.hk/studentoffer">bikiniè«æ¯</a></li> 1012 <li><a href="https://20beauty.com.hk/studentoffer">è«bikini</a></li> 1013 <li><a href="https://20beauty.com.hk/studentoffer">ç§èè«æ¯</a></li> 1014 <li><a href="https://20beauty.com.hk/studentoffer">è«é°æ¯</a></li> 1015 <li><a href="https://20beauty.com.hk/studentoffer">è«ææ¯</a></li> 1016 1017 <li><a href="https://20beauty.com.hk/facialpromotion">ç®èä¿é¤</a></li> 1018 <li><a href="https://20beauty.com.hk/facialpromotion">ç¾å®¹æ¨ä»</a></li> 1019 <li><a href="https://20beauty.com.hk/facialpromotion">ç¾å®¹é¢æ¨è¦</a></li> 1020 <li><a href="https://20beauty.com.hk/facialpromotion">ç¾å®¹é¢æ¨ä»</a></li> 1021 <li><a href="https://20beauty.com.hk/facialpromotion">ç¾å®¹é¢éé好</a></li> 1022 <li><a href="https://20beauty.com.hk/facialpromotion">æ°å¨è·è</a></li> 1023 <li><a href="https://20beauty.com.hk/facialpromotion">è·èæå¸</a></li> 1024 <li><a href="https://20beauty.com.hk/facialpromotion">æç¡</a></li> 1025 <li><a href="https://20beauty.com.hk/facialpromotion">æç¡å°</a></li> 1026 <li><a href="https://20beauty.com.hk/facialpromotion">ç²åº</a></li> 1027 <li><a href="https://20beauty.com.hk/facialpromotion">é»é </a></li> 1028 <li><a href="https://20beauty.com.hk/facialpromotion">å»å°</a></li> 1029 <li><a href="https://20beauty.com.hk/facialpromotion">æ¸ é»é </a></li> 1030 <li><a href="https://20beauty.com.hk/facialpromotion">å£ç½©è</a></li> 1031 <li><a href="https://20beauty.com.hk/facialpromotion">ç³é ç¡</a></li> 1032 <li><a href="https://20beauty.com.hk/facialpromotion">ç¤ç</a></li> 1033 <li><a href="https://20beauty.com.hk/facialpromotion">å»ç¤</a></li> 1034 <li><a href="https://20beauty.com.hk/facialpromotion">æ²¹æ§ç®è</a></li> 1035 <li><a href="https://20beauty.com.hk/facialpromotion">ä¹¾æ§ç®è</a></li> 1036 <li><a href="https://20beauty.com.hk/facialpromotion">æ¯åç²å¤§</a></li> 1037 <li><a href="https://20beauty.com.hk/facialpromotion">ç®èä¹¾ç¥</a></li> 1038 <li><a href="https://20beauty.com.hk/facialpromotion">ç®èæ¥æ</a></li> 1039 <li><a href="https://20beauty.com.hk/facialpromotion">æ¥æè£æ°´</a></li> 1040 <li><a href="https://20beauty.com.hk/facialpromotion">ä¿æ¿</a></li> 1041 <li><a href="https://20beauty.com.hk/facialpromotion">æ·±å±¤ä¿æ¿</a></li> 1042 <li><a href="https://20beauty.com.hk/facialpromotion">è·è</a></li> 1043 <li><a href="https://20beauty.com.hk/facialpromotion">ç¾å®¹</a></li> 1044 <li><a href="https://20beauty.com.hk/facialpromotion">é«ç¾</a></li> 1045 <li><a href="https://20beauty.com.hk/facialpromotion">ç¾ç½</a></li> 1046 <li><a href="https://20beauty.com.hk/facialpromotion">廿</a></li> 1047 <li><a href="https://20beauty.com.hk/facialpromotion">éæ</a></li> 1048 <li><a href="https://20beauty.com.hk/facialpromotion">æ´é¢</a></li> 1049 <li><a href="https://20beauty.com.hk/facialpromotion">facialæ¨ä»</a></li> 1050 <li><a href="https://20beauty.com.hk/facialpromotion">facialåªæ </a></li> 1051 <li><a href="https://20beauty.com.hk/facialpromotion">facialæ¨è¦</a></li> 1052 1053 <li><a href="https://20beauty.com.hk/monthlypromotion">è«æ¯</a></li> 1054 <li><a href="https://20beauty.com.hk/monthlypromotion">æ¿å è«æ¯</a></li> 1055 <li><a href="https://20beauty.com.hk/monthlypromotion">éè è«æ¯</a></li> 1056 <li><a href="https://20beauty.com.hk/monthlypromotion">è ä¸è«æ¯</a></li> 1057 <li><a href="https://20beauty.com.hk/monthlypromotion">æ°¸ä¹ æ¿å è«æ¯</a></li> 1058 <li><a href="https://20beauty.com.hk/monthlypromotion">馿¸¯è«æ¯</a></li> 1059 <li><a href="https://20beauty.com.hk/monthlypromotion">è«æ¯åªæ </a></li> 1060 <li><a href="https://20beauty.com.hk/monthlypromotion">è«æ¯promotion</a></li> 1061 <li><a href="https://20beauty.com.hk/monthlypromotion">æ°¸ä¹ è«æ¯éé好</a></li> 1062 <li><a href="https://20beauty.com.hk/monthlypromotion">è«æ¯å¹³</a></li> 1063 <li><a href="https://20beauty.com.hk/monthlypromotion">è«æ¯å¹é¢</a></li> 1064 <li><a href="https://20beauty.com.hk/monthlypromotion">æ¿å è«æ¯éé好</a></li> 1065 <li><a href="https://20beauty.com.hk/monthlypromotion">æ¿å è«æ¯çç¨</a></li> 1066 <li><a href="https://20beauty.com.hk/monthlypromotion">å è²»é«é©</a></li> 1067 <li><a href="https://20beauty.com.hk/monthlypromotion">è«æ¯é«é©</a></li> 1068 <li><a href="https://20beauty.com.hk/monthlypromotion">å ¨èº«è«æ¯</a></li> 1069 <li><a href="https://20beauty.com.hk/monthlypromotion">è ³æ¯</a></li> 1070 <li><a href="https://20beauty.com.hk/monthlypromotion">忝</a></li> 1071 <li><a href="https://20beauty.com.hk/monthlypromotion">è«ææ¯</a></li> 1072 <li><a href="https://20beauty.com.hk/monthlypromotion">è«è ³æ¯</a></li> 1073 <li><a href="https://20beauty.com.hk/monthlypromotion">å¸çè</a></li> 1074 <li><a href="https://20beauty.com.hk/monthlypromotion">å¸çåªæ </a></li> 1075 <li><a href="https://20beauty.com.hk/monthlypromotion">å¸çè«æ¯</a></li> 1076 <li><a href="https://20beauty.com.hk/monthlyp
1076romotion">è«ææ¯</a></li> 1077 <li><a href="https://20beauty.com.hk/monthlypromotion">è«é°æ¯</a></li> 1078 <li><a href="https://20beauty.com.hk/monthlypromotion">ç§èè«æ¯</a></li> 1079 <li><a href="https://20beauty.com.hk/monthlypromotion">è«bikini</a></li> 1080 <li><a href="https://20beauty.com.hk/monthlypromotion">bikiniè«æ¯</a></li> 1081 <li><a href="https://20beauty.com.hk/monthlypromotion">è«æ¯å å°¼æ¯</a></li> 1082 <li><a href="https://20beauty.com.hk/monthlypromotion">æ¯å å°¼</a></li> 1083 <li><a href="https://20beauty.com.hk/monthlypromotion">v-lineè«æ¯</a></li> 1084 <li><a href="https://20beauty.com.hk/monthlypromotion">vlineè«æ¯</a></li> 1085 <li><a href="https://20beauty.com.hk/monthlypromotion">v-line</a></li> 1086 <li><a href="https://20beauty.com.hk/monthlypromotion">underarm</a></li> 1087 <li><a href="https://20beauty.com.hk/monthlypromotion">underarmè«æ¯</a></li> 1088 1089 <li><a href="https://20beauty.com.hk/snow-and-glow">å è²»é«é©</a></li> 1090 <li><a href="https://20beauty.com.hk/snow-and-glow">æç¡</a></li> 1091 <li><a href="https://20beauty.com.hk/snow-and-glow">æç¡å°</a></li> 1092 <li><a href="https://20beauty.com.hk/snow-and-glow">é»é </a></li> 1093 <li><a href="https://20beauty.com.hk/snow-and-glow">å»å°</a></li> 1094 <li><a href="https://20beauty.com.hk/snow-and-glow">æ¸ é»é </a></li> 1095 <li><a href="https://20beauty.com.hk/snow-and-glow">å£ç½©è</a></li> 1096 <li><a href="https://20beauty.com.hk/snow-and-glow">ç³é ç¡</a></li> 1097 <li><a href="https://20beauty.com.hk/snow-and-glow">ç¤ç</a></li> 1098 <li><a href="https://20beauty.com.hk/snow-and-glow">å»ç¤</a></li> 1099 <li><a href="https://20beauty.com.hk/snow-and-glow">ç®èæ¥æ</a></li> 1100 <li><a href="https://20beauty.com.hk/snow-and-glow">æ¥æè£æ°´</a></li> 1101 <li><a href="https://20beauty.com.hk/snow-and-glow">ç®èä¿é¤</a></li> 1102 <li><a href="https://20beauty.com.hk/snow-and-glow">ç¾å®¹æ¨ä»</a></li> 1103 <li><a href="https://20beauty.com.hk/snow-and-glow">ç¾å®¹æ¨è¦</a></li> 1104 <li><a href="https://20beauty.com.hk/snow-and-glow">ç¾å®¹é¢æ¨è¦</a></li> 1105 <li><a href="https://20beauty.com.hk/snow-and-glow">ç¾å®¹é¢æ¨ä»</a></li> 1106 <li><a href="https://20beauty.com.hk/snow-and-glow">ç¾å®¹é¢éé好</a></li> 1107 <li><a href="https://20beauty.com.hk/snow-and-glow">ä¿æ¿</a></li> 1108 <li><a href="https://20beauty.com.hk/snow-and-glow">æ·±å±¤ä¿æ¿</a></li> 1109 <li><a href="https://20beauty.com.hk/snow-and-glow">è·è</a></li> 1110 <li><a href="https://20beauty.com.hk/snow-and-glow">ç¾å®¹</a></li> 1111 <li><a href="https://20beauty.com.hk/snow-and-glow">é«ç¾</a></li> 1112 <li><a href="https://20beauty.com.hk/snow-and-glow">ç¾ç½</a></li> 1113 <li><a href="https://20beauty.com.hk/snow-and-glow">廿</a></li> 1114 <li><a href="https://20beauty.com.hk/snow-and-glow">éæ</a></li> 1115 <li><a href="https://20beauty.com.hk/snow-and-glow">æ´é¢</a></li> 1116 <li><a href="https://20beauty.com.hk/snow-and-glow">æ´è</a></li> 1117 <li><a href="https://20beauty.com.hk/snow-and-glow">æ°å¨è·è</a></li> 1118 <li><a href="https://20beauty.com.hk/snow-and-glow">ç®èä¿é¤</a></li> 1119 <li><a href="https://20beauty.com.hk/snow-and-glow">è·èæå¸</a></li> 1120 <li><a href="https://20beauty.com.hk/snow-and-glow">æ²¹æ§ç®è</a></li> 1121 <li><a href="https://20beauty.com.hk/snow-and-glow">ä¹¾æ§ç®è</a></li> 1122 <li><a href="https://20beauty.com.hk/snow-and-glow">æ¯åç²å¤§</a></li> 1123 <li><a href="https://20beauty.com.hk/snow-and-glow">ç®èä¹¾ç¥</a></li> 1124 1125 <li><a href="https://20beauty.com.hk/freetrial">
1125å è²»é«é©</a></li> 1126 <li><a href="https://20beauty.com.hk/freetrial">è«æ¯é«é©</a></li> 1127 <li><a href="https://20beauty.com.hk/freetrial">è«æ¯</a></li> 1128 <li><a href="https://20beauty.com.hk/freetrial">æ¿å è«æ¯</a></li> 1129 <li><a href="https://20beauty.com.hk/freetrial">èè è«æ¯</a></li> 1130 <li><a href="https://20beauty.com.hk/freetrial">éè è«æ¯</a></li> 1131 <li><a href="https://20beauty.com.hk/freetrial">è ä¸è«æ¯</a></li> 1132 <li><a href="https://20beauty.com.hk/freetrial">underarmè«æ¯</a></li> 1133 <li><a href="https://20beauty.com.hk/freetrial">bikiniè«æ¯</a></li> 1134 <li><a href="https://20beauty.com.hk/freetrial">æ°¸ä¹ æ¿å è«æ¯</a></li> 1135 <li><a href="https://20beauty.com.hk/freetrial">馿¸¯è«æ¯</a></li> 1136 <li><a href="https://20beauty.com.hk/freetrial">è«æ¯åªæ </a></li> 1137 <li><a href="https://20beauty.com.hk/freetrial">æ°¸ä¹ è«æ¯éé好</a></li> 1138 <li><a href="https://20beauty.com.hk/freetrial">è«æ¯éé好</a></li> 1139 <li><a href="https://20beauty.com.hk/freetrial">è«æ¯å¹³</a></li> 1140 <li><a href="https://20beauty.com.hk/freetrial">è«æ¯å¹é¢</a></li> 1141 <li><a href="https://20beauty.com.hk/freetrial">æ¿å è«æ¯éé好</a></li> 1142 <li><a href="https://20beauty.com.hk/freetrial">æ¿å è«æ¯çç¨</a></li> 1143 <li><a href="https://20beauty.com.hk/freetrial">ç¾å®¹æ¨ä»</a></li> 1144 <li><a href="https://20beauty.com.hk/freetrial">ç¾å®¹æ¨è¦</a></li> 1145 <li><a href="https://20beauty.com.hk/freetrial">ç¾å®¹é¢æ¨è¦</a></li> 1146 <li><a href="https://20beauty.com.hk/freetrial">ç¾å®¹é¢æ¨ä»</a></li> 1147 <li><a href="https://20beauty.com.hk/freetrial">
1147å ¨èº«è«æ¯</a></li> 1148 <li><a href="https://20beauty.com.hk/freetrial">è ³æ¯</a></li> 1149 <li><a href="https://20beauty.com.hk/freetrial">忝</a></li> 1150 <li><a href="https://20beauty.com.hk/freetrial">è«ææ¯</a></li> 1151 <li><a href="https://20beauty.com.hk/freetrial">è«è ³æ¯</a></li> 1152 <li><a href="https://20beauty.com.hk/freetrial">è«bikini</a></li> 1153 <li><a href="https://20beauty.com.hk/freetrial">ç§èè«æ¯</a></li> 1154 1155 <li><a href="https://20beauty.com.hk/">è«æ¯</a></li> 1156 <li><a href="https://20beauty.com.hk/">餿¯</a></li> 1157 <li><a href="https://20beauty.com.hk/">忝</a></li> 1158 <li><a href="https://20beauty.com.hk/">æ¿å è«æ¯</a></li> 1159 <li><a href="https://20beauty.com.hk/">æ¿å 餿¯</a></li> 1160 <li><a href="https://20beauty.com.hk/">èè </a></li> 1161 <li><a href="https://20beauty.com.hk/">èè è«æ¯</a></li> 1162 <li><a href="https://20beauty.com.hk/">éè è«æ¯</a></li> 1163 <li><a href="https://20beauty.com.hk/">è ä¸è«æ¯</a></li> 1164 <li><a href="https://20beauty.com.hk/">underarm</a></li> 1165 <li><a href="https://20beauty.com.hk/">vline</a></li> 1166 <li><a href="https://20beauty.com.hk/">vlineè«æ¯</a></li> 1167 <li><a href="https://20beauty.com.hk/">æ¯å å°¼</a></li> 1168 <li><a href="https://20beauty.com.hk/">æ¯å å°¼è«æ¯</a></li> 1169 <li><a href="https://20beauty.com.hk/">bikiniè«æ¯</a></li> 1170 <li><a href="https://20beauty.com.hk/">è«bikini</a></li> 1171 <li><a href="https://20beauty.com.hk/">ç§èè«æ¯</a></li> 1172 <li><a href="https://20beauty.com.hk/">è«é°æ¯</a></li> 1173 <li><a href="https://20beauty.com.hk/">è«ææ¯</a></li> 1174 <li><a href="https://20beauty.com.hk/">è«è ³æ¯</a></li> 1175 <li><a href="https://20beauty.com.hk/">æ°¸ä¹ æ¿å è«æ¯</a></li> 1176 <li><a href="https://20beauty.com.hk/">馿¸¯è«æ¯</a></li> 1177 <li><a href="https://20beauty.com.hk/">è«æ¯åªæ </a></li> 1178 <li><a href="https://20beauty.com.hk/">æ°¸ä¹ è«æ¯éé好</a></li> 1179 <li><a href="https://20beauty.com.hk/">è«æ¯éé好</a></li> 1180 <li><a href="https://20beauty.com.hk/">è«æ¯å¹³</a></li> 1181 <li><a href="https://20beauty.com.hk/">è«æ¯å¹é¢</a></li> 1182 <li><a href="https://20beauty.com.hk/">æ¿å è«æ¯éé好</a></li> 1183 <li><a href="https://20beauty.com.hk/">æ¿å è«æ¯çç¨</a></li> 1184 <li><a href="https://20beauty.com.hk/">ç®èä¿é¤</a></li> 1185 <li><a href="https://20beauty.com.hk/">æ°å¨è·è</a></li> 1186 <li><a href="https://20beauty.com.hk/">è·èæå¸</a></li> 1187 <li><a href="https://20beauty.com.hk/">ç¾å®¹æ¨ä»</a></li> 1188 <li><a href="https://20beauty.com.hk/">ç¾å®¹é¢æ¨è¦</a></li> 1189 <li><a href="https://20beauty.com.hk/">ç¾å®¹é¢æ¨ä»</a></li> 1190 </ul> 1191 </div> 1192 </div> 1193 </section> 1194 <!-- /Category--> 1195 1196 <br> 1197 1198 <!-- Highlight/ --> 1199 <section> 1200 <!-- <div class="container"> 1201 <br> 1202 <div class="g-container-sm g-tmpcol-3-sm g-gap-3-sm"> 1203 <div class="mar_xs_xl_b mar_sm_0_b ha_center_xs"> 1204 <img src="images/icon/icon_time.svg" height="60"> 1205 <h3>ä¸è¨ææ®µéå¶</h3> 1206 </div> 1207 1208 <div class="mar_xs_xl_b mar_sm_0_b ha_center_xs"> 1209 <img src="images/icon/icon_chart.svg" height="60"> 1210 <h3>ä¸å¸å ¬å¸ä¿¡å¿ä¿è</h3> 1211 </div> 1212 1213 <div class="mar_xs_xl_b mar_sm_0_b ha_center_xs"> 1214 <img src="images/icon/icon_fee.svg" height="60"> 1215 <h3>çµç¡é¡å¤æ¶è²»</h3> 1216 </div> 1217 </div> 1218</div> --> 1219 1220<!-- <div class="container"> 1221 <br> 1222 <div class="g-container-xs g-tmpcol-3-xs g-gap-2-xs g-gap-3-sm"> 1223 <div class="ha_center_xs wow fadeInUp"> 1224 <div><img src="images/icon/icon_time.svg" class="h-50px-xs h-60px-sm"></div> 1225 <div class="f-1-xs f-4-sm mar_xs_s_t"><b>ä¸è¨ææ®µéå¶</b></div> 1226 </div> 1227 1228 <div class="ha_center_xs wow fadeInUp" data-wow-delay="0.1s"> 1229 <div><img src="images/icon/icon_chart.svg" class="h-50px-xs h-60px-sm"></div> 1230 <div class="f-1-xs f-4-sm mar_xs_s_t"><b>ä¸å¸å ¬å¸ä¿¡å¿ä¿è</b></div> 1231 </div> 1232 1233 <div class="ha_center_xs wow fadeInUp" data-wow-delay="0.2s"> 1234 <div><img src="images/icon/icon_fee.svg" class="h-50px-xs h-60px-sm"></div> 1235 <div class="f-1-xs f-4-sm mar_xs_s_t"><b>çµç¡é¡å¤æ¶è²»</b></div> 1236 </div> 1237 </div> 1238</div> --> 1239 1240<div class="container pad_xs_xxl_y"> 1241 <div class="g-container-xs g-tmpcol-11-xs g-tmpcol-5-md g-tmprow-2-xs g-tmprow-1-md mar_xs_auto_x"> 1242 <div class="wow flipInY g-colstart-1-xs g-colend-4-xs g-rowstart-1-xs g-rowend-2-xs g-1-md gr-1-md mar_xs_m_y mar_sm_xl_y"> 1243 <div class="ha_center_xs wow fadeInUp"> 1244 <div><img src="images/icon/icon_time.svg" class="h-50px-xs h-60px-sm"></div> 1245 <div class="f-1-xs f-4-sm mar_xs_s_t"><b>ä¸è¨ææ®µéå¶</b></div> 1246 </div> 1247 </div> 1248 1249 <div class="wow flipInY g-colstart-5-xs g-colend-8-xs g-rowstart-1-xs g-rowend-2-xs g-1-md gr-1-md mar_xs_m_y mar_sm_xl_y" data-wow-delay="0.2s"> 1250 <div class="ha_center_xs wow fadeInUp"> 1251 <div><img src="images/icon/icon_chart.svg" class="h-50px-xs h-60px-sm"></div> 1252 <div class="f-1-xs f-4-sm mar_xs_s_t"><b>ä¸å¸å ¬å¸ä¿¡å¿ä¿è</b></div> 1253 </div> 1254 </div> 1255 1256 <div class="wow flipInY g-colstart-9-xs g-colend-12-xs g-rowstart-1-xs g-rowend-2-xs g-1-md gr-1-md mar_xs_m_y mar_sm_xl_y" data-wow-delay="0.4s"> 1257 <div class="ha_center_xs wow fadeInUp"> 1258 <div><img src="images/icon/icon_fee.svg" class="h-50px-xs h-60px-sm"></div> 1259 <div class="f-1-xs f-4-sm mar_xs_s_t"><b>çµç¡é¡å¤æ¶è²»</b></div> 1260 </div> 1261 </div> 1262 1263 <div class="wow flipInY g-colstart-3-xs g-colend-6-xs g-rowstart-2-xs g-rowend-3-xs g-1-md gr-1-md mar_xs_m_y mar_sm_xl_y" data-wow-delay="0.6s"> 1264 <div class="ha_center_xs wow fadeInUp"> 1265 <div><img src="images/icon/icon_iso9001.svg" class="h-50px-xs h-60px-sm"></div> 1266 <div class="f-1-xs f-4-sm mar_xs_s_t"><b>ISO管çèªè</b></div> 1267 </div> 1268 </div> 1269 1270 <div class="wow flipInY g-colstart-7-xs g-colend-10-xs g-rowstart-2-xs g-rowend-3-xs g-1-md gr-1-md mar_xs_m_y mar_sm_xl_y" data-wow-delay="0.8s"> 1271 <div class="ha_center_xs wow fadeInUp"> 1272 <div><img src="images/icon/icon_therapist.svg" class="h-50px-xs h-60px-sm"></div> 1273 <div class="f-1-xs f-4-sm mar_xs_s_t"><b>
1273æçå 叿²»ç師</b></div> 1274 </div> 1275 </div> 1276 </div> 1277</div> </section> 1278 <!-- /Hightlight --> 1279 1280 <br> 1281 1282 <!-- Form Section/ --> 1283 <section id="formSection" class="bg_lightpink_corp"> 1284 <div class="pad_xs_xl_t pad_xs_xl_b container"> 1285 <div class="ha_center_xs"> 1286 <h3>é ç´å 費諮詢</h3> 1287 <div class="font_xs_s">çºäºç¢ºä¿åé æ¿å è«æ¯çç¨çå®å ¨ï¼20BEAUTYæä¾å è²»ã詳細ç諮詢åé»è ¦çç®è忝髮åæï¼æåä¸é¼åµé¡§å®¢æ¥èå任使±ºå®ï¼é£ä¸å¯ä»¥å¡«å¦¥ä»¥ä¸è¡¨æ ¼ï¼é ç´å è²»çé»è ¦ç®èåæ¯é«®æª¢æ¸¬å¾ï¼ææ±ºå®ä½ çè«æ¯éè¦</div> 1288 </div> 1289 1290 <br> 1291 1292 <!-- Form/ --> 1293 <form id="enquiryform" action="/confirm/confirmation.php" method="post"> 1294 <div class="g-container-xs g-tmpcol-2-sm g-gap-3-xs"> 1295 <div><input type="text" name="full_name" placeholder="å§åï¼ä»¥èº«ä»½èçºæºï¼" class="w-100-xs"></div> 1296 <div><input type="number" name="age" placeholder="年齡" class="w-100-xs"></div> 1297 <div><input type="email" name="email" placeholder="é»éµå°å" class="w-100-xs"></div> 1298 <div><input type="tel" name="mobile" placeholder="é»è©±è碼" class="w-100-xs" inputmode="numeric" autocomplete="tel-national"></div> 1299 1300 <div> 1301 <select name="desired_store" class="w-100-xs" data-required> 1302 <option data-blank>鏿ååº</option> 1303 <option value="æè±ªååº|LP20">æè±ªååº</option> 1304 <option value="å°æ²ååº|T20">å°æ²ååº</option> 1305 <option value="é é¼ç£åº|C20">é é¼ç£åº</option> 1306 <option value="ä¸ç°åº|Q20">ä¸ç°åº</option> 1307 <option value="æ¾³éåº|NYH">æ¾³éåº</option> 1308</select> </div> 1309 1310 <div> 1311 <input id="dateinput" type="text" name="desired_date" placeholder="é ç´æ¥æ" style="width:100%;" data-lang="zh" data-large-mode="true" data-large-default="true" data-format="Y-m-d" data-max-year="2040" data-lock="from" data-range="60" data-init-set="false" data-disabled-days="04/05/2023,04/07/2023,04/08/2023,04/10/2023,05/01/2023,05/26/2023,06/22/2023,07/01/2023,09/30/2023,10/01/2023,10/23/2023,12/25/2023" data-required> 1312<!-- mm/dd/yyyy --> </div> 1313 1314 <div> 1315 <select name="desired_time" data-required class="w-100-xs"> 1316 <option data-blank>é ç´æé</option> 1317 <option value="10:00">10:00</option> 1318 <option value="10:30">10:30</option> 1319 <option value="11:00">11:00</option> 1320 <option value="11:30">11:30</option> 1321 <option value="12:00">12:00</option> 1322 <option value="12:30">12:30</option> 1323 <option value="13:00">13:00</option> 1324 <option value="13:30">13:30</option> 1325 <option value="14:00">14:00</option> 1326 <option value="14:30">14:30</option> 1327 <option value="15:00">15:00</option> 1328 <option value="15:30">15:30</option> 1329 <option value="16:00">16:00</option> 1330 <option value="16:30">16:30</option> 1331 <option value="17:00">17:00</option> 1332 <option value="17:30">17:30</option> 1333 <option value="18:00">18:00</option> 1334 <option value="18:30">18:30</option> 1335 <option value="19:00">19:00</option> 1336 <option value="19:30">19:30</option> 1337 <option value="20:00">20:00</option> 1338 <option value="20:30">20:30</option> 1339 </select> 1340 </div> 1341 <!-- <div><input type="text" name="coupon_code" placeholder="åªæ 碼ï¼å¦é©ç¨ï¼" class="w-100-xs"></div> --> 1342 <div> 1343 <select name="_dynamic" class="w-100-xs" data-required> 1344 <option value="treatment_offer_name=å è²»é«é©é¨ä½&offer=0&treatment_short_name=" data-action="none" data-blank>å è²»é«é©é¨ä½</option> 1345 <option value="treatment_offer_name=éè &offer=0&treatment_short_name=éè " data-action="none">éè </option> 1346 <option value="treatment_offer_name=ä¸å&offer=0&treatment_short_name=ä¸å" data-action="none">ä¸å</option> 1347 <option value="treatment_offer_name=ææ&offer=0&treatment_short_name=æé¨" data-action="none">ææ</option> 1348 </select> 1349 </div> 1350 <!-- <div> 1351 <select name="payment_method" class="hidden w-100-xs"> 1352 <option>鏿仿¬¾æ¹å¼</option> 1353 <option value="none">åºè仿¬¾</option> 1354 <option value="paypal">ç¶²ä¸ä»æ¬¾</option> 1355 </select> 1356 </div> --> 1357 <div class="g-2-sm font_xs_s"> 1358 <div class="flex_container_xs"> 1359 <div><input type="checkbox" name="newsletter" value="æ¬äººé¡æç¹¼çºæ¶å°æé20BEAUTYçææ°è³è¨ååªæ "></div> 1360 <div class="mar_xs_xs_l flex_1_xs">æ¬äººé¡æç¹¼çºæ¶å°æé20BEAUTYçææ°è³è¨ååªæ </div> 1361 </div> 1362 </div> 1363 <!-- <div class="g-2-sm font_xs_s"> 1364 <div class="flex_container_xs"> 1365 <div><input type="checkbox" name="term" value="æ¬äººå·²é±è®ä¸¦åæ20BEAUTY乿éç§é±æ¿çãæ¢æ¬¾åç´°å"></div> 1366 <div class="mar_xs_xs_l flex_1_xs">æ¬äººå·²é±è®ä¸¦åæ20BEAUTY乿é<a href="privacy" class="link_pink_corp" target="_blank">ç§é±æ¿ç</a>ã<a href="termsofuse" class="link_pink_corp" target="_blank">æ¢æ¬¾åç´°å</a></div> 1367 </div> 1368 </div> --> 1369 <input type="hidden" name="form_category" value="Single Trial"> <!-- (å¯ç¨_dynamic): Single Trial / Multi Trials / Career / Contact Us --> 1370 <input type="hidden" name="treatment_name" value="å è²»é«é© â é¦é "> 1371 <input type="hidden" id="treatmentShortName" name="treatment_short_name" value=""> 1372 <input type="hidden" id="treatmentOfferName" name="treatment_offer_name" value=""> 1373 <input type="hidden" id="offer" name="offer" value="
13730"> 1374 <input type="hidden" id="promotionCode" name="promotion_code" value=""> 1375 <input type="hidden" name="enquiry_details" value=""> 1376 <input type="hidden" id="enquiryOfferDetails" name="enquiry_offer_details" value=""> 1377 1378 <input type="hidden" id="pid" name="pid" value="index_nf"> 1379 <input type="hidden" id="eventName" name="event_name" value=""> 1380 <input type="hidden" name="target_source" value=""> 1381 <input type="hidden" name="ref_source" value=""> 1382 <input type="hidden" id="enquiry_landing_url" name="enquiry_landing_url" value=""> 1383 <input type="hidden" id="enquiry_exp_shop" name="enquiry_exp_shop" value=""> 1384 1385 <input type="hidden" name="payment_gateway" value="paymentasia"> 1386 <input type="hidden" name="payment_account" value="dermaglow"> 1387 <input type="hidden" name="return_url" value="https://20beauty.com.hk"> 1388 1389 <input type="hidden" name="brandList[]" value="20BEAUTY"> 1390 <input type="hidden" id="brandShortName" name="brand_short_name" value="20BEAUTY"> 1391 1392 <input type="hidden" id="paymentMethod" name="payment_method" value="none"> 1393 <input type="hidden" name="__is_free_consultation" value="1"> 1394 1395 <input type="hidden" id="offer_online" name="offer_online" value=""> 1396 <input type="hidden" id="offer_online_prepaid" name="offer_online_prepaid" value=""> 1397 <input type="hidden" id="offer_online_details" name="offer_online_details" value=""> 1398 <input type="hidden" id="offer_offline_details" name="offer_offline_details" value="å è²»ç»è¨"> 1399 1400 <input type="checkbox" name="term" value="æ¬äººå·²é±è®ä¸¦åæ20BEAUTY乿éç§é±æ¿çãæ¢æ¬¾åç´°å" checked class="none_xs"> 1401 1402<input type="text" class="w-100-xxxs" name="website_url" placeholder="Your website URL (ç¶²ç«URL)"> 1403<input type="text" class="w-100-xxxl" name="enquiry_text" placeholder="Your enquiry"> 1404<input type="hidden" name="landing_url" value="http://20beauty.com.hk/"> 1405<input type="hidden" name="landing_url_string" value=""> 1406<input type="hidden" name="thank_you_page" value="http://20beauty.com.hk/thx"> 1407<input type="hidden" name="form_submitted" value="0">
1408<script> 1409(function () { 1410 if (typeof window.initGeetest4 === "function" || window.__geetestV4ScriptRequested) return; 1411 window.__geetestV4ScriptRequested = true; 1412 var script = document.createElement("script"); 1413 script.src = "https://static.geetest.com/v4/gt4.js"; 1414 script.async = true; 1415 (document.head || document.documentElement).appendChild(script); 1416})(); 1417</script>
vendor: 1 bytes, line 1417
1417
1418<script> 1419(function () { 1420 var captchaId = "8a1232ada1f5addaa0a2c9ffa9b0c0c7"; 1421 var language = "zho-hk"; 1422 var product = "bind"; 1423 var captchaObj = null; 1424 var captchaReady = false; 1425 var pending = null; 1426 var initAttempts = 0; 1427 1428 function getForm(form) { 1429 return form || document.getElementById("enquiryform"); 1430 } 1431 1432 function upsertHidden(form, name, value) { 1433 if (!form) return; 1434 var input = form.querySelector('input[name="' + name + '"]'); 1435 if (!input) { 1436 input = document.createElement("input"); 1437 input.type = "hidden"; 1438 input.name = name; 1439 form.appendChild(input); 1440 } 1441 input.value = value == null ? "" : String(value); 1442 } 1443 1444 function clearHumanReady(form) { 1445 try { 1446 if (form && form.dataset) delete form.dataset.humanVerificationReady; 1447 } catch (e) { 1448 if (form) form.removeAttribute("data-human-verification-ready"); 1449 } 1450 } 1451 1452 function markHumanReady(form) { 1453 if (form && form.dataset) form.dataset.humanVerificationReady = "1"; 1454 } 1455 1456 function writeValidateResult(form, result) { 1457 upsertHidden(form, "lot_number", result && result.lot_number); 1458 upsertHidden(form, "captcha_output", result && result.captcha_output); 1459 upsertHidden(form, "pass_token", result && result.pass_token); 1460 upsertHidden(form, "gen_time", result && result.gen_time); 1461 markHumanReady(form); 1462 } 1463 1464 function removeError(form) { 1465 if (!form) return; 1466 var old = form.querySelector(".geetest-validation-error"); 1467 if (old && old.parentNode) old.parentNode.removeChild(old); 1468 } 1469 1470 function showError(form, msg) { 1471 form = getForm(form); 1472 if (!form) return; 1473 removeError(form); 1474 1475 var target = 1476 form.querySelector("#offlinePaySubmit") || 1477 form.querySelector("#onlinePaySubmit") || 1478 form.querySelector('button[type="submit"]') || 1479 form.querySelector('input[type="submit"]') || 1480 form.lastElementChild; 1481 1482 var span = document.createElement("span"); 1483 span.className = "validation-error geetest-validation-error"; 1484 span.textContent = msg || "\u8acb\u5b8c\u6210\u9a57\u8b49\u3002"; 1485 1486 if (target && target.parentNode) { 1487 target.parentNode.insertBefore(span, target.nextSibling); 1488 } else { 1489 form.appendChild(span); 1490 } 1491 } 1492 1493 function finishPending(ok) { 1494 var current = pending; 1495 pending = null; 1496 if (!current) return; 1497 1498 if (ok) { 1499 if (typeof current.onSuccess === "function") current.onSuccess(); 1500 } else { 1501 clearHumanReady(current.form); 1502 if (typeof current.onFail === "function") current.onFail(); 1503 } 1504 } 1505 1506 window.runHumanVerificationBeforeSubmit = function (form, onSuccess, onFail) { 1507 form = getForm(form); 1508 if (!form) { 1509 if (typeof onFail === "function") onFail(); 1510 return; 1511 } 1512 1513 clearHumanReady(form); 1514 1515 if (!captchaObj || !captchaReady) { 1516 showError(form, "\u9a57\u8b49\u6b63\u5728\u8f09\u5165\uff0c\u8acb\u7a0d\u5f8c\u518d\u8a66\u3002"); 1517 if (typeof onFail === "function") onFail(); 1518 return; 1519 } 1520 1521 removeError(form); 1522 pending = { 1523 form: form, 1524 onSuccess: onSuccess, 1525 onFail: onFail 1526 }; 1527 captchaObj.showCaptcha(); 1528 }; 1529 1530 function initGeetest() { 1531 if (typeof window.initGeetest4 !== "function") { 1532 initAttempts += 1; 1533 if (initAttempts < 40) { 1534 window.setTimeout(initGeetest, 250); 1535 } 1536 return; 1537 } 1538 1539 window.initGeetest4({ 1540 captchaId: captchaId, 1541 product: product, 1542 language: language, 1543 protocol: "https://" 1544 }, function (obj) { 1545 captchaObj = obj; 1546 captchaObj 1547 .onReady(function () { 1548 captchaReady = true; 1549 }) 1550 .onSuccess(function () { 1551 var result = captchaObj.getValidate(); 1552 if (!result) { 1553 if (pending) showError(pending.form, "\u8acb\u91cd\u65b0\u5b8c\u6210\u9a57\u8b49\u3002"); 1554 finishPending(false); 1555 return; 1556 } 1557 1558 var form = pending ? pending.form : getForm(); 1559 writeValidateResult(form, result); 1560 finishPending(true); 1561 }) 1562 .onClose(function () { 1563 finishPending(false); 1564 }) 1565 .onError(function () { 1566 if (pending) showError(pending.form, "\u9a57\u8b49\u5931\u6557\uff0c\u8acb\u7a0d\u5f8c\u518d\u8a66\u3002"); 1567 finishPending(false); 1568 }); 1569 }); 1570 } 1571 1572 if (document.readyState === "loading") { 1573 document.addEventListener("DOMContentLoaded", initGeetest); 1574 } else { 1575 initGeetest(); 1576 } 1577})(); 1578</script>
1578 1579 1580<style type="text/css"> 1581 .validation-error { 1582 color: red; 1583 font-size: 90%; 1584 } 1585 1586 .grecaptcha-badge { 1587 visibility: hidden; 1588 } 1589 1590 </style> 1591
1592<script> 1593 $('.w-100-xxxs').css("position", "absolute"); 1594 $('.w-100-xxxl').css("position", "absolute"); 1595 $('.w-100-xxxs').css("top", "-50px"); 1596 $('.w-100-xxxl').css("top", "-50px"); 1597 1598 1599 function getMobileValidationResult(mobile) { 1600 var digits = (mobile || '').replace(/\D/g, ''); 1601 1602 if (!digits) { 1603 return { 1604 valid: false, 1605 digits: '', 1606 normalized: '', 1607 region: '', 1608 reason: 'empty' 1609 }; 1610 } 1611 1612 if (/^852([45689]\d{7})$/.test(digits)) { 1613 return { 1614 valid: true, 1615 digits: digits, 1616 normalized: digits.slice(3), 1617 region: 'HK', 1618 reason: '' 1619 }; 1620 } 1621 1622 if (/^853([45689]\d{7})$/.test(digits)) { 1623 return { 1624 valid: true, 1625 digits: digits, 1626 normalized: digits.slice(3), 1627 region: 'MO', 1628 reason: '' 1629 }; 1630 } 1631 1632 if (/^86(1\d{10})$/.test(digits)) { 1633 return { 1634 valid: true, 1635 digits: digits, 1636 normalized: digits.slice(2), 1637 region: 'CN', 1638 reason: '' 1639 }; 1640 } 1641 1642 if (/^[45689]\d{7}$/.test(digits)) { 1643 return { 1644 valid: true, 1645 digits: digits, 1646 normalized: digits, 1647 region: 'HK_MO', 1648 reason: '' 1649 }; 1650 } 1651 1652 if (/^1\d{10}$/.test(digits)) { 1653 return { 1654 valid: true, 1655 digits: digits, 1656 normalized: digits, 1657 region: 'CN', 1658 reason: '' 1659 }; 1660 } 1661 1662 return { 1663 valid: false, 1664 digits: digits, 1665 normalized: '', 1666 region: '', 1667 reason: 'format' 1668 }; 1669 } 1670 1671 1672 window.form_validated = false; 1673 1674 function release_form_submit_lock() { 1675 window.form_validated = false; 1676 $('input[type="submit"], button[type="submit"]').prop('disabled', false).attr('disabled', false); 1677 } 1678 1679 function submit_after_human_verification() { 1680 var form = document.getElementById('enquiryform'); 1681 var doSubmit = function() { 1682 form_add_additional_data(); 1683 if (form) form.submit(); 1684 else $('#enquiryform').submit(); 1685 }; 1686 1687 if (typeof window.runHumanVerificationBeforeSubmit === 'function') { 1688 window.runHumanVerificationBeforeSubmit(form, doSubmit, release_form_submit_lock); 1689 } else { 1690 doSubmit(); 1691 } 1692 } 1693 1694 $('#enquiryform').submit(function(e) { 1695 if (!window.form_validated) { 1696 e.preventDefault(); 1697 $('input[type="submit"], button[type="submit"]').prop('disabled', true).attr('disabled', true); 1698 window.form_validated = true; 1699 1700 grecaptcha.ready(function() { 1701 grecaptcha.execute('6Leqgh4iAAAAAJnAOhZNhxjxZiGkkpJyNVB3CD_u', { 1702 action: 'submit' 1703 }).then(function(token) { 1704 window.form_validated = form_validate(); 1705 if (window.form_validated) { 1706 $('<input>').attr({ 1707 type: 'hidden', 1708 id: 'g-recaptcha-response', 1709 name: 'g-recaptcha-response', 1710 value: token 1711 }).appendTo('#enquiryform'); 1712 submit_after_human_verification(); 1713 } else { 1714 release_form_submit_lock(); 1715 } 1716 }); 1717 }); 1718 } 1719 return true; 1720 }); 1721 1722 1723 1724 1725 1726 1727 1728 1729 function form_validate() { 1730 1731 $(".validation-error").remove(); 1732 window.errors = []; 1733 window.form_validated = true; 1734 1735 // full_name 1736 var full_name = $("input[name='full_name']").val(); 1737 if (typeof full_name !== "undefined" && full_name.length < 1) { 1738 $("input[name='full_name']").after('<span class="validation-error">å¿ å¡«æ¬ä½</span>'); 1739 window.errors.push("full_name"); 1740 window.form_validated = false; 1741 } 1742 1743 // first_name 1744 var first_name = $("input[name='first_name']").val(); 1745 if (typeof first_name !== "undefined" && first_name.length < 1) { 1746 $("input[name='first_name']").after('<span class="validation-error">å¿ å¡«æ¬ä½</span>'); 1747 window.errors.push("first_name"); 1748 window.form_validated = false; 1749 } 1750 1751 // last_name 1752 var last_name = $("input[name='last_name']").val(); 1753 if (typeof last_name !== "undefined" && last_name.length < 1) { 1754 $("input[name='last_name']").after('<span class="validation-error">å¿ å¡«æ¬ä½</span>'); 1755 window.errors.push("last_name"); 1756 window.form_validated = false; 1757 } 1758 1759 // age 1760 var age = $("input[name='age']").val(); 1761 if (typeof age !== "undefined" && age.length < 1) { 1762 /*$("input[name='age']").after('<span class="validation-error">å¿ å¡«æ¬ä½</span>'); 1763 window.form_validated = false;*/ 1764 } else if (typeof age !== "undefined" && !/^\d+$/.test(age)) { 1765 $("input[name='age']").after('<span class="validation-error">è«è¼¸å ¥æ¸å</span>'); 1766 window.errors.push("age"); 1767 window.form_validated = false; 1768 } else if (typeof age !== "undefined" && (Number(age) < 12 || Number(age) > 120)) { 1769 $("input[name='age']").after('<span class="validation-error">è«è¼¸å ¥ææç年齡</span>'); 1770 window.errors.push("age"); 1771 window.form_validated = false; 1772 } 1773 1774 // mobile 1775 var mobile = $("input[name='mobile']").val();
1776 var mobile_validation = getMobileValidationResult(mobile); 1777 if (typeof mobile !== "undefined" && mobile.length < 1) { 1778 $("input[name='mobile']").after('<span class="validation-error">å¿ å¡«æ¬ä½</span>'); 1779 window.errors.push("mobile"); 1780 window.form_validated = false; 1781 } else if (typeof mobile !== "undefined" && !mobile_validation.valid) { 1782 $("input[name='mobile']").after('<span class="validation-error">è«è¼¸å ¥ææçé»è©±è碼</span>'); 1783 window.errors.push("mobile"); 1784 window.form_validated = false; 1785 } 1786 1787 1788 1789 if (/20beauty.com.hk/.test(window.location.href)) { 1790 // email 1791 var email = $("input[name='email']").val(); 1792 if (typeof email !== "undefined" && email.length < 1) { 1793 $("input[name='email']").after('<span class="validation-error">å¿ å¡«æ¬ä½</span>'); 1794 window.errors.push("email"); 1795 window.form_validated = false; 1796 } else if (typeof email !== "undefined" && !isValidEmailAddress(email)) { 1797 $("input[name='email']").after('<span class="validation-error">è«è¼¸å ¥æ£ç¢ºçé»åéµä»¶æ ¼å¼</span>'); 1798 window.errors.push("email"); 1799 window.form_validated = false; 1800 } 1801 } 1802 1803 // treatment_name 1804 // WE DON'T DO THIS HERE, EITHER PRESET TREATMENT NAME OR MARK THE _DYNAMIC FIELD AS REQUIRED INSTEAD 1805 //var treatment_name = $( "input[name='treatment_name']" ).val(); 1806 //if (typeof treatment_name !== "undefined" && treatment_name.length < 1) { 1807 //$("input[name='treatment_name']").after('<span class="validation-error">è«é¸æçç¨</span>'); 1808 //$("select[name='_dynamic']").after('<span class="validation-error">å¿ å¡«æ¬ä½</span>'); 1809 //window.form_validated = false; 1810 //} 1811 1812 1813 // desired_date - obsolete since 2021-08-19, data-required and data-blank is now used if required 1814 /* 1815 var desired_date = $( "select[name='desired_date']" ).val(); 1816 if (typeof desired_date !== "undefined" && desired_date.length < 1) { 1817 $("select[name='desired_date']").after('<span class="validation-error">å¿ å¡«æ¬ä½</span>'); 1818 window.errors.push("desired_date"); 1819 window.form_validated = false; 1820 } 1821 else if (typeof desired_date !== "undefined" && desired_date == 'é ç´æ¥æ') { 1822 $("select[name='desired_date']").after('<span class="validation-error">å¿ å¡«æ¬ä½</span>'); 1823 window.errors.push("desired_date"); 1824 window.form_validated = false; 1825 }*/ 1826 1827 1828 // desired_time - obsolete since 2021-08-19, data-required and data-blank is now used if required 1829 /*var desired_time = $( "select[name='desired_time']" ).val(); 1830 if (typeof desired_time !== "undefined" && desired_time.length < 1) { 1831 $("select[name='desired_time']").after('<span class="validation-error">å¿ å¡«æ¬ä½</span>'); 1832 window.errors.push("desired_time"); 1833 window.form_validated = false; 1834 } 1835 else if (typeof desired_time !== "undefined" && (desired_time == 'é ç´æé' || desired_time == 'æé¸æ¥æä¼æ¯')) { 1836 $("select[name='desired_time']").after('<span class="validation-error">å¿ å¡«æ¬ä½</span>'); 1837 window.errors.push("desired_time"); 1838 window.form_validated = false; 1839 }*/ 1840 1841 // desired_store - updated 2021-08-19, only 20BEAUTY uses this now to make sure desired_store has values; otherwise data-required and data-blank is now used if required 1842 if (/20beauty.com.hk/.test(window.location.href)) { 1843 var desired_store = $("select[name='desired_store']").val(); 1844 var desired_store_option = $("select[name='desired_store']").children("option:selected").attr('value'); 1845 1846 if (typeof desired_store !== "undefined" && typeof desired_store_option === "undefined") { 1847 $("select[name='desired_store']").after('<span class="validation-error">å¿ å¡«æ¬ä½</span>'); 1848 window.errors.push("desired_store"); 1849 window.form_validated = false; 1850 } 1851 } 1852 1853 //var promotion_code = $( "input[name='promotion_code']" ).val(); 1854 //var enquiry_details = $( "input[name='enquiry_details']" ).val(); 1855 //var enquiry_details2 = $( "input[name='enquiry_details2']" ).val(); 1856 1857 1858 1859 // payment_method 1860 var payment_method = $("select[name='payment_method']").val(); 1861 var payment_method_option = $("select[name='payment_method']").children("option:selected").attr('value'); 1862 if (typeof payment_method !== "undefined" && !$("select[name='payment_method']").hasClass("hidden") && !$("select[name='payment_method']").hasClass("none_xs")) { 1863 if (typeof payment_method !== "undefined" && typeof payment_method_option === "undefined") { 1864 $("select[name='payment_method']").after('<span class="validation-error">å¿ å¡«æ¬ä½</span>'); 1865 window.errors.push("payment_method"); 1866 window.form_validated = false; 1867 } 1868 } 1869 1870 1871 // survey_other 1872 var survey = $("select[name='survey']").val(); 1873 var survey_option = $("select[name='survey']").children("option:selected").attr('value'); 1874 var survey_other = $("input[name='survey_other']").val(); 1875 if (typeof survey_other !== "undefined" && typeof survey !== "undefined" && survey_option == 'survey_other' && survey_other.length < 1) { 1876 $("input[name='survey_other']").after('<span class="validation-error">å¿ å¡«æ¬ä½</span>'); 1877 window.errors.push("survey_other"); 1878 window.form_validated = false; 1879 } 1880 1881 1882 1883 if (/perface.com/.test(window.location.href)) { 1884 // coupon_code 1885 var coupon_code = $("input[name='coupon_code']").val(); 1886 if (typeof coupon_code !== "undefined" && coupon_code.length == 0) { 1887 $("input[name='coupon_code']").after('<span class="validation-error">å¿ å¡«æ¬ä½</span>'); 1888 window.errors.push("coupon_code"); 1889 window.form_validated = false; 1890 } else if (typeof coupon_code !== "undefined" && !coupon_code.startsWith('FWR-')) { 1891 $("input[name='coupon_code']").after('<span class="validation-error">æ¤æ¬å¿ é æ¯ "FWR-" éé åå 5使¸å</span>'); 1892 window.errors.push("coupon_code"); 1893 window.form_validated = false; 1894 } else if (typeof coupon_code !== "undefined" && coupon_code.length != 9) { 1895 $("input[name='coupon_code']").after('<span class="validation-error">æ¤æ¬å¿ é æ¯ "FWR-" éé åå 5使¸å</span>'); 1896 window.errors.push("coupon_code"); 1897 window.form_validated = false; 1898 } else if (typeof coupon_code !== "undefined" && !(/^\d+$/.test(coupon_code.slice(-5)))) { 1899 $("input[name='coupon_code']").after('<span class="validation-error">æ¤æ¬å¿ é æ¯ "FWR-" éé åå 5使¸å</span>'); 1900 window.errors.push("coupon_code"); 1901 window.form_validated = false; 1902 } 1903 1904 1905 1906 // member_code 1907 var member_code = $("input[name='member_code']").val(); 1908 if (typeof member_code !== "undefined" && member_code.length < 1) { 1909 $("input[name='member_code']").after('<span class="validation-error">å¿ å¡«æ¬ä½</span>'); 1910 window.errors.push("member_code"); 1911 window.form_validated = false; 1912 } else if (typeof member_code !== "undefined" && member_code.length > 12) { 1913 $("input[name='member_code']").after('<span class="validation-error">æ¤æ¬å¿ é æ¯12ä½ä»¥ä¸çè±æææ¸å</span>'); 1914 window.errors.push("member_code"); 1915 window.form_validated = false; 1916 } else if (typeof member_code !== "undefined" && !(/^[0-9a-zA-Z]+$/.test(member_code))) { 1917 $("input[name='member_code']").after('<span class="validation-error">æ¤æ¬å¿ é æ¯12ä½ä»¥ä¸çè±æææ¸å</span>'); 1918 window.errors.push("member_code"); 1919 window.form_validated = false; 1920 } 1921 1922 1923 1924 // staff_code 1925 var staff_code = $("input[name='staff_code']").val(); 1926 1927 if (typeof staff_code !== "undefined" && staff_code.length < 1) { 1928 $("input[name='staff_code']").after('<span class="validation-error">å¿ å¡«æ¬ä½</span>'); 1929 window.errors.push("staff_code"); 1930 window.form_validated = false; 1931 } else if (typeof staff_code !== "undefined" && staff_code.length > 12) { 1932 $("input[name='staff_code']").after('<span class="validation-error">æ¤æ¬å¿ é æ¯12ä½ä»¥ä¸çè±æææ¸å</span>'); 1933 window.errors.push("staff_code"); 1934 window.form_validated = false; 1935 } else if (typeof staff_code !== "undefined" && !(/^[0-9a-zA-Z]+$/.test(staff_code))) { 1936 $("input[name='staff_code']").after('<span class="validation-error">æ¤æ¬å¿ é æ¯12ä½ä»¥ä¸çè±æææ¸å</span>'); 1937 window.errors.push("staff_code"); 1938 window.form_validated = false; 1939 } 1940 1941 1942 1943 } 1944 1945 1946 1947 1948 // term 1949 var term = $("input[name='term']").val(); 1950 if (typeof term !== "undefined" && !$("input[name='term']").is(':checked')) { 1951 $("input[name='term']").after('<span class="validation-error"> å¿ å¡«æ¬ä½</span>'); 1952 window.errors.push("term"); 1953 window.form_validated = false; 1954 } 1955 1956 //var newsletter = $( "input[name='newsletter']" ).val(); 1957 1958 1959 1960 1961 1962 1963 1964 // custom 1965 /*$('[name^="custom_"]').each(function() { 1966 alert($(this).attr('data-label'));
1967 alert($(this).val()); 1968 });*/ 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 // Mini-Site 1979 var form_category = $("input[name='form_category']").val(); 1980 var offer = $("input[name='offer']").val(); 1981 if (typeof form_category !== "undefined" && form_category == "Mini-Site") { 1982 if (typeof offer !== "undefined" && Number(offer) <= 0) { 1983 1984 1985 1986 var offer_minisite_allow_0 = $("input[name='offer_minisite_allow_0']").val(); 1987 if (offer_minisite_allow_0 == '1') { 1988 1989 } else { 1990 $("div#user-notification").html('<span class="validation-error"> è«å å ¥åå</span>'); 1991 window.errors.push("form_category"); 1992 window.form_validated = false; 1993 } 1994 1995 /*var offer_in_val = false; 1996 $('select').each(function() { 1997 var val_in_option = $(this).children("option:selected").val(); 1998 if (val_in_option.includes("offer=") && !val_in_option.includes("offer=0")){ 1999 offer_in_val = true; 2000 } 2001 }); 2002 2003 2004 2005 if (!offer_in_val) 2006 {*/ 2007 2008 /*$("div#user-notification").html('<span class="validation-error"> è«å å ¥åå</span>'); 2009 window.errors.push("form_category"); 2010 window.form_validated = false;*/ 2011 //} 2012 } 2013 } 2014 2015 2016 2017 2018 // reCAPTCHA 2019 2020 2021 // custom required 2022 $('input, textarea').each(function() { 2023 if (!window.errors.includes($(this).attr("name"))) { 2024 var attr = $(this).attr('data-required'); 2025 if (typeof attr !== typeof undefined && attr !== false && $(this).is(':radio') && !$("input:radio[name='" + $(this).attr("name") + "']").is(":checked")) { 2026 $(this).parent().parent().after('<span class="validation-error"> å¿ å¡«æ¬ä½</span>'); 2027 window.form_validated = false; 2028 } else if (typeof attr !== typeof undefined && attr !== false && $(this).is(':checkbox') && !$(this).is(":checked")) { 2029 $(this).before('<span class="validation-error"> å¿ å¡«æ¬ä½</span>'); 2030 window.form_validated = false; 2031 } else if (typeof attr !== typeof undefined && attr !== false && $(this).val().length < 1) { 2032 $(this).after('<span class="validation-error"> å¿ å¡«æ¬ä½</span>'); 2033 window.form_validated = false; 2034 } 2035 2036 var attr = $(this).attr('data-tel'); 2037 if (typeof attr !== typeof undefined && attr !== false && $(this).val().length >= 1 && $(this).val().length < 8) { 2038 $(this).after('<span class="validation-error"> è«è¼¸å ¥ææçé»è©±</span>'); 2039 window.form_validated = false; 2040 } 2041 } 2042 }); 2043 2044 2045 $('select').each(function() { 2046 if (!window.errors.includes($(this).attr("name"))) { 2047 var attr = $(this).attr('data-required'); 2048 if (typeof attr !== typeof undefined && attr !== false) { 2049 var option_attr = $(this).children("option:selected").attr('data-blank'); 2050 if (typeof option_attr !== typeof undefined && option_attr !== false) { 2051 $(this).after('<span class="validation-error"> å¿ å¡«æ¬ä½</span>'); 2052 window.form_validated = false; 2053 } 2054 } 2055 } 2056 }); 2057 2058 return window.form_validated; 2059 2060 } 2061 2062 2063 2064 2065 2066 2067 2068 2069 function form_add_additional_data() { 2070 2071
2072 /////////////////////////////////////////////////////////////////////////////////////////////////////////////// 2073 /////////////////////////////////////////////////////////////////////////////////////////////////////////////// 2074 // additional data (added 2021-05-22) 2075 var _additional_data_i = 1; 2076 $('input, textarea').each(function() { 2077 var attr = $(this).attr('data-additional-label'); 2078 var is_checkbox_or_radio = $(this).is(':checkbox') || $(this).is(':radio'); 2079 if (typeof attr !== typeof undefined && attr !== false && $(this).val().length >= 1 && (!is_checkbox_or_radio || this.checked)) { 2080 var in_customer_email = $(this).attr('data-additional-in-customer-email'); 2081 if (typeof in_customer_email !== typeof undefined && in_customer_email !== false) var in_customer_email_text = 'in_customer_email'; 2082 else var in_customer_email_text = 'not_in_customer_email'; 2083 2084 $('<input>').attr({ 2085 type: 'hidden', 2086 id: '____additional_data_' + _additional_data_i.toString(), 2087 name: '____additional_data_' + _additional_data_i.toString(), 2088 value: '____additional_data____' + in_customer_email_text + '____' + attr + '____' + $(this).val().toString() 2089 }).appendTo('#enquiryform'); 2090 _additional_data_i++; 2091 } 2092 }); 2093 $('select').each(function() { 2094 var attr = $(this).attr('data-additional-label'); 2095 if (typeof attr !== typeof undefined && attr !== false) { 2096 var in_customer_email = $(this).attr('data-additional-in-customer-email'); 2097 if (typeof in_customer_email !== typeof undefined && in_customer_email !== false) var in_customer_email_text = 'in_customer_email'; 2098 else var in_customer_email_text = 'not_in_customer_email'; 2099 2100 var selected_vals = $(this).val(); 2101 if (selected_vals) { 2102 if (selected_vals.constructor === Array) { 2103 for (var i = 0; i < selected_vals.length; i++) { 2104 $('<input>').attr({ 2105 type: 'hidden', 2106 id: '____additional_data_' + _additional_data_i.toString(), 2107 name: '____additional_data_' + _additional_data_i.toString(), 2108 value: '____additional_data____' + in_customer_email_text + '____' + attr + '____' + selected_vals[i].toString() 2109 }).appendTo('#enquiryform'); 2110 _additional_data_i++; 2111 } 2112 } else { 2113 $('<input>').attr({ 2114 type: 'hidden', 2115 id: '____additional_data_' + _additional_data_i.toString(), 2116 name: '____additional_data_' + _additional_data_i.toString(), 2117 value: '____additional_data____' + in_customer_email_text + '____' + attr + '____' + $(this).val().toString() 2118 }).appendTo('#enquiryform'); 2119 _additional_data_i++; 2120 } 2121 } 2122 } 2123 });
2124 /////////////////////////////////////////////////////////////////////////////////////////////////////////////// 2125 /////////////////////////////////////////////////////////////////////////////////////////////////////////////// 2126 2127 2128 } 2129 2130 // Added on 2025-07-04 for dynamic values based on payment method 2131 $(document).ready(function() { 2132 $("input[name='payment_method']").on('change', function(e) { 2133 2134 const paymentMethod = $(this).val(); // "none" or "paypal" 2135 2136 // Show / hide elements based on payment method 2137 $("[data-show-on-payment-method]").hide(); 2138 $(`[data-show-on-payment-method="${paymentMethod}"]`).show(); 2139 2140 // Iterate over inputs with data-payment-none and data-payment-online attributes // not used anymore 2141 /*$('input[data-payment-none], input[data-payment-online]').each(function() { 2142 const $input = $(this); 2143 2144 // Use .data() to access data-* attributes 2145 const valNone = $input.data("payment-none"); 2146 const valOnline = $input.data("payment-online"); 2147 2148 // Set value based on payment method 2149 if (paymentMethod === "none") { 2150 $input.val(valNone || ""); 2151 } else if (paymentMethod === "paypal") { 2152 $input.val(valOnline || ""); 2153 } 2154 });*/ 2155 }); 2156 2157 $("input[name='payment_method']:checked").change(); 2158 }); 2159</script>
2159 2160 <div class="g-2-sm pad_xs_m_t"> 2161 <div><button type="button" id="offlinePaySubmit" class="btn_ghost_pink link_noline block_xs inblk_sm ha_center_xs">æäº¤</button></div> 2162 <br> 2163 2164 <div class="f-1-xs">黿ãæäº¤ãå³è¡¨ç¤ºä½ åæ20BEAUTYçã<a href="privacy" class="link_black link_hoverline" target="_blank">ç§é±æ¿ç</a>ããã<a href="termsofuse" class="link_black link_hoverline" target="_blank">æ¢æ¬¾åç´°å</a>ã</div> 2165 2166 <br> 2167 <div class="font_xs_xs"> 2168 åªæ æ¢æ¬¾åç´°åï¼<br> 2169 <ul class="tnc"> 2170 <li>åªé年滿18æ²å¥³æ§æ°å®¢æ¶ï¼æ¯äººåªéå è²»é«é©ä¸æ¬¡</li> 2171 <li>妿ªå¤ 18æ²ï¼éè¦æ¼æ³å®ç£è·äººåæä¸æ¹å¯æ¥åçç¨</li> 2172 <li>ç¦®åæ¸éæéï¼éå®å³æ¢</li> 2173 <li>妿任ä½çè°ï¼20BEAUTYä¿çæçµæ±ºå®æ¬</li> 2174 </ul> 2175 </div> 2176 <div class='g-8-xs g-9-md f-1-xs mar_xs_xxl_t f-1-xs' style='line-height: 1.75; margin-top:1.75em;'>æ¬ç¶²ç«å reCAPTCHA å Google ä¿è·ï¼ä¸¦é©ç¨ Google ç <a target='_blank' href='https://policies.google.com/privacy' style='color:black; text-decoration:none;'>ãé±ç§æ¿çã</a>å<a target='_blank' href='https://policies.google.com/terms' style='color:black; text-decoration:none;'>ãæåæ¢æ¬¾ã</a></p></div> 2177<br> </div> 2178 </div> 2179 </form> 2180 <!-- /Form --> 2181 </div> 2182 </section> 2183 <!-- /Form Section --> 2184 2185 <!-- Popup/ --> 2186 <!-- /Popup --> 2187 </main> 2188 2189<style> 2190 /* new flow: error fields */ 2191 .field-error { 2192 color: #d43636ff; 2193 font-size: 0.9em; 2194 margin-top: 12px; 2195 background: #ffffff; 2196 padding: 0.5em; 2197 position: relative; 2198 border-radius: 4px; 2199 box-shadow: 0px 1px 4px #000; 2200 } 2201 2202 .field-error::before { 2203 content: ""; 2204 position: absolute; 2205 top: -0.5em; 2206 left: 1.3em; 2207 transform: translateX(-50%); 2208 width: 0; 2209 height: 0; 2210 border-left: 10px solid transparent; 2211 border-right: 10px solid transparent; 2212 border-bottom: 10px solid #ffffff; 2213 } 2214 2215 .form-meta-slot { 2216 position: absolute !important; 2217 left: -9999px !important; 2218 width: 1px !important; 2219 height: 1px !important; 2220 overflow: hidden !important; 2221 opacity: 0 !important; 2222 pointer-events: none !important; 2223 } 2224</style> 2225
2226<script> 2227 (function() { 2228 document.addEventListener('DOMContentLoaded', function() { 2229 var form = document.getElementById('enquiryform'); 2230 if (!form) return; 2231 if (form.querySelector('[name="treatment_id"]')) return; 2232 2233 var wrap = document.createElement('div'); 2234 wrap.className = 'form-meta-slot'; 2235 wrap.setAttribute('aria-hidden', 'true'); 2236 2237 var label = document.createElement('label'); 2238 label.setAttribute('for', 'treatment_id'); 2239 label.textContent = 'Treatment ID'; 2240 2241 var input = document.createElement('input'); 2242 input.type = 'text'; 2243 input.name = 'treatment_id'; 2244 input.id = 'treatment_id'; 2245 input.value = ''; 2246 input.autocomplete = 'off'; 2247 input.tabIndex = -1; 2248 2249 wrap.appendChild(label); 2250 wrap.appendChild(input); 2251 form.appendChild(wrap); 2252 }); 2253 })(); 2254</script>
2254 2255
2256<script> 2257 // new flow: offer/treatment mapping for legacy "_dynamic" select 2258 (function() { 2259 function safeNum(v) { 2260 var n = parseFloat(String(v || '').replace(/[^0-9.]/g, '')); 2261 return isFinite(n) ? n : 0; 2262 } 2263 2264 function getOneByIdOrName(id, name) { 2265 var el = id ? document.getElementById(id) : null; 2266 if (el) return el; 2267 if (name) { 2268 var els = document.getElementsByName(name); 2269 if (els && els.length > 0) return els[els.length - 1]; 2270 } 2271 return null; 2272 } 2273 2274 function parseDynamicRaw(raw) { 2275 var out = {}; 2276 var s = String(raw || '').trim(); 2277 if (!s) return out; 2278 2279 try { 2280 // value is in querystring form: k=v&k2=v2 2281 var sp = new URLSearchParams(s); 2282 sp.forEach(function(v, k) { 2283 out[k] = v; 2284 }); 2285 return out; 2286 } catch (e) { 2287 // very old browsers fallback 2288 var parts = s.split('&'); 2289 for (var i = 0; i < parts.length; i++) { 2290 var p = parts[i]; 2291 var idx = p.indexOf('='); 2292 if (idx <= 0) continue; 2293 var k = p.slice(0, idx); 2294 var v = p.slice(idx + 1); 2295 out[decodeURIComponent(k)] = decodeURIComponent(v); 2296 } 2297 return out; 2298 } 2299 } 2300 2301 function applyOfferFields(offerNum, eventLabel) { 2302 var hasOffer = offerNum > 0; 2303 var normalizedEventLabel = String(eventLabel || '').trim(); 2304 2305 var offerEl = getOneByIdOrName('offer', 'offer'); 2306 var offerOnlineEl = getOneByIdOrName('offer_online', 'offer_online'); 2307 var prepaidEl = getOneByIdOrName('offer_online_prepaid', 'offer_online_prepaid'); 2308 var onlineDetailsEl = getOneByIdOrName('offer_online_details', 'offer_online_details'); 2309 var offlineDetailsEl = getOneByIdOrName('offer_offline_details', 'offer_offline_details'); 2310 var eventNameEl = getOneByIdOrName('eventName', 'event_name'); 2311 2312 if (!hasOffer) { 2313 if (offerOnlineEl) offerOnlineEl.value = ''; 2314 if (prepaidEl) prepaidEl.value = ''; 2315 if (onlineDetailsEl) onlineDetailsEl.value = ''; 2316 if (offlineDetailsEl) offlineDetailsEl.value = 'å è²»ç»è¨'; 2317 if (eventNameEl) eventNameEl.value = normalizedEventLabel; 2318 return; 2319 } 2320 2321 // Ensure base offer is set if empty 2322 if (offerEl && String(offerEl.value || '').trim() === '') offerEl.value = String(offerNum); 2323 if (offerOnlineEl) offerOnlineEl.value = String(offerNum); 2324 2325 var depositMode = String("booking" || 'booking'); 2326 var deposit = 0; 2327 var remain = 0; 2328 if (depositMode === 'full') { 2329 deposit = offerNum; 2330 remain = 0; 2331 } else { 2332 deposit = Math.min(100, offerNum); 2333 remain = Math.max(0, offerNum - deposit); 2334 } 2335 2336 if (prepaidEl) prepaidEl.value = String(deposit); 2337 2338 if (onlineDetailsEl) { 2339 if (depositMode === 'full') { 2340 onlineDetailsEl.value = 'ç¶²ä¸ä»æ¬¾$' + deposit; 2341 } else { 2342 onlineDetailsEl.value = 'ç¶²ä¸ä»æ¬¾é ç´è¨é$' + deposit + 'ï¼é¤é¡$' + remain + 'éå°åºæ¯ä»'; 2343 } 2344 } 2345 if (offlineDetailsEl) { 2346 offlineDetailsEl.value = offerNum > 0 ? ('å°åºä»æ¬¾ï¼HK$ ' + offerNum) : 'å°åºä»æ¬¾'; 2347 } 2348 if (eventNameEl) eventNameEl.value = normalizedEventLabel; 2349 } 2350 2351 function updateOfferFieldsFromDynamicOrHidden() { 2352 var form = document.getElementById('enquiryform'); 2353 if (!form) return; 2354 2355 var sel = form.querySelector('select[name="_dynamic"]'); 2356 if (!sel) { 2357 // No _dynamic selector; fallback to hidden values 2358 var offerEl = getOneByIdOrName('offer', 'offer'); 2359 var offerNum = safeNum(offerEl ? offerEl.value : ''); 2360 var treatmentOfferEl = getOneByIdOrName('treatmentOfferName', 'treatment_offer_name'); 2361 var treatmentNameEl = getOneByIdOrName('', 'treatment_name'); 2362 var label = ''; 2363 if (treatmentOfferEl && String(treatmentOfferEl.value || '').trim() !== '') label = treatmentOfferEl.value; 2364 else if (treatmentNameEl && String(treatmentNameEl.value || '').trim() !== '') label = treatmentNameEl.value; 2365 applyOfferFields(offerNum, label); 2366 return; 2367 } 2368 2369 var opt = sel.options && sel.selectedIndex >= 0 ? sel.options[sel.selectedIndex] : null; 2370 var raw = opt ? (opt.value || '') : ''; 2371 var params = parseDynamicRaw(raw); 2372 2373 var treatmentOfferName = (params.treatment_offer_name || '').trim(); 2374 var treatmentShortName = (params.treatment_short_name || '').trim(); 2375 var promotionCode = (params.promotion_code || '').trim(); 2376 var enquiryOfferDetails = (params.enquiry_offer_details || '').trim(); 2377 2378 var offerEl = getOneByIdOrName('offer', 'offer'); 2379 var treatmentOfferEl = getOneByIdOrName('treatmentOfferName', 'treatment_offer_name'); 2380 var treatmentShortEl = getOneByIdOrName('treatmentShortName', 'treatment_short_name'); 2381 var promotionEl = getOneByIdOrName('promotionCode', 'promotion_code'); 2382 var enquiryOfferDetailsEl = getOneByIdOrName('enquiryOfferDetails', 'enquiry_offer_details'); 2383 2384 // Always try to update text fields from _dynamic (even for free trials) 2385 if (treatmentOfferEl) { 2386 treatmentOfferEl.value = treatmentOfferName || ((opt && opt.textContent) ? opt.textContent.trim() : ''); 2387 } 2388 if (promotionEl) promotionEl.value = promotionCode; 2389 if (enquiryOfferDetailsEl) enquiryOfferDetailsEl.value = enquiryOfferDetails; 2390 2391 // If dynamic provides short name, prefer it; otherwise keep existing constant 2392 if (treatmentShortEl && treatmentShortName) treatmentShortEl.value = treatmentShortName; 2393 2394 // Offer handling rules: 2395 // - If _dynamic provides a numeric offer (including 0), use it. 2396 // - If _dynamic does not include offer at all, fallback to existing hidden offer value. 2397 // - If _dynamic provides a non-numeric offer (e.g. "Consultation"), treat as no-offer. 2398 var hasOfferKey = params && Object.prototype.hasOwnProperty.call(params, 'offer'); 2399 var offerRaw = hasOfferKey ? String(params.offer || '').trim() : ''; 2400 var offerIsNumeric = hasOfferKey ? /^[0-9.,]+$/.test(offerRaw) : true; 2401 var offerNum = 0; 2402 2403 if (hasOfferKey) { 2404 if (!offerIsNumeric) { 2405 // Consultation-like value 2406 if (offerEl) offerEl.value = ''; 2407 applyOfferFields(0, ''); 2408 return; 2409 } 2410 offerNum = safeNum(offerRaw); 2411 } else { 2412 offerNum = safeNum(offerEl ? offerEl.value : ''); 2413 } 2414 2415 if (offerEl && String(offerEl.value || '').trim() === '' && !hasOfferKey) { 2416 // keep as-is (page may intentionally have empty offer) 2417 } else if (offerEl) {
2418 offerEl.value = String(offerNum); 2419 } 2420 2421 applyOfferFields(offerNum, (opt && opt.textContent) ? opt.textContent.trim() : (treatmentOfferName || '')); 2422 } 2423 2424 document.addEventListener('DOMContentLoaded', function() { 2425 var form = document.getElementById('enquiryform'); 2426 if (!form) return; 2427 var sel = form.querySelector('select[name="_dynamic"]'); 2428 if (sel) sel.addEventListener('change', updateOfferFieldsFromDynamicOrHidden); 2429 updateOfferFieldsFromDynamicOrHidden(); 2430 }); 2431 })(); 2432</script>
2432 2433
2434<script> 2435 // Insert client-side placeholders for required fields and expose the list to JS 2436 (function() { 2437 window.__formRequiredList = ["full_name","mobile","email","age","desired_store","desired_date","desired_time","_dynamic"] || []; 2438 document.addEventListener('DOMContentLoaded', function() { 2439 window.__formRequiredList.forEach(function(fieldName) { 2440 if (!fieldName) return; 2441 var form = document.getElementById('enquiryform'); 2442 if (!form) return; 2443 var els = form.querySelectorAll('[name="' + fieldName + '"]'); 2444 if (!els || els.length === 0) return; 2445 var el = els[els.length - 1]; 2446 var next = el.nextElementSibling; 2447 if (next && next.classList && next.classList.contains('field-error')) return; 2448 var div = document.createElement('div'); 2449 div.className = 'field-error'; 2450 div.setAttribute('data-field', fieldName); 2451 div.style.display = 'none'; 2452 div.textContent = ''; 2453 if (el.parentNode) el.parentNode.insertBefore(div, el.nextSibling); 2454 }); 2455 }); 2456 })(); 2457</script>
2457 2458
2459<script> 2460 // Insert client-side placeholders for hidden required fields and expose the list to JS 2461 (function() { 2462 window.__hiddenRequiredList = ["term","pid","brandList[]","brand_short_name","payment_method"] || []; 2463 document.addEventListener('DOMContentLoaded', function() { 2464 window.__hiddenRequiredList.forEach(function(fieldName) { 2465 if (!fieldName) return; 2466 var form = document.getElementById('enquiryform'); 2467 if (!form) return; 2468 var els = form.querySelectorAll('[name="' + fieldName + '"]'); 2469 if (!els || els.length === 0) return; 2470 var el = els[els.length - 1]; 2471 var next = el.nextElementSibling; 2472 if (next && next.classList && next.classList.contains('field-error')) return; 2473 var div = document.createElement('div'); 2474 div.className = 'field-error'; 2475 div.setAttribute('data-field', fieldName); 2476 div.style.display = 'none'; 2477 div.textContent = ''; 2478 if (el.parentNode) el.parentNode.insertBefore(div, el.nextSibling); 2479 }); 2480 }); 2481 })(); 2482</script>
2482 2483
2484<script> 2485 // new flow: normalize tracking + store code for backend 2486 (function() { 2487 function normalizeStoreCode(v) { 2488 var s = String(v || '').trim(); 2489 if (!s) return ''; 2490 var parts = s.split('|'); 2491 var last = parts[parts.length - 1]; 2492 return String(last || s).trim(); 2493 } 2494 2495 function setLandingUrlDefaultWeb() { 2496 var el = document.getElementById('enquiry_landing_url'); 2497 if (!el) return; 2498 2499 var href = window.location && window.location.href ? window.location.href : ''; 2500 if (!href) return; 2501 2502 try { 2503 var u = new URL(href); 2504 var sp = u.searchParams; 2505 var hasTracking = sp.has('utm_source') || sp.has('target_source') || sp.has('ref_source') || sp.has('ref'); 2506 if (!hasTracking) sp.set('utm_source', 'web'); 2507 el.value = u.toString(); 2508 } catch (e) { 2509 el.value = href; 2510 } 2511 } 2512 2513 function syncStoreCode() { 2514 var sel = document.querySelector('select[name="desired_store"]'); 2515 var out = document.getElementById('enquiry_exp_shop'); 2516 if (!sel || !out) return; 2517 out.value = normalizeStoreCode(sel.value); 2518 } 2519 2520 document.addEventListener('DOMContentLoaded', function() { 2521 setLandingUrlDefaultWeb(); 2522 syncStoreCode(); 2523 2524 var sel = document.querySelector('select[name="desired_store"]'); 2525 if (sel) sel.addEventListener('change', syncStoreCode); 2526 }); 2527 })(); 2528</script>
2528 2529
2530<script src="/marketing/component/ui/submitButton/function/config.js"></script>
vendor: 1 bytes, line 2530
2530
2531<script src="/marketing/component/ui/submitButton/function/submit_helpers.js"></script>
vendor: 1 bytes, line 2531
2531
2532<script src="/marketing/component/ui/submitButton/function/submit_utils.js"></script>
vendor: 1 bytes, line 2532
2532
2533<script src="/marketing/component/ui/submitButton/function/checkRequiredFields.js"></script>
vendor: 1 bytes, line 2533
2533
2534<script src="/marketing/component/ui/submitButton/function/checkRequiredHiddenFields.js"></script>
vendor: 1 bytes, line 2534
2534
2535<script src="/marketing/component/ui/submitButton/function/checkMobileBeforeSubmit.js"></script>
vendor: 1 bytes, line 2535
2535
2536<script src="/marketing/component/ui/submitButton/function/bind_buttons.js"></script>
2536 </body> 2537 2538</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.