CINXE.COM
Academic Offers | ChinesePod
<!DOCTYPE html> <html> <head> <title>Academic Offers | ChinesePod</title> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> <!-- Google Tag Manager --> <!-- <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), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f); })(window, document, 'script', 'dataLayer', 'GTM-TK3RQCH');</script> --> <!-- End Google Tag Manager --> <!-- Google tag (gtag.js) --> <script async src="https://www.googletagmanager.com/gtag/js?id=G-YL9LXEWQT7"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-YL9LXEWQT7'); gtag('config', 'AW-16684547670'); </script> <!--STYLES--> <link rel="stylesheet" href="/min/production.min.css"> <!--STYLES END--> </head> <body> <div id="page-wrap"> <header id="page-header" class="navbar navbar-expand-sm navbar-light bg-light flex-column flex-md-row justify-content-between"> <a class="navbar-brand mr-0" href="/"><img class="logo" alt="ChinesePod Logo" src="/images/brand/brand.svg" width="160px"/></a> <div class="navbar-nav flex-row"> <a class="nav-item nav-link ml-2 ml-md-0 mr-2 mr-md-0" href="/contact">Help</a> <!-- LOGGED-IN NAVIGATION --> <!-- LOGGED-OUT NAVIGATION --> <a class="nav-item nav-link ml-2 ml-md-0 mr-2 mr-md-0" href="/corporate"><span class="d-none d-md-inline">For </span>Companies</a> <a class="nav-item nav-link ml-2 ml-md-0 mr-2 mr-md-0" href="/academic-offers"><span class="d-none d-md-inline">For </span>Schools</a> <a class="nav-item nav-link ml-2 ml-md-0 mr-2" href="/login">Log in</a> <div class="form-inline ml-2"> <!-- <a class="btn btn-outline-success" href="/pricing">Pricing</a>--> <a class="btn btn-outline-success" href="/signup">Sign Up</a> </div> </div> </header> <!-- Alert if email has not been confirmed --> <link rel="stylesheet" href="https://cdn.plyr.io/3.7.8/plyr.css" /> <style> .plyr--full-ui.plyr--video .plyr__control--overlaid{ background: none; /* color: #e31e1e; */ } .plyr__control--overlaid svg{ width: 40px; height: 40px; } .plyr--video .plyr__control:focus-visible, .plyr--video .plyr__control:hover, .plyr--video .plyr__control[aria-expanded=true]{ background: #d21e1c; } .plyr--full-ui input[type=range]{ color: #d01e1d; } </style> <div id="academic"> <section class="section home"> <div class="container"> <div class="home__title"> <h2 class="title">The Most Full-Featured <br> Resource for Language Teachers!</h2> </div> </div> <div class="container container__bg"> <div class="home__content col-md-12" > <div class="home__mack col-md-6"> <img src="https://s3contents.chinesepod.com/img/academic/macbook.svg" alt="" class="home__img"> <div class="home__content-video test-felix"> <video style="width:100%" class="videoplyr-s3" id="videoplyr-s3-1" dataId="videoplyr-s3-1" playsinline crossorigin autoplay> <source src="https://d2arcxjkuir81y.cloudfront.net/assets/MM0011.marketing.Academic/HLS/MM0011.marketing.Academic.m3u8" type="application/vnd.apple.mpegURL"> </video> <!-- <div class="wistia_responsive_padding" style="padding:56.25% 0 0 0;position:relative;"> <div class="wistia_responsive_wrapper" style="height:100%;left:0;position:absolute;top:0;width:100%;"> <div class="wistia_responsive_padding" style="padding:56.25% 0 0 0;position:relative;"> <div class="wistia_responsive_wrapper" style="height:100%;left:0;position:absolute;top:0;width:100%;"> <div class="wistia_embed wistia_async_1izx53804s videoFoam=true" style="height:100%;position:relative;width:100%"> <div class="wistia_swatch" style="height:100%;left:0;opacity:0;overflow:hidden;position:absolute;top:0;transition:opacity 200ms;width:100%;"> <img src="https://fast.wistia.com/embed/medias/1izx53804s/swatch" style="filter:blur(5px);height:100%;object-fit:contain;width:100%;" alt="" onload="this.parentNode.style.opacity=1;"/> </div> </div> </div> </div> </div> </div> --> </div> </div> <div class="home__desc col-md-6"> <ul class="home__list"> <li class="home__item">Engaging fun lessons</li> <li class="home__item">On-Demand Content</li> <li class="home__item">Over 4000 Lessons</li> <li class="home__item">Wide range of levels</li> </ul> </div> </div> </div> </section> <section class="section content"> <div class="container home__title"> <h1 class="title">Let us help you <br> enhance your lessons!</h1> </div> <div class="about-item about-item_1"> <div class="about-item__bg"> <img src="https://s3contents.chinesepod.com/img/academic/photo_1_file_cut.jpg" class="about-item__pic" alt=""> </div> <div class="about-item__text"> <h3 class="title about-item__title">Real language</h3> <div class="about-item__desc"> We believe that students learn better from immersive experiences instead of traditional textbooks. </div> <div class="about-item__cit"> ChinesePod creates Mandarin Chinese lessons with real language that native speakers use, not stiff, unnatural textbook phrases. </div> </div> </div> <div class="about-item about-item_right about-item_2"> <div class="about-item__text"> <h3 class="title about-item__title">Suited for all levels</h3> <div class="about-item__desc"> Are the students that attend to your classes a mix of Chinese learners from a wide range of academics levels? </div> <div class="about-item__cit"> Here at ChinesePod, we structured our lessons into levels. Newbie, Elementary, Pre-Intermediate, Intermediate, Upper-Intermediate, and Advanced, to better serve every one your students. </div> </div> <div class="about-item__bg"> <img src="https://s3contents.chinesepod.com/img/academic/photo_2_file.jpg" class="about-item__pic" alt=""> </div> </div> <div class="about-item about-item_3"> <div class="about-item__bg"> <img src="https://s3contents.chinesepod.com/img/academic/photo_3_file.jpg" class="about-item__pic" alt=""> </div> <div class="about-item__text"> <h3 class="title about-item__title">Easy to use</h3> <div class="about-item__desc"> We provide over 4000 entertaining and practical audio & video lessons that make learning the Mandarin language fun. </div> <div class="about-item__cit"> Simply, instruct your students to download a lesson, study it overnight, then break down the lesson in your next lecture. Each lesson also comes with downloadable dialogues, vocabulary, grammar and practical exercises. </div> </div> </div> <section class="form-section"> <div class="container"> <div class="form-section__contant"> <div class="form-block form-section__form"> <div class="form-block__header"> <h3 class="form-block__title">Experience it by yourself, for a whole month!</h3> </div> <div class="form-block__content"> <div id="ip-msg"> <div v-if="msg" align="center" class="alert alert-success"> {{ msg }} </div> </div> <ajax-form v-if="!msg" action="deliverContactFormMessage" :syncing.sync="syncing" :cloud-error.sync="cloudError" @submitted="submittedForm1()" :handle-parsing="handleParsingForm1"> <div class="form-block__row"> <div class="form-block__col"> <label class="form-block__label">Name</label> <input type="text" name="fullName" v-model.trim="data.fullName" placeholder="First Name" class="form-block__input"> <span for="fullName" class="has-error" v-if="errors.fullName">Please enter your email</span> </div> <div class="form-block__col"> <label class="form-block__label">School</label> <input type="text" v-model.trim="data.schoolName" name="school_name" placeholder="Name of your school" class="form-block__input"> <span for="school_name" class="has-error" v-if="errors.schoolName">Please enter your email</span> </div> </div> <div class="form-block__row"> <div class="form-block__col"> <label class="form-block__label">Email Address</label> <input type="email" v-model.trim="data.emailAddress" name="email" placeholder="email@example.com" class="form-block__input"> <span for="email" class="has-error" v-if="errors.emailAddress">Please enter your email</span> </div> </div> <div class="form-block__row"> <div class="form-block__col"> <label class="form-block__label">Phone Number (optional)</label> <input type="tel" v-model.trim="data.phone" name="phone" placeholder="212-555-0000" class="form-block__input"> <span for="phone" class="has-error" v-if="errors.phone">Please enter your phone number</span> </div> </div> <div class="form-block__row form-block__row_last"> <div class="form-block__col"> <label class="form-block__label">Short Message</label> <input type="text" v-model="data.message" name="message" placeholder="What are your offers for schools?" class="form-block__input"> <span for="message" class="has-error" v-if="errors.message">Please enter your message</span> </div> </div> <div class="form-block__row"> <div class="form-block__col"> <button type="submit" id="btn-form-top-submit" class="form-block__button">Free one month demo! </button> </div> </div> </ajax-form> <div class="form-block__text"> Shortly after signing up a member of our team will contact you via email. </div> <div class="form-block__border"></div> </div> </div> </div> </div> </section> <div class="about-item about-item_right about-item_4"> <div class="about-item__text"> <h3 class="title about-item__title">Restricting courses are all over!</h3> <div class="about-item__desc"> We all don’t listen to the same music, or like the same food so why should we be forced to follow a structured, monotonous curriculum when it comes to learning a language? </div> <div class="about-item__cit"> With ChinesePod you have the freedom to take the Mandarin Chinese lessons that you find interesting, having the ability to study at your own pace. </div> </div> <div class="about-item__bg"> <img src="https://s3contents.chinesepod.com/img/academic/photo_4_file.jpg" class="about-item__pic" alt=""> </div> </div> <div class="about-item about-item_5"> <div class="about-item__bg"> <img src="https://s3contents.chinesepod.com/img/academic/photo_5_file.jpg" class="about-item__pic" alt=""> </div> <div class="about-item__text"> <h3 class="title about-item__title">Teach the topics you want!</h3> <div class="about-item__desc"> With the largest library of Mandarin Chinese lessons, on and offline, you have 4000+ lessons at your fingertips. </div> <div class="about-item__cit"> We challenge you to find a situation or topic we haven't already covered, and our library is always growing, updating on weekly basis. </div> </div> </div> <div class="about-item about-item_right about-item_6"> <div class="about-item__text"> <h3 class="title about-item__title">Train your ears not your eyes</h3> <div class="about-item__desc"> Flashback to your were a childhood and learning your mother language for the first time: you started with listening, not reading. </div> <div class="about-item__cit"> We believe that our audio and video lessons mimic the natural process of language acquisition that everyone goes through and are the best way to learn Chinese. </div> </div> <div class="about-item__bg"> <img src="https://s3contents.chinesepod.com/img/academic/photo_6_file.jpg" class="about-item__pic" alt=""> </div> </div> <div class="about-item about-item_7"> <div class="about-item__bg"> <img src="https://s3contents.chinesepod.com/img/academic/photo_7_file.jpg" class="about-item__pic" alt=""> </div> <div class="about-item__text"> <h3 class="title about-item__title">Native pronunciation</h3> <div class="about-item__desc"> Access our specially designed video course "Say It Right (S.I.R)" entirely devoted towards teaching the correct pronunciation of the Chinese Mandarin Language. </div> <div class="about-item__cit"> The "Say It Right (S.I.R)" video course contains 22 lessons, in which you will learn all about pinyin, tones, tricky combinations, tone change rules and difficult sounds. These lessons work to give you a comprehensive and unprecedented education on the most daunting aspect of learning Chinese. </div> </div> </div> <div class="container"> <div class="content__resorces"> <div class="resorces"> <div class="resorces__photo"> <img src="https://s3contents.chinesepod.com/img/academic/resources.jpg" alt="" class="resorces__img"> </div> <div class="resorces__desc"> <p>Once you are finished with the video lesson, there is so much extra content waiting on our lesson’s page, including vocabulary, sentence reviews, and expansions, where we give further examples of the lesson’s grammatical structure and vocabulary in different context.</p> <p>Endless enriching review opportunities and the option to download the audios and study them on the go! </p> </div> </div> </div> </div> </section> <section class="section section__mac"> <div class="section__resources"> <div class="container section__resources__container"> <div class="d-none d-lg-inline section__resources__text"> <div class="resources_slider_text_list"> <div class="resources_slider_text_item"> <h2 class="section__resources__title">Dialogue</h2> <p>The Dialogue section provides an interactive transcript of the lesson. The Chinese characters are provided along with the English translation and pinyin to ease with pronunciation. It’s better to learn the target language in context but we provide a function to study each word separately too. Scrutinize each Chinese character by mousing over it to see the literal translation. You also have the option of toggling between Simplified and Traditional characters.</p> </div> <div class="resources_slider_text_item"> <h2 class="section__resources__title">Vocabulary</h2> <p>Rote memorization is boring and not the most effective method, but we suggest using the supplementary vocabulary lists in conjunction with the audio or video to accelerate your rate of achieving language competency.</p> </div> <div class="resources_slider_text_item"> <h2 class="section__resources__title">Expansion</h2> <p>Our expansion gives you the opportunity to learn target vocabulary taught in the lesson in other meaningful situations.</p> </div> <div class="resources_slider_text_item" id="greatest_carousel_item"> <h2 class="section__resources__title">Exercises</h2> <p>Learn aurally then reinforce further with online worksheets and exercises. These include:</p> <ul> <li>Matching: Choose a word on the left side, then match it to the closest meaning on the right side. </li> <li>Sentence Reordering: sentences are in the wrong order; move them into the correct order by clicking and dragging. </li> <li>Dictation: Listen to the audio and type out what you hear.</li> <li>Multiple Choice.</li> </ul> </div> </div> </div> <div class="section__resources__slider"> <div class="mac-slider"> <div class="mac-slider__container"> <img src="https://s3contents.chinesepod.com/img/academic/Carousell_Vocabulary_950x860.png" alt="" class="mac-slider__img"> <ul class="mac-slider__list"> <li class="mac-slider__item" style="background-image: url('https://s3contents.chinesepod.com/img/corporate/carousel/dictionary.png')"></li> <li class="mac-slider__item" style="background-image: url('https://s3contents.chinesepod.com/img/corporate/carousel/vocabulary.png')"></li> <li class="mac-slider__item" style="background-image: url('https://s3contents.chinesepod.com/img/corporate/carousel/expansion.png')"></li> <li class="mac-slider__item" style="background-image: url('https://s3contents.chinesepod.com/img/corporate/carousel/exercises.png')" id="greatest_carousel_mac_item"></li> </ul> </div> </div> </div> </div> </div> </section> <section class="form-section form-section_footer pb-5 mb-5"> <div class="container"> <div class="form-section__contant"> <div class="form-block form-section__form"> <div class="form-block__header"> <h3 class="form-block__title">Experience it by yourself, for a whole month!</h3> </div> <div class="form-block__content"> <div id="ip-msg-bot"> <div v-if="msg" align="center" class="alert alert-success"> {{ msg }} </div> </div> <ajax-form v-if="!msg" action="deliverContactFormMessage":syncing.sync="syncing" :cloud-error.sync="cloudError" @submitted="submittedForm1()" :handle-parsing="handleParsingForm1"> <div class="form-block__row"> <div class="form-block__col"> <label class="form-block__label">Name</label> <input type="text" name="fullName" v-model.trim="data.fullName" placeholder="First Name" class="form-block__input"> <span for="fullName" class="has-error" v-if="errors.fullName">Please enter your email</span> </div> <div class="form-block__col"> <label class="form-block__label">School</label> <input type="text" v-model.trim="data.schoolName" name="school_name" placeholder="Name of your school" class="form-block__input"> <span for="school_name" class="has-error" v-if="errors.schoolName">Please enter your email</span> </div> </div> <div class="form-block__row"> <div class="form-block__col"> <label class="form-block__label">Email Address</label> <input type="email" v-model.trim="data.emailAddress" name="email" placeholder="email@example.com" class="form-block__input"> <span for="email" class="has-error" v-if="errors.emailAddress">Please enter your email</span> </div> </div> <div class="form-block__row"> <div class="form-block__col"> <label class="form-block__label">Phone Number (optional)</label> <input type="tel" v-model.trim="data.phone" name="phone" placeholder="212-555-0000" class="form-block__input"> <span for="phone" class="has-error" v-if="errors.phone">Please enter your phone number</span> </div> </div> <div class="form-block__row form-block__row_last"> <div class="form-block__col"> <label class="form-block__label">Short Message</label> <input type="text" v-model="data.message" name="message" placeholder="What are your offers for schools?" class="form-block__input"> <span for="message" class="has-error" v-if="errors.message">Please enter your message</span> </div> </div> <div class="form-block__row"> <div class="form-block__col"> <button type="submit" id="btn-form-bottom-submit" class="form-block__button" data-loading-text="Loading...">Free one month demo! </button> </div> </div> </ajax-form> <div class="form-block__text"> Shortly after signing up a member of our team will contact you via email. </div> </div> </div> </div> </div> </section> </div> <!-- <script src="https://fast.wistia.com/assets/external/E-v1.js" async></script> --> <!-- pagealive embeddable code --> <pagealive-widget website="https://www.chinesepod.com/" api="aT69u0xhpS741Q3"></pagealive-widget> <script type="module" crossorigin src="https://widget.app.pagealive.com/assets/index.js"></script> <!-- end pagealive embeddable code --> <script src="https://code.jquery.com/jquery-3.6.4.min.js" integrity="sha256-oP6HI9z1XaZNBrJURtCoUT5SUnxFr8s3BzRl+cbzUq8=" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/hls.js@1"></script> <script src="https://cdn.plyr.io/3.7.8/plyr.js"></script> <script> $( document ).ready(function() { // NEW VIDEO PLAYER START SCRIPT ================== if ($(".videoplyr-s3")) { const videos = document.querySelectorAll('.videoplyr-s3'); const updateQuality = newQuality => { window.hls.levels.forEach((level, levelIndex) => { if (level.height === newQuality) { if (window.hls.currentLevel !== levelIndex) { console.log('Found quality match with ' + newQuality); window.hls.currentLevel = levelIndex; } } }); }; // console.log(videos); videos.forEach((vid) => { let source = vid.getElementsByTagName('source')[0] var video = document.querySelector('#'+vid.id); var vidPlayer; // console.log("vid",vid); // console.log("vid id",vid.dataId); // console.log("vid id",vid.id); const defaultOptions = {}; var hls = new Hls(); setTimeout(function() { hls.loadSource(source.src); }, 500); // Delay .5s to wait for the video tag load hls.on(Hls.Events.MANIFEST_PARSED, (event, data) => { // Transform available levels into an array of integers (height values). const availableQualities = hls.levels.map(l => l.height); // Add new qualities to option defaultOptions.quality = { default: availableQualities[3], options: [...availableQualities], // this ensures Plyr to use Hls to update quality level forced: true, onChange: e => updateQuality(e) }; vidPlayer = new Plyr('#'+vid.id, defaultOptions); vidPlayer.on('ready', () => { // this.hidePlayer = false; // this.floatingTogglePlayback(); vidPlayer.muted = true vidPlayer.play() }); vidPlayer.on('timeupdate', event => { if (window.hls.currentLevel > -1) { vidPlayer.quality = availableQualities[window.hls.currentLevel]; } }); }); hls.attachMedia(video); window.hls = hls; }); function setAutomaticQuality() { console.log('Current level: ' + window.hls.currentLevel); window.hls.currentLevel = -1; console.log('New level: ' + window.hls.currentLevel); } } // NEW VIDEO PLAYER END SCRIPT ===================== }) </script> <script type="text/javascript"> (function (){ var unescape = function unescapeHtmlEntitiesDeepLite(r){if("function"!=typeof Array.isArray||"function"!=typeof Array.prototype.forEach||"function"!=typeof Array.prototype.map||"function"!=typeof Object.keys)throw Error("Unsupported browser: Missing support for `Array.isArray`, `Array.prototype.forEach`, `Array.prototype.map`, or `Object.keys`! (Sails' built-in HTML-unescaping for exposed locals supports IE9 and up.)");return function t(r){if(null===r)return r;if(r===!0||r===!1)return r;if("number"==typeof r)return r;if("string"==typeof r){var e=/&(?:amp|lt|gt|quot|#39|#96);/g,o=RegExp(e.source);if(""===r)return r;if(o.test(r)){var n={"&":"&","<":"<",">":">",""":'"',"'":"'","`":"`"};return r=r.replace(e,function(r){return n[r]})}return r}return Array.isArray(r)?r=r.map(function(r){return t(r)}):(Object.keys(r).forEach(function(e){r[e]=t(r[e],e)}),r)}(r)}; window.SAILS_LOCALS = { _environment: unescape('production'),title: unescape('Academic Offers | ChinesePod'), }; })(); </script> <footer id="page-footer" style="display: none" class="footer navbar navbar-light justify-content-between flex-row-reverse"> <div class="col-xs-12 col-md-3 text-center"> <ul class="list-inline social"> <li class="list-inline-item"><a class="list-inline-item social-icon" href="https://www.facebook.com/ChinesePod" target="_blank"> <img src="/images/social/facebook-red.svg"> <img class="hover" src="/images/social/facebook-white.svg"> </a> </li> <li class="list-inline-item"><a class="list-inline-item social-icon" href="https://twitter.com/chinesepod" target="_blank"> <img src="/images/social/twitter-red.svg"> <img class="hover" src="/images/social/twitter-white.svg"> </a> </li> <li class="list-inline-item"><a class="list-inline-item social-icon" href="http://instagram.com/chinesepod/" target="_blank"> <img src="/images/social/instagram-red.svg"> <img class="hover" src="/images/social/instagram-white.svg"> </a> </li> <li class="list-inline-item"><a class="list-inline-item social-icon" href="https://www.youtube.com/user/ChinesePodTV" target="_blank"> <img src="/images/social/youtube-red.svg"> <img class="hover" src="/images/social/youtube-white.svg"> </a> </li> </ul> </div> <div class="col-xs-12 col-md-6 text-center"> <small class="copy">Copyright © 2025 ChinesePod LLC</small> <div class="list-inline text-center"> <small class="list-inline-item"><a class="nav-link text-danger" href="/contact">Contact</a></small> <small class="list-inline-item"><a class="nav-link text-danger" href="/pricing">Pricing</a></small> <!-- <small class="list-inline-item"><a class="nav-link text-danger" href="/jobs">Careers</a></small>--> <small class="list-inline-item"><a class="nav-link text-danger" href="/start-learning-mandarin">About Us</a></small> <!-- <small class="list-inline-item"><a class="nav-link text-danger" href="/affiliate">Affiliate</a></small>--> <!-- <small class="list-inline-item"><a class="nav-link text-danger" href="/resources">Resources</a></small>--> <small class="list-inline-item"><a class="nav-link text-danger" href="/privacy">Privacy</a></small> <small class="list-inline-item"><a class="nav-link text-danger" href="/terms">Terms</a></small> </div> </div> <div class="col-xs-12 col-md-3 text-center" style="padding-bottom:20px"> <div class="col-12 text-center"> <a href="https://itunes.apple.com/us/app/chinesepod-podcast/id1185380819?mt=8" target="_blank" style="margin-bottom:10px;text-decoration:none;"> <img data-src="/img/app-store-icon.svg" class="lazyloaded img-fluid " style="max-height: 60px" alt="ChinesePod iOS App" src="/img/app-store-icon.svg"> </a> <!-- <div class="col-6">--> <!-- <a href="https://play.google.com/store/apps/details?id=llc.chinesepod.android&hl=en" target="_blank" style="margin-bottom:10px;">--> <!-- <img data-src="/img/google-play-icon.svg" class="lazyloaded img-fluid" style="max-height: 60px; height: 100%" alt="ChinesePod Google Play App" src="/img/google-play-icon.svg">--> <!-- </a>--> <!-- </div>--> </div> </div> </footer> <div id="corporatePopup" style="display: none;" class="row"> <div class="bg-gray border-top border-danger fixed-bottom"> <div class="col-12 py-3 position-absolute close-popup-container"> <button class="btn btn-outline-secondary" title="Close Notification" id="closeCorporatePopup"> <i class="fa fa-times"></i> </button> </div> <div class="col-12 col-md-10 offset-md-1 pt-5"> <div class="col-xl-8 offset-xl-2"> <h2 class="text-danger font-weight-bold text-center">DID YOU KNOW THAT WE HAVE TAILOR MADE CORPORATE / EDUCATION PLANS?</h2> </div> <p class=" text-center">To receive information or be contacted by one of our advisors please provide your details below:</p> <div class="col-12"> <div class="corporate-form-container"> <form id="corporateForm"> <!-- Step 1 --> <div class="tab"> <div class="form-group"> <div class="input-container"> <label for="emailCorporatePopup" class="mb-0">Email address:</label> <div class="input-group"> <input type="email" class="form-control" id="emailCorporatePopup" placeholder="email@example.com" name="email" /> <div class="invalid-feedback"> Please check your email and try again. </div> </div> </div> </div> <div class="form-group"> <div class="input-container"> <label for="phoneCorporatePopup" class="mb-0">Phone number:</label> <div class="input-group"> <input type="tel" class="form-control" id="phoneCorporatePopup" placeholder="+1 212-555-0000" name="phone" /> <div class="invalid-feedback"> Please check your phone number and try again. </div> </div> </div> </div> </div> <!-- Step 2 --> <div class="tab"> <h5>Additional Questions:</h5> <div class="form-group"> <label for="howDidYouHear">1. How did you hear about Chinesepod?</label> <div class="input-group"> <input id="howDidYouHear" class="form-control" placeholder="Search, referral, blog, article.." name="howDidYouHear" /> <div class="invalid-feedback"> This field is required. Please check it again! </div> </div> </div> <div class="form-group"> <label for="radioTypeOfCorporation">2. What type of organization are you? Corporation or Education?</label> <div class="custom-control custom-radio custom-control-inline"> <input type="radio" id="radioTypeOfCorporation" name="typeOfOrganization" class="custom-control-input" value="corporation" checked /> <label class="custom-control-label" for="radioTypeOfCorporation">Corporation</label> </div> <div class="custom-control custom-radio custom-control-inline"> <input type="radio" id="radioTypeOfEducation" name="typeOfOrganization" class="custom-control-input" value="education" /> <label class="custom-control-label" for="radioTypeOfEducation">Education</label> </div> </div> <div class="form-group"> <label for="peopleInYourOrganization">3. How many people in your organization?</label> <div class="input-group"> <input id="peopleInYourOrganization" class="form-control" placeholder="" oninput="onFillInput" name="peopleInYourOrganization" /> <div class="invalid-feedback"> This field is required. Please check it again! </div> </div> </div> <div class="form-group"> <label for="howManyPeoplePlanToLearnChinese">4. How many people plan to learn Chinese?</label> <div class="input-group"> <input id="howManyPeoplePlanToLearnChinese" class="form-control" placeholder="" name="peoplePlanToLearnChinese" /> <div class="invalid-feedback"> This field is required. Please check it again! </div> </div> </div> </div> <!-- Step 3 --> <div class="tab"> <h5>Additional Questions:</h5> <div class="form-group"> <label for="theMainLanguage"> 1. What is the main language spoken within your organization? </label> <div class="input-group"> <input id="theMainLanguage" class="form-control" placeholder="" name="theMainLanguage" /> <div class="invalid-feedback"> This field is required. Please check it again! </div> </div> </div> <div class="form-group"> <label for="whatDoesYourCompanyDo">2. Do some of your staff/student speak Chinese already? And if so what is their level?</label> <div class="input-group"> <input id="chineseLevel" class="form-control" placeholder="" name="chineseLevel" /> <div class="invalid-feedback"> This field is required. Please check it again! </div> </div> </div> <div id="organizationGroup"> <div class="form-group"> <label for="whatDoesYourCompanyDo">3. What does your company do?</label> <div class="input-group"> <input id="whatDoesYourCompanyDo" class="form-control" placeholder="" name="whatDoesYourCompanyDo" /> <div class="invalid-feedback"> This field is required. Please check it again! </div> </div> </div> <div class="form-group"> <label for="howDoYourStaffNeedToLearnChinese">4. How do your staff need to learn Chinese?</label> <div class="input-group"> <input id="howDoYourStaffNeedToLearnChinese" class="form-control" placeholder="" name="howDoYourStaffNeedToLearnChinese" /> <div class="invalid-feedback"> This field is required. Please check it again! </div> </div> </div> <div class="form-group"> <label for="isThereAnySpecificNeedLearning">5. Is there any specific subject or vocabulary your staff need learning?</label> <div class="input-group"> <input id="isThereAnySpecificNeedLearning" class="form-control" placeholder="" name="isThereAnySpecificNeedLearning" /> <div class="invalid-feedback"> This field is required. Please check it again! </div> </div> </div> </div> </div> <div style="overflow:auto;text-align: center;"> <div> <button type="button" class="btn btn-danger btn-lg" id="prevBtn" onclick="nextPrev(-1)">Previous</button> <button type="button" class="btn btn-danger btn-lg" id="nextBtn" onclick="nextPrev(1)">Next</button> </div> </div> </form> <!-- Circles which indicates the steps of the form: --> <div style="text-align:center;margin-top:5px;"> <span class="step"></span> <span class="step"></span> <span class="step"></span> </div> </div> </div> </div> </div> </div> </div> <script>!function (e, i, s) { if ("undefined" != typeof module && module.exports) module.exports = s(); else if ("function" == typeof define && define.amd) define(i, s); else e[i] = s() }(this, "bowser", function () { var e = true; function i(i) { function s(e) { var s = i.match(e); return s && s.length > 1 && s[1] || "" } function o(e) { var s = i.match(e); return s && s.length > 1 && s[2] || "" } var r = s(/(ipod|iphone|ipad)/i).toLowerCase(), n = /like android/i.test(i), t = !n && /android/i.test(i), a = /nexus\s*[0-6]\s*/i.test(i), d = !a && /nexus\s*[0-9]+/i.test(i), l = /CrOS/.test(i), f = /silk/i.test(i), m = /sailfish/i.test(i), v = /tizen/i.test(i), p = /(web|hpw)os/i.test(i), c = /windows phone/i.test(i), u = /SamsungBrowser/i.test(i), h = !c && /windows/i.test(i), w = !r && !f && /macintosh/i.test(i), b = !t && !m && !v && !p && /linux/i.test(i), g = o(/edg([ea]|ios)\/(\d+(\.\d+)?)/i), k = s(/version\/(\d+(\.\d+)?)/i), x = /tablet/i.test(i) && !/tablet pc/i.test(i), y = !x && /[^-]mobi/i.test(i), S = /xbox/i.test(i), B; if (/opera/i.test(i)) B = { name: "Opera", opera: e, version: k || s(/(?:opera|opr|opios)[\s\/](\d+(\.\d+)?)/i) }; else if (/opr\/|opios/i.test(i)) B = { name: "Opera", opera: e, version: s(/(?:opr|opios)[\s\/](\d+(\.\d+)?)/i) || k }; else if (/SamsungBrowser/i.test(i)) B = { name: "Samsung Internet for Android", samsungBrowser: e, version: k || s(/(?:SamsungBrowser)[\s\/](\d+(\.\d+)?)/i) }; else if (/coast/i.test(i)) B = { name: "Opera Coast", coast: e, version: k || s(/(?:coast)[\s\/](\d+(\.\d+)?)/i) }; else if (/yabrowser/i.test(i)) B = { name: "Yandex Browser", yandexbrowser: e, version: k || s(/(?:yabrowser)[\s\/](\d+(\.\d+)?)/i) }; else if (/ucbrowser/i.test(i)) B = { name: "UC Browser", ucbrowser: e, version: s(/(?:ucbrowser)[\s\/](\d+(?:\.\d+)+)/i) }; else if (/mxios/i.test(i)) B = { name: "Maxthon", maxthon: e, version: s(/(?:mxios)[\s\/](\d+(?:\.\d+)+)/i) }; else if (/epiphany/i.test(i)) B = { name: "Epiphany", epiphany: e, version: s(/(?:epiphany)[\s\/](\d+(?:\.\d+)+)/i) }; else if (/puffin/i.test(i)) B = { name: "Puffin", puffin: e, version: s(/(?:puffin)[\s\/](\d+(?:\.\d+)?)/i) }; else if (/sleipnir/i.test(i)) B = { name: "Sleipnir", sleipnir: e, version: s(/(?:sleipnir)[\s\/](\d+(?:\.\d+)+)/i) }; else if (/k-meleon/i.test(i)) B = { name: "K-Meleon", kMeleon: e, version: s(/(?:k-meleon)[\s\/](\d+(?:\.\d+)+)/i) }; else if (c) { B = {name: "Windows Phone", osname: "Windows Phone", windowsphone: e}; if (g) { B.msedge = e; B.version = g } else { B.msie = e; B.version = s(/iemobile\/(\d+(\.\d+)?)/i) } } else if (/msie|trident/i.test(i)) B = { name: "Internet Explorer", msie: e, version: s(/(?:msie |rv:)(\d+(\.\d+)?)/i) }; else if (l) B = { name: "Chrome", osname: "Chrome OS", chromeos: e, chromeBook: e, chrome: e, version: s(/(?:chrome|crios|crmo)\/(\d+(\.\d+)?)/i) }; else if (/edg([ea]|ios)/i.test(i)) B = { name: "Microsoft Edge", msedge: e, version: g }; else if (/vivaldi/i.test(i)) B = { name: "Vivaldi", vivaldi: e, version: s(/vivaldi\/(\d+(\.\d+)?)/i) || k }; else if (m) B = { name: "Sailfish", osname: "Sailfish OS", sailfish: e, version: s(/sailfish\s?browser\/(\d+(\.\d+)?)/i) }; else if (/seamonkey\//i.test(i)) B = { name: "SeaMonkey", seamonkey: e, version: s(/seamonkey\/(\d+(\.\d+)?)/i) }; else if (/firefox|iceweasel|fxios/i.test(i)) { B = {name: "Firefox", firefox: e, version: s(/(?:firefox|iceweasel|fxios)[ \/](\d+(\.\d+)?)/i)}; if (/\((mobile|tablet);[^\)]*rv:[\d\.]+\)/i.test(i)) { B.firefoxos = e; B.osname = "Firefox OS" } } else if (f) B = { name: "Amazon Silk", silk: e, version: s(/silk\/(\d+(\.\d+)?)/i) }; else if (/phantom/i.test(i)) B = { name: "PhantomJS", phantom: e, version: s(/phantomjs\/(\d+(\.\d+)?)/i) }; else if (/slimerjs/i.test(i)) B = { name: "SlimerJS", slimer: e, version: s(/slimerjs\/(\d+(\.\d+)?)/i) }; else if (/blackberry|\bbb\d+/i.test(i) || /rim\stablet/i.test(i)) B = { name: "BlackBerry", osname: "BlackBerry OS", blackberry: e, version: k || s(/blackberry[\d]+\/(\d+(\.\d+)?)/i) }; else if (p) { B = {name: "WebOS", osname: "WebOS", webos: e, version: k || s(/w(?:eb)?osbrowser\/(\d+(\.\d+)?)/i)}; /touchpad\//i.test(i) && (B.touchpad = e) } else if (/bada/i.test(i)) B = { name: "Bada", osname: "Bada", bada: e, version: s(/dolfin\/(\d+(\.\d+)?)/i) }; else if (v) B = { name: "Tizen", osname: "Tizen", tizen: e, version: s(/(?:tizen\s?)?browser\/(\d+(\.\d+)?)/i) || k }; else if (/qupzilla/i.test(i)) B = { name: "QupZilla", qupzilla: e, version: s(/(?:qupzilla)[\s\/](\d+(?:\.\d+)+)/i) || k }; else if (/chromium/i.test(i)) B = { name: "Chromium", chromium: e, version: s(/(?:chromium)[\s\/](\d+(?:\.\d+)?)/i) || k }; else if (/chrome|crios|crmo/i.test(i)) B = { name: "Chrome", chrome: e, version: s(/(?:chrome|crios|crmo)\/(\d+(\.\d+)?)/i) }; else if (t) B = {name: "Android", version: k}; else if (/safari|applewebkit/i.test(i)) { B = {name: "Safari", safari: e}; if (k) B.version = k } else if (r) { B = {name: "iphone" == r ? "iPhone" : "ipad" == r ? "iPad" : "iPod"}; if (k) B.version = k } else if (/googlebot/i.test(i)) B = { name: "Googlebot", googlebot: e, version: s(/googlebot\/(\d+(\.\d+))/i) || k }; else B = {name: s(/^(.*)\/(.*) /), version: o(/^(.*)\/(.*) /)}; if (!B.msedge && /(apple)?webkit/i.test(i)) { if (/(apple)?webkit\/537\.36/i.test(i)) { B.name = B.name || "Blink"; B.blink = e } else { B.name = B.name || "Webkit"; B.webkit = e } if (!B.version && k) B.version = k } else if (!B.opera && /gecko\//i.test(i)) { B.name = B.name || "Gecko"; B.gecko = e; B.version = B.version || s(/gecko\/(\d+(\.\d+)?)/i) } if (!B.windowsphone && (t || B.silk)) { B.android = e; B.osname = "Android" } else if (!B.windowsphone && r) { B[r] = e; B.ios = e; B.osname = "iOS" } else if (w) { B.mac = e; B.osname = "macOS" } else if (S) { B.xbox = e; B.osname = "Xbox" } else if (h) { B.windows = e; B.osname = "Windows" } else if (b) { B.linux = e; B.osname = "Linux" } function O(e) { switch (e) { case"NT": return "NT"; case"XP": return "XP"; case"NT 5.0": return "2000"; case"NT 5.1": return "XP"; case"NT 5.2": return "2003"; case"NT 6.0": return "Vista"; case"NT 6.1": return "7"; case"NT 6.2": return "8"; case"NT 6.3": return "8.1"; case"NT 10.0": return "10"; default: return undefined } } var T = ""; if (B.windows) T = O(s(/Windows ((NT|XP)( \d\d?.\d)?)/i)); else if (B.windowsphone) T = s(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i); else if (B.mac) { T = s(/Mac OS X (\d+([_\.\s]\d+)*)/i); T = T.replace(/[_\s]/g, ".") } else if (r) { T = s(/os (\d+([_\s]\d+)*) like mac os x/i); T = T.replace(/[_\s]/g, ".") } else if (t) T = s(/android[ \/-](\d+(\.\d+)*)/i); else if (B.webos) T = s(/(?:web|hpw)os\/(\d+(\.\d+)*)/i); else if (B.blackberry) T = s(/rim\stablet\sos\s(\d+(\.\d+)*)/i); else if (B.bada) T = s(/bada\/(\d+(\.\d+)*)/i); else if (B.tizen) T = s(/tizen[\/\s](\d+(\.\d+)*)/i); if (T) B.osversion = T; var P = !B.windows && T.split(".")[0]; if (x || d || "ipad" == r || t && (3 == P || P >= 4 && !y) || B.silk) B.tablet = e; else if (y || "iphone" == r || "ipod" == r || t || a || B.blackberry || B.webos || B.bada) B.mobile = e; if (B.msedge || B.msie && B.version >= 10 || B.yandexbrowser && B.version >= 15 || B.vivaldi && B.version >= 1 || B.chrome && B.version >= 20 || B.samsungBrowser && B.version >= 4 || B.firefox && B.version >= 20 || B.safari && B.version >= 6 || B.opera && B.version >= 10 || B.ios && B.osversion && B.osversion.split(".")[0] >= 6 || B.blackberry && B.version >= 10.1 || B.chromium && B.version >= 20) B.a = e; else if (B.msie && B.version < 10 || B.chrome && B.version < 20 || B.firefox && B.version < 20 || B.safari && B.version < 6 || B.opera && B.version < 10 || B.ios && B.osversion && B.osversion.split(".")[0] < 6 || B.chromium && B.version < 20) B.c = e; else B.x = e; return B } var s = i("undefined" !== typeof navigator ? navigator.userAgent || "" : ""); s.test = function (e) { for (var i = 0; i < e.length; ++i) { var o = e[i]; if ("string" === typeof o) if (o in s) return true } return false }; function o(e) { return e.split(".").length } function r(e, i) { var s = [], o; if (Array.prototype.map) return Array.prototype.map.call(e, i); for (o = 0; o < e.length; o++) s.push(i(e[o])); return s } function n(e) { var i = Math.max(o(e[0]), o(e[1])); var s = r(e, function (e) { var s = i - o(e); e += new Array(s + 1).join(".0"); return r(e.split("."), function (e) { return new Array(20 - e.length).join("0") + e }).reverse() }); while (--i >= 0) if (s[0][i] > s[1][i]) return 1; else if (s[0][i] === s[1][i]) { if (0 === i) return 0 } else return -1 } function t(e, o, r) { var t = s; if ("string" === typeof o) { r = o; o = void 0 } if (void 0 === o) o = false; if (r) t = i(r); var a = "" + t.version; for (var d in e) if (e.hasOwnProperty(d)) if (t[d]) { if ("string" !== typeof e[d]) throw new Error("Browser version in the minVersion map should be a string: " + d + ": " + String(e)); return n([a, e[d]]) < 0 } return o } function a(e, i, s) { return !t(e, i, s) } s.isUnsupportedBrowser = t; s.compareVersions = n; s.check = a; s._detect = i; s.detect = i; return s });</script> <!--SCRIPTS--> <script src="/min/production.min.js"></script> <!--SCRIPTS END--> <script> (function () { if (typeof bowser !== 'undefined') { // -------------------------------------------------------------------- // Additional compatibility tips: // // • The browser/OS compatibility below is determined by the needs of Vue.js and Bootstrap.js. // • All browsers on Windows XP are probably unsupported (because of compatibility issues with modern SSL certs) // • See https://getbootstrap.com/docs/4.0/getting-started/browsers-devices/ // • See also https://github.com/vuejs/vue/tree/0e5306658ad7b83c553a6a3eeedb15f9066ab063#browser-compatibility // • For more info, see: // - https://github.com/lancedikson/bowser/blob/1fb99ced0e8834fd9662604bad7e0f0c3eba2786/test/test.js#L110-L123 // - https://github.com/lancedikson/bowser/tree/1fb99ced0e8834fd9662604bad7e0f0c3eba2786#rendering-engine-flags // -------------------------------------------------------------------- var LATEST_SUPPORTED_VERSION_BY_OS = { iOS: '10',//« earliest version to eliminate rare bug where `window.location` doesn't exist momentarily after doing a server-side redirect Android: '6' }; var LATEST_SUPPORTED_VERSION_BY_USER_AGENT = { msedge: '16', msie: '11', safari: '10',//« earliest version to eliminate rare bug where `window.location` doesn't exist momentarily after doing a server-side redirect firefox: '28',//« earliest version to support both ES5 (for Vue.js) and unprefixed flexbox (for Bootstrap 4) chrome: '29',//« earliest version to support both ES5 (for Vue.js) and unprefixed flexbox (for Bootstrap 4) opera: '17',//« earliest version to support both ES5 (for Vue.js) and unprefixed flexbox (for Bootstrap 4) }; var LATEST_SUPPORTED_VERSION_BY_BROWSER_NAME = { 'microsoft edge': LATEST_SUPPORTED_VERSION_BY_USER_AGENT.msedge, 'internet explorer': LATEST_SUPPORTED_VERSION_BY_USER_AGENT.msie, 'safari': LATEST_SUPPORTED_VERSION_BY_USER_AGENT.safari, 'firefox': LATEST_SUPPORTED_VERSION_BY_USER_AGENT.firefox, 'chrome': LATEST_SUPPORTED_VERSION_BY_USER_AGENT.chrome, 'opera': LATEST_SUPPORTED_VERSION_BY_USER_AGENT.opera }; var isUnsupportedBrowser = ( bowser.isUnsupportedBrowser(LATEST_SUPPORTED_VERSION_BY_USER_AGENT, window.navigator.userAgent) ); var isUnsupportedOS = ( LATEST_SUPPORTED_VERSION_BY_OS[bowser.osname] && bowser.compareVersions([bowser.osversion, LATEST_SUPPORTED_VERSION_BY_OS[bowser.osname]]) < 0 ); if (isUnsupportedBrowser || isUnsupportedOS) { document.body.innerHTML = '<div class="container browser-warning-message text-center">' + '<img style="display: block; height: auto; width: 160px; margin: 0 auto 15px;" alt="Logo" src="/images/brand/logo.png"/>' + '</a>' + ' <h5 class="card-title">This ' + (isUnsupportedBrowser ? 'browser' : 'operating system') + ' is not supported.</h5>' + ' <p style="max-width: 500px; margin-left: auto; margin-right: auto;">' + ' This app does not currently support ' + ( isUnsupportedBrowser ? '<strong>' + bowser.name + '</strong> for versions lower than <strong>v' + LATEST_SUPPORTED_VERSION_BY_BROWSER_NAME[bowser.name.toLowerCase()] + '</strong>. ' + 'To continue, please upgrade your browser to the newest version, or download the <a href="https://www.google.com/chrome">latest version of Google Chrome</a>.' + ' </p>' + ' <a class="btn btn-primary" style="padding: 5px 10px" href="https://www.google.com/chrome">Download Chrome</a>' : '<strong>' + bowser.osname + '</strong> for versions lower than <strong>v' + LATEST_SUPPORTED_VERSION_BY_OS[bowser.osname] + '</strong>. ' + 'To continue, please use a different device, or <a href="' + (bowser.osname === 'iOS' ? 'https://support.apple.com/en-us/HT204204' : 'https://support.google.com/android/?hl=en#topic=7313011') + '">upgrade this device\'s software</a> to the latest compatible version.' + ' </p>' + ' <a class="btn btn-primary" style="padding: 5px 10px" href="/contact">Need help?</a>' ) + '</div>'; document.body.style.padding = '75px 0'; } } })();//† </script> <script> function getCookie(cname) { const name = cname + "="; const decodedCookie = decodeURIComponent(document.cookie); const ca = decodedCookie.split(';'); for (let i = 0; i < ca.length; i++) { var c = ca[i]; while (c.charAt(0) == ' ') { c = c.substring(1); } if (c.indexOf(name) == 0) { return c.substring(name.length, c.length); } } return ""; } function setCookie(cname, cvalue, exdays) { const d = new Date(); d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000)); const expires = "expires=" + d.toUTCString(); document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/"; } //============================ Corporate Form ============================// var currentTab = 0; // Current tab is set to be the first tab (0) function validateEmail(email) { const regex = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; return regex.test(String(email).toLowerCase()); } function validatePhoneNumber(phone_number) { const regex = /^(\+{0,})(\d{0,})([(]{1}\d{1,3}[)]{0,}){0,}(\s?\d+|\+\d{2,3}\s{1}\d+|\d+){3}[\s|-]?\d+([\s|-]?\d+){2,2}(\s){0,}$/gm; return regex.test(String(phone_number)) && String(phone_number).length >= 8; } function validateMinLength(text, minLength = 3) { return String(text).length >= 3; } function getFormData(formID) { let formData = {}; $(formID).serializeArray().forEach(function(item) { Object.assign(formData, { [item.name]: item.value }); }); return formData; } function submitForm() { const formData = getFormData('#corporateForm'); fetch('/api/v1/entrance/send-corporate-message', { body: JSON.stringify(formData), method: 'POST', mode: 'cors', redirect: 'follow', referrer: 'no-referrer', }) .then((_) => { closePopup(); }) .catch(err => console.log(err)) } const onFillInput = async (e) => { const target = e.target; $(target).removeClass('invalid'); $(target).removeClass('border-danger'); $(target).parent().find('.invalid-feedback').removeClass('d-block'); } function closePopup() { $("#corporatePopup").fadeOut(400); setCookie('corporatePopup', false, 30); } function showTab(n) { var tabs = document.getElementsByClassName("tab"); tabs[n].style.display = "block"; if (n == 0) { document.getElementById("prevBtn").style.display = "none"; } else { document.getElementById("prevBtn").style.display = "inline"; } if (n == (tabs.length - 1)) { document.getElementById("nextBtn").innerHTML = "Submit"; } else { document.getElementById("nextBtn").innerHTML = "Next"; } fixStepIndicator(n) } function nextPrev(n) { var tabs = document.getElementsByClassName("tab"); if (n === 1 && !validateForm()) return false; tabs[currentTab].style.display = "none"; // Hide the current tab: currentTab = currentTab + n; // Increase or decrease the current tab by 1 if(currentTab === 2 ) { const isEducation = $('#radioTypeOfEducation').prop('checked'); if(isEducation) { $('#organizationGroup').hide(); $('#educationGroup').show(); } else { $('#organizationGroup').show(); $('#educationGroup').hide(); } } if (currentTab >= tabs.length) { submitForm(); currentTab -= 1; tabs[currentTab].style.display = "block"; $("#prevBtn").remove(); $("#nextBtn").remove(); return false; } // Otherwise, display the correct tab: showTab(currentTab); } function validateForm() { // This function deals with validation of the form fields let tags, inputs, valid = true; tags = document.getElementsByClassName("tab"); inputs = tags[currentTab].getElementsByTagName("input"); // A loop that checks every input field in the current tab: for (let i = 0; i < inputs.length; i++) { switch(inputs[i].type) { case 'email': if(!inputs[i].value || !validateEmail(inputs[i].value)) { showErrorInputMessage(inputs[i]); valid = false; } break; case 'tel': if(!inputs[i].value || !validatePhoneNumber(inputs[i].value)) { showErrorInputMessage(inputs[i]); valid = false; } break; default: if ($(inputs[i]).is(":visible") && !inputs[i].value) { showErrorInputMessage(inputs[i]); valid = false; } } } // If the valid status is true, mark the step as finished and valid: if (valid) { document.getElementsByClassName("step")[currentTab].className += " finish"; } return valid; } function showErrorInputMessage(input, $message = '') { input.className += " invalid border-danger"; let errorMessageEl = input.parentElement.querySelector('.invalid-feedback'); if(errorMessageEl) { errorMessageEl.className += ' d-block'; if($message) { errorMessageEl.innerHTML = $message; } } } function fixStepIndicator(n) { var steps = document.getElementsByClassName("step"); for (let i = 0; i < steps.length; i++) { steps[i].className = steps[i].className.replace(" active", ""); } steps[n].className += " active"; } //============================ End Corporate Form ============================// $(document).ready(function () { showTab(currentTab); // Display the current tab $("#closeCorporatePopup").on('click', closePopup); $('#corporateForm input').on('input', onFillInput); if (getCookie('corporatePopup') && getCookie('corporatePopup') !== 'false') { setTimeout(function () { $("#corporatePopup").fadeIn(400) }, 4000); } }); </script> </body> </html>