PageSourceSearch

https://45ups.com/Account/Register

html 45ups.com collected 2026-10-04 18:48:26 UTC 24,904 bytes, 588 lines download raw bytes

1
2<!DOCTYPE html>
3<html lang="en" dir="ltr">
4
5<head>
6	<!-- Google tag (gtag.js) -->
vendor: 65 bytes, lines 6-7
6
7	<script async src="https://www.googletagmanager.com/gtag/js?id=
7G-X98DFVGTMR
vendor: 13 bytes, lines 7-8
7"></script>
8	
8<script>
9		
vendor: 134 bytes, lines 9-13
9window.dataLayer = window.dataLayer || [];
10		function gtag(){dataLayer.push(arguments);}
11		gtag('js', new Date());
12
13		gtag('config', '
13G-X98DFVGTMR
vendor: 5 bytes, lines 13-14
13');
14	
14</script>
14
15	<meta charset="utf-8" />
16	<title></title>
17	<meta name="description" content="" />
18	<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
19	<link rel="canonical" href="" />
20	<!--begin::Fonts-->
21	<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Poppins:300,400,500,600,700" />
22	<!--end::Fonts-->
23
24	<link href="/assets/css/slick.css" rel="stylesheet" type="text/css" />
25	<link href="/assets/css/slick-theme.css" rel="stylesheet" type="text/css" />
26
27	<link href="/assets/css/themes/layout/brand/dark-rt.css" rel="stylesheet" type="text/css" />
28
29		<link href="/assets/plugins/custom/fullcalendar/fullcalendar.bundle-ltr.css" rel="stylesheet" type="text/css" />
30		<link href="/assets/css/pages/login/login-3-ltr.css" rel="stylesheet" type="text/css" />
31		<link href="/assets/plugins/global/plugins.bundle-ltr.css" rel="stylesheet" type="text/css" />
32		<link href="/assets/plugins/custom/prismjs/prismjs.bundle-ltr.css" rel="stylesheet" type="text/css" />
33		<link href="/assets/css/style.bundle-ltr.css" rel="stylesheet" type="text/css" />
34		<link href="/assets/css/themes/layout/header/base/light-ltr.css" rel="stylesheet" type="text/css" />
35		<link href="/assets/css/themes/layout/header/menu/light-ltr.css" rel="stylesheet" type="text/css" />
36		<link href="/assets/css/themes/layout/aside/dark-ltr.css" rel="stylesheet" type="text/css" />
37		<link href="/assets/css/style-ltr.css" rel="stylesheet" type="text/css" />
38	<link rel="shortcut icon" href="/assets/media/logos/favicon.png" />
39	<style>
40		.password-toggle-wrapper {
41			position: relative;
42		}
43
44		.password-toggle-btn {
45			position: absolute;
46			right: 10px;
47			top: 50%;
48			transform: translateY(-50%);
49			background: none;
50			border: none;
51			cursor: pointer;
52			padding: 5px;
53			color: #7E8299;
54		}
55
56			.password-toggle-btn:hover {
57				color: #3699FF;
58			}
59		/* RTL support */
60		html[dir="rtl"] .password-toggle-btn {
61			right: auto;
62			left: 10px;
63		}
64	</style>
65</head>
66<!--end::Head-->
67<!--begin::Body-->
68
69<body id="kt_body" class="header-fixed header-mobile-fixed subheader-enabled subheader-fixed aside-enabled aside-fixed aside-minimize-hoverable page-loading">
70	<!-- Account-provisioning overlay: shown while the tenant database is being created. -->
71	<style>
72		#creatingAccountOverlay { position: fixed; top: 0; left: 0; right: 0; bottom: 0; z-index: 100000; background: rgba(255,255,255,0.94); display: none; align-items: center; justify-content: center; flex-direction: column; text-align: center; padding: 24px; }
73		#creatingAccountOverlay .ca-spinner { width: 56px; height: 56px; border: 5px solid #e4e6ef; border-top-color: #3699ff; border-radius: 50%; animation: caSpin .9s linear infinite; margin-bottom: 22px; }
74		@keyframes caSpin { to { transform: rotate(360deg); } }
75		#creatingAccountOverlay h4 { color: #181c32; font-weight: 600; margin-bottom: 10px; }
76		#creatingAccountOverlay p { color: #7e8299; max-width: 440px; margin: 0; }
77	</style>
78	<div id="creatingAccountOverlay" role="alertdialog" aria-live="assertive" aria-busy="true">
79		<div class="ca-spinner"></div>
80		<h4>Setting up your account</h4>
81		<p>This may take a few moments. Please wait and don't close or leave this page until your account is ready.</p>
82	</div>
83	<!--begin::Main-->
84	<!--begin::Header Mobile-->
85	<div id="kt_header_mobile" class="header-mobile align-items-center header-mobile-fixed">
86		<!--begin::Logo-->
87		<a href="index.html">
88			<img alt="Logo" src="/assets/media/logos/logo-light.png" />
89		</a>
90		<!--end::Logo-->
91		<!--begin::Toolbar-->
92		<div class="d-flex align-items-center">
93			<!--begin::Header Menu Mobile Toggle-->
94			<button class="btn p-0 burger-icon ml-4" id="kt_header_mobile_toggle">
95				<span></span>
96			</button>
97			<!--end::Header Menu Mobile Toggle-->
98		</div>
99		<!--end::Toolbar-->
100	</div>
101	<!--end::Header Mobile-->
102	<div class="d-flex flex-column flex-root">
103		<!--begin::Page-->
104		<div class="d-flex flex-row flex-column-fluid page">
105
106			<!--begin::Wrapper-->
107			<div class="d-flex flex-column flex-row-fluid without-sidebar" id="kt_wrapper">
108				<!--begin::Header-->
109				<div id="kt_header" class="header header-fixed">
110					<!--begin::Container-->
111					<div class="container-fluid d-flex align-items-center justify-content-between">
112						<!--begin::Logo-->
113						<div class="box-logo">
114							<a href="/LandingPage/IndexAr"> <img alt="" class="logo-img" src="/assets/media/logos/logo-light.png"></a>
115						</div>
116						<!--begin::Header Menu Wrapper-->
117						<div class="header-menu-wrapper header-menu-wrapper-left" id="kt_header_menu_wrapper">
118							<!--begin::Header Menu-->
119							<div id="kt_header_menu" class="header-menu header-menu-mobile header-menu-layout-default">
120								<!--begin::Header Nav-->
121								<ul class="menu-nav">
122									<li class="menu-item menu-item-rel">
123										<a href="/LandingPage/IndexAr" class="menu-link ">
124											<span class="menu-text">Main Page</span>
125										</a>
126									</li>
127									<li class="menu-item menu-item-rel">
128										<a href="/HelpCenter" class="menu-link ">
129											<span class="menu-text">Help Center</span>
130										</a>
131									</li>
132								</ul>
133								<!--end::Header Nav-->
134							</div>
135							<!--end::Header Menu-->
136						</div>
137						<!--end::Header Menu Wrapper-->
138						<!--begin::Topbar-->
139						<div class="topbar">
140							<div class="dropdown profile-dropdown">
141								<div class="topbar-item" data-toggle="dropdown" data-offset="10px,0px">
142									<div class="btn btn-icon btn-clean btn-dropdown btn-lg">
143										<div class="profile-setting">
144										</div>
145									</div>
146								</div>
147							</div>
148						</div>
149						<!--end::Topbar-->
150					</div>
151					<!--end::Container-->
152				</div>
153				<!--end::Header-->
154				<!--begin::Content-->
155				<div class="content d-flex flex-column flex-column-fluid register-page" id="kt_content">
156
157					<!--begin::Entry-->
158					<div class="d-flex flex-column-fluid">
159						<!--begin::Container-->
160						<div class="container-fluid">
161							<!--begin::Row-->
162							<div class="row justify-content-center">
163								<div class="col-md-12">
164									<ul class="box-lang">
165										<li class="item-lang">
166											<a href="#" class="link-lang lang-en" onclick="AjaxCall('en');return false;">English</a>
167										</li>
168										<li class="item-lang">
169											<a href="#" class="link-lang lang-ar" onclick="AjaxCall('ar');return false;">عربي</a>
170										</li>
171									</ul>
172								</div>
173								<div class="col-md-12">
174									<ul class="box-login-links">
175										<li class="item-login">
176											<a href="/Account/Register" class="link-login rounded-xl  btn btn-warning">Create New Account</a>
177										</li>
178										<li class="item-login">
179											<a href="/Account/Login" class="link-login rounded-xl  btn btn-warning">Login</a>
180										</li>
181									</ul>
182								</div>
183								<div class="col-md-12">
184
185									<!--begin::Login-->
186									<div class="login login-3 wizard d-flex flex-column flex-lg-row flex-column-fluid">
187
188										<!--begin::Content-->
189										<div class="login-content flex-row-fluid d-flex flex-column p-10">
190
191											<!--begin::Wrapper-->
192											<div class="d-flex flex-row-fluid flex-center">
193												<!--begin::Signin-->
194												<div class="login-form">
195													<!--begin::Form-->
196													<form id="registerForm" method="post">
197														
198														<div class="pb-5 pb-lg-15">
199															<h3 class="font-weight-bolder text-dark font-size-h2 font-size-h1-lg">Create New Account</h3>
200														</div>
201
202														<div id="alertBox" class="alert d-none" role="alert"></div>
203
204														<!-- Country Code -->
205														<div class="form-group" id="countryCodeGroup">
206															<select id="CountryCode" name="CountryCode" class="form-control d-inline-block selectpicker" data-size="5">
207																		<option value="1">1</option>
208																		<option value="20">20</option>
209																		<option value="212">
209212</option>
210																		<option value="213">213</option>
211																		<option value="216">216</option>
212																		<option value="218">218</option>
213																		<option value="222">222</option>
214																		<option value="249">249</option>
215																		<option value="252">252</option>
216																		<option value="253">253</option>
217																		<option value="269">269</option>
218																		<option value="966">966</option>
219																		<option value="967">967</option>
220																		<option value="968">968</option>
221																		<option value="971">971</option>
222																		<option value="973">973</option>
223																		<option value="974">974</option>
224																		<option value="965">965</option>
225																		<option value="964">964</option>
226																		<option value="963">963</option>
227																		<option value="962" selected>962</option>
228																		<option value="961">961</option>
229																		<option value="972">972</option>
230																		<option value="970">970</option>
231																		<option value="90">90</option>
232																		<option value="30">30</option>
233																		<option value="31">31</option>
234																		<option value="32">32</option>
235																		<option value="33">33</option>
236																		<option value="34">34</option>
237																		<option value="36">36</option>
238																		<option value="39">39</option>
239																		<option value="40">40</option>
240																		<option value="41">41</option>
241																		<option value="43">43</option>
242																		<option value="44">44</option>
243																		<option value="45">45</option>
244																		<option value="46">46</option>
245																		<option value="47">47</option>
246																		<option value="48">48</option>
247																		<option value="49">49</option>
248																		<option value="351">351</option>
249																		<option value="352">352</option>
250																		<option value="353">353</option>
251																		<option value="354">354</option>
252																		<option value="355">355</option>
253																		<option value="356">356</option>
254																		<option value="357">357</option>
255																		<option value="358">358</option>
256																		<option value="359">359</option>
257																		<option value="370">370</option>
258																		<option value="371">371</option>
259																		<option value="372">372</option>
260																		<option value="380">380</option>
261																		<option value="381">381</option>
262																		<option value="382">382</option>
263																		<option value="385">385</option>
264																		<option value="386">386</option>
265																		<option value="387">387</option>
266																		<option value="389">389</option>
267																		<option value="420">420</option>
268																		<option value="421">421</option>
269																		<option value="423">423</option>
270															</select>
271														</div>
272
273														<!-- Phone Number -->
274														<div class="form-group" id="phoneGroup">
275															<input id="phone" class="form-control" type="tel" name="Phone" autocomplete="off" placeholder="" />
276														</div>
277
278														<!-- Email (shown only for non-962 country codes) -->
279														<div id="emailGroup" class="form-group d-none">
280															<input id="email" class="form-control" type="email" name="Email" autocomplete="off" placeholder="Email Address" />
281														</div>
282
283														<!-- Account Type -->
284														<div class="form-group" id="accountTypeGroup">
285															<select id="accountTypeSelect" class="form-control d-inline-block selectpicker" data-size="5" name="Index">
286																<option value="">--Select Account Type--</option>
287																<option value="0">Teacher</option>
288																<option value="1">Student</option>
289															</select>
290														</div>
291
292														<!-- Step 2: OTP + Password (hidden initially) -->
293														<div id="step2" class="d-none">
294															<div class="form-group">
295																<input id="code" class="form-control" type="text" name="Code" autocomplete="off" placeholder="Verification Code" />
296															</div>
297															<div class="form-group password-toggle-wrapper">
298																<input id="password" class="form-control" type="password" name="Password" autocomplete="off" placeholder="Password" style="padding-right: 45px;" />
299																<button type="button" class="password-toggle-btn" onclick="togglePassword('password', this)">
300																	<i class="far fa-eye" id="toggleIcon"></i>
301																</button>
302															</div>
303														</div>
304
305														<div class="pb-lg-0 pb-5">
306															<button type="button" id="btnSendCode" class="btn btn-primary btn-login font-size-h4 mr-2">Send Code</button>
307															<button type="button" id="btnVerifyRegister" class="btn btn-success btn-login font-size-h4 d-none">Verify and Register</button>
308														</div>
309
310														<div class="box-have-account text-center mt-4">
311															<p>
312																If you have an account
313																<a href="/Account/Login" class="link-login">Login</a>
314															</p>
315														</div>
316													<input name="__RequestVerificationToken" type="hidden" value="CfDJ8FaPhC6LI5BFqWe3DJReR7Nd82oSiOxa-cyMR74w4xB4l-8oa8M1uAhxXw6rtxVh8_TXnS-Bx1X-aAtwTTyFieDDs00E6_TLqfdGhhkmMCyVzdVtVo4ymBYtRIItEpODGH3A-oN7As8RnkucI9kFzCk" /></form>
317													<!--end::Form-->
318												</div>
319												<!--end::Signin-->
320											</div>
321											<!--end::Wrapper-->
322										</div>
323										<!--end::Content-->
324										<!--begin::Aside-->
325										<div class="login-aside d-flex flex-column flex-row-auto">
326											<div class="d-flex flex-column-auto flex-column pt-lg-4 pt-4">
327												<a href="#" class="login-logo text-center pt-lg-6 pb-16">
328													<img src="/assets/media/logos/logo-1.png" alt="" />
329												</a>
330												<div class="box-img-type pb-14">
331													<img alt="" class="img-type" src="/assets/media/icons/83.png">
332												</div>
333												<h3 class="font-weight-bolder text-center font-size-h4 text-white line-height-xl pb-lg-8 pb-8">
334													Effective learning
335												</h3>
336											</div>
337										</div>
338										<!--end::Aside-->
339									</div>
340									<!--end::Login-->
341								</div>
342							</div>
343
344						</div>
345						<!--end::Container-->
346					</div>
347					<!--end::Entry-->
348				</div>
349				<!--end::Content-->
350				<div class="footer bg-white py-4 d-flex flex-lg-column" id="kt_footer">
351					<div class="container-fluid d-flex flex-column flex-md-row align-items-center justify-content-between">
352						<div class="text-dark order-2 order-md-1">
353							<span class="text-muted font-weight-bold mr-2">2026 ©</span>
354							<a href="https://vdatait.com/" target="_blank" class="text-dark-75 text-hover-primary">Virtual Data IT</a>
355						</div>
356						<div class="nav nav-dark">
357							<a href="#" target="_blank" class="nav-link pl-0 pr-5">Privacy Policy</a>
358							<a href="#" target="_blank" class="nav-link pl-0 pr-0">Terms and Conditions</a>
359						</div>
360					</div>
361				</div>
362			</div>
363		</div>
364	</div>
365	<div id="kt_scrolltop" class="scrolltop">
366		<span class="svg-icon">
367			<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24px" height="24px" viewBox="0 0 24 24" version="1.1">
368				<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
369					<polygon points="0 0 24 0 24 24 0 24" />
370					<rect fill="#000000" opacity="0.3" x="11" y="10" width="2" height="10" rx="1" />
371					<path d="M6.70710678,12.7071068 C6.31658249,13.0976311 5.68341751,13.0976311 5.29289322,12.7071068 C4.90236893,12.3165825 4.90236893,11.6834175 5.29289322,11.2928932 L11.2928932,5.29289322 C11.6714722,4.91431428 12.2810586,4.90106866 12.6757246,5.26284586 L18.6757246,10.7628459 C19.0828436,11.1360383 19.1103465,11.7686056 18.7371541,12.1757246 C18.3639617,12.5828436 17.7313944,12.6103465 17.3242754,12.2371541 L12.0300757,7.38413782 L6.70710678,12.7071068 Z" fill="#000000" fill-rule="nonzero" />
372				</g>
373			</svg>
374		</span>
375	</div>
376
377	
377<script>
378		var KTAppSettings = {
379			"breakpoints": { "sm": 576, "md": 768, "lg": 992, "xl": 1200, "xxl": 1400 },
380			"colors": {
381				"theme": {
382					"base": { "white": "#ffffff", "primary": "#3699FF", "secondary": "#E5EAEE", "success": "#1BC5BD", "info": "#8950FC", "warning": "#FFA800", "danger": "#F64E60", "light": "#E4E6EF", "dark": "#181C32" },
383					"light": { "white": "#ffffff", "primary": "#E1F0FF", "secondary": "#EBEDF3", "success": "#C9F7F5", "info": "#EEE5FF", "warning": "#FFF4DE", "danger": "#FFE2E5", "light": "#F3F6F9", "dark": "#D6D6E0" },
384					"inverse": { "white": "#ffffff", "primary": "#ffffff", "secondary": "#3F4254", "success": "#ffffff", "info": "#ffffff", "warning": "#ffffff", "danger": "#ffffff", "light": "#464E5F", "dark": "#ffffff" }
385				},
386				"gray": { "gray-100": "#F3F6F9", "gray-200": "#EBEDF3", "gray-300": "#E4E6EF", "gray-400": "#D1D3E0", "gray-500": "#B5B5C3", "gray-600": "#7E8299", "gray-700": "#5E6278", "gray-800": "#3F4254", "gray-900": "#181C32" }
387			},
388			"font-family": "Poppins"
389		};
390	</script>
390
391
392	
392<script src="/assets/plugins/global/plugins.bundle.js"></script>
392
393	
393<script src="/assets/plugins/custom/prismjs/prismjs.bundle.js"></script>
393
394	
394<script src="/assets/js/scripts.bundle.js"></script>
394
395	
395<script src="/assets/plugins/custom/fullcalendar/fullcalendar.bundle.js"></script>
395
396	
396<script src="/assets/js/pages/widgets.js"></script>
396
397	
397<script src="/assets/js/pages/crud/forms/widgets/bootstrap-select.js"></script>
397
398	
398<script src="/assets/js//pages/custom/education/student/profile.js?v=7.2.8"></script>
398
399	
399<script src="/assets/js/pages/crud/forms/editors/summernote.js"></script>
399
400	
400<script src="/assets/js/slick.min.js"></script>
400
401
402	
402<script>
403		// ─── Password Toggle ───────────────────────────────────────────────────────
404		function togglePassword(fieldId, button) {
405			var field = document.getElementById(fieldId);
406			var icon = button.querySelector('i');
407			if (field.type === 'password') {
408				field.type = 'text';
409				icon.classList.remove('fa-eye');
410				icon.classList.add('fa-eye-slash');
411			} else {
412				field.type = 'password';
413				icon.classList.remove('fa-eye-slash');
414				icon.classList.add('fa-eye');
415			}
416		}
417
418		// ─── Slick / Culture ──────────────────────────────────────────────────────
419		$('.login-slider').slick({ dots: false, infinite: false, speed: 300, slidesToShow: 1, slidesToScroll: 1 });
420
421		function AjaxCall(lang) {
422			$.ajax({ url: "/Account/CultureManagement?culture=" + lang, type: 'post', success: function () { window.location.reload(); } });
423		}
424
425		// ─── Helpers ──────────────────────────────────────────────────────────────
426		function getCountryCode() {
427			return ($('#CountryCode').val() || '').toString().trim();
428		}
429
430		function isNonJordan() {
431			return getCountryCode() !== '962';
432		}
433
434		function showAlert(type, message) {
435			var box = $('#alertBox');
436			box.removeClass('d-none alert-success alert-danger')
437			   .addClass(type === 'success' ? 'alert-success' : 'alert-danger');
438			box.text(message);
439		}
440
441		function showCreatingAccountOverlay() {
442			window.__creatingAccount = true;
443			$('#creatingAccountOverlay').css('display', 'flex');
444		}
445
446		function hideCreatingAccountOverlay() {
447			window.__creatingAccount = false;
448			$('#creatingAccountOverlay').hide();
449		}
450
451		// Warn the user not to leave while the account/tenant is being provisioned.
452		window.addEventListener('beforeunload', function (e) {
453			if (window.__creatingAccount) { e.preventDefault(); e.returnValue = ''; }
454		});
455
456		// ─── Update phone placeholder based on selected country code ─────────────
457		function updatePhonePlaceholder() {
458			var cc = getCountryCode();
459			$('#phone').attr('placeholder', cc + 'xxxxxxx');
460		}
461
462		// ─── Show / hide email field based on country code ────────────────────────
463		$('#CountryCode').on('change', function () {
464			updatePhonePlaceholder();
465			if (isNonJordan()) {
466				$('#emailGroup').removeClass('d-none');
467			} else {
468				$('#emailGroup').addClass('d-none');
469				$('#email').val('');
470			}
471		});
472
473		// Set initial placeholder on page load
474		updatePhonePlaceholder();
475
476		// ─── Send OTP ─────────────────────────────────────────────────────────────
477		$('#btnSendCode').on('click', function () {
478			var phone       = $('#phone').val();
479			var countryCode = getCountryCode();
480			var email       = ($('#email').val() || '').toString().trim();
481			var token       = $('input[name="__RequestVerificationToken"]').val();
482
483			// Validate email required for international numbers
484			if (isNonJordan() && !email) {
485				showAlert('danger', 'Email is required for international numbers');
486				return;
487			}
488
489			$('#btnSendCode').prop('disabled', true);
490
491			$.ajax({
492				url: '/Account/Signup/SendCode',
493				type: 'POST',
494				data: {
495					__RequestVerificationToken: token,
496					phone: phone,
497					countryCode: countryCode,
498					email: email
499				},
500				success: function (res) {
501					if (res && res.success) {
502						showAlert('success', res.message || 'Code sent successfully');
503						// Show step 2
504						$('#step2').removeClass('d-none');
505						$('#btnVerifyRegister').removeClass('d-none');
506						// Hide step 1 fields
507						$('#btnSendCode').addClass('d-none');
508						$('#countryCodeGroup').addClass('d-none');
509						$('#phoneGroup').addClass('d-none');
510						$('#emailGroup').addClass('d-none');
511						$('#accountTypeGroup').addClass('d-none');
512					} else {
513						showAlert('danger', (res && res.message) ? res.message : 'Failed to send code');
514					}
515				},
516				error: function () {
517					showAlert('danger', 'Failed to send code');
518				},
519				complete: function () {
520					$('#btnSendCode').prop('disabled', false);
521				}
522			});
523		});
524
525		// ─── Verify OTP & Register ────────────────────────────────────────────────
526		$('#btnVerifyRegister').on('click', function () {
527			var phone       = $('#phone').val();
528			var countryCode = getCountryCode();
529			var email       = ($('#email').val() || '').toString().trim();
530			var code        = ($('#code').val() || '').toString().trim();
531			var password    = ($('#password').val() || '').toString();
532			var index       = ($('#accountTypeSelect').val() || '');
533			var token       = $('input[name="__RequestVerificationToken"]').val();
534
535			if (!code || !password) {
536				showAlert('danger', 'Please enter code and password');
537				return;
538			}
539
540			$('#btnVerifyRegister').prop('disabled', true);
541			showCreatingAccountOverlay();
542
543			$.ajax({
544				url: '/Account/Signup/Verify',
545				type: 'POST',
546				data: {
547					__RequestVerificationToken: token,
548					countryCode: countryCode,
549					phone: phone,
550					email: email,
551					code: code,
552					password: password,
553					index: index
554				},
555				success: function (res) {
556					if (res && res.success) {
557						window.__creatingAccount = false;
558						showAlert('success', res.message || 'Registered successfully');
559						setTimeout(function () {
560							window.location.href = res.redirectUrl || '/';
561						}, 800);
562					} else {
563						hideCreatingAccountOverlay();
564						showAlert('danger', (res && res.message) ? res.message : 'Registration failed');
565					}
566				},
567				error: function () {
568					hideCreatingAccountOverlay();
569					showAlert('danger', 'Registration failed');
570				},
571				complete: function () {
572					$('#btnVerifyRegister').prop('disabled', false);
573				}
574			});
575		});
576
577		// ─── Auto-detect country code from IP ────────────────────────────────────
578		$(document).ready(function () {
579			var cc = '';
580			if (cc) {
581				$('#CountryCode').val(cc).trigger('change');
582			}
583		});
584	</script>
584
585</body>
586<!--end::Body-->
587
588</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.