PageSourceSearch

https://ask4u.in/

html ask4u.in collected 2026-09-27 08:48:42 UTC 82,938 bytes, 1,396 lines download raw bytes

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()">&times;</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>&nbsp; &nbsp; &nbsp;English</option> 
597                                            <option value="2">&nbsp; &nbsp; &nbsp;हिंदी</option>
598                                            <option value="14">&nbsp; &nbsp; &nbsp;
598Español</option>
599                                            <option value="15">&nbsp; &nbsp; &nbsp;عربي</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]}">&nbsp; &nbsp; &nbsp;${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.