Help
RSS
API
Feed
Maltego
Contact
Domain > avdanse.no
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2025-09-24
13.32.179.26
(
ClassC
)
2026-02-21
3.163.24.39
(
ClassC
)
Port 80
HTTP/1.1 301 Moved PermanentlyServer: CloudFrontDate: Sat, 21 Feb 2026 04:51:58 GMTContent-Type: text/htmlContent-Length: 167Connection: keep-aliveLocation: https://avdanse.no/X-Cache: Redirect from cloudfrontVia: 1.1 13367f2265e830e1595737bd8f2eab92.cloudfront.net (CloudFront)X-Amz-Cf-Pop: HIO52-P2X-Amz-Cf-Id: nLzEf1_O3B9ku9PCgP2shNf7BAxt4ZPBJq3qIhqmJuBB8cE-3WNjaw html>head>title>301 Moved Permanently/title>/head>body>center>h1>301 Moved Permanently/h1>/center>hr>center>CloudFront/center>/body>/html>
Port 443
HTTP/1.1 200 OKContent-Type: text/htmlContent-Length: 64741Connection: keep-alivex-amz-replication-status: REPLICALast-Modified: Mon, 16 Feb 2026 22:18:38 GMTx-amz-server-side-encryption: AES256x-amz-version-id: tAxNsQ4432hwE.aaILHoBeBkpJSixLVqAccept-Ranges: bytesServer: AmazonS3Date: Sat, 21 Feb 2026 04:51:59 GMTETag: b3b5dc54ea81c927a560de50bf75d0b7X-Cache: RefreshHit from cloudfrontVia: 1.1 a235f5b7b15b9c8025af96fb0081dd58.cloudfront.net (CloudFront)X-Amz-Cf-Pop: HIO52-P2X-Amz-Cf-Id: dscT65a6DInywnPLA7KWkEuNlUStkPT9CUQJA9YoswY_yxUntFZp0A !DOCTYPE html>html langen>head> meta charsetutf-8> meta contentwidthdevice-width, initial-scale1.0 nameviewport> title>Abhinaya Varshini Dansestudio - Bharatanatyam Dance Classes in Norway/title> meta namedescription contentLearn professional Bharatanatyam dance classes in Norway. Expert instruction for beginners and advanced students. Authentic Indian classical dance training with Smt. Amirthavarshini Raju.> meta namekeywords contentBharatanatyam classes Norway, Indian classical dance, dance instruction Norway, Bharatanatyam training, dance classes Oslo, dance classes Nesbru> meta nameauthor contentAbhinaya Varshini Dansestudio> meta namelanguage contentEnglish> !-- Google Site Verification --> meta namegoogle-site-verification contentqb5r5CnhhDO-nyPKEOr2roZ_Pyir51B-n3vppWyExv0 /> !-- Canonical Tag --> link relcanonical hrefhttps://avdanse.no> !-- Open Graph Tags for Social Sharing --> meta propertyog:title contentAbhinaya Varshini Dansestudio - Bharatanatyam Dance Classes in Norway> meta propertyog:description contentLearn professional Bharatanatyam dance from experienced instructors. Classes for beginners and experts in Norway.> meta propertyog:image contenthttps://avdanse.no/assets/img/avds-logo-new.png> meta propertyog:url contenthttps://avdanse.no> meta propertyog:type contentwebsite> meta propertyog:site_name contentAbhinaya Varshini Dansestudio> !-- Twitter Card Tags --> meta nametwitter:card contentsummary_large_image> meta nametwitter:title contentAbhinaya Varshini Dansestudio - Bharatanatyam Classes> meta nametwitter:description contentProfessional Indian classical dance instruction in Norway> meta nametwitter:image contenthttps://avdanse.no/assets/img/avds-logo-new.png> !-- Structured Data (JSON-LD) --> script typeapplication/ld+json> { @context: https://schema.org, @type: Organization, name: Abhinaya Varshini Dansestudio, alternateName: Abhinaya Varshini Dansestudio, AV Danse, url: https://avdanse.no, logo: https://avdanse.no/assets/img/avds-logo-new.png, description: Professional Bharatanatyam dance classes in Oslo, Norway. Expert instruction for kids and adults by Smt. Amirthavarshini Raju., sameAs: https://www.facebook.com/profile.php?id61550763076507, https://www.instagram.com/avdans_natyam, https://maps.app.goo.gl/bY3q8oLQM8Z136Wy9 , address: { @type: PostalAddress, streetAddress: Holmen Center, Vogellund 6, addressLocality: Nesbru, addressRegion: Viken, postalCode: 1394, addressCountry: NO }, contactPoint: { @type: ContactPoint, telephone: +47-48688908, contactType: Customer Service, email: amirtha.r@gmail.com } } /script> !-- LocalBusiness Schema --> script typeapplication/ld+json> { @context: https://schema.org, @type: DanceSchool, name: Abhinaya Varshini Dansestudio, alternateName: Abhinaya Varshini Dansestudio, AV Danse, Bharatanatyam Oslo, image: https://avdanse.no/assets/img/avds-logo-new.png, description: Professional Bharatanatyam dance school in Oslo, Norway. Indian classical dance classes for kids and adults. Expert instruction by Smt. Amirthavarshini Raju., @id: https://avdanse.no, url: https://avdanse.no, telephone: +47-48688908, email: amirtha.r@gmail.com, priceRange: $$, address: { @type: PostalAddress, streetAddress: Holmen Center, Vogellund 6, addressLocality: Nesbru, addressRegion: Viken, postalCode: 1394, addressCountry: NO }, geo: { @type: GeoCoordinates, latitude: 59.8543247, longitude: 10.4886007 }, hasMap: https://maps.app.goo.gl/bY3q8oLQM8Z136Wy9, sameAs: https://www.facebook.com/profile.php?id61550763076507, https://www.instagram.com/avdans_natyam, https://maps.app.goo.gl/bY3q8oLQM8Z136Wy9 , areaServed: Oslo, Nesbru, Asker, Bærum, Sandvika, Norway, serviceType: Bharatanatyam dance classes, Indian classical dance, Dance lessons for kids, Dance lessons for adults, founder: { @type: Person, name: Smt. Amirthavarshini Raju }, openingHoursSpecification: { @type: OpeningHoursSpecification, dayOfWeek: Saturday, opens: 16:30, closes: 17:30 }, { @type: OpeningHoursSpecification, dayOfWeek: Monday, opens: 17:30, closes: 19:00 } , potentialAction: { @type: ReserveAction, target: { @type: EntryPoint, urlTemplate: https://bit.ly/avdsenroll, actionPlatform: http://schema.org/DesktopWebPlatform, http://schema.org/MobileWebPlatform }, name: Enroll in Classes } } /script> !-- Course Schema --> script typeapplication/ld+json> { @context: https://schema.org, @type: Course, name: Bharatanatyam Dance Classes, description: Professional Bharatanatyam dance instruction for beginners and advanced students, provider: { @type: Organization, name: Abhinaya Varshini Dansestudio, url: https://avdanse.no }, instructor: { @type: Person, name: Smt. Amirthavarshini Raju, url: https://avdanse.no }, courseCode: AVDS-BHA-001, educationLevel: Beginner to Advanced, offers: { @type: Offer, category: Dance Classes, url: https://bit.ly/avdsenroll } } /script> !-- Favicons --> link hrefassets/img/avds-logo-new.png relicon> link hrefassets/img/avds-logo-new.png relapple-touch-icon> !-- Fonts --> !-- Google Fonts loaded directly for simplicity --> !-- Vendor CSS Files --> link hrefassets/vendor/bootstrap/css/bootstrap.min.css relstylesheet> link hrefassets/vendor/bootstrap-icons/bootstrap-icons.css relstylesheet> link hrefassets/vendor/aos/aos.css relstylesheet> link hrefassets/vendor/glightbox/css/glightbox.min.css relstylesheet> link hrefassets/vendor/swiper/swiper-bundle.min.css relstylesheet> !-- Main CSS File --> link hrefassets/css/main.min.css relstylesheet> style> /* Fix scroll-to-top button icon visibility */ .scroll-top { background-color: #f4ba55 !important; } .scroll-top i { color: #ffffff !important; font-size: 28px !important; font-weight: bold; } .scroll-top:hover { background-color: #e5ab46 !important; transform: translateY(-3px); box-shadow: 0 4px 12px rgba(244, 186, 85, 0.4); } /* Language Switcher Styling - Compact & Elegant */ .language-switcher { position: fixed; top: 17px; /* Moved down 1px */ right: 130px; /* Left of the login button */ z-index: 1001; display: inline-flex; align-items: center; gap: 4px; background: rgba(39, 40, 41, 0.8); backdrop-filter: blur(10px); padding: 4px 6px; border-radius: 20px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); } .language-switcher button { background: transparent; border: none; color: rgba(255, 255, 255, 0.7); padding: 4px 10px; border-radius: 16px; cursor: pointer; font-size: 11px; font-weight: 600; transition: all 0.3s ease; text-transform: uppercase; letter-spacing: 0.5px; } .language-switcher button:hover { background: rgba(244, 186, 85, 0.2); color: #f4ba55; } .language-switcher button.active { background: #f4ba55; color: #272829; box-shadow: 0 2px 4px rgba(244, 186, 85, 0.3); } /* Mobile: Layout adjustments */ @media (max-width: 768px) { /* Force hamburger menu to stay below buttons */ .header-toggle { z-index: 999 !important; /* Lower than buttons */ } .header { z-index: 998 !important; /* Lower than buttons */ } /* Language toggle - position adjusted for mobile (moves when logo is scrolled) */ .language-switcher { top: 20px !important; right: auto !important; left: 95px !important; /* After scrolled logo */ padding: 4px 6px; z-index: 1010 !important; display: inline-flex !important; align-items: center !important; } .language-switcher button { padding: 4px 10px; font-size: 11px; font-weight: 600; line-height: 1.2 !important; } /* Login button - RIGHT SIDE, aligned with hamburger menu */ #authButtonContainer { top: 18px !important; left: auto !important; right: 70px !important; /* Before hamburger menu */ z-index: 1010 !important; display: inline-flex !important; align-items: center !important; } /* Login button styling */ .login-button { padding: 6px 16px !important; font-size: 13px !important; font-weight: 600; line-height: 1.2 !important; display: inline-flex !important; align-items: center !important; gap: 6px !important; border: none !important; /* Remove border */ height: 40px !important; /* Match hamburger height */ } .login-button i { font-size: 15px !important; } /* Hero section spacing */ .hero.section { min-height: 100vh !important; position: relative !important; padding-top: 90px !important; } /* Hero container spacing */ .hero .container { position: relative !important; z-index: 3 !important; } } /* Auth button container - desktop positioning */ #authButtonContainer { position: fixed; top: 16px; right: 16px; z-index: 1002; } /* Login button styling */ .login-button { border-color: #f4ba55 !important; color: #f4ba55 !important; font-weight: 600; padding: 8px 20px; border-radius: 6px; text-decoration: none; transition: all 0.3s ease; display: inline-flex; align-items: center; gap: 8px; font-size: 14px; } .login-button:hover { background-color: #f4ba55; color: #272829 !important; transform: translateY(-2px); box-shadow: 0 5px 15px rgba(244, 186, 85, 0.3); } .login-button i { font-size: 16px; } /* Logout button styling */ .logout-button { background: rgba(231, 76, 60, 0.1); color: #e74c3c !important; font-weight: 600; padding: 8px 20px; border-radius: 6px; text-decoration: none; transition: all 0.3s ease; display: inline-flex; align-items: center; gap: 8px; font-size: 14px; cursor: pointer; border: none; } .logout-button:hover { background-color: #e74c3c; color: white !important; transform: translateY(-2px); box-shadow: 0 5px 15px rgba(231, 76, 60, 0.3); } .logout-button i { font-size: 16px; } /* */ /* Animated Hero Logo */ /* */ .animated-logo-wrapper { position: fixed; top: 15%; left: 50%; width: 370px; /* Match logo width for translateX(-50%) to work */ transform: translateX(-50%); z-index: 1000; transition: all 0.6s cubic-bezier(0.4, 0, 0.2, 1); } .animated-logo-wrapper .animated-logo { width: 100%; height: auto; filter: drop-shadow(0 0 20px rgba(244, 186, 85, 0.4)); transition: all 0.6s cubic-bezier(0.4, 0, 0.2, 1); } /* Scrolled state - logo flies to top-left */ .animated-logo-wrapper.scrolled { top: 15px; left: 15px; width: 100px; transform: translateX(0); } .animated-logo-wrapper.scrolled .animated-logo { filter: none; } /* Mobile responsive - no sidebar, so true center */ @media (max-width: 768px) { .animated-logo-wrapper { top: 12%; left: 50%; width: 270px; } .animated-logo-wrapper.scrolled { top: 12px; left: 8px; width: 80px; } } /* Hero content padding to account for logo above */ .hero .container { padding-top: 300px; /* Space for the large centered logo */ } @media (max-width: 768px) { .hero .container { padding-top: 240px; /* Less space needed for smaller mobile logo */ } } /* Hero Typography - balanced with animated logo */ .hero-title { font-size: 1.9rem; line-height: 1.3; margin-bottom: 2rem; } .hero-subtitle { font-size: 1.6rem; line-height: 1.4; } /* Tablet adjustments */ @media (max-width: 992px) { .hero-title { font-size: 1.5rem; } .hero-subtitle { font-size: 1.35rem; } } /* Mobile typography */ @media (max-width: 768px) { .hero-title { font-size: 1.2rem; } .hero-subtitle { font-size: 1.1rem; } } /* Small mobile */ @media (max-width: 480px) { .hero-title { font-size: 1.05rem; } .hero-subtitle { font-size: 1.1rem; } } /* */ /* Dancing Wave Gallery */ /* */ .wave-gallery { display: flex; flex-wrap: wrap; gap: 20px; padding: 40px 20px; align-items: flex-end; justify-content: center; } .wave-gallery a { position: relative; width: 180px; height: 250px; border-radius: 100px 100px 12px 12px; overflow: hidden; transition: all 0.4s ease; animation: wave 3s ease-in-out infinite; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3); } .wave-gallery a:nth-child(1) { animation-delay: 0s; } .wave-gallery a:nth-child(2) { animation-delay: 0.2s; } .wave-gallery a:nth-child(3) { animation-delay: 0.4s; } .wave-gallery a:nth-child(4) { animation-delay: 0.6s; } .wave-gallery a:nth-child(5) { animation-delay: 0.8s; } .wave-gallery a:nth-child(6) { animation-delay: 1s; } .wave-gallery a:nth-child(7) { animation-delay: 1.2s; } .wave-gallery a:nth-child(8) { animation-delay: 1.4s; } .wave-gallery a:nth-child(9) { animation-delay: 0.1s; } .wave-gallery a:nth-child(10) { animation-delay: 0.3s; } .wave-gallery a:nth-child(11) { animation-delay: 0.5s; } .wave-gallery a:nth-child(12) { animation-delay: 0.7s; } .wave-gallery a:nth-child(13) { animation-delay: 0.9s; } .wave-gallery a:nth-child(14) { animation-delay: 1.1s; } .wave-gallery a:nth-child(15) { animation-delay: 1.3s; } .wave-gallery a:nth-child(16) { animation-delay: 1.5s; } @keyframes wave { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-20px); } } .wave-gallery a:hover { animation-play-state: paused; transform: translateY(-30px) scale(1.1); box-shadow: 0 20px 50px rgba(244, 186, 85, 0.4); border-radius: 16px; z-index: 10; } .wave-gallery img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s ease; } .wave-gallery a:hover img { transform: scale(1.1); } .wave-gallery .wave-caption { position: absolute; bottom: 0; left: 0; right: 0; padding: 15px 10px; background: linear-gradient(transparent, rgba(0, 0, 0, 0.9)); color: #fff; text-align: center; opacity: 0; transform: translateY(10px); transition: all 0.4s ease; border-radius: 0 0 12px 12px; } .wave-gallery .wave-caption h4 { color: #f4ba55; font-size: 0.9rem; margin: 0 0 3px 0; font-weight: 600; } .wave-gallery .wave-caption p { color: #BEB5A9; font-size: 0.75rem; margin: 0; } .wave-gallery a:hover .wave-caption { opacity: 1; transform: translateY(0); } /* Responsive adjustments for wave gallery */ @media (max-width: 768px) { .wave-gallery a { width: 140px; height: 200px; } .wave-gallery { gap: 15px; padding: 30px 10px; } } @media (max-width: 480px) { .wave-gallery a { width: 120px; height: 170px; } .wave-gallery .wave-caption h4 { font-size: 0.75rem; } .wave-gallery .wave-caption p { font-size: 0.65rem; } } /style> !-- Supabase JS UMD Bundle (creates global supabase object with createClient) --> script srchttps://cdn.jsdelivr.net/npm/@supabase/supabase-js@2.39.0/dist/umd/supabase.js>/script> !-- * Template Name: MyResume * Template URL: https://bootstrapmade.com/free-html-bootstrap-template-my-resume/ * Updated: Jun 29 2024 with Bootstrap v5.3.3 * Author: BootstrapMade.com * License: https://bootstrapmade.com/license/ -->/head>body classindex-page> header idheader classheader d-flex flex-column justify-content-center> i classheader-toggle d-xl-none bi bi-list>/i> nav idnavmenu classnavmenu> ul> li>a href#hero classactive>i classbi bi-house navicon>/i>span data-i18nnav.home>Home/span>/a>/li> li>a href#about>i classbi bi-person navicon>/i>span data-i18nnav.about>About/span>/a>/li> li>a href#portfolio>i classbi bi-images navicon>/i>span data-i18nnav.gallery>Gallery/span>/a>/li> !-- Portfolio renamed to Gallery--> li>a href#services>i classbi bi-hdd-stack navicon>/i>span data-i18nnav.services>Services/span>/a>/li> li>a href#contact>i classbi bi-envelope navicon>/i>span data-i18nnav.contact>Contact/span>/a>/li> li idsignupNavItem> a hrefauth/signup.html>i classbi bi-file-earmark-text navicon>/i>span data-i18nnav.signup>Signup/span>/a> /li> li idprofileNavItem styledisplay: none;> a hrefauth/dashboard.html>i classbi bi-person-circle navicon>/i>span idprofileLinkText data-i18nnav.myspace>My Space/span>/a> /li> /ul> /nav> /header> main classmain> !-- Hero Section --> section idhero classhero section light-background> !-- Animated Logo - starts centered, flies to top-left on scroll --> div idanimated-logo classanimated-logo-wrapper> a hrefindex.html> img srcassets/img/avds-logo-new.png altAbhinaya Varshini Dansestudio Logo classanimated-logo> /a> /div>!-- Login/Logout button positioned by custom CSS -->div idauthButtonContainer> a hrefauth/login.html classlogin-button idtopLoginButton> i classbi bi-box-arrow-in-right>/i> span data-i18nnav.login>Login/span> /a> button classlogout-button idtopLogoutButton styledisplay: none;> i classbi bi-box-arrow-right>/i> span data-i18nnav.logout>Logout/span> /button>/div>!-- Language Switcher -->div classlanguage-switcher> button idlangEN classactive>EN/button> button idlangNO>NO/button>/div>!-- Main content container -->div classcontainer position-relative data-aoszoom-out> div classrow justify-content-center> !-- Content section --> div classcol-lg-9 text-center> h1 classhero-title stylecolor: #E1D4C2;font-family:Merienda, cursive; font-weight: 600; data-i18nhero.title>Professional Bharatanatyam Dance Classes in Norway/h1> p classhero-subtitle stylecolor: #E1D4C2;font-family:Niconne; data-i18nhero.subtitle> Experience the elegance of Bharatanatyam at br> our studio where tradition blends passion. /p> div classsocial-links> a hrefhttps://www.facebook.com/profile.php?id61550763076507 target_blank relnoopener noreferrer> i stylecolor: #BEB5A9; classbi bi-facebook>/i> /a> a hrefhttps://www.instagram.com/avdans_natyam?igshMWhqejliaWJ3ZWc4dA%3D%3D&utm_sourceqr target_blank relnoopener noreferrer> i stylecolor: #BEB5A9; classbi bi-instagram>/i> /a> /div> /div> /div>/div> picture> source srcsetassets/img/Hovedimage2.webp typeimage/webp> source srcsetassets/img/Hovedimage2.png typeimage/png> img srcassets/img/Hovedimage2.png altBharatanatyam dancer performing classical Indian dance classimg-fluid diagonal-image> /picture> /section>!-- /Hero Section --> !-- About Section --> section idabout classabout section> !-- Section Title --> div classcontainer section-title data-aosfade-up> h2 data-i18nabout.title>About School/h2> p data-i18nabout.description>Abhinaya Varshini Dansestudio was established in April 2023 by Amirthavarshini Raju (Amirtha) in Norway, inspired by the legacy of her late mother, span classhighlight>Mrs. Hemamalini Raju/span>. b>Mrs. Hemamalini Raju/b> was the founder of b>Abhinaya Varshini Arts Center in Puducherry/b> and a direct disciple of the revered Tanjavur quartet masters, Shri Kittapa Pillai and Smt. Bala Namashivayam of Kalakshetra./p> /div>!-- End Section Title --> div classcontainer data-aosfade-up data-aos-delay100> div classrow gy-4 justify-content-center> div classcol-lg-4> img srcassets/img/Amirtha.jpg classimg-fluid altSmt. Amirthavarshini Raju, Bharatanatyam instructor and founder of Abhinaya Varshini Dansestudio> /div> div classcol-lg-8 content> br>br>br> h3 data-i18nabout.instructorTitle>Mrs. Amirthavarshini Raju (Bharatanatyam Instructor)/h3> p classfst-italic py-3 data-i18nabout.instructorBio> Amirtha comes from an artistic background where Bharatanatyam has been part of her legacy for 3 generations. She started learning Bharatanatyam since 5 years under her mothers guidance and performed her Arangetram at the age of 13. Since then, she has performed, choreographed and acted dance dramas. Her passion is choreographing thematic performances that imbibes the connection between divine and humanity. In addition to her experience, she also holds Masters degree in Bharatanatyam and continue to teach & choreograph Bharatanatyam with both in India and Norway. /p> a hrefhttps://bit.ly/avrresume target_blank classbtn btn-primary download data-i18nabout.viewResume>View Resume/a> !-- div classrow> div classcol-lg-6> ul> li>i classbi bi-chevron-right>/i> strong>Birthday:/strong> span>1 May 1995/span>/li> li>i classbi bi-chevron-right>/i> strong>Website:/strong> span>www.example.com/span>/li> li>i classbi bi-chevron-right>/i> strong>Phone:/strong> span>+123 456 7890/span>/li> li>i classbi bi-chevron-right>/i> strong>City:/strong> span>New York, USA/span>/li> /ul> /div> div classcol-lg-6> ul> li>i classbi bi-chevron-right>/i> strong>Age:/strong> span>30/span>/li> li>i classbi bi-chevron-right>/i> strong>Degree:/strong> span>Master/span>/li> li>i classbi bi-chevron-right>/i> strong>Email:/strong> span>email@example.com/span>/li> li>i classbi bi-chevron-right>/i> strong>Freelance:/strong> span>Available/span>/li> /ul> /div> /div> p classpy-3> Officiis eligendi itaque labore et dolorum mollitia officiis optio vero. Quisquam sunt adipisci omnis et ut. Nulla accusantium dolor incidunt officia tempore. Et eius omnis. Cupiditate ut dicta maxime officiis quidem quia. Sed et consectetur qui quia repellendus itaque neque. /p> --> /div> /div> br> div classrow gy-4 justify-content-center> div classcol-lg-4> img srcassets/img/Amma.jpg classimg-fluid altMrs. Hemamalini Raju, founder of Abhinaya Varshini Arts Center and inspiration for Abhinaya Varshini Dansestudio> /div> div classcol-lg-8 content> br>br>br> h3 data-i18nabout.inspirationTitle>Mrs. Hemamalini Raju (Divine Inspiration)/h3> p classfst-italic py-3 data-i18nabout.inspirationBio> Hemamalini Raju is the mother and Guru of Ms Amirtha Raju who comes from traditional music and dance family background. She has completed her diploma and won KALAIMANI title from Thanjavur tamizh university she also been awarded Natya Kalaratna from Dubai tamil sangham. She had trained more than 100 students. Her unique compositions are Bharathiyarin parimanal,Bhavayami Ramayanam , tamil Ashtapathi, and Krishna Leela mathuryam. She was a dedicated Sahaja Yoga practitioner and has choreographed for many spiritual scriptures and songs from various languages for international Sahaja yoga seminars. She has also trained her students for both physical and mental balance through meditation and dance. after her demise the school has been still taken up and run with same principle and guidance by her daughter and Senior students. /p> !-- div classrow> div classcol-lg-6> ul> li>i classbi bi-chevron-right>/i> strong>Birthday:/strong> span>1 May 1995/span>/li> li>i classbi bi-chevron-right>/i> strong>Website:/strong> span>www.example.com/span>/li> li>i classbi bi-chevron-right>/i> strong>Phone:/strong> span>+123 456 7890/span>/li> li>i classbi bi-chevron-right>/i> strong>City:/strong> span>New York, USA/span>/li> /ul> /div> div classcol-lg-6> ul> li>i classbi bi-chevron-right>/i> strong>Age:/strong> span>30/span>/li> li>i classbi bi-chevron-right>/i> strong>Degree:/strong> span>Master/span>/li> li>i classbi bi-chevron-right>/i> strong>Email:/strong> span>email@example.com/span>/li> li>i classbi bi-chevron-right>/i> strong>Freelance:/strong> span>Available/span>/li> /ul> /div> /div> p classpy-3> Officiis eligendi itaque labore et dolorum mollitia officiis optio vero. Quisquam sunt adipisci omnis et ut. Nulla accusantium dolor incidunt officia tempore. Et eius omnis. Cupiditate ut dicta maxime officiis quidem quia. Sed et consectetur qui quia repellendus itaque neque. /p> --> /div> /div> /div> /section>!-- /About Section --> !-- Stats Section --> !-- section idstats classstats section> div classcontainer data-aosfade-up data-aos-delay100> div classrow gy-4> div classcol-lg-3 col-md-6 d-flex flex-column align-items-center> i classbi bi-emoji-smile>/i> div classstats-item> span data-purecounter-start0 data-purecounter-end40 data-purecounter-duration1 classpurecounter>/span> p>Happy Students/p> /div> /div> End Stats Item --> !-- div classcol-lg-3 col-md-6 d-flex flex-column align-items-center> i classbi bi-journal-richtext>/i> div classstats-item> span data-purecounter-start0 data-purecounter-end7 data-purecounter-duration1 classpurecounter>/span> p>Events/p> /div> /div> End Stats Item div classcol-lg-3 col-md-6 d-flex flex-column align-items-center> i classbi bi-briefcase>/i> div classstats-item> span data-purecounter-start0 data-purecounter-end14 data-purecounter-duration1 classpurecounter>/span> p>Years of Experience/p> /div> /div>End Stats Item --> !-- div classcol-lg-3 col-md-6 d-flex flex-column align-items-center> i classbi bi-award>/i> div classstats-item> span data-purecounter-start0 data-purecounter-end15 data-purecounter-duration1 classpurecounter>/span> p>Awards/p> /div> /div>End Stats Item -->!-- /div> /div> /section>/Stats Section --> !-- Skills Section --> !-- section idskills classskills section> --> !-- Section Title --> !-- div classcontainer section-title data-aosfade-up> h2>Skills/h2> p>Necessitatibus eius consequatur ex aliquid fuga eum quidem sint consectetur velit/p> /div>End Section Title --> !-- div classcontainer data-aosfade-up data-aos-delay100> div classrow skills-content skills-animation> div classcol-lg-6> div classprogress> span classskill>span>HTML/span> i classval>100%/i>/span> div classprogress-bar-wrap> div classprogress-bar roleprogressbar aria-valuenow100 aria-valuemin0 aria-valuemax100>/div> /div> /div> End Skills Item --> !-- div classprogress> span classskill>span>CSS/span> i classval>90%/i>/span> div classprogress-bar-wrap> div classprogress-bar roleprogressbar aria-valuenow90 aria-valuemin0 aria-valuemax100>/div> /div> /div> End Skills Item --> !-- div classprogress> span classskill>span>JavaScript/span> i classval>75%/i>/span> div classprogress-bar-wrap> div classprogress-bar roleprogressbar aria-valuenow75 aria-valuemin0 aria-valuemax100>/div> /div> /div> End Skills Item --> !-- /div> div classcol-lg-6> div classprogress> span classskill>span>PHP/span> i classval>80%/i>/span> div classprogress-bar-wrap> div classprogress-bar roleprogressbar aria-valuenow80 aria-valuemin0 aria-valuemax100>/div> /div> /div>End Skills Item --> !-- div classprogress> span classskill>span>WordPress/CMS/span> i classval>90%/i>/span> div classprogress-bar-wrap> div classprogress-bar roleprogressbar aria-valuenow90 aria-valuemin0 aria-valuemax100>/div> /div> /div> End Skills Item --> !-- div classprogress> span classskill>span>Photoshop/span> i classval>55%/i>/span> div classprogress-bar-wrap> div classprogress-bar roleprogressbar aria-valuenow55 aria-valuemin0 aria-valuemax100>/div> /div> /div> End Skills Item --> !-- /div> /div> /div> /section>/Skills Section --> !-- Resume Section --> !-- section idresume classresume section> --> !-- Section Title --> !-- div classcontainer section-title data-aosfade-up> h2>Resume/h2> img srcassets/img/Resume.png> p>Magnam dolores commodi suscipit. Necessitatibus eius consequatur ex aliquid fuga eum quidem. Sit sint consectetur velit. Quisquam quos quisquam cupiditate. Et nemo qui impedit suscipit alias ea. Quia fugiat sit in iste officiis commodi quidem hic quas./p> /div>End Section Title --> !-- div classcontainer> div classrow> div classcol-lg-6 data-aosfade-up data-aos-delay100> h3 classresume-title>Sumary/h3> div classresume-item pb-0> h4>Brandon Johnson/h4> p>em>Innovative and deadline-driven Graphic Designer with 3+ years of experience designing and developing user-centered digital/print marketing material from initial concept to final, polished deliverable./em>/p> ul> li>Portland par 127,Orlando, FL/li> li>(123) 456-7891/li> li>alice.barkley@example.com/li> /ul> /div> Edn Resume Item h3 classresume-title>Education/h3> div classresume-item> h4>Master of Fine Arts & Graphic Design/h4> h5>2015 - 2016/h5> p>em>Rochester Institute of Technology, Rochester, NY/em>/p> p>Qui deserunt veniam. Et sed aliquam labore tempore sed quisquam iusto autem sit. Ea vero voluptatum qui ut dignissimos deleniti nerada porti sand markend/p> /div>Edn Resume Item div classresume-item> h4>Bachelor of Fine Arts & Graphic Design/h4> h5>2010 - 2014/h5> p>em>Rochester Institute of Technology, Rochester, NY/em>/p> p>Quia nobis sequi est occaecati aut. Repudiandae et iusto quae reiciendis et quis Eius vel ratione eius unde vitae rerum voluptates asperiores voluptatem Earum molestiae consequatur neque etlon sader mart dila/p> /div> Edn Resume Item /div> div classcol-lg-6 data-aosfade-up data-aos-delay200> h3 classresume-title>Professional Experience/h3> div classresume-item> h4>Senior graphic design specialist/h4> h5>2019 - Present/h5> p>em>Experion, New York, NY /em>/p> ul> li>Lead in the design, development, and implementation of the graphic, layout, and production communication materials/li> li>Delegate tasks to the 7 members of the design team and provide counsel on all aspects of the project. /li> li>Supervise the assessment of all graphic materials in order to ensure quality and accuracy of the design/li> li>Oversee the efficient use of production project budgets ranging from $2,000 - $25,000/li> /ul> /div> Edn Resume Item div classresume-item> h4>Graphic design specialist/h4> h5>2017 - 2018/h5> p>em>Stepping Stone Advertising, New York, NY/em>/p> ul> li>Developed numerous marketing programs (logos, brochures,infographics, presentations, and advertisements)./li> li>Managed up to 5 projects or tasks at a given time while under pressure/li> li>Recommended and consulted with clients on the most appropriate graphic design/li> li>Created 4+ design presentations and proposals a month for clients and account managers/li> /ul> /div> Edn Resume Item /div> /div> /div> --> !-- /section>/Resume Section --> !-- Gallery Section - Dancing Wave --> section idportfolio classportfolio section> !-- Section Title --> div classcontainer section-title data-aosfade-up> h2 data-i18ngallery.title>Gallery/h2> p data-i18ngallery.subtitle>Some elegant performance snapshots/p> /div>!-- End Section Title --> div classcontainer data-aosfade-up data-aos-delay100> div classwave-gallery> !-- 2025 Events --> a hrefassets/img/2025/Annual event 2025/AV Danse studio Annual event 2025 - 1.JPG classglightbox data-gallerygallery> img srcassets/img/2025/Annual event 2025/AV Danse studio Annual event 2025 - 1.JPG alt2025 Annual Event loadinglazy> div classwave-caption> h4>2025 Annual Event/h4> p>Bharatanatyam Performance/p> /div> /a> a hrefassets/img/2025/Annual event 2025/AV Danse studio Annual event 2025 - 2.JPG classglightbox data-gallerygallery> img srcassets/img/2025/Annual event 2025/AV Danse studio Annual event 2025 - 2.JPG alt2025 Annual Event loadinglazy> div classwave-caption> h4>2025 Annual Event/h4> p>Student Showcase/p> /div> /a> a hrefassets/img/2025/Annual event 2025/AV Danse studio Annual event 2025 - 3.JPG classglightbox data-gallerygallery> img srcassets/img/2025/Annual event 2025/AV Danse studio Annual event 2025 - 3.JPG alt2025 Annual Event loadinglazy> div classwave-caption> h4>2025 Annual Event/h4> p>Classical Dance/p> /div> /a> a hrefassets/img/2025/Annual event 2025/AV Danse studio Annual event 2025 - 4.JPG classglightbox data-gallerygallery> img srcassets/img/2025/Annual event 2025/AV Danse studio Annual event 2025 - 4.JPG alt2025 Annual Event loadinglazy> div classwave-caption> h4>2025 Annual Event/h4> p>Group Performance/p> /div> /a> a hrefassets/img/2025/Indian Embassy - Diwali performance 2025/c898d2cc-6afa-4eea-a014-3481dd6f5dd4.jpg classglightbox data-gallerygallery> img srcassets/img/2025/Indian Embassy - Diwali performance 2025/c898d2cc-6afa-4eea-a014-3481dd6f5dd4.jpg altDiwali Performance 2025 loadinglazy> div classwave-caption> h4>Embassy Diwali 2025/h4> p>Indian Embassy/p> /div> /a> a hrefassets/img/2025/Indian Embassy - Independance day performance 2025/DSC08024.jpeg classglightbox data-gallerygallery> img srcassets/img/2025/Indian Embassy - Independance day performance 2025/DSC08024.jpeg altIndependence Day 2025 loadinglazy> div classwave-caption> h4>Independence Day 2025/h4> p>Indian Embassy/p> /div> /a> !-- 2024 Events --> a hrefassets/img/2024/2024-1.jpg classglightbox data-gallerygallery> img srcassets/img/2024/2024-1.jpg alt2024 Annual Event loadinglazy> div classwave-caption> h4>2024 Annual Event/h4> p>Classical Dance Showcase/p> /div> /a> a hrefassets/img/2024/2024-2.jpg classglightbox data-gallerygallery> img srcassets/img/2024/2024-2.jpg alt2024 Annual Event loadinglazy> div classwave-caption> h4>2024 Annual Event/h4> p>Student Performance/p> /div> /a> a hrefassets/img/2024/2024-3.jpg classglightbox data-gallerygallery> img srcassets/img/2024/2024-3.jpg alt2024 Annual Event loadinglazy> div classwave-caption> h4>2024 Recital/h4> p>Dance Performance/p> /div> /a> !-- 2023 Events --> a hrefassets/img/2023/2023-1.png classglightbox data-gallerygallery> picture> source srcsetassets/img/2023/2023-1.webp typeimage/webp> source srcsetassets/img/2023/2023-1.png typeimage/png> img srcassets/img/2023/2023-1.png alt2023 Annual Event loadinglazy> /picture> div classwave-caption> h4>2023 Performance/h4> p>Traditional Bharatanatyam/p> /div> /a> a hrefassets/img/2023/2023-2.png classglightbox data-gallerygallery> picture> source srcsetassets/img/2023/2023-2.webp typeimage/webp> source srcsetassets/img/2023/2023-2.png typeimage/png> img srcassets/img/2023/2023-2.png alt2023 Annual Event loadinglazy> /picture> div classwave-caption> h4>2023 Showcase/h4> p>Student Recital/p> /div> /a> a hrefassets/img/2023/2023-3.png classglightbox data-gallerygallery> picture> source srcsetassets/img/2023/2023-3.webp typeimage/webp> source srcsetassets/img/2023/2023-3.png typeimage/png> img srcassets/img/2023/2023-3.png alt2023 Annual Event loadinglazy> /picture> div classwave-caption> h4>2023 Annual Event/h4> p>Classical Dance/p> /div> /a> !-- Other Events --> a hrefassets/img/Other/other-1.jpg classglightbox data-gallerygallery> img srcassets/img/Other/other-1.jpg altOslo Color Festival loadinglazy> div classwave-caption> h4>Oslo Color Festival/h4> p>Special Performance/p> /div> /a> a hrefassets/img/Other/other-2.jpg classglightbox data-gallerygallery> img srcassets/img/Other/other-2.jpg altOCF Performance loadinglazy> div classwave-caption> h4>OCF Performance/h4> p>Cultural Celebration/p> /div> /a> a hrefassets/img/Other/other-3.jpg classglightbox data-gallerygallery> img srcassets/img/Other/other-3.jpg altIndian Embassy loadinglazy> div classwave-caption> h4>Embassy Performance/h4> p>Republic Day 2024/p> /div> /a> /div> /div> /section>!-- /Gallery Section --> !-- Services Section -->section idservices classservices section> !-- Section Title --> div classcontainer section-title data-aosfade-up> h2 data-i18nservices.title>In Abhinaya Varshini Dansestudio, we offer an unadulterated form of Bharatanatyam/h2> p>/p> /div>!-- End Section Title --> div classcontainer> div classrow gy-4> !-- Service Item - Beginner Bharatanatyam --> div classcol-lg-4 col-md-6 data-aosfade-up data-aos-delay100> div classservice-item item-cyan position-relative> div classicon> img srcassets/img/beginner.jpg width100 height100 altBeginner Bharatanatyam loadinglazy> /div> h3 data-i18nservices.beginner.title>Beginner Bharatanatyam classes/h3> p data-i18nservices.beginner.description>We offer Bharatanatyam classes for beginners from Age 5. Earlier the age, the more likely the students will learn the basics with nalinam./p> br> a hrefhttps://bit.ly/avdsenroll target_blank classbtn btn-primary data-i18nservices.beginner.enroll>Enroll/a> /div> /div>!-- End Service Item --> !-- Service Item - Expert Classes --> div classcol-lg-4 col-md-6 data-aosfade-up data-aos-delay200> div classservice-item item-orange position-relative> div classicon> img srcassets/img/expert.jpg width100 height100 altExpert Classes loadinglazy> /div> h3 data-i18nservices.expert.title>Classes for trained artists/h3> p data-i18nservices.expert.description>Teaching students trained on Bharatanatyam for a special education degree or Arangetram. Classes taken on special timings upon agreement. Please contact in the form below./p> br> a hrefhttps://bit.ly/avdsenroll target_blank classbtn btn-primary data-i18nservices.expert.enroll>Enroll/a> /div> /div>!-- End Service Item --> !-- Service Item - Workshops --> div classcol-lg-4 col-md-6 data-aosfade-up data-aos-delay300> div classservice-item item-teal position-relative> div classicon> img srcassets/img/workshop.jpg width100 height100 altDance Workshops loadinglazy> /div> h3 data-i18nservices.workshop.title>Dance Workshops/h3> p data-i18nservices.workshop.description>Short-term courses based on concepts and themes/p> /div> /div>!-- End Service Item --> /div> /div>/section>!-- /Services Section --> !-- Contact Section -->section idcontact classcontact section> !-- Section Title --> div classcontainer section-title data-aosfade-up> h2 data-i18ncontact.title>Contact/h2> p data-i18ncontact.subtitle>Please feel free to reach out if you are interested in learning the dance form. Age is not a factor when you have the passion to learn./p> /div>!-- End Section Title --> div classcontainer data-aosfade data-aos-delay100> div classrow gy-4> !-- Contact Info Section --> div classcol-lg-4> div classinfo-item d-flex data-aosfade-up data-aos-delay200> i classbi bi-geo-alt flex-shrink-0>/i> div> h3 data-i18ncontact.address>Class Venue/h3> div classclass-location mb-3> strong data-i18ncontact.mondayVenue>Every Mondays: Holmen Center/strong> p data-i18ncontact.mondayAddress>Vogellund 6, 1394 Nesbru, Norway/p> /div> div classclass-location> strong data-i18ncontact.sundayVenue>Every Sundays: Stiftelsen Asker International school/strong> p data-i18ncontact.sundayAddress>Gamle Borgenvei 3, 1383 Asker/p> /div> /div> /div>!-- End Info Item --> div classinfo-item d-flex data-aosfade-up data-aos-delay300> i classbi bi-telephone flex-shrink-0>/i> div> h3 data-i18ncontact.callUs>Call Us/h3> p>+47 48688908/p> /div> /div>!-- End Info Item --> div classinfo-item d-flex data-aosfade-up data-aos-delay400> i classbi bi-envelope flex-shrink-0>/i> div> h3 data-i18ncontact.emailUs>Email Us/h3> p>amirtha.r@gmail.com/p> /div> /div>!-- End Info Item --> /div>!-- End Contact Info Section --> !-- Contact Form Section --> div classcol-lg-8> form idcontactform classform onsubmitsendMail(event)> div classrow gy-4> div classcol-md-6> input typetext idname classform-control data-i18ncontact.form.name placeholderYour Name required> /div> div classcol-md-6> input typeemail classform-control idemail data-i18ncontact.form.email placeholderYour Email required> /div> div classcol-md-12> input typetext classform-control idsubject data-i18ncontact.form.subject placeholderYour Subject required> /div> div classcol-md-12> textarea classform-control idmessage rows6 data-i18ncontact.form.message placeholderMessage required>/textarea> /div> div classcol-md-12 text-center> button typesubmit classbtn btn-primary data-i18ncontact.form.send>Send Message/button> /div> /div> /form> /div>!-- End Contact Form Section --> /div> /div>/section>!-- /Contact Section --> /main> footer idfooter classfooter position-relative light-background> div classcontainer> h3 classsitename>Abhinaya Varshini Dansestudio/h3> p data-i18nfooter.tagline>An Oslo based Indian classical dance, Bharatanatyam, school./p> div classsocial-links d-flex justify-content-center> a hrefhttps://www.facebook.com/profile.php?id61550763076507 target_blank relnoopener noreferrer>i classbi bi-facebook>/i>/a> a hrefhttps://www.instagram.com/avdans_natyam?igshMWhqejliaWJ3ZWc4dA%3D%3D&utm_sourceqr target_blank relnoopener noreferrer>i classbi bi-instagram>/i>/a> /div> !-- Visit Counter --> div classvisit-counter d-flex justify-content-center align-items-center mt-3 mb-3> i classbi bi-eye-fill me-2 stylecolor: #f4ba55; font-size: 18px;>/i> span stylecolor: #666; font-size: 14px; font-weight: 500;> span data-i18nfooter.visitors>Visitors/span>: span idvisitCount stylecolor: #f4ba55; font-weight: 600;>.../span> /span> /div> div classcontainer> div classcopyright> span>©/span> strong classpx-1 sitename>Abhinaya Varshini Dansestudio/strong> span data-i18nfooter.rights>All Rights Reserved/span> /div> div classcredits stylefont-size: 12px; color: #888; margin-top: 5px;> span data-i18nfooter.developer>Developed and maintained by Srivatsav Saravanan/span> /div> /div> !-- Legal Links --> div classcontainer mt-3> div classfooter-legal text-center stylefont-size: 13px; color: #666;> a href/privacy/privacy-policy.html stylecolor: #f4ba55; text-decoration: none; margin: 0 8px;>Privacy Policy/a> | a href/privacy/terms-conditions.html stylecolor: #f4ba55; text-decoration: none; margin: 0 8px;>Terms & Conditions/a> | a href/privacy/cookie-policy.html stylecolor: #f4ba55; text-decoration: none; margin: 0 8px;>Cookie Policy/a> | a href# onclickshowCookiePopup(); return false; stylecolor: #f4ba55; text-decoration: none; margin: 0 8px;>Cookie Settings/a> /div> /div> /div> /footer> !-- Scroll Top --> a href# idscroll-top classscroll-top d-flex align-items-center justify-content-center>i classbi bi-arrow-up-short>/i>/a> !-- Simple Cookie Consent Popup --> div idcookie-popup> p> This website uses cookies to ensure you get the best experience. Read our a href/privacy/cookie-policy.html>Cookie Policy/a> for more information. /p> div classcookie-buttons> button iddeclineCookiesBtn classcookie-btn-decline>Decline/button> button idacceptCookiesBtn classcookie-btn-accept>Accept/button> /div> /div> style> #cookie-popup { position: fixed; bottom: 0; left: 0; width: 100%; background-color: #272829; color: #fff; text-align: center; padding: 15px 20px; box-shadow: 0px -2px 10px rgba(0, 0, 0, 0.3); display: none; z-index: 10000; border-top: 2px solid #f4ba55; } #cookie-popup p { margin: 0; display: inline; margin-right: 15px; font-size: 14px; } #cookie-popup a { color: #f4ba55; text-decoration: underline; } .cookie-buttons { display: inline-flex; gap: 10px; } #cookie-popup button { padding: 10px 25px; font-size: 14px; font-weight: 600; cursor: pointer; border-radius: 5px; transition: all 0.3s ease; } .cookie-btn-accept { background-color: #f4ba55; color: #272829; border: none; } .cookie-btn-accept:hover { background-color: #e5ab46; transform: translateY(-2px); } .cookie-btn-decline { background-color: transparent; color: #fff; border: 1px solid rgba(255,255,255,0.4); } .cookie-btn-decline:hover { border-color: #fff; background-color: rgba(255,255,255,0.1); } @media (max-width: 768px) { #cookie-popup { padding: 15px; text-align: center; } #cookie-popup p { display: block; margin-bottom: 12px; margin-right: 0; } .cookie-buttons { display: flex; justify-content: center; gap: 10px; } } /style> script> // Simple Cookie Consent (function() { const COOKIE_NAME avds_cookie_consent; function hasResponse() { const value localStorage.getItem(COOKIE_NAME); return value accepted || value declined; } function acceptCookies() { localStorage.setItem(COOKIE_NAME, accepted); document.getElementById(cookie-popup).style.display none; } function declineCookies() { localStorage.setItem(COOKIE_NAME, declined); document.getElementById(cookie-popup).style.display none; } window.showCookiePopup function() { document.getElementById(cookie-popup).style.display block; }; // Show popup if no response yet document.addEventListener(DOMContentLoaded, function() { if (!hasResponse()) { document.getElementById(cookie-popup).style.display block; } document.getElementById(acceptCookiesBtn).addEventListener(click, acceptCookies); document.getElementById(declineCookiesBtn).addEventListener(click, declineCookies); }); })(); /script> !-- Preloader --> div idpreloader>/div> !-- Vendor JS Files - Deferred for non-blocking load --> script defer srcassets/vendor/bootstrap/js/bootstrap.bundle.min.js>/script> script defer srcassets/vendor/php-email-form/validate.js>/script> script defer srcassets/vendor/aos/aos.js>/script> script defer srcassets/vendor/typed.js/typed.umd.js>/script> script defer srcassets/vendor/purecounter/purecounter_vanilla.js>/script> script defer srcassets/vendor/waypoints/noframework.waypoints.js>/script> script defer srcassets/vendor/glightbox/js/glightbox.min.js>/script> script defer srcassets/vendor/imagesloaded/imagesloaded.pkgd.min.js>/script> script defer srcassets/vendor/isotope-layout/isotope.pkgd.min.js>/script> script defer srcassets/vendor/swiper/swiper-bundle.min.js>/script> !-- Config File --> script srcassets/js/config.min.js>/script> !-- Main JS File --> !-- EmailJS - Will be loaded conditionally after cookie consent --> script defer srchttps://cdn.jsdelivr.net/npm/@emailjs/browser@4/dist/email.min.js>/script> script defer srcassets/js/main.min.js>/script> !-- Translations --> script defer srcassets/js/translations.js?v20260216c>/script> !-- Authentication UI Management --> script typemodule> // Import Supabase auth module import { authModule } from ./assets/js/modules/supabaseAuth.js?v20260216b; // Initialize authentication UI document.addEventListener(DOMContentLoaded, async function() { try { // Wait a moment for Supabase to initialize await new Promise(resolve > setTimeout(resolve, 500)); const signupNavItem document.getElementById(signupNavItem); const profileNavItem document.getElementById(profileNavItem); const topLoginButton document.getElementById(topLoginButton); const topLogoutButton document.getElementById(topLogoutButton); // Check if user is logged in const user await authModule.getCurrentUser(); if (user) { // User is logged in // Hide signup, show profile in menu if (signupNavItem) signupNavItem.style.display none; if (profileNavItem) profileNavItem.style.display block; // Transform login button to My Space button if (topLoginButton) { topLoginButton.href auth/dashboard.html; topLoginButton.querySelector(span).textContent My Space; topLoginButton.querySelector(i).className bi bi-person-workspace; } if (topLogoutButton) topLogoutButton.style.display none; } else { // User is not logged in // Show signup in menu, hide profile if (signupNavItem) signupNavItem.style.display block; if (profileNavItem) profileNavItem.style.display none; // Restore login button to original state if (topLoginButton) { topLoginButton.href auth/login.html; topLoginButton.querySelector(span).textContent Login; topLoginButton.querySelector(i).className bi bi-box-arrow-in-right; topLoginButton.style.display inline-flex; } if (topLogoutButton) topLogoutButton.style.display none; } } catch (error) { console.error(Error initializing auth UI:, error); // Fallback: show signup and login button const signupNavItem document.getElementById(signupNavItem); const profileNavItem document.getElementById(profileNavItem); const topLoginButton document.getElementById(topLoginButton); const topLogoutButton document.getElementById(topLogoutButton); if (signupNavItem) signupNavItem.style.display block; if (profileNavItem) profileNavItem.style.display none; if (topLoginButton) topLoginButton.style.display inline-flex; if (topLogoutButton) topLogoutButton.style.display none; } }); // Handle logout button click document.addEventListener(DOMContentLoaded, function() { const topLogoutButton document.getElementById(topLogoutButton); if (topLogoutButton) { topLogoutButton.addEventListener(click, async function(e) { e.preventDefault(); try { await authModule.logout(); console.log(Logged out successfully); // Redirect to home page window.location.href /; } catch (error) { console.error(Error logging out:, error); alert(Error logging out. Please try again.); } }); } }); // Listen for auth state changes and update UI in real-time authModule.onAuthStateChange((event, session) > { const signupNavItem document.getElementById(signupNavItem); const profileNavItem document.getElementById(profileNavItem); const topLoginButton document.getElementById(topLoginButton); const topLogoutButton document.getElementById(topLogoutButton); if (event SIGNED_IN) { // User just logged in if (signupNavItem) signupNavItem.style.display none; if (profileNavItem) profileNavItem.style.display block; // Transform login button to My Space button if (topLoginButton) { topLoginButton.href auth/dashboard.html; topLoginButton.querySelector(span).textContent My Space; topLoginButton.querySelector(i).className bi bi-person-workspace; } if (topLogoutButton) topLogoutButton.style.display none; } else if (event SIGNED_OUT) { // User just logged out if (signupNavItem) signupNavItem.style.display block; if (profileNavItem) profileNavItem.style.display none; // Restore login button to original state if (topLoginButton) { topLoginButton.href auth/login.html; topLoginButton.querySelector(span).textContent Login; topLoginButton.querySelector(i).className bi bi-box-arrow-in-right; topLoginButton.style.display inline-flex; } if (topLogoutButton) topLogoutButton.style.display none; } }); /script> !-- EmailJS and Language Switcher Initialization - Wait for deferred scripts --> script> window.addEventListener(load, function() { // Initialize EmailJS if (typeof emailjs ! undefined) { emailjs.init(iOd2fl5idKhemKiQl); } // Initialize language switcher if (typeof LanguageSwitcher ! undefined) { const langSwitcher new LanguageSwitcher(); langSwitcher.init(); // Set up language button click handlers document.getElementById(langEN).addEventListener(click, function() { langSwitcher.setLanguage(en); document.getElementById(langEN).classList.add(active); document.getElementById(langNO).classList.remove(active); }); document.getElementById(langNO).addEventListener(click, function() { langSwitcher.setLanguage(no); document.getElementById(langNO).classList.add(active); document.getElementById(langEN).classList.remove(active); }); // Set active button based on current language if (langSwitcher.getCurrentLanguage() no) { document.getElementById(langNO).classList.add(active); document.getElementById(langEN).classList.remove(active); } } }); /script> !-- Visit Counter with Supabase (global count) --> script typemodule> // Import Supabase visit counter module (minified for production) import { visitCounter } from ./assets/js/modules/visitCounter.min.js?v20260216b; // Module auto-initializes on import /script> !-- Animated Logo Scroll Handler --> script> (function() { const SCROLL_THRESHOLD 100; let ticking false; function updateLogoState() { const logo document.getElementById(animated-logo); if (!logo) return; if (window.scrollY > SCROLL_THRESHOLD) { logo.classList.add(scrolled); logo.style.left ; // Let CSS handle scrolled position (15px) } else { logo.classList.remove(scrolled); // Let CSS handle centering (left: 50% + transform: translateX(-50%)) logo.style.left ; } ticking false; } function onScroll() { if (!ticking) { requestAnimationFrame(updateLogoState); ticking true; } } function onResize() { if (!ticking) { requestAnimationFrame(updateLogoState); ticking true; } } // Initialize on page load (handles refresh at scrolled position) document.addEventListener(DOMContentLoaded, updateLogoState); window.addEventListener(scroll, onScroll, { passive: true }); window.addEventListener(resize, onResize, { passive: true }); })(); /script> !-- Analytics Tracking --> script typemodule src./assets/js/modules/analytics.js?v20260216b>/script>/body>/html>
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]