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