Advertisement
Guest User

Untitled

a guest
Feb 11th, 2017
170
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 34.30 KB | None | 0 0
  1. ! function(a, b, c, d) {
  2. "use strict";
  3. a.itwLogin = function(c, e) {
  4. var f = new RegExp(/^[A-Z0-9\\@._-]+$/i),
  5. g = new RegExp(/^([A-Z0-9._%+-]+)@([A-Z0-9.-]+\.[A-Z]+)$/i),
  6. h = new RegExp(/^([A-Z0-9-]+)\\([A-Z0-9._%+-]+)$/i),
  7. i = new RegExp(/^logondata=dmnName=([^;]+)&lgnName=([^;]+)$/i),
  8. m = {},
  9. n = {
  10. debugEnabled: !1,
  11. debugStepbyStep: !0,
  12. debugAjaxCall: !0,
  13. validateOnBlur: !0,
  14. preprocessUsername: !1,
  15. usernameFormat: "netbios",
  16. checkAccountStatus: !1,
  17. checkAccountURL: "https://accounts.myworkz.nl/Account/passwordstate/{1}",
  18. preCheckOnBlur: !0,
  19. registrationRequired: !0,
  20. cookiesEnabled: !0,
  21. cookieName: "itworkzLogon",
  22. identifierOverride: "it-workz.info",
  23. selectors: {
  24. preprocess: "#preUsername",
  25. username: "#username",
  26. visibleusername: "",
  27. password: "#password",
  28. newpassword: "#newpassword",
  29. confirmpassword: "#cnewpassword",
  30. otp: "#passcode",
  31. domainselect: "#domainSelect",
  32. submitbutton: "#SubmitCreds",
  33. debug: "#testAntwoord",
  34. privatelogon: "#rdoPrvt",
  35. publiclogon: "#rdoPblc",
  36. curl: "#curl"
  37. },
  38. styleSelectors: {
  39. wrapper: ".wrapper",
  40. content: ".content",
  41. loader: ".loader",
  42. loadermsg: ".loader-message",
  43. inlineloader: ".inline-loader"
  44. },
  45. domains: [{
  46. short: "rocwb",
  47. long: "rocwb.local",
  48. netbios: "rocwblocal"
  49. }, {
  50. short: "svc",
  51. long: "svc.local",
  52. netbios: "svc"
  53. }],
  54. knownDomains: [{
  55. short: "mgmt",
  56. long: "mgmt.it-workz.nl",
  57. netbios: "mgmt"
  58. }, {
  59. short: "digiworkz",
  60. long: "digiworkz.nl",
  61. netbios: "digiworkz"
  62. }, {
  63. short: "rocwb",
  64. long: "rocwb.local",
  65. netbios: "rocwblocal"
  66. }, {
  67. short: "svc",
  68. long: "svc.local",
  69. netbios: "svc"
  70. }, {
  71. short: "myworkz",
  72. long: "myworkz.nl",
  73. netbios: "myworkz"
  74. }],
  75. accountStatuses: [{
  76. status: "unlockURL",
  77. serviceStatus: "AccountUnlockLink"
  78. }, {
  79. status: "isLocked",
  80. serviceStatus: "IsAccountLockedOut"
  81. }, {
  82. status: "isRegistered",
  83. serviceStatus: "IsRegistred"
  84. }, {
  85. status: "isExpired",
  86. serviceStatus: "PasswordExpireState"
  87. }, {
  88. status: "pwdChangeURL",
  89. serviceStatus: "PasswordChangeLink"
  90. }, {
  91. status: "registerURL",
  92. serviceStatus: "PasswordRecoveryInfoLink"
  93. }, {
  94. status: "pwdExpiresIn",
  95. serviceStatus: "PasswordRemainingDays"
  96. }, {
  97. status: "pwdResetURL",
  98. serviceStatus: "PasswordResetLink"
  99. }, {
  100. status: "unlockTime",
  101. serviceStatus: "RemaingLockoutTime"
  102. }, {
  103. status: "unlockCount",
  104. serviceStatus: "UnLockAttemptsRemaining"
  105. }, {
  106. status: "isDisabled",
  107. serviceStatus: "IsAccountDisabled"
  108. }, {
  109. status: "MFAisEnabled",
  110. serviceStatus: "MFAisEnabled"
  111. }, {
  112. status: "MFAisRegistered",
  113. serviceStatus: "MFAisRegistered"
  114. }, {
  115. status: "MFAToken",
  116. serviceStatus: "MFAToken"
  117. }, {
  118. status: "MFAMode",
  119. serviceStatus: "MFAMode"
  120. }, {
  121. status: "MFARegistrationURL",
  122. serviceStatus: "MFARegistrationURL"
  123. }],
  124. language: {
  125. errors: {
  126. bothBackslashandAtSign: "Uw gebruikersnaam bevat zowel een \\ als een @, vul uw gebruikersnaam in als domeinnaam\\gebruikersnaam of gebruikersnaam@domein.extensie .",
  127. invalidChars: "Uw gebruikersnaam bevat niet toegestane karakters. <br>Alleen letters, cijfers en de leestekens . _ - \\ @ zijn toegestaan.",
  128. emptyUsername: "Het gebruikersnaamveld is leeg, u moet een gebruikersnaam opgeven.",
  129. emptyPassword: "Het wachtwoordveld is leeg, u moet een wachtwoord opgeven.",
  130. invalidFormat: "Uw gebruikersnaam is niet juist in gevoerd, vul uw gebruikersnaam in als domeinnaam\\gebruikersnaam of gebruikersnaam@domein.extensie."
  131. },
  132. loader: {
  133. standard: "U wordt aangemeld, een ogenblik geduld...",
  134. notregistered: '<h3><div class="icon warning-icon"></div>Registratie niet voltooid</h3><br>U kunt hierdoor geen gebruik maken van de wachtwoord vergeten functionaliteit.<br><br>U wordt over <span id="countdownTimer"></span> seconden automatisch aangemeld.<br>Klik op onderstaande knop om direct te registeren.<div class=\'button-group\'><a class=\'btn btn-countdown\' href="{1}">Nu registreren</a></div>',
  135. notregisteredRequired: '<h3><div class="icon error-icon"></div>Registratie niet voltooid</h3><br>U kunt hierdoor geen gebruik maken van de wachtwoord vergeten functionaliteit.<br><br>U wordt over <span id="countdownTimer"></span> seconden automatisch doorgestuurd of klik op onderstaande knop om direct het registratieproces te starten.<div class=\'button-group\'><a class=\'btn btn-countdown\' href="{1}">Nu registreren</a></div>',
  136. expires: '<h3><div class="icon warning-icon"></div>Uw wachtwoord gaat verlopen</h3><br>Uw wachtwoord verloopt over {1} dagen.<br><br>U wordt over <span id="countdownTimer"></span> seconden automatisch aangemeld.<br>Klik op onderstaande knop om nu uw wachtwoord te wijzigen.<div class=\'button-group\'><a class=\'btn btn-countdown\' href="{2}">Nu wijzigen</a></div>',
  137. isExpired: '<h3><div class="icon error-icon"></div>Uw wachtwoord is verlopen</h3><br>U wordt over <span id="countdownTimer"></span> seconden automatisch doorgestuurd of klik op onderstaande knop om direct uw wachtwoord te wijzigen.<div class=\'button-group\'><a class=\'btn btn-countdown\' href="{1}">Nu wijzigen</a></div>',
  138. timeLockedSelfUnlock: '<h3><div class="icon warning-icon"></div>Uw account is geblokkeerd</h3><br>Uw account wordt over <span id="countdownTimer">{1}</span> minuten ({2}) automatisch gedeblokkeerd.<br><br>U hebt vandaag nog {3} pogingen om uw account zelf te deblokkeren.<br><br>Klik op onderstaande knop om uw account te deblokkeren of neem contact op met de Servicedesk van IT-Workz via 088 - 489 6777.<div class=\'button-group\'><a class=\'btn btn-submit\' href="{4}">Nu deblokkeren</a></div>',
  139. timeLocked: '<h3><div class="icon warning-icon"></div>Uw account is geblokkeerd</h3><br>Uw account wordt over <span id="countdownTimer">{1}</span> minuten ({2}) automatisch gedeblokkeerd.<br><br>Probeert u het dan nog eens<br> of neem contact op met de Servicedesk van IT-Workz via 088 - 489 6777.',
  140. locked: '<h3><div class="icon error-icon"></div>Uw account is geblokkeerd</h3><br>Neem contact op met de Servicedesk van IT-Workz via 088 - 489 6777.',
  141. lockedSelfUnlock: "<h3><div class=\"icon warning-icon\"></div>Uw account is geblokkeerd</h3><br>U heeft vandaag nog {1} pogingen om uw account zelf te deblokkeren.<br><br>Klik op onderstaande knop om uw account te deblokkeren of neem contact op met de Servicedesk van IT-Workz via 088 - 489 6777.<div class='button-group'><a class='btn btn-submit' href=\"{2}\">Nu deblokkeren</a></div>",
  142. accountStatusError: '<h3><div class="icon warning-icon"></div>Accountstatus onbekend</h3><br>We kunnen de status van uw account op dit moment niet opvragen.<br>U wordt over <span id="countdownTimer"></span> seconden automatisch aangemeld.<br><br>Informatie voor de beheerder:<br>{1}',
  143. loaderError: "<h3><div class=\"icon error-icon\"></div>Storing!</h3><br>Er is een fout opgetreden.<br>Herlaad de pagina om opnieuw te proberen.<br><br>Informatie voor de beheerder: <br>{1}: {2}<div class='button-group'><a class='btn btn-submit' href=\"javascript:window.location.href=window.location.href\">Opnieuw proberen</a></div>",
  144. disabled: "<h3><div class=\"icon error-icon\"></div>Uw account is niet meer actief</h3><br>Als uw account ten onrechte is uitgeschakeld, <br>kunt u contact opnemen met de Servicedesk van IT-Workz<br> via 088 - 489 6777.<div class='button-group'><a class='btn btn-submit' href=\"javascript:window.location.href=window.location.href\">Opnieuw proberen</a></div>",
  145. mfanotregistered: '<h3><div class="icon warning-icon"></div>MFA registratie niet voltooid</h3><br>Om van deze dienst gebruik te maken<br>moet het MFA registratie proces voltooid zijn.<br><br>U wordt over <span id="countdownTimer"></span> seconden automatisch doorgestuurd of klik op onderstaande knop om direct het registratieproces te starten.<div class=\'button-group\'><a class=\'btn btn-countdown\' href="{1}">Nu registreren</a></div>',
  146. mfahasToken: '<h3><div class="icon error-icon"></div>Aanmelden niet mogelijk</h3><br>U maakt gebruik van een e-token.<br>Deze methode wordt niet ondersteund voor deze dienst.<br><br>Maak gebruik van werkplek.rocwb.nl <br>of gebruik uw smartphone als MFA verificatiemethode.',
  147. mfaMethodApp: '<svg class="icon-svg app-icon"><use xlink:href="#app-icon"></use></svg><br><h3><svg class="spinner" viewbox="0 0 40 40"><circle class="spinnerCircle" cx="20" cy="20" r="18"></circle></svg>Wacht op MFA-verificatie...</h3><br><div class="countdown"><div class="countdown-bar"></div></div><br>Verifieer uw aanmelding in de app<br>op uw smartphone om door te gaan.<br>',
  148. mfaMethodSMS: '<svg class="icon-svg message-icon"><use xlink:href="#message-icon"></use></svg><br><h3><svg class="spinner" viewbox="0 0 40 40"><circle class="spinnerCircle" cx="20" cy="20" r="18"></circle></svg>Wacht op MFA-verificatie...</h3><br><div class="countdown"><div class="countdown-bar"></div></div><br>U ontvangt een sms met een code.<br>Stuur deze code terug naar de afzender om door te gaan.',
  149. mfaMethodCall: '<svg class="icon-svg phone-icon"><use xlink:href="#phone-icon"></use></svg><br><h3><svg class="spinner" viewbox="0 0 40 40"><circle class="spinnerCircle" cx="20" cy="20" r="18"></circle></svg>Wacht op MFA-verificatie...</h3><br><div class="countdown"><div class="countdown-bar"></div></div><br>U wordt gebeld.<br>Volg de gesproken instructies om door te gaan.',
  150. mfaMethodUnknown: '<h3><svg class="spinner" viewbox="0 0 40 40"><circle class="spinnerCircle" cx="20" cy="20" r="18"></circle></svg>Wacht op MFA-verificatie...</h3><br><div class="countdown"><div class="countdown-bar"></div></div><br>Verfieer uw aanmelding door gebruik te maken <br>van de door u gekozen verificatiemethode.'
  151. }
  152. }
  153. },
  154. o = this;
  155. o.settings = {};
  156. var p = a(c);
  157. o.init = function() {
  158. o.settings = a.extend({}, n, e), o.settings.selectors.visibleusername = o.settings.preprocessUsername ? o.settings.selectors.preprocess : o.settings.selectors.username, a(o.settings.selectors.visibleusername).val().length > 0 && a(o.settings.selectors.visibleusername).val(""), m = I(), m.rurl !== d && a(o.settings.selectors.curl).val(m.rurl), m.trigger !== d && F(o.settings.language.loader[m.trigger], !1), m.triggerLoader !== d && F(o.settings.language.loader.standard, !0), o.settings.domains.length > 1 ? D(a(o.settings.selectors.domainselect), o.settings.domains) : a(o.settings.selectors.domainselect).html(o.settings.domains[0].short), o.settings.preCheckOnBlur && a(o.settings.selectors.visibleusername).closest(".form-group").after('<div class="form-loader"><div class="inline-loader" style="display:none;"><div></div><div></div><div></div><div></div></div></div>'), N(o.settings.cookieName), a(o.settings.selectors.visibleusername).on("keypress", function(b) {
  159. 13 == b.which && (b.preventDefault(), a('[data-index="' + (parseFloat(a(b.target).attr("data-index")) + 1).toString() + '"]').trigger("focus"))
  160. }), a(o.settings.selectors.password).on("keypress", function(b) {
  161. 13 == b.which && (b.preventDefault(), a(o.settings.selectors.submitbutton).trigger("click"))
  162. }), o.settings.validateOnBlur && p.on("blur", "[data-validation=true]", function() {
  163. var b = a(this);
  164. y(b, "onBlur"), o.settings.checkAccountStatus && o.settings.preCheckOnBlur && "#" + b.attr("id") == o.settings.selectors.visibleusername && v(b)
  165. }), a(o.settings.selectors.submitbutton).on("click", function(b) {
  166. b.preventDefault(), x() && (H("Form validatie geslaagd."), a(o.settings.selectors.otp).length > 0 && "" === a(o.settings.selectors.otp).val() && "" != a(o.settings.selectors.password).val() && (a("label[for=" + o.settings.selectors.otp.replace("#", "") + "]").text(""), a(o.settings.selectors.otp).val(a(o.settings.selectors.password).val())), a(o.settings.selectors.privatelogon).prop("checked") && O(o.settings.cookieName, a(o.settings.selectors.visibleusername).val()), a(o.settings.selectors.publiclogon).prop("checked") && P(o.settings.cookieName), o.settings.checkAccountStatus ? (H("Getting URL parameters"), F(o.settings.language.loader.standard, !0), H("Starting AccountStatus proces..."), q(C(a(o.settings.selectors.username).val(), "upn", !0))) : r())
  167. })
  168. };
  169. var q = function(b) {
  170. H("Getting accountstatus by Ajax..."), s(b, function(c, d, e) {
  171. c ? 0 != c.Status ? (H("Status - Error while retrieving data: " + status.Message), E(L(o.settings.language.loader.accountStatusError, "AccountStatusService Error: " + status.Message), 14, "#countdownTimer", function() {
  172. r()
  173. })) : (H("Accountstatus retrieved:"), H(c), u(a.parseJSON(c.Data), b, !1)) : "Timeout" !== d ? (H("Request - Failed because of: " + e), E(L(o.settings.language.loader.accountStatusError, "Error bij verbinden met AccountStatusService:" + e), 14, "#countdownTimer", function() {
  174. r()
  175. })) : (H("Request - Failed because of timeout"), E(L(o.settings.language.loader.accountStatusError, "Timeout bij verbinden met AccountStatusService."), 14, "#countdownTimer", function() {
  176. r()
  177. }))
  178. })
  179. },
  180. r = function() {
  181. H("Starting login process.");
  182. var b = C(a(o.settings.selectors.visibleusername).val(), o.settings.usernameFormat, !0);
  183. H("Using username:" + b), a(o.settings.selectors.visibleusername).val(b), H("username: " + a(o.settings.selectors.username).val() + ", password: " + a(o.settings.selectors.password).val() + ", passcode: " + a(o.settings.selectors.otp).val()), setTimeout(function() {
  184. p.submit()
  185. }, 200)
  186. },
  187. s = function(b, c, e) {
  188. var e = e || 1e4;
  189. if (0 == o.settings.debugAjaxCall) return a(o.settings.selectors.debug).val().toString();
  190. var f = L(o.settings.checkAccountURL, b);
  191. H("Request - Getting AccountStatus for: " + b + " by using url: " + f);
  192. a.ajax({
  193. type: "Get",
  194. url: f,
  195. timeout: e,
  196. dataType: "json",
  197. cache: !1
  198. }).done(function(a) {
  199. H("Request - Answer received: "), c(a)
  200. }).fail(function(a, b, e) {
  201. c(d, b, e)
  202. })
  203. },
  204. t = function(b) {
  205. var c = {};
  206. return a.each(o.settings.accountStatuses, function(d, e) {
  207. c[e.status] = b[a.grep(o.settings.accountStatuses, function(a) {
  208. return a.status === e.status
  209. })[0].serviceStatus]
  210. }), c
  211. },
  212. u = function(c, d, e) {
  213. var f = t(c),
  214. g = o.settings.identifierOverride.length > 0 ? "&authIdentifier=" + o.settings.identifierOverride : "";
  215. if (H("Parsing AccountStatus"), f.isDisabled) return H("Status - Account is Disabled."), void F(L(o.settings.language.loader.disabled));
  216. if (!f.isLocked) {
  217. if (!f.isRegistered && o.settings.registrationRequired) {
  218. var i = b.location.href,
  219. p = f.registerURL + "?url=" + encodeURIComponent(i) + "&userPrincipalName=" + d + g + "&phase=registration";
  220. return H("Using registerURL: " + p), H("Account - Not registered (and is NOT required), authenticate and redirect"), void E(L(o.settings.language.loader.notregisteredRequired, p), 14, "#countdownTimer", function() {
  221. b.location.href = p
  222. })
  223. }
  224. if (!f.isRegistered && !o.settings.registrationRequired) {
  225. var i = b.location.href,
  226. p = f.registerURL + "?url=" + encodeURIComponent(i) + "&userPrincipalName=" + d + g + "&phase=registration";
  227. return H("Account - Not registered (and is NOT required), authenticate and redirect"), void E(L(o.settings.language.loader.notregistered, p), 14, "#countdownTimer", function() {
  228. r()
  229. })
  230. }
  231. if (1 !== f.isExpired) {
  232. var i = b.location.href,
  233. q = f.pwdResetURL + "?url=" + encodeURIComponent(i) + "&userPrincipalName=" + d + g;
  234. return 0 === f.isExpired && (H("Account - Password is expired!"), E(L(o.settings.language.loader.isExpired, q), 14, "#countdownTimer", function(c) {
  235. a("body").animate({
  236. opacity: 0
  237. }, 500, function() {
  238. H("Account - Redirecting to: " + q), b.location.href = q
  239. })
  240. })), void(2 === f.isExpired && "preCheck" !== e && (H("Account - Password is about to expire!"), E(L(o.settings.language.loader.expires, f.pwdExpiresIn, q), 14, "#countdownTimer", function() {
  241. r()
  242. })))
  243. }
  244. if (f.MFAisEnabled) {
  245. if (!f.MFAisRegistered) return H("Account - MFA is enabled, but not registered!"), void E(L(o.settings.language.loader.mfanotregistered, f.MFARegistrationURL), 14, "#countdownTimer", function() {
  246. b.location.href = f.MFARegistrationURL
  247. });
  248. if (f.MFAisRegistered && "oathToken" == f.MFAMode) return H("Account - MFA is enabled and registration is complete, processing with method: " + f.MFAMode + "."), void setTimeout(function() {
  249. F(L(o.settings.language.loader.mfahasToken))
  250. }, 750);
  251. if (f.MFAisRegistered && "phoneApp" == f.MFAMode && "preCheck" !== e) return H("Account - MFA is enabled and registration is complete, processing with method: " + f.MFAMode + "."), r(), void setTimeout(function() {
  252. F(L(o.settings.language.loader.mfaMethodApp))
  253. }, 2e3);
  254. if (f.MFAisRegistered && "voiceCall" == f.MFAMode && "preCheck" !== e) return H("Account - MFA is enabled and registration is complete, processing with method: " + f.MFAMode + "."), r(), void setTimeout(function() {
  255. F(L(o.settings.language.loader.mfaMethodCall))
  256. }, 2e3);
  257. if (f.MFAisRegistered && "smsText" == f.MFAMode && "preCheck" !== e) return H("Account - MFA is enabled and registration is complete, processing with method: " + f.MFAMode + "."), r(), void setTimeout(function() {
  258. F(L(o.settings.language.loader.mfaMethodSMS))
  259. }, 2e3);
  260. if (f.MFAisRegistered && "preCheck" !== e) return H("Account - MFA is enabled and registration is complete, processing with method: " + f.MFAMode + "."), r(), void setTimeout(function() {
  261. F(L(o.settings.language.loader.mfaMethodUnknown))
  262. }, 2e3)
  263. }
  264. return H("Account - OK."), "preCheck" === e || void r()
  265. }
  266. if (H("Status - Account is Locked"), f.unlockTime < 0 && (f.unlockTime = Math.abs(f.unlockTime)), f.unlockTime > 0) {
  267. var h = new Date,
  268. i = b.location.href,
  269. j = g.length > 0 ? f.unlockURL + "?url=" + encodeURIComponent(i) + "&userPrincipalName=" + d + g : f.unlockURL;
  270. h.setMinutes(h.getMinutes() + f.unlockTime);
  271. var k = h.getMinutes(),
  272. l = h.getHours() + ":" + (k < 10 ? "0" + k : k),
  273. m = f.unlockTime;
  274. setInterval(function() {
  275. 0 !== m ? m-- : m = 0, 0 == m && b.location.reload(), a("#countdownTimer").text(m)
  276. }, 6e4);
  277. f.unlockCount > 0 ? (H("Status - Locked; auto-unlock in " + m + " minutes, self-unlocks: " + f.unlockCount), F(L(o.settings.language.loader.timeLockedSelfUnlock, f.unlockTime, l, f.unlockCount, j))) : (H("Status - Locked; auto-unlock in " + m + " minutes, no self-unlocks."), F(L(o.settings.language.loader.timeLocked, f.unlockTime, l)))
  278. } else f.unlockCount > 0 ? (H("Status - Locked; no auto-unlock, self-unlocks: " + f.unlockCount), F(L(o.settings.language.loader.lockedSelfUnlock, f.unlockCount, j))) : (H("Status - Locked; no auto-unlock, no self-unlocks"), F(L(o.settings.language.loader.locked)))
  279. },
  280. v = function(b) {
  281. var c = a(o.settings.styleSelectors.inlineloader),
  282. d = b.val();
  283. if (H("preChecking Account..."), z(d) === !0) {
  284. c.show();
  285. var e = C(d, "upn", !0);
  286. s(e, function(b) {
  287. b ? 0 != b.Status ? (c.hide(), H("Accountstatus returned an error. Stop prechecking...")) : (c.hide(), u(a.parseJSON(b.Data), e, "preCheck")) : (c.hide(), H("Accountstatus returned no result. Stop prechecking..."))
  288. }, 5e3)
  289. }
  290. },
  291. w = function(a, b, c) {
  292. var d = a.val(),
  293. e = "";
  294. if (d.length > 0) {
  295. if ("username" === b) {
  296. var i = z(d);
  297. return e = 1 == i ? "" : i, A(a, e, "error"), !(e.length > 0)
  298. }
  299. if ("password" === b) return !0;
  300. A(a, e)
  301. } else if ("onSubmit" === c) return "username" === b ? e = "emptyUsername" : "password" === b && (e = "emptyPassword"), A(a, e), !1
  302. },
  303. x = function() {
  304. var b = !0;
  305. return p.find("input[data-validation]").each(function() {
  306. var c = a(this);
  307. if ("true" === G(c, "validation")) {
  308. var d = y(c, "onSubmit");
  309. b = !!d && b
  310. }
  311. }), b
  312. },
  313. y = function(a, b) {
  314. return w(a, G(a, "validation-type"), b)
  315. },
  316. z = function(a) {
  317. var b = a.indexOf("@") > -1,
  318. c = a.indexOf("\\") > -1;
  319. return f.test(a) ? b && c ? "bothBackslashandAtSign" : b && !a.match(g) ? "invalidFormat" : (H("Validatie van gebruikersnaam geslaagd: " + a + "."), !0) : "invalidChars"
  320. },
  321. A = function(b, c, d) {
  322. c = c || "", d = d || "";
  323. var e, f, g = b.closest(".form-group"),
  324. h = b.attr("id") + "-error",
  325. i = a("#" + h),
  326. j = o.settings.language.errors,
  327. k = "error" === d ? "danger" : "warning";
  328. if (e = j[c]) {
  329. if (f = e, i.children("div").attr("id") !== f) {
  330. i.slideUp(400), b.addClass("validation-" + k), g.addClass("validation-border-" + k);
  331. var l = "<div id='" + h + "' class='validation-wrapper' style='display:none;'><div id='" + f + "' class='bs-callout-" + k + "'>" + f + "</div></div>";
  332. g.after(l).next().slideDown(400)
  333. }
  334. } else b.removeClass(function(a, b) {
  335. return (b.match(/\bvalidation-\S+/g) || []).join(" ")
  336. }), g.removeClass(function(a, b) {
  337. return (b.match(/\bvalidation-\S+/g) || []).join(" ")
  338. }), i.slideUp(400, function() {
  339. i.remove()
  340. })
  341. },
  342. B = function(b, c) {
  343. var d = c ? o.settings.knownDomains : o.settings.domains,
  344. e = a.grep(d, function(a) {
  345. return a.short === b
  346. });
  347. return (e.length > 0 || (e = a.grep(d, function(a) {
  348. return a.long === b
  349. }), e.length > 0 || (e = a.grep(d, function(a) {
  350. return a.netbios === b
  351. }), e.length > 0))) && e
  352. },
  353. C = function(b, c, d) {
  354. var i, j, e = b.indexOf("@") > -1,
  355. f = b.indexOf("\\") > -1;
  356. if (e && !f) {
  357. H("Format username - UPN format detected...");
  358. var k = b.match(g);
  359. if (H("Format username - matches: " + k), i = k[1], j = B(k[2], d), !j) return H("Format username - Unknown domain, keeping username: " + b), b
  360. }
  361. if (!e && f) {
  362. H("Format username - Netbios format detected...");
  363. var k = b.match(h);
  364. if (i = k[2], j = B(k[1], d), H("Checking domains for " + k[1] + "...result: "), !j) return H("Format username - Unknown domain, keeping username: " + b), o.settings.checkAccountStatus = !1, b
  365. }
  366. switch (e || f || (H("Format username - Username format detected..."), i = b, H("Selected domain is: " + a(o.settings.selectors.domainselect).text().replace(/ /g, "")), j = B(a(o.settings.selectors.domainselect).text().replace(/ /g, ""))), c) {
  367. case "upn":
  368. var l = i + "@" + j[0].long;
  369. H("Format username - Requested format: " + c + ", output: " + l);
  370. break;
  371. case "netbios":
  372. var l = j[0].netbios + "\\" + i;
  373. H("Format username - Requested format: " + c + ", output: " + l);
  374. break;
  375. case "usernameOnly":
  376. var l = i;
  377. H("Format username - Requested format: " + c + ", output: " + l);
  378. break;
  379. default:
  380. H("Format username - Requested format: None selected, output: " + l);
  381. var l = b
  382. }
  383. return l
  384. },
  385. D = function(b, c) {
  386. b.addClass("dropdown-toggle"), b.attr("data-toggle", "dropdown"), b.html(o.settings.domains[0].short + " <div class='caret'></div>");
  387. var d = "<ul class='dropdown-menu'>",
  388. e = 0;
  389. for (e = 0; e < c.length; e++) d += "<li><a class='domainOption' id='" + c[e].short + "' href='javascript:void(0)'>" + c[e].short + "</a></li>", e != c.length && (d += "<li><div class='break'></div></li>");
  390. d += "</ul>", b.after(d), a(".domainOption").on("click", function(a) {
  391. b.html(this.id + " <span class='caret'></span>")
  392. })
  393. },
  394. E = function(b, c, d, e) {
  395. a(d).text(c);
  396. setInterval(function() {
  397. 0 !== c ? c-- : c = 0, a(d).text(c), 0 === c && e()
  398. }, 1e3);
  399. F(b)
  400. },
  401. F = function(b, c) {
  402. c = c || !1, b = c ? '<svg class="spinner" viewbox="0 0 40 40"><circle class="spinnerCircle" cx="20" cy="20" r="18"></circle></svg>' + b : b, a(o.settings.styleSelectors.loader).animate({
  403. opacity: 0
  404. }, 250, function() {
  405. a(o.settings.styleSelectors.loadermsg).html(b)
  406. });
  407. var d = M();
  408. a(o.settings.styleSelectors.wrapper).animate({
  409. "margin-top": d
  410. }, 500), a(o.settings.styleSelectors.content).animate({
  411. opacity: 0,
  412. height: 0
  413. }, 500, function() {
  414. a(this).hide()
  415. }), a(o.settings.styleSelectors.loader).animate({
  416. opacity: 1
  417. }, 250)
  418. },
  419. G = function(a, b, c) {
  420. return c === d ? a.attr("data-" + b) : c === !1 || null === c ? a.removeAttr("data-" + b) : a.attr("data-" + b, c)
  421. },
  422. H = function(a) {
  423. var b;
  424. m.debug !== d && (b = !0), o.settings.debugStepbyStep && (o.settings.debugEnabled || b) && console.log(a)
  425. },
  426. I = function() {
  427. var a, c, d = /\+/g,
  428. e = /([^&=]+)=?([^&]*)/g,
  429. f = function(a) {
  430. return decodeURIComponent(a.replace(d, " "))
  431. },
  432. g = b.location.search.substring(1);
  433. for (a = {}; c = e.exec(g);) a[f(c[1])] = f(c[2]);
  434. return a
  435. },
  436. L = function(a) {
  437. var b = arguments;
  438. return a.replace(/\{(\d+)\}/gi, function(a, c) {
  439. return "undefined" != typeof b[c] ? b[c] : a
  440. })
  441. },
  442. M = function() {
  443. var c = (a(b).height() - (a(o.settings.styleSelectors.wrapper).outerHeight() - a(o.settings.styleSelectors.content).outerHeight() + a(o.settings.styleSelectors.loader).outerHeight())) / 3;
  444. return a(b).width() >= 480 ? a(b).width() <= 768 ? Math.max(10, c / 3) : Math.max(0, c) : 0
  445. },
  446. N = function(b) {
  447. if (!o.settings.cookiesEnabled) return !1;
  448. H("Loading cookie settings...");
  449. var c = a.cookie(b);
  450. if (c !== d) {
  451. H("Cookie found: " + c);
  452. var e = i.exec(c);
  453. H("Cookie data matches: " + e);
  454. var f = a(o.settings.selectors.privatelogon);
  455. if (f.length > 0 && (jQuery().iCheck() ? f.iCheck("check") : f.trigger("click")), e !== d) {
  456. if (e[2].length > 0) {
  457. H("Converting username found in Cookie: " + e[2]);
  458. var g = C(e[2], "usernameOnly", !1);
  459. H("Setting username value to: " + g), a(o.settings.selectors.visibleusername).val(g), setTimeout(function() {
  460. a('[data-index="' + (parseFloat(a(o.settings.selectors.visibleusername).attr("data-index")) + 1).toString() + '"]').trigger("focus")
  461. }, 1150)
  462. }
  463. if (e[1].length > 0) {
  464. var h = a.grep(o.settings.domains, function(a) {
  465. return a.short === e[1]
  466. }),
  467. j = o.settings.domains.length > 1 ? h[0].short + " <span class='caret'></span>" : h[0].short;
  468. a(o.settings.selectors.domainselect).html(j)
  469. }
  470. }
  471. } else H("No Cookie found, skipping...")
  472. },
  473. O = function(b, c) {
  474. if (!o.settings.cookiesEnabled) return !1;
  475. a.removeCookie(b);
  476. var d = "logondata=dmnName=" + a(o.settings.selectors.domainselect).text().replace(/ /g, "") + "&lgnName=" + c;
  477. H("Saving Cookie data: " + d), a.cookie(b, d, {
  478. expires: 14
  479. })
  480. },
  481. P = function(b) {
  482. return !!o.settings.cookiesEnabled && (H("Cookie data cleared."), void a.removeCookie(b))
  483. };
  484. o.init()
  485. }, a.fn.itwLogin = function(b) {
  486. return this.each(function() {
  487. if (d === a(this).data("itwLogin")) {
  488. var c = new a.itwLogin(this, b);
  489. a(this).data("itwLogin", c)
  490. }
  491. })
  492. }
  493. }(jQuery, window, document);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement