PageSourceSearch

https://brandfull.com/

html brandfull.com collected 2026-09-26 17:13:08 UTC 252,735 bytes, 3,168 lines download raw bytes

1
2<!DOCTYPE html>
3<html lang=ar dir=rtl>
4<head>
5
6    <base href="https://brandfull.com" target="_top">
7    <link rel="dns-prefetch" href="https://brandfull.com" />
8        <link rel="preconnect" href="https://cdn.brandfull.com">
9        <link rel="preconnect" href="https://cdn.brandfull.com" crossorigin>
10        <link rel="dns-prefetch" href="https://cdn.brandfull.com">
11    <link rel="preconnect" href="https://brandfullsapi.azurewebsites.net" crossorigin>
12
13    <link rel="preload" fetchpriority="high" as="image" href="https://cdn.brandfull.com/Content/slide/5eda8d90-62f3-42dd-b012-bcac9eeaefcb.jpeg?size=Big&format=webp" imagesrcset="https://cdn.brandfull.com/Content/slide/5eda8d90-62f3-42dd-b012-bcac9eeaefcb.jpeg?size=Thumb&format=webp 320w, https://cdn.brandfull.com/Content/slide/5eda8d90-62f3-42dd-b012-bcac9eeaefcb.jpeg?size=Small&format=webp 400w, https://cdn.brandfull.com/Content/slide/5eda8d90-62f3-42dd-b012-bcac9eeaefcb.jpeg?size=Medium&format=webp 700w, https://cdn.brandfull.com/Content/slide/5eda8d90-62f3-42dd-b012-bcac9eeaefcb.jpeg?size=Large&format=webp 1024w, https://cdn.brandfull.com/Content/slide/5eda8d90-62f3-42dd-b012-bcac9eeaefcb.jpeg?size=XLarge&format=webp 1280w, https://cdn.brandfull.com/Content/slide/5eda8d90-62f3-42dd-b012-bcac9eeaefcb.jpeg?size=Big&format=webp 1500w, https://cdn.brandfull.com/Content/slide/5eda8d90-62f3-42dd-b012-bcac9eeaefcb.jpeg?size=Wide&format=webp 1920w" imagesizes="100vw">
14
15
16    <title>براندفل-  منصة لبيع وشراء المتعلقات الشخصية الفاخرة - براندفل</title>
17    <meta charset="utf-8">
18    <meta http-equiv="X-UA-Compatible" content="IE=edge">
19    <meta http-equiv="content-type" content="text/html; charset=utf-8">
20    <meta http-equiv="content-language" content="ar">
21    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=2.0, user-scalable=5, shrink-to-fit=no" />
22
23        <meta name="robots" content="index,follow">
24        <meta name="googlebot" content="index,follow">
25
26    <!-- Loading JS & CSS -->
27    
27<script>!function(){var o=EventTarget.prototype.addEventListener;EventTarget.prototype.addEventListener=function(e,t,n){"touchstart"!==e&&"touchmove"!==e&&"wheel"!==e||("object"!=typeof n&&(n={capture:!!n}),n.passive=!0),o.call(this,e,t,n)}}();</script>
27
28
29        <link rel="stylesheet" href="/site-Ar.min.css?v=639260136226636726">
30<link rel="preload" href="https://cdn.brandfull.com/Themes/Cartzilla/_Font/IBMPlexSansArabic-Light.woff2" as="font" fetchpriority="low"  crossorigin="anonymous">
31<link rel="preload" href="https://cdn.brandfull.com/Themes/Cartzilla/_Font/IBMPlexSansArabic-Regular.woff2" as="font"  crossorigin="anonymous">
32<link rel="preload" href="https://cdn.brandfull.com/Themes/Cartzilla/_Font/IBMPlexSansArabic-Bold.woff2" as="font"  crossorigin="anonymous">
33<link rel="preload" href="https://cdn.brandfull.com/Themes/Cartzilla/Assets/fonts/cartzilla-icons-sub.woff2?v=1" as="font" fetchpriority="low"  crossorigin="anonymous">
34<style>
35
36
37@font-face {
38    font-family: 'IBMPlexSansArabic';
39    font-style: normal;
40    font-weight: 300;
41    src: url(https://cdn.brandfull.com/Themes/Cartzilla/_Font/IBMPlexSansArabic-Light.woff2) format('woff2');
42    font-display: swap;
43}
44
45@font-face {
46    font-family: 'IBMPlexSansArabic';
47    font-style: normal;
48    font-weight: 400;
49    src: url(https://cdn.brandfull.com/Themes/Cartzilla/_Font/IBMPlexSansArabic-Regular.woff2) format('woff2');
50    font-display: swap;
51}
52
53@font-face {
54    font-family: 'IBMPlexSansArabic';
55    font-style: normal;
56    font-weight: 700;
57    src: url(https://cdn.brandfull.com/Themes/Cartzilla/_Font/IBMPlexSansArabic-Bold.woff2) format('woff2');
58    font-display: swap;
59}
60
61
62
63@font-face {
64    font-family: "cartzilla-icons";
65    src: url(https://cdn.brandfull.com/Themes/Cartzilla/Assets/fonts/cartzilla-icons.woff2?v=6) format("woff2");
66    font-weight: normal;
67    font-style: normal;
68    font-display: block;
69}
70
71@font-face {
72    font-family: "cartzilla-icons";
73    src: url(https://cdn.brandfull.com/Themes/Cartzilla/Assets/fonts/cartzilla-icons-sub.woff2?v=1) format("woff2");
74    font-weight: normal;
75    font-style: normal;
76    font-display: block;
77    unicode-range: U+E902,U+E903,U+E904,U+E906,U+E908,U+E90A,U+E90C,U+E90F,U+E910,U+E912,U+E914,U+E916,U+E918,U+E919,U+E91A,U+E91B,U+E91C,U+E91D,U+E91F,U+E920,U+E921,U+E922,U+E923,U+E926,U+E928,U+E929,U+E92C,U+E92D,U+E92F,U+E933,U+E937,U+E938,U+E939,U+E93B,U+E93F,U+E940,U+E944,U+E945,U+E946,U+E947,U+E948,U+E94A,U+E94C,U+E94D,U+E952,U+E953,U+E954,U+E956,U+E957,U+E959,U+E95A,U+E95D,U+E95E,U+E963,U+E964,U+E965,U+E969,U+E96A,U+E96B,U+E96E,U+E970,U+E972,U+E974,U+E97A,U+E97F,U+E980,U+E982,U+E983,U+E985,U+E986,U+E987,U+E98A,U+E98B,U+E98C,U+E98D,U+E98F,U+E991,U+E994,U+E99C,U+E99F,U+E9A6,U+E9AA,U+E9AB,U+E9AE,U+E9BE,U+E9BF,U+E9C1,U+E9C3,U+E9D5,U+E9DA,U+E9DB,U+E9DD,U+E9DF,U+E9E0,U+E9E1,U+E9E2,U+E9E4,U+E9E5,U+E9E6;
78}
79
80@font-face {
81    font-family: "cartzilla-icons";
82    src: url(data:font/woff2;base64,d09GMgABAAAAAA7YAAsAAAAAGQgAAA6KAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmAAgSwRCAqrNKQCATYCJAMqCyoABCAFgRAHIBtpFFGUj1YN4OeB7ciNNa7Y8fpdT0YrmhkhyewP/DZ7RArzW19BPiIWKRysgsgd2Fg4XamThTfcias2cNHWospcpXKtXhXOla7VgRS7q740EAw4G0GKDdbZ/6T4SJ7ouzB4UtsP3qDJNbkOuvJgpbZrtQ0sksuddi/x4SkFJVSlAv9vLbW7QVL3ogAtCZeoxKGOsHHzJ7fvzb9N2oXQXBiP567MLqogbIWaKwEJ1TpUFbqKhDI1QtTWqM2CptBZ8p65IUZqZQyYtPES+69e0lsAAuEzbhOQAPA1+McAsFE/PtwzUOJo0GpDQFR5id6/CW2+toMEhuzOOA+dV1S8SsBgT8fp2UTYxfnAo18T3kv0Ur2IN9Ab5uV5VV6DN9vr9C7yrvJWe/d4u71/+3wUv3p13qy/MT2EfkL70T70Ofoveg+9jZ5H69BtaDW6GnWio1AZ4OACKMT5fLRjg1WBMjmJsruLpvl0uPXyRMABBUhAzqYBHgk3kg4SgQRWCB4YNowRGqzPLplE1DNRKo3DjCbSGFIOQqPR6f6I/6hYTigWEBoYTg7zHzYsSMi47iWax2TM/SLTb5gfh6OURccIdNJIZOPP/E1UxlaeQuM8D1FDyjIAYF0I+w+i2gBbbET9bMUoAb4nHnU+eYSIlga3Ged5CSd4s6lxscYYyZTu4RD5JfG5AWJizYBfoPVwYCzw6o7Mb/gZ0R0ieW3LVNoaw8W6oapkmwPkElIHJQAV+2u4swKUZKRr6bAd762SfrkX7LZH87Ihdq/3zZpXa1+8XgfW/+3sKBW+WoBFK1gKVf99tWJAmAObqF+IjDCyr5pZ0pvqm60lGYHMEuVf7uHlvpOuCzc0iObsZa2hH6ivnHomjdINwwq9O8uzHQruXVMnUXuxS9Zz6E+SjaF0f+ATHs6v7RjEuh/Jtf6VRLPidEu+mkH0Zq6YbgNVZ1oLtewLIoCloJwwTkHdaeRVjZ5UIcBDPOGZkAGqObOeDiOev+RfSIF3XRwZqzUUe0XDBYTR855arIkvSad7DcMSX6xyZVMzvFMJu0HQpo3ciyRJdHFGTcDaA7Ui1XqHP1xskGvJCKw7WCfTbS8j2co9CFflnpdRVL2vmiWar0WjmduD3FuzH74aSDGmsn1QXpRyvfwC1dC98mTLbfFoSeQ69d+Hz7ZJf91BxM61s8XC333XM/mOXoVp3kO5Ja0ytlkB+FlBXIsdpZWoPNtWrOeuUiro4YbFqL/ZPRkuh5sQIOxQECw/hRF2VfE0z6/4dZ/Gc4aU++JJKXpCMAATjMUujUie2Su9pNB9TQy9WGW0T3j6HbmSLaQq5/Pf21as9yF6OZNPVih2Na9UuuEnLPda865y01lxGqgFgZcGxshc7qHlvpv8vLUVlRFdPPtVb9tbhV2VZ4CR17ipsid/JxtJ4ItXHbUbRMQcDK6lw4jak+FS/QUCpMAT2eyNyb0WHDCVgO/X766+rnaJP3WnZddb5H7+KaeO8SoVQCIQxVL8uoZc6l9JlJ8IfqVoCdr25ocZq+nVXDFd1XdXe1oLtV4Ivpge
82kwA4FNS/6q90/bviOl+naXEtnhVsHjuwJyt5psaf5hkn+7GWGdb7wxe75HwexcQ1nmtnkxlI7s2JXCfAGD8SRvhXkSsFR2h/V4/QKdVbQxzTAxLBGMecRs3+cateHjFVUD0zetxKSxr+M8guUZt+I5pP4y1jJ+0GVarQYQC3yRyvYIQ4dsItM/TBH0CBj0Weqs88VlBg6xWxJ/rzQLggQFUy/sx4GsoyQEoPjz7XnvjciZS/88UFxgRDwhojjDLBaCo0nWF02xBM3cyhGZPpCsygs4ixQOlM2ApjviVy2e72hXPyZjoRe4jRb5AMBWy4aiiJw5yBZX2SEmK9mgMMwZEMUlL0Zk7mu07ehU5Ry97AtX6WaVec7+DVzHt63B91cnS4fCTi1UdPBGMu/l6sajweJhxPWr7CFD1h1r97XVVARbqhdgJJLnWHh8YgGhfTpd6/V5EsrQC672z1nKbF49JOQX5GjmCJr6sEv0jLZ1MtS1qmMm2lvR869bXEDB66kRWjKRiN07z74vPs7ADVqt2TZD7jO0BE7Yhq7Oh8IV3icg+vZo77p1u4s0L57yXxtSO0Y0mr2TArGJ6rBWN72DVuSIaDsmgrdZgQJvVyrhHClb29JF/NXG/oUXRh07RsL6uC4+j3CGAZD6lnRH1h8e/TVpttm0pzxJvhNWQuFrQijl3juiKB3R6L0nJZDHOJAwDlYQRereYb7YwFc0xmIl47RQUwZpYou0GsTbLrlSEOFdunSOo1YFUqsSSaJzpi3Bw5cTmCykqBazocIcuZmDN3cdh2hrqMfOCKPTHyNl0ucSfa7ZXEFN0ru82D8Q+Sj6RbA7HJCJ/v3xk6v2GyGOhQPOY/Nv4AcKv11qke/IcHvAMD2RE3U8fM4X4XhMA/GAEoYabhBF2MNMlYwFjN8N1d9niK8GmRIp35s7Ocs8tfVoG5LxxLN4C+XZxyI+wRETYbc3OysIJHgOTW0+jSpcsglse2seUFsHgRuvCMnyoLfNxZErssW5+Wrp33q/n41p935DpgTNIZvuf3CGtLe+4E1do9WQYfTIixGvlyo2ESEKF1tnCLaLkq92kL1/K7Ryc0ptssLA/ysf5p4iQrboqll6+HeqrEEzrHVmMqOvZd0Pd5N7sZzO6bxTcV00fTw82pqSnysQHz31rfruc8FocPUqV29oyG1SyWgb//5tYti51weIer4C4A+BbLN2/+lcWSy1ns37ZslmfUX1iEtvZiy35ZpTY3V3utjR0njI49z4NQ/u8bTQ5qCObCWFgh5vNSDGK1hE6eK16FXBdW9OlKwJPjRqe4PbDciQQvNtWiBoOlteFQq6DJJ2hXr/rDp48/3tuDtHH60D3bNHawXYwZpw/XxfwQOi0kf1A8+NYo8AhN5MuOqyzfOzspHbiiOLtZUd73/xZxln/3C+//KJn1eWiB0f/OpSwHW8NWE8z/lBTvDzp4QZj34H70Lht2+LIws7098Z9p05uSX7+W5bz/f+7hJQ00tmz6Dz/ENa3fPvPJz4LCK1dGN+D1G8NUtlk7tn++06D79rZoevdDrdq/ZJVtRvMpig5Z/nXvQPy0b7/T7ycZ21uyZ948D5JvlZ5Nm3oFYTICnsBuXuvT6LT6be6DBwEuHdrm1ug0+qHtzWx/Gu3XVVteEfGEsN/aT6zf6fvFWXeivT3ULJoxUjNuoGBkbFKlWaDZQ6rla167l1SsUY/TjJNGjY7CVOPU48vX1tf7R+hJO4vFmipzEgDE78an7MJppxMALM3NOQYtEUktu21mmdm1RNwfcxuLFOcllZPeisVvSeVJeWLknI0dSaM2SZzOu93d9q7u2xAxyelLakh6qjKnDvupQ+YpxqCllmyulZktMJHPvlw6SSlzXt4MY+yujUgZp+xmD1bIK8MWc5AHDwb6ZZ5qT667sanHg7kwAKjmqOf19DTpG12XXTqI79gf1BhkNOkdy+uS3utBwQTEgnFo4EifSFD0W8empIwt+S2daHBXhyADU7S5072eksl2p97fGuQUpnTQGetq1i+uriavJ2srMQsMN6ImOr35qXv8kWQG8d0XbB1AEjONkMhIhq5//3nBTRgOOBiR4Bh6auXyA5BA5stfajzxIG88g882HVfL3cIwBRoDer3eGl5NY+So8+GmMy25eZ8GTKZnn/ykljOQy8odeGYMDACgQ2QfY503z3pvKZNrNPJnUuVD8+o2Pooax58+nT9OAQBw5+e3bKwUq2YdxtA7j+8wFPVeAJDlKaPTwf1YAmV2EqdwS2NpLqD74B3y9toH4I8/cFqLEAU5T/JQrBA3zHJgHms6V1/smjbN9U7PLrJWW2167jsovzhcv84MHTUoeUfWchjJV3EN8hXt/UtGGviGJSN8t86tNHDzTWkjx0/IyJhgRYKZXETNZHMnaJSGycQ3o7ljHBIsKvkTuCF2OS0xeezb+32YTlQmEpr7UvGG7+k7ZY/SZZJT0q1pY8fJTSn5q1li3mPe+CkT/zCNo2K205iv6OLTxqS1W4osbT7XBD6t8srlSUkh6MSJKGli0uUrI0bkiO8iSXLIJLmCEePx1F87Gh9/7Gr9ccUgSVePJR+99pzpfX0zJLKRt4AIB1I1VWRUUiBCSVXa1EP9ZJlkxnn8tauzdGKNSFOCpCMXLZuv1yNWF+muXYMxQW1dErVa2oXYECUuz0c6eSYWKUB+bcZOQGh1St2okhUrUYmXO3NLXbt4NRVGdvmyMoQfyxQSDArmNbyKigcAlJbmvvz8gtJh5AWxtq7OHhNGU86yx2XHllfE5cTaHVreMoGJyjDlLOGqwGF/eEVFrHtPDmTPppiso0er/4exDu4gpUEkrPmqL2L+hEye5ebznRZcW6bItf5LblzsL79Md3K/LHOJcBmRFtjO+Q6ffM+4Lbqo6as68rNuxqRv2rqqXnbfkFlUFusmj4gVExThhhmrPBQyk0wJLa8BuVxmjQl897aqeNmbLPuF/E19in0FtgBizN3VsKXrOF+AGY7XGLgCgYF7rJZrEPBPUL/XBQy3UIo5ifwAYjg7nBjAT+QUU6fodN9TU3R+L/yMmZKykC5WKh1LpqfqdNu7WqiL40csUCqNEdwMpXJmBD/eLtmbH/i0sbE3kB3Y23ji18D8fdK7VCTUh4b6QhHWD5I46fcfNftlKHoRGkxqfQUAvrYok9BW4vtzrhBud8XgiH22EdbxpyQMbs5nL7rGaFJf0xhUt7pxAHfJfu4/zXn+499S/R7aJv+xkY264Rt83yra/+cHVMADjCJA3yKADuU9ZDdzaR4cERCHxWCcCVBk84cvGRKAALi/pXC1fjEehgF3Z4JtZ6IUkwAFiU4W+QyYBk5YAIugCObckEFpdLEZUAzzoARSIB8K4evCnZBO6Hz0Io/vnAdfQDzIgQAXAAA=) format("woff2");
83    font-weight: normal;
84    font-style: normal;
85    font-display: block;
86    unicode-range: U+E904,U+E908,U+E910,U+E912,U+E918,U+E920,U+E940,U+E944,U+E945,U+E946,U+E959,U+E95A,U+E972,U+E97A,U+E982,U+E98D,U+E99F,U+E9DB,U+E9E4;
87}
88
89
90
91@font-face {
92    font-family: "digital";
93    src: url(https://cdn.brandfull.com/Themes/Cartzilla/_Font/digital-7.woff2) format('woff2');
94    font-weight: normal;
95    font-style: normal;
96    font-display: swap;
97}</style>
98    <link rel="preload" href="https://cdn.brandfull.com/script.min.js?v=639260136226636726" as="script" fetchpriority="high">
99
100    <link rel="preload" href="https://cdn.brandfull.com/InitData.ar.js?v=639260136446764345" as="script">
101    <style>
102        .cart-drawer{position:fixed;top:0;right:0;width:380px;max-width:92vw;
102height:100vh;transform:translateX(var(--cart-hide-tx,100%));visibility:hidden}
103        [dir="rtl"] .cart-drawer{right:auto;left:0}
104        [dir="rtl"]{--cart-hide-tx:-100%}
105        .filter-drawer{position:fixed;top:0;left:0;width:340px;max-width:88vw;transform:translateX(var(--filter-hide-tx,-100%));visibility:hidden}
106        [dir="rtl"] .filter-drawer{left:auto;right:0}
107        [dir="rtl"]{--filter-hide-tx:100%}
108        .modal{display:none}
109        .seo-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
110    </style>
111    <!-- ios support -->
112    <meta name="mobile-web-app-capable" content="yes" />
113    <meta name="apple-mobile-web-app-capable" content="yes" />
114    <meta name="application-name" content="PWA Workshop" />
115    <meta name="apple-mobile-web-app-title" content="PWA Workshop" />
116    <meta name="msapplication-starturl" content="/" />
117    <link rel="apple-touch-icon" sizes="180x180" href="https://cdn.brandfull.com/Media/BrandFull/apple-touch-icon.png?version=639260136446764345">
118    <meta name="apple-mobile-web-app-status-bar" content="#34200C" />
119    <meta name="msapplication-TileColor" content="#34200C" />
120    <meta name="theme-color" content="#34200C" />
121
122    <!-- Favicon Icon -->
123    <link rel="icon" type="image/x-icon" href="https://cdn.brandfull.com/Media/BrandFull/favicon.png?version=639260136446764345" />
124    <link rel="icon" type="image/png" sizes="32x32" href="https://cdn.brandfull.com/Media/BrandFull/favicon-32x32.png?version=639260136446764345">
125    <link rel="mask-icon" href="https://cdn.brandfull.com/Media/BrandFull/safari-pinned-tab.svg?version=639260136446764345" color="#5bbad5">
126    <link rel="shortcut icon" href="https://cdn.brandfull.com/Media/BrandFull/safari-pinned-tab.svg?version=639260136446764345" color="#5bbad5">
127
128    <!--====== Required meta tags ======-->
129    
130    
131
132
133<meta name="title" content="السعودية | الموضة والرفاهية">
134<meta name="description" content="منصة لشراء وإعادة بيع العلامات التجارية الفاخرة. نحن نمكن عملائنا من البيع مباشرة من خزائنهم والاستفادة من القيمة المالية للعناصر المخزنة.">
135<meta name="keywords" content="براندفل , ماركات, الفاخرة, ملابس المصممين المستعملة, أزياء, ساعات, حقائب يد, أحذية, مجوهرات, عتيق, نساء, رجال, مستعملة, إعادة بيع, عبر الإنترنت">
136
137<meta itemprop="name" content="السعودية | الموضة والرفاهية">
138<meta itemprop="description" content="منصة لشراء وإعادة بيع العلامات التجارية الفاخرة. نحن نمكن عملائنا من البيع مباشرة من خزائنهم والاستفادة من القيمة المالية للعناصر المخزنة.">
139<meta itemprop="image" content="https://cdn.brandfull.com/Media/BrandFull/social-logo.png?version=639260136446764345">
140
141<meta property="og:url" content="https://brandfull.com/ar-sa/">
142
143
144<meta property="og:title" content="السعودية | الموضة والرفاهية">
145<meta property="og:description" content="منصة لشراء وإعادة بيع العلامات التجارية الفاخرة. نحن نمكن عملائنا من البيع مباشرة من خزائنهم والاستفادة من القيمة المالية للعناصر المخزنة.">
146<meta property="og:type" content="website">
147<meta property="og:image" itemprop="image" content="https://cdn.brandfull.com/Media/BrandFull/social-logo.png?version=639260136446764345">
148
149<meta name="twitter:card" content="summary_large_image">
150<meta name="twitter:title" content="السعودية | الموضة والرفاهية">
151<meta name="twitter:description" content="منصة لشراء وإعادة بيع العلامات التجارية الفاخرة. نحن نمكن عملائنا من البيع مباشرة من خزائنهم والاستفادة من القيمة المالية للعناصر المخزنة.">
152<meta name="twitter:creator" content="Brandfull">
153<meta name="twitter:image" content="https://cdn.brandfull.com/Media/BrandFull/social-logo.png?version=639260136446764345">
154
155
156
157<link rel="canonical" href="https://brandfull.com/ar-sa/"/>
158
159
160    
161
162    
163
164<script type="application/javascript">
165    var m_loadIndex = 0;
166    var m_listScript = [];
167
168    // GTM's snippet used to create this at head-parse time; it is deferred now (see the
169    // <template id="UI_headScript"> injector at the bottom of this file), and
170    // Tools/Deferred/ThirdParty.js -- the only other place that declares the name -- is fetched
171    // on idle. Anything touching bare `dataLayer` before either arrives throws a ReferenceError,
172    // and a Portal-authored blob does exactly that from inside a doLoadScript callback, which
173    // fires long before both. Seed the array here: GTM's own `w[l] = w[l] || []` adopts THIS
174    // array, so events pushed before gtm.js loads are still replayed rather than lost.
175    // Safe against every later writer -- `var dataLayer;` in ThirdParty.js keeps the existing
176    // value (a var redeclaration of a live global does not reset it), and doSetThirdParty only
177    // assigns when its argument is non-null.
178    window.dataLayer = window.dataLayer || [];
179
180    // On the CDN with every other script the app loads -- scriptPage.min.js, scriptGallery.min.js,
181    // Handlers/Pages/*.js, Tools/Deferred/ThirdParty.js. /InitData.js is the single exception and
182    // has to stay: it is generated per language and company by our own HostController.
183    //
184    // It MUST stay in step with the <link rel=preload as=script> in both themes' _Layout:
185    // doGetVersionedUrl appends the same ?v= the preload carries, so the two URLs match byte for
186    // byte and the preloaded bytes are the ones that run. Point one at the CDN and the other at this
187    // origin and the bundle is simply downloaded twice. Neither carries crossorigin, so both are
188    // no-cors fetches and the preload is reused -- adding it to one alone would split them again.
189    //
190    // m_CDNUrl is empty on any build that serves its own assets, so this is "/script.min.js"
191    // unchanged in local dev, and doCheckOwnAsset answers true either way (leading '/', or the
192    // m_cdnBase prefix), which is what keeps the ?v= and the async-and-first placement.
193    var defaultScript = "https://cdn.brandfull.com/script.min.js";
194    var m_isEnumReady = false;
195
196    // The whole-site blobs -- the category tree, the company and country lists, the enum translation
197    // dictionary -- served as one cacheable file by HostController instead of being inlined into
198    // every HTML response (~280 KB of a 784 KB page, the category tree alone 270 KB of it).
199    //
200    // On the CDN like every other script, even though this one is an MVC route rather than a file --
201    // so is scriptPage.min.js, which has always been served from there. The response is a pure
202    // function of (lang, v): HostController composes it from statics keyed on nothing else, and the
203    // action drops the Set-Cookie headers the middleware seeds, which is what a CDN refuses to cache
204    // against.
205    //
206    // The language is in the URL because a script element sends no custom headers, so the `lang`
207    // header the rest of the app rides on is not available to it - and it is a PATH segment rather
208    // than ?lang= so that a CDN cannot cache one language and serve it to every visitor. See
209    // SettingManager.doGetInitDataPath, which the preload in _Layout builds from too.
210    //
211    // ?v= is written here rather than left to doGetVersionedUrl, and it is m_version -- the API's
212    // data version -- because this file IS API data: the category tree, the company and country
213    // lists, the enum translations. An /AutoRefresh that changes them without a redeploy has to
214    // change this url, and the build token would not move. doGetVersionedUrl sees the v= and adds
215    // nothing, so this stays byte-identical to the preload in _Layout, which spells it the same way.
216    var m_initDataUrl = "https://cdn.brandfull.com/InitData.ar.js?v=639260136446764345";
217
218    // Where the fold is, straight from the value doGenerateContentfull (called in _LayoutPreload)
219    // used to pick which div templates to inline and which image to preload. One number, one
220    // definition (SettingManager.m_foldHeight). The client no longer walks the fold to decide which
221    // sections reserve a height -- every un-hydrated section holds the same 320px floor -- but the
222    // value is still read by the div loader, so it stays emitted here.
223    var m_foldHeight = 700;
224
225    // event.persisted == restored from the back/forward cache: the whole page came back frozen from
226    // memory, so nothing re-ran and m_currentCart still holds whatever it held when the visitor left.
227    // This used to call document.location.reload(), which fixed the staleness by throwing away the
228    // free instant restore -- re-downloading script.min.js, re-binding every Knockout template and
229    // re-issuing the div-section calls, on every single back navigation.
230    // doInitDataPageCart() re-fetches just the cart (CartService.GetInitData) and repopulates
231    // m_currentCart, which is what the header badge, the drawer and the totals all read. Its default
232    // arguments (reloadPage = false, url = '') mean it never navigates or reloads.
233    window.addEventListener('pageshow', function(event) {
234        if (!event.persisted)
235            return;
236        // Guard: the handler is created in the doLoadScript callback below. A restore always implies a
237        // fully-initialised page, but a restore racing a failed script load would otherwise throw here.
238        if (typeof m_handlerSession == "object" && m_handlerSession != null)
239            m_handlerSession.doInitDataPageCart();
240    });
241
242    function doLoadReady(url) {
243        var item = m_listScript.find(item => item._url == url);
244        if (item._isLoaded == false)
245        {
246            item._isLoaded = true;
247            doRunOnReady(url, true);
248        }
249    }
250
251    var m_cdnBase = "https://cdn.brandfull.com";
252
253    // The BUILD's token (SettingManager.m_assetVersion), not the API's data version. It buys nothing
254    // here to spend a thought on which: the bundles this versions ship with the binary, and the one
255    // url that is API data -- /InitData.js -- carries its own ?v= already, which doGetVersionedUrl
256    // leaves alone. Read the comment on SettingManager.m_assetVersion for why the two were split:
257    // versioning script.min.js with a number the API owns meant a front-only deploy re-served the
258    // same immutable url, and visitors ran an old bundle behind new markup.
259    var m_assetVersion = "639260136226636726";
260
261    // Free-shipping teaser sentences, whole rather than assembled from labels. The teaser used to be
262    // built in the view out of "You already have" + a number + "off your shipping" + ..., and the
263    // translation service sees each fragment alone: "off your shipping" came back as the imperative
264    // "انزل من شحنك" ("get off your shipment"), and the Arabic sentence read as nonsense. One label per
265    // sentence gives the translator the whole clause and lets it place the number itself, which RTL
266    // needs. Substitution is doGetShipmentTeaserMessage in Handler_Session. Json.Serialize, not bare
267    // quotes: these strings are machine-translated and may legitimately contain a quote.
268    var m_textShipmentTeaserSaved = "\u0644\u0642\u062F \u0648\u0641\u0631\u062A {0} {1} \u0645\u0646 \u062A\u0643\u0644\u0641\u0629 \u0627\u0644\u0634\u062D\u0646";
269    var m_textShipmentTeaserDiscount = "\u0644\u062F\u064A\u0643 \u0628\u0627\u0644\u0641\u0639\u0644 \u062E\u0635\u0645 \u0634\u062D\u0646";
270    var m_textShipmentTeaserTopUp = "\u0623\u0636\u0641 \u0627\u0644\u0645\u0632\u064A\u062F \u0645\u0646 {0} {1} \u0644\u0644\u062D\u0635\u0648\u0644 \u0639\u0644\u0649 \u0634\u062D\u0646 \u0645\u062C\u0627\u0646\u064A";
271
272    // Is this one of our own assets, as opposed to a third-party SDK?
273    //
274    // The old test was `url.indexOf('@SettingManager.m_CDNUrl') == -1`. m_CDNUrl is an empty
275    // string whenever the app serves its own assets (local dev, and any deployment without a
276    // separate CDN host) -- and "anything".indexOf("") is 0, never -1. Every URL therefore
277    // looked like ours, which mattered because the branches below both version the URL and
278    // choose defer-vs-async from this answer.
279    // A root-relative URL is same-origin by definition, and it is answered before the CDN test:
280    // /InitData.js is served by our own HostController, never by the CDN host, so with a CDN
281    // configured the old form called it third-party -- which skipped the ?v= cache-bust that is the
282    // only thing invalidating it across deploys.
283    function doCheckOwnAsset(url) {
284        if (url.charAt(0) === '/')
285            return true;
286        return m_cdnBase ? url.indexOf(m_cdnBase) === 0 : false;
287    }
288
289    // Cache-bust our own assets so a deploy is actually picked up, and never touch a
290    // third-party URL: several already carry a query string (Google Maps key/callback,
291    // MISPay authorize, Checkout.com), and a second "?" makes them malformed.
292    function doGetVersionedUrl(url) {
293        if (!doCheckOwnAsset(url))
294            return url;
295
296        // Already versioned by the server -- /InitData.js, which is API data and so carries
297        // m_version rather than the build token. Appending a second v= here would both make it a
298        // different url from the <link rel=preload> in _Layout (two downloads of the same file) and
299        // hand the server two values for one parameter.
300        if (url.indexOf('?v=') !== -1 || url.indexOf('&v=') !== -1)
301            return url;
302
303        return url + (url.indexOf('?') === -1 ? '?' : '&') + 'v=' + m_assetVersion;
304    }
305
306    function doLoadScript(callBack, url = defaultScript, isModule = false) {
307        var item = m_listScript.find(item => item._url == url);
308        if (!item) {
309            item = { _isReady: false, _url: url, _callBack: [callBack], _isLoaded: false };
310            m_listScript.push(item);
311            
312            var script = document.createElement("script");
313            if (typeof callBack == "function" && !isModule)
314                script.type = "application/javascript";
315            else {
316                script.type = "module";
317                script.innerText = (callBack + "").replace("URL", url);
318            }
319            script.src = doGetVersionedUrl(url);
320            
321            //script.defer = true;
322            script.charset = "utf-8"; 
323            script.addEventListener('load', function () {
324                doLoadReady(url);
325            });
326
327            script.onerror = function () {
328                item._isError = true;
329                console.log("Error loading " + url);
330                // Never leave the queue standing behind a script that is not coming. doRunOnReady
331                // steps over errored items when it picks the head, but nothing else would wake it,
332                // and for /InitData.js this is also what releases doSetEnumManager's fallback.
333                doRunOnReady(url, true);
334            };
335
336            try {
337                // Third-party SDKs are deferred and appended; ours are async and put first so
338                // they start downloading as early as possible.
339                if (!doCheckOwnAsset(url))
340                {
341                    script.defer = true;
342                    document.head.appendChild(script);
343                }
344                else{
345                    script.async = true;
346                    var head = document.getElementsByTagName("head")[0];
347                    head.insertBefore(script, head.firstChild);
348                }
349            } catch (error) {
350                //once load before
351                console.log(error);
352                setTimeout(doRunOnReady, 1000, url, true);
353                return false;
354            }
355        }
356        else if (item._isReady === true) {
357            // Synchronous, because the script this callback waited for has already loaded. That is
358            // exactly the state an ajax view swap runs in: doHtmlSetInner evaluates the swapped-in
359            // page's inline block, it calls doLoadScript for a bundle that is already _isReady, and
360            // the callback runs right here, inside that eval. doLoadViewAjax now compares
361            // X-Asset-Version against m_assetVersion and navigates instead of swapping, so a skew
362            // introduced by the RESPONSE no longer reaches this line -- see doRunCallBack below for
363            // what still does.
364            if (typeof callBack == "function")
365                doRunCallBack(callBack);
366        }
367        else {
368            item._callBack.push(callBack);
369        }
370    }
371
372    // Run one page callback, and treat a missing symbol as a bundle that cannot serve this markup.
373    //
374    // A ReferenceError out of a page's own callback -- "doFinishPaintEarly is not defined",
375    // "doSetHandlerPageScroller is not defined" -- is never a typo in the view: those calls sit INSIDE a
376    // doLoadScript callback, so the bundle demonstrably arrived. It means the bundle that arrived is
377    // an OLD build. A tab held open across a deploy keeps the script.min.js it loaded then, and an
378    // ajax swap pulls markup from the server as it is NOW; ?v= cannot repair that, because the swap
379    // never re-loads the bundle and the old one is already parsed. A stale or failed
380    // Handlers/Pages/*.js throws the identical error and is fixed by the identical answer.
381    //
382    // Second line of defence since doLoadViewAjax gained its X-Asset-Version check, which stops the
383    // skew before anything is swapped. What still lands here is what no response header can see: a
384    // stale or failed Handlers/Pages/*.js, a bundle the CDN served old under a current ?v=, and the
385    // one navigation per build doClaimBuildNavigation lets through so a mixed fleet cannot ping-pong.
386    //
387    // The answer is to stop and let the browser fetch the document properly: the new document carries
388    // a new m_assetVersion, and every ?v= in it then points at the matching build.
389    //
390    // Keyed on m_assetVersion so it cannot loop -- the flag records the build we already reloaded
391    // for, so a genuine bug in the current build reloads once and then stops. A storage failure
392    // (Safari private mode) means no flag can be kept, so it does not reload at all.
393    function doReloadOnceForBuild() {
394        try {
395            if (sessionStorage.getItem('bundleReload') == m_assetVersion)
396                return false;
397            sessionStorage.setItem('bundleReload', m_assetVersion);
398        }
399        catch (storageError) { return false; }
400        window.location.reload();
401        return true;
402    }
403
404    function doRunCallBack(callBack) {
405        try {
406            callBack();
407        }
408        catch (error) {
409            console.log(error);
410            if (!(error instanceof ReferenceError))
411                return;
412            doReloadOnceForBuild();
413        }
414    }
415
416    // /InitData.js carries the 111 enums, m_jsonTranslate and the three jsonList* blobs. It is
417    // fetched, not inlined, so it can fail -- and if it does, every one of those globals is missing
418    // and nothing on the page would ever run. Deliberately keyed on _isError and not on a timeout,
419    // so a slow file is waited for rather than given up on.
420    function doCheckInitDataFailed() {
421        var item = m_listScript.find(item => item._url == m_initDataUrl);
422        return item ? item._isError === true : false;
423    }
424
425    function doSetEnumManager(url) {
426        // TranslateEnum used to arrive with script.min.js and only m_jsonTranslate came from
427        // /InitData.js. The enums moved there too, so both tests now answer the same question --
428        // "has /InitData.js landed" -- and are asked together. Neither says anything about the
429        // bundle any more; that is what the doApplyTranslations test further down is for.
430        //
431        // Not here yet -> "not yet". Gone for good -> RELOAD, once per build, on the same
432        // sessionStorage guard doRunCallBack uses. Standing empty objects up is no longer a
433        // degraded-but-working page the way it was when the enums were in the bundle: every page on
434        // the site has a binding that reads one, so an empty stand-in trades one failed request for
435        // a page of failed bindings. A reload is the only thing that can actually fix it, and the
436        // guard is what stops it looping.
437        //
438        // If the reload has already been spent on this build (or sessionStorage is unavailable, as
439        // in Safari private mode), fall through to the old behaviour: empty lists, keys for labels,
440        // no category menu. Worse than it was, but still a page.
441        if (typeof TranslateEnum != "object" || typeof m_jsonTranslate != "object") {
442            if (!doCheckInitDataFailed())
443                return false;
444            if (doReloadOnceForBuild())
445                return false;
446
447            if (typeof TranslateEnum == "undefined") TranslateEnum = {};
448            if (typeof m_jsonTranslate != "object") m_jsonTranslate = {};
449            if (typeof jsonListCategory == "undefined") jsonListCategory = [];
450            if (typeof jsonListCompany == "undefined") jsonListCompany = [];
451            if (typeof jsonListCountry == "undefined") jsonListCountry = [];
452        }
453
454        // Comes from _LayoutScriptTail at the foot of the document. Same "not yet" answer as the
455        // tests above: doRunOnReady waits on DOMContentLoaded, which is the instant it comes into
456        // being.
457        //
458        // Never write a literal body tag in a comment inside an inline script. doLoadViewAjax
459        // pulls a full-page ajax response apart by searching the TEXT for one, so a mention in
460        // the head matches 20 KB before the real element and the rest of this script gets
461        // written into the page as visible text. That shipped. Ajax.ts no longer scans for it,
462        // but the phrasing here stays deliberate.
463        // doApplyTranslations comes from script.min.js (Tools/Enums.ts). Nothing above tests for the
464        // bundle any more: TranslateEnum moved to /InitData.js with the other 110 enums, so the
465        // TranslateEnum test now proves /InitData.js landed and says nothing about the bundle. Without
466        // this, /InitData.js winning the race against the bundle threw
467        // "doApplyTranslations is not defined" out of the try below on every such load.
468        if (typeof doApplyTranslations != "function" || typeof doApplySettingByCompany != "function")
469            return false;
470
471        try {
472            doApplyTranslations(m_jsonTranslate);
473            doApplySettingByCompany();
474        } catch (error) {console.log(error);  return false;}
475
476        m_isEnumReady = true;
477        return true;
478    }
479
480
481    // Nothing may run before the document has finished parsing, and the two things that gate a
482    // callback resolve on their own events: doApplySettingByCompany appears when the parser reaches
483    // _LayoutScriptTail, and TranslateEnum / m_jsonTranslate appear when script.min.js and
484    // /InitData.js load. So this is entirely event-driven -- there is no timer left in it.
485    //
486    // It used to be setTimeout(..., sleepTime) with sleepTime += 50 on every miss -- 50, 100, 150,
487    // 200 -- and the escalated value was then carried into the readyState test and into the
488    // queue-order test, where scriptPage.min.js polled behind script.min.js on its own growing timer.
489    // Dead latency sitting in front of doSetSetting, i.e. in front of the page's bind, and the page
490    // gate charges every millisecond of it to LCP.
491    //
492    // The `url` argument is now only a hint about WHY we were woken. What actually runs is decided by
493    // walking the queue from its head, which is what makes the ordering safe no matter which script
494    // wins the race: whoever arrives last finds everything before it already loaded and drains the
495    // lot. Draining only `url` would deadlock -- the head could be ready with nobody left to notice.
496    function doRunOnReady(url, byscript = false) {
497        if (document.readyState === "loading") {
498            document.addEventListener('DOMContentLoaded', function () { doRunOnReady(url, byscript); }, { once: true });
499            return ;
500        }
501
502        // Still missing a dependency. Do NOT schedule a retry: every one of them arrives on a load
503        // event that calls straight back in here.
504        if(m_isEnumReady == false && !doSetEnumManager(url))
505            return ;
506
507        try {
508            //console.log("ByScript " + byscript + ", " + url + "  "+document.readyState)
509            for (;;) {
510                // The head of the queue: the first script still owing its callbacks. One that failed
511                // to load is stepped over rather than left at the head -- it is never becoming ready,
512                // and leaving it there would wedge everything behind it.
513                var item = m_listScript.find(x => x._isReady == false && x._isError != true);
514
515                // Nothing waiting, or the head has not arrived yet -- and callbacks run in request
516                // order, so anything behind it waits for its load event.
517                if (!item || item._isLoaded != true)
518                    return ;
519
520                while (item._callBack.length != 0) {
521                    var callBack = item._callBack.shift();
522                    // Detached by setTimeout, so the try around this loop never sees what the
523                    // callback throws -- doRunCallBack is the only thing that can.
524                    if (typeof callBack == "function")
525                        setTimeout(doRunCallBack, 0, callBack);
526                }
527
528                item._isReady = true;
529                //console.log("ByScript " + item._url + "  is passed")
530            }
531        }catch (error) {
532            console.log(error);
533        }
534    }
535
536</script>
536
537
538    
538<script>
539        function doGetBrowserName() {
540            var nAgt = navigator.userAgent;
541            var browserName = navigator.appName;
542            var nameOffset, verOffset;
543
544            if ((verOffset = nAgt.indexOf("OPR/")) != -1)
545                browserName = "Opera";
546            else if ((verOffset = nAgt.indexOf("Opera")) != -1)
547                browserName = "Opera";
548            else if ((verOffset = nAgt.indexOf("MSIE")) != -1)
549                browserName = "Microsoft Internet Explorer";
550            else if ((verOffset = nAgt.indexOf("Chrome")) != -1)
551                browserName = "Chrome";
552            else if ((verOffset = nAgt.indexOf("Safari")) != -1)
553                browserName = "Safari";
554            else if ((verOffset = nAgt.indexOf("Firefox")) != -1)
555                browserName = "Firefox";
556            else if ((nameOffset = nAgt.lastIndexOf(' ') + 1) <
557                (verOffset = nAgt.lastIndexOf('/'))) {
558                browserName = nAgt.substring(nameOffset, verOffset);
559                if (browserName.toLowerCase() == browserName.toUpperCase())
560                    browserName = navigator.appName;
561            }
562            return browserName;
563        }
564
565        function doGetSystemInfo() {
566            var browserName = doGetBrowserName();
567            var nav = navigator || {};
568            var scr = (typeof screen != "undefined") ? screen : {};
569            var data = decodeURI(window.location.href) + "#" + browserName + "#" + nav.platform + "#"
570                + "\nUA: " + nav.userAgent
571                + "\nViewport: " + window.innerWidth + "x" + window.innerHeight + " @" + (window.devicePixelRatio || 1) + "x"
572                + "\nScreen: " + (scr.width || "?") + "x" + (scr.height || "?")
573                + "\nLang: " + (nav.language || "?") + " | Online: " + nav.onLine + " | Mem: " + (nav.deviceMemory ? nav.deviceMemory + "GB" : "?")
574                + "\nReferrer: " + document.referrer;
575            return data;
576        }
577
578        // Client-side dedupe. The hash identifies the *fault*, not the visit: page URLs,
579        // line/col and cache-busting query strings are deliberately left out, so the same
580        // error raised on 500 product pages collapses to one hash and is posted once.
581        // Kept in localStorage so it also survives reloads and in-app-browser page hops --
582        // repeat visits from the same device stop re-posting a fault we already have.
583        var m_sentHash = {};                 // this page load; still works when storage is blocked
584        var m_hashKey = "errHash", m_hashMax = 100;
585
586        function doGetStackSignature(stack) {
587            var lines = ("" + stack).split("\n"), out = [], i, m;
588            for (i = 0; i < lines.length && out.length < 5; i++) {   // 5 frames: deep recursion collapses
589                m = lines[i].match(/^\s*at\s+([^\s(]+)/)             // Chrome/Edge: "    at doFoo (url:1:2)"
590                 || lines[i].match(/^\s*([^\s@]+)@/);              // Safari/Firefox: "doFoo@url:1:2"
591                if (m && m[1])
592                    out.push(m[1]);
593            }
594            return out.join(">");
595        }
596
597        function doGetHash(text) {
598            var h = 0x811c9dc5;              // FNV-1a, 32-bit
599            for (var i = 0; i < text.length; i++) {
600                h ^= text.charCodeAt(i);
601                h = (h + ((h << 1) + (h << 4) + (h << 7) + (h << 8) + (h << 24))) >>> 0;
602            }
603            return h.toString(36);
604        }
605
606        // true = already reported, skip. Marks as seen on first call.
607        function doCheckSentBefore(hash) {
608            if (m_sentHash[hash] === true)
609                return true;
610            m_sentHash[hash] = true;
611            var list = [];
612            try { list = (localStorage.getItem(m_hashKey) || "").split(","); } catch (e) { }
613            if (list.indexOf(hash) != -1)
614                return true;
615            list.push(hash);
616            if (list.length > m_hashMax)     // bounded ring, oldest hashes fall off
617                list = list.slice(list.length - m_hashMax);
618            try { localStorage.setItem(m_hashKey, list.join(",")); } catch (e) { }
619            return false;
620        }
621
622        function doReportError(kind, message, source, lineno, colno, error) {
623            var msgStr = (message == null) ? "" : ("" + message);
624            if (msgStr == "Script error." || msgStr.indexOf("_AutofillCallbackHandler") != -1)
625                return;
626            // Third-party noise, not our code -> ignore. Six families:
627            //  1. In-app browsers (Meta/IG/FB/Snapchat) inject native bridges that throw in non-native webviews.
628            //  2. Android/iOS WebView bridge objects get torn down on navigation ("Java object is gone").
629            //  3. Injected analytics (GTM Custom HTML tags) throw from their own host, not ours.
630            //  4. Browser reader-mode shims (Brave/Firefox iOS inject window.__firefox__) throw before .reader exists.
631            //  5. MS Office/Outlook link-handler bridge rejects on a torn-down object id, on pages opened from email.
632            //  6. TikTok/Bytedance webview (musical_ly UA, FalconTag) injects its own script that handshakes
633            //     with a parent iframe bridge that doesn't exist in the ad-preview dialog.
634            var stackStr = (error && error.stack) ? ("" + error.stack) : "";
635            var noise = [
636                "window.webkit.messageHandlers", // iOS webkit bridge (Meta/IG/FB)
637                "WebJSBridge",                   // Snapchat bridge
638                "sendDataToNative",
639                "sendPageShowMessage",
640                "Java object is gone",           // Android WebView bridge torn down (IG keyboard/nav loggers)
641                "googletagmanager.com",          // GTM Custom HTML tags
642                "__firefox__",                   // Brave/Firefox iOS reader-mode injection
643                "Object Not Found Matching Id:", // MS Office/Outlook bridge, e.g. "...Id:6, MethodName:update, ParamCount:4"
644                "iframeBridge",                  // TikTok FalconTag handshake into a parent bridge that isn't there
645                "user-script:"                   // frames from webview-injected scripts (TikTok/Bytedance); ours are https:// URLs
646            ];
647            var haystack = msgStr + "\n" + stackStr + "\n" + (source == null ? "" : source);
648            for (var i = 0; i < noise.length; i++)
649                if (haystack.indexOf(noise[i]) != -1)
650                    return;
651            // In-app browsers run injected scripts under a private "<name>js://" URL scheme
652            // (iabjs:// = Instagram). Our own code only ever runs from http(s):// -> any *js:// frame is theirs.
653            if (/[a-z0-9_]+js:\/\//i.test(stackStr))
654                return;
655            // ServiceWorker registration failing to *fetch the script* (AbortError) = in-app browsers /
656            // blocked-storage contexts that can't install a SW. Benign, non-actionable. Deliberately narrow:
657            // real breakage (bad HTTP 404, SecurityError, parse error) has a different message and still logs.
658            if (msgStr.indexOf("Failed to register a ServiceWorker") != -1 && msgStr.indexOf("fetching the script") != -1)
659                return;
660            // Benign network/fetch-abort promise rejections (flaky mobile networks, in-app browsers,
661            // navigation aborting an in-flight request, blocked third-party trackers). No stack, not
662            // actionable. Scoped to promise rejections so real TypeErrors in our code still log.
663            if (kind == "promise" && (msgStr == "Load failed"
664                || msgStr.indexOf("Failed to fetch") != -1
665                || msgStr.indexOf("NetworkError") != -1
666                || msgStr.indexOf("network connection was lost") != -1
667                || msgStr.indexOf("cancelled") != -1
668                || msgStr.indexOf("appears to be offline") != -1))
669                return;
670            // Benign browser notice, not an exception: an observer callback resized things again, so the
671            // browser deferred the remaining notifications to the next frame. Comes from third-party
672            // swiper/animation code, has no stack, and nothing breaks. Both wordings ("loop limit exceeded"
673            // = Chrome, "loop completed with undelivered notifications" = Safari/Chrome) are the same event.
674            if (msgStr.indexOf("ResizeObserver loop") != -1)
675                return;
676            var parameters = {};
677            try {
678                var name = (error && error.name) ? error.name : "";
679                var realMsg = (error && error.message) ? error.message : msgStr;
680                var stack = (error && error.stack) ? error.stack : "(no stack available)";
681                parameters["_exceptionMessage"] = "[" + kind + "] " + (name ? name + ": " : "") + realMsg;
682                parameters["_methodName"] = source + "  --  Row N° " + lineno + " Col N° " + colno;
683                parameters["_exception"] = doGetSystemInfo() + "\n\n" + stack;
684
685
686                if (typeof doSendAjax == "function") {
687                    var hash = doGetHash(kind + "|" + name + "|" + realMsg + "|" + doGetStackSignature(stack));
688                    if (!doCheckSentBefore(hash))
689                        doSendAjax(RequestCode.SystemService.SaveExceptionJS, ko.toJSON(parameters), null, null);
690                }
691                            }
692            catch (e) { console.log(e); }
693        }
694
695        window.onerror = function doErrorHandler(message, source, lineno, colno, error) {
696            doReportError("onerror", message, source, lineno, colno, error);
697            return true;
698        };
699
700        window.addEventListener('unhandledrejection', function (e) {
701            var reason = e ? e.reason : null;
702            var msg = (reason && reason.message) ? reason.message : ("" + reason);
703            doReportError("promise", msg,
704                (reason && reason.fileName) || "",
705                (reason && reason.lineNumber) || 0,
706                (reason && reason.columnNumber) || 0,
707                reason);
708        });
709    </script>
vendor: 2 bytes, line 709
709
710<script type="application/javascript">
711    m_isCrawlByBot = 'True' == 'True';
712
713    window.addEventListener('resize', function()
714    {
715        if(typeof m_handlerLayout != "object" || m_handlerLayout == null)
716            return;
717
718        if(typeof m_handlerLayout.m_isViewMobile == "function")
719            m_handlerLayout.m_isViewMobile('False' == 'True' || window.innerWidth < 768);
720
721        if(typeof m_handlerLayout.m_isMenuMobile == "function")
722            m_handlerLayout.m_isMenuMobile(window.innerWidth < 992);
723    });
724
725
726    window.doOpenCropper = function (handler, folder, item) {}
727
728    // Requested FIRST, so it sits at the head of m_listScript and no page callback can run before its
729    // globals exist -- doSetEnumManager reads m_jsonTranslate, and the callback below reads all three
730    // jsonList* blobs. It carries no callback of its own; being in the queue is the whole point.
731    // It is a parallel fetch, not a serial one: it goes out alongside script.min.js, and the bundle is
732    // the bigger of the two.
733    doLoadScript(function () { }, m_initDataUrl);
734
735    doLoadScript(function () {
736        m_version = '639260136446764345';
737        doSetSetting('https://brandfullsapi.azurewebsites.net', 'ar', 'sa', 'https://cdn.brandfull.com', 'BrandFull', "", "{\u0022_bundleSelectPercentage\u0022:40,\u0022_addCartQuantityLimit\u0022:\u0022100\u0022,\u0022_showObjectHtml\u0022:true,\u0022_showObjectExtras\u0022:true,\u0022_showObjectIsReturnable\u0022:true,\u0022_showObjectCounter\u0022:true,\u0022_showObjectDeliveryTime\u0022:false,\u0022_returnPolicyDays\u0022:\u00227\u0022,\u0022_returnPolicyFees\u0022:0,\u0022_returnPolicyMethod\u0022:0,\u0022_returnPolicyRefundType\u0022:0,\u0022_returnPolicyCountry\u0022:\u0022SA\u0022,\u0022_isBarCodeOptional\u0022:true,\u0022_allowPriceSaleAbovePriceRegulare\u0022:true}");
738
739        
740        if (doGetParamFromURL('Cookies') == "delete")
741        {
742            doSetCookie('cart', null, 1);
743            doGetSessionID();
744
745            doRemoveURLParam("Cookies");
746        }
747
748        m_handlerSession = new Handler_Session();
749        m_handlerSession.doInitData(jsonListCompany, jsonListCountry);
750        doSetHandlerSession(m_handlerSession);
751        m_handlerLayout = new Handler_Layout();
752        m_handlerLayout.m_isViewMobile('False' == 'True' || window.innerWidth < 768);
753        m_handlerLayout.doInitData(jsonListCategory);
754        m_handlerLayout.m_currentCategoryShortName('Home');
755        m_handlerLayout.m_search("");
756        doSetHandlerLayout(m_handlerLayout);
757
758
759    });
760
761    // scriptPage.min.js -- bootstrap.bundle plus the Google-Maps position helper -- is NOT requested
762    // here any more. It was, on every page, with the empty callback this comment replaced: nothing
763    // waited on it, so 82 KB was parsed and compiled on the main thread ahead of the page's bind for
764    // no reader. Its entire consumer surface is interaction-driven: bootstrap.Modal (Tools/Html.ts),
765    // bootstrap.Collapse (Handler_PageCheckout), doGetCurrentPosition, and the data-api attributes in
766    // the markup -- dropdown, collapse, tab, dismiss. None of it runs at load.
767    //
768    // Defined here rather than in the bundle because callers reach it from inline script.
769    var m_pageScriptUrl = "https://cdn.brandfull.com/scriptPage.min.js";
770
771    function doLoadPageScript(callBack = function () { }) {
772        doLoadScript(callBack, m_pageScriptUrl);
773    }
774
775    // Google Maps, requested once per document rather than once per view.
776    //
777    // doLoadScript dedupes by exact url string, and five views asked for Maps with four different
778    // strings -- two callback names (doInitMap, doInitGoogleMap), and Page_CreateSupport on
779    // maps.google.com rather than maps.googleapis.com, without libraries=places. Ajax navigation
780    // never reloads the document, so visiting two of those pages in one session appended two script
781    // tags for the same library: "You have included the Google Maps JavaScript API multiple times",
782    // followed by the custom elements it registers being defined twice
783    // (Element with name "gmp-internal-dialog" already defined).
784    //
785    // So: one url, and one name for Google to call. Pages hand their own initializer to
786    // doLoadGoogleMaps instead of naming it in a query string. Note the initializer
786s are read at
787    // call time, which is what keeps Page_About and Page_CreateSupport from fighting over the
788    // window.doInitGoogleMap they both define -- each view's inline block re-runs on its own ajax
789    // swap, so the one queued is always the current page's.
790    var m_googleMapUrl = "https://maps.googleapis.com/maps/api/js?libraries=places&key=AIzaSyBELKgTURcJMCbnFgFY4aizo0dbwokRqU4&callback=doGoogleMapsReady&loading=async&language=ar";
791    var m_isGoogleMapsReady = false;
792    var m_listGoogleMapsReady = [];
793
794    // The single name in the url above. Global because Google resolves it off window.
795    function doGoogleMapsReady() {
796        m_isGoogleMapsReady = true;
797        while (m_listGoogleMapsReady.length > 0)
798            doRunCallBack(m_listGoogleMapsReady.shift());
799    }
800
801    function doLoadGoogleMaps(callBack = function () { }) {
802        // scriptPage.min.js first: every page initializer this fans out to reaches into
803        // _Js/GoogleMapGetCurrentLocation.js -- doInitMap is defined there outright, and
804        // Page_About / Page_CreateSupport push into the `markers` array it declares.
805        doLoadPageScript(function () {
806            if (m_isGoogleMapsReady) {
807                doRunCallBack(callBack);
808                return;
809            }
810
811            m_listGoogleMapsReady.push(callBack);
812            doLoadScript(function () { }, m_googleMapUrl);
813        });
814    }
815
816    // Bootstrap installs its data-api listeners on document when it evaluates, so a click that lands
817    // before the file does is a click that does nothing. Hence arming on the earliest signals a real
818    // visitor produces -- hover and scroll both precede the first tap far more often than not -- and
819    // not merely on the click itself. Capture phase so a stopPropagation somewhere cannot hide them.
820    //
821    // The load-event fallback is for the visitor who reads without touching anything. It is behind
822    // `load` on purpose: an idle callback armed any earlier competes with the page's own bind for the
823    // main thread, which is the cost this whole change exists to remove.
824    (function () {
825        var isArmed = false;
826
827        function doArmPageScript() {
828            if (isArmed)
829                return;
830            isArmed = true;
831            doLoadPageScript();
832        }
833
834        var listEvent = ['pointerover', 'pointerdown', 'touchstart', 'keydown', 'scroll'];
835        for (var i = 0; i < listEvent.length; i++)
836            window.addEventListener(listEvent[i], doArmPageScript, { capture: true, once: true, passive: true });
837
838        window.addEventListener('load', function () {
839            if (typeof window.requestIdleCallback == "function")
840                window.requestIdleCallback(doArmPageScript, { timeout: 3000 });
841            else
842                setTimeout(doArmPageScript, 1000);
843        });
844    })();
845
846    // The Portal's head hook -- GTM, and through GTM's Custom HTML tags the Facebook, Snapchat and
847    // TikTok pixels -- injected on the same signals as scriptPage.min.js instead of parsed inline.
848    //
849    // It used to sit below this script as raw markup, which meant every visitor parsed, compiled and
850    // EXECUTED a tag manager plus three pixels before the browser had seen a single byte of <body>.
851    // Measured on the Blends home page: TBT 1,700ms, FCP 3.3s, and three rounds of asset trimming
852    // ahead of this moved FCP by 0.1s because none of them touched the thing actually holding the
853    // main thread. The error-swallow list at the top of this file already names googletagmanager.com
854    // and the Snapchat WebJSBridge -- the cost was known, only its timing was not.
855    //
856    // A <template> because its content is INERT: the parser builds the nodes but runs no script and
857    // fetches no src, which is the whole point. innerHTML would have been inert too, but only by
858    // accident and only for scripts -- an <img> in the blob would still have been fetched.
859    (function () {
860        var isArmed = false;
861        var isInjected = false;
862
863        function doInjectHeadScript() {
864            if (isInjected)
865                return;
866            isInjected = true;
867
868            var holder = document.getElementById('UI_headScript');
869            if (!holder)
870                return;
871
872            var fragment = holder.content.cloneNode(true);
873            var listNode = Array.prototype.slice.call(fragment.childNodes);
874
875            for (var i = 0; i < listNode.length; i++) {
876                var node = listNode[i];
877
878                // A 
878<script> moved out of a template stays inert -- "already started" is not the
879                // flag, but a parser-inserted script that was never executed will not execute on
880                // insertion either. It has to be re-created as a fresh element.
881                if (node.nodeName == 'SCRIPT') {
882                    var script = document.createElement('script');
883                    for (var a = 0; a < node.attributes.length; a++)
884                        script.setAttribute(node.attributes[a].name, node.attributes[a].value);
885                    script.text = node.text;
886
887                    // async=false on a DYNAMICALLY created script means "in-order", not "blocking":
888                    // externals then execute in insertion order relative to each other. GTM's inline
889                    // snippet seeds window.dataLayer and must run before gtm.js reads it, and the
890                    // default async=true would have let that race.
891                    if (script.src)
892                        script.async = false;
893
894                    document.head.appendChild(script);
895                }
896                else
897                    document.head.appendChild(node);
898            }
899        }
900
901        function doArmHeadScript() {
902            if (isArmed)
903                return;
904            isArmed = true;
905
906            // The blob calls doSetThirdParty (see Tools/ThirdPartyDefer.ts, which stubs that name
907            // for exactly this reason). The stub ships in script.min.js, which is fetched async, so
908            // waiting on its ready callback is what guarantees the call lands somewhere. In the old
909            // inline arrangement it did not: the blob ran at parse time, well before the bundle.
910            if (typeof window.doSetThirdParty == "function") {
911                doInjectHeadScript();
912                return;
913            }
914
915            doLoadScript(doInjectHeadScript);
916
917            // Backstop, because a callback registered on script.min.js never fires if that bundle
918            // errors -- and "the bundle failed" must not also mean "no analytics for that visit".
919            // doInjectHeadScript is idempotent, so whichever path arrives first wins.
920            setTimeout(doInjectHeadScript, 4000);
921        }
922
923        var listHeadEvent = ['pointerover', 'pointerdown', 'touchstart', 'keydown', 'scroll'];
924        for (var h = 0; h < listHeadEvent.length; h++)
925            window.addEventListener(listHeadEvent[h], doArmHeadScript, { capture: true, once: true, passive: true });
926
927        // WHEN the blob runs, and the reason it is not simply "on load, then idle" any more.
928        //
929        // Measured on the Blends home page: the tag manager and the pixels it injects through its
930        // Custom HTML tags cost 2,217 ms of main-thread CPU -- more than every first-party script
931        // on the page put together (1,944 ms). Five Google containers alone are 1,204 ms of that,
932        // then Facebook 417, Clarity 252, TikTok 137, Pinterest 110, Snapchat 97.
933        //
934        // The old trigger was `load` plus requestIdleCallback(timeout 3000). Both fire while the
935        // page is still doing its own work: `load` only means subresources finished, not that the
936        // bind and the div hydration have, and a 3-second timeout fires whether or not an idle slot
937        // ever appeared. So 2.2 seconds of vendor script landed on a main thread that was still
938        // building the page.
939        //
940        // "Stable" is defined here as the browser itself defines it -- no long task for a
941        // continuous stretch -- rather than as a delay someone picked. Every long task pushes the
942        // decision back; when the page finally goes quiet for m_headQuietMs the blob goes in on the
943        // next idle slot. That is the same shape as TTI with a shorter quiet window, which is the
944        // point: analytics should start as soon as the page has actually settled, not at a fixed
945        // time that is too early on a slow device and too late on a fast one.
946        //
947        // Interaction still wins outright, above: a visitor who is already touching the page has a
948        // usable page by definition, and their session is the one most worth recording.
949        var m_headQuietMs = 2000;      // continuous no-long-task stretch that counts as settled
950        var m_headCapMs = 10000;       // hard backstop -- see below
951        var m_headQuietTimer = null;
952
953        function doDelayHeadScript() {
954            clearTimeout(m_headQuietTimer);
955            m_headQuietTimer = setTimeout(function () {
956                if (typeof window.requestIdleCallback == "function")
957                    window.requestIdleCallback(doArmHeadScript, { timeout: 2000 });
958                else
959                    doArmHeadScript();
960            }, m_headQuietMs);
961        }
962
963        window.addEventListener('load', function () {
964            // A main thread that never goes quiet -- a slow device, a runaway third-party, a tab
965            // that stays busy -- must not mean no analytics at all for that visit. This fires
966            // regardless; doArmHeadScript is idempotent, so whichever path gets there first wins.
967            setTimeout(doArmHeadScript, m_headCapMs);
968
969            // longtask is Chromium-only. Where it is missing (Safari, Firefox) there is nothing to
970            // observe, so the quiet timer simply runs once from load and behaves like the old
971            // fixed delay -- degraded to the previous behaviour, not to no behaviour.
972            try {
973                if (typeof PerformanceObserver == "function"
974                    && PerformanceObserver.supportedEntryTypes
975                    && PerformanceObserver.supportedEntryTypes.indexOf('longtask') != -1) {
976                    new PerformanceObserver(function () {
977                        if (!isArmed)
978                            doDelayHeadScript();     // still busy -- restart the quiet window
979                    }).observe({ type: 'longtask', buffered: false });
980                }
981            }
982            catch (error) { console.log(error); }
983
984            doDelayHeadScript();
985        });
986    })();
987
988</script>
vendor: 2 bytes, line 988
988
989<script>
990    (function () {
991        // The reference file is NOT a stylesheet -- it opens with an HTML comment header and
992        // wraps the payload in <style>, exactly as the Portal field must. So it cannot be a
993        // <link>: the header would be a parse error and the tags are not CSS. Fetch it and
994        // hand the browser the same string @Html.Raw would have emitted.
995        var url = 'https://brandfull.com/Themes/Cartzilla/_Css/BrandFull/StyleCss_Script.reference.css?version=639260136446764345';
996
997        fetch(url, { cache: 'no-store' })
998            .then(function (response) {
999                if (!response.ok)
1000                    throw new Error('StyleCss_Script.reference.css -> HTTP ' + response.status);
1001
1002                return response.text();
1003            })
1004            .then(function (text) {
1005                // Take what is BETWEEN the tags. Assigning the raw text to innerHTML would put a
1006                // literal <style> inside a <style>, which parses as nothing at all.
1007                var match = /<style[^>]*>([\s\S]*?)<\/style>/i.exec(text);
1008                if (!match) {
1009                    console.warn('[StyleCss_Script test] no <style> block in ' + url);
1010                    return;
1011                }
1012
1013                // Appended to <head> AFTER the site bundle link, so a :root here outranks the
1014                // same :root in StyleApp.css -- the same seam the Portal value occupies.
1015                var style = document.createElement('style');
1016                style.id = 'UI_styleCssScriptTest';
1017                style.textContent = match[1];
1018                document.head.appendChild(style);
1019            })
1020            .catch(function (error) { console.warn('[StyleCss_Script test] ' + error.message); });
1021    })();
1022</script>
1022
1023<template id="UI_headScript">
1024<!-- Google Tag Manager -->
1025<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s);j.async=true;j.src="https://shn.brandfull.com/cjbruxijtzaj.js?"+i;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','ezx8gtx3=AwVHMz4kVSU%2BKzA3PSU0UxxcSFpbTxwbVwMIFQQNHgAGDVQXBQQ%3D');</script>
1025
1026<!-- End Google Tag Manager -->
1027
1028</template>
1029
1030</head>
1031
1032<body id="UI_body" style="overflow-y: clip;" class="noPadding">
1033
1034    
1035
1036
1037
1038
1039        <h1 class="seo-hidden">براندفل-  منصة لبيع وشراء المتعلقات الشخصية الفاخرة</h1>
1040    <h2 class="seo-hidden">منصة لشراء وإعادة بيع العلامات التجارية الفاخرة. نحن نمكن عملائنا من البيع مباشرة من خزائنهم والاستفادة من القيمة المالية للعناصر المخزنة.</h2>
1041
1042    
1042<script type="application/ld&#x2B;json">
1043        {
1044            "@context": "https://schema.org",
1045            "@type": "OnlineStore",
1046            "name": "Brandfull",
1047            "alternateName": "Brandfull",
1048            "description": "At Brandfull we believe in second chances and the thrill of discovering hidden treasures. Our journey began with a simple idea: to bring new life into pre-loved items while offering our customers unique finds that resonate with their individuality.",
1049            "knowsLanguage": "AR,EN",
1050            "sameAs": [
1051                "https://www.facebook.com/brandfullCom/",
1052                "https://twitter.com/brandful_l",
1053                "https://www.instagram.com/brandfull_ksa/",
1054                "https://api.whatsapp.com/send?phone=966592905003",
1055                "https://www.snapchat.com/add/brandful_l"
1056            ],
1057            "url": "https://brandfull.com",
1058            "logo": "https://brandfull.com/_Image/favicon.png","hasMerchantReturnPolicy":{"@type":"MerchantReturnPolicy","applicableCountry":"SA","returnPolicyCategory":"https://schema.org/MerchantReturnFiniteReturnWindow","merchantReturnDays":7,"returnMethod":"https://schema.org/ReturnByMail","returnFees":"https://schema.org/FreeReturn","refundType":"https://schema.org/FullRefund"}
1059        }
1060    </script>
1060
1061
1062    
1062<script type="application/ld&#x2B;json">
1063        {
1064            "@context": "https://schema.org",
1065            "@type": "ContactPoint",
1066            "@contactType": "Customer Service",
1067            "availableLanguage": "AR,EN",
1068            "email": "[email protected]",
1069            "telephone": "966592905003"
1070        }
1071    </script>
1071
1072    
1072<script type="application/ld&#x2B;json">
1073        {
1074            "@context": "https://schema.org",
1075            "@type": "WebSite",
1076            "name": "WebSite Brandfull",
1077            "url": "https://brandfull.com",
1078            "potentialAction": [
1079              {
1080                "@type": "SearchAction",
1081                "target": "https:/brandfull.com/Shop/search?q={search_term_string}",
1082                "query-input": "required name=search_term_string"
1083              }
1084             ]
1085         }
1086    </script>
1086
1087    
1088    
1089    <!-- Home Popup Section -->
1090    <!-- End Screen Load Popup Section -->
1091    <!-- START HEADER -->
1092
1093
1094    
1095
1096<script type="application/javascript">
1097
1098    window.doClosePopUp = function () {
1099        document.querySelectorAll('.dropdown-menu.show').forEach(function (option) {
1100            option.classList.remove('show');
1101        });
1102        document.querySelectorAll('.dropdown-menu.hide').forEach(function (option) {
1103            option.classList.remove('hide');
1104        });
1105    }
1106
1107    window.doShowQuickPopup = function (id, isFocus) {
1108        if (isFocus == true)
1109            m_handlerLayout.doGetQuickFilter();
1110        else
1111            setTimeout(function () {
1112                m_handlerLayout.m_showQuickPopUp(false);
1113            }, 250)
1114    }
1115
1116    window.doJSClickSearch = function (){
1117        var searchSection = document.querySelector('#UI_searchSection');
1118        if(searchSection.classList.contains('show'))
1119            searchSection.classList.remove('show');
1120        else
1121            searchSection.classList.add('show');
1122
1123        var searchIcon = document.querySelector('#UI_searchIcon');
1124        if(searchIcon.classList.contains('ci-search')){
1125            searchIcon.classList.remove('ci-search');
1126            searchIcon.classList.add('ci-close');
1127        }
1128        else{
1129            searchIcon.classList.remove('ci-close');
1130            searchIcon.classList.add('ci-search');
1131        }
1132    }
1133    doLoadScript(function () {
1134        if (!ko.dataFor(document.getElementById('UI_headerSession'))) {
1135            ko.applyBindings(m_handlerSession, document.getElementById("UI_headerSession"));
1136        }
1137
1138        if (!ko.dataFor(document.getElementById('UI_LayoutHeader'))) {
1139            ko.applyBindings(m_handlerLayout, document.getElementById("UI_LayoutHeader"));
1140            ko.applyBindings(m_handlerLayout, document.getElementById("UI_preLoader"));
1141        }
1142
1143        var navBar = document.getElementById("UI_menuNavBar");
1144        if (navBar) navBar.style.visibility = "visible";
1145        var searchPopup = document.getElementById("UI_searchQuickPopup");
1146        if (searchPopup) searchPopup.style.visibility = "visible";
1147        var layoutHeader = document.getElementById("UI_LayoutHeader");
1148        if (layoutHeader) layoutHeader.style.visibility = "visible";
1149        // After applyBindings above, so every marked block already carries the inline display its
1150        // binding gave it and nothing flashes as the gate lifts.
1151        if (layoutHeader) layoutHeader.classList.remove("ko-pending");
1152
1153        doJsDropdownSelect();
1154
1155    });
1156
1157</script>
1157
1158
1159
1160<header id="UI_LayoutHeader" class="bg-light shadow-sm fixHeightHeader ko-pending">
1161
1162    <div id="UI_menuQuick" class="topbar topbar-dark bg-darker py-sm-1 py-md-0">
1163        <div class="container">
1164            <div class="topbar-text dropdown d-md-none">
1165                <a class="topbar-link dropdown-toggle" href="#" data-bs-toggle="dropdown">روابط مفيدة</a>
1166                <ul class="dropdown-menu">
1167                    <li>
1168                        <a class="dropdown-item textAlignAuto" enable-href="false" href="/Support"><i class="ci-support  text-muted  me-2-Auto"></i>اتصل بنا</a>
1169                    </li>
1170                    <li>
1171                        <a class="dropdown-item textAlignAuto" href="#" target="_blank" enable-href="true" data-bind="attr:{href:m_handlerSession.m_currentCompany._whatsappLink}" rel="noreferrer">
1172                            <i class="ci-whatsapp text-muted me-2-Auto"></i>واتس اب
1173                        </a>
1174                    </li>
1175                </ul>
1176            </div>
1177            <div class="topbar-text text-nowrap d-none d-md-inline-block">
1178                <a class="topbar-link" enable-href="false" href="/Support"><i class="ci-support  me-2-Auto"></i>اتصل بنا</a>
1179                <!-- ko if:  !doCheckEmptyData(m_handlerSession.m_currentCompany._whatsappLink()) -->
1180                <a class="btn-social bs-light bs-whatsapp me-1-Auto mb-1" href="#" enable-href="true" data-bind="attr:{href:m_handlerSession.m_currentCompany._whatsappLink}" target="_blank" rel="noreferrer" aria-label="Share WhatsApp">
1181                    <i class="ci-whatsapp font-size-14"></i>
1182                </a>
1183                <!-- /ko -->
1184            </div>
1185
1186            <slotHeader class="bf-announceSlot"></slotHeader>
1187
1188            <div class="text-nowrap">
1189                <div class="topbar-text dropdown disable-autohide">
1190                    <a class="topbar-link dropdown-toggle" href="#" data-bs-toggle="dropdown">
1191                        <span class="px-1" data-bind="text: doGetCulture()=='ar'? 'عربى':'English'"></span>
1192                        <span class="px-1">/</span><span class="px-1" data-bind="text: m_handlerSession.m_currentCurrency._code"></span>
1193                    </a>
1194
1195                    <ul class="dropdown-menu dropdown-menu-end">
1196                        <!-- ko if: m_handlerSession.m_currentCompany._currences().length > 1 -->
1197                        <li class="dropdown-item">
1198                            <select class="form-select form-select-sm" style=" padding: 5px;" data-bind="value: m_handlerSession.m_currentCurrency._code, options: m_handlerSession.m_currentCompany._currences, optionsText: '_code', optionsValue: '_code'">
1199                            </select>
1200                        </li>
1201                        <!-- /ko -->
1202                        <!-- ko if: m_handlerSession.m_listCompany().length > 1 -->
1203                        <li class="dropdown-item">
1204                            <div class="fs-sm fw-medium mb-1 w-100 textAlignAuto">بلد</div>
1205                            <select class="form-select" style=" padding: 5px;" data-bind="value: m_handlerSession.m_currentCompany._id, options: m_handlerSession.m_listCompany, optionsText: '_countryName', optionsValue: '_id'">
1206                            </select>
1207                        </li>
1208                        <!-- /ko -->
1209                        <li>
1210                            <button class="dropdown-item d-flex align-items-center font-size-10" onclick="m_handlerSession.doSetCulture('ar')">
1211                                <span class="langImage me-2-Auto" data-bind="style:{'background-position-x': doGetlangImage('ar')}" style="background-image: url(https://cdn.brandfull.com/Media/BrandFull/images.png?version=639260136446764345)"></span>
1212                                <span>عربى</span>
1213                            </button>
1214                        </li>
1215                        <li>
1216                            <button class="dropdown-item d-flex align-items-center font-size-10" onclick="m_handlerSession.doSetCulture('en')">
1217                                <span class="langImage me-2-Auto" data-bind="style:{'background-position-x': doGetlangImage('en')}" style="background-image: url(https://cdn.brandfull.com/Media/BrandFull/images.png?version=639260136446764345)"></span>
1218                                <span>English</span>
1219                            </button>
1220                        </li>
1221                    </ul>
1222                </div>
1223            </div>
1224        </div>
1225    </div>
1226    <div class="navbar-sticky bg-light pt-1">
1227        <div class="navbar navbar-expand-lg navbar-light py-0">
1228            <div class="container bf-headerRow">
1229                <div id="UI_searchSection" class="input-group widthSearch mt-sm-2 collapse">
1230                    <div class="input-group d-lg-flex m-0 ">
1231                        <input autocomplete="off" class="form-control focus-black m_search" type="text" data-bind="value: m_search" onfocusin="doShowQuickPopup('UI_searchQuickPopup', true)" onfocusout="doShowQuickPopup('UI_searchQuickPopup', false)" placeholder="البحث عن العلامة التجارية" />
1232                        <div class="m_searchIcons position-absolute top-50 translate-middle-y text-muted">
1233                                <i class="ci-camera pointer" data-bind="click: window.doOpenCropper.bind($root, $root, GlobalSettingTranslateEnum.PathObjectPicture, m_currentPicture)"></i>
1234                            <i class="ci-search pointer" data-bind="click: $root.doSearchByWord.bind($root)"></i>
1235                        </div>
1236                    </div>
1237
1238                    
1239
1240<div id="UI_searchQuickPopup" data-koPending class="quickPopUp border rounded-1 p-3 mt-md-n1 bg-white" data-bind="visible:m_showQuickPopUp()">
1241
1242    <!-- ko if: m_listQuickFilterCategory().length != 0 -->
1243    <b class="font-size-10 fw-bolder mt-2 mb-1 text-accent">فئات مفضلة لديكم</b>
1244    <div class="d-flex flex-wrap align-content-around" data-bind="foreach: m_listQuickFilterCategory">
1245        <a class=" border rounded me-1 mb-1" href="#" enable-href="false" data-bind="click: doLoadMenuLink.bind($root, doGetLinkQuickFilter($data._value())) , attr:{href: doGetLinkQuickFilter($data._value()) }">
1246            <div class="btn btn-sm p-1 font-size-10" data-bind=" text: $data._name()">
1247            </div>
1248        </a>
1249    </div>
1250    <!-- /ko -->
1251    <!-- ko if: m_listQuickFilterColor().length != 0 -->
1252    <b class="font-size-10 fw-bolder mt-3 mb-1 text-accent ">اللون ذات شعبيه</b>
1253    <div class="d-flex flex-wrap align-content-around" data-bind="foreach: m_listQuickFilterColor">
1254        <a class=" border rounded me-1 mb-1" href="#" enable-href="false" data-bind="click: m_handlerLayout.doSetSearch.bind($root, $data._name()),  attr:{href: doGetLinkQuickFilter($data._name()) }">
1255            <div class="btn btn-sm p-1 font-size-10" data-bind=" text: $data._name()">
1256            </div>
1257        </a>
1258    </div>
1259    <!-- /ko -->
1260    <!-- ko if: m_listQuickFilterTag().length != 0 -->
1261    <b class="font-size-10 fw-bolder mt-3 mb-1 text-accent">الماركات الأكثر شعبية</b>
1262    <div class="d-flex flex-wrap align-content-around" data-bind="foreach: m_listQuickFilterTag">
1263        <a class=" border rounded me-1 mb-1" href="#" enable-href="false" data-bind="click: m_handlerLayout.doSetSearch.bind($root, $data._name()), attr:{href: doGetLinkQuickFilter($data._name()) }">
1264            <div class="btn btn-sm p-1 font-size-10" data-bind=" text: $data._name()">
1265            </div>
1266        </a>
1267    </div>
1268    <!-- /ko -->
1269
1270</div>
1271
1272                </div>
1273                <div class="bf-headerRow-lead">
1274                    <a class="navbar-tool d-lg-none" href="/#UI_menuSection" aria-label="menu" name="menu" onclick="doClosePo
1274pUp()" data-bs-toggle="collapse" role="button" aria-expanded="false" aria-controls="UI_menuSection">
1275                        <span class="navbar-tool-icon-box"><i class="navbar-toggler-icon  mt-1"></i></span>
1276                    </a>
1277                </div>
1278                <div class="bf-headerRow-brand">
1279                    <a class="navbar-brand textAlignAuto" href="https://brandfull.com" enable-href="true">
1280                            <img class="headerBrandLogo" style="--logo-width: 125px; --logo-height: 41px;" fetchpriority="high" decoding="async" src="https://cdn.brandfull.com/Media/BrandFull/headerDesktopLogo_ar.png?format=webp&size=Thumb&version=639260136446764345" width="905" height="297" alt="AltLogo" title="العنوانالشعار" />
1281                    </a>
1282                </div>
1283                <!-- ko stopBinding: true -->
1284                <div id="UI_headerSession" class="navbar-toolbar d-flex flex-shrink-0 align-items-center bf-headerRow-trail">
1285                    
1286                    <!-- ko if: doCheckUUID(m_currentUser._id()) -->
1287                    <a name="Favorites" aria-label="Favorites" class="navbar-tool-icon-box dropdown-toggle flipAuto  d-lg-block d-md-none d-sm-none" enable-href="false" href="/Account/Favorites">
1288                        <i class="navbar-tool-icon ci-heart" style="width: 45px;"></i>
1289                    </a>
1290                    <div class="navbar-tool dropdown pointer  d-lg-flex d-md-none d-sm-none" data-bind="visible: doCheckUUID(m_currentUser._id())" onmouseenter="doPrepareAdvertisement()">
1291                        <span class="navbar-tool-icon-box dropdown-toggle flipAuto" onclick="doOpenAdvertisement()">
1292                            <span class="navbar-tool-label flipAuto" data-bind="text: m_countAdvertisement() > 99 ? '99+' : m_countAdvertisement()"></span>
1293                            <i class="navbar-tool-icon ci-bell" style="width: 45px;"></i>
1294                        </span>
1295                        <div id="UI_menuWebAdvertisement" class="dropdown-menu dropdown-menu-end textAlignAuto">
1296                            <div class="widget widget-cart px-3 pt-2 pb-0">
1297                                <div class="d-flex align-items-center justify-content-between">
1298                                    <!-- ko if: !m_handlerLayout.m_isViewMobile() -->
1299                                    <div class="col-md-10">
1300                                        <!-- ko if: m_enableNotifGrant() -->
1301                                        <button id="UI_notifGrant" class="btn d-flex align-content-between align-items-center font-size-10 p-1 " onclick="doGetPermissionNotification()">
1302                                            <i class="ci-settings me-2-Auto font-size-14 "></i>
1303                                            <span class="form-check-label elide text-black fw-bolder heartbeat" for="UI_agreeWebPush">
1304                                                ابقني على اطلاع
1305                                            </span>
1306                                        </button>
1307                                        <!-- /ko -->
1308                                        <!-- ko if: m_enableNotifDenied() -->
1309                                        <div id="UI_notifDenied" class="d-flex align-content-between align-items-center font-size-10 p-1 ">
1310                                            <i class="ci-announcement me-2-Auto font-size-14  fw-bolder"></i>
1311                                            <span class="form-check-label elide text-danger fw-bolder heartbeat">
1312                                                الإشعارات محجوبة. شغلها في إعدادات المتصفح لتحصل على تنبيهات.
1313                                            </span>
1314                                        </div>
1315                                        <!-- /ko -->
1316
1317                                    </div>
1318                                    <!-- /ko -->
1319                                </div>
1320
1321                                <div id="UI_notificationList" data-simplebar data-simplebar-auto-hide="false" style="overflow-x: hidden;max-height: 21rem;" data-bind="visible: m_listAdvertisement().length!=0, foreach: { data: m_showAdvertisement() ? m_listAdvertisement() : [] }">
1322    <div class="border-bottom py-1 me-3-Auto d-flex justify-content-between border-danger" style="    border-bottom-style: dotted !important;" data-bs-dismiss="">
1323        <label class="form-text elide w-75 pointer" data-bind="click: $root.doSetTaged.bind($root, $data, true), text:$data._subject()"></label>
1324        <b class="form-check-label textAlignReverse font-size-10 d-inline-block mb-n2 fw-light" data-bind="click: $root.doSetTaged.bind($root, $data, true), text: doCalcDateDifference(doCastFromUTC($data._dateCreate()))"></b>
1325    </div>
1326</div>
1327
1328                            </div>
1329                        </div>
1330                    </div>
1331                    
1332
1333                    <!-- /ko -->
1334                    <div id="UI_userSession" class="navbar-tool dropdown pointer  d-lg-flex d-md-none d-sm-none">
1335                        <span class="navbar-tool-icon-box " onclick="doOpenProfile()">
1336                            <i class="navbar-tool-icon ci-user "></i>
1337                        </span>
1338
1339                        <span class=" d-none d-lg-flex" style="padding-left:unset; max-width: 75px;" href="#">
1340                            <!-- ko if: doCheckUUID(m_currentUser._id()) -->
1341                            <small class="elide text-black" data-bind="text: m_currentUser._name()"></small>
1342                            <!-- /ko -->
1343                            <!-- ko if: !doCheckUUID(m_currentUser._id()) -->
1344                            <small class="elide text-black">حساب</small>
1345                            <!-- /ko -->
1346                        </span>
1347                        <!-- Session dropdown-->
1348                        <!-- ko if: doCheckUUID(m_currentUser._id()) -->
1349                        <div  class="dropdown-menu dropdown-menu-end">
1350                            <div class="widget widget-cart px-3 pt-2 pb-3 textAlignAuto">
1351                                <!-- ko if: doCheckUUID(m_currentUser._id()) -->
1352                                <div class="fs-sm fw-medium mb-1">حساب</div>
1353                                <a class="dropdown-item d-flex align-items-center py-1" enable-href="false" href="/Account/Profile">
1354                                    <i class="ci-user opacity-60 me-2-Auto"></i>الملف الشخصي
1355                                </a>
1356                                <a class="dropdown-item d-flex align-items-center py-1" enable-href="false" href="/Account/Invoices">
1357                                    <i class="ci-basket opacity-60 me-2-Auto"></i>الفواتير
1358                                </a>
1359                                <a class="dropdown-item d-flex align-items-center py-1" enable-href="false" href="/Account/Supports">
1360                                    <i class="ci-help opacity-60 me-2-Auto"></i>تذاكر
1361                                </a>
1362                                    <a class="dropdown-item d-flex align-items-center py-1" enable-href="false" href="/Account/Messages">
1363                                        <i class="ci-message opacity-60 me-2-Auto"></i>رسائل
1364                                    </a>
1365
1366                                <div class="dropdown-divider"></div>
1367                                <a class="dropdown-item d-flex align-items-center py-1" href="#" enable-href="false" data-bind="click: $root.doLogOut.bind($root, '/Account/LogOff?Value=https%3A%2F%2Fbrandfull.com%2F')">
1368                                    <i class="ci-sign-out opacity-60 me-2-Auto"></i>تسجيل الخروج
1369                                </a>
1370                                <!-- /ko -->
1371                            </div>
1372                        </div>
1373                        <!-- /ko -->
1374                    </div>
1375
1376                    <a href="#" aria-label="بحث" name="Search" class="navbar-tool-icon-box dropdown-toggle flipAuto" enable-href="false" onclick="doJSClickSearch()">
1377                        <i id="UI_searchIcon" class="navbar-tool-icon ci-search animate-target" style="width: 45px;"></i>
1378                    </a>
1379                    <div id="UI_shopNav" class="navbar-tool pointer" onclick="m_handlerSession.doOpenCartDrawer();">
1380                        <span class="navbar-tool-icon-box flipAuto">
1381                            <span class="navbar-tool-label flipAuto" data-bind="text: doGetCartCount()"></span>
1382                            <i class="navbar-tool-icon bold ci-card-bag"></i>
1383                        </span>
1384                        <span class="d-flex flex-column d-none d-md-flex ps-2-Auto">
1385                            <small class="font-size-10 text-black">سلة التسوق</small>
1386                            <!-- ko if: m_currentCart._listCartDetailModel().length!=0 -->
1387                            <span class="text-accent fs-base font-size-12" data-bind="html: $root.doCalcPriceDynamic(m_currentCart._total(), true)"></span>
1388                            <!-- /ko -->
1389                        </span>
1390                    </div>
1391
1392                </div>
1393                <!-- /ko -->
1394            </div>
1395            <!-- Search-->
1396        </div>
1397
1398
1399        <div id="UI_menuNavBar" class="navbar navbar-expand-lg navbar-light navbar-stuck-menu mt-n2 pt-0 pb-2" style="visibility: hidden; margin-top: auto !important;">
1400            <div class="container ">
1401                <div id="UI_menuSection" class="navbar-collapse collapse" data-bind="class: m_listCategoryMenuDepartmentHeader().length ==0 ? 'justify-content-around':''">
1402                    
1403<style>
1404
1405    /* The sprite URL is per-request (CDN base + m_version), so it cannot live in the bundled
1406       CSS. It is emitted once here and read by .categoryMerge in StyleCartzilla-Menu.css.
1407       It used to be a full inline `background: url(...)` on EVERY category node -- in this file
1408       and, worse, inside Template_ItemDeskMenu / Template_ItemMobileMenu, which recurse, so the
1409       whole CDN path was re-emitted into the live DOM once per category at every depth. */
1410    :root {
1411        --category-sprite: url('https://cdn.brandfull.com/Content/category/Merge.png?v=639260136446764345');
1412    }
1413
1414    .quickPopUp {
1415        visibility: hidden;
1416        z-index: +100;
1417        position: absolute;
1418        top: 47px;
1419    }
1420
1421    [lang="ar"] .quickPopUp {
1422        right: 1px;
1423    }
1424
1425    [lang="en"] .quickPopUp {
1426        left: 1px;
1427    }
1428
1429
1430    @media screen and (max-width:767px) {
1431        .quickPopUp {
1432            z-index: +1;
1433            position: unset;
1434            top: 81px;
1435            width: 100%;
1436            border: hidden !important;
1437        }
1438    }
1439</style>
1440
1441<script id="Template_ItemDeskMenu" type="text/html">
1442
1443
1444    <ul class="dropdown-menu " data-bind="foreach: $data._list, css:{'d-block fixRtl': $data.mode=='block' }">
1445        <li class="" data-bind="class: $data._list() != 0 ? 'dropdown':''">
1446            <a class="dropdown-item d-flex" href="#" enable-href="false" data-bind="
1447               class: $data._list() != 0 ? 'dropdown-toggle':'',
1448               attr:{href: doGetLinkCategory($data) }">
1449                <!-- ko ifnot: doCheckEmptyData($data._pictureName()) -->
1450                <span class="categoryMerge" data-bind="style:{'background-position-x': $data._picturePosition()+'px', 'alt': $data._code()}">
1451                </span>
1452                <!-- /ko -->
1453                <span class="categoryColor menuSpan" data-bind="text: $data._name, attr:{'data-code': $data._code}, style:{'--data-categoryColor': $data._colorDesktopHex()}"></span>
1454            </a>
1455            <!--ko if :  $data._list() != 0 -->
1456            <!-- ko run: $data.mode='' --><!-- /ko -->
1457            <!-- ko template: { name: 'Template_ItemDeskMenu' , data:$data} --><!-- /ko -->
1458            <!-- /ko -->
1459        </li>
1460    </ul>
1461
1462</script>
vendor: 2 bytes, line 1462
1462
1463<script id="Template_ItemDeskMegaMenu" type="text/html">
1464
1465    <ul class="dropdown-menu " data-bind="foreach: $data._list">
1466        <li class="dropdown mega-dropdown">
1467            <a class="dropdown-item dropdown-toggle d-flex" href="#" enable-href="false" data-bind="class: $data._list() != 0 ? 'dropdown-toggle':'', attr:{href: !doCheckEmptyData($data._link())?  $data._link() : '/Shop'+'/'+$data._code() }" data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-expanded="true">
1468                <!-- ko ifnot: doCheckEmptyData($data._pictureName()) -->
1469                <span class="categoryMerge" data-bind="style:{'background-position-x': $data._picturePosition()+'px', 'alt': $data._code()}">
1470                </span>
1471                <!-- /ko -->
1472                <span class="categoryColor menuSpan " data-bind="text: $data._name, attr:{'data-code': $data._code}, style:{'--data-categoryColor': $data._colorDesktopHex()}"></span>
1473            </a>
1474        </li>
1475    </ul>
1476
1477
1478</script>
vendor: 2 bytes, line 1478
1478
1479<script id="Template_ItemMobileMenu" type="text/html">
1480
1481    <ul class="widget-list mt-1" data-bind="attr:{'id': 'UI_'+$data._id()}, css:{'collapse collapseShow mx-3': $data.mode=='block'}, foreach: $data._list">
1482        <li class="widget-list-item">
1483            <a class="dropdown-item d-flex" href="#" enable-href="false" data-bind="attr:{'aria-controls': 'UI_'+$data._id(), 'data-bs-target':'#UI_'+$data._id(), href: doGetLinkCategory($data) }">
1484                <!-- ko ifnot: doCheckEmptyData($data._pictureName()) -->
1485                <span class="categoryMerge" data-bind="style:{'background-position-x': $data._picturePosition()+'px', 'alt': $data._code()}">
1486                </span>
1487                <!-- /ko -->
1488                <span class="categoryColor font-size-14" data-bind="class: ($data._list() != 0 && $parent.mode=='block') ? 'fw-medium':'fw-light', text: $data._name, attr:{'data-code': $data._code}, click: doLoadMenu.bind($root, $data, 'Shop'), style:{'--data-categoryColor': $data._colorMobileHex()}"></span>
1489            </a>
1490            <!--ko if :  $data._list() != 0 -->
1491            <!-- ko template: { name: 'Template_ItemMobileMenu' , data:$data} --><!-- /ko -->
1492            <!-- /ko -->
1493        </li>
1494    </ul>
1495
1496</script>
1496
1497
1498
1499
1500<!-- ko ifnot: m_isMenuMobile() -->
1501<!-- ko if: $root.m_listCategoryMenuDepartmentHeader().length!=0 -->
1502<ul class="navbar-nav d-none d-lg-flex navbar-mega-nav pe-lg-2-Auto me-lg-2-Auto" style="padding-right:unset !important">
1503    <li class="nav-item dropdown">
1504        <a class="nav-link dropdown-toggle ps-lg-0-Auto " href="#" data-bs-toggle="dropdown" data-bs-auto-close="outside">
1505            <i class="ci-menu align-middle mt-n1 me-2-Auto"></i>
1506            الادارات
1507        </a>
1508        <ul class="dropdown-menu " data-bind="foreach: $root.m_listCategoryMenuDepartmentHeader">
1509            <li class="dropdown mega-dropdown">
1510                <a class="dropdown-item dropdown-toggle d-flex" href="#" enable-href="false" data-bind="class: $data._list() != 0 ? 'dropdown-toggle':'', attr:{href: doGetLinkCategory($data) }" data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-expanded="true">
1511                    <!-- ko ifnot: doCheckEmptyData($data._pictureName()) -->
1512                    <span class="categoryMerge" data-bind="style:{'background-position-x': $data._picturePosition()+'px', 'alt': $data._code()}">
1513                    </span>
1514                    <!-- /ko -->
1515                    <span class="categoryColor menuSpan" data-bind="text: $data._name, attr:{'data-code': $data._code}, click: doLoadMenu.bind($root, $data, 'Shop'), style:{'--data-categoryColor': $data._colorDesktopHex()}"></span>
1516                </a>
1517                <div class="dropdown-menu p-0 megaMenuRtl" data-bind="style: {'min-width': doCheckEmptyData($data._bannerName()) ? '0rem':'12rem'}">
1518                    <div class="d-flex flex-wrap flex-sm-nowrap p-2">
1519                        <div style="max-width: 12rem;" data-bind="class: doCheckEmptyData($data._bannerName()) ? '':'mega-dropdown-column'">
1520                            <!--ko if :  $data._list() != 0 -->
1521                            <!-- ko run: $data.mode='block' --><!-- /ko -->
1522                            <!-- ko template: { name: 'Template_ItemDeskMenu' , data:$data} --><!-- /ko -->
1523                            <!-- /ko -->
1524                        </div>
1525                        <!--ko if :  !doCheckEmptyData($data._bannerName()) -->
1526                        <div class="mega-dropdown-column d-none d-lg-block text-center">
1527                            <img width="100%" data-bind="attr:{ src: GlobalSettingTranslateEnum.PathCategoryPicture + $data._bannerName(), 'alt': $data._code()}" alt="Menu">
1528                        </div>
1529                        <!-- /ko -->
1530                    </div>
1531                </div>
1532            </li>
1533        </ul>
1534    </li>
1535</ul>
1536<!-- /ko -->
1537<!-- Primary menu-->
1538<ul class="navbar-nav d-none d-lg-flex" data-bind="css:{'hide': m_listCategoryMenuHeader().length==0}, foreach: m_listCategoryMenuHeader">
1539    <li class="nav-item dropdown">
1540        <a class="nav-link dropdown-toggle" enable-href="false" href="#" data-bs-auto-close="outside" data-bind="attr:{href: doGetLinkCategory($data)}">
1541            <span class="categoryColor bolder" data-bind="text: $data._name, attr:{'data-code': $data._code}, style:{'--data-categoryColor': $data._colorDesktopHex()}"></span>
1542        </a>
1543        <!-- ko if: $data._list().length!=0 -->
1544        <!-- ko run: $data.mode='' --><!-- /ko -->
1545        <!-- ko template: { name: 'Template_ItemDeskMenu' , data:$data} --><!-- /ko -->
1546        <!-- /ko -->
1547    </li>
1548</ul>
1549
1550<!-- Tag menu -->
1551<ul class="navbar-nav d-none d-lg-flex ms-auto align-items-center" data-bind="css:{'hide': m_listCategoryMenuTag().length==0}, foreach: m_listCategoryMenuTag">
1552    <li class="nav-item me-2-Auto">
1553        <a class="btn btn-sm rounded-pill border px-3 categoryColor" enable-href="false" href="#" data-bind="
1554                               attr:{href: doGetLinkCategory($data), 'data-code': $data._code},
1555                               text: $data._name,
1556                               style:{'--data-categoryColor': $data._colorDesktopHex()}"></a>
1557    </li>
1558</ul>
1559<!-- /ko -->
1560
1561<!-- ko if: m_isMenuMobile() -->
1562<aside class="w-100 zindex-lg-5 pt-lg-5 d-lg-none" aria-modal="true" role="dialog">
1563    <div class="pt-2 d-none d-lg-block"></div>
1564
1565    <!--ko if :  m_listCategoryMenuDepartmentHeader().length!=0-->
1566    <ul class="nav nav-tabs nav-justified mt-4 mt-lg-5 mb-0" role="tablist" style="min-height: 3rem;">
1567        <li class="nav-item" role="presentation">
1568            <a class="nav-link fw-medium" href="#UI_departments" data-bs-toggle="tab" role="tab" aria-selected="false" tabindex="-1">
1569                الادارات
1570            </a>
1571        </li>
1572        <li class="nav-item" role="presentation">
1573            <a class="nav-link fw-medium active" href="#UI_headers" data-bs-toggle="tab" role="tab" aria-selected="true">
1574                قائمة
1575            </a>
1576        </li>
1577    </ul>
1578    <!-- /ko -->
1579
1580    <div class="offcanvas-body px-0 pt-3" data-simplebar="init" data-simplebar-auto-hide="false" style="height: calc( 100% - 35px);">
1581        <div class="tab-content">
1582
1583            <!--ko if :  m_listCategoryMenuDepartmentHeader().length!=0-->
1584            <div class="sidebar-nav tab-pane fade" id="UI_departments" role="tabpanel">
1585                <div class="widget widget-categories accordion " id="shop-categories" data-bind="foreach: m_listCategoryMenuDepartmentHeader">
1586                    <div class="accordion-item border-bottom accordion-header pe-2-Auto">
1587                        <button class="accordion-button collapsed fw-bold d-flex align-items-center" type="button" data-bs-toggle="collapse" data-bind="attr:{'aria-controls': 'UI_'+$data._id(), 'data-bs-target':'#UI_'+$data._id()}" aria-expanded="false">
1588                            <!-- ko ifnot: doCheckEmptyData($data._pictureName()) -->
1589                            <span class="categoryMerge" data-bind="style:{'background-position-x': $data._picturePosition()+'px', 'alt': $data._code()}">
1590                            </span>
1591                            <!-- /ko -->
1592                            <span class="categoryColor menuSpan " data-bind="text: $data._name, attr:{'data-code': $data._code}, click: doLoadMenu.bind($root, $data, 'Shop'), style:{'--data-categoryColor': $data._colorMobileHex()}"></span>
1593
1594                        </button>
1595                        <!-- ko run: $data.mode='block' --><!-- /ko -->
1596                        <!-- ko template: { name: 'Template_ItemMobileMenu' , data:$data} --><!-- /ko -->
1597                    </div>
1598                </div>
1599            </div>
1600            <!-- /ko -->
1601
1602            <div class="sidebar-nav tab-pane  fade active show" id="UI_headers" role="tabpanel">
1603                <div class="widget widget-categories accordion" data-bind="css:{'hide': m_listCategoryMenuHeader().length==0}, foreach: m_listCategoryMenuHeader">
1604                    <div class="accordion-item accordion-header">
1605                        <button class="categoryBgColor accordion-button collapsed d-flex align-items-center px-1 py-3" style="padding-top: .75rem; padding-bottom: .75rem;" type="button" data-bs-toggle="collapse" data-bind="css:{'hideAfter': $data._list().length==0}, attr:{'aria-controls': 'UI_'+$data._id(), 'data-bs-target':'#UI_'+$data._id()}, style:{'--data-categoryBgColor': $data._colorBackgroundHex()}" aria-expanded="false">
1606                            <!-- ko ifnot: doCheckEmptyData($data._pictureName()) -->
1607                            <span class="categoryMerge" data-bind="style:{'background-position-x': $data._picturePosition()+'px', 'alt': $data._code()}">
1608                            </span>
1609                            <!-- /ko -->
1610                            <span onclick="" class="categoryColor font-size-18 menuSpan" data-bind="text: $data._name, attr:{'data-code': $data._code}, click: doLoadMenu.bind($root, $data, 'Shop'), style:{'--data-categoryColor': $data._colorMobileHex()}"></span>
1611                        </button>
1612
1613                        <!--ko if :  $data._list().length!=0 -->
1614                        <!-- ko run: $data.mode='block' --><!-- /ko -->
1615                        <!-- ko template: { name: 'Template_ItemMobileMenu' , data:$data} --><!-- /ko -->
1616                        <!-- /ko -->
1617
1618                    </div>
1619                </div>
1620            </div>
1621
1622        </div>
1623    </div>
1624</aside>
1625<!-- /ko -->
1626
1627
1628                </div>
1629            </div>
1630        </div>
1631
1632    </div>
1633</header>
1634
1635
1636    <!-- END HEADER -->
1637    <div style="min-height: 60vh;">
1638        <div id="UI_AjaxLoader" class="page-wrapper">
1639            <div id="UI_LayoutBody" class="main_content">
1640                
1641
1642
1643
1644
1645
1646<script type="application/javascript">
1647    var m_handlerPageHome;
1648
1649    doLoadScript(function () {
1650        m_handlerPageHome = new Handler_PageHome();
1651        doSetHandlerPageScroller(m_handlerPageHome);
1652        m_handlerPageHome.doInitData({"requestCode":4001,"requestData":{"_page":{"_pageType":0,"_styleCss":".div875-510 .BannerBtnGrid {\nheight: fit-content;\ngrid-template-columns: repeat(3, calc(33.33% - 5px));\ngrid-template-rows: repeat(2, 50%);\ngrid-column-gap: 10px;\ngrid-row-gap: 10px;\n}\n\n@media (max-width: 425px) {\n\n.div875-510 .BannerBtnGrid {\ngrid-template-columns: repeat(2, calc(50% - 5px));\ngrid-template-rows: repeat(3, 33.33%);\n}\n}.div300-700 .BannerBtnGrid {\nheight: fit-content;\ngrid-template-columns: repeat(5, calc(20% - 7px));\ngrid-template-rows: repeat(2, 50%);\ngrid-column-gap: 10px;\ngrid-row-gap: 10px;\n}\n\n\n\n.div300-700 .BannerBtnGrid_item div{\nheight: 100%;\n}\n\n\n@media (max-width: 769px) {\n\n.div300-700 .BannerBtnGrid {\ngrid-template-columns: repeat(2, calc(50% - 3px));\ngrid-template-rows: repeat(5, 20%);\n}\n}","_pageStatus":1,"_showMenu":false,"_listDivModel":[{"_loopCount":0,"_order":0,"_classCss":"","_divObjectFilterType":0,"_divSurveyFilterType":0,"_divFilterParameters":"","_listSlideModel":[{"_code":"promoauthentic","_title":"فحص اصاله مجاني مع كل عملية شراء","_description":"<p><span style=\"font-size: 11px;\">خاضع للشروط و الأحكام</span></p>","_button":"","_link":"","_titleHex":"#FF5940FF","_descriptionHex":"#FFFFFFDB","_buttonHex":"#FFFFFF","_backGroundHex":"#FFFFFF","_titleVisibleMode":0,"_descriptionVisibleMode":0,"_buttonVisibleMode":3,"_backGroundVisibleMode":3,"_id":"4433bec1-bd97-4bff-9c9e-449865f6fefd","_order":0}],"_divTemplateModel":{"_code":"TopBarSlick","_divTemplateItemType":0,"_itemCount":1,"_pictureModel":{"_name":"cb4e84dd-3ef7-410c-86e9-9c714407164b.jpeg","_pictureType":0,"_order":0,"_dimension":"1903x41","_id":"c6d0227a-b3b6-4c58-9004-1944e21a8aee","_dateCreate":"2023-04-15T00:09:25.0000000","_dateUpdate":"2023-04-15T00:09:25.0000000"},"_isDynamicCount":true,"_isAdvance":false,"_slotName":"slotHeader","_id":"0579d34c-110b-43d4-8ac0-0063b76ee85c","_dateCreate":"2023-04-15T00:09:25.0000000","_dateUpdate":"2026-09-03T22:21:45.6267986"},"_autoHideArea":false,"_enableTimer":false,"_dateStart":"2024-10-14T11:48:23.0000000","_dateEnd":"2024-10-14T11:48:23.0000000","_id":"17fcf8ba-6868-46a6-8947-9077a7cd58ed","_hasLoadListObject":false},{"_loopCount":0,"_order":1,"_classCss":"","_divObjectFilterType":0,"_divSurveyFilterType":0,"_divFilterParameters":"","_listSlideModel":[{"_code":"authenticitycheck","_title":"فحص الأصالة","_description":"","_button":"","_link":"/Shop/service","_listPictureModel":[{"_name":"ff6f4d49-ff80-47f6-996b-2b023476ec65.jpeg","_pictureType":0,"_order":0,"_dimension":"*x*","_id":"1c062bd9-cecc-4b2d-becf-9384b0fc8807","_dateCreate":"2024-10-28T17:34:11.0000000","_dateUpdate":"2024-10-28T16:23:43.2148746"},{"_name":"c38c55ef-020a-45ae-8d6c-ffa23c32598a.jpeg","_pictureType":0,"_order":1,"_dimension":"*x*","_id":"936aa740-cea5-47c2-8e29-51a506ee7fb2","_dateCreate":"2024-10-28T18:23:38.0000000","_dateUpdate":"2024-10-28T18:23:38.0000000"},{"_name":"5eda8d90-62f3-42dd-b012-bcac9eeaefcb.jpeg","_pictureType":0,"_order":2,"_dimension":"*x*","_id":"970f5d62-be8d-40a5-ba35-2ddb2116fd2e","_dateCreate":"2024-10-28T17:34:17.0000000","_dateUpdate":"2024-10-28T16:23:44.2557345"},{"_name":"338be8db-3b35-402f-a87a-775604515f78.jpeg","_pictureType":0,"_order":3,"_dimension":"*x*","_id":"d310a46d-c446-4a7c-9606-64a034b54fc5","_dateCreate":"2024-10-28T18:23:33.0000000","_dateUpdate":"2024-10-28T18:23:33.0000000"}],"_titleHex":"#FFFFFF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#FFFFFF","_titleVisibleMode":3,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":3,"_id":"7fa5a1a8-9d7f-4beb-be2a-4dcae8209482","_order":0},{"_code":"sell​​yourluxuryitems","_title":"بيع قظعك الفاخرة","_description":"","_button":"","_link":"/Object/CreateSell","_listPictureModel":[{"_name":"4e37cc52-45ec-43cf-a040-282ec68faa70.jpeg","_pictureType":0,"_order":0,"_dimension":"865x283","_id":"a043bd7f-f25d-4f11-9031-a6752efa0113","_dateCreate":"2024-10-28T17:27:45.0000000","_dateUpdate":"2024-10-28T17:27:45.0000000"},{"_name":"c04282fa-ed3f-42fc-962d-e9b31ac5c79e.jpeg","_pictureType":0,"_order":1,"_dimension":"547x283","_id":"325505ae-662e-4a62-9fa9-fbdda6112b1e","_dateCreate":"2024-10-28T17:28:05.0000000","_dateUpdate":"2024-10-28T17:28:05.0000000"},{"_name":"ee4b3f85-1383-4702-9475-d4506ea0d5aa.jpeg","_pictureType":0,"_order":2,"_dimension":"865x283","_id":"9b77cee8-2de1-4229-9951-95b7efd4985d","_dateCreate":"2024-10-28T17:27:51.0000000","_dateUpdate":"2024-10-28T17:27:51.0000000"},{"_name":"7a801544-3bcc-4e75-865e-beacc016adba.jpeg","_pictureType":0,"_order":3,"_dimension":"547x283","_id":"7dd8f3a7-56b1-42ae-a05d-4f53d017e8d9","_dateCreate":"2024-10-28T17:28:09.0000000","_dateUpdate":"2024-10-28T17:28:09.0000000"}],"_titleHex":"#FFFFFF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#FFFFFF","_titleVisibleMode":3,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":3,"_id":"146ed7b6-9655-469b-8995-148527d898a7","_order":0}],"_divTemplateModel":{"_code":"BannerPercent","_divTemplateItemType":0,"_itemCount":2,"_pictureModel":{"_name":"fb778f4e-9189-4721-93e8-8e8dcc0c24e9.png","_pictureType":0,"_order":0,"_dimension":"1104x408","_id":"161fb807-b2d9-47ab-a2b4-06d45918c07d","_dateCreate":"2024-10-16T22:06:53.0000000","_dateUpdate":"2024-11-12T09:13:50.0911675"},"_isDynamicCount":false,"_isAdvance":false,"_id":"8babe07d-5967-4daf-9c79-079361c4902e","_dateCreate":"2024-10-16T22:06:53.0000000","_dateUpdate":"2026-08-08T19:43:15.9249532"},"_autoHideArea":false,"_enableTimer":false,"_dateStart":"2024-10-14T11:48:43.0000000","_dateEnd":"2024-10-14T11:48:43.0000000","_id":"2dfdb752-7569-4c01-8324-55e71cadd71f","_hasLoadListObject":false},{"_loopCount":0,"_order":2,"_classCss":"mt-md-0 mt-sm-n2","_divObjectFilterType":0,"_divSurveyFilterType":0,"_divFilterParameters":"","_listSlideModel":[{"_code":"buyandsellnew","_title":"بيع وشراء-جديد","_description":"","_button":"","_link":"/Object/Shop","_listPictureModel":[{"_name":"a4c949d2-7afc-4c74-8112-18fe2f4ae111.png","_pictureType":0,"_order":0,"_dimension":"*x*","_id":"c20bf97d-f6bf-41ef-81a8-648d42c3bc99","_dateCreate":"2026-09-05T09:49:39.5991276","_dateUpdate":"2026-09-05T09:49:39.5991282"},{"_name":"52293416-460f-4af2-b07f-dbc9f5fb40a8.png","_pictureType":0,"_order":1,"_dimension":"*x*","_id":"8feb7dae-484c-4b5e-
1652a96f-f0bb01f0aa98","_dateCreate":"2026-09-05T09:49:39.5991332","_dateUpdate":"2026-09-05T09:49:39.5991332"},{"_name":"036ef27c-6024-4837-8d5a-adbf33ca558b.png","_pictureType":0,"_order":2,"_dimension":"*x*","_id":"7aca133f-0a91-40f9-8d9d-d76556ad8b44","_dateCreate":"2026-09-05T09:49:39.5991347","_dateUpdate":"2026-09-05T09:49:39.5991348"},{"_name":"e303d16c-a755-4321-821c-91c73bbcb005.png","_pictureType":0,"_order":3,"_dimension":"*x*","_id":"62658a89-0e77-4d6d-8d98-cc2f1540edda","_dateCreate":"2026-09-05T09:49:39.5991351","_dateUpdate":"2026-09-05T09:49:39.5991351"}],"_titleHex":"#FFFFFF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#FFFFFF","_titleVisibleMode":3,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":3,"_id":"62f30e84-3892-4bcc-81fd-b62a1477883b","_order":0}],"_divTemplateModel":{"_code":"OneBanner","_divTemplateItemType":0,"_itemCount":0,"_pictureModel":{"_name":"805670da-9c73-4429-a156-ab61361bec3b.png","_pictureType":0,"_order":0,"_dimension":"1104x565","_id":"1601973c-637e-4231-8594-55a5f2957b6d","_dateCreate":"2023-01-23T15:49:02.0000000","_dateUpdate":"2024-11-18T09:52:37.2568136"},"_isDynamicCount":true,"_isAdvance":false,"_id":"cbd295e4-cb60-40c3-9e48-64581577e91b","_dateCreate":"2023-01-23T15:49:02.0000000","_dateUpdate":"2026-09-03T22:23:30.0420001"},"_autoHideArea":false,"_enableTimer":false,"_dateStart":"2024-10-14T13:18:43.0000000","_dateEnd":"2024-10-14T13:18:43.0000000","_id":"1320cfba-73bf-4d26-9970-7da9b632f908","_hasLoadListObject":false},{"_loopCount":0,"_order":3,"_classCss":"","_divObjectFilterType":0,"_divSurveyFilterType":0,"_divFilterParameters":"","_listSlideModel":[{"_code":"men","_title":"الرجال","_description":"","_button":"","_link":"/Shop/men","_listPictureModel":[{"_name":"9f7bee0b-bf99-43c9-8d39-10ba38c7d459.png","_pictureType":0,"_order":0,"_dimension":"101x101","_id":"e29c3aef-ee4e-4563-91e1-55e797a160bc","_dateCreate":"2024-10-14T19:31:54.0000000","_dateUpdate":"2024-10-16T16:27:32.2218183"},{"_name":"6d26864b-adac-47fe-bcd8-c1c40c560d73.png","_pictureType":0,"_order":1,"_dimension":"101x101","_id":"264ee595-0797-4de1-9083-659b0fd8420d","_dateCreate":"2024-10-14T19:31:58.0000000","_dateUpdate":"2024-10-16T16:27:32.3454845"},{"_name":"629f5b70-d83f-4910-a8a3-5453044a900f.png","_pictureType":0,"_order":2,"_dimension":"101x101","_id":"cce8265a-6f93-48aa-9dc0-5d7eafedd1cd","_dateCreate":"2024-10-14T19:32:01.0000000","_dateUpdate":"2024-10-16T16:27:32.4721370"},{"_name":"f078ac8a-a0de-4de8-92a3-08e63a24235c.png","_pictureType":0,"_order":3,"_dimension":"101x101","_id":"8ac78f82-812c-49ad-b03a-035b5710a5bb","_dateCreate":"2024-10-14T19:32:05.0000000","_dateUpdate":"2024-10-16T16:27:32.5993417"}],"_titleHex":"#000000FF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#FFFFFF","_titleVisibleMode":0,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":3,"_id":"bbb59020-747f-4f24-9583-fe57fcf545f7","_order":0},{"_code":"women","_title":"نساء","_description":"","_button":"","_link":"/Shop/men","_listPictureModel":[{"_name":"589044f1-0e50-4aec-8dd1-c262d640fc56.png","_pictureType":0,"_order":0,"_dimension":"101x101","_id":"16a3a572-9ad0-4760-9c28-ab571f34c563","_dateCreate":"2024-10-14T19:31:24.0000000","_dateUpdate":"2024-10-16T10:15:59.0529645"},{"_name":"17e0d8c5-411d-4845-95af-565f4a034695.png","_pictureType":0,"_order":1,"_dimension":"101x101","_id":"1428ed53-1fd9-4eaa-8016-bce6a08fff71","_dateCreate":"2024-10-14T19:31:29.0000000","_dateUpdate":"2024-10-16T10:15:59.1753208"},{"_name":"cbf6c174-0d61-4e20-bcc4-ed720eb3b63d.png","_pictureType":0,"_order":2,"_dimension":"101x101","_id":"177666c8-8382-4a4f-ab5b-b0a486e7ec38","_dateCreate":"2024-10-14T19:31:33.0000000","_dateUpdate":"2024-10-16T10:15:59.2970526"},{"_name":"0fd7f5af-45ea-4bd0-810a-e7ec6f987700.png","_pictureType":0,"_order":3,"_dimension":"101x101","_id":"513b2133-7b1e-4fbf-b035-4c2de988e5fc","_dateCreate":"2024-10-14T19:31:37.0000000","_dateUpdate":"2024-10-16T10:15:59.4195010"}],"_titleHex":"#000000FF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#FFFFFF","_titleVisibleMode":0,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":3,"_id":"5d59321a-1f27-4702-a43b-74cd18977728","_order":0},{"_code":"kids","_title":"الاطفال","_description":"","_button":"","_link":"/Shop/kids","_listPictureModel":[{"_name":"de1bbf92-ba9c-4fc4-8191-0c6253a19ca2.png","_pictureType":0,"_order":0,"_dimension":"101x101","_id":"cf48e887-c3c0-4462-a295-a471a5bdac8c","_dateCreate":"2024-10-14T19:30:49.0000000","_dateUpdate":"2024-10-16T10:15:51.2835393"},{"_name":"796c2cc7-70c0-40d7-9cbb-e1e057e8e1db.png","_pictureType":0,"_order":1,"_dimension":"101x101","_id":"ff6db743-f77d-4f25-9975-10e1bc904bf3","_dateCreate":"2024-10-14T19:30:54.0000000","_dateUpdate":"2024-10-16T10:15:51.4087617"},{"_name":"a222398b-882f-4570-8117-441bce7c4d9a.png","_pictureType":0,"_order":2,"_dimension":"101x101","_id":"4b39e55b-008a-4c47-8eaa-8b747ce6d47d","_dateCreate":"2024-10-14T19:30:58.0000000","_dateUpdate":"2024-10-16T10:15:51.5316880"},{"_name":"a4939317-c1b1-4b12-9275-3b4b6f0b869b.png","_pictureType":0,"_order":3,"_dimension":"101x101","_id":"6ad783f6-bf56-450e-8f42-aeb109f7cc44","_dateCreate":"2024-10-14T19:31:01.0000000","_dateUpdate":"2024-10-16T10:15:51.6543247"}],"_titleHex":"#000000FF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#FFFFFF","_titleVisibleMode":0,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":3,"_id":"fc124d28-1464-445f-bfe3-176055e3adc5","_order":0},{"_code":"brands","_title":"الماركات","_description":"","_button":"","_link":"/Brand","_listPictureModel":[{"_name":"f912a871-0b9c-4e87-b6cb-17f892f4410e.png","_pictureType":0,"_order":0,"_dimension":"101x101","_id":"8c25e257-670f-4a78-8335-f067a8d241d2","_dateCreate":"2024-10-14T19:30:17.0000000","_dateUpdate":"2024-10-17T07:44:23.6040592"},{"_name":"ab309bee-c918-43b8-a379-4858caf68e61.png","_pictureType":0,"_order":1,"_dimension":"101x101","_id":"570ec9f5-5102-4ea5-9965-9ef2aab8158a","_dateCreate":"2024-10-14T19:30:20.0000000","_dateUpdate":"2024-10-17T07:44:23.7317249"},{"_name":"56710aa2-4d50-4b8c-961f-630ddaca485e.png","_pictureType":0,"_order":2,"_dimension":"101x101","_id":"abfce0f9-da00-4495-bced-1cf4e48d28c4","_dateCreate":"2024-10-14T19:30:24.0000000","_dateUpdate":"2024-10-17T07:44:23.8583529"},{"_name":"3c8f4f6f-84f4-4893-8f46-4ffedb599a04.png","_pictureType":0,"_order":3,"_dimension":"101x101","_id":"4ce0738a-16b1-4fb3-ba37-0d0e87e6612c","_dateCreate":"2024-10-14T19:30:27.0000000","_dateUpdate":"2024-10-17T07:44:23.9824599"}],"_titleHex":"#000000FF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#FFFFFF","_titleVisibleMode":0,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":3,"_id":"7207dac7-0aab-4cb7-b7d8-aff35bc1e9a9","_order":0},{"_code":"uniquerare","_title":"نادرة","_description":"","_button":"","_link":"/Shop/uniquerare","_listPictureModel":[{"_name":"f70231ae-20c8-4b5b-a48f-a2a15b63c611.png","_pictureType":0,"_order":0,"_dimension":"101x101","_id":"3e60
165277f7-cc17-4705-a787-e4a24fd82332","_dateCreate":"2024-10-14T19:29:39.0000000","_dateUpdate":"2024-10-17T07:45:14.7917939"},{"_name":"094e00b7-5721-491e-a600-dd93ad89c7cd.png","_pictureType":0,"_order":1,"_dimension":"101x101","_id":"644554e6-fdf1-43db-a201-06dec67e592a","_dateCreate":"2024-10-14T19:29:43.0000000","_dateUpdate":"2024-10-17T07:45:14.9139653"},{"_name":"9747b352-c427-47d7-b251-d33f2a473379.png","_pictureType":0,"_order":2,"_dimension":"101x101","_id":"430465e4-0cd9-4315-aaff-2d053de35eb8","_dateCreate":"2024-10-14T19:29:47.0000000","_dateUpdate":"2024-10-17T07:45:15.0408793"},{"_name":"93f7136a-85fd-42f7-b4e3-7980f2a3f2a5.png","_pictureType":0,"_order":3,"_dimension":"101x101","_id":"5f8247ed-7e05-4064-a104-99aa672b71a5","_dateCreate":"2024-10-14T19:29:50.0000000","_dateUpdate":"2024-10-17T07:45:15.1651762"}],"_titleHex":"#000000FF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#FFFFFF","_titleVisibleMode":0,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":3,"_id":"38fbc99e-8fad-4afe-baf8-a0cf7c8bd8c3","_order":0}],"_divTemplateModel":{"_code":"FeaturedBanner","_divTemplateItemType":0,"_itemCount":-1,"_pictureModel":{"_name":"509da4ac-7d7e-4002-89af-b95db4d8a419.png","_pictureType":0,"_order":0,"_dimension":"1144x557","_id":"56dc8241-5cb6-4107-95c5-92d76edde87e","_dateCreate":"2023-01-26T11:57:00.0000000","_dateUpdate":"2024-11-14T12:18:02.4232987"},"_isDynamicCount":true,"_isAdvance":true,"_id":"f330bed6-6ec9-4c35-832b-dcb93aacf78e","_dateCreate":"2023-01-26T11:57:00.0000000","_dateUpdate":"2026-09-03T22:22:37.3389030"},"_autoHideArea":false,"_enableTimer":false,"_dateStart":"2024-10-14T13:40:05.0000000","_dateEnd":"2024-10-14T13:40:05.0000000","_id":"0fd06543-2f3d-4f28-bb21-5aa68ab15f6a","_hasLoadListObject":false},{"_loopCount":0,"_order":4,"_classCss":"","_divObjectFilterType":0,"_divSurveyFilterType":0,"_divFilterParameters":"","_listSlideModel":[{"_code":"newarrival","_title":"new Arrival","_description":"","_button":"","_link":"","_listPictureModel":[{"_name":"a965da92-963d-4fb1-87c5-558e88b6aeed.png","_pictureType":0,"_order":0,"_dimension":"*x*","_id":"be013efe-429e-4ac2-aad4-9539633e19af","_dateCreate":"2026-09-05T08:50:17.2185192","_dateUpdate":"2026-09-05T08:50:17.2185197"},{"_name":"f7ace032-6806-4364-8805-adee982284ff.png","_pictureType":0,"_order":1,"_dimension":"*x*","_id":"7363b730-2c5a-4f55-9e82-6bb770907a74","_dateCreate":"2026-09-05T08:50:17.2185251","_dateUpdate":"2026-09-05T08:50:17.2185252"},{"_name":"0101e564-e51c-4c58-8a58-fde10c529f09.png","_pictureType":0,"_order":2,"_dimension":"*x*","_id":"49aa0748-247d-44d6-9320-7ae373e65d13","_dateCreate":"2026-09-05T08:50:17.2185255","_dateUpdate":"2026-09-05T08:50:17.2185255"},{"_name":"4eaf750a-76f8-49a4-ae35-e92c966ca87a.png","_pictureType":0,"_order":3,"_dimension":"*x*","_id":"190ad613-ded4-476e-b318-bca8c41f4e4d","_dateCreate":"2026-09-05T08:50:17.2185257","_dateUpdate":"2026-09-05T08:50:17.2185258"}],"_titleHex":"#FFFFFF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#FFFFFF","_titleVisibleMode":3,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":3,"_id":"8ed169b3-3836-4da8-9bc9-a13e6364343b","_order":0}],"_divTemplateModel":{"_code":"OneBanner","_divTemplateItemType":0,"_itemCount":0,"_pictureModel":{"_name":"805670da-9c73-4429-a156-ab61361bec3b.png","_pictureType":0,"_order":0,"_dimension":"1104x565","_id":"1601973c-637e-4231-8594-55a5f2957b6d","_dateCreate":"2023-01-23T15:49:02.0000000","_dateUpdate":"2024-11-18T09:52:37.2568136"},"_isDynamicCount":true,"_isAdvance":false,"_id":"cbd295e4-cb60-40c3-9e48-64581577e91b","_dateCreate":"2023-01-23T15:49:02.0000000","_dateUpdate":"2026-09-03T22:23:30.0420001"},"_autoHideArea":false,"_enableTimer":false,"_dateStart":"2024-10-14T13:18:43.0000000","_dateEnd":"2024-10-14T13:18:43.0000000","_id":"5421b38d-7d58-49c0-b011-784a5f1140af","_hasLoadListObject":false},{"_slideModel":{"_code":"١٢","_title":"وصل حديثا","_description":"أجدد المنتجات المميزه التي تم إضافتها مؤخر","_button":"","_link":"","_titleHex":"#FFFFFF","_descriptionHex":"#000000FF","_buttonHex":"#FFFFFF","_backGroundHex":"#FFFFFF","_titleVisibleMode":3,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":0,"_id":"9ef22dcf-44b5-0fd1-9d43-4b9c21c6f5f5","_order":0},"_loopCount":2,"_order":6,"_classCss":"","_divObjectFilterType":3,"_divSurveyFilterType":0,"_divFilterParameters":"weeklyproducts","_divTemplateModel":{"_code":"AreaGrid","_divTemplateItemType":1,"_itemCount":10,"_pictureModel":{"_name":"3acfe2d7-d21e-4bcb-9f52-35ee8b25d8f3.png","_pictureType":0,"_order":0,"_dimension":"1122x706","_id":"29acbc81-1d26-46bc-a229-54703d5064f7","_dateCreate":"2023-01-25T16:06:36.0000000","_dateUpdate":"2024-11-14T12:58:50.4352733"},"_isDynamicCount":true,"_isAdvance":true,"_id":"896a8c1d-9c68-4ead-8041-2e584c6c458b","_dateCreate":"2023-01-25T16:06:36.0000000","_dateUpdate":"2026-01-09T09:48:50.4147316"},"_autoHideArea":false,"_enableTimer":false,"_dateStart":"2024-10-14T16:12:24.0000000","_dateEnd":"2024-10-14T16:12:24.0000000","_id":"9ef44b09-d606-4d52-8b7e-828ae1a633d4","_hasLoadListObject":false},{"_loopCount":0,"_order":7,"_classCss":"","_divObjectFilterType":0,"_divSurveyFilterType":0,"_divFilterParameters":"","_listSlideModel":[{"_code":"dress","_title":"الزي","_description":"","_button":"","_link":"/Shop/partydresses","_listPictureModel":[{"_name":"c153bf54-dc33-4f31-a1fa-88732bc550bc.png","_pictureType":0,"_order":0,"_dimension":"*x*","_id":"4e20521b-7eb3-464a-85fa-e0d251c8a0ef","_dateCreate":"2025-12-15T12:28:58.0000000","_dateUpdate":"2025-12-15T10:44:48.0551105"},{"_name":"85fa2da6-f42c-4424-aa17-6b44bb69592f.png","_pictureType":0,"_order":1,"_dimension":"*x*","_id":"6d744bb9-970d-4faa-bdf9-863d53099783","_dateCreate":"2025-12-15T12:29:02.0000000","_dateUpdate":"2025-12-15T10:44:48.1763502"},{"_name":"09763d65-dbbb-489e-a794-853d9bd8156a.png","_pictureType":0,"_order":2,"_dimension":"*x*","_id":"3fc4350c-709c-4e6f-b245-1d290e1b9334","_dateCreate":"2025-12-15T12:29:05.0000000","_dateUpdate":"2025-12-15T10:44:48.2904806"},{"_name":"028bf484-72b9-4fda-88c8-74d3ac005a05.png","_pictureType":0,"_order":3,"_dimension":"*x*","_id":"f566cc5f-9d3a-454a-b2aa-6e94c28bd079","_dateCreate":"2025-12-15T12:29:07.0000000","_dateUpdate":"2025-12-15T10:44:48.4114157"}],"_titleHex":"#FFFFFF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#FFFFFF","_titleVisibleMode":3,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":3,"_id":"6e959e54-b4fa-4af8-b79c-68b494d0db38","_order":0}],"_divTemplateModel":{"_code":"OneBanner","_divTemplateItemType":0,"_itemCount":0,"_pictureModel":{"_name":"805670da-9c73-4429-a156-ab61361bec3b.png","_pictureType":0,"_order":0,"_dimension":"1104x565","_id":"1601973c-637e-4231-8594-55a5f2957b6d","_dateCreate":"2023-01-23T15:49:02.0000000","_dateUpdate":"2024-11-18T09:52:37.2568136"},"_isDynamicCount":true,"_isAdvance":false,"_id":"cbd295e4-cb60-40c3-9e48-64581577e91b","_dateCreate":"2023-01-23T15:49:02.0000000","_dateUpdate":"2026-09-03T22:23:30.0420001"},"_autoHideArea":false,"_enableTimer":false,"_dateStart":"2025-02-20T17:39:40.0000000","_dateEnd":"2025-02-20T17:39:40.0000000","_id":"acc00af3-5122-4fc1-ac82-f2487c885
1652790","_hasLoadListObject":false},{"_loopCount":0,"_order":8,"_classCss":"","_divObjectFilterType":0,"_divSurveyFilterType":0,"_divFilterParameters":"","_listSlideModel":[{"_code":"instantdelivery","_title":"Instant Delivery","_description":"","_button":"","_link":"","_listPictureModel":[{"_name":"4a6895c9-4ff5-4737-99ec-845ef13e0fe2.png","_pictureType":0,"_order":0,"_dimension":"*x*","_id":"0776d32c-2e53-40e8-b1a0-33c17e21e834","_dateCreate":"2026-09-05T08:58:27.3537594","_dateUpdate":"2026-09-05T08:58:27.3537599"},{"_name":"c1714ef8-fa53-4436-9050-61e1f00c626e.png","_pictureType":0,"_order":1,"_dimension":"*x*","_id":"854849c9-e93d-4f7b-96a6-d9bdf1cb6408","_dateCreate":"2026-09-05T08:58:28.0255256","_dateUpdate":"2026-09-05T08:58:28.0255264"},{"_name":"8bf0b725-51be-4327-b8a3-a0bb2b9cd7fa.png","_pictureType":0,"_order":2,"_dimension":"*x*","_id":"a4f09ce0-c632-454f-a4b7-54285fc499ba","_dateCreate":"2026-09-05T08:58:28.3658603","_dateUpdate":"2026-09-05T08:58:28.3658610"},{"_name":"705df5fa-044e-4082-9d4a-5a3956b54021.png","_pictureType":0,"_order":3,"_dimension":"*x*","_id":"fa08246d-f335-4a37-b00e-7479f355ce5f","_dateCreate":"2026-09-05T08:58:28.7059653","_dateUpdate":"2026-09-05T08:58:28.7059660"}],"_titleHex":"#FFFFFF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#FFFFFF","_titleVisibleMode":3,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":3,"_id":"0864ef98-6e92-4c50-8c72-7a8855ca10a3","_order":0}],"_divTemplateModel":{"_code":"OneBanner","_divTemplateItemType":0,"_itemCount":0,"_pictureModel":{"_name":"805670da-9c73-4429-a156-ab61361bec3b.png","_pictureType":0,"_order":0,"_dimension":"1104x565","_id":"1601973c-637e-4231-8594-55a5f2957b6d","_dateCreate":"2023-01-23T15:49:02.0000000","_dateUpdate":"2024-11-18T09:52:37.2568136"},"_isDynamicCount":true,"_isAdvance":false,"_id":"cbd295e4-cb60-40c3-9e48-64581577e91b","_dateCreate":"2023-01-23T15:49:02.0000000","_dateUpdate":"2026-09-03T22:23:30.0420001"},"_autoHideArea":false,"_enableTimer":false,"_dateStart":"2024-10-14T13:18:43.0000000","_dateEnd":"2024-10-14T13:18:43.0000000","_id":"d77a4735-5434-46f3-b35c-8d84a2f77f8b","_hasLoadListObject":false},{"_slideModel":{"_code":"ourpickshome","_title":"تسليم فوري داخل الرياض !!","_description":"","_button":"","_link":"","_titleHex":"#FFFFFF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#FFFFFF","_titleVisibleMode":3,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":3,"_id":"b802e510-3b6d-4daf-95a1-450604fc6ded","_order":0},"_loopCount":0,"_order":9,"_classCss":"","_divObjectFilterType":0,"_divSurveyFilterType":0,"_divFilterParameters":"064246,626113,772000,742919,992364,640755,322293,586013,677137,851551,215175,000051,333711,429298,824987,432882,000093,723572,842633,000106,000094,000008,053885,021800,021799,777191,120949,632374,430280,259243,119696,729473,056246,423780,075030,297753,777258,634776,205258,697234,891367,251063,741052,994465,513049","_divTemplateModel":{"_code":"AreaSlick","_divTemplateItemType":1,"_itemCount":10,"_pictureModel":{"_name":"b36b2eb9-ab2a-4506-9ea4-855886920e1b.png","_pictureType":0,"_order":0,"_dimension":"1144x396","_id":"dc99a84d-75a0-46a6-bc82-295ebad6390d","_dateCreate":"2023-01-26T11:55:31.0000000","_dateUpdate":"2024-11-14T12:57:15.9775906"},"_isDynamicCount":true,"_isAdvance":true,"_id":"2804b7e9-b773-4e65-98ea-22365e7e2475","_dateCreate":"2023-01-26T11:55:31.0000000","_dateUpdate":"2026-08-16T15:04:01.5367590"},"_autoHideArea":false,"_enableTimer":false,"_dateStart":"2024-10-14T16:50:46.0000000","_dateEnd":"2024-10-14T16:50:46.0000000","_id":"47bec788-1e2b-4415-8482-1ec61cb4bafb","_hasLoadListObject":false},{"_slideModel":{"_code":"categoryimportant","_title":"الأقسام","_description":"قائمة الأقسام الرائجة التي يركز عليها عملاؤنا","_button":"","_link":"","_titleHex":"#000000FF","_descriptionHex":"#7D879CFF","_buttonHex":"#FFFFFF","_backGroundHex":"#FFFFFF","_titleVisibleMode":0,"_descriptionVisibleMode":0,"_buttonVisibleMode":3,"_backGroundVisibleMode":3,"_id":"612634c2-2fb5-4fde-8012-8e8b1532f11b","_order":0},"_loopCount":0,"_order":10,"_classCss":"div875-510 mb-4","_divObjectFilterType":0,"_divSurveyFilterType":0,"_divFilterParameters":"","_listSlideModel":[{"_code":"womenbag","_title":"حقيبة نسائية","_description":"","_button":"","_link":"/Shop/womenbag","_listPictureModel":[{"_name":"5e4f9132-32e3-47ae-a463-d1e99b4d912c.png","_pictureType":0,"_order":0,"_dimension":"*x*","_id":"e3683a0b-7ee6-4cb8-b59f-07e17624589d","_dateCreate":"2024-12-31T00:52:54.0000000","_dateUpdate":"2024-12-31T00:52:54.0000000"},{"_name":"6af8bdcb-715e-4b2f-8d08-136a4b9f301e.png","_pictureType":0,"_order":1,"_dimension":"*x*","_id":"6383ea5f-e186-4c09-bd40-a89b8d772a17","_dateCreate":"2024-12-31T00:52:58.0000000","_dateUpdate":"2024-12-31T00:52:58.0000000"},{"_name":"83bfcf35-d555-4420-be1b-8c2a60e70dfe.png","_pictureType":0,"_order":2,"_dimension":"*x*","_id":"8c8f1762-6c25-4a5f-92fb-c048dd82b9ff","_dateCreate":"2024-12-31T00:53:15.0000000","_dateUpdate":"2024-12-31T00:53:15.0000000"},{"_name":"0ad70cac-4225-41c3-b146-2e13913f7295.png","_pictureType":0,"_order":3,"_dimension":"*x*","_id":"1c257a61-bda9-4353-a60e-bb0d6cfc9a05","_dateCreate":"2024-12-31T00:53:18.0000000","_dateUpdate":"2024-12-31T00:53:18.0000000"}],"_titleHex":"#FFFFFF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#FFFFFF","_titleVisibleMode":3,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":3,"_id":"fdc46bb3-bc66-45ae-af1b-7d0fe69200aa","_order":0},{"_code":"womenshoess","_title":"أحذية نسائية","_description":"","_button":"","_link":"/Shop/womenshoe","_listPictureModel":[{"_name":"4db70f30-e5e4-4cc2-9314-57b1439b3265.png","_pictureType":0,"_order":0,"_dimension":"*x*","_id":"7cdbef5f-6be7-4b87-b44a-e062aa50b09a","_dateCreate":"2024-12-31T00:52:00.0000000","_dateUpdate":"2024-12-31T00:52:00.0000000"},{"_name":"925e7dd3-9e18-463b-ba60-801c77d9e7b9.png","_pictureType":0,"_order":1,"_dimension":"*x*","_id":"13a6cb62-01fd-44a7-8986-7e9166dc9ff9","_dateCreate":"2024-12-31T00:52:05.0000000","_dateUpdate":"2024-12-31T00:52:05.0000000"},{"_name":"2e2d2a83-9e9b-46c0-9e55-fc095a099cd8.png","_pictureType":0,"_order":2,"_dimension":"*x*","_id":"87718e5e-a40d-45ac-bffa-36ce58d83fd5","_dateCreate":"2024-12-31T00:52:11.0000000","_dateUpdate":"2024-12-31T00:52:11.0000000"},{"_name":"6be10dec-5997-4fe4-a635-440ab3e723a3.png","_pictureType":0,"_order":3,"_dimension":"*x*","_id":"40895b80-9d48-4380-b094-9a8721c25534","_dateCreate":"2024-12-31T00:52:15.0000000","_dateUpdate":"2024-12-31T00:52:15.0000000"}],"_titleHex":"#FFFFFF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#FFFFFF","_titleVisibleMode":3,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":3,"_id":"4ca26509-f63b-4d79-889d-07145f63c41a","_order":0},{"_code":"luxurywatches","_title":"ساعات راقية","_description":"","_button":"","_link":"/Shop/menwatch","_listPictureModel":[{"_name":"ddafc416-7fad-45d5-ba6a-23339a4ba836.png","_pictureType":0,"_order":0,"_dimension":"*x*","_id":"391ed8dd-ad30-45ed-aa83-190dce045ae0","_dateCreate":"2024-12-31T00:49:53.0000000","_dateUpdate":"2024-12-31T00:49:53.0000000"},{"_name":"ad3adbdd-f109-445c-8110-3db989f2d854.png","_pictureType":0,"_order":1,"_dimension":"*x*","_id":"f6e589e7-3d91-4f99-8598-d53bcc8b3459","_dateCreate":"2024-12-31T00:49:57.0000000","_dateUpdate":"2024-12-31T00:49:57.0000000"}
1652,{"_name":"061fcb36-7f98-4230-a74f-920e3e5896c7.png","_pictureType":0,"_order":2,"_dimension":"*x*","_id":"2a07a2c0-e6f7-46dd-a956-15204431b85a","_dateCreate":"2024-12-31T00:50:04.0000000","_dateUpdate":"2024-12-31T00:50:04.0000000"},{"_name":"0f28e47f-579b-4e9d-9010-f67b343e32c9.png","_pictureType":0,"_order":3,"_dimension":"*x*","_id":"d9ef783a-6040-4b07-9990-8ce244571041","_dateCreate":"2024-12-31T00:50:07.0000000","_dateUpdate":"2024-12-31T00:50:07.0000000"}],"_titleHex":"#FFFFFF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#FFFFFF","_titleVisibleMode":3,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":3,"_id":"c3aa49e2-dd7e-4f9f-abd4-87743d953da1","_order":0},{"_code":"topaccessories","_title":"أبرز الإكسسوارات","_description":"","_button":"","_link":"/Shop/stylishglasses","_listPictureModel":[{"_name":"36d83016-42d5-4a50-9d78-c38b6650af04.png","_pictureType":0,"_order":0,"_dimension":"*x*","_id":"b9bab0b5-eb6f-4919-a63e-7b8714d61fa7","_dateCreate":"2025-01-07T17:57:34.0000000","_dateUpdate":"2025-01-07T11:58:40.7511519"},{"_name":"b84698e3-eabf-4866-8232-fc02e519b5cc.png","_pictureType":0,"_order":1,"_dimension":"*x*","_id":"df9d05a7-2dca-45ef-b14d-876c83a04907","_dateCreate":"2025-01-07T17:57:38.0000000","_dateUpdate":"2025-01-07T11:58:40.8858738"},{"_name":"fe1a8a62-21cd-4c80-b7b5-ba904d1ade22.png","_pictureType":0,"_order":2,"_dimension":"*x*","_id":"1c5c8d9d-5016-45c1-a4ac-fd83a475bbe2","_dateCreate":"2025-01-07T17:57:44.0000000","_dateUpdate":"2025-01-07T11:58:41.0167783"},{"_name":"a9f833e8-47ef-4fa7-a8f7-f47409a2210b.png","_pictureType":0,"_order":3,"_dimension":"*x*","_id":"afff8743-3433-464e-afd5-813089b61642","_dateCreate":"2025-01-07T17:57:47.0000000","_dateUpdate":"2025-01-07T11:58:41.1473994"}],"_titleHex":"#FFFFFF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#FFFFFF","_titleVisibleMode":3,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":3,"_id":"28a8cc44-ba82-4fa2-91a9-8fd00f2eeac9","_order":0},{"_code":"womenjewelry","_title":"مجوهرات نسائية","_description":"","_button":"","_link":"/Shop/womenjewelry","_listPictureModel":[{"_name":"f46f2736-0055-4a7f-85db-12977be2e476.png","_pictureType":0,"_order":0,"_dimension":"*x*","_id":"5a58758d-9ccf-4c74-9723-f5f0e1844e4d","_dateCreate":"2024-12-31T00:50:29.0000000","_dateUpdate":"2024-12-31T00:50:29.0000000"},{"_name":"c91cdbf3-4dcd-44d5-a27e-9a14ceacc6e4.png","_pictureType":0,"_order":1,"_dimension":"*x*","_id":"351b4b6f-e2aa-471d-a56f-884c0d1bb6e3","_dateCreate":"2024-12-31T00:50:34.0000000","_dateUpdate":"2024-12-31T00:50:34.0000000"},{"_name":"d0c97be1-a1ae-4af7-ae76-ba40782c4abf.png","_pictureType":0,"_order":2,"_dimension":"*x*","_id":"99377035-7249-4522-86e0-61119bac2aab","_dateCreate":"2024-12-31T00:50:40.0000000","_dateUpdate":"2024-12-31T00:50:40.0000000"},{"_name":"2dfdb774-c946-49a3-bce2-d74b471c200b.png","_pictureType":0,"_order":3,"_dimension":"*x*","_id":"d2c33e81-8319-43c1-9c62-66f7850d4ce6","_dateCreate":"2024-12-31T00:50:43.0000000","_dateUpdate":"2024-12-31T00:50:43.0000000"}],"_titleHex":"#FFFFFF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#FFFFFF","_titleVisibleMode":3,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":3,"_id":"dbb7563e-9dd9-4c6e-9c2b-0baef6c43878","_order":0},{"_code":"luxurypens","_title":"أقلام فاخرة","_description":"","_button":"","_link":"/Shop/menpen","_listPictureModel":[{"_name":"de8a76f5-c486-47a0-83d1-0c3cbac95afb.png","_pictureType":0,"_order":0,"_dimension":"*x*","_id":"a3efa558-6e9f-4c81-b360-7e2f8e7edf75","_dateCreate":"2024-12-31T00:53:40.0000000","_dateUpdate":"2024-12-31T00:53:40.0000000"},{"_name":"47c36425-9e9e-4198-bc54-c2fc45beddb5.png","_pictureType":0,"_order":1,"_dimension":"*x*","_id":"03a3b381-401f-48e5-a1ee-3fe272a95341","_dateCreate":"2024-12-31T00:53:43.0000000","_dateUpdate":"2024-12-31T00:53:43.0000000"},{"_name":"849a23ab-2b3f-44c0-a5fc-9fdb1353c5c9.png","_pictureType":0,"_order":2,"_dimension":"*x*","_id":"85f6d9ed-a3a8-4d86-9aee-9ce6acc877de","_dateCreate":"2024-12-31T00:53:48.0000000","_dateUpdate":"2024-12-31T00:53:48.0000000"},{"_name":"7ba16c7a-6707-4a66-8117-ac0ea4de08f9.png","_pictureType":0,"_order":3,"_dimension":"*x*","_id":"40480a9a-134b-4cf1-a7f1-2d07bacbb66c","_dateCreate":"2024-12-31T00:53:52.0000000","_dateUpdate":"2024-12-31T00:53:52.0000000"}],"_titleHex":"#FFFFFF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#FFFFFF","_titleVisibleMode":3,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":3,"_id":"c4e8e9ac-e940-4a2d-a433-20083ea12d2e","_order":0}],"_divTemplateModel":{"_code":"BannerBtnGrid","_divTemplateItemType":0,"_itemCount":0,"_pictureModel":{"_name":"e1d13d04-f07f-43c4-8fa2-beaa689e9fa4.png","_pictureType":0,"_order":0,"_dimension":"1104x534","_id":"0098b6ae-51ef-4426-8896-dd5e65f45615","_dateCreate":"2024-10-14T17:33:04.0000000","_dateUpdate":"2024-11-01T15:40:14.7376632"},"_isDynamicCount":true,"_isAdvance":true,"_id":"552ba987-5b5e-423f-8525-3213189cc8b1","_dateCreate":"2024-10-14T17:33:04.0000000","_dateUpdate":"2026-08-08T19:43:13.7892239"},"_autoHideArea":false,"_enableTimer":false,"_dateStart":"2024-10-14T19:42:07.0000000","_dateEnd":"2024-10-14T19:42:07.0000000","_id":"a9a85175-efcf-496e-8e2d-5e9b62148587","_hasLoadListObject":false},{"_loopCount":0,"_order":12,"_classCss":"mt-5 mt-3","_divObjectFilterType":3,"_divSurveyFilterType":0,"_divFilterParameters":"rolex,cartier","_divTemplateModel":{"_code":"AreaSlick","_divTemplateItemType":1,"_itemCount":10,"_pictureModel":{"_name":"b36b2eb9-ab2a-4506-9ea4-855886920e1b.png","_pictureType":0,"_order":0,"_dimension":"1144x396","_id":"dc99a84d-75a0-46a6-bc82-295ebad6390d","_dateCreate":"2023-01-26T11:55:31.0000000","_dateUpdate":"2024-11-14T12:57:15.9775906"},"_isDynamicCount":true,"_isAdvance":true,"_id":"2804b7e9-b773-4e65-98ea-22365e7e2475","_dateCreate":"2023-01-26T11:55:31.0000000","_dateUpdate":"2026-08-16T15:04:01.5367590"},"_autoHideArea":false,"_enableTimer":false,"_dateStart":"2024-10-15T20:18
1652:13.0000000","_dateEnd":"2024-10-15T20:18:13.0000000","_id":"eac3463d-8014-46f5-aad3-4ed97352ad05","_hasLoadListObject":false},{"_loopCount":0,"_order":13,"_classCss":"mt-md-0 mt-sm-n2","_divObjectFilterType":0,"_divSurveyFilterType":0,"_divFilterParameters":"","_listSlideModel":[{"_code":"payiteasily","_title":"ادفعها بسهولة","_description":"","_button":"","_link":"","_listPictureModel":[{"_name":"235ef6b7-7192-4fd7-890a-95b25f49353a.png","_pictureType":0,"_order":0,"_dimension":"1462x373","_id":"80badd1f-2160-41d8-882a-f2432ad98c75","_dateCreate":"2024-10-14T15:23:41.0000000","_dateUpdate":"2024-10-16T16:24:58.2801032"},{"_name":"f54e610c-54b1-4009-88d2-b6f862dae90c.png","_pictureType":0,"_order":1,"_dimension":"1123x373","_id":"39ce61d9-ad41-4ebd-b775-b62001caba0f","_dateCreate":"2024-10-14T15:23:58.0000000","_dateUpdate":"2024-10-16T16:24:58.4078068"},{"_name":"75067623-1f3f-4f5c-a91b-dd2c0f8d17cf.png","_pictureType":0,"_order":2,"_dimension":"1462x373","_id":"08756323-4e1f-46a4-83f6-2ef47f7ccbe8","_dateCreate":"2024-10-14T15:23:51.0000000","_dateUpdate":"2024-10-16T16:24:58.5328129"},{"_name":"4eb8691d-5b75-4a7a-802f-7b09c4ba2d05.png","_pictureType":0,"_order":3,"_dimension":"1123x373","_id":"b368c7ef-0c76-4c44-8abf-f5452337f4d7","_dateCreate":"2024-10-14T20:05:37.0000000","_dateUpdate":"2024-10-16T16:24:58.6569917"}],"_titleHex":"#FFFFFF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#FFFFFF","_titleVisibleMode":3,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":3,"_id":"87d129de-b055-4653-8efb-559e9cdfa404","_order":0}],"_divTemplateModel":{"_code":"OneBanner","_divTemplateItemType":0,"_itemCount":0,"_pictureModel":{"_name":"805670da-9c73-4429-a156-ab61361bec3b.png","_pictureType":0,"_order":0,"_dimension":"1104x565","_id":"1601973c-637e-4231-8594-55a5f2957b6d","_dateCreate":"2023-01-23T15:49:02.0000000","_dateUpdate":"2024-11-18T09:52:37.2568136"},"_isDynamicCount":true,"_isAdvance":false,"_id":"cbd295e4-cb60-40c3-9e48-64581577e91b","_dateCreate":"2023-01-23T15:49:02.0000000","_dateUpdate":"2026-09-03T22:23:30.0420001"},"_autoHideArea":false,"_enableTimer":false,"_dateStart":"2024-10-14T14:20:54.0000000","_dateEnd":"2024-10-14T14:20:54.0000000","_id":"212d134f-9b17-490c-9b9a-e5ec27bac6b0","_hasLoadListObject":false},{"_slideModel":{"_code":"updated","_title":"تم التحديث مؤخرا","_description":"","_button":"","_link":"","_titleHex":"#FFFFFF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#FFFFFF","_titleVisibleMode":0,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":3,"_id":"78741c65-2477-4f78-a7e1-3dbff91a329c","_order":0},"_loopCount":0,"_order":14,"_classCss":"","_divObjectFilterType":3,"_divSurveyFilterType":0,"_divFilterParameters":"weeklyproducts","_divTemplateModel":{"_code":"AreaGrid","_divTemplateItemType":1,"_itemCount":10,"_pictureModel":{"_name":"3acfe2d7-d21e-4bcb-9f52-35ee8b25d8f3.png","_pictureType":0,"_order":0,"_dimension":"1122x706","_id":"29acbc81-1d26-46bc-a229-54703d5064f7","_dateCreate":"2023-01-25T16:06:36.0000000","_dateUpdate":"2024-11-14T12:58:50.4352733"},"_isDynamicCount":true,"_isAdvance":true,"_id":"896a8c1d-9c68-4ead-8041-2e584c6c458b","_dateCreate":"2023-01-25T16:06:36.0000000","_dateUpdate":"2026-01-09T09:48:50.4147316"},"_autoHideArea":false,"_enableTimer":false,"_dateStart":"2024-12-31T19:59:37.0000000","_dateEnd":"2024-12-31T19:59:37.0000000","_id":"30778ec6-4d8a-46b6-9189-3cb485157f91","_hasLoadListObject":false},{"_slideModel":{"_code":"topbrands","_title":"أرقى الماركات","_description":"","_button":"جميع الماركات","_link":"https://brandfull.com/Brand","_titleHex":"#2F2FFFFF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#000000FF","_titleVisibleMode":0,"_descriptionVisibleMode":3,"_buttonVisibleMode":0,"_backGroundVisibleMode":0,"_id":"542991e7-3fae-400c-ba73-cb404c3883b4","_order":0},"_loopCount":0,"_order":16,"_classCss":"div300-700","_divObjectFilterType":0,"_divSurveyFilterType":0,"_divFilterParameters":"","_listSlideModel":[{"_code":"prada","_title":"برادا","_description":"","_button":"","_link":"/Shop/prada","_titleHex":"#FFFFFFFF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#CF633DFF","_titleVisibleMode":0,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":0,"_id":"5909f9ba-a28b-44ed-ae4f-f8349bda9af2","_order":0},{"_code":"louisvuitton","_title":"لويس فيتون","_description":"","_button":"","_link":"/Shop/louisvuitton","_titleHex":"#FFFFFFFF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#CF633DFF","_titleVisibleMode":0,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":0,"_id":"3047d81a-b392-4af5-9015-158a71ed10d4","_order":0},{"_code":"yvessaintlaurent","_title":"ايف سانت لورانت","_description":"","_button":"","_link":"/Shop/yvessaintlaurent","_titleHex":"#FFFFFFFF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#CF633DFF","_titleVisibleMode":0,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":0,"_id":"40cb2dbc-d6e9-4c7b-bdf2-06d915b632ca","_order":0},{"_code":"hermes","_title":"هيرميس","_description":"","_button":"","_link":"/Shop/hermes","_titleHex":"#FFFFFFFF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#CF633DFF","_titleVisibleMode":0,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":0,"_id":"0237c600-c4a6-483e-8b70-3dc95c48883a","_order":0},{"_code":"rolex","_title":"رولكس","_description":"","_button":"","_link":"/Shop/rolex","_titleHex":"#FFFFFFFF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#CF633DFF","_titleVisibleMode":0,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":0,"_id":"6547d18f-4705-479f-949b-25bd7a28304b","_order":0},{"_code":"chanel","_title":"شانيل","_description":"","_button":"","_link":"/Shop/Chanel","_titleHex":"#FFFFFFFF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#CF633DFF","_titleVisibleMode":0,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":0,"_id":"f2f4927d-79c1-43b5-ad0f-d12c41c0c243","_order":0},{"_code":"cartier","_title":"كارتير","_description":"","_button":"","_link":"/Shop/cartier","_titleHex":"#FFFFFFFF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#CF633DFF","_titleVisibleMode":0,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":0,"_id":"ec717e72-a69f-4a7f-ae14-8a552fb97903","_order":0},{"_code":"vancleefarpels","_title":"فان كليف أند آربلز","_description":"","_button":"","_link":"/Shop/vancleefandarpels","_titleHex":"#FFFFFFFF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#CF633DFF","_titleVisibleMode":0,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":0,"_id":"9b4d5c21-7420-405b-b120-8c25d0570477","_order":0},{"_code":"gcucci","_title":"قوتشي","_description":"","_button":"","_link":"/Shop/gucci","_titleHex":"#FFFFFFFF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#CF633DFF","_titleVisibleMode":0,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":0,"_id":"d2ff0645-54d3-423f-b991-8c2206a699cb","_order":0},{"_code":"dior","_title":"ديور","_description":"","_button":"","_link":"/Shop/dior","_titleHex":"#FFFFFFFF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#CF633DFF","_titleVisibleMode":0,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":0,"_id":"b8287bc4-e272-4b1d-9060-fc807c78754d","_order":0}],"_divTemplateModel":{"_code":"BannerBtnGrid","_divTemplateItemType":0,"_itemCount":0,"_pictureModel":{"_name":"e1d13d04-f07f-43c4-8fa2-beaa689e9fa4.png","_pictureType":0,"_order":0,"_dimension":"1104x534","_id":"0098b6ae-51ef-4426-8896-dd5e65f45615","_dateCreate":"2024-10-14T17:33:04.0000000","_dateUpdate":"2024-11-01T15:40:14.7376632"},"_isDynamicCount":true,"_isAdvance":true,"_id":"552ba987-5b5e-423f-8525-3213189cc8b1","_dateCreate":"2024-10-14T17:33:04.0000000","_dateUpdate":"2026-08-08T19:43:13.7892239"},"_autoHideArea":false,"_enableTimer":false,"_dateStart":"2024-10-14T16:34:53.0000000","_dateEnd":"2024-10-14T16:34:53.0000000","_id":"65602c4d-bd0b-4c13-9c33-9b9d0b4c0fd2","_hasLoadListObject":false},{"_loopCount":0,"_order":17,"_classCss":"mt-sm-5","_divObjectFilterType":0,"_divSurveyFilterType":0,"_divFilterParameters":"","_listSlideModel":[{"_code":"topbrands","_title":"أرقى الماركات","_description":"","_button":"جميع الماركات","_link":"https://brandfull.com/Brand","_titleHex":"#2F2FFFFF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#000000FF","_titleVisibleMode":0,"_descriptionVisibleMode":3,"_buttonVisibleMode":0,"_backGroundVisibleMode":0,"_id":"542991e7-3fae-400c-ba73-cb404c3883b4","_order":0}],"_divTemplateModel":{"_code":"BannerBtn","_divTemplateItemType":0,"_itemCount":-1,"_pictureModel":{"_name":"ef811a3b-8e76-4a08-8b72-98
16520a1b1fb813.png","_pictureType":0,"_order":0,"_dimension":"1104x195","_id":"0055178c-bba2-419a-80c4-da4f55ee0927","_dateCreate":"2024-10-15T20:58:32.0000000","_dateUpdate":"2024-11-01T15:37:45.4645365"},"_isDynamicCount":true,"_isAdvance":false,"_id":"4b9263d5-8270-426b-ba54-4acec3d9aca2","_dateCreate":"2024-10-15T20:58:32.0000000","_dateUpdate":"2026-01-09T09:48:50.4299066"},"_autoHideArea":false,"_enableTimer":false,"_dateStart":"2024-10-15T20:01:36.0000000","_dateEnd":"2024-10-15T20:01:36.0000000","_id":"9f78e2d7-bbfa-4051-b87b-ab5c1c2e346a","_hasLoadListObject":false},{"_loopCount":0,"_order":18,"_classCss":"","_divObjectFilterType":0,"_divSurveyFilterType":0,"_divFilterParameters":"","_listSlideModel":[{"_code":"tabbyinstallement","_title":"تقسيط تابي","_description":"","_button":"","_link":"/Shop/tabby","_listPictureModel":[{"_name":"487780eb-51d2-4ae9-80bd-cff8eac53c4b.png","_pictureType":0,"_order":0,"_dimension":"1462x376","_id":"4fbf0680-0eb3-40fe-9990-1c88416cd6be","_dateCreate":"2024-10-15T21:15:59.0000000","_dateUpdate":"2025-08-14T12:13:30.6684048"},{"_name":"278f54f7-3a31-4f4a-b29d-872a05b24c0a.png","_pictureType":0,"_order":1,"_dimension":"1124x334","_id":"66c76162-6294-4f50-bfec-9a8c73e3d7bf","_dateCreate":"2024-10-15T21:16:08.0000000","_dateUpdate":"2025-08-14T12:13:30.7959831"},{"_name":"7f2f683c-105e-4a9d-91ec-6d98b7f68605.png","_pictureType":0,"_order":2,"_dimension":"1462x376","_id":"c629f95e-f1aa-4797-ada5-79f607f6d391","_dateCreate":"2024-10-15T21:15:49.0000000","_dateUpdate":"2025-08-14T12:13:30.9224596"},{"_name":"d7900c21-9eb5-4990-b24f-de67087f2549.png","_pictureType":0,"_order":3,"_dimension":"1124x334","_id":"9e0202f4-8715-4a99-857f-f4b2a15cd32e","_dateCreate":"2024-10-15T21:16:12.0000000","_dateUpdate":"2025-08-14T12:13:31.0486955"}],"_titleHex":"#FFFFFF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#FFFFFF","_titleVisibleMode":3,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":3,"_id":"6a869e40-f74d-4f57-b1dc-5327421d5d9b","_order":0}],"_divTemplateModel":{"_code":"OneBanner","_divTemplateItemType":0,"_itemCount":0,"_pictureModel":{"_name":"805670da-9c73-4429-a156-ab61361bec3b.png","_pictureType":0,"_order":0,"_dimension":"1104x565","_id":"1601973c-637e-4231-8594-55a5f2957b6d","_dateCreate":"2023-01-23T15:49:02.0000000","_dateUpdate":"2024-11-18T09:52:37.2568136"},"_isDynamicCount":true,"_isAdvance":false,"_id":"cbd295e4-cb60-40c3-9e48-64581577e91b","_dateCreate":"2023-01-23T15:49:02.0000000","_dateUpdate":"2026-09-03T22:23:30.0420001"},"_autoHideArea":false,"_enableTimer":false,"_dateStart":"2024-10-15T20:16:34.0000000","_dateEnd":"2024-10-15T20:16:34.0000000","_id":"4f4f3871-1857-462c-a27d-fc8127feb823","_hasLoadListObject":false},{"_loopCount":0,"_order":19,"_classCss":"","_divObjectFilterType":1,"_divSurveyFilterType":0,"_divFilterParameters":"","_divTemplateModel":{"_code":"Pooper","_divTemplateItemType":1,"_itemCount":0,"_pictureModel":{"_name":"272d9244-1199-4f7f-b3fc-fa1be705b73f.png","_pictureType":0,"_order":0,"_dimension":"592x735","_id":"da931459-cc32-4772-b4dd-7f4fb83cf3be","_dateCreate":"2024-10-29T17:32:04.0000000","_dateUpdate":"2024-11-01T15:31:11.5179955"},"_isDynamicCount":true,"_isAdvance":false,"_id":"6b9aab0d-bf03-4994-9b69-9857c86b1f4e","_dateCreate":"2024-10-29T17:32:04.0000000","_dateUpdate":"2026-08-10T15:39:49.7435742"},"_autoHideArea":true,"_enableTimer":false,"_dateStart":"2024-10-30T19:55:45.0000000","_dateEnd":"2024-10-30T19:55:45.0000000","_id":"3b9b8661-2e05-4e72-bc94-de44f563255f","_hasLoadListObject":false},{"_slideModel":{"_title":"آراء العملاء","_description":"","_button":"عرض الكل","_link":"/Survey","_titleVisibleMode":0,"_descriptionVisibleMode":0,"_buttonVisibleMode":0,"_backGroundVisibleMode":0,"_id":"191fc1cc-6412-ac29-9479-b5a5d3daa598","_order":0},"_loopCount":0,"_order":20,"_classCss":"mt-4","_divObjectFilterType":0,"_divSurveyFilterType":2,"_divFilterParameters":"","_divTemplateModel":{"_code":"AreaReview","_divTemplateItemType":4,"_itemCount":0,"_pictureModel":{"_name":"93d6768a-96e5-4c37-9829-6bb6f20b94b2.png","_pictureType":0,"_order":0,"_dimension":"1116x380","_id":"2462988b-1e2d-408d-a727-56acd938be4f","_dateCreate":"2023-09-22T16:28:57.0000000","_dateUpdate":"2024-11-13T07:41:14.8260552"},"_isDynamicCount":true,"_isAdvance":true,"_id":"4fc52386-7cb3-4a54-9d85-959cffede734","_dateCreate":"2023-09-22T16:28:57.0000000","_dateUpdate":"2026-09-03T22:24:40.1577190"},"_autoHideArea":false,"_enableTimer":false,"_dateStart":"2024-11-08T15:24:17.0000000","_dateEnd":"2024-11-08T15:24:17.0000000","_id":"c3c5420b-19e0-47b2-b02d-21c3b87ff13c","_hasLoadListObject":false},{"_slideModel":{"_code":"featuresofbrandfull","_title":"مميزات براندفل","_description":"","_button":"","_link":"","_titleHex":"#000000FF","_descriptionHex":"#FFFFFF","_buttonHex":"#FFFFFF","_backGroundHex":"#FFFFFF","_titleVisibleMode":0,"_descriptionVisibleMode":3,"_buttonVisibleMode":3,"_backGroundVisibleMode":3,"_id":"d25f013b-7db6-44fa-b4b4-c623911b7418","_order":0},"_loopCount":0,"_order":21,"_classCss":"","_divObjectFilterType":0,"_divSurveyFilterType":0,"_divFilterParameters":"","_listSlideModel":[{"_code":"affordableluxury","_title":"فخامة بأسعار معقولة","_description":"قطع فاخرة رائعة بخصومات لا تقاوم ومع خيارات الشراء بالتقسيط","_button":"","_link":"","_listPictureModel":[{"_name":"e38ed7bf-53fa-495b-ac0a-76c2b6a792e9.png","_pictureType":0,"_order":0,"_dimension":"63x63","_id":"c9c1459b-aa9c-4fb3-88eb-272dc13c4246","_dateCreate":"2024-10-15T21:29:50.0000000","_dateUpdate":"2024-10-16T15:23:38.4066119"},{"_name":"762713bc-d7d5-4ffe-92b7-8eb1904d4e98.png","_pictureType":0,"_order":1,"_dimension":"63x63","_id":"af44272e-3b26-4695-9262-bad4960611c3","_dateCreate":"2024-10-15T21:29:55.0000000","_dateUpdate":"2024-10-16T15:23:38.5320564"},{"_name":"d987661b-466f-4ef2-b8ff-b92808d24c80.png","_pictureType":0,"_order":2,"_dimension":"63x63","_id":"63465697-d65b-43c0-ac69-5367404a84cb","_dateCreate":"2024-10-15T21:29:59.0000000","_dateUpdate":"2024-10-16T15:23:38.6545534"},{"_name":"6a6d6a9e-665b-4ca7-a4a5-bf41ef4711d0.png","_pictureType":0,"_order":3,"_dimension":"63x63","_id":"d9ecf73b-0b27-4e9b-9818-b0a2603dd920","_dateCreate":"2024-10-15T21:30:03.0000000","_dateUpdate":"2024-10-16T15:23:38.7812516"}],"_titleHex":"#000000FF","_descriptionHex":"#000000FF","_buttonHex":"#FFFFFF","_backGroundHex":"#FFFFFF","_titleVisibleMode":0,"_descriptionVisibleMode":0,"_buttonVisibleMode":3,"_backGroundVisibleMode":3,"_id":"ef644092-935f-40c2-b618-ededa1b0140a","_order":0},{"_code":"trustedplatform","_title":"منصة موثوقة","_description":"منصة آمنة وموثوقة تقدم أكثر من 25,000 ضمان أصالة مدى الحياة","_button":"","_link":"","_listPictureModel":[{"_name":"8cc9e11c-b365-461e-b9ee-fd775da172dd.png","_pictureType":0,"_order":0,"_dimension":"63x63","_id":"54ade938-3694-4632-850b-0d86948dfed6","_dateCreate":"2024-10-15T21:30:52.0000000","_dateUpdate":"2024-10-16T15:43:23.2821114"},{"_name":"121debe5-7f20-44e6-8351-11383b42a83e.png","_pictureType":0,"_order":1,"_dimension":"63x63","_id":"715da598-a3e8-429d-bd39-7329f329d053","_dateCreate":"2024-10-15T21:30:57.0000000","_dateUpdate":"2024-10-16T15:43:23.4063767"}
1652,{"_name":"7ce9020c-b06e-4659-b67b-58df7f30391e.png","_pictureType":0,"_order":2,"_dimension":"63x63","_id":"0aa736cc-5bab-41bb-846a-c3ed36e2075f","_dateCreate":"2024-10-15T21:31:01.0000000","_dateUpdate":"2024-10-16T15:43:23.5330100"},{"_name":"1e755fcf-47ac-4f68-b3ae-1d3e135b3d62.png","_pictureType":0,"_order":3,"_dimension":"63x63","_id":"4d718d02-7a05-428c-b969-ef61c64062ba","_dateCreate":"2024-10-15T21:31:05.0000000","_dateUpdate":"2024-10-16T15:43:23.6584008"}],"_titleHex":"#000000FF","_descriptionHex":"#000000FF","_buttonHex":"#FFFFFF","_backGroundHex":"#FFFFFF","_titleVisibleMode":0,"_descriptionVisibleMode":0,"_buttonVisibleMode":3,"_backGroundVisibleMode":3,"_id":"9559cec9-0296-4164-bb02-a5442e26fe4a","_order":0},{"_code":"uniqueandluxuriouspieces","_title":"قطع فاخرة وفريدة من نوعها","_description":"اكتشف قطعًا فاخرة وحصرية تتميز بسحرها الفريد","_button":"","_link":"","_listPictureModel":[{"_name":"d914e70a-d467-4304-bccc-1c33fd35c6be.png","_pictureType":0,"_order":0,"_dimension":"63x63","_id":"ca6322e4-0a6b-4335-be6a-15a8e5663eba","_dateCreate":"2024-10-15T21:31:50.0000000","_dateUpdate":"2024-10-16T15:42:35.4079375"},{"_name":"0f822e88-8164-4aa7-b0d3-19764b85d478.png","_pictureType":0,"_order":1,"_dimension":"63x63","_id":"8a6bed87-3c9c-49dc-80d1-6c44fe1ea583","_dateCreate":"2024-10-15T21:31:53.0000000","_dateUpdate":"2024-10-16T15:42:35.5336748"},{"_name":"3098a33b-691c-4ee3-9b2e-2695d45faaef.png","_pictureType":0,"_order":2,"_dimension":"63x63","_id":"0a908aec-1395-4fb1-93db-4fc0796aa717","_dateCreate":"2024-10-15T21:31:57.0000000","_dateUpdate":"2024-10-16T15:42:35.6570312"},{"_name":"b84b42a5-8d44-4bd5-8977-7bc7ec75941f.png","_pictureType":0,"_order":3,"_dimension":"63x63","_id":"553860fc-3500-4005-8b70-94a66530e9ee","_dateCreate":"2024-10-15T21:32:01.0000000","_dateUpdate":"2024-10-16T15:42:35.7808420"}],"_titleHex":"#000000FF","_descriptionHex":"#000000FF","_buttonHex":"#FFFFFF","_backGroundHex":"#FFFFFF","_titleVisibleMode":0,"_descriptionVisibleMode":0,"_buttonVisibleMode":3,"_backGroundVisibleMode":3,"_id":"1211b40f-3015-4a0b-96ec-87acb57f1b92","_order":0},{"_code":"worldwidedeliveryreturns","_title":"التسليم والإرجاع الى جميع مدن المملكه","_description":"ما تراه هو ما تحصل عليه ، وإلا فإن المال يسترد","_button":"","_link":"","_listPictureModel":[{"_name":"b4a9d08a-3911-4455-b17d-6835f318ace5.png","_pictureType":0,"_order":0,"_dimension":"63x63","_id":"4135d239-e669-47f9-b1a3-06a9cb8e80a8","_dateCreate":"2024-10-15T21:32:55.0000000","_dateUpdate":"2024-10-16T15:28:53.7803503"},{"_name":"a6a52993-7695-4604-b1bc-303400c91ace.png","_pictureType":0,"_order":1,"_dimension":"63x63","_id":"024526c9-62d3-42ed-ae4d-88c1ab41984b","_dateCreate":"2024-10-15T21:32:58.0000000","_dateUpdate":"2024-10-16T15:28:53.9026141"},{"_name":"a917aab6-2cfb-4227-b76a-6d42cc245bb7.png","_pictureType":0,"_order":2,"_dimension":"63x63","_id":"39f5b30d-25b9-40c6-a3b9-dedefb694577","_dateCreate":"2024-10-15T21:33:01.0000000","_dateUpdate":"2024-10-16T15:28:54.0280947"},{"_name":"badc7862-816e-4daf-a5f7-35e661a4a63d.png","_pictureType":0,"_order":3,"_dimension":"63x63","_id":"89d1a227-f938-4f06-9c64-89f99485dc95","_dateCreate":"2024-10-15T21:33:05.0000000","_dateUpdate":"2024-10-16T15:28:54.1502076"}],"_titleHex":"#000000FF","_descriptionHex":"#000000FF","_buttonHex":"#FFFFFF","_backGroundHex":"#FFFFFF","_titleVisibleMode":0,"_descriptionVisibleMode":0,"_buttonVisibleMode":3,"_backGroundVisibleMode":3,"_id":"8a882c1e-b91a-48dd-8576-b8ca5abe8db5","_order":0}],"_divTemplateModel":{"_code":"BannerMulti","_divTemplateItemType":0,"_itemCount":4,"_pictureModel":{"_name":"08af54f7-a29a-4590-ad90-3e923723598b.png","_pictureType":0,"_order":0,"_dimension":"1116x380","_id":"b0d7cfa5-6e04-460c-9e48-6ced974b6d2e","_dateCreate":"2023-09-28T11:24:20.0000000","_dateUpdate":"2024-11-12T09:17:30.6236050"},"_isDynamicCount":false,"_isAdvance":true,"_id":"1721cf43-91fa-4c67-8aec-7e140351e306","_dateCreate":"2023-09-28T11:24:20.0000000","_dateUpdate":"2026-08-08T19:42:50.3471692"},"_autoHideArea":false,"_enableTimer":false,"_dateStart":"2024-10-15T20:34:25.0000000","_dateEnd":"2024-10-15T20:34:25.0000000","_id":"912e74da-c730-40ab-a5bf-b2515f84ba97","_hasLoadListObject":false}],"_id":"ceac2449-7870-413e-8421-5e0616f8c483","_title":"براندفل-  منصة لبيع وشراء المتعلقات الشخصية الفاخرة","_extract":"منصة لشراء وإعادة بيع العلامات التجارية الفاخرة. نحن نمكن عملائنا من البيع مباشرة من خزائنهم والاستفادة من القيمة المالية للعناصر المخزنة.","_metaDescription":"منصة لشراء وإعادة بيع العلامات التجارية الفاخرة. نحن نمكن عملائنا من البيع مباشرة من خزائنهم والاستفادة من القيمة المالية للعناصر المخزنة.","_metaKeyWord":"براندفل , ماركات, الفاخرة, ملابس المصممين المستعملة, أزياء, ساعات, حقائب يد, أحذية, مجوهرات, عتيق, نساء, رجال, مستعملة, إعادة بيع, عبر الإنترنت","_dateCreate":"2024-10-14T12:47:57.0000000","_dateUpdate":"2026-09-21T19:22:28.6009432","_link":"brandfull-a-platform-for-buying-and-selling-luxury-pers
1652onal-belongings"}}}, '');
1653
1654        if (!ko.dataFor(document.getElementById('UI_LayoutBody')))
1655            ko.applyBindings(m_handlerPageHome, document.getElementById('UI_LayoutBody'));
1656
1657        doFinishPaintEarly();
1658    });
1659</script>
1659
1660
1661<div class="ko-pending">
1662    
1663<!-- ko if: doCheckUUID(m_handlerLayout.m_currentPage._id()) -->
1664<!-- ko run: doInjectStyleCss(m_handlerLayout.m_currentPage._styleCss()) --><!-- /ko -->
1665<!-- ko foreach: m_handlerLayout.m_currentPage._listDivModel(), childrenComplete: doApplyDivSlots -->
1666<div class="sectionShow" data-bind="class: $data._classCss(),
1667                attr:{'data-div': $data._id(), 'data-div-slot': doGetDivSlotName($data), 'data-div-epoch': m_divEpoch,
1668                      'data-div-wait': doCheckDivWaitsForData($data) ? '1' : null},
1669                style:{'display': doCheckDivPageAllowed($data) ? '' : 'none'}">
1670    <!-- ko if: doCheckDivRender($data) -->
1671    <!-- ko template: { name: doGetDivTemplateName($data), data: $data} --><!-- /ko -->
1672    <!-- /ko -->
1673</div>
1674<!-- /ko -->
1675<!-- /ko -->
1676
1677</div>
1678
1679
1680            </div>
1681        </div>
1682    </div>
1683    <!-- START FOOTER -->
1684    
1685<style>
1686    .codeInput {
1687        width: 32px;
1688        height: 32px;
1689        text-align: center;
1690        border: none;
1691        border-bottom: 1.5px solid #d2d2d2;
1692        margin: 0 10px;
1693    }
1694
1695    .codeInput:focus {
1696        border-bottom: 1.5px solid deepskyblue;
1697        outline: none;
1698    }
1699
1700    /* Shared content modal (#UI_slideModal): the body is Portal-authored HTML, so give the tags an
1701       admin actually types a sane default rather than leaving them at browser sizes. */
1702    .slideModal-body {
1703        font-size: .9rem;
1704        line-height: 1.7;
1705        color: #374151;
1706    }
1707
1708        .slideModal-body ul,
1709        .slideModal-body ol {
1710            padding-inline-start: 18px;
1711            margin-bottom: 0;
1712        }
1713
1714        .slideModal-body p:last-child {
1715            margin-bottom: 0;
1716        }
1717</style>
1718
1719
1720
1721<!-- Sign in / sign up / forgot Password modal-->
1722<div id="UI_sessionModal" class="modal fade noPadding" tabindex="-1" role="dialog">
1723    <div class="modal-dialog modal-dialog-centered" role="document">
1724        <div class="modal-content">
1725            <div class="modal-header bg-secondary">
1726                <ul class="nav nav-tabs card-header-tabs" role="tablist">
1727                    <li class="nav-item"><a id="UI_signinTab" data-bind="click : doResetUserError" class="nav-link fw-medium active" href="#signin-tab" data-bs-toggle="tab" role="tab" aria-selected="true"><i class="ci-unlocked me-2-Auto mt-n1"></i>تسجيل الدخول</a></li>
1728                    <li class="nav-item"><a id="UI_signupTab" data-bind="click : doResetUserError" class="nav-link fw-medium" href="#signup-tab" data-bs-toggle="tab" role="tab" aria-selected="false"><i class="ci-user me-2-Auto mt-n1"></i>التسجيل</a></li>
1729                </ul>
1730                <button class="btn-close adjustBtnClose" style="" type="button" data-bs-dismiss="modal" aria-label="Close" onclick="doRedirection()"></button>
1731            </div>
1732            <div class="modal-body tab-content py-4">
1733                <div id="UI_socialAccount" class="py-2">
1734                    <h3 class="d-inline-block align-middle fs-base fw-medium mb-2">مع حساب اجتماعي</h3>
1735                    <div class="row">
1736                            <div id="UI_buttonGoogle" class="col-md-6 my-1" style="height: 40px;"></div>
1737                            <div id="appleid-signin" class="col-md-6 my-1" style="height: 40px;" data-color="black" data-border="true" data-type="sign in"></div>
1738                    </div>
1739                </div>
1740                <form class="needs-validation tab-pane fade show active" autocomplete="off" novalidate id="signin-tab">
1741                    <div class="mb-3">
1742                        <label class="form-label" for="UI_emailModal">البريد الإلكتروني والهاتف</label>
1743                        <input autocomplete="username" id="UI_emailModal" data-bind="value : m_currentStructUser._email, css:{'is-invalid': !doCheckEmptyData(m_errorStructUser._email()) || !doCheckEmptyData(m_errorStructUser._phone())}" class="form-control" type="email" placeholder="[email protected]" required>
1744                        <div data-bind="text: m_errorStructUser._email" class="invalid-feedback"></div>
1745                        <div data-bind="text: m_errorStructUser._phone" class="invalid-feedback"></div>
1746                    </div>
1747                    <div class="mb-3">
1748                        <label class="form-label" for="UI_passwordModal">كلمة المرور الخاصة بك</label>
1749                        <div class="password-toggle">
1750                            <input data-bind="value : m_currentStructUser._password, css:{'is-invalid':!doCheckEmptyData(m_errorStructUser._password())}" class="form-control" type="password" id="UI_passwordModal" required autocomplete="current-password">
1751                            <label class="password-toggle-btn" aria-label="Show/hide password">
1752                                <input class="password-toggle-check" type="checkbox"><span class="password-toggle-indicator"></span>
1753                            </label>
1754                        </div>
1755                        <div data-bind="style:{display:!doCheckEmptyData(m_errorStructUser._password())?'block':'none'} , text: m_errorStructUser._password" class="invalid-feedback"></div>
1756                    </div>
1757                    <div class="mb-3 d-flex flex-wrap justify-content-between">
1758                        <div class="mb-2" data-bind="class:'ar' == 'en'? 'form-check':'form-check-reverse'">
1759                        </div>
1760                        <a class="fs-sm" href="#" onclick="doShowModal('UI_forgotModal');" data-bs-dismiss="modal" aria-label="Close">هل نسيت كلمة المرور؟</a>
1761                    </div>
1762                    <button data-bind="click : doSignUser" class="btn btn-primary btn-shadow d-block w-100" type="button">تسجيل الدخول</button>
1763                </form>
1764                
1765                <form class="needs-validation tab-pane fade" autocomplete="off" novalidate id="signup-tab" novalidate>
1766                    <p class="list-unstyled fs-md">
1767                        أضف بريدك الإلكتروني أو هاتفك أدناه ، وسيتم إرسال رسالة للتحقق.
1768                    </p>
1769                    <div class="mt-4 bg-white">
1770                        <div class="mb-3">
1771                            <div class="d-flex justify-content-between">
1772                                <div class="col-8">
1773                                    <input autocomplete="tel" id="UI_quickPhoneInput" data-bind="value : m_currentStructUser._phone,valueUpdate: ['afterkeydown', 'input'], css:{'is-invalid': !doCheckEmptyData(m_errorStructUser._phone())}" class="form-control " type="tel" lang=ar dir=rtl placeholder="رقم الهاتف" required>
1774
1775                                    <!-- ko if:  !doCheckEmptyData(m_errorStructUser._phone()) -->
1776                                    <div data-bind="text: m_errorStructUser._phone" class="invalid-feedback"></div>
1777                                    <!-- /ko -->
1778                                </div>
1779                                <div class="col-3">
1780                                    <select class="form-select" id="UI_quickCountry" data-bind="css:{'is-invalid':!doCheckEmptyData(m_errorUser.m_errorCountryModel())}, options: m_listCountry, value: m_currentUser._countryModel._id,optionsText: '_code', optionsValue: '_id'">
1781                                    </select>
1782                                </div>
1783                            </div>
1784                            <div class="d-flex text-center my-4 align-items-center">
1785                                <hr class="w-25 mx-auto">
1786                                <span class="h6">أو</span>
1787                                <hr class="w-25 mx-auto">
1788                            </div>
1789                            <input autocomplete="email" data-bind="value : m_currentStructUser._email, css:{'is-invalid': !doCheckEmptyData(m_errorStructUser._email())}" class="form-control" type="email" placeholder="[email protected]" required>
1790                            <!-- ko if:  !doCheckEmptyData(m_errorStructUser._email()) -->
1791                            <div id="UI_errorEmailModal" data-bind="text: m_errorStructUser._email" class="invalid-feedback"></div>
1792                            <!-- /ko -->
1793                        </div>
1794                        <div class=" mb-3" data-bind="class:'ar' == 'en'? 'form-check':'form-check-reverse'">
1795                            <input class="form-check-input" type="checkbox" id="UI_agreePage" value="" data-bind="attr:{checked: m_isAgree()}, value: m_isAgree(),click: $root.doSetAgree.bind($root)">
1796                            <label class="form-check-label" for="UI_agreePage">
1797                                <span>أوافق على الشروط والسياسة</span>
1798                            </label>
1799
1800                            <a href="/About/TermsandCondition" target="_blank" enable-href="true" class="readMore">اقرأ</a>
1801                        </div>
1802                        <!-- ko if:  m_isAgree() -->
1803                        <button data-bind="click : $root.doForgetPassword.bind($root, true)" class="btn btn-primary w-100" type="button">ارسل الرمز</button>
1804                        <!-- /ko -->
1805
1806                    </div>
1807                </form>
1808
1809
1810                
1811            </div>
1812        </div>
1813    </div>
1814</div>
1815
1816
1817<div id="UI_forgotModal" class="modal fade" tabindex="-1" role="dialog">
1818    <div class="modal-dialog modal-dialog-centered" role="document">
1819        <div class="modal-content">
1820            <div class="modal-header bg-secondary">
1821                <ul class="nav nav-tabs card-header-tabs" role="tablist">
1822                    <li class="nav-item"><a id="UI_signinTab" data-bind="click : doResetUserError" class="nav-link fw-medium active" data-bs-toggle="tab" role="tab" aria-selected="true"><i class="ci-help me-2-Auto mt-n1"></i>نسيت كلمة المرور</a></li>
1823                </ul>
1824                <button class="btn-close" type="button" data-bs-dismiss="modal" aria-label="Close" onclick="doRedirection()"></button>
1825            </div>
1826            <div class="modal-body tab-content py-4">
1827                <form class="needs-validation tab-pane fade show active" autocomplete="off" novalidate>
1828                    <p class="fs-md">قم بتغيير كلمة المرور الخاصة بك في ثلاث خطوات سهلة. يساعد هذا في الحفاظ على أمان كلمة المرور الجديدة.</p>
1829                    <ol class="list-unstyled fs-md">
1830                        <li><span class="text-primary me-2-Auto">1.</span>املأ عنوان بريدك الإلكتروني أدناه.</li>
1831                        <li><span class="text-primary me-2-Auto">2.</span>سنرسل إليك رمزا مؤقتا عبر البريد الإلكتروني.</li>
1832                        <li><span class="text-primary me-2-Auto">3.</span>استخدم الرمز لتغيير كلمة المرور الخاصة بك على موقعنا الآمن.</li>
1833                    </ol>
1834                    <div class="py-2 mt-4">
1835                        <div class="mb-3">
1836                            <input autocomplete="email" id="UI_popuEmailInput" data-bind="value : m_currentStructUser._email, css:{'is-invalid': !doCheckEmptyData(m_errorStructUser._email()) || !doCheckEmptyData(m_errorStructUser._phone())}" class="form-control" type="email" placeholder="[email protected]" required>
1837                            <!-- ko if:  !doCheckEmptyData(m_errorStructUser._email()) -->
1838                            <div data-bind="text: m_errorStructUser._email" class="invalid-feedback"></div>
1839                            <!-- /ko -->
1840                            <div class="d-flex text-center my-4 align-items-center">
1841                                <hr class="w-25 mx-auto">
1842                                <span class="h6">أو</span>
1843                                <hr class="w-25 mx-auto">
1844                            </div>
1845                            <div class="d-flex justify-content-between">
1846                                <div class="col-8">
1847                                    <input autocomplete="tel" id="UI_popuPhoneInput" data-bind="value : m_currentStructUser._phone, css:{'is-invalid': !doCheckEmptyData(m_errorStructUser._phone()) || !doCheckEmptyData(m_errorStructUser._phone())}" class="form-control " type="number" placeholder="رقم الهاتف" required>
1848
1849                                </div>
1850                                <div class="col-3">
1851                                    <select class="form-select" id="UI_popupCountry" data-bind="css:{'is-invalid':!doCheckEmptyData(m_errorUser.m_errorCountryModel())}, options: m_listCountry, value: m_currentUser._countryModel._id,optionsText: '_code', optionsValue: '_id'">
1852                                    </select>
1853                                </div>
1854                            </div>
1855                            <!-- ko if:  !doCheckEmptyData(m_errorStructUser._phone()) -->
1856                            <div data-bind="text: m_errorStructUser._phone" class="invalid-feedback"></div>
1857                            <!-- /ko -->
1858                        </div>
1859                        <button data-bind="click : $root.doForgetPassword.bind($root, false)" class="btn btn-primary w-100" type="button" data-bs-dismiss="modal" aria-label="Close">ارسل الرمز</button>
1860                    </div>
1861                </form>
1862            </div>
1863        </div>
1864    </div>
1865</div>
1866
1867
1868<div id="UI_validationModal" class="modal fade" tabindex="-1" role="dialog">
1869    <div class="modal-dialog modal-dialog-centered" role="document">
1870        <div class="modal-content">
1871            <div class="modal-header bg-secondary">
1872                <ul class="nav nav-tabs card-header-tabs" role="tablist">
1873                    <li class="nav-item"><a id="UI_validationTab" data-bind="click : doResetUserError" class="nav-link fw-medium active" data-bs-toggle="tab" role="tab" aria-selected="true"><i class="ci-key me-2-Auto mt-n1"></i>كلمة مرور التحقق من الصحة</a></li>
1874                </ul>
1875                <button class="btn-close" type="button" data-bs-dismiss="modal" aria-label="Close" onclick="doRedirection()"></button>
1876            </div>
1877            <div class="modal-body tab-content py-4">
1878                <form class="needs-validation tab-pane fade show active" autocomplete="off" novalidate>
1879                    <!-- ko if:  !doCheckEmptyData(m_currentStructUser._email()) -->
1880                    <p class="fs-md" data-bind="text: 'يرجى التحقق من بريدك الإلكتروني' + ':  (' + m_currentStructUser._email() + ')' "></p>
1881                    <!-- /ko -->
1882                    <!-- ko if:  !doCheckEmptyData(m_currentStructUser._phone()) -->
1883                    <p class="fs-md" data-bind="text: 'يرجى التحقق من رقم هاتفك' + ':  (' + m_currentStructUser._phone() + ')' "></p>
1884                    <!-- /ko -->
1885                    <div class="mb-3">
1886                        <label class="form-label">أدخل الرمز الخاص بك</label>
1887                        <div class="form-control d-flex align-items-center  justify-content-center" dir="ltr" id='UI_sessionCodeInputs' data-bind=" css:{'is-invalid': !m_isVerifyed()}">
1888                            <input class="codeInput" id="UI_sessionCode1" type="text" inputmode="numeric" maxlength="1" autocomplete="one-time-code" />
1889                            <input class="codeInput" id="UI_sessionCode2" type="text" inputmode="numeric" maxlength="1" />
1890                            <input class="codeInput" id="UI_sessionCode3" type="text" inputmode="numeric" maxlength="1" />
1891                            <input class="codeInput" id="UI_sessionCode4" type="text" inputmode="numeric" maxlength="1" />
1892                        </div>
1893                        <!-- ko if:  !doCheckEmptyData(m_errorStructUser._code()) -->
1894                        <div id="UI_errorCodeModal" data-bind="text: m_errorStructUser._code" class="invalid-feedback"></div>
1895                        <!-- /ko -->
1896                        <!-- ko if:  !doCheckEmptyData(m_errorStructUser._phone) -->
1897                        <div id="UI_errorPhoneModal" data-bind="text: m_errorStructUser._phone" class="invalid-feedback"></div>
1898                        <!-- /ko -->
1899                    </div>
1900                    <div class="text-center py-2 px-3" style=" display: flow-root;">
1901                        <button class="btn btn-sm btn-primary col-md-6" data-bind="click : $root.doSendCode.bind($root)" type="button">إرسال</button>
1902                    </div>
1903                </form>
1904            </div>
1905        </div>
1906    </div>
1907</div>
1908
1909
1910<div id="UI_resetPasswordModal" class="modal fade" tabindex="-1" role="dialog">
1911    <div class="modal-dialog modal-dialog-centered" role="document">
1912        <div class="modal-content">
1913            <div class="modal-header bg-secondary">
1914                <ul class="nav nav-tabs card-header-tabs" role="tablist">
1915                    <li class="nav-item"><a id="UI_resetPasswordTab" data-bind="click : doResetUserError" class="nav-link fw-medium active" data-bs-toggle="tab" role="tab" aria-selected="true"><i class="ci-key me-2-Auto mt-n1"></i>إعادة تعيين كلمة المرور</a></li>
1916                </ul>
1917                <button class="btn-close" type="button" data-bs-dismiss="modal" aria-label="Close" onclick="doRedirection()"></button>
1918            </div>
1919            <div class="modal-body tab-content py-4">
1920                <form class="needs-validation tab-pane fade show active" autocomplete="off" novalidate>
1921                    <p>يمكنك تغيير كلمة المرور الخاصة بك لأسباب أمنية أو إعادة تعيينها إذا نسيتها.</p>
1922                    <!-- ko if: !doCheckEmptyData(m_errorStructUser._token()) -->
1923                    <div id="UI_errorToken" data-bind="text: m_errorStructUser._token" class="invalid-feedback"></div>
1924                    <!-- /ko -->
1925                    <!-- ko if: m_isSuccess()-->
1926                    <p>تم تحديث كلمة المرور الخاصة بك</p>
1927                    <!-- /ko -->
1928                    <!-- ko if : !m_isSuccess() -->
1929                    <input class="d-none" type="text" autocomplete="username" tabindex="-1" aria-hidden="true" data-bind="value: m_currentStructUser._email">
1930                    <div class="mb-3">
1931                        <label class="form-label" for="UI_resetPasswordH
1931ashModal">كلمة المرور الخاصة بك</label>
1932                        <input class="form-control" type="password" data-bind="value : m_currentStructUser._password, css:{'is-invalid':!doCheckEmptyData(m_errorStructUser._password())}" id="UI_resetPasswordHashModal" required autocomplete="new-password">
1933                        <div id="UI_errorPasswordModal" data-bind="text: m_errorStructUser._password" class="invalid-feedback"></div>
1934                    </div>
1935                    <div class="mb-3">
1936                        <label class="form-label" for="UI_resetConfirmPasswordModal">تأكيد كلمة المرور</label>
1937                        <input data-bind="value : m_currentStructUser._confirmation,  css:{'is-invalid':!doCheckEmptyData(m_errorStructUser._confirmation())}" id="UI_resetConfirmPasswordModal" class="form-control" type="password" required autocomplete="new-password">
1938                        <div id="UI_errorConfirmPasswordModal" data-bind="text: m_errorStructUser._confirmation" class="invalid-feedback"></div>
1939                    </div>
1940                    <!-- /ko -->
1941                    <button data-bind="click: $root.doUpdatePassword.bind($root)" class="btn btn-primary btn-shadow d-block w-100" type="button">حفظ</button>
1942                </form>
1943            </div>
1944        </div>
1945    </div>
1946</div>
1947
1948
1949<div id="UI_successRegisterModalPopUp" class="modal fade" tabindex="-1">
1950    <div class="modal-dialog modal-dialog-centered" role="document">
1951        <div class="modal-content border-0 rounded-4 overflow-hidden shadow-lg">
1952            <div class="modal-header border-0 pb-0 px-4 pt-4">
1953                <h5 class="modal-title fw-bold text-primary mb-0">تسجيل!</h5>
1954                <button class="btn-close" type="button" data-bs-dismiss="modal" aria-label="Close"></button>
1955            </div>
1956            <div class="modal-body text-center px-4 pt-3 pb-4">
1957                <div class="mx-auto mb-3 d-inline-flex align-items-center justify-content-center rounded-circle"
1958                     style="width:96px; height:96px; background: rgba(var(--cz-primary-rgb), .08);">
1959                    <div class="d-inline-flex align-items-center justify-content-center rounded-circle"
1960                         style="width:68px; height:68px; background: rgba(var(--cz-primary-rgb), .16);">
1961                        <i class="ci-check" style="font-size: 32px; color: rgba(var(--cz-primary-rgb));"></i>
1962                    </div>
1963                </div>
1964                <p class="fw-bold mb-0" style="font-size:1.05rem; color:#1f2937;">تم تأكيد بياناتك.</p>
1965            </div>
1966        </div>
1967    </div>
1968</div>
1969
1970<div id="UI_popUpNewsLetterSubmit" class="modal fade" tabindex="-1">
1971    <div class="modal-dialog modal-dialog-centered" role="document">
1972        <div class="modal-content border-0 rounded-4 overflow-hidden shadow-lg">
1973            <div class="modal-header border-0 pb-0 px-4 pt-4">
1974                <h5 class="modal-title fw-bold text-primary mb-0">الرساله الاخباريه!</h5>
1975                <button class="btn-close" type="button" data-bs-dismiss="modal" aria-label="Close"></button>
1976            </div>
1977            <div class="modal-body text-center px-4 pt-3 pb-4">
1978                <div class="mx-auto mb-3 d-inline-flex align-items-center justify-content-center rounded-circle"
1979                     style="width:96px; height:96px; background: rgba(var(--cz-primary-rgb), .08);">
1980                    <div class="d-inline-flex align-items-center justify-content-center rounded-circle"
1981                         style="width:68px; height:68px; background: rgba(var(--cz-primary-rgb), .16);">
1982                        <i class="ci-check" style="font-size: 32px; color: rgba(var(--cz-primary-rgb));"></i>
1983                    </div>
1984                </div>
1985                <p class="fw-bold mb-0" style="font-size:1.05rem; color:#1f2937;">تم حفظ جهة الاتصال.</p>
1986            </div>
1987        </div>
1988    </div>
1989</div>
1990
1991
1992<div id="UI_slideModal" class="modal fade" tabindex="-1" role="dialog" aria-hidden="true">
1993    <div class="modal-dialog modal-dialog-centered modal-dialog-scrollable" role="document">
1994        <div class="modal-content">
1995            <div class="modal-header bg-secondary">
1996                <ul class="nav nav-tabs card-header-tabs" role="tablist">
1997                    <li class="nav-item"><a class="nav-link fw-medium active" role="tab" aria-selected="true"><i class="ci-announcement me-2-Auto mt-n1"></i><span data-bind="text: m_currentSlideModal._title"></span></a></li>
1998                </ul>
1999                <button class="btn-close" type="button" data-bs-dismiss="modal" aria-label="Close"></button>
2000            </div>
2001            <div class="modal-body py-4">
2002                <div class="slideModal-body textAlignAuto" data-bind="html: m_currentSlideModal._description"></div>
2003
2004                <!-- ko ifnot: doCheckEmptyData(m_currentSlideModal._link()) -->
2005                <a class="btn btn-primary d-block w-100 mt-3" href="#" enable-href="true" data-bind="attr:{href: m_currentSlideModal._link}">
2006                    <!-- ko if: doCheckEmptyData(m_currentSlideModal._button()) -->أكثر<!-- /ko -->
2007                    <!-- ko ifnot: doCheckEmptyData(m_currentSlideModal._button()) --><span data-bind="text: m_currentSlideModal._button"></span><!-- /ko -->
2008                </a>
2009                <!-- /ko -->
2010            </div>
2011        </div>
2012    </div>
2013</div>
2014
2015
2016<!-- Cart Drawer Backdrop -->
2017<div id="UI_cartDrawerBackdrop" class="cart-drawer-backdrop" style="display:none"
2018     data-bind="visible: m_currentPopUpMessage._isVisible(), click: doCloseCartDrawer"></div>
2019
2020<!-- Cart Drawer -->
2021<div id="UI_cartDrawer" class="cart-drawer"
2022     data-bind="css: { 'cart-drawer-open': m_currentPopUpMessage._isVisible(), 'cart-drawer-short': m_drawerShortMode(), 'cart-drawer-alert-only': m_drawerShortMode() && m_currentCart._listCartDetailModel().length == 0 }">
2023
2024    <!-- Drawer Header -->
2025    <!-- ko if: !(m_drawerShortMode() && m_currentCart._listCartDetailModel().length == 0) -->
2026    <div class="cart-drawer-header">
2027        <h5 class="mb-0 fw-bold">
2028            عربة التسوق
2029        </h5>
2030        <button class="btn-close" type="button" aria-label="Close" data-bind="click: doCloseCartDrawer"></button>
2031    </div>
2032    <!-- /ko -->
2033
2034    <!-- Added Item Notification -->
2035    <!-- ko if: m_currentPopUpMessage._popUpMessageType() >= 0 -->
2036    <div class="cart-drawer-alert" data-bind="css: doGetClassDrawerAlert()">
2037        <div class="d-flex align-items-center gap-2">
2038            <!-- ko if: m_currentPopUpMessage._pictureUrl() && !(m_drawerShortMode() && m_currentCart._listCartDetailModel().length > 0) -->
2039            <img alt="" loading="lazy" class="rounded flex-shrink-0" style="width:40px; height:40px; object-fit:cover;" data-bind="attr:{ src: m_currentPopUpMessage._pictureUrl() }">
2040            <!-- /ko -->
2041            <div class="flex-grow-1 font-size-12" data-bind="html: doGetDrawerAlertMessage()"></div>
2042            <!-- ko if: m_drawerShortMode() && m_currentCart._listCartDetailModel().length == 0 -->
2043            <button class="btn-close flex-shrink-0" type="button" style="font-size: 10px;" aria-label="Close" data-bind="click: doCloseCartDrawer"></button>
2044            <!-- /ko -->
2045        </div>
2046        <!-- ko if: m_currentPopUpMessage._hasCouponShipment() -->
2047        <div class="shipteaser shipteaser-sm mt-2" data-bind="css: { 'shipteaser-done': !m_currentPopUpMessage._hasPartialShipmentDiscount() && m_currentPopUpMessage._drawLine() == 100 }" >
2048            <span class="shipteaser-icon"><i class="ci-delivery flipAuto"></i></span>
2049            <div class="shipteaser-body">
2050                <!-- ko if: m_currentPopUpMessage._hasPartialShipmentDiscount() -->
2051                <p class="shipteaser-text" data-bind="html: doGetShipmentTeaserMessage()"></p>
2052                <!-- /ko -->
2053
2054                <!-- ko if: !m_currentPopUpMessage._hasPartialShipmentDiscount() && m_currentPopUpMessage._drawLine() != 100 -->
2055                <p class="shipteaser-text">شراء <span class="shipteaser-value" data-bind="text: m_currentPopUpMessage._couponAmount()"></span> <span class="shipteaser-value" data-bind="text: doGetCurrentCurrency()"></span> المزيد للحصول عليه <strong>شحن مجاني</strong></p>
2056                <!-- /ko -->
2057
2058                <!-- ko if: !m_currentPopUpMessage._hasPartialShipmentDiscount() && m_currentPopUpMessage._drawLine() == 100 -->
2059                <p class="shipteaser-text">خدمة الشحن المجاني</p>
2060                <!-- /ko -->
2061
2062                <!-- ko if: m_currentPopUpMessage._drawLine() != 100 -->
2063                <div class="shipteaser-track" role="progressbar" aria-label="Free shipping progress">
2064                    <div class="shipteaser-fill" data-bind="style:{'width': m_currentPopUpMessage._drawLine()+'%'}"></div>
2065                </div>
2066                <!-- /ko -->
2067            </div>
2068        </div>
2069        <!-- /ko -->
2070    </div>
2071    <!-- /ko -->
2072
2073    <!-- Drawer Body - Cart Items -->
2074    <div class="cart-drawer-body">
2075        <!-- ko if: m_currentCart._listCartDetailModel().length != 0 -->
2076        <div data-bind="foreach: { data: m_showCartDrawer() ? doGetFilterCart() : [] }">
2077            <div class="cart-drawer-item">
2078                <div class="d-flex gap-2 align-items-start">
2079                    <div class="flex-shrink-0 position-relative">
2080                        <a class="cart-drawer-item-img d-block" enable-href="false" data-bind="attr:{href: doGetLinkObject($data._objectModel)}">
2081                            <img loading="lazy" data-bind="attr:{ src: doGetDefaultPictureByObject($data._objectModel, true), alt: $data._objectModel._name }">
2082                        </a>
2083                        <button class="cart-drawer-item-remove"
2084                                data-bind="click: $root.doRemoveCartDetail.bind($root, $data)"
2085                                type="button" aria-label="Remove">
2086                            <i class="ci-trash"></i>
2087                        </button>
2088                    </div>
2089                    <div class="flex-grow-1" style="min-width:0;">
2090                        <a enable-href="true" class="cart-drawer-item-title" data-bind="text: $data._objectModel._name, attr:{href: doGetLinkObject($data._objectModel)}"></a>
2091                        <div class="d-flex justify-content-between align-items-center mt-1">
2092                            <div class="text-accent fw-bold" data-bind="html: $root.doGetHtmlCartDetailPrice($data, true, true)"></div>
2093                            <!-- ko if: $data._cartDetailType() != CartDetailTypeEnum.FromBundle -->
2094                            <!-- ko if: $data._objectModel._objectSection() != ObjectSectionEnum.GiftCard && $data._objectModel._objectSection() != ObjectSectionEnum.Service -->
2095                            <div class="count-input count-input-xs rounded-pill flex-shrink-0">
2096                                <button type="button" class="btn btn-icon" data-bind="click: $root.doSetQuantity.bind($root, $data, QuantityActionEnum.Remove)">
2097                                    <span class="fw-bold">−</span>
2098                                </button>
2099                                <input autocomplete="off" type="number" class="form-control text-center" readonly="true" data-bind="value: $data._quantity">
2100                                <button type="button" class="btn btn-icon" data-bind="click: $root.doSetQuantity.bind($root, $data, QuantityActionEnum.Add)">
2101                                    <span class="fw-bold">+</span>
2102                                </button>
2103                            </div>
2104                            <!-- /ko -->
2105                            <!-- /ko -->
2106                        </div>
2107                        <!-- ko if: $data._objectModel._objectStockModel._objectStockStatus() == ObjectStockStatusEnum.Preserved -->
2108                        <div class="cart-drawer-item-preorder d-flex align-items-center mt-1">
2109                            <i class="ci-truck flipAuto me-1-Auto" data-bind="css:{'icon-flip-horizontal': doGetCulture() =='en'}"></i>
2110                            <!-- ko if: doGetCountryShortNameByCurrentCompany() == 'sa' -->
2111                            <span data-bind="text: doFormatPreserved($data._objectModel._objectStockModel._datePreserved(), 15, doGetCulture())"></span>
2112                            <!-- /ko -->
2113                            <!-- ko if: doGetCountryShortNameByCurrentCompany() == 'ae' -->
2114                            <span data-bind="text: doFormatPreserved($data._objectModel._objectStockModel._datePreserved(), 7, doGetCulture())"></span>
2115                            <!-- /ko -->
2116                        </div>
2117                        <!-- /ko -->
2118                    </div>
2119                </div>
2120            </div>
2121        </div>
2122        <!-- ko if: m_drawerShortMode() && m_currentCart._listCartDetailModel().length > 1 -->
2123        <div class="text-center py-2 border-top">
2124            <button type="button" class="btn btn-link p-0 text-decoration-none fw-semibold font-size-12"
2125                    style="color: rgba(var(--cz-primary-rgb));"
2126                    data-bind="click: function(){ m_drawerShortMode(false); }, text: 'عرض الجميع ' + doGetCartCount() + ' المنتجات'">
2127            </button>
2128        </div>
2129        <!-- /ko -->
2130        <!-- ko if: m_drawerShortMode() && m_currentCart._listCartDetailModel().length > 0 -->
2131        <div class="px-3 pb-2">
2132            <a class="btn btn-sm d-block w-100 cart-drawer-checkout"
2133               href="/Checkout" enable-href="false"
2134               onclick="m_handlerSession.doCloseCartDrawer()"
2135               style="font-size: 12px; padding: 6px 12px;">
2136                <i class="ci-card me-2-Auto fs-sm align-middle flipAuto"></i>الدفع
2137            </a>
2138        </div>
2139        <!-- /ko -->
2140        <!-- /ko -->
2141
2142        <!-- ko if: m_currentCart._listCartDetailModel().length == 0 && !m_drawerShortMode() -->
2143        <div class="text-center py-5 px-3">
2144            <i class="ci-card-bag" style="font-size:48px; color:#ccc;"></i>
2145            <h6 class="mt-3 text-muted">لا توجد منتجات في سلة التسوق الخاصة بك.</h6>
2146        </div>
2147        <!-- /ko -->
2148    </div>
2149
2150    <!-- Drawer Footer -->
2151    <!-- ko if: m_currentCart._listCartDetailModel().length != 0 && !m_drawerShortMode() -->
2152    <div class="cart-drawer-footer pb-sm-5 pb-md-4">
2153        <div class="d-flex justify-content-between align-items-start mb-3">
2154            <div class="textAlignAuto">
2155                <span class="text-accent fw-semibold">مجموع</span>
2156                <span class="text-muted font-size-10">(تشمل ضريبة القيمة المضافة)</span>
2157                <div class="fs-lg fw-bold" style="color: var(--cz-heading-color, #222);" data-bind="html: $root.doCalcPriceDynamic(m_currentCart._total(), true)"></div>
2158            </div>
2159            <!-- ko if: doGetCartTotalSaved() > 0 -->
2160            <div class="font-size-11 text-success fw-semibold textAlignAuto" style="margin-top: 4px;">
2161                <i class="ci-star font-size-10"></i> لقد أنقذت
2162                <div class="fs-sm fw-bold" data-bind="html: $root.doCalcPriceDynamic(doGetCartTotalSaved(), true)"></div>
2163            </div>
2164            <!-- /ko -->
2165        </div>
2166        <a class="btn d-block w-100 cart-drawer-checkout mb-2" href="/Checkout" enable-href="false" onclick="m_handlerSession.doCloseCartDrawer()">
2167            <i class="ci-card me-2-Auto fs-base align-middle flipAuto"></i>الدفع
2168        </a>
2169    </div>
2170    <!-- /ko -->
2171</div>
2172
2173
2174
2175
2176
2177<script type="application/javascript">
2178    window.doRedirection = function () {
2179        if (window.location.pathname.indexOf("CreateSell") != -1)
2180            window.location = window.location.origin;
2181    }
2182
2183    // The notification dropdown renders a row per advertisement, and it is in the header of every
2184    // page — so the whole list was bound on every page load for a panel most visitors never open.
2185    // The markup only foreaches once this says so; the flag stays true afterwards, since a second
2186    // open should cost nothing.
2187    //
2188    // Filling it is deliberately separate from opening it. On desktop the panel is opened by CSS
2189    // alone (.dropdown:hover > .dropdown-menu in StyleCartzilla-Menu.css), which no click handler
2190    // ever sees — so hovering showed the panel with nothing in it. The wrapper calls this on
2191    // pointer enter, which is the earliest moment either path can start.
2192    window.doPrepareAdvertisement = function () {
2193        if (typeof m_handlerSession != "undefined")
2194            m_handlerSession.m_showAdvertisement(true);
2195    }
2196
2197    window.doOpenAdvertisement = function () {
2198        doPrepareAdvertisement();
2199        doJsShowMenu('UI_menuWebAdvertisement');
2200    }
2201
2202    // Mobile renders its own copy of the same list, inside a modal opened from the footer
2203    // toolbar. Same gate, same flag: the rows exist once either surface is asked for.
2204    window.doOpenAdvertisementModal = function () {
2205        doPrepareAdvertisement();
2206        doShowModal('UI_userModalAdvertisement');
2207    }
2208
2209    window.doOpenProfile = function () {
2210        if (doCheckUUID(m_handlerSession.m_currentUser._id())){
2211            if(window.innerWidth <= 992)
2212                doShowModal('UI_menuUserMobile');
2213            else {
2214                var el = document.querySelector('#UI_userSession .dropdown-menu');
2215                if (el) el.classList.toggle('show');
2216            }
2217        }
2218        else {
2219            doShowModal('UI_sessionModal');
2220        }
2221    }
2222
2223
2224    doLoadScript(function () {
2225        doJsPasswordVisibilityToggle();          // wire modal password eye toggles (login/register/reset)
2226        const sessionInputs = ["UI_sessionCode1", "UI_sessionCode2", "UI_sessionCode3", "UI_sessionCode4"];
2227        doInitCodeInput(sessionInputs, m_handlerSession.m_currentStructUser._code, m_handlerSession, m_handlerSession.doEventSendCode);
2228
2229        var googleClientID = '316328785783-gk72dnq33tchhr0kdrtidg7enq1arami.apps.googleusercontent.com';
2230        var googleBtn = document.getElementById("UI_buttonGoogle");
2231        if (googleClientID != "" && googleBtn) {
2232            if (window.Capacitor && window.Capacitor.Plugins && window.Capacitor.Plugins.NativeAuth)
2233            {
2234                googleBtn.innerHTML =
2235                    '<button class="btn btn-outline-dark w-100">Sign in with Google</button>';
2236                googleBtn.onclick = async function () {
2237                    try {
2238                        // Native plugin reads serverClientId from google-services.json /
2239                        // GoogleService-Info.plist; web doesn't need to pass it.
2240                        var res = await window.Capacitor.Plugins.NativeAuth.signInWithGoogle({});
2241                        m_handlerSession.doGoogleCredentialResponse({ credential: res.idToken });
2242                    } catch (error) {
2243                        console.log(error);
2244                    }
2245                };
2246            }
2247            // Web (browser) Google Sign-In client is heavy (~69 KiB). Don't load it at
2248            // page load — defer to the first time the session modal opens. See
2249            // window.doInitGoogleSignIn + the shown.bs.modal listener below.
2250        }
2251
2252        var m_gsiLoaded = false;
2253        window.doInitGoogleSignIn = function () {
2254            if (m_gsiLoaded)
2255                return;
2256
2257            var googleClientID = '316328785783-gk72dnq33tchhr0kdrtidg7enq1arami.apps.googleusercontent.com';
2258            var googleBtn = document.getElementById("UI_buttonGoogle");
2259            var isNative = window.Capacitor && window.Capacitor.Plugins && window.Capacitor.Plugins.NativeAuth;
2260
2261            // Native wires googleBtn.onclick at page load and loads no web script — skip here.
2262            if (googleClientID == "" || !googleBtn || isNative)
2263                return;
2264
2265            m_gsiLoaded = true;
2266            doLoadScript(function () {
2267                try{
2268                    google.accounts.id.initialize({
2269                        client_id: googleClientID,
2270                        callback: m_handlerSession.doGoogleCredentialResponse
2271                    });
2272                    google.accounts.id.renderButton(
2273                        googleBtn,
2274                        { theme: "outline", size: "large" }  // customization attributes
2275                    );
2276                }
2277                catch(error){
2278                    console.log(error);
2279                }
2280
2281            }, "https://accounts.google.com/gsi/client");
2282        };
2283
2284        // The Google and Apple origins used to be preconnected from the head of every page, where
2285        // they were two handshakes nobody spent on a visit that never opens this modal. Warm them
2286        // here instead, on `show` rather than `shown`: the two doInit* handlers below fetch the SDKs
2287        // on `shown`, so this puts the connection one modal fade (~150-300 ms) ahead of the request
2288        // instead of in the same tick, which is the whole point of a preconnect.
2289        var m_signInWarmed = false;
2290        function doWarmSignInOrigins() {
2291            if (m_signInWarmed)
2292                return;
2293            m_signInWarmed = true;
2294
2295            var origins = ["https://accounts.google.com", "https://appleid.cdn-apple.com"];
2296            for (var w = 0; w < origins.length; w++) {
2297                var hint = document.createElement("link");
2298                hint.rel = "preconnect";
2299                hint.href = origins[w];
2300                hint.crossOrigin = "anonymous";
2301                document.head.appendChild(hint);
2302            }
2303        }
2304
2305        var sessionModalEl = document.getElementById("UI_sessionModal");
2306        if (sessionModalEl)
2307            sessionModalEl.addEventListener("show.bs.modal", doWarmSignInOrigins);
2308        if (sessionModalEl)
2309            sessionModalEl.addEventListener("shown.bs.modal", window.doInitGoogleSignIn);
2310
2311        var appleClientID = 'com.root.login.brandfull';
2312        var appleBtn = document.getElementById("appleid-signin");
2313        if (appleClientID != "" && appleBtn) {
2314            var capPlatform = (window.Capacitor && window.Capacitor.getPlatform) ? window.Capacitor.getPlatform() : "";
2315            var isNative = (capPlatform === "ios" || capPlatform === "android")
2316                           && window.Capacitor.Plugins && window.Capacitor.Plugins.NativeAuth;
2317
2318            if (isNative) {
2319                // iOS: ASAuthorization (bundle ID is the audience — pass {}).
2320                // Android: Custom Tab to appleid.apple.com, deep-link back via the
2321                // intent-filter on blendshome.com/auth/android.
2322                appleBtn.innerHTML =
2323                    '<button class="btn btn-dark w-100">Sign in with Apple</button>';
2324                appleBtn.onclick = async function () {
2325                    try {
2326                        var args = (capPlatform === "android")
2327                            ? { clientId: appleClientID, redirectUri: 'https://brandfull.com/auth/android' }
2328                            : {};
2329                        var res = await window.Capacitor.Plugins.NativeAuth.signInWithApple(args);
2330                        m_handlerSession.doAppleCredentialResponse(res.idToken);
2331                    } catch (error) {
2332                        console.log(error);
2333                    }
2334                };
2335            }
2336            // Web Apple Sign-In JS deferred to first modal open — see window.doInitAppleSignIn.
2337        }
2338
2339        var m_appleLoaded = false;
2340        window.doInitAppleSignIn = function () {
2341            if (m_appleLoaded)
2342                return;
2343
2344            var appleClientID = 'com.root.login.brandfull';
2345            var appleBtn = document.getElementById("appleid-signin");
2346            var capPlatform = (window.Capacitor && window.Capacitor.getPlatform) ? window.Capacitor.getPlatform() : "";
2347            var isNative = (capPlatform === "ios" || capPlatform === "android")
2348                           && window.Capacitor.Plugins && window.Capacitor.Plugins.NativeAuth;
2349
2350            // Native wires appleBtn.onclick at page load and loads no web script — skip here.
2351            if (appleClientID == "" || !appleBtn || isNative)
2352                return;
2353
2354            m_appleLoaded = true;
2355            doLoadScript(function () {
2356
2357                AppleID.auth.init({
2358                    clientId: appleClientID,
2359                    redirectURI: 'https://brandfull.com',
2360                    scope: 'name email',
2361                    usePopup: true,
2362                    onSuccess: (response) => console.log('responseApple - response', response),
2363                    onError: (error) => console.log('responseApple - error', error),
2364                });
2365
2366                document.addEventListener('AppleIDSignInOnSuccess', (event) => {
2367                    // Handle successful response.
2368                    console.log('AppleIDSignInOnSuccess', event.detail.authorization.id_token);
2369                    m_handlerSession.doAppleCredentialResponse(event.detail.authorization.id_token)
2370                });
2371
2372
2373                // Listen for authorization failures.
2374                document.addEventListener('AppleIDSignInOnFailure', (event) => {
2375                    // Handle error.
2376                    console.log('AppleIDSignInOnFailure', event);
2377                });
2378            }, "https://appleid.cdn-apple.com/appleauth/static/jsapi/appleid/1/en_US/appleid.auth.js");
2379        };
2380
2381        if (sessionModalEl)
2382            sessionModalEl.addEventListener("shown.bs.modal", window.doInitAppleSign
2382In);
2383    })
2384</script>
2384
2385
2386    
2387
2388<input autocomplete="off" style="visibility: hidden;display: none;" type="file" id="UI_addPicture" multiple accept="image/x-png,image/jpeg" />
2389<div id="UI_uploadImageModal" class="modal" tabindex="-1" role="dialog" style="z-index: 100000;">
2390    <div class="modal-dialog" style=" width: auto;">
2391        <div class="modal-content">
2392            <div class="modal-header">
2393                <div class="modal-title h4">  تحميل الصورة </div>
2394                <button type="button" class="btn border-0 bg-transparent p-0" data-bs-dismiss="modal" aria-label="غلق" style="position: inherit; " data-bind="style:{'float': doGetCulture() == 'en'? 'right':'left'}">
2395                    <i class="ci-close"></i>
2396                </button>
2397            </div>
2398            <div class="modal-body pt-1 px-0 pb-0" id="UI_bodyImageModal">
2399                <div id="image_demo"></div>
2400            </div>
2401            <div class="modal-footer py-1">
2402                <div class="w-100" style="text-align: center;">
2403                    <button class="btn btn-primary crop_image py-1" id="crop_image">
2404                        <i class="ci-reduce"></i>
2405                        اضف صورة
2406                    </button>
2407                    <button class="btn btn-secondary RotateRight py-1">
2408                        <i class="ci-compare"></i>
2409                        دوران
2410                    </button>
2411                </div>
2412            </div>
2413        </div>
2414    </div>
2415</div>
2416
2417<style>
2418    /* Cropper look & feel — id-scoped so these win over micro-cropper.js's injected global rules */
2419    #UI_uploadImageModal .modal-dialog { max-width: 480px; }
2420    #UI_uploadImageModal .modal-content {
2421        border: 0;
2422        border-radius: 18px;
2423        overflow: hidden;
2424        box-shadow: 0 24px 60px -14px rgba(17, 20, 28, .38);
2425    }
2426    #UI_uploadImageModal .modal-body {
2427        background: linear-gradient(180deg, #f6f7f9 0%, #eef0f3 100%);
2428    }
2429    #UI_uploadImageModal .croppie-container { padding: 16px 0 6px; }
2430
2431    /* darkened surround + rounded stage */
2432    #UI_uploadImageModal .cr-boundary {
2433        border-radius: 14px;
2434        box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .06);
2435    }
2436    /* crop window: soft white frame + subtle ring, keep Croppie's giant darken shadow */
2437    #UI_uploadImageModal .cr-viewport {
2438        border: 3px solid #fff;
2439        border-radius: 16px;
2440        box-shadow: 0 0 0 1px rgba(0, 0, 0, .18), 0 0 2000px 2000px rgba(17, 20, 28, .55);
2441    }
2442
2443    /* zoom slider */
2444    #UI_uploadImageModal .cr-slider-wrap { width: 82%; margin: 8px auto 18px; }
2445    #UI_uploadImageModal .cr-slider { padding: 10px 0; }
2446    #UI_uploadImageModal .cr-slider::-webkit-slider-runnable-track {
2447        height: 6px; border-radius: 6px; background: rgba(17, 20, 28, .14);
2448    }
2449    #UI_uploadImageModal .cr-slider::-webkit-slider-thumb {
2450        height: 20px; width: 20px; margin-top: -7px; border-radius: 50%;
2451        background: var(--theme-color, #fd5631); border: 2px solid #fff;
2452        box-shadow: 0 2px 6px rgba(0, 0, 0, .3); transition: transform .15s ease;
2453    }
2454    #UI_uploadImageModal .cr-slider:active::-webkit-slider-thumb { transform: scale(1.15); }
2455    #UI_uploadImageModal .cr-slider::-moz-range-track {
2456        height: 6px; border-radius: 6px; background: rgba(17, 20, 28, .14);
2457    }
2458    #UI_uploadImageModal .cr-slider::-moz-range-thumb {
2459        height: 20px; width: 20px; border-radius: 50%;
2460        background: var(--theme-color, #fd5631); border: 2px solid #fff;
2461        box-shadow: 0 2px 6px rgba(0, 0, 0, .3);
2462    }
2463
2464    /* footer actions */
2465    #UI_uploadImageModal .modal-footer {
2466        background: #fff; border-top: 1px solid rgba(0, 0, 0, .06); padding: 14px;
2467    }
2468    #UI_uploadImageModal .modal-footer .w-100 {
2469        display: flex; justify-content: center; gap: 10px;
2470    }
2471    #UI_uploadImageModal .modal-footer .btn {
2472        border-radius: 12px; padding: .55rem 1.15rem; font-weight: 600;
2473        display: inline-flex; align-items: center; gap: .4rem;
2474    }
2475    #UI_uploadImageModal .modal-footer .btn i { font-size: 1.05rem; }
2476</style>
2477
2478
2479<script type="application/javascript">
2480
2481    var image_crop = null;
2482    var image_handler = null;
2483    var image_id = null;
2484    var image_name = null;
2485    var image_param = null;
2486    var image_input = null;
2487    var image_object = null;
2488    var image_folder = null;
2489    var image_index = 0;
2490    var _cropperLoaded = false;
2491
2492    // Lazy-load micro-cropper.js on first use
2493    function doLoadCropper() {
2494        return new Promise(function (resolve) {
2495            if (_cropperLoaded || typeof Croppie !== 'undefined') { _cropperLoaded = true; resolve(); return; }
2496            var s = document.createElement('script');
2497            // Versioned like every other asset. This one builds its own 
2497<script> instead of
2498            // going through doLoadScript, so it does not inherit the cache-busting there and
2499            // a deploy would keep serving the previously cached copy.
2500            s.src = 'https://cdn.brandfull.com/_Js/micro-cropper.js?v=639260136226636726';
2501            s.onload = function () { _cropperLoaded = true; resolve(); };
2502            document.head.appendChild(s);
2503        });
2504    }
2505
2506    document.getElementById("UI_addPicture").addEventListener('change', function () {
2507        doShowModal('UI_uploadImageModal');
2508
2509        image_input = document.getElementById("UI_addPicture");
2510        image_index = image_input.files.length - 1;
2511        doLoadCropper().then(function () {
2512            doInitImageTool(image_input, image_object._dimension(), null, image_object._order(), null);
2513        });
2514    });
2515
2516    document.getElementById("UI_uploadImageModal").addEventListener('hidden.bs.modal', function() {
2517        document.getElementById("UI_addPicture").value = '';
2518    });
2519
2520    var m_currentPicture = null;
2521    window.doOpenCropper = function (handler, folder, item) {
2522        image_handler = handler;
2523        image_folder = folder;
2524        image_object = item;
2525        doLoadCropper().then(function () {
2526            if (item._binary()) {
2527                doShowModal('UI_uploadImageModal');
2528                doInitImageTool(document.getElementById("UI_addPicture"), item._dimension(), item._binary(), item._order(), item._name());
2529            }
2530            else if (item._name()) {
2531                doShowModal('UI_uploadImageModal');
2532                doInitImageTool(document.getElementById("UI_addPicture"), item._dimension(), image_folder + '/' + item._name(), item._order(), item._name());
2533            }
2534            else
2535                document.getElementById("UI_addPicture").click();
2536        });
2537    }
2538
2539    function doInitImageTool(input, dimension, imagepath = null, entityId = null, entityName = null) {
2540        var image_demo = document.querySelector('#image_demo');
2541        image_id = entityId;
2542        image_name = entityName;
2543        image_input = input;
2544        image_param = doGetParamPicture(dimension);
2545        if (image_crop != null)
2546            image_crop.destroy();
2547
2548        var xW = image_param.size.width / Math.max(image_param.size.height, image_param.size.width);
2549        image_param.viewport.width = image_param.viewport.width * xW;
2550        var xH = image_param.size.height / Math.max(image_param.size.height, image_param.size.width);
2551        image_param.viewport.height = image_param.viewport.height * xH;
2552        image_crop = new Croppie(image_demo, {
2553            showZoomer: true,
2554            enableResize: false,
2555            enableOrientation: true,
2556            enforceBoundary: true,
2557            mouseWheelZoom: true,
2558            enableExif: true,
2559            viewport: image_param.viewport,
2560            boundary: image_param.boundary
2561        });
2562
2563        var reader = new FileReader();
2564        reader.onload = function (event) {
2565            image_crop.bind({
2566                url: event.target.result,
2567            }).then(function () {
2568                image_crop.setZoom(0);
2569            });
2570        };
2571
2572        if (imagepath != null) {
2573            var base64Rejex = /^(?:[A-Z0-9+\/]{4})*(?:[A-Z0-9+\/]{2}==|[A-Z0-9+\/]{3}=|[A-Z0-9+\/]{4})$/i;
2574            var isBase64Valid = base64Rejex.test(imagepath);
2575            if (isBase64Valid) {
2576                var url = "data:image/png;base64," + imagepath;
2577                var byteString = atob(url.split(',')[1]);
2578                var ab = new ArrayBuffer(byteString.length);
2579                var ia = new Uint8Array(ab);
2580                for (var i = 0; i < byteString.length; i++) {
2581                    ia[i] = byteString.charCodeAt(i);
2582                }
2583                var blob = new Blob([ab], { type: image_param.format ? 'image/' + image_param.format : 'image/jpeg' });
2584                reader.readAsDataURL(blob);
2585            } 
2586            else {
2587                var request = new XMLHttpRequest();
2588                request.open("POST", '/ConvertBinary?imageUrl=' + imagepath, true);
2589                request.onreadystatechange = function () {
2590                    if (request.readyState == 4)
2591                    {
2592                        if (request.status == 200) {
2593                            try {
2594                                response = JSON.parse(request.responseText);
2595                                var url = "data:image/png;base64," + response.imageData;
2596                                var byteString = atob(url.split(',')[1]);
2597                                var ab = new ArrayBuffer(byteString.length);
2598                                var ia = new Uint8Array(ab);
2599                                for (var i = 0; i < byteString.length; i++) {
2600                                    ia[i] = byteString.charCodeAt(i);
2601                                }
2602                                var blob = new Blob([ab], { type: image_param.format ? 'image/' + image_param.format : 'image/jpeg' });
2603                                reader.readAsDataURL(blob);
2604                            }
2605                            catch (error) { response = request.responseText; }
2606                        }
2607                    }
2608                };
2609                request.send();
2610            }
2611        }
2612        else if (input.files.length != 0) {
2613            reader.readAsDataURL(input.files[image_index]);
2614        }
2615    }
2616
2617    
2618    function doGetParamPicture(dimension) {
2619        var pSize = document.getElementById('UI_bodyImageModal').clientWidth;
2620
2621        var dimensions = dimension.split("x");
2622        if (dimensions.length != 2)
2623            dimensions = dimension.split("X");
2624        if (dimensions.length != 2)
2625            dimensions = dimension.split("*");
2626        return {
2627            size: { width: dimensions[0], height: dimensions[1] },
2628            viewport: { width: pSize * 0.75, height: pSize * 0.75, type: 'square' },
2629            boundary: { width: pSize - 30, height: pSize - 30 }
2630        };
2631    }
2632    function doClickCrop() {
2633        if (image_crop == null)
2634            return;
2635
2636        image_crop.result({
2637            type: 'canvas',
2638            size: image_param.size,
2639            format: image_param.format ? image_param.format : "jpeg",
2640            quality: image_param.quality ? image_param.quality.value : 0.5
2641        }).then(function (response) {
2642            var size = response.length / (1024 * 1024);
2643            if (response && size < 4) 
2644            {
2645                image_object = image_handler.doAddImage(image_input ? image_input.id : null, image_id, image_name, response.split(";base64,")[1], response.split(";base64,")[0].split("/")[1]);
2646                if (image_index != 0 && image_object != null && image_object != undefined) {
2647                    image_index = image_index - 1;
2648                    setTimeout(doInitImageTool.bind(null, image_input, image_object._dimension(), null, image_object._order(), null), 250);
2649                }
2650                else
2651                    doHideModal('UI_uploadImageModal');
2652            }
2653        });
2654    }
2655    function doClickRotateRight() {
2656        if (image_crop != null)
2657            image_crop.rotate(90);
2658    }
2659
2660    document.querySelector("#crop_image").removeEventListener('click', doClickCrop);
2661    document.querySelector('#crop_image').addEventListener('click', doClickCrop);
2662
2663    document.querySelector(".RotateRight").removeEventListener('click', doClickRotateRight);
2664    document.querySelector('.RotateRight').addEventListener('click', doClickRotateRight);
2665    
2666</script>
2666
2667
2668
2669
2670
2671    
2672
2673
2674
2675
2676<script type="application/javascript">
2677    // Body lives in Tools/Cartzilla/Footer.ts -- the three app footers each carried their own
2678    // near-identical copy of it.
2679    //
2680    // Must go through doLoadScript: Footer.ts is compiled into script.min.js, which is fetched
2681    // asynchronously, so doInitLayoutFooter does not exist yet when this inline script parses.
2682    // Calling it bare threw "doInitLayoutFooter is not defined" on every page. doLoadScript is
2683    // defined by _LayoutScript, which _Layout renders well before this partial, and it is
2684    // idempotent -- the bundle is requested once and later callbacks fire immediately.
2685    doLoadScript(function () { doInitLayoutFooter(); });
2686</script>
2686
2687
2688<!-- Footer-->
2689
2690
2691<footer id="UI_LayoutFooter" class="footer bg-secondary" style="visibility: hidden;">
2692
2693
2694
2695    <div id="UI_social" class="bf-surfaceBand px-lg-3">
2696        <div class="container d-flex flex-md-row flex-sm-column py-sm-3 py-md-2 py-lg-3">
2697            <div class="col-md-6 col-12 text-center mx-auto">
2698                <h3 class="pb-1 text-accent mb-2">انضم إلى نشرتنا الإخبارية الآن</h3>
2699                <p class="fs-sm d-sm-none text-white">تلقي آخر التحديثات حول العروض الترويجية لمنتجاتنا</p>
2700
2701            </div>
2702            <div class="d-flex flex-wrap align-items-center col-md-6 col-12">
2703                <div class="input-group flex-nowrap">
2704                    <i class="ci-mail position-absolute top-50 translate-middle-y text-muted fs-base ms-3-Auto  zindex-10"></i>
2705                    <input autocomplete="email" class="form-floating form-control rounded-start-Auto" type="email" data-bind="value : m_emailNewsletter" placeholder="البريد الإلكتروني">
2706                    <button class=" btn btn-primary" type="button" data-bind="click : doSaveNewsletter">
2707                        ارسل
2708                    </button>
2709                </div>
2710                <!-- ko if:  !doCheckEmptyData(m_errorNewsletter()) -->
2711                <small class="text-danger" data-bind="text: m_errorNewsletter"></small>
2712                <!-- /ko -->
2713                <div class="subscription-status"></div>
2714            </div>
2715        </div>
2716
2717    </div>
2718
2719    <div class="p-lg-3 p-md-2 mb-2">
2720        <div class="mx-auto px-1 row" style="max-width: 80rem;">
2721
2722            <div id="UI_companyContact" class="col-md-4 col-12 order-sm-first">
2723
2724                <div class="form-text text-black">
2725                    <div class="widget widget-light pb-2 mb-md-4">
2726                        <!-- ko if:  !doCheckEmptyData(m_currentCompany._whatsappLink()) -->
2727                        <a name="supportwhatsapp" class="btn-social bs-light bs-whatsapp me-1-Auto mb-1" href="#" aria-label="whatsapp" data-bind="attr:{href:m_currentCompany._whatsappLink}" target="_blank" enable-href="true" rel="noreferrer">
2728                            <i class="ci-whatsapp font-size-20"></i>
2729                        </a>
2730                        <!-- /ko -->
2731                        <!-- ko if:  !doCheckEmptyData(m_currentCompany._facebookLink()) -->
2732                        <a name="supportfacebook" class="btn-social bs-light bs-facebook me-1-Auto mb-1" href="#" aria-label="facebook" data-bind="attr:{href:m_currentCompany._facebookLink}" target="_blank" enable-href="true" rel="noreferrer">
2733                            <i class="ci-facebook font-size-20"></i>
2734                        </a>
2735                        <!-- /ko -->
2736                        <!-- ko if:  !doCheckEmptyData(m_currentCompany._twitterLink()) -->
2737                        <a name="supporttwitter" class="btn-social bs-light bs-twitter me-1-Auto mb-1" href="#" aria-label="twitter" data-bind="attr:{href:m_currentCompany._twitterLink}" target="_blank" enable-href="true" rel="noreferrer">
2738                            <i class="ci-twitter font-size-20"></i>
2739                        </a>
2740                        <!-- /ko -->
2741                        <!-- ko if:  !doCheckEmptyData(m_currentCompany._instagramLink()) -->
2742                        <a name="supportinstagram" class="btn-social bs-light bs-instagram me-1-Auto mb-1" href="#" aria-label="instagram" data-bind="attr:{href:m_currentCompany._instagramLink}" target="_blank" enable-href="true" rel="noreferrer">
2743                            <i class="ci-instagram font-size-20"></i>
2744                        </a>
2745                        <!-- /ko -->
2746                        <!-- ko if:  !doCheckEmptyData(m_currentCompany._snapchatLink()) -->
2747                        <a name="supportsnapchat" class="btn-social bs-light bs-facebook me-1-Auto mb-1" href="#" aria-label="snapchat" data-bind="attr:{href:m_currentCompany._snapchatLink}" target="_blank" enable-href="true" rel="noreferrer">
2748                            <i class="ci-snapchat font-size-20"></i>
2749                        </a>
2750                        <!-- /ko -->
2751                        <!-- ko if:  !doCheckEmptyData(m_currentCompany._tiktokLink()) -->
2752                        <a name="supporttiktok" class="btn-social bs-light bs-facebook me-1-Auto mb
2752-1" href="#" aria-label="tiktok" data-bind="attr:{href:m_currentCompany._tiktokLink}" target="_blank" enable-href="true" rel="noreferrer">
2753                            <i class="ci-tiktok font-size-20"></i>
2754                        </a>
2755                        <!-- /ko -->
2756                    </div>
2757                </div>
2758
2759
2760                <div class="d-grid col-12">
2761                    <div class="form-text  text-white me-2-Auto">
2762                        <i class="ci-location"></i>
2763                        <span data-bind="html: doGetAddress(m_currentCompany._addressModel, '</br>')">
2764                        </span>
2765                    </div>
2766                    <div class="d-flex flex-wrap text-white">
2767                        <div class="me-2-Auto widget-light">
2768                            <i class="ci-mail"></i>
2769                            <a href="#" class="widget-list-link d-inline " data-bind="attr:{href: 'mailto:'+ m_currentCompany._addressModel._email()}" target="_blank" enable-href="true" rel="noreferrer">
2770                                <b data-bind="text:m_currentCompany._addressModel._email"></b>
2771                            </a>
2772                        </div>
2773                        <div class="me-2-Auto widget-light widget-list-item">
2774                            <i class="ci-phone"></i>
2775                            <a href="#" class="widget-list-link d-inline" data-bind="attr:{href: 'tel:'+ m_currentCompany._addressModel._phone()}" target="_blank" enable-href="true" rel="noreferrer">
2776                                <b data-bind="text:m_currentCompany._addressModel._phone"></b>
2777                            </a>
2778                        </div>
2779                    </div>
2780
2781                </div>
2782
2783            </div>
2784
2785
2786            <div id="UI_companyInfo" class="col-md-4 col-12 px-md-0 mb-2 m-sm-3">
2787                <div class=" row mt-n1 form-text text-black mb-1">
2788                    <div class="col-3 ">
2789                        <a class="d-inline-block align-middle" href="#">
2790                            <!-- ko if:  !doCheckEmptyData(m_currentCompany._pictureModel._name()) -->
2791                            <img loading="lazy" width="72" height="40" class="d-block" data-bind="attr:{src: doGetWebpLink('https://cdn.brandfull.com/Content/company/'+ m_currentCompany._pictureModel._name()), title: m_currentCompany._name, alt: m_currentCompany._name}" alt="company">
2792                            <!-- /ko -->
2793                        </a>
2794                    </div>
2795                    <div class="col-9">
2796                        <div class="form-text text-accent">
2797                            <strong class="font-size-16" data-bind="text: m_currentCompany._name()"></strong>
2798                        </div>
2799                        <div class="form-text text-white pb-2 mt-3">
2800                            <span class="" data-bind="text: m_currentCompany._description()"></span>
2801
2802                            <div class="d-flex mt-sm-2" data-bind="foreach: { data: m_handlerLayout.m_listCategoryMenuDepartmentFooter, as: 'subCategory' }">
2803                                <a class="col-2" href="#" enable-href="false" data-bind="attr:{ href: doGetLinkLoadMenu (subCategory, 'About')}">
2804                                    <!-- ko if: !doCheckEmptyData(subCategory._pictureName()) -->
2805                                    <img loading="lazy" class="p-1" data-bind="attr:{src: doGetWebpLink('https://cdn.brandfull.com/Content/category/'+subCategory._pictureName()), title:subCategory._name, alt:subCategory._name}" width="100%" height="100%" alt="category" />
2806                                    <!-- /ko -->
2807                                </a>
2808                            </div>
2809                        </div>
2810                    </div>
2811
2812                </div>
2813            </div>
2814
2815            <div id="UI_companyLinks" class="col-md-4 col-12 mb-sm-5" style="display:flex; flex-wrap: wrap">
2816                <!-- ko foreach: m_listCategoryMenuFooter -->
2817                <div class=" col-12 active footer-links " data-bind=" class: $root.m_listCategoryMenuFooter().length == 2? 'col-sm-6' : 'col-sm-4'  ,attr:{'id': 'footing_'+ $index() }">
2818                    <div class="widget textAlignAuto">
2819                        <div class="widget widget-links widget-light mb-4">
2820                            <div class="h6 widget-title text-accent  pb-1" data-bind="text: $data._name()"></div>
2821                            <!-- ko if: $data._list().length!=0 -->
2822                            <ul class="widget-list" data-bind="foreach: { data: $data._list(), as: 'subCategory' }">
2823                                <li class="widget-list-item">
2824                                    <a class="widget-list-link" href="#" enable-href="false" data-bind="attr:{ href: doGetLinkLoadMenu (subCategory, 'About')}">
2825                                        <!-- ko if: !doCheckEmptyData(subCategory._pictureName()) -->
2826                                        <i><img alt="" loading="lazy" data-bind="attr:{src: doGetWebpLink('https://cdn.brandfull.com/Content/category/'+subCategory._pictureName()), title:subCategory._name}" width="18" height="18" /></i>
2827                                        <!-- /ko -->
2828                                        <span data-bind="text: subCategory._name"></span>
2829                                    </a>
2830                                </li>
2831                            </ul>
2832                            <!-- /ko -->
2833                        </div>
2834                    </div>
2835                </div>
2836                <!-- /ko -->
2837            </div>
2838
2839        </div>
2840    </div>
2841</footer>
2842
2843<!-- Back To Top Button-->
2844<a id="UI_topArraw" class="btn-scroll-top" onclick="doScrollToTop()">
2845    <span class="btn-scroll-top-tooltip text-muted fs-sm me-2">أعلى</span>
2846    <i class="btn-scroll-top-icon ci-arrow-up"></i>
2847</a>
2848
2849
2850<div id="UI_menuUserMobile" class="modal fade slide-up" tabindex="-1" role="dialog" aria-labelledby="UI_menuUserMobileLabel" aria-modal="true">
2851    <div class="modal-dialog" role="document">
2852        <div class="modal-content">
2853            <div class="modal-header border-bottom">
2854                <h5 class="modal-title fw-bold" id="UI_menuUserMobileLabel">قائمة الملف الشخصي</h5>
2855                <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
2856            </div>
2857            <div class="modal-body p-4">
2858                <div class="widget widget-cart px-3 pt-2 pb-3 textAlignAuto">
2859                    <a class="dropdown-item d-flex align-items-center py-1" enable-href="false" href="/Account/Profile" data-bs-dismiss="modal" aria-label="Close">
2860                        <i class="ci-user opacity-60 me-2-Auto"></i>الملف الشخصي
2861                    </a>
2862                    <a class="dropdown-item d-flex align-items-center py-1" enable-href="false" href="/Account/Invoices" data-bs-dismiss="modal" aria-label="Close">
2863                        <i class="ci-basket opacity-60 me-2-Auto"></i>الفواتير
2864                    </a>
2865                    <a class="dropdown-item d-flex align-items-center py-1" enable-href="false" href="/Account/Supports" data-bs-dismiss="modal" aria-label="Close">
2866                        <i class="ci-help opacity-60 me-2-Auto"></i>تذاكر
2867                    </a>
2868                        <a class="dropdown-item d-flex align-items-center py-1" enable-href="false" href="/Account/Messages" data-bs-dismiss="modal" aria-label="Close">
2869                            <i class="ci-message opacity-60 me-2-Auto"></i>رسائل
2870                        </a>
2871
2872                    <div class="dropdown-divider"></div>
2873                    <a class="dropdown-item d-flex align-items-center py-1" href="#" enable-href="false" data-bind="click: $root.doLogOut.bind($root, '/Account/LogOff?Value=https%3A%2F%2Fbrandfull.com%2F')" data-bs-dismiss="modal" aria-label="Close">
2874                        <i class="ci-sign-out opacity-60 me-2-Auto"></i>تسجيل الخروج
2875                    </a>
2876                </div>
2877            </div>
2878        </div>
2879    </div>
2880</div>
2881
2882
2883<div id="UI_userModalAdvertisement" class="modal fade slide-up" tabindex="-1" role="dialog" aria-labelledby="UI_userModalAdvertisementLabel" aria-modal="true">
2884    <div class="modal-dialog" role="document">
2885        <div class="modal-content overflow-hidden">
2886            <div class="modal-header border-bottom">
2887                <h5 class="modal-title fw-bold" id="UI_userModalAdvertisementLabel">إشعار</h5>
2888                <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
2889            </div>
2890            <div class="modal-body">
2891                <div class="widget widget-cart pt-2 pb-0">
2892                    <div class="d-flex align-items-center justify-content-between">
2893                        <div class="col-md-10">
2894
2895                            <!-- ko if: m_handlerLayout.m_isViewMobile() -->
2896                            <!-- ko if: m_enableNotifGrant() -->
2897                            <button id="UI_notifGrant" class="btn d-flex align-content-between align-items-center font-size-10 p-1 " onclick="doGetPermissionNotification()">
2898                                <i class="ci-settings me-2-Auto font-size-14 "></i>
2899                                <span class="form-check-label elide text-black fw-bolder heartbeat" for="UI_agreeWebPush">
2900                                    ابقني على اطلاع
2901                                </span>
2902                            </button>
2903                            <!-- /ko -->
2904                            <!-- ko if: m_enableNotifDenied() -->
2905                            <div id="UI_notifDenied" class="d-flex align-content-between align-items-center font-size-10 p-1 ">
2906                                <i class="ci-announcement me-2-Auto font-size-14  fw-bolder"></i>
2907                                <span class="form-check-label elide text-danger fw-bolder heartbeat">
2908                                    الإشعارات محجوبة. شغلها في إعدادات المتصفح لتحصل على تنبيهات.
2909                                </span>
2910                            </div>
2911                            <!-- /ko -->
2912                            <!-- /ko -->
2913                        </div>
2914                    </div>
2915
2916                    <div id="UI_notificationList" data-simplebar data-simplebar-auto-hide="false" style="overflow-x: hidden;max-height: 21rem;" data-bind="visible: m_listAdvertisement().length!=0, foreach: { data: m_showAdvertisement() ? m_listAdvertisement() : [] }">
2917    <div class="border-bottom py-1 me-3-Auto d-flex justify-content-between border-danger" style="    border-bottom-style: dotted !important;" data-bs-dismiss="modal">
2918        <label class="form-text elide w-75 pointer" data-bind="click: $root.doSetTaged.bind($root, $data, true), text:$data._subject()"></label>
2919        <b class="form-check-label textAlignReverse font-size-10 d-inline-block mb-n2 fw-light" data-bind="click: $root.doSetTaged.bind($root, $data, true), text: doCalcDateDifference(doCastFromUTC($data._dateCreate()))"></b>
2920    </div>
2921</div>
2922
2923                </div>
2924
2925            </div>
2926        </div>
2927    </div>
2928</div>
2929<div id="UI_footerMenu" class="handheld-toolbar position-fixed show" style="height: 3.5rem;">
2930    <div class="d-table table-layout-fixed w-100 pt-1" style="height: 100%">
2931
2932        <a name="footer-home" class="d-table-cell handheld-toolbar-item" href="/" rel="nofollow" enable-href="false" aria-label="go to home">
2933            <span class="handheld-toolbar-icon"><i class="ci-home"></i></span>
2934        </a>
2935        <a name="footer-user" class="d-table-cell handheld-toolbar-item" aria-label="قائمة الملف الشخصي" href="javascript:void(0)" enable-href="false" rel="nofollow" listener="false" onclick="doOpenProfile()">
2936            <span class="handheld-toolbar-icon"><i class="ci-user"></i></span>
2937        </a>
2938
2939
2940        <!-- ko if: doCheckUUID(m_currentUser._id()) -->
2941        <a name="footer-favorites" class="d-table-cell handheld-toolbar-item" aria-label="المفضله" href="/Account/Favorites" rel="nofollow" enable-href="false">
2942            <span class="handheld-toolbar-icon"><i class="ci-heart"></i></span>
2943        </a>
2944
2945        <a name="footer-notes" class="d-table-cell handheld-toolbar-item" aria-label="إشعار" href="javascript:void(0)" rel="nofollow" enable-href="false" listener="false" onclick="doOpenAdvertisementModal()">
2946            <span class="handheld-toolbar-icon">
2947                <!-- ko if: m_countAdvertisement() != 0 -->
2948                <span class="bg-danger font-size-10 text-white counterAdv" data-bind="text: m_countAdvertisement() > 99 ? '99+' : m_countAdvertisement()"></span>
2949                <!-- /ko -->
2950                <i class="ci-bell"></i>
2951            </span>
2952        </a>
2953        <!-- /ko -->
2954
2955    </div>
2956</div>
2957
2958
2959
2960    <!-- END FOOTER -->
2961    <div id="UI_preLoader" class="nav-progress" role="progressbar" aria-live="polite"
2962         style="display: none;"
2963         data-bind="visible: m_handlerLayout.m_customLoader()">
2964        <span class="nav-progress-bar"></span>
2965        <span class="seo-hidden">تحميل</span>
2966    </div>
2967    <!-- Google Tag Manager -->
2968<script>
2969    //we need it for GTMManager
2970    doLoadScript(function() {
2971        doSetThirdParty(window.dataLayer);
2972    });
2973</script>
2973
2974<!-- End Google Tag Manager -->
2975<!-- Google Tag Manager (noscript) -->
vendor: 68 bytes, lines 2975-2976
2975
2976<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
2976GTM-PTJJCWLL
vendor: 83 bytes, line 2976
2976" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
2977<!-- End Google Tag Manager (noscript) -->
2978
2979
2980
2981<noscript>
2982    <img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=602667531455664&ev=PageView&noscript=1" />
2983</noscript>
2984<!-- End Meta Pixel Code -->
2985    <svg  id="8dfd9ecb-4c59-4082-9d62-10717474add2.svg" style="display: none;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1124.14 1256.39">
2986  <path class="cls-1" d="M699.62,1113.02h0c-20.06,44.48-33.32,92.75-38.4,143.37l424.51-90.24c20.06-44.47,33.31-92.75,38.4-143.37l-424.51,90.24Z"></path>
2987  <path class="cls-1" d="M1085.73,895.8c20.06-44.47,33.32-92.75,38.4-143.37l-330.68,70.33v-135.2l292.27-62.11c20.06-44.47,33.32-92.75,38.4-143.37l-330.68,70.27V66.13c-50.67,28.45-95.67,66.32-132.25,110.99v403.35l-132.25,28.11V0c-50.67,28.44-95.67,66.32-132.25,110.99v525.69l-295.91,62.88c-20.06,44.47-33.33,92.75-38.42,143.37l334.33-71.05v170.26l-358.3,76.14c-20.06,44.47-33.32,92.75-38.4,143.37l375.04-79.7c30.53-6.35,56.77-24.4,73.83-49.24l68.78-101.97v-.02c7.14-10.55,11.3-23.27,11.3-36.97v-149.98l132.25-28.11v270.4l424.53-90.28Z"></path>
2988</svg>
2989
2990
2991    
2992<script type="application/javascript">
2993    // What is left here is what is genuinely PER-REQUEST. m_jsonTranslate, jsonListCategory,
2994    // jsonListCompany and jsonListCountry have all moved to /InitData.js (HostController), because
2995    // none of them varies by anything but language: inlining them meant re-sending ~280 KB, the
2996    // category tree alone 270 KB of a 784 KB document, on every navigation and cached by nothing.
2997    // _LayoutScript requests that file first, ahead of the bundle, and the ready queue will not run a
2998    // callback until it has landed.
2999    //
3000    // Property writes onto GlobalSettingTranslateEnum. This one stays: it is resolved from the
3001    // request's companyID header, so it is not the same answer for two visitors on one deployment.
3002    // The body has to stay unevaluated until doSetEnumManager calls it -- GlobalSettingTranslateEnum
3003    // comes from /InitData.js along with the other 110 enums, and does not exist at this point in
3004    // the parse. (It was a script.min.js symbol until the enums moved; same answer either way.)
3005    function doApplySettingByCompany() {
3006        GlobalSettingTranslateEnum.PathCategoryPicture = "https://cdn.brandfull.com/Content/category/";
3007GlobalSettingTranslateEnum.PathObjectTypePicture = "https://cdn.brandfull.com/Content/objecttype/";
3008GlobalSettingTranslateEnum.PathObjectPicture = "https://cdn.brandfull.com/Content/object/";
3009GlobalSettingTranslateEnum.PathPaymentMethodPicture = "https://cdn.brandfull.com/Content/paymentMethod/";
3010GlobalSettingTranslateEnum.PathTrackerPicture = "https://cdn.brandfull.com/Content/tracker/";
3011GlobalSettingTranslateEnum.PathShipmentMethodPicture = "https://cdn.brandfull.com/Content/shipmentMethod/";
3012GlobalSettingTranslateEnum.PathCountryPicture = "https://cdn.brandfull.com/Content/country/";
3013GlobalSettingTranslateEnum.BaseUrlAPI = "https://brandfullsapi.azurewebsites.net";
3014GlobalSettingTranslateEnum.BaseUrl = "https://brandfull.com";
3015GlobalSettingTranslateEnum.Take = "8";
3016GlobalSettingTranslateEnum.CdnUrl = "https://cdn.brandfull.com";
3017GlobalSettingTranslateEnum.RedirectUrlPaymentWeb = "https://brandfull.com/Invoice/Edit";
3018GlobalSettingTranslateEnum.PathCompanyPicture = "https://cdn.brandfull.com/Content/company/";
3019GlobalSettingTranslateEnum.TicketLifeTime = "";
3020GlobalSettingTranslateEnum.AppName = "Brandfull";
3021GlobalSettingTranslateEnum.PathSlidePicture = "https://cdn.brandfull.com/Content/slide/";
3022GlobalSettingTranslateEnum.TakeObjectShop = "20";
3023GlobalSettingTranslateEnum.PathReplayPicture = "https://cdn.brandfull.com/Content/replay/";
3024GlobalSettingTranslateEnum.MessageServiceStatus = "true";
3025GlobalSettingTranslateEnum.SmartPricingServiceStatus = "";
3026GlobalSettingTranslateEnum.PathChatPicture = "https://cdn.brandfull.com/Content/chat/";
3027GlobalSettingTranslateEnum.PathDetailPicture = "https://cdn.brandfull.com/Content/detail/";
3028GlobalSettingTranslateEnum.PathColorPicture = "https://cdn.brandfull.com/Content/color/";
3029GlobalSettingTranslateEnum.LimitAddCartQuantity = "";
3030GlobalSettingTranslateEnum.MaketPlaceServiceStatus = "true";
3031GlobalSettingTranslateEnum.PathDivPicture = "https://cdn.brandfull.com/Content/divTemplate/";
3032GlobalSettingTranslateEnum.PathProfilePicture = "https://cdn.brandfull.com/Content/profile/";
3033GlobalSettingTranslateEnum.PathMessagePicture = "https://cdn.brandfull.com/Content/message/";
3034GlobalSettingTranslateEnum.PathSurveyPicture = "https://cdn.brandfull.com/Content/survey/";
3035GlobalSettingTranslateEnum.PathInvoiceDetailStatusPicture = "https://cdn.brandfull.com/Content/invoiceDetailStatus/";
3036
3037    }
3038</script>
3038
3039
3040
3041
3042<script id="Template_Empty" type="text/html"></script>
3042
3043    
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056<script id="Template_ItemComponent_ObjectDefault" type="text/html"><div class="card product-card shadow-none" data-bind="class: $data.mode"><!--ko if :  $data._listCategoryTop().length != 0 --><div class="badge p-0 d-flex flex-column gap-1"><!-- ko foreach: $data._listCategoryTop --><a class="bg-danger rounded-2 px-1 font-size-10" href="#" enable-href="false" data-bind="
3057                            html: doGenerateLabel($data._label()),
3058                            style:{'background-color': doCheckIsLink($data._label())? 'transparent' : $data._colorBackgroundHex(), 'color': $data._colorLabelHex()},
3059                                        attr:{href: doGetLinkCategory($data), 'data-divID': $parent.divID }"></a><!-- /ko --></div><!-- /ko --><!--ko if : $data._deliveryType() == DeliveryTypeEnum.Wanted --><div class="position-sticky overflow-hidden " ><a class="card-img-top d-block h-100 overflow-hidden" href="javascript: void(0)"  aria-label="product" enable-href="false" data-bind="css:{'card-img-bottom': $data.mode != ''}"><img loading="lazy" class="rounded" style="max-height: 100%; height: 100%; object-fit: cover;" data-bind="attr:{ title: $data._name, src: doGetDefaultPictureByObject($data, $data.pictureSize), loading: $data.isAboveFold ? 'eager' : 'lazy', fetchpriority: $data.isLcp ? 'high' : null}" alt="Product"></a></div><div class="card-body p-0" data-bind="css:{'mb-4': ($data.mode =='OnePicture' && m_handlerLayout.m_isViewMobile() == true)}"><a class="elide mb-1" href="javascript: void(0)"  aria-label="stock" name="stock" enable-href="false" data-bind="text: $data._name"></a><p  data-bind="text: $data._description"></p><!--ko if :  $data._listCategoryBottom().length != 0 --><div class="d-flex flex-column"><!-- ko foreach: $data._listCategoryBottom --><a class="font-size-10 elide w-100" href="#"   aria-label="category" name="category" enable-href="false" data-bind="
3060                                html: doGenerateLabel($data._label()),
3061                                style:{'background-color': doCheckIsLink($data._label())? 'transparent' : $data._colorBackgroundHex(), 'color': $data._colorLabelHex()},
3062                                        attr:{href: doGetLinkCategory($data) , 'data-divID': $parent.divID}"></a><!-- /ko --></div><!-- /ko --></div><!-- /ko --><!--ko if : $data._deliveryType() != DeliveryTypeEnum.Wanted --><button class="btn-wishlist btn-sm " type="button" title="أنا أحب" data-bind="style: { color: $data._likeCount()!=0 ? 'red' : '' }, click: m_handlerLayout.doSaveLike.bind(m_handlerLayout, $data)"><i class="fs-6" data-bind="class: $data._hasLike() ? 'ci-heart-filled ':'ci-heart', css:{'hasLike':$data._hasLike()==true}, "></i></button><div class="position-sticky overflow-hidden" ><a class="card-img-top d-block h-100 overflow-hidden" href="#"  aria-label="product" enable-href="false" data-bind="css:{'card-img-bottom': $data.mode != ''}, attr:{href: doGetLinkObject($data), 'data-divID':$data.divID}"><img loading="lazy" class="h-100" data-bind="attr:{ title: $data._name, src: doGetDefaultPictureByObject($data, $data.pictureSize), loading: $data.isAboveFold ? 'eager' : 'lazy', fetchpriority: $data.isLcp ? 'high' : null}" alt="Product"></a><div class="d-flex w-100 mb-n3 zindex-10" style=" position: absolute; bottom: 42px;"><!--ko if : $data._objectStockModel._enableBidding() &&  $data._objectStockModel._enableTimerBidding() --><div class="countdown w-100 mb-0 rounded-bottom px-1 justify-content-start align-items-baseline" style="height:32px;" data-bind="attr:{id: doGetTimerID($data._objectStockModel, 'UI_timerBidding')}, childrenComplete : doJsCountDown(doGetTimerID($data._objectStockModel, 'UI_timerBidding'), true, $data._objectStockModel)"><div class="countdown-label w-100 text-light m-0 font-size-10" style="height:10px" ></div><div class="countdown-days w-25 countdown-value text-light bold m-0 font-size-16" ></div><div class="countdown-hours w-25 countdown-value text-light bold m-0 font-size-16"></div><div class="countdown-minutes w-25 countdown-value text-light bold m-0 font-size-16"></div><div class="countdown-seconds w-25 countdown-value text-light bold m-0 font-size-16"></div><div class="hide countdown-time w-100 countdown-value text-light m-0 font-size-16"></div></div><!-- /ko --></div><div class="fs-sm w-100 px-1 d-flex align-items-center justify-content-between" style="height: 26p
3062x"><div class="float-start mt-1" data-bind="foreach: $data._listColorSimiler"><a href="#"  aria-label="color" name="color" class="colorSimiler" enable-href="false" data-bind="title: doGetDefaultNameColor($data), attr:{href: doGetLinkObject($data), 'data-divID':$parent.divID, 'id':'UI_sc_' +$parent._code()+'_'+$data._code()}"><label class="form-option-label rounded-circle" data-bind="attr:{'for':'UI_sc_' +$parent._code()+'_'+$data._code()}"><span class="form-option-color rounded-circle" data-bind="title: $data._objectName(), style:{'background': '-webkit-linear-gradient(45deg, ' + $data._hexName() + ' 60%, ' + doGetDefaultHexColor($data) + ' 40%)'}"></span></label></a></div><!--ko if : doCheckUUID($data._sizeModel._id()) --><a href="#"  aria-label="size" name="size" class="float-end" enable-href="true" data-bind="text: $data._sizeModel._name(), attr:{href: doGetURL('Shop/search/') + $data._sizeModel._name(), 'data-divID':$data.divID}"></a><!-- /ko --></div></div><div class="card-body p-0" data-bind="css:{'mb-4': ($data.mode =='OnePicture' && m_handlerLayout.m_isViewMobile() == true)}"><div class="product-title fs-sm"><div class="brandRow"><!--ko with : doGetCategoryByType($data, CategoryTypeEnum.Brand) --><a class="brandRow-name fw-semibold text-decoration-none" href="#" aria-label="brand" name="brand" enable-href="false"
3063                       data-bind="text: $data._name, attr:{ href: doGetLinkCategory($data), 'data-divID': $parent.divID }"></a><!-- /ko --><!--ko if : $data._sellMode() != SellModeEnum.SellWithOtherOnly && $data._objectStockModel._priceSale() != 0 && $data._objectStockModel._objectStockStatus() != ObjectStockStatusEnum.OutStock && $data._objectStockModel._objectStockStatus() != ObjectStockStatusEnum.Solded --><a class="btn-cart-inline pointer" href="#" name="addcart" aria-label="buy" title="buy" data-bind="click: m_handlerSession.doAddCart.bind(m_handlerSession, $data, 1, null, null, $data.divID)"><i class="ci-card-bag flipAuto"></i></a><!-- /ko --></div><a class="elide mb-1" href="#" aria-label="product" name="product" enable-href="false" data-bind="attr:{href: doGetLinkObject($data), 'data-divID':$data.divID}"><h2 class="font-size-14" data-bind="text: $data._name"></h2></a><div class="d-flex justify-content-between text-accent rounded-1"  style="min-height: 2.5rem;"><!--ko if : $data._objectStockModel._priceSale() !=0 --><div class="text-accent sale w-100" style="display: flex;flex-wrap: wrap; align-items: baseline; column-gap: .4rem;" data-bind="html: m_handlerLayout.doHtmlPriceByCurrency($data, false, 0, true)"></div><!-- /ko --><!--ko if : $data._objectStockModel._objectStockStatus() == ObjectStockStatusEnum.Solded --><a href="#"   aria-label="Solded" name="Solded" class="btn btn-sm px-2 py-1  pointer bg-black text-white font-size-10" style="height: fit-content;"  title="Re-Buy" data-bind="attr:{href: doGetLinkObject($data), 'data-divID':$data.divID}">
3064                                مباع
3065                            </a><!-- /ko --><!--ko if : $data._objectStockModel._objectStockStatus() == ObjectStockStatusEnum.OutStock --><a href="#"   aria-label="OutStock" name="OutStock" class="btn btn-sm px-2 py-1  pointer bg-danger text-white font-size-10" style="height: fit-content;"  title="Re-Buy" data-bind="attr:{href: doGetLinkObject($data), 'data-divID':$data.divID}">
3066                                لا يوجد مخزون
3067                            </a><!-- /ko --></div></div><!--ko if :  $data._listCategoryBottom().length != 0 --><div class="d-flex flex-column"><!-- ko foreach: $data._listCategoryBottom --><a class="font-size-10 elide w-100" href="#"   aria-label="category" name="category" enable-href="false" data-bind="
3068                                html: doGenerateLabel($data._label()),
3069                                style:{'background-color': doCheckIsLink($data._label())? 'transparent' : $data._colorBackgroundHex(), 'color': $data._colorLabelHex()},
3070                                        attr:{href: doGetLinkCategory($data), 'data-divID':$parent.divID }"></a><!-- /ko --></div><!-- /ko --></div><!-- /ko --></div></script>
3070<script id="Template_ItemComponent_AdvanceAuto" type="text/html"><!--ko if : doGetSlideTitleVisible($data) || doGetSlideDescriptionVisible($data) || doGetSlideButtonVisible($data)--><div class="AdvanceAuto" data-bind="class: doGetSlideDescriptionVisible($data) ? '':'mb-3'"><div class="AdvanceAuto_lead"><div class="bf-sectionHead"><span class="h4" data-bind="visible: doGetSlideTitleVisible($data), text: $data._title"></span></div><p class="AdvanceAuto_note text-muted font-size-12" data-bind="visible: doGetSlideDescriptionVisible($data), html: $data._description, style:{color: $data._descriptionHex}"></p></div><!--ko if : doGetSlideButtonVisible($data)--><a class="bf-viewAll" href="#" aria-label="subdiv" name="subdiv" enable-href="true" data-bind="attr:{ href: doGetURL($data._link()), 'aria-label':$data._title}"><span data-bind="text: $data._button"></span><i data-bind="class: doGetCulture() =='en'? 'ci-arrow-right':'ci-arrow-left' "></i></a><!-- /ko --></div><!-- /ko --></script>
3070
3071<style>
3072        .product-card.shadow-none {
3073            box-shadow: unset !important;
3074            background-color: transparent;
3075        }
3076
3077        [lang="en"] .magicFlex a:last-of-type {
3078            margin-left: auto !important;
3079        }
3080
3081        [lang="ar"] .magicFlex a:last-of-type {
3082            margin-right: auto !important;
3083        }
3084
3085        .BigPicture , .BigPicture .position-sticky{
3086            height: 100%;
3087        }
3088
3089.brandRow {
3090            display: flex;
3091            align-items: center;
3092            gap: .35rem;
3093            margin-bottom: .25rem;
3094            min-height: 1.75rem;
3095        }
3096
3097            .brandRow-name {
3098                font-size: 11px;
3099                color: #444;
3100                letter-spacing: .3px;
3101                flex: 0 1 auto;
3102                min-width: 0;
3103                overflow: hidden;
3104                text-overflow: ellipsis;
3105                white-space: nowrap;
3106            }
3107
3108        @media screen and (max-width:992px) {
3109
3110            .BigPicture , .OnePicture{
3111                flex-direction: row !important;
3112                align-items: flex-end !important;
3113                padding-bottom: 0px !important;
3114            }
3115
3116            .BigPicture .position-sticky, .OnePicture .position-sticky {
3117                width: 45% !important;
3118                height: 100% !important;
3119                padding-right: 10px !important;
3120                padding-left: 10px !important;
3121            }
3122
3123            .BigPicture .position-sticky .bg-opacity-75, .OnePicture .position-sticky .bg-opacity-75 {
3124                width: calc(100% - 20px) !important;
3125            }
3126
3127           .BigPicture .card-body, .OnePicture .card-body {
3128                width: 50% !important;
3129            }
3130        }
3131</style>
3132<style>
3133        .AdvanceAuto {
3134            position: relative;
3135            margin-top: .5rem;
3136        }
3137
3138        .AdvanceAuto .AdvanceAuto_lead {
3139            width: 100%;
3140        }
3141
3142        .AdvanceAuto .AdvanceAuto_note {
3143            margin: -.75rem 0 0;
3144            text-align: center;
3145        }
3146
3147@media screen and (min-width: 768px) {
3148            .AdvanceAuto .bf-viewAll {
3149                position: absolute;
3150                top: 0;
3151                inset-inline-end: 0;
3152            }
3153        }
3154
3155        @media screen and (max-width: 767px) {
3156            .AdvanceAuto {
3157                display: flex;
3158                flex-direction: column;
3159                align-items: center;
3160            }
3161        }
3162</style>
3163
3164
3165
3166
3167</body>
3168</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.