1<!DOCTYPE html> 2<html lang="en-US" prefix="og: http://ogp.me/ns#"> 3 <head> 4 <base href="/"> 5 <meta charset="utf-8"> 6 <meta name="viewport" content="width=device-width, initial-scale=1"> 7 <link rel="icon" href="/static/media/wl_client_images/89329c89e5c74be588f06e7369191f09.png" /> 8 9 <meta name="google-signin-client_id" content="980830753745-fs6iurtqnfcvjk9fsasnto63ol268bnu.apps.googleusercontent.com"> 10 11 <meta name="author" content="Vidyantu"/> 12 <meta name="language" content="English"/> 13 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap" as="style" onload="this.onload=null;this.rel='stylesheet'"> 14 <!-- facebook meta start --> 15
15<script src="https://accounts.google.com/gsi/client" async defer></script>
15 16 17 18 <meta property="fb:app_id" content="1487792121625210" /> 19 20 <!-- facebook meta end --> 21 <!-- twitter meta start --> 22 23 <link rel="manifest" href="/whitelabel-manifest.json"> 24 25 26 <!-- twitter meta end --> 27 <link defer rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto|Roboto Slab|PT+Sans|Montserrat" media="print" onload="this.media='all'" crossorigin="anonymous"> 28 <link defer rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" crossorigin="anonymous"> 29 <link defer rel="stylesheet" href="https://use.fontawesome.com/releases/v5.12.1/css/all.css" crossorigin="anonymous"> 30 <link href="https://fonts.googleapis.com/css?family=Nunito:200,200i,300,300i,400,400i,600,600i,700,700i,800,800i,900,900i" rel="stylesheet" crossorigin="anonymous"> 31
31<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
31 32
32<script src="/static/node_modules/jquery-cookie/jquery-cookie.min.js?v=23d834419c7ccced820e192be7081228"></script>
32 33
33<script defer src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
33 34
34<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js" defer></script>
34 35
35<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular-animate.min.js" defer></script>
35 36
36<script defer type="text/javascript" src="/static/node_modules/lozad/lozad.min.js?v=dc99de0e57cfb5b77a5fea9bf7c8adaa"></script>
36 37
37<script type="text/javascript"></script>
37 38 <link rel="stylesheet" href="/static/css/base.css?v=e1fff949c7f169adc391a1ffd1beedcf"> 39 <!-- Mo Engage Start --> 40
40<script> 41 (function(i,s,o,g,r,a,m,n){i.moengage_object=r;t={};q=function(f){return function(){(i.moengage_q=i.moengage_q||[]).push({f:f,a:arguments})}};f=['track_event','add_user_attribute','add_first_name','add_last_name','add_email','add_mobile','add_user_name','add_gender','add_birthday','destroy_session','add_unique_user_id','moe_events','call_web_push','track','location_type_attribute'],h={onsite:["getData","registerCallback"]};for(k in f){t[f[k]]=q(f[k])}for(k in h)for(l in h[k]){null==t[k]&&(t[k]={}),t[k][h[k][l]]=q(k+"."+h[k][l])}a=s.createElement(o);m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m);i.moe=i.moe||function(){n=arguments[0];return t};a.onload=function(){if(n){i[r]=moe(n)}}})(window,document,'script','https://cdn.moengage.com/webpush/moe_webSdk.min.latest.js','Moengage') 42 43 44 Moengage = moe({ 45 app_id:"", 46 debug_logs: 0 47 }); 48 49 window.addEventListener("MOE_LIFECYCLE",function(e){ 50 if (e.detail.name === "SDK_INITIALIZED") { 51 // Due to some reason "Moengage.track_event" is not working properly and all the functionalities are getting broken which rely on its "Promise" to get resolved. 52 // Therefore we are over-writing the functionality of "Moengage.track_event" as a temporary hacky solution while investigation is being done. 53 Moengage.track_event = (event_name, attributes_ds) => { 54 return new Promise(function(resolve, reject) { 55 resolve(); 56 }); 57 }; 58 } 59 }); 60 </script>
60 61 <!-- Mo Engage End --> 62
62<script src="/static/js/menu_desktop.js?v=25546c08b23205ecd61024f03b95caef" defer></script>
62 63 64 65 66 67<title>Vidyantu</title> 68<meta property="og:title" content="Vidyantu"/> 69<meta property="og:image:alt" content="Vidyantu"/> 70<meta name="twitter:title" content="Vidyantu"/> 71 72 73<meta name="description" content="Vidyantu - the top choice for preparation for K1 to K12, CBSE, ICSE, JEE, NEET, UPSC, GPSC, IBPS, CSIR-NET, UGC-NET and all types of government and competitive exams."/> 74 75<meta name="author" content="Vidyantu"/> 76<meta name="viewport" content="width=device-width, initial-scale=1.0"/> 77<meta name="language" content="English, Hindi"/> 78<meta name="classification" content=" Vidyantuâs Test Series have a great number of tests for you to attempt and polish your preparation. Prepare for your exams with us."/> 79<meta property="og:locale" content="en_US" /> 80<meta property="og:type" content="image"/> 81<meta property="og:url" content="https://vidyantu.in"/> 82<meta property="og:image" content=""/> 83 84<meta name="og:description" content="Vidyantu - the top choice for preparation for K1 to K12, CBSE, ICSE, JEE, NEET, UPSC, GPSC, IBPS, CSIR-NET, UGC-NET and all types of government and competitive exams."/> 85 86<meta property="og:site_name" content=""/> 87<meta name="twitter:card" content="summary"/> 88<meta name="twitter:site" content=""/> 89 90<meta name="twitter:description" content="Vidyantu - the top choice for preparation for K1 to K12, CBSE, ICSE, JEE, NEET, UPSC, GPSC, IBPS, CSIR-NET, UGC-NET and all types of government and competitive exams."/> 91 92<meta name="twitter:image:src" content=""/> 93 94 95<style> 96#iframe_template2_preview { 97border: unset; 98margin: 0; 99padding: 0; 100} 101footer { 102margin-top: -5px; 103} 104</style> 105 106 107
107<script> 108
vendor: 163 bytes, lines 108-111
108window.dataLayer = window.dataLayer || []; 109 function gtag(){dataLayer.push(arguments);} 110 gtag('js', new Date()); 111 gtag('config', '
111UA-77283231-6
vendor: 12 bytes, lines 111-112
111'); 112
112</script>
112 113 114 115 116 <!-- Global site tag (gtag.js) - Google Analytics (whitelabel) -->
vendor: 72 bytes, lines 116-117
116 117 <script async src="https://www.googletagmanager.com/gtag/js?id=
117G-RKSQ2SW649
vendor: 20 bytes, lines 117-118
117"></script> 118
118<script> 119
vendor: 163 bytes, lines 119-122
119window.dataLayer = window.dataLayer || []; 120 function gtag(){dataLayer.push(arguments);} 121 gtag('js', new Date()); 122 gtag('config', '
122G-RKSQ2SW649
vendor: 12 bytes, lines 122-123
122'); 123
123</script>
123 124 125 126 127 </head> 128<body ng-app="TestSeries"> 129 130 <header> 131 132 <div ng-controller="MenuCtrl" ng-init="header_init()"> 133 134 <div class="google-one-tap-signin-highlights"> 135 <div class="gotsh-text"> 136 <div class="head"><span class="lang" key="signin">Sign in</span></div> 137 <div class="subhead">Create your free account to access free Mocktests, Quizzes, Current Affairs & Daily News.</div> 138 </div> 139 <div class="gotsh-arrow-container"> 140 <img class="desktop" src="/static/images/gotsh-highlight.svg?v=aa7270d9b7b45edfd0fcce9c5e5cf3c6" alt="Highlight"> 141 </div> 142 </div> 143 144 145 <div class="menu_overlay_coupon" id="promo_code_back" ng-show="rmodel" ng-click="close_rmodel_sub()"></div> 146 <div class="Ts_headerFull_W" id="desktop_navbar_height"> 147 <nav class="navbar navbar-default TsH_Navigation" id="Tst_Fixed_navbar"> 148 <div class="TsH_toolbar"> 149 <div class="TsH_logo_image"> 150 <a target="_self" href="/" id="eg_header_logo_redirect_url"> 151 <img src=/static/media/wl_client_images/0d81846c89664d96be76b8ce19841676.png alt="Vidyantu" class="lg_logPopup_Logo" id="header_logo_img" style="display: block;height: 50px;background-size: contain;background-position: center;"> 152 </a> 153 </div> 154 <div class="TsH_searchBar"> 155 <div class="TsH_searchList"> 156 <div class="input-group TsH_searchView"> 157 158 <input type="text" ng-model="examSearchTextHead" ng-keyup="examAjaxSearchHead(examSearchTextHead, $event)" class="form-control TsH_examCourseBox search_box" placeholder="Search Exams" ng-value="currentSearchTitle" /> 159 160 <div class="input-group-btn"> 161 <button class="btn btn-default" type="button" ng-click="examAjaxSearchHead(examSearchTextHead, $event)"> 162 <i class="glyphicon glyphicon-search"></i> 163 </button> 164 </div> 165 </div> 166 167 <div class="TsH_examSearch_list" ng-show="examSearchStatusHead"> 168 <ul class="TsH_Exam_nameList" ng-if="searchExamResultHead.length == 0"> 169 <li class="TsH_Exam_name_li"><a class="lang" key="nrfound">No Result Found</a></li> 170 </ul> 171 <ul class="TsH_Exam_nameList list_full" ng-if="searchExamResultHead.length > 0"> 172 <li ng-repeat="x in searchExamResultHead" title="{{x.name}}" class="TsH_Exam_name_li" data-value="{{x.name}}"><a target="_self" ng-href="{{x.url}}" ng-bind="x.name"></a></li> 173 </ul> 174 </div> 175 </div> 176 </div> 177 <div class="TsH_rightMenu_nav"> 178 <ul class="nav navbar-nav navbar-right TsH_rgtMenu_link"> 179 180 <li><a ng-click="open_redeem_promo()"><span class="lang header_text" key="activation">Activation Key</span></a></li> 181 182 <li class=" TsH_text_seprator " ng-show="!isLoggedIn()"><a target="_self" ng-href="{{ createLogin() }}"><span class="TsH_login header_text"><span class="lang" key="login">Login</span></span></a> 183 <a id="signup_button" target="_self" ng-href="{{ createSignup() }}" onclick="sendGoogleAnalyticsEvent();"> <span class="TsH_signUp"><span class="lang" key="signup"></span></span></a> 184 185 <div id="g_id_onload" 186 data-client_id="980830753745-fs6iurtqnfcvjk9fsasnto63ol268bnu.apps.googleusercontent.com" 187 data-skip_prompt_cookie="eg_user" 188 data-moment_callback="continueWithNextStep" 189 data-callback="handleCredentialResponse"> 190 </div> 191 192 </li> 193 <li class=" TsH_text_seprator TsH_prof" ng-show="isLoggedIn()"><a><img data-src="/static/images/user_profile.png?v=9f51801bc14935ca1592910132e11888" class="img-responsive lozad"><span ng-bind="root_user_data.name" id="user_name_header" class="header_text"></span> <i class="fa fa-angle-down header_text"></i> </a> 194 <ul class="TsH_prof_Mmenu"> 195 <li id="erp_li" ng-if="root_user_data && root_user_data.level == 9" style="display: none;"><a target="_self" href="/institute"><i class="fa fa-graduation-cap"></i><span style="margin-left:10px;">
195Institute</span></a></li> 196 <li><a target="_self" href="/my_profile"><i class="fa fa-clone" aria-hidden="true"></i><span class="lang" key="myprofile"style="margin-left:10px;">My Profile</span></a> </li> 197 <li id="admin_li" ng-show="root_user_data && root_user_data.level != 9"><a target="_self" href="/wl_admin?action=initial_call"><i class="fa fa-user-secret" aria-hidden="true"></i><span class="lang" key="admin" style="margin-left:10px;">Admin Panel</span></a> </li> 198 <li onclick="delete_cookie('vle_buy_package')"><a target="_self" href="/logout" onclick="Moengage.destroy_session();"><i class="fas fa-sign-out-alt" aria-hidden="true"></i><span class="lang" key="logout" style="margin-left:10px;">Logout</span></a></li> 199 </ul> 200 </li> 201 202 203 <li class="tS_Phone_modal"> 204 <a id="phoneMenu" style="display: flex;align-items: center;" href="tel:9870038100"> 205 <img src="/static/images/Social_media_icons/phone_call_icon.png?v=5638e9a9bcf5f28ac3ddcfc022b50fe7" width="30" height="30" loading="lazy" alt="phone-call-icon"> 206 <div style="margin-left: 10px;"> 207 <p style="margin-bottom: 0;" class="contact_no header_text"> 9870038100 </p> 208 <p style="margin-bottom: 0;" class="lang header_text" id="support_time" style="display:none;"></p> 209 </div> 210 </a> 211 </li> 212 213 214 </ul> 215 </div> 216 </div> 217 </nav> 218 </div> 219 220 <!-- Activation Key Modal Start --> 221 <div id="TS_coupon_modal" class="TS_PromoMmodal" ng-show="rmodel" ng-click="checkCouponClick($event)"> 222 <div class="TS_PromoMmodal_content"> 223 <div class="TS_PromoMmodal_header"> 224 <span class="coupon_close" ng-click="close_rmodel_sub()">×</span> 225 </div> 226 <div class="TS_PromoMmodal_body"> 227 <div class="TS_promoCode_part_1" ng-show="rmodel_sub==1"> 228 <b class="TS_promo_heading"><span class="lang" key="diglogboxdata">Please enter your 10 digit Activation Key below</span></b> 229 <form class="TS_code_enter_form"> 230 <div class="form-group"> 231 <input type="text" class="form-control" placeholder="e.g. a65hw6eg43" ng-model="headerCouponCode"> 232 </div> 233 <button ng-disabled="!headerCouponCode" class="btn btn-primary center-block Ts_code_submit" ng-click="fetchRedeemPacks()"><span class="lang" key="submit">Apply</span></button> 234 </form> 235 <h4 ng-if="errorMsg" class="text-danger" ng-bind="errorMsg"></h4> 236 </div> 237 <div class="TS_promoCode_part_2" ng-show="rmodel_sub==2"> 238 <b class="TS_promo_heading unlock_text_heading">Select your test package and unlock it</b> 239 <ul class="ts_unlock_test_list style_scroll"> 240 <li class="ts_unlock_test_open" ng-repeat="x in couponResponse"> 241 <input type='radio' ng-value='x[1]' name='coupon_radio_' id="{{'radio'+x[1]}}" ng-model="coupon_radio" ng-change="getPackCid(coupon_radio)"/> 242 <label for="{{'radio'+x[1]}}" ng-click="getPackCid(coupon_radio)"> 243 <h4 class="test_openExam_name" title="{{x[0]}}" ng-bind="x[0]" id="{{'radioH'+x[1]}}"></h4> 244 </label> 245 </li> 246 </ul> 247 <div class="ts_unlock_subtest style_scroll" ng-hide="btnStatus"> 248 <div class="unlock_subtestName" ng-repeat="y in showCouponData"> 249 <h4 class="test_openExam_name" title="{{y[0]}}" ng-bind="y[0]"></h4> 250 <p class="test_openExam_catg" title="{{sanL2(y[1])}}" ng-bind="sanL2(y[1])"></p> 251 </div> 252 </div> 253 <button ng-hide="btnStatus" ng-disabled="btnStatus" class="btn btn-primary center-block Ts_code_submit Ts_code_unlock_btn" type="button" ng-click="unlockCouponCode()">Unlock now</button> 254 </div> 255 256 <div class="TS_promoCode_part_3" ng-show="rmodel_sub==3"> 257 <p class="attentionText">You will not be able to change the package after this!</p> 258 <p class="attentionText">Are you sure you want to unlock <span ng-bind="selectedPack[0]"></span></p> 259 <form ng-if="!isLoggedIn()" method="GET" action="/payment"> 260 <input type="hidden" ng-model="afterCouponCode" name="coupon_code" ng-value="successCoupon"> 261 <input type="hidden" ng-model="afterPackId" name="pack_id" ng-value="packageId"> 262 <div class="Ts_warningBtn"> 263 <div class="Ts_warningBtn_left"> 264 <button class="btn btn-primary Ts_code_submit" type="submit">Yes! I am sure.</button> 265 </div> 266 <div class="Ts_warningBtn_right"> 267 <button class="btn btn-primary Ts_code_submit Ts_Btn_think" type="button" ng-click="rmodel_sub=2">Think again!</button> 268 </div> 269 </div> 270 </form> 271 <form ng-if="isLoggedIn()" ng-submit="sendCouponConf()"> 272 <input type="hidden" id="coupon_code_header" ng-value="successCoupon"> 273 <input type="hidden" id="pack_id_header" ng-value="packageId"> 274 <div class="Ts_warningBtn"> 275 <div class="Ts_warningBtn_left"> 276 <button class="btn btn-primary Ts_code_submit" type="submit">Yes! I am sure.</button> 277 </div> 278 <div class="Ts_warningBtn_right"> 279 <button class="btn btn-primary Ts_code_submit Ts_Btn_think" type="button" ng-click="rmodel_sub=2">Think again!</button> 280 </div> 281 </div> 282 </form> 283 <div id="activation_code_form_div"></div> 284 </div> 285 </div> 286 </div> 287 </div> 288 <!-- Activation Key Modal End --> 289 290 <!-- Package Expired Start --> 291 <div class="alert_container" ng-show="boughtPackageExpired"> 292 <div class="alert_cell"> 293 <div class="alert_ alert_red alert_add-margin"> 294 <div class="alert_content"> 295 <p class="alert_type" ng-bind="errorTitle"></p> 296 <p class="alert_message" ng-bind="errorIMsg"></p> 297 </div> 298 <div class="alert_close" ng-click="setAlertBo
298xTimeoutClose()"> 299 <svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 15.642 15.642" xmlns:xlink="http://www.w3.org/1999/xlink" enable-background="new 0 0 15.642 15.642"> 300 <path fill-rule="evenodd" d="M8.882,7.821l6.541-6.541c0.293-0.293,0.293-0.768,0-1.061 c-0.293-0.293-0.768-0.293-1.061,0L7.821,6.76L1.28,0.22c-0.293-0.293-0.768-0.293-1.061,0c-0.293,0.293-0.293,0.768,0,1.061 l6.541,6.541L0.22,14.362c-0.293,0.293-0.293,0.768,0,1.061c0.147,0.146,0.338,0.22,0.53,0.22s0.384-0.073,0.53-0.22l6.541-6.541 l6.541,6.541c0.147,0.146,0.338,0.22,0.53,0.22c0.192,0,0.384-0.073,0.53-0.22c0.293-0.293,0.293-0.768,0-1.061L8.882,7.821z"></path> 301 </svg> 302 </div> 303 </div> 304 </div> 305 </div> 306 <!-- Package Expired End --> 307 308 309 <!-- Google OneTap Login Start --> 310 311 <div id="fb_go_signup_base" class="test_series_modal"> 312 <div class="test_series_modal-content"> 313 <div class="test_series_modal-header"> 314 </div> 315 <div class="test_series_modal-body"> 316 <p ng-show="go_fb_login==1">Enter Your Phone No to verify Yourself</p> 317 <form ng-submit="verify_go_fb_phone(fb_go_phone_no)" ng-show="go_fb_login==1"> 318 <div class="form-group"> 319 <input type="hidden" id="temp" ng-model="token"> 320 <input type="text" pattern="[0-9]{10}" class="form-control" ng-model="fb_go_phone_no" placeholder="Enter your phone no Please"> 321 </div> 322 <button ng-disabled="!fb_go_phone_no || phoneVerifyProgress" type="submit" class="btn btn-default">Submit 323 <span class="ro" ng-show="phoneVerifyProgress"> 324 <span class="rotate_icon" style="margin-top:-2px;"> 325 <i class="fa fa-spinner" aria-hidden="true"></i> 326 </span> 327 </span> 328 </button> 329 <p class="text-danger" ng-if="go_fb_login_error" ng-bind="go_fb_login_error"></p> 330 </form> 331 <p ng-show="go_fb_login==2">We've sent you a message on your phone, please enter the OTP to verify yourself.</p></p> 332 <form ng-submit="otp_verify_fb_go_user(fb_go_otp, fb_go_phone_no_re, token_re)" ng-show="go_fb_login==2"> 333 <div class="form-group"> 334 <input type="hidden" ng-model="token_re"> 335 <input type="hidden" ng-model="fb_go_phone_no_re"> 336 <input type="text" pattern="[0-9]{6}" class="form-control" ng-model="fb_go_otp" placeholder="Enter the OTP Please"> 337 </div> 338 <button ng-disabled="!fb_go_otp || fb_go_otp_verified" type="submit" class="btn btn-default">Submit 339 <span class="ro" ng-show="fb_go_otp_verified" style="margin-top:-2px;"> 340 <span class="rotate_icon"> 341 <i class="fa fa-spinner" aria-hidden="true"></i> 342 </span> 343 </span> 344 </button> 345 <button ng-disabled="resent_fb_go" type="button" ng-click="resend_otp_go_fb(fb_go_phone_no_re, token_re)" class="btn btn-default">Resend OTP 346 <span class="ro" ng-show="resent_fb_go"> 347 <span class="rotate_icon" style="margin-top:-2px;"> 348 <i class="fa fa-spinner" aria-hidden="true"></i> 349 </span> 350 </span> 351 </button> 352 <p ng-bind="go_fb_login_error_otp"></p> 353 <p ng-bind="resend_fb_go_msg"></p> 354 </form> 355 <p class="text-success" ng-if="go_fb_login==3">Success!! You will be redirected in a moment.</p> 356 </div> 357 </div> 358 </div> 359 360 <!-- Google OneTap Login End --> 361 </div> 362 363 </header> 364 <content> 365 <div id="ajax_loading_base"> 366 <img src="/static/images/gif/loading.gif?v=aa73183f96aa5e6acf1ed11f76680221" alt="loader_img" /> 367 </div> 368 <div id="ajaxLoadingSignUpBase" class="update_loading"> 369 <img src="/static/images/gif/loading.gif?v=aa73183f96aa5e6acf1ed11f76680221" alt="loader_img" /> 370 </div> 371 372<div class="justify-content-center" id="template_2_non_customizable_iframe2" ng-controller="SingleCtrl" ng-init="load()"> 373<iframe id="iframe_template2_preview" width="100%"></iframe> 374 375</div>
376<script src="/static/js/homepage_template_2_iframe.js?v=70239c99b82475f83522d47bf83eb763" defer></script>
vendor: 1 bytes, line 376
376
377<script> 378let textDirectionCSS = ['15'].includes(getLanguageCode()) ? 'rtl' : 'ltr'; 379let promise1 = getJsonData().then(function (_) { return _; }); 380let promise2 = loadTemplate2Preview().then(function (_) { return _; }); 381Promise.all([promise1, promise2]).then(function (result) { 382let iframe = document.getElementById('iframe_template2_preview'); 383iframe.contentWindow.postMessage({ type: 'response_message', api_response: result[0] }, '/'); 384let event_method = window.addEventListener ? "addEventListener" : "attachEvent"; 385let eventer = window[event_method]; 386let message_event = event_method == "attachEvent" ? "onmessage" : "message"; 387eventer(message_event, function (e) { 388if (e.data.if_action == 'scroll_top') { 389document.documentElement.style.scrollBehavior = 'smooth'; 390document.body.scrollTop = e.data.scroll_position; 391document.documentElement.scrollTop = e.data.scroll_position; 392adjustIframeHeight(); 393} 394if (e.data.if_action == 'redirect_url') { 395window.location.href = e.data.redirect_url; 396} 397if (e.data.if_action == 'set_iframe_height') { 398adjustIframeHeight(); 399} 400}, false); 401}); 402let is_iframe_height_adjusted = false; 403function adjustIframeHeight() { 404let iframe = document.getElementById('iframe_template2_preview'); 405iframe.style.height = iframe.contentWindow.document.body.scrollHeight + "px"; 406iframe.style.minHeight = 60 + "vh"; 407is_iframe_height_adjusted = true; 408} 409function getJsonData() { 410return new Promise(function (resolve, reject) { 411let page_address = window.location.href; 412let customize_page_url = page_address.split(`${window.location.host}`)[1]; 413if (window.location.pathname !== "/") { 414let url = `${$('#client_media_location').text()}/${customize_page_url}.json`; 415$.get(url, function(resp) { 416resolve(resp) 417}).fail(function() { 418let url = `${$('#client_media_location').text()}/${customize_page_url}.html`; 419$.get(url, function(resp) { 420let iframe = document.getElementById('iframe_template2_preview'); 421// Here we are adding this extra div because loader is get removed on the presence of this div. 422iframe.srcdoc = resp + `<div id="iframe_data_loaded"></div>`; 423resolve(1); 424}).fail(function() { 425reject(0) 426console.log("Something went wrong"); 427}); 428reject(0) 429console.log("Something went wrong"); 430}); 431} else { 432let url = '/api/v1/generic_handler?action=get_v2_homepage_customized_json'; 433$.get(url, function(resp) { 434if (resp.status) { 435const json_parse_data = JSON.parse(resp.result.data); 436resolve(json_parse_data) 437const interval = setInterval(() => { 438if (is_iframe_height_adjusted) { 439// Hide the global loader when the height is adjusted. 440document.getElementById("ajax_loading_base").style.display = "none"; 441clearInterval(interval); 442} 443}, 100); 444} else { 445reject(0) 446} 447}).fail(function() { 448reject(0) 449console.log("Something went wrong"); 450}); 451} 452}); 453} 454function loadTemplate2Preview() { 455return new Promise(function (resolve, reject) { 456function previewTemplate2Html() { 457let iframe = document.getElementById('iframe_template2_preview'); 458$('#template_2_non_customizable_iframe').css('display', window.innerWidth < 992 ? 'none' : '') 459// template2 html 460let html_preview_template2_preview_string = `<!DOCTYPE html> 461<html lang="en"> 462<head> 463<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" crossorigin="anonymous"> 464<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap" as="style" onload="this.onload=null;this.rel='stylesheet'" crossorigin="anonymous"> 465<sc`+`ript src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></s`+`cript> 466<sc`+`ript src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></s`+`cript> 467<sc`+`ript src="/static/node_modules/grapejs/grapejs.js"></s`+`cript> 468<sc`+`ript src="/static/eg_dynamics_page/js/eg_template2_helper.js"></s`+`cript> 469<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" crossorigin="anonymous"> 470<!-- intl-tel-input CSS --> 471<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/17.0.18/css/intlTelInput.css" /> 472<link rel="stylesheet" href="/static/eg_dynamics_page/css/eg_template2.css"> 473<s`+`cript> 474// Load vernacular (localized language) text content instantly. 475EG_GR_HELPER.getVernacularTextContent(); 476</s`+`cript> 477<!-- intl-tel-input JS --> 478<sc`+`ript src="https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/17.0.18/js/intlTelInput.min.js"></sc`+`ript> 479<sc`+`ript src="https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/17.0.18/js/utils.min.js"></sc`+`ript> 480</head> 481<body style="overflow: hidden;"> 482<div id="ajax_loading_base"> 483<img src="/static/images/gif/loading.gif" alt="loader_img" /> 484</div> 485<div id="main" dir="${textDirectionCSS}"></div> 486<sc`+`ript src="/static/js/wl_admin/customize_website/homepage_template_2_helper.js" defer></s`+`cript> 487<s`+`cript> 488const checkContentInterval = setInterval(() => { 489let loader = document.getElementById("ajax_loading_base"); 490let loader_style = window.getComputedStyle(loader); 491let display_value = loader_style.getPropertyValue("display"); 492if (display_value === 'none') { 493let new_div = document.createElement("div"); 494new_div.id = "iframe_data_loaded"; 495document.body.appendChild(new_div); 496clearInterval(checkContentInterval); 497} 498}, 100); 499// Load and update all relevant short codes when the DOM content is fully loaded. 500document.addEventListener('DOMContentLoaded', () => { 501EG_GR_HELPER.updateAllRelevantShortCodes(); 502EG_GR_HELPER.giveStyleToElement() 503// Create a MutationObserver to monitor changes in the DOM 504const target_node = document.body; 505const observer = new MutationObserver(() => { 506const carousels = document.querySelectorAll('.carousel');
507carousels.forEach(carousel => { 508// Reinitialize the Bootstrap carousel after updating the content 509const instance = bootstrap.Carousel.getInstance(carousel); 510if (!instance) { 511new bootstrap.Carousel(carousel).cycle(); 512} 513}); 514// Disconnect the observer 515observer.disconnect(); 516}); 517// Configure the observer to watch for child list changes or subtree changes 518observer.observe(target_node, { 519childList: true, 520subtree: true, 521}); 522}); 523</s`+`cript> 524</body> 525</html>`; 526// Set the srcdoc attribute of the iframe with the HTML content 527iframe.srcdoc = html_preview_template2_preview_string; 528} 529let loader = document.getElementById("ajax_loading_base"); 530loader.style.display = 'block'; 531previewTemplate2Html(); 532let iframe = document.getElementById('iframe_template2_preview'); 533iframe.addEventListener('load', () => { 534let checkContentInterval = setInterval(() => { 535let iframeDoc = iframe.contentDocument || iframe.contentWindow.document; 536let targetElement = iframeDoc.getElementById('iframe_data_loaded'); 537if (targetElement) { 538adjustIframeHeight(); 539if(loader.style.display === 'none') { 540clearInterval(checkContentInterval); 541} 542} 543}, 10); 544resolve(1) 545}); 546}) 547} 548window.addEventListener('resize', function() { 549adjustIframeHeight(); 550}); 551window.addEventListener('scroll', function() { 552adjustIframeHeight(); 553}); 554// initialize language code 555function getLanguageCode() { 556let language_code = $.cookie("lang"); 557if (!language_code) { 558language_code = "1" 559} 560return language_code 561} 562</script>
562 563 564 </content> 565
565<script src="/static/js/multislider.js?v=4ae0bbca19886e8c435b66b4b915df2b"></script>
565 566
566<script> 567 // This constant variable is used to check that current client is priviledged client or not. 568 const WHITELABEL_PRIVILEDGE_CLIENT = false; 569 </script>
569 570 571 <footer> 572 <div style="position: relative; min-height: 300px;"> 573 <!-- We initailly hide the footer to optimzied the page performance, after window load, load the footer --> 574 <div id="school_footer_id" style="display: none;"> 575 576 <div class="school_footer" style="font-family: 'Poppins';"> 577 <div id="footer_div" style="background-color: #111111;"> 578 <div class="container"> 579 <div class="row menu_row"> 580 <div class="col-xs-12 col-sm-12 col-md-3"> 581 <div class="addrss"> 582 <p class="eg_footer_logo" style="display: flex;"> 583 <a target="_self" itemprop="url" href="/" rel="home"> 584 <img src="" alt="Vidyantu" id="eg_footer_logo_img" class="logo1 lozad" > 585 </a> 586 587 </p> 588 589 <p class="info"><b class="lang" key="mail" style="margin-right: 5px;">Mail</b> 590 591 <a class="footer_email" target="_self" href="mailto:[email protected]">[email protected]</a> 592 593 </p> 594 595 <div class="app_container col-xs-12 col-sm-2 col-md-2"> 596 <div class="mr-1" style="margin-right: 10px;"> 597 <ul class="sub_menu" id="android_app_download" style="display:none;"> 598 <li> 599 <a target="_blank" itemprop="url" href="#"> 600 <img data-src="/static/images/google_play.png?v=89d70ac74ced418207a75cf493cf0b3e" width="120" height="36" loading="lazy" alt="Vidyantu" class="GoogleApp_link lozad" data-was-processed="true" /> 601 </a> 602 </li> 603 </ul> 604 </div> 605 <div class="ml-1" style="margin-right: 10px;"> 606 <ul class="sub_menu" id="ios_app_download" style="display:none;"> 607 <li> 608 <a target="_blank" itemprop="url" href="#"> 609 <img data-src="/static/images/ios_icon_image.png?v=a88ade5d815de5e964fc328c57444979" loading="lazy" style="width: 120px;" class="lozad" alt="App Store" data-was-processed="true"> 610 </a> 611 </li> 612 </ul> 613 </div> 614 </div> 615 616 <div id="google_translate_element"></div> 617 </div> 618 </div> 619 620 <div class="col-xs-12 col-sm-3 col-md-2 lang_dynamic_css" style="display: none;" id="eg_about_us"> 621 <p class="footer_heading lang" id="footer_article_heading_about" key="about">ABOUT</p> 622 <ul class="sub_menu"> 623 <li><a target="_blank" id="footer_item_about_us" itemprop="url" href="" class="lang" key="aboutus">About Us</a></li> 624 </ul> 625 </div> 626 <div class="col-xs-12 col-sm-3 col-md-2 lang_dynamic_css" id="help_section_footer"> 627 <p class="footer_heading lang" id="footer_article_heading_help" key="help">HELP</p> 628 <ul class="sub_menu"> 629 <li><a target="_blank" itemprop="url" href="" style="display: none;" id="eg_contact_us_url" class="lang" key="contact">Contact Us</a></li> 630 <li id="exam_calendar_footer_link"><a target="_blank" itemprop="url" href="/exam_calendar" class="lang" key="examCalendar">Exam Calendar</a></li> 631 </ul> 632 </div> 633 <div class="col-xs-12 col-sm-3 col-md-2 lang_dynamic_css" style="display: none;" id="eg_url_blog"> 634 <p class="footer_heading lang" id="footer_article_heading_student" key="student">STUDENT</p> 635 <ul class="sub_menu"> 636 <li><a target="_blank" itemprop="url" href="" id="footer_article_heading_blog" class="lang" key="blog">Blog</a></li> 637 </ul> 638 </div> 639 640 <div class="col-xs-12 col-sm-3 col-md-2 lang_dynamic_css" id="footer_business_container" style="display:none;"> 641 <p class="footer_heading lang" id="footer_article_heading_business" style="display:none;" key="business">BUSINESS</p> 642 <ul class="sub_menu" id="advertise" style="display:none;"> 643 <li><a target="_blank" itemprop="url" href="#" id="footer_article_heading_advertise" class="lang" key="advertise">Advertise with us</a></li> 644 </ul> 645 </div> 646 647 </div> 648 <div class="row text-white"> 649 <div class="col-md-9"> 650 <div class="eg-footer-social" id="footer_follow_us_section" style="margin-bottom: 17px;"> 651 <b class="footer_heading lang" id="footer_follow_us_tag" key="follow">Follow Us On</b><br> 652 <ul class="social_link" style="display: flex;"> 653 <li id="eg_url_facebook" style="display: none;"><a itemprop="sameAs" href="" target="_blank"><img class="social_img" src="/static/images/Social_media_icons/FB.png?v=55f55c9b66f0829c58b9e595aea29c57" loading="lazy" alt="facebook"></a></li> 654 <li id="eg_url_twitter" style="display: none;"><a itemprop="sameAs" href="" target="_blank"><img class="social_img" src="/static/images/Social_media_icons/twitter.png?v=6f8edf5355eca3d1bda2bfd104bd3a07" loading="lazy" alt="twitter"></a></li> 655 <li id="eg_url_youtube" style="display: none;"><a itemprop="sameAs" href="" target="_blank"><img class="social_img" src="/static/images/Social_media_icons/youtube.png?v=8be677c03bad76d338be6f25d2c3d017" loading="lazy" alt="youtube"></a></li> 656 <li id="eg_url_linkedin" style="display: none;"><a itemprop="sameAs" href="" target="_blank"><img class="social_img" src="/static/images/Social_media_icons/linkdin.png?v=c4c746f2095571a49ba8a3e87f3901b7" loading="lazy" alt="linkdin"></a></li> 657 <li id="eg_url_instagram" style="display: none;"><a itemprop="sameAs" href="" target="_blank"><img class="social_img" src="/static/images/Social_media_icons/instagram.png?v=a33a6bb825de67658a1d452c98212ddc" loading="lazy" alt="instagram"></a></li> 658 <li id="url_telegram" style="display:none;"><a itemprop="sameAs" href="#" target="_blank"><img src="/static/images/Social_media_icons/telegram.png?v=47c600316c42ac230b358cda327f93e9" loading="lazy" alt="telegram"></a></li> 659 </ul> 660 </div> 661 </div> 662 <div class="col-md-3 text-right"> 663 <div id="lang_container" style="display:inline-block; margin-bottom: 17px;"> 664 <select name="langSwitcher" id="langSwitcher" onchange="changeLang()"> 665 <option value="1" selected> English</option> 666 <option value="2"> हिà¤à¤¦à¥</option> 667 <option value="14">
667Español</option> 668 <option value="15"> عربÙ</option> 669 </select> 670 </div> 671 </div> 672 </div> 673 </div> 674 </div> 675 <div class="container"> 676 <div class="row copyright_row"> 677 <div class="col-xs-12 col-sm-6 col-md-4 col-lg-4 eg_copyright_text" style="margin-top:25px;"> 678 679 <p style="color:#ffff;font-size: 1rem;"><span class="lang" key="copyright">Copyright</span> © <span class="p_year"></span> Dipen Shah Educational Solutions</p> 680 681 </div> 682 <div class="col-xs-12 col-sm-6 col-md-8 col-lg-8 eg_copyright_link" style="margin-top:25px;"> 683 <ul class="copyright_menu"> 684 685 <li id="eg_url_disclaimer" style="display: none;"><a class="lang" key="disclaimer" id="footer_link_disclaimer" target="_blank" itemprop="url" href="">Disclaimer</a></li> 686 <li id="eg_url_terms_and_conditions" style="display: none;"><a class="lang" key="TndC" target="_blank" itemprop="url" href="">Terms and Conditions</a></li> 687 <li id="eg_url_privacy_policy" style="display: none;"><a class="lang" key="privacypolicy" target="_blank" itemprop="url" href="">Privacy Policy</a></li> 688 <li id="eg_url_refund_policy" style="display: none;"><a class="lang" key="refundpolicy" target="_blank" itemprop="url" href="">Refund Policy</a></li> 689 <li id="eg_url_sitemap" style="display: none;"><a class="lang" key="sitemap" target="_blank" itemprop="url" href="">Sitemap</a></li> 690 691 </ul> 692 </div> 693 694 </div> 695 </div> 696 </div> 697 698 </div> 699 <!-- Displaying an internal loader for the footer. This appears after the window load event to handle cases where the footer takes time to load, especially on slower networks. --> 700 <div id="footer_internal_loader" style="position: absolute; left: 50%; top: 50%; z-index: 200; background: #4a4e50ea; backdrop-filter: blur(80px); width: 100%; height: 100%; transform: translate(-50%, -50%); display: flex; justify-content: center; align-items: center;"> 701 <img src="/static/images/gif/loading.gif" width="45" height="45" alt="loader_img" /> 702 </div> 703 </div> 704 </footer> 705 706 707 <!-- Load Facebook SDK for JavaScript --> 708 <div id="fb-root"></div> 709
709<script> 710 window.fbAsyncInit = function() { 711 FB.init({ 712 appId : "1487792121625210", 713 autoLogAppEvents : true, 714 xfbml : true, 715 version : "v16.0" 716 }); 717 }; 718 719 (function(d, s, id){ 720 var js, fjs = d.getElementsByTagName(s)[0]; 721 if (d.getElementById(id)) {return;} 722 js = d.createElement(s); js.id = id; 723 js.src = "https://connect.facebook.net/en_US/sdk.js"; 724 fjs.parentNode.insertBefore(js, fjs); 725 }(document, 'script', 'facebook-jssdk')); 726 </script>
726 727 728
728<script> 729 window.addEventListener('load', () => { 730 const showFooter = () => { 731 const footer = document.getElementById('school_footer_id'); 732 if (footer) { 733 footer.style.display = 'block'; 734 // Hide footer loader 735 document.getElementById('footer_internal_loader').style.display = 'none'; 736 } 737 }; 738 // Use requestIdleCallback to wait until the browser is idle, so that this doesn't interfere with critical rendering performance 739 if ('requestIdleCallback' in window) { 740 requestIdleCallback(showFooter); 741 } else { 742 // Fallback for iOS and older browsers 743 showFooter(); 744 } 745 }); 746 </script>
746 747
747<script> 748 jQuery(document).ready(function($) { 749 const observer = lozad(); 750 observer.observe(); 751 $("head").append(`<link rel="canonical" href="${location.origin+location.pathname}">`); 752 $(".TS_Search_Modal_head").show(); 753 $(".testS_examSearch_list").show(); 754 $("#admin_li").css('display', 'block'); 755 $(".TsH_examSearch_list").show(); 756 document.addEventListener('mousedown', (e) => { 757 if (document.querySelector('.TsH_searchBar').contains(e.target)) { 758 $('.TsH_examSearch_list').show(); 759 if ($('.TsH_searchView input').val().length) { 760 $('.TsH_searchView').addClass('searchViewFocus'); 761 } 762 } else { 763 $('.TsH_examSearch_list').hide(); 764 $('.TsH_searchView').removeClass('searchViewFocus'); 765 } 766 }); 767 $(".TsH_text_seprator").show(); 768 $(window).bind('scroll', function(e) { 769 var navHeight = $( window ).height() - 70; 770 if ($(window).scrollTop() > $('#Tst_Fixed_navbar').height()) { 771 $('#Tst_Fixed_navbar').addClass('fixed-header'); 772 } 773 else { 774 $('#Tst_Fixed_navbar').removeClass('fixed-header'); 775 } 776 }); 777 778 $('#phoneMenu').tooltip(); // Initializing tooltip for Mail 779 }); 780 781 function removeBaseLoader() { 782 $("#ajax_loading_base").fadeOut(function() { 783 $('body').css('overflow-y', 'auto'); 784 }); 785 } 786 787 function get_cookie(name){ 788 return document.cookie.split(';').some(c => { 789 return c.trim().startsWith(name + '='); 790 }); 791 } 792 function delete_cookie( name) { 793 if( get_cookie( name ) ) { 794 document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:01 GMT"; 795 } 796 } 797 </script>
797 798
798<script> 799 function changeLang(){ 800 $('#langSwitcher option:selected').text(`ð ${$('#langSwitcher option:selected').text().trim()}`); 801 $.cookie("lang",$("#langSwitcher").val(),{path:"/"}); 802 location.reload(true); 803 CUSTOM_MOENGAGE_NAMESPACE.moengageLocaleLanguage(error_msg=null); //Trigger when user change the UI Language 804 } 805 jQuery(document).ready(function($) { 806 $("#langSwitcherHeading").show(); 807 $("#langSwitcher").show(); 808 }); 809 function getDefaultLang() { 810 return $("#langSwitcher option:first").val(); 811 } 812 </script>
812 813
813<script> 814 getClientFeatureDataForLocalStorage(); 815 getClientMetaCookie(); 816 let url_all_params = new URLSearchParams(window.location.search); 817 818 function parseJwt (token) { 819 let base64Url = token.split('.')[1]; 820 let base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/'); 821 let jsonPayload = decodeURIComponent(atob(base64).split('').map(function(c) { 822 return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2); 823 }).join('')); 824 825 return JSON.parse(jsonPayload); 826 } 827 828 function handleCredentialResponse(response) { 829 let one_tap_return_data = parseJwt(response.credential); 830 // Request Start 831 let google_user_id = one_tap_return_data.sub, 832 google_name = encodeURIComponent(one_tap_return_data.name), 833 google_image_url = one_tap_return_data.picture, 834 google_email = one_tap_return_data.email, 835 google_id_token = response.credential; 836 var data = `from=google&id=${google_user_id}&name=${google_name}&imgURL=${google_image_url}&email=${google_email}&idToken=${google_id_token}`; 837 var url = "/api/v2/auth/loginsignup/fb/go/st1"; 838 839 let ctrl_element; 840 let vernacularStaticTextContentData; 841 842 if ($('[ng-controller="loginCtrl"]').length > 0) { 843 ctrl_element = $('form[name="sign_in_user"] h4') 844 vernacularStaticTextContentData = $('[ng-controller="loginCtrl"]').scope().vernacularStaticTextContent; 845 } else if ($('[ng-controller="signupCtrl"]').length > 0) { 846 ctrl_element = $('form[name="sign_up_user1"] h4') 847 vernacularStaticTextContentData = $('[ng-controller="signupCtrl"]').scope().vernacularStaticTextContent; 848 } 849 var xhttp = new XMLHttpRequest(); 850 xhttp.onreadystatechange = function() { 851 if (this.readyState == 4) { 852 let auth_type = 'signup'; 853 if (this.status == 200) { 854 var data = JSON.parse(xhttp.responseText); 855 google.accounts.id.disableAutoSelect(); 856 let google_mo_event_name = "google_onetap"; 857 if(data.status) { 858 if (data.result.data === 2) { 859 if (ctrl_element) { 860 let scope = angular.element(ctrl_element).scope(); 861 scope.$apply(function() { 862 scope.logedin = 2; 863 scope.error_msg = vernacularStaticTextContentData['already_logged_in']; 864 }); 865 } else { 866 alert("You can't login since live class is being hosted from this account!") 867 } 868 } else { 869 auth_type = data.result.data.type; 870 } 871 notify_mo_engage_user_login_signup(auth_type, google_mo_event_name, true); 872 } 873 else { 874 notify_mo_engage_user_login_signup(auth_type, google_mo_event_name, false, data.msg); 875 } 876 } 877 else { 878 let error_msg = `Error HTTP Status: ${this.status}`; 879 notify_mo_engage_user_login_signup(auth_type, google_mo_event_name, false, error_msg); 880 } 881 $("ajaxLoadingSignUp").css('display', 'none'); 882 } 883 }; 884 xhttp.open("POST", url, true); 885 xhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); 886 xhttp.send(data); 887 // // Request End 888 } 889 890 function continueWithNextStep(notification) { 891 if (notification.isDisplayed()) { 892 $('.google-one-tap-signin-highlights').addClass('active'); 893 } 894 else if (notification.isNotDisplayed() || notification.isSkippedMoment()) { 895 $('.google-one-tap-signin-highlights').removeClass('active'); 896 } 897 } 898 899 function sendGoogleAnalyticsEvent() { 900 if (WHITELABEL_PRIVILEDGE_CLIENT) { 901 ga.getAll()[0].send('event', 'Hyperlink - Signup', 'Click', 'Not a Lead'); 902 } 903 } 904 905 // Get cookie 906 function getCookieValueByName(cookie_name) { 907 // Split cookie string and get all individual name=value pairs in an array 908 let cookie_arr = document.cookie.split(";"); 909 // Loop through the array elements 910 for(let i = 0; i < cookie_arr.length; i++) { 911 let cookie_pair = cookie_arr[i].split("="); 912 // Removing whitespace at the beginning of the cookie name and compare it with the given string 913 if(cookie_name == cookie_pair[0].trim()) { 914 // Decode the cookie value and return 915 return decodeURIComponent(cookie_pair[1]); 916 } 917 } 918 // Return null if not found 919 return null; 920 } 921 922 // Get Local Storage 923 function getLocalStorageByName(session_name) { 924 local_storage_data = localStorage.getItem(session_name); 925 if (local_storage_data) { 926 return local_storage_data 927 } 928 return null; 929 } 930 931 // Check creater mode status 932 function checkCreatorModeStatus() { 933 let client_features_value = getLocalStorageByName('client_features_status'); 934 if (client_features_value) { 935 client_features_value = JSON.parse(client_features_value); 936 if (client_features_value['ft_active_creator_mode']) { 937 return true; 938 } 939 } 940 return false;
941 } 942 943 // Convert text content Exam to Course 944 function updateContentExamToCourse(text, language_code) { 945 let result_string = text; 946 language_code = parseInt(language_code) // Used to convert into number on case of string 947 switch (language_code) { 948 case 1: // English 949 result_string = text.replaceAll("Exam", "Course").replaceAll("exam", "course"); 950 break; 951 case 2: // Hindi 952 result_string = text.replaceAll("परà¥à¤à¥à¤·à¤¾à¤à¤", "पाठà¥à¤¯à¤à¥à¤°à¤®").replaceAll("परà¥à¤à¥à¤·à¤¾", "पाठà¥à¤¯à¤à¥à¤°à¤®"); 953 break; 954 case 14: // Spanish 955 result_string = text.replaceAll("Ex\u00e1menes", "Cursos") 956 .replaceAll("ex\u00e1menes", "cursos") 957 .replaceAll("examen", "curso") 958 .replaceAll("Examen", "Curso"); 959 break; 960 case 15: // Arabic 961 result_string = text.replaceAll("Ø§Ù ØªØØ§Ù", "Ø¯ÙØ±Ø©").replaceAll("Ø§ÙØ§Ù ØªØØ§Ùات", "Ø§ÙØ¯Ùرات"); 962 } 963 return result_string; 964 } 965 966 967 function setCookie(cookie_name, cookie_data, validity_seconds) { 968 let date = new Date(); 969 date.setTime(date.getTime()+(validity_seconds*1000)); 970 // A cookie value cannot contain semicolons, commas, or spaces. For this reason, we are using "encodeURIComponent" before saving. 971 document.cookie = `${cookie_name}=${encodeURIComponent(cookie_data)}; expires=${date.toGMTString()}; path=/; domain=${window.location.hostname}; secure`; 972 } 973 974 function getClientFeatureDataForLocalStorage() { 975 let meta_cookie_value = getCookieValueByName('client_meta'); 976 if(meta_cookie_value != null) { 977 let client_features_value = getLocalStorageByName('client_features_status'); 978 let api_response_data = JSON.parse(client_features_value); 979 updateFeatureVisibilility(api_response_data); 980 } else { 981 let url = "/api/v1/generic_handler?action=get_website_features_status"; 982 $.get(url, function(resp) { 983 if(resp.status) { 984 let api_response_data = resp.result.data; 985 localStorage.setItem('client_features_status', JSON.stringify(api_response_data)); 986 updateFeatureVisibilility(api_response_data); 987 } else { 988 console.log(resp.msg); 989 } 990 }).fail(function() { 991 console.log("Server side error"); 992 }); 993 } 994 } 995 996 function updateDynamicCssOnlanguageChange() { 997 let langCode = $("#langSwitcher").val(); 998 if (langCode == 15) { 999 $('.school_footer, #desktop_navbar_height').attr("dir", "rtl"); 1000 $('.lang_dynamic_css .sub_menu').css("padding-right", "0"); 1001 $('.TsH_rightMenu_nav').attr("style", "float: left !important;"); 1002 $('.TsH_rightMenu_nav .TsH_rgtMenu_link, #footer_div .menu_row').css({"display": "flex"}); 1003 $('.tS_Phone_modal').css({"margin-left": 0, "padding-right": 0}); 1004 $('.TsH_text_seprator').removeClass("TsH_text_seprator"); 1005 $('.TsH_searchView .form-control').css({"border-top-right-radius": "50px", "border-bottom-right-radius": "50px", "border-top-left-radius": "0", "border-bottom-left-radius": "0"}); 1006 $('.TsH_searchView .input-group-btn > .btn').css({"border-top-left-radius": "50px", "border-bottom-left-radius": "50px", "border-top-right-radius": "0", "border-bottom-right-radius": "0", "margin-left": "0"}); 1007 $('#lang_container').parent().parent().css("display", "flex"); 1008 $('#lang_container').parent().css("text-align", "left"); 1009 $('.tst_powered').parent('a').css("float", "left"); 1010 $('.copyright_menu').css("float", "left"); 1011 $('.eg_copyright_text p').css("float", "right"); 1012 $('.app_container').css({"display": "flex","justify-content":"end","padding-right":"0px"}); 1013 $('#footer_div .addrss .info b').css({"margin-left": "5px", "margin-right": 0}); 1014 $('img[alt="phone-call-icon"]').css({'transform':'scaleX(-1)'}); 1015 $('#phoneMenu div').css({'margin-left':'0','margin-right':'10px'}); 1016 $('a[href="/my_profile"] span').css({'margin-left':'0','margin-right':'10px'}); 1017 $('#admin_li span').css({'margin-left':'0','margin-right':'10px'} ); 1018 $('a[href="/logout"] span').css({'margin-left':'0','margin-right':'10px'}); 1019 $('img[alt="esc_member_seal"]').css({'padding-right':'9px','border-right':'2px solid grey','padding-left':'0px','border-left':'0px solid grey'}); 1020 } else { 1021 $('.app_container').css({"display": "flex","justify-content":"start","padding-left":"0px"}); 1022 } 1023 } 1024 1025 function updateFeatureVisibilility(api_response_data) { 1026 if (api_response_data != null) { 1027 $(document).ready(function () { 1028 $('body').trigger('client_features_status_created'); 1029 }); 1030 if (api_response_data['ft_disable_signup']) { 1031 $("#signup_button").remove(); 1032 $("#login_page_signup_button").remove(); 1033 } 1034 if (!api_response_data['ft_exam_calendar']) { 1035 $("#exam_calendar_footer_link").remove(); 1036 } 1037 if (api_response_data["show_whatsapp_contact"]) { 1038 $("#phoneMenu img").replaceWith(`<img src="/static/images/Social_media_icons/whatsapp-icon.png?v=abe2731a68cc3efabc1c908899f2064c" alt="whatsapp-icon">`); 1039 let contact_no = $("#phoneMenu").prop("href").split(':')[1].replaceAll('-', ''); 1040 $("#phoneMenu").prop("href", `https://wa.me/${contact_no}`).prop("target", "_blank"); 1041 } 1042 if (api_response_data["ft_allow_erp"]) { 1043 $('body').trigger('erp_base_url_loaded', [api_response_data['ft_allow_erp']]); 1044 if (api_response_data['client_type'] === '2') { 1045 $('#erp_li a span').html("School"); 1046 } 1047 $('#erp_li').show(); 1048 } 1049 if ('ft_ios_app_created' in api_response_data && api_response_data["ft_ios_app_created"]) { 1050 $('#ios_app_download a').attr('href', api_response_data["ft_ios_app_created"]); 1051 $('#footer_business_container, #app_header, #ios_app_download').show(); 1052 } 1053 if ('url_telegram' in api_response_data && api_response_data["url_telegram"]) { 1054 $('#url_telegram a').attr({'href': api_response_data["url_telegram"]}); 1055 $('#url_telegram').show(); 1056 } 1057 if ('hide_search_bar' in api_response_data) { 1058 $('.TsH_searchList').remove(); 1059 } 1060 removeEmptyFooterSection(); 1061 } 1062 } 1063 1064 function updateLanguageOption (api_response_data) { 1065 let vernacular_languages = [1, 2, 14, 15];
1065 // We are showing only vernacular languages here. 1066 let html = ''; 1067 let languages = JSON.parse(api_response_data['allowed_languages']); 1068 $.each(languages, function (idx, value) { 1069 value = JSON.parse(value); 1070 if (vernacular_languages.includes(value[0])){ 1071 html += `<option value="${value[0]}"> ${value[1]}</option>`; 1072 } 1073 }); 1074 $('#langSwitcher').html(html); 1075 $("#langSwitcher").val($.cookie("lang") || $('#langSwitcher option:first').val()); 1076 $('#langSwitcher option:selected').text(`ð ${$('#langSwitcher option:selected').text().trim()}`); 1077 $('body').trigger('language_set'); 1078 // Update css according to the language change 1079 updateDynamicCssOnlanguageChange(); 1080 } 1081 1082 function getClientMetaCookie() { 1083 let client_meta_cookie_value = getCookieValueByName('client_meta'); 1084 let client_meta_local_value = getLocalStorageByName('client_meta_data'); 1085 if(client_meta_cookie_value != null) { 1086 let client_meta_data = JSON.parse(client_meta_cookie_value); 1087 let client_local_data = JSON.parse(client_meta_local_value); 1088 updateClientMetaVisibilility(client_meta_data); 1089 updateClientExtraMetaData(client_local_data); 1090 } else { 1091 let url = "/api/v1/generic_handler?action=get_client_meta"; 1092 $.get(url, function(resp) { 1093 if(resp.status) { 1094 let api_response_data = resp.result.data; 1095 setCookie('client_meta', JSON.stringify(api_response_data.cookies_data), 600); 1096 localStorage.setItem('client_meta_data', JSON.stringify(api_response_data.local_storage_data)); 1097 updateClientMetaVisibilility(api_response_data.cookies_data); 1098 updateClientExtraMetaData(api_response_data.local_storage_data); 1099 } else { 1100 console.log(resp.msg); 1101 } 1102 }).fail(function() { 1103 console.log("Server side error"); 1104 }); 1105 } 1106 } 1107 1108 function updateClientMetaVisibilility(api_response_data) { 1109 if (api_response_data != null) { 1110 $(document).ready(function () { 1111 $('body').trigger('client_meta_created'); 1112 }); 1113 if (api_response_data['android_main_app_url'] || api_response_data['url_advertise_with_us']) { 1114 $('#footer_business_container').show(); 1115 if (api_response_data['android_main_app_url']) { 1116 if (!api_response_data['android_main_app_url'].includes('play.google.com')) { // For dropbox link we need to change the image source of the icon. 1117 $('#android_app_download img').attr('data-src', '/static/images/download_apk.png'); 1118 $('#android_app_download a').removeAttr('target'); 1119 } 1120 $('#android_app_download a').attr('href', api_response_data['android_main_app_url']); 1121 $('#android_app_download, #app_header').show(); 1122 } 1123 if (api_response_data['url_advertise_with_us']) { 1124 $('#advertise a').attr('href', api_response_data['url_advertise_with_us']); 1125 $('#advertise, #footer_article_heading_business').show(); 1126 $('.footer_heading_language').css({"margin-bottom": "17px", "font-weight": "500"}); 1127 } 1128 } 1129 if (window.location.host === 'testseries.javatpoint.com') { 1130 $("#masthead_background_color").css('background',`url('/static/images/javaTpoint_mobile.jpg') center center / 100% 100%`); 1131 } else if (api_response_data['homepage_masthead'] != null) { 1132 homepage_masthead_color = JSON.parse(api_response_data['homepage_masthead']); 1133 $("#masthead_background_color").css('background',`linear-gradient(#${homepage_masthead_color.background[0]},#${homepage_masthead_color.background[1]})`); 1134 } 1135 } 1136 } 1137 1138 function updateClientExtraMetaData(local_storage_data){ 1139 if (local_storage_data != null) { 1140 if (local_storage_data['logo_footer']) {
1141 $('#eg_footer_logo_img').attr('src', local_storage_data['logo_footer']); 1142 } 1143 if (local_storage_data['url_about_us']) { 1144 $('#footer_item_about_us').attr('href', local_storage_data['url_about_us']); 1145 $('#eg_about_us').show(); 1146 } 1147 if (local_storage_data['url_contact_us'] && local_storage_data['url_contact_us'] !== '') { 1148 $('#eg_contact_us_url').attr('href', local_storage_data['url_contact_us']); 1149 $('#eg_contact_us_url').show(); 1150 } else { 1151 $('#eg_contact_us_url').closest('li').remove(); 1152 } 1153 if (local_storage_data['url_blog']) { 1154 $('#footer_article_heading_blog').attr('href', local_storage_data['url_blog']); 1155 $('#eg_url_blog').show(); 1156 } 1157 const social_media_url_key = ['url_facebook', 'url_twitter', 'url_youtube', 'url_linkedin', 'url_instagram']; 1158 let any_social_media_url_key_exists = false; 1159 social_media_url_key.forEach(url_key => { 1160 if (local_storage_data[url_key]) { 1161 $(`#eg_${url_key} a`).attr('href', local_storage_data[url_key]); 1162 $(`#eg_${url_key}`).show(); 1163 any_social_media_url_key_exists = true; 1164 } 1165 }); 1166 1167 if (!any_social_media_url_key_exists) { 1168 $('#footer_follow_us_section').remove(); 1169 } else { 1170 $('#lang_container').parent().css('padding-top', '80px'); 1171 } 1172 if (local_storage_data['header_footer_color_data']) { 1173 let header_footer_color_data = JSON.parse(local_storage_data['header_footer_color_data']); 1174 if (!WHITELABEL_PRIVILEDGE_CLIENT) { 1175 $(".school_footer, #footer_div").css('background-color', `${header_footer_color_data[1]}`); 1176 let color_style = {}; 1177 if (header_footer_color_data[3]) { 1178 color_style = {"color": `${header_footer_color_data[3]}`} 1179 } else { 1180 if (header_footer_color_data[1] !== '' && header_footer_color_data[1] !== null) { 1181 color_style = { 1182 "color": `${header_footer_color_data[1]}`, 1183 "filter": "invert(1)" 1184 } 1185 } 1186 } 1187 $(".info b, .footer_heading, #footer_follow_us_tag, .footer_heading_language, .sub_menu:not(#android_app_download, #ios_app_download) li a, .copyright_row div a, .eg_copyright_text p, .copyright_menu li a, .footer_email").css(color_style); 1188 } 1189 $("#Tst_Fixed_navbar").css({ 1190 'background-color': header_footer_color_data[0], 1191 'border-radius': '0px' 1192 }); 1193 if (header_footer_color_data[2]) { 1194 $('.header_text').css('color', `${header_footer_color_data[2]}`); 1195 } else { 1196 if (header_footer_color_data[0] !== null && header_footer_color_data[0] !== '') { 1197 $('.header_text').css({'color': `${header_footer_color_data[0]}`, 'filter': 'invert(1)'}); 1198 } 1199 } 1200 } 1201 if (local_storage_data['url_refund_policy']) { 1202 $('#eg_url_refund_policy a').attr('href', local_storage_data['url_refund_policy']); 1203 $('#eg_url_refund_policy').show(); 1204 } 1205 if (local_storage_data['url_sitemap']) { 1206 $('#eg_url_sitemap a').attr('href', local_storage_data['url_sitemap']); 1207 $('#eg_url_sitemap').show(); 1208 } 1209 if (local_storage_data['url_privacy_policy']) { 1210 $('#eg_url_privacy_policy a').attr('href', local_storage_data['url_privacy_policy']); 1211 $('#eg_url_privacy_policy').show(); 1212 } 1213 if (local_storage_data['url_terms_and_conditions']) { 1214 $('#eg_url_terms_and_conditions a').attr('href', local_storage_data['url_terms_and_conditions']); 1215 $('#eg_url_terms_and_conditions').show(); 1216 } 1217 if (local_storage_data['url_disclaimer']) { 1218 $('#eg_url_disclaimer a').attr('href', local_storage_data['url_disclaimer']); 1219 $('#eg_url_disclaimer').show(); 1220 } 1221 if (local_storage_data['header_logo_redirect_url']) { 1222 $('#eg_header_logo_redirect_url').attr('href', local_storage_data['header_logo_redirect_url']); 1223 } 1224 if (local_storage_data['support_time']) { 1225 function convertInCurrentTimezone(open_time, close_time) { 1226 const start_time = new Date(), end_time = new Date(); 1227 const [start_hours, start_minutes] = open_time.split(':').map(Number); 1228 const [end_hours, end_minutes] = close_time.split(':').map(Number); 1229 start_time.setUTCHours(start_hours, start_minutes, 0, 0); 1230 end_time.setUTCHours(end_hours, end_minutes, 0, 0); 1231 1232 // Convert UTC time to local time zone. 1233 let support_start_time = start_time.toLocaleTimeString('en-US', { hour12: true, hour: 'numeric', minute: 'numeric'}); 1234 let support_end_time = end_time.toLocaleTimeString('en-US', { hour12: true, hour: 'numeric', minute: 'numeric'}); 1235 return `${support_start_time} - ${support_end_time}`; 1236 } 1237 $('#support_time').text(`(${convertInCurrentTimezone(local_storage_data['support_time'].split(' - ')[0], local_storage_data['support_time'].split(' - ')[1])})`) 1238 } 1239 removeEmptyFooterSection(); 1240 updateLanguageOption(local_storage_data); 1241 } 1242 } 1243 1244 function removeEmptyFooterSection() { 1245 // Removing the HELP Section if any list item is not available. 1246 if (!$('#help_section_footer ul li').length) { 1247 $('#help_section_footer').remove(); 1248 } 1249 // Removing Follow us text if any list item is not available. 1250 if (!$('#footer_follow_us_section ul li').length) { 1251 $('#footer_follow_us_tag').remove(); 1252 $('#footer_follow_us_section').remove(); 1253 } 1254 } 1255 1256 function deleteCookie(name) { 1257 if (getCookieValueByName(name)) { 1258 document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:01 GMT"; 1259 } 1260 } 1261 1262 function getUserProfileData() { 1263 return $.get("/api/v2/mytests/profilecard"); 1264 } 1265 1266 function showErrorMessage(message) { 1267 if (typeof angular !== 'undefined') { 1268 let ctrl_element; 1269 let vernacularStaticTextContentData; 1270 1271 if (angular.element('[ng-controller="loginCtrl"]').length > 0) { 1272 ctrl_element = angular.element('form[name="sign_in_user"] h4'); 1273 vernacularStaticTextContentData = angular.element('[ng-controller="loginCtrl"]').scope().vernacularStaticTextContent; 1274 } else if (angular.element('[ng-controller="signupCtrl"]').length > 0) { 1275 ctrl_element = angular.element('form[name="sign_up_user1"] h4'); 1276 vernacularStaticTextContentData = angular.element('[ng-controller="signupCtrl"]').scope().vernacularStaticTextContent; 1277 } 1278 1279 if (ctrl_element && ctrl_element.length > 0) { 1280 let scope = ctrl_element.scope(); 1281 const applyFn = function () { 1282 scope.logedin = 2; 1283 if (message === 'email not found') { 1284 scope.error_msg = vernacularStaticTextContentData['email_not_found']; 1285 } 1286 }; 1287 if (!scope.$$phase) { 1288 scope.$apply(applyFn); 1289 } else { 1290 applyFn(); 1291 } 1292 } 1293 } 1294 } 1295 1296 function notify_mo_engage_user_login_signup(auth_type, source, event_success, error_msg='') { 1297 // NOTE : This function is also used in response of google and facebook login so on removing this function keep in mind to remove from there as well. 1298 let next_link = getUrlArgument("next"); 1299 if (event_success) { 1300 getUserProfileData().done(function(response) { 1301 if (response.status) { 1302 try { 1303 Moengage.add_user_name(response.result.data.name); 1304 Moengage.add_email(response.result.data.email); 1305 Moengage.add_mobile(response.result.data.phone_no); 1306 Moengage.add_user_attribute("address", response.result.data.address); 1307 Moengage.add_unique_user_id(response.result.data.user_id
1307); 1308 Moengage.track_event(auth_type, { 1309 'type': "success", 1310 'custom_platform': isMobile() ? "mweb" : "web", 1311 'utm_source': url_all_params.get('utm_source'), 1312 'selected_language': $("#langSwitcher option:selected").text(), 1313 'campaign_name': url_all_params.get('campaign_name'), 1314 'login_source': source 1315 }).then(function() { 1316 if (next_link) { 1317 window.location.href = next_link; 1318 } 1319 else { 1320 window.location.reload(); 1321 } 1322 }); 1323 } catch(err) { 1324 console.log("Moengage Error : " + err); 1325 if (next_link) { 1326 window.location.href = next_link; 1327 } 1328 else { 1329 window.location.reload(); 1330 } 1331 } 1332 } 1333 }).fail(function(error) { 1334 Moengage.track_event(auth_type, { 1335 'type': "failed", 1336 'custom_platform': isMobile() ? "mweb" : "web", 1337 'utm_source': url_all_params.get('utm_source'), 1338 'error_msg': `Error HTTP Status: ${error.status}`, 1339 'selected_language': $("#langSwitcher option:selected").text(), 1340 'campaign_name': url_all_params.get('campaign_name'), 1341 'login_source': source 1342 }); 1343 console.log("Something went wrong! Please try again later!"); 1344 }); 1345 } 1346 else { 1347 Moengage.track_event(auth_type, { 1348 'type': "failed", 1349 'custom_platform': isMobile() ? "mweb" : "web", 1350 'utm_source': url_all_params.get('utm_source'), 1351 'error_msg': error_msg, 1352 'selected_language': $("#langSwitcher option:selected").text(), 1353 'campaign_name': url_all_params.get('campaign_name'), 1354 'login_source': source 1355 }); 1356 } 1357 } 1358 1359 // Set user profile picture 1360 if (getCookieValueByName('eg_user')) { 1361 $('.TsH_rightMenu_nav .TsH_prof img').removeAttr("data-src"); 1362 if (getCookieValueByName('profile_img_url')) { 1363 $('.TsH_rightMenu_nav .TsH_prof img').attr("src", getCookieValueByName('profile_img_url')); 1364 } 1365 else { 1366 getUserProfileData().done(function(response) { 1367 let profile_img_url = response.result.data.profile_image; 1368 $('.TsH_rightMenu_nav .TsH_prof img').attr("src", profile_img_url); 1369 $.cookie("profile_img_url",profile_img_url,{path:"/", secure:true}); 1370 }); 1371 } 1372 } else { 1373 deleteCookie('profile_img_url'); 1374 } 1375 1376 function isMobile() { 1377 let check = false; 1378 // For more info go ref: https://stackoverflow.com/questions/11381673/detecting-a-mobile-browser 1379 (function(a){if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|
1379sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0,4))) check = true;})(navigator.userAgent||navigator.vendor||window.opera); 1380 return check; 1381 } 1382 1383 // function to decode and get query argument in url based on key, if present 1384 function getUrlArgument(arg) { 1385 var vars = {}; 1386 var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) { 1387 vars[key] = value; 1388 }); 1389 if (arg in vars) { 1390 return decodeURIComponent(vars[arg]); 1391 } 1392 return ""; 1393 } 1394 1395 Moengage.add_user_attribute("last_viewed_url", window.location.href) 1396 Moengage.add_user_attribute("dashboard", window.location.href); 1397 1398 function getCurrencySymbol() { 1399 let client_features_value = localStorage.getItem('client_features_status'); 1400 if (client_features_value !== null) { 1401 let features_value_data = JSON.parse(client_features_value); 1402 return 'currency_symbol' in features_value_data ? features_value_data['currency_symbol'] : 'â¹'; 1403 } 1404 return 'â¹'; 1405 } 1406 </script>
1406 1407
1407<script> 1408 // This is done to add separator between footer items like Disclaimer, Terms & Conditions, etc 1409 $.each($(".eg_copyright_link li").not(":last"), function(index, elem) { 1410 let html = ''; 1411 let client_meta_data = JSON.parse(getLocalStorageByName('client_meta_data')); 1412 let lang_code = $("#langSwitcher").val(); 1413 if ('header_footer_color_data' in client_meta_data && client_meta_data.header_footer_color_data !== null) { 1414 let header_footer_color = JSON.parse(client_meta_data.header_footer_color_data); 1415 if (header_footer_color[3]) { 1416 html = `<span class="dividers" style="color: ${header_footer_color[3]};${lang_code == 15 ? 'float: right;' : ''}">|</span>`; 1417 } else { 1418 html = `<span class="dividers" style="${lang_code == 15 ? 'float: right;' : ''}${header_footer_color[1] ? `color: ${header_footer_color[1]} !important; filter: invert(1);` : ''}">|</span>`; 1419 } 1420 } else { 1421 html = `<span class="dividers" ${lang_code == 15 ? 'style="float: right;"' : ''}>|</span>`; 1422 } 1423 $(elem).append(html); 1424 }); 1425 if(window.location.host === 'app.onlinepcmb.com') { 1426 // This is a very dirty solution to meet the requirements of the client that was procured without Tech team approval. Not at all proud of this solution and needs to be fixed later. 1427 $('#footer_article_heading_student, #footer_article_heading_blog').html("Blogs"); 1428 $('#footer_article_heading_business, #footer_article_heading_advertise').html("Achievers"); 1429 } else if(window.location.host === 'lore-light.com') { 1430 $('#footer_article_heading_blog').html("Auro Scholarship"); 1431 } else if(window.location.host === 'edujoball.co.in') { 1432 $('#footer_article_heading_student').html("Exam Notification"); 1433 $('#footer_article_heading_help').html("Job Notification"); 1434 } else if(window.location.host === 'testseries.gurbiz.com') { 1435 $('#phoneMenu').html(($('#phoneMenu').html()).replace('+91-','')); 1436 $('#phoneMenu').attr('href',($('#phoneMenu').attr('href')).replace('+91-', '')); 1437 } else if(window.location.host === 'testseries.multitutor.in') { 1438 $('.TsH_signUp').attr("style", "background: #456dff; border: 1px solid #456dff; "); 1439 $(".TsH_signUp").mouseover(function() { 1440 $(this).attr("style", "color: #456dff !important; background: transparent; border: 1px solid #456dff;"); 1441 }).mouseout(function() { 1442 $(this).attr("style", "background: #456dff; color: #ffff; border: 1px solid #456dff;"); 1443 }); 1444 $('.TsH_login').attr("style", "background: #2e384d; border: 1px solid #2e384d; color: #ffff"); 1445 $(".TsH_login").mouseover(function() { 1446 $(this).attr("style", "color: #2e384d; background: transparent;"); 1447 }).mouseout(function() { 1448 $(this).attr("style", "background: #2e384d; color: #ffff;"); 1449 }); 1450 $("#footer_article_heading_about").html("GET TO KNOW US"); 1451 $("#footer_item_about_us").html("Services"); 1452 $("#footer_article_heading_student").html("SCHOLARSHIP"); 1453 $("#footer_article_heading_business").html("PARTNER WITH US"); 1454 } else if(["mocktests.thecatalystz.com", "testprep.ilrnu.com"].includes(window.location.host)) { 1455 $(".school_footer, #footer_div").css('background-color', '#000000'); 1456 $(".info b, .footer_heading").css({ 1457 "color": "#dddddd", 1458 "font-weight": "600" 1459 }); 1460 $(".school_footer a").css("color", "#a1a7ad"); 1461 $(".school_footer, .eg_footer_logo, .eg-footer-social, .download_app").css('filter', 'invert(1)'); 1462 $(".school_footer a, sub_menu li").hover(function(){ 1463 $(this).css("color", "#b4231e"); 1464 }, function(){ 1465 $(this).css("color", "#a1a7ad"); 1466 }); 1467 if(window.location.host === 'testprep.ilrnu.com') { 1468 // This is a very dirty solution to meet the requirements of the client that was procured without Tech team approval. Not at all proud of this solution and needs to be fixed later. 1469 $('#footer_article_heading_advertise').html("Become A Business Partner"); 1470 $('#footer_link_disclaimer').html("Refer And Earn"); 1471 $("#footer_item_about_us").html("FAQs"); 1472 } 1473 } else if(window.location.host === 'sharpglobalschool.in') { 1474 $('#footer_article_heading_blog').html("CBSE Disclosure"); 1475 } else if(window.location.host === 'testportal.geoias.com') { 1476 $('.TsH_signUp').attr("style", "background: #00AFEF; border: 1px solid #00AFEF !important;"); 1477 $(".TsH_signUp").mouseover(function() { 1478 $(this).attr("style", "color: #00AFEF !important; background: transparent; border: 1px solid #00AFEF !important;"); 1479 }).mouseout(function() { 1480 $(this).attr("style", "background: #00AFEF; color: #ffff; border: 1px solid #00AFEF !important;"); 1481 }); 1482 } 1483 </script>
1483 1484</body> 1485 1486</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.