CINXE.COM

Fleet

<!doctype html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta property="og:url" content="https://fleet.amberconnect.com/" /> <meta property="og:title" content="Experience Telematics AI" /> <meta property="og:description" content="Amber Connect's Products is an affordable,user-friendly GPS Tracking System,the first in the industry to employ artificial intelligence." /> <meta property="og:image" content="https://fleet.amberconnect.com/assets/images/amberlogo.jpg" /> <meta property="og:image:secure_url" content="https://fleet.amberconnect.com/assets/images/amberlogo.jpg" /> <meta property="og:image:type" content="image/jpeg" /> <meta property="og:image:width" content="343" /> <meta property="og:image:height" content="214" /> <meta property="og:image:alt" content="Experience Telematics AI" /> <title>Fleet</title> <meta name="robots" content="noindex,nofollow" /> <script> var WhiteLabelBrandName = "Amber Connect"; var WhiteLabelBrandNameShrt = "Amber"; var WhiteLabelCompany = 'Amber Connect Ltd'; var WhiteLabelLoading = "assets/images/loading.gif"; var WhiteLabelNoImg = ""; var WhiteLabelSupportEmail = 'support@amberconnect.com'; </script> <link rel="shortcut icon" href="assets/images/favicon.ico"> <script> var WaterMarkUrl = "assets/images/watermark.png"; var WhiteLabelBrandName = "Amber Connect"; var WhiteLabelBrandNameShrt = "Amber"; </script> <meta property="og:image" content="https://fleet.amberconnect.com/assets/images/logo-brand.png"> <link href="assets/css/login-new.css?version=4.24" rel="stylesheet" type="text/css"> <link href="assets/css/animate.css" rel="stylesheet" type="text/css"> <link href="assets/font-awesome/css/font-awesome.css" rel="stylesheet" /> <link href="assets/css/popup.css?version=4.24" rel="stylesheet" type="text/css"> <link href="assets/css/bootstrap.min.css" rel="stylesheet" type="text/css"> <link href="assets/css/bootstrap-reset.css" rel="stylesheet" type="text/css"> <link href="assets/css/bootstrap-select-new.css" rel="stylesheet" type="text/css"> <link href="assets/css/form-component.css?version=4.24" rel="stylesheet" type="text/css"> <link href="assets/css/cookies.css?version=4.24" rel="stylesheet" type="text/css"> <script src='https://www.google.com/recaptcha/api.js'></script> <link href="assets/serviceworker/toastr.css" rel="stylesheet" type="text/css" /> <style> .overlay { background: #e9e9e9; display: none; position: absolute; top: 0; right: 0; bottom: 0; left: 0; opacity: 0.5; z-index: 9999; } .checker { height: 10px; } .input-group { width: 100%; position: relative; } .input-group-append { position: absolute; right: 0; top: 1px; padding: 10px 20px 10px 22px; border-top: 0; border-bottom: 0; border-left: 0; border-right: 0; height: 35px; background: transparent; -webkit-border-radius: 0; -moz-border-radius: 0; border-radius: 0; } span.input-group-append i.fa { right: 14px; position: absolute; font-size: 16px; } .signUpForm .successMsg, .errorMsg, .successMsg { left: 30px; width: 80%; } .footer.notRobotLoaded { bottom: -40px; } .fleetFeature { text-align: left; padding: 0px 0px 0px 10px; margin-top: 30px; width: 90%; border-left: 5px solid #ef6000; margin-left: 25px; border-radius: 20px; } @keyframes glowing { 0% { background-position: 0 0; } 50% { background-position: 400% 0; } 100% { background-position: 0 0; } } .button2 { padding: 1em 1em; background: #f0f2ef; position: relative; z-index: 0; user-select: none; -webkit--user-select: none; } .button2:before { content: "hello"; background: linear-gradient(45deg, #ef6000cc, #ef6000); position: absolute; top: -2px; left: -2px; background-size: 400%; z-index: -1; filter: blur(5px); -webkit-filter: blur(5px); width: calc(100% + 4px); height: calc(100% + 4px); animation: glowing 20s linear infinite; transition: opactiy 0.3s ease-in-out; border-radius: 20px; } .button2:after { z-index: -1; content: ""; position: absolute; width: 100%; height: 100%; background: #fff; left: 0; top: 0; border-radius: 20px; } .sasolcolor .fleetFeature { border-left: 5px solid #003862; } .sasolcolor .button2:before { background: linear-gradient(45deg, #003862cc, #003862); } .Lang_ru .login-left a, .Lang_ru .login-left a:hover, .Lang_ru .login-left a:focus { height: 185px; } .radios label span { text-align: left; } .contentWrapper{ position: inherit; } #ForcePassReset.md-modal{ max-width: 530px; } #ForcePassReset .form-control{ width: 88%; height:40px; } #forcePassBtn { background-color: #ef6000; transition: transform .5s ease; display: inline-block; border-radius: 8px; line-height: 35px; height: 35px; color: #fff; padding: 0px 10px; font-size: 16px; width:150px; } #ForcePassReset .col-md-6{ padding-left: 0; padding-right: 0; margin:20px 0; } #ForcePassReset .loginLnk { float:none; margin:0 auto; } .meter_wrapper, .meter_wrapper1 { border:1px solid #ACACAC; margin-left:0; margin-top:0; width:150px; height:6px; -webkit-border-radius:5px; -moz-border-radius:5px; border-radius:5px; } .meter { width:0px; height:6px; } .meter_wrapper{ position:absolute; margin-top:10px; } .pass_type{ position:absolute; right: -75px; top: -8px; margin-top:0; font-weight:400; color:#EF6000; font-size: 14px; } #ForcePassReset .passwordEye{ position: absolute; right: 9px; top: 39px; color: #6d6d6d; cursor: pointer; background: #f1f1f1; padding: 13px 7px; } #progressContainer { display: flex; align-items: center; width:92%; } #progressBar { flex-grow: 1; height: 10px; background-color: #e0e0e0; border-radius: 5px; overflow: hidden; /* Ensures rounded corners are visible */ margin-right: 10px; box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1); } #progress { height: 100%; transition: width 0.3s ease; border-radius: 5px; } .very-weak { background: linear-gradient(to right, #ff0000, #cc0000); } .weak { background: linear-gradient(to right, #ff6666, #ff3333); } .moderate { background: linear-gradient(to right, #ffcc00, #ff9900); } .strong { background: linear-gradient(to right, #0066ff, #0033cc); } .very-strong { background: linear-gradient(to right, #00cc66, #00994d); } #strengthMessage { min-width: 100px; text-align: right; font-weight: 600; font-size:14px } #ForcePassReset .passwordEye{ right: 50px; padding: 10px 7px; } #ForcePassReset .col-md-12 label{ font-weight: 500; font-size: 16px; } #forcePassBtn:hover{ text-decoration:none; } .frmBtm a.signUpBtn:hover, .frmBtm a.cancelBtn:hover, .frmBtm a.loginBtn:hover, .frmBtm a.loginBtn{ text-decoration:none; } </style> </head> <body class="login-page login-new amber"> <div class="fullscreen background" style="" data-img-width="1699" data-img-height="1067"> <video autoplay muted loop id="fleetVideoBG"> <source src="https://amberimage.s3.us-west-2.amazonaws.com/downloads/AmberConnectFleet.mp4" type="video/mp4"> </video> <div class="content-a"> <div class="content-b"> <div class="row logoHeader"> <div class="col-md-2"> <div class="logoWrapper "><img src="assets/images/amber-logo.svg" alt="" ></div> </div> <div class="col-md-2"> <div class="langWrapper "> <a class="add-btn-new dropdown-toggle" href="javascript:;" data-bs-toggle="dropdown"><img class="langIcon" src="assets/images/language.svg" alt="language" /><span class="langSelText">EN</span><i class="fa fa-sort-down"></i></a> <ul class="dropdown-menu "> <li class="hide"><a href="javascript:;" value="en" class="country-link" onclick="LangChange('en')"><img src="https://fleet.amberconnect.com/assets/images/amberlogo.jpg"> Amber Connect</a></li> <li class="lang en"><a href="javascript:;" value="en" class="country-link" onclick="LangChange('en')"><img src="assets/images/us_flag.jpg"> En</a></li> <li class="lang ru hide"><a href="javascript:;" value="ru" class="country-link" onclick="LangChange('ru')"><img src="assets/images/ru-flag.png"> RU</a></li> <li class="lang sp"><a href="javascript:;" value="sp" class="country-link" onclick="LangChange('es')"><img src="assets/images/mexico_es_flag.jpg"> ES</a></li> <li class="lang cn hide"><a href="javascript:;" value="ch" class="country-link" onclick="LangChange('ch')"><img src="assets/images/China_flag.png"> CH</a></li> <li class="lang fr"><a href="javascript:;" value="fr" class="country-link" onclick="LangChange('fr')"><img src="assets/images/France_flag.png"> FR</a></li> <li class="lang ar "><a href="javascript:;" value="ar" class="country-link" onclick="LangChange('ar')"><img src="assets/images/Arabic_flag.png"> AR</a></li> </ul> </div> </div> </div> <div class="contentWrapper"> <div class="login-outer"> <div class="triangleLogin"> <div class="loginForm loginTypeWrapper"> <div data-translate="lg_LOGINAS" class="login-head">LOGIN AS</div> <div class="clearfix" id="vehicleUserLang"> <div id="login-left-first" class="login-left "> <a href="javascript:;" onClick="userLogin('fleet')"> <img src="assets/images/fleet-user.svg" alt=""> <span data-translate="lg_FleetUser">Fleet User</span> </a> </div> <div class="login-left "> <a href="javascript:;" onClick="userLogin('driver')"> <img src="assets/images/vehicle-User.svg" alt=""> <span data-translate="lg_VehiclesUser">Vehicle User</span> </a> </div> </div> <div class="frmBtm "> <a href="signup" class="signUpBtn " data-translate="lg_Signup">Signup</a> <div class="clear"></div> </div> <div class="fleetFeature button2" id="fleetFeatureDiv" style="display:none;"> <p id="newFeatureTitle" data-translate="" style="margin: 0px;font-weight: 500;color:#ef6000;"></p> <p id="newFeatureDesc" data-translate="" style="margin: 8px 0px 0px 0px;color:#333333c2"></p> </div> </div> <div class="loginFormWrapper"> <div class="signUpForm" style="margin-top: 10%;"> <div class="invalid_errors" style="" data-translate="lg_LoginError">The fleet Id or email or password you entered is incorrect</div> <div class="signup-head" data-translate="lg_FLEETLOGIN">FLEET LOGIN</div> <div class="clear"></div> <div class="errorMsg"> <div class="alert alert-danger alert-dismissible" role="alert"></div> </div> <div class="frmField "> <input class="frmTxtbox" type="number" id="fleetId" name="fleetId" value="" data-translate="lg_FleetId" placeholder="Fleet Id" /> </div> <div class="frmField "> <input class="frmTxtbox" type="text" id="username" name="username" data-translate="lg_UserName_Email" value="" data-translate="lg_UserNameEmail" placeholder="User Name / Email" /> </div> <div class="frmField" style="position:relative;"> <em class="fa icon-eye-open fa-eye passwordEye add-on input-group-addon input-group-append" style="cursor: pointer;" data-translate="lg_ClickToShowHidePass" title="Click here to show/hide password"></em> <input class="frmTxtbox" type="password" autocomplete="new-password" id="password" name="password" value="" data-translate="lg_Password" placeholder="Password" onkeydown="if (event.keyCode == 13) { loginClk() }" /> </div> <div class="frmField"> <div class="" style="float: left;color: #838383;" data-translate="lg_UserType" style="">User Type</div> <div class="radios clearfix" style="display:block;margin:0;clear:both"> <label style="width:50%;float:left;" for="radio-00" class="label_radio"> <input type="radio" checked='checked' value="ADMIN" id="radio-00" name="userType"> <span data-translate="lg_ADMIN" style="float:left;font-weight: 400;">Admin</span> </label> <label style="width:50%;float:left;" for="radio-01" class="label_radio"> <input type="radio" value="GROUP" id="radio-01" name="userType"> <span data-translate="lg_GROUP" style="float:left;font-weight: 400;">Group</span> </label> <label style="width:50%;float:left;" for="radio-02" class="label_radio"> <input type="radio" value="SUBGROUP" id="radio-02" name="userType"> <span data-translate="lg_SUBGROUP" style="float:left;font-weight: 400;">Subgroup</span> </label> <label style="width:50%;float:left;" for="radio-03" class="label_radio"> <input type="radio" value="SHAREDUSER" id="radio-03" name="userType"> <span data-translate="lg_SHAREDUSER" style="float:left;font-weight: 400;">Shared User</span> </label> </div> </div> <div class="frmField labelFld"> <input type="checkbox" name="agree" id="agreeCheck" tabindex="6"> <span><em style="font-style: normal;" data-translate="lg_AcceptTerms_1">By checking this box, you agree to abide by the Amber Connect</em>&nbsp;<a style="color: #ef6000;text-decoration: underline;" href="https://amberconnect.ai/legal.html" rel="noopener noreferrer" target="_blank" data-translate="lg_AcceptTerms_2">Terms and Conditions, Privacy Policy</a> <span data-translate="lg_and">and</span> <a style="color: #ef6000;text-decoration: underline;" href="javascript:;" onclick="openPopup('accessPolicyPopup');" data-translate="lg_AcceptTerms_3"> Access Policy.</a></span> </div> <div class="g-recaptcha hide" data-sitekey="6LfqvdcUAAAAANFf8PpR0ehvZcWHAkomuhIogo1B" data-id="0"></div> <div class="frmBtm"> <a href="javascript:;" onClick="cancelClk()" class="cancelBtn " style="margin-right: 5%;" data-translate="lg_Cancel">Cancel</a> <a href="javascript:;" class="loginBtn" style="color:#fff !important;" onclick="loginClk();" data-translate="lg_Login">Login</a> <div class="clear"></div> </div> <div class="frmBtm"> <div class="row"> <div class="col-md-6"> <div class="checkboxes"> <label for="check" class=""><input id="check" type="checkbox" > <span data-translate="lg_RememberMe" style="font-weight: 400;">Remember Me</span></label> </div> </div> <div class="col-md-6 text-right"> <a href="forgot-password" class="forgotLnk" style="float:right;" data-translate="lg_ForgotPassword?">Forgot Password?</a> </div> </div> <div class="clear"></div> </div> </div> </div> </div> </div> </div> <div class="footer-container" style="position:relative"> <span class="footer" style="">&copy; 2024 Amber Connect Ltd.<span data-translate="lg_Allrightsreserved"> All rights reserved.</span></span> </div> </div> </div> <div id="cookiePolicyPop" class="cookie-overlay d-none"> <input type="hidden" id="cookieEnabled" value=""> <input type="hidden" id="cookieRemMe" value=""> <div class="bg-white p-3 pb-1"> <h4 class="ml-4" data-translate="lg_CookiePolicyLink">Cookies Policy</h4> <div class="row mx-auto mt-1"> <div class="col-md-8 my-auto"> <div class="p-2"><span data-translate="lg_CookiePolicyAllow">By clicking “Allow All”, you agree to the storing of cookies on your device to enhance site navigation, analyze site usage, and assist in our marketing efforts. You can learn more about how we use cookies by visiting our</span>&nbsp;<a href="https://amberconnect.ai/legal.html" rel = "noopener noreferrer" target="_blank"><b data-translate="lg_PrivacyPolicy">Privacy Policy.</b></a></div> </div> <div class="col-md-4 my-auto text-center"> <button class="btn btn-success mr-2" data-bs-toggle="modal" data-bs-target="#exampleModal" data-translate='lg_CookiesSettings' style="width:fit-content">Cookies Settings</button> <button type="button" class="btn btn-orange accept-cookies" onclick="acceptCookies('ALL');" data-translate="lg_AcceptAllCookies" style="width:fit-content">Accept All Cookies</button></div> <!-- Modal --> <div class="modal fade " id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header d-block"> <img src="assets/images/cookies/logo.svg" width="250" alt=" " class="mx-2"> <button type="button" class="close" data-bs-dismiss="modal" aria-label="Close"> <span aria-hidden="true"><img src="assets/images/cookies/close.svg" alt=" " class="mx-2"> </span> </button> <hr> </div> <div class="modal-body" style="overflow: auto;max-height: 75%;"> <h5 class="modal-title d-block mb-1 mt-1" id="exampleModalLabel" data-translate="lg_PolicyPreference">Policy Preferences</h5> <p data-translate="lg_PolicyPreferContent">In common with many other websites, we use small files called cookies to help provide you with the best possible online experience. The purpose of this cookie policy is to inform you about what cookies are, how we use them, and what you can do to control them. This policy relates to this website only. </p> <h5 class="modal-title d-block mb-2 mt-2" id="exampleModalLabel" data-translate="lg_ManageConsentPrefer">Manage Consent Preferences</h5> <div class=" "> <div id="accordion" class="accordion"> <div class="card mb-0"> <div class="accordDiv"> <div id="cookiePolicyNumOne" class="on-off-switch cookiesSwitch" style="opacity: 0.5;pointer-events: none;"> <label> <input id="cookiePolicy1" type="checkbox" name="autoRefresh" class="checkbox" checked="checked" style="display: none;"> <div class="switchCok switchOn"></div> </label> </div> <div class="card-header collapsed" data-bs-toggle="collapse" href="#collapseOne"> <a class="card-title"> <b data-translate="lg_Essential">Essential</b> </a> </div> </div> <div id="collapseOne" class="collapse" data-bs-parent="#accordion" > <div class="card-body"> <span data-translate="lg_Cookie1">These cookies are necessary for the operation of our website, or essential to the provision of the services you have requested. These include cookies that allow you as a subscriber to our services to stay logged in to your account and to access information, sections of our website, or services not generally available to non-subscribers. If you block these cookies you will not be able to access these services (which you may have paid for).</span> <table> <tr> <th data-translate="lg_Domain">Domain</th> <th data-translate="lg_Cookies">Cookies</th> <th data-translate="lg_Usedas">Used as</th> </tr> <tr> <td>fleet.amberconnect.com</td> <td>PHPSESSID, my-application-browser-tab, AmberConsent_Fleet</td> <td>1st Party</td> </tr> </table> </div> </div> <div class="accordDiv"> <div id="cookiePolicyNumTwo" class="on-off-switch cookiesSwitch" > <label> <input id="cookiePolicy2" type="checkbox" name="" class="checkbox" style="display: none;"> <div class="switchCok ""></div> </label> </div> <div class="card-header collapsed" data-bs-toggle="collapse" data-parent="#accordion" href="#collapseTwo"> <a class="card-title"> <b data-translate="lg_Performance">Performance</b> </a> </div> </div> <div id="collapseTwo" class="collapse" data-bs-parent="#accordion" > <div class="card-body"> <span data-translate="lg_Cookie2"> These cookies measure how often you visit our sites and how you use them. They also allow us to calculate the number of visitors to our website, see what those visitors do on our website, how long they spend on the website, and which links they click. These cookies help us to improve how our website works, and enable us to make changes so that users stay longer or return more often. If you block these cookies, we will not be able to improve our services as easily.</span> <table> <tr> <th data-translate="lg_Domain">Domain</th> <th data-translate="lg_Cookies">Cookies</th> <th data-translate="lg_Usedas">Used as</th> </tr> <tr> <td>google.com</td> <td>_ga,_gid</td> <td>3rd Party</td> </tr> </table> </div> </div> <div class="accordDiv"> <div id="cookiePolicyNumThree" class="on-off-switch cookiesSwitch" > <label> <input id="cookiePolicy3" type="checkbox" name="autoRefresh" class="checkbox" style="display: none;"> <div class="switchCok "></div> </label> </div> <div class="card-header collapsed" data-bs-toggle="collapse" data-parent="#accordion" href="#collapseFour"> <a class="card-title"> <b data-translate="lg_Functionality">Functionality</b> </a> </div> </div> <div id="collapseFour" class="collapse" data-bs-parent="#accordion" > <div class="card-body"> <span data-translate="lg_Cookie3">These cookies make sure that you and your preferences are remembered when you return to our site. That means that you can store data that you wish to return to, complete logs as to what you have seen/used on the site, and generally allow us to provide you with a more personalized experience. If you block these cookies you may have reduced functionality, or not be able to store personal preferences.</span> <table> <tr> <th data-translate="lg_Domain">Domain</th> <th data-translate="lg_Cookies">Cookies</th> <th data-translate="lg_Usedas">Used as</th> </tr> <tr> <td>fleet.amberconnect.com</td> <td>p_cook, u_cook, f_cook, ut_cook</td> <td>1st Party</td> </tr> </table> </div> </div> </div> </div> </div> </div> <div class="modal-footer mr-3"> <button type="button" class="btn btn-secondary close-cookies d-none" data-bs-dismiss="modal" data-translate="lg_Close">Close</button> <button type="button" class="btn btn-orange accept-custom" onclick="acceptCookies('CUSTOM');" data-translate="lg_ConfirmMyChoices">Confirm my choices</button> </div> </div> </div> </div> </div> </div> </div> <div class="cookies-btn"> <img src="assets/images/cookies/cookies-icon.svg" alt=""> </div> </div> <div class="md-modal md-effect-1" id="OtpPopup"> <div class="md-content"> <div class="popupHeading" data-translate="lg_MfaHeading">Multi Factor Authentication</div> <div id="TwoFactor"> <div class="successMsg"> <div class="alert alert-success alert-dismissible" role="alert">Success! Enabled MFA.</div> </div> <div class="errorMsg"> <div class="alert alert-danger alert-dismissible" role="alert"></div> </div> </div> <div class="popTxt" style="position: relative;"> <div class="form-group"> <label style="float:left;font-size: 15px;font-weight: normal;" data-translate="lg_EnterOTP">Enter OTP</label> <input type="password" autocomplete="new-password" id="txtCode" class="form-control" /> </div> <div class="otpUserAdmin"> <p class="resetOtpTxt" style="padding:0px;font-size: 13px;"><em style="font-style: normal" data-translate="lg_TroubleLogin">Trouble logging in?</em> <span onclick="resetOtp();" style="color: #de1818;text-decoration: underline;cursor: pointer;" data-translate-ajax="lg_ResetCodeNow">Reset your authentication code now!</span></p> <div class="countDown" style="display: block;margin-bottom: 15px;"> <p class="" style="padding:0px;font-size: 13px;margin:0px;"><em style="font-style: normal" data-translate="lg_TroubleLogin">Please enter the OTP which has been sent to your mail. Valid for : </em><span id="countdownApp"></span></p> </div> </div> <div class="otpUserOthers"> <p style="color:red;padding:0px;font-size: 13px;" data-translate="lg_LoginProblemContact">Note: If you have problem's in authentication kindly contact your admin.</p> </div> <a href="javascript:;" id="validBtn" class="btn btn-primary" onClick="OtpValidate()" data-translate-ajax="lg_ValidateLogin">Validate Login</a> </div> <a href="javascript:;" class="md-close" onClick="closePopup('OtpPopup'); window.location.reload();"><img src="assets/images/close.png" alt=""></a> </div> </div> <div class="md-modal md-effect-1 newStylePop" id="accessPolicyPopup"> <div class="md-content"> <div class="info-img"> <img src="assets/images/policy.png" alt="info" /> </div> <div class="popTxt" style="position: relative;"> <p class="pophead" data-translate-ajax="lg_AccessPolicy">Access Policy</p> <p class="infoPopContent" data-translate="lg_AccessPolicyText">This system is for the use of authorized users only. Individuals using this application without authority, or in excess of their authority, are subjected to having all of their activities within this application monitored and recorded by security personnel and by checking this box you agree that you may be monitored as aforementioned. Misuse of this application may result in severe consequences including account suspension and criminal prosecution.</p> <div class="ok-btn" onClick="closePopup('accessPolicyPopup')"> <span data-translate="lg_OK">OK</span> </div> </div> <a href="javascript:;" class="md-close" onClick="closePopup('accessPolicyPopup')"><img src="assets/images/close.png" alt=""></a> </div> </div> <div class="md-modal md-effect-1 newStylePop" id="sessionExpiredPop"> <div class="md-content"> <div class="info-img"> <img src="assets/images/information.svg" alt="info" /> </div> <div class="popTxt" style="position: relative;"> <p class="pophead" data-translate="lg_YourSessionExpired">Your Session Has Expired</p> <p class="infoPopContent" data-translate="lg_YourSessionExpiredText">To keep your data safe, your session has expired due to inactivity.</p> <div class="ok-btn" onClick="closePopup('sessionExpiredPop')"> <span data-translate="lg_OK">OK</span> </div> </div> <a href="javascript:;" class="md-close" onClick="closePopup('sessionExpiredPop')"><img src="assets/images/close.png" alt=""></a> </div> </div> <div class="md-modal md-effect-1" id="ForcePassReset"> <div class="md-content"> <div class="popupHeading">Force Password Update</div> <div class="popTxt" style="position: relative;padding: 25px 16px;"> <div class="successMsg"> <div class="alert alert-success alert-dismissible" role="alert">Success! Password updated successfully.</div> </div> <div class="errorMsg"> <div class="alert alert-danger alert-dismissible" role="alert"></div> </div> <div class="" style="padding: 0 10px 3px 10px;font-size:16px;" data-translate="lg_Force_AttententionTxt">Attention! Your password is 90 days old and has expired. Please change your password to continue accessing your account.</div> <div class="col-md-12"> <div class="deviceinnerfrm" style="margin: 10px 0px 10px 0px;text-align: left;width: 100%;"> <label for="model" data-translate="lg_OldPassword">Old Password</label> <em class="fa fa-eye passwordEye" aria-hidden="true"></em> <input type="password" autocomplete="old-password" id="txtFroceOldPass" class="form-control retail-pass-strength" value=""> </div> </div> <div class="col-md-12"> <div class="deviceinnerfrm" style="margin: 10px 0px 10px 0px;text-align: left;width: 100%;"> <label for="model" data-translate="lg_NewPassword">New Password</label> <em class="fa fa-eye passwordEye" aria-hidden="true"></em> <input type="password" onkeyup="checkPassword()" autocomplete="new-password" id="txtFrocePass" class="form-control retail-pass-strength" value=""> <div id="progressContainer"> <div id="progressBar" class="hide"> <div id="progress"></div> </div> <div id="strengthMessage" data-translate="strength_message"></div> </div> </div> </div> <div class="col-md-12" style="padding-bottom:10px;"> <div class="deviceinnerfrm" style="margin: 10px 0px 10px 0px;text-align: left;width: 100%;"> <label for="model" data-tranlate="lg_ConfirmPassword">Confirm Password</label> <em class="fa fa-eye passwordEye" aria-hidden="true"></em> <input type="password" autocomplete="new-password" id="txtFroceConPass" class="form-control retail-pass-strength" value=""> </div> </div> <a href="javascript:;" style="margin-top:10px;clear:both;" class="form-btn" id="forcePassBtn" onClick="forceResetUserUpdate()" data-translate="lg_Submit">Submit</a> </div> </div> </div> <div class="md-overlay"></div> <input type="hidden" id="selLang" name="selLang" value=""> <input type="hidden" id="failedLoginCount" name="failedLoginCount" value="0"> <input type="hidden" id="pageLinkAccess" name="pageLinkAccess" value=""> <div class="overlay"> </div> <script> if (typeof module === 'object') { window.module = module; module = undefined; } </script> <script src="assets/js/jquery-3.5.1.min.js"></script> <script src="assets/js/jquery-migrate-3.4.1.min.js"></script> <script src="assets/js/bootstrap.bundle.min.js" type="text/javascript"></script> <script src="assets/js/home.js?version=4.24"></script> <script src="assets/js/form-component.js?version=4.24"></script> <script src="assets/js/jquery.uniform.min-2.2.0.js"></script> <script src="assets/js/jquery.cookie.js"></script> <script src="assets/js/float-label.js"></script> <script src="assets/js/moment.js"></script> <script src="assets/js/cookies.js"></script> <script src="assets/serviceworker/toastr.min.js" type="text/javascript"></script> <script src="assets/js/zxcvbn.js" type="text/javascript"></script> <script src="assets/js/jsencrypt.min.js" type="text/javascript"></script> <script type="text/javascript"> var messages = [{ trans_Title: 'lg_NewFeatTitle1', trans_Desc: 'lg_NewFeatDesc1', title: 'Introducing Our Scoring Module', description: 'A complete interface over a vehicle- and driver-based scoring system to personalise your business analytics and empower risk mitigation.' }, { trans_Title: 'lg_NewFeatTitle2', trans_Desc: 'lg_NewFeatDesc2', title: 'Another New Feature?', description: "We've got a fresh, immersive experience heading your way soon. Can you guess what it is?" }, { trans_Title: 'lg_NewFeatTitle3', trans_Desc: 'lg_NewFeatDesc3', title: 'Amber Vision Tip', description: 'By utilising DMS and ADAS dashcam systems, reduce your fleet accident-related costs by 86%.' }, { trans_Title: 'lg_NewFeatTitle3', trans_Desc: 'lg_NewFeatDesc4', title: 'Amber Vision Tip', description: "By utilising DMS and ADAS dashcam systems, you reduce your accidents by 60%." }, { trans_Title: 'lg_NewFeatTitle5', trans_Desc: 'lg_NewFeatDesc5', title: 'Road Speed Add-On', description: 'Overspeeding accounts for 58.7% of total accidents. Take back control with our road speed add-on.' }, ]; message = messages[Math.floor(Math.random() * messages.length)]; $('#newFeatureTitle').html(message.title); $('#newFeatureTitle').attr('data-translate', message.trans_Title); $('#newFeatureDesc').html(message.description); $('#newFeatureDesc').attr('data-translate', message.trans_Desc); $('#fleetFeatureDiv').show(); $(".passwordEye").click(function () { $(this).toggleClass('fa-eye-slash'); var input = $(this).next('input'); if (input.attr('type') == 'password') { input.attr('type', 'text'); } else { input.attr('type', 'password'); } }); function stylenewFitUI() { var selLang = localStorage.getItem("selLang"); if (selLang == 'ru') { $('#vehicleUserLang').addClass('login-vehicle-left-ru'); $('#login-left-first').addClass('login-left-ru'); $('.signup-head').addClass('signup-head-ru'); } else { $('#vehicleUserLang').removeClass('login-vehicle-left-ru'); $('#login-left-first').removeClass('login-left-ru'); $('.signup-head').removeClass('signup-head-ru'); } } $(window).on('load', function () { //$(window).load(function() { animate(); $('input[type=checkbox]').uniform(); getScreenHeight(); if (!$('#password').hasClass("empty")) { // $('#password').parent().next().addClass('hide'); } var LogPopUp = localStorage.getItem("SessionExpiredPop"); if (LogPopUp == 1) { localStorage.setItem('SessionExpiredPop', 0); openPopup('sessionExpiredPop'); } }); function animate() { $('.logoWrapper').addClass('fadeInLeft animated').show(); $('.langWrapper').addClass('fadeInRight animated').show(); setTimeout(function () { contentAnimate(); }, 1000); } function contentAnimate() { $('.login-wrapper').addClass('fadeInDown animated').show(); setTimeout(function () { footerAnimate(); }, 1000); } function footerAnimate() { $('.footer, .footer-powered').addClass('fadeInUp animated').show(); } function userLogin(loginType) { if (loginType == 'driver') { window.location.href = "https://customer.amberconnect.com/driver-login"; } else { $('.loginTypeWrapper').hide(); $('.loginFormWrapper').show(); } } function cancelClk() { $('.loginFormWrapper').hide(); $('.loginTypeWrapper').show(); $('#fleetId, #username, #password').val("").addClass('empty'); } function OtpValidate() { if ($('#txtCode').val() == '') { $("#TwoFactor .errorMsg .alert").text(errordata[LocalLang][1278]); $("#TwoFactor .errorMsg").fadeIn(1000).delay(3000).fadeOut(1000); return false; } $('#validBtn').html('Validating <i class="fa fa-spinner fa-pulse fa-fw"></i>'); $.ajax({ type: "POST", url: "ajax/OtpValidate" + extension, data: { Code: $('#txtCode').val() }, success: function (data) { var results = data.split("~~"); if ($.trim(results[0]) == 'Y') { $('#pageLinkAccess').val(results[2]); var pageLinkAccess = $('#pageLinkAccess').val(); var pageLink = pageLinkAccess.split('~|~'); if ($.trim(pageLink[0]) != "Allalerts") { redirectPage($.trim(pageLink[0]), $.trim(pageLink[1])); } else { redirectPage('fleet-notifications', 'fleet-notifications'); } $('.loginLnk, .loginBtn').eq(1).removeClass('disabled'); } else { $('#validBtn').html('Validate Login'); $("#TwoFactor .errorMsg .alert").text("Error! " + results[1]); $("#TwoFactor .errorMsg").fadeIn(1000).delay(3000).fadeOut(1000); } } }); } function showPasstxt(passType) { var x = document.getElementById(passType); if (x.type === "password") { x.type = "text"; } else { x.type = "password"; } } function hasUpperCase(str) { return /[A-Z]/.test(str); } function hasLowerCase(str) { return /[a-z]/.test(str); } function hasNumber(str) { return /[0-9]/.test(str); } function hasSpecialCharacter(str) { return /[^A-Za-z0-9]/.test(str); } function checkPassword() { $('#progressBar').removeClass('hide'); const password = document.getElementById('txtFrocePass').value; const strengthMessage = document.getElementById('strengthMessage'); const progressBar = document.getElementById('progress'); const zxcvbnResult = zxcvbn(password); if (password.length === 0) { $('#progressBar').addClass('hide'); strengthMessage.textContent = ''; progressBar.style.width = '0%'; progressBar.className = ''; return; } const hasRequiredLength = password.length >= 8; const customRules = hasUpperCase(password) && hasLowerCase(password) && hasNumber(password) && hasSpecialCharacter(password); let strength = ''; let progressBarWidth = 0; let progressBarClass = ''; if (zxcvbnResult.score >= 4 && customRules) { strength = 'Very Strong'; progressBarWidth = 100; progressBarClass = 'very-strong'; } else if (zxcvbnResult.score >= 3 && customRules) { strength = 'Strong'; progressBarWidth = 80; progressBarClass = 'strong'; } else if (zxcvbnResult.score === 2 || (!customRules && hasRequiredLength)) { strength = 'Moderate'; progressBarWidth = 60; progressBarClass = 'moderate'; } else if (zxcvbnResult.score === 1) { strength = 'Weak'; progressBarWidth = 40; progressBarClass = 'weak'; } else { strength = 'Very Weak'; progressBarWidth = 20; progressBarClass = 'very-weak'; } progressBar.style.width = progressBarWidth + '%'; progressBar.className = progressBarClass; strengthMessage.textContent = strength; strengthMessage.setAttribute('data-translate', strength.toLowerCase().replace(' ', '_')); } function forceResetUserUpdate() { var txtOldPass = $('#txtFroceOldPass').val(); var txtPass = $('#txtFrocePass').val(); var conPass = $('#txtFroceConPass').val(); var d = new Date() var offset = -d.getTimezoneOffset() * 60; var today = moment(); var curDate = today.format('YYYY-MM-DD HH:mm:ss'); $('#forcePassBtn').html('<i class="fa-spinner fa-spin fa-large fa"></i> Please wait...'); var regex3 = "^(?=.{8,})(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=-_]).*$"; var newPassType = $('#strengthMessage').text(); if (newPassType == "Weak" || newPassType == "Very Weak" || newPassType == "Moderate") { $('#txtFrocePass').addClass('error').focus(); $('#ForcePassReset .errorMsg .alert').text("Error! Please enter a strong password that includes at least one special character, one uppercase letter, one lowercase letter, and is at least 8 characters long"); $('#ForcePassReset .errorMsg').fadeIn(1000).delay(2000).fadeOut(1000); $('#forcePassBtn').html('Submit'); return false; } else if ((txtPass == '') || (!txtPass.match(regex3))) { $('#ForcePassReset .errorMsg .alert').text("Error! Please enter a password with one special character, one uppercase letter and lowercase letter with minimum 8 characters"); $('#ForcePassReset .errorMsg').fadeIn(1000).delay(2000).fadeOut(1000); $('#txtFrocePass').addClass('error').focus(); $('#forcePassBtn').html('Submit'); return false; } else if (txtOldPass == '') { $('#txtFroceConPass').addClass('error').focus(); $('#ForcePassReset .errorMsg .alert').text("Error! Please enter old password"); $('#ForcePassReset .errorMsg').fadeIn(1000).delay(2000).fadeOut(1000); $('#forcePassBtn').html('Submit'); return false; } else if ((conPass == '') || (!conPass.match(regex3))) { $('#ForcePassReset .errorMsg .alert').text("Error! Please enter a confirm password with one special character, one uppercase letter and lowercase letter with minimum 8 characters"); $('#ForcePassReset .errorMsg').fadeIn(1000).delay(2000).fadeOut(1000); $('#txtFroceConPass').addClass('error').focus(); $('#forcePassBtn').html('Submit'); return false; } else if (txtPass !== conPass) { $('#txtFroceConPass').addClass('error').focus(); $('#ForcePassReset .errorMsg .alert').text("Error! Your passwords do not match, please check and try again"); $('#ForcePassReset .errorMsg').fadeIn(1000).delay(2000).fadeOut(1000); $('#forcePassBtn').html('Submit'); return false; } else { var encrypt = new JSEncrypt(); encrypt.setPublicKey(`-----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3egP+CZ31qwnePZFpacR rTC7yNyHzMwNM/EFPtzydY/WgjJF+lBaYSuUbClFQSX3owDMRmaC9KzZyUfs4vxz 45cPudNHgKyA21NOGor2YxzoxpF/IrjK/uiQHcX7hClHSzOQboAKSdOrfs4QQ5I+ jSSV54XbuRYyATjVEcGg9ZgQXnfLVPC0DzVR2z+Yqlad8Dy5s274bHl7PweNYdwq /V6QupXH63NBtCgXP/hIIfrHMKDCsEwilZZCbYrmzbhGTZ/3d2tDgIOnUOKxxNqz c+ufj/LeE/tM+AflvHskCspKBtreEv+Vo7COD/ixJAdbnCpksSH17uKKQI2ygS7N wQIDAQAB -----END PUBLIC KEY-----`); var encryptedOldPass = encrypt.encrypt(txtOldPass); var encryptedNewPass = encrypt.encrypt(conPass); $.ajax({ type: "POST", url: "ajax/forceResetUserUpdate" + extension, data: { txtOldPass:encryptedOldPass, newPassword: encryptedNewPass, offset: offset, curDate: curDate }, success: function (data) { $('#forcePassBtn').html('Submit'); var results = data.split('~~'); if ($.trim(results[0]) == 'Y') { $('#ForcePassReset .successMsg').fadeIn(1000).delay(3000).fadeOut(1000); setTimeout(function () { window.location.href = 'login' + extension; }, 5000); } else { $('#ForcePassReset .errorMsg .alert').text("Error! " + results[1]); $('#ForcePassReset .errorMsg').fadeIn(1000).delay(3000).fadeOut(1000); } } }); } } function loginClk() { $('.invalid_errors').hide(); var fleetId = $.trim($('#fleetId').val()); var uName = $.trim($('#username').val()).toLowerCase(); var uPass = $.trim($('#password').val()); var userType = $.trim($('input[name=userType]:checked').val()); var selLang = localStorage.getItem("selLang"); if (typeof grecaptcha != 'undefined') { var captchaResponse = grecaptcha.getResponse(); } else { var captchaResponse = "NoCapcha"; } var failedLoginCount = $.trim($('#failedLoginCount').val()); var PushId = localStorage.getItem("FleetPushId"); var EndPoint = localStorage.getItem("FleetEndPoint"); if (fleetId == '') { $('#fleetId').addClass('invalid_box').focus(); return false; } else if (uName == '') { $('#username').addClass('invalid_box').focus(); return false; } else if (uPass == '') { $('.add-on').addClass('hide'); $('#password').addClass('invalid_box').focus(); return false; } else if ($('#agreeCheck').prop("checked") == false) { $('.errorMsg .alert').text(errordata[LocalLang][1141]); $('.errorMsg').fadeIn(1000).delay(3000).fadeOut(1000); return false; } else if (captchaResponse == '' && $.trim(failedLoginCount) > 4) { $('.errorMsg .alert').text(errordata[LocalLang][1142]); $('.errorMsg').fadeIn(1000).delay(3000).fadeOut(1000); return false; } else { var RemMe = ""; var c = $("#check"); if (c.is(":checked")) { RemMe = "Y"; } else { RemMe = "N"; } $('.invalid_errors').hide(); $('.loginLnk, .loginBtn').html(errordata[LocalLang][1298] + '<i class="fa fa-spinner fa-pulse fa-3x fa-fw"></i>'); var encrypt = new JSEncrypt(); encrypt.setPublicKey(`-----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3egP+CZ31qwnePZFpacR rTC7yNyHzMwNM/EFPtzydY/WgjJF+lBaYSuUbClFQSX3owDMRmaC9KzZyUfs4vxz 45cPudNHgKyA21NOGor2YxzoxpF/IrjK/uiQHcX7hClHSzOQboAKSdOrfs4QQ5I+ jSSV54XbuRYyATjVEcGg9ZgQXnfLVPC0DzVR2z+Yqlad8Dy5s274bHl7PweNYdwq /V6QupXH63NBtCgXP/hIIfrHMKDCsEwilZZCbYrmzbhGTZ/3d2tDgIOnUOKxxNqz c+ufj/LeE/tM+AflvHskCspKBtreEv+Vo7COD/ixJAdbnCpksSH17uKKQI2ygS7N wQIDAQAB -----END PUBLIC KEY-----`); var encryptedUName = encrypt.encrypt(uName); var encryptedUPass = encrypt.encrypt(uPass); $.ajax({ type: "POST", url: "ajax/login", data: { fleetId: fleetId, username: encryptedUName, password: encryptedUPass, userType: userType, loginType: 'Y', captchaResponse: captchaResponse, failedLoginCount: failedLoginCount, PushId: PushId, EndPoint: EndPoint, RemMe: RemMe }, success: function (msg) { var results = msg.split("~~"); console.log(results); $('.footer').removeClass('notRobotLoaded'); if ($.trim(results[0]) == 302) { $('.md-overlay').html(results[1]); } else { if ($.trim(results[0]) == 'Y') { if (results[1] == 'F') { openPopup('ForcePassReset'); } else if (results[1] == 'R') { $(".overlay").show(); if (results[2] == 'ADMIN' && results[3] == '') { $('.otpUserAdmin').show(); $('.otpUserOthers').hide(); } else { $('.otpUserAdmin').hide(); $('.otpUserOthers').show(); } $('.countDown').hide(); $('.resetOtpTxt').show(); openPopup('OtpPopup'); } else { $('#pageLinkAccess').val(results[2]); var pageLinkAccess = $('#pageLinkAccess').val(); var pageLink = pageLinkAccess.split('~|~'); if ($.trim(pageLink[0]) != "Allalerts") { redirectPage($.trim(pageLink[0]), $.trim(pageLink[1])); } else { redirectPage('fleet-notifications', 'fleet-notifications'); } $('.loginLnk, .loginBtn').eq(1).removeClass('disabled'); } } else { $('#failedLoginCount').val(results[2]); if (results[2] > 4 && (typeof grecaptcha != 'undefined')) { $('.g-recaptcha').removeClass('hide'); $('.footer').addClass('notRobotLoaded'); } $('.loginLnk,.loginBtn').eq(0).text(errordata[LocalLang][1785]); $('.errorMsg .alert').text("Error! " + results[1]); $('.errorMsg').fadeIn(1000).delay(3000).fadeOut(1000); $('#username').focus(); $('.loginLnk, .loginBtn').eq(1).removeClass('disabled'); $('.loginLnk, .loginBtn').eq(1).html('Login'); if (typeof grecaptcha != 'undefined') { grecaptcha.reset(); } } } } }); } } $("#fleetId").keypress(function (e) { var selLang = localStorage.getItem("selLang"); if (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57)) { $(".invalid_errors").html(errordata[LocalLang][1228]).fadeIn(1000); return false; } }); $('input, textarea').on('keydown', function () { $(this).removeClass('invalid_box'); $('.invalid_errors').html(''); $('.add-on').removeClass('hide'); }); if (navigator.userAgent.toLowerCase().indexOf("chrome") >= 0) { $(window).load(function () { $('input:-webkit-autofill').each(function () { var text = $(this).val(); var name = $(this).attr('name'); $(this).after(this.outerHTML).remove(); $('input[name=' + name + ']').val(text); }); }); } var isshow = localStorage.getItem('isshow'); if (isshow == null) { localStorage.setItem('isshow', 0); } function getScreenHeight() { var windowHeight = $(window).height() + 115; var windowwidth = $(window).width() + 10; var borderCss = windowHeight + "px solid rgb(255 255 255 / 92%)"; if (windowwidth < 500) { windowHeight = windowHeight + 100; var borderCss = windowHeight + "px solid rgb(255 255 255 / 73%)"; } $('.triangleLogin').css("border-bottom", borderCss); } function getNotifyCount() { } $.cookie("fleetid", "", { expires: 365 }); $.cookie("username", "", { expires: 365 }); $.cookie("password", "", { expires: 365 }); $.cookie("usertype", "", { expires: 365 }); $.removeCookie('fleetid'); $.removeCookie('username'); $.removeCookie('password'); $.removeCookie('usertype'); $.cookie('fleetid', "", { expires: -1, path: '/', domain: '', secure: true }); $.cookie('username', "", { expires: -1, path: '/', domain: '', secure: true }); $.cookie('password', "", { expires: -1, path: '/', domain: '', secure: true }); $.cookie('usertype', "", { expires: -1, path: '/', domain: '', secure: true }); $(".more").toggle(function () { $(this).text("less..").siblings(".complete").show(); $('.footer').css("bottom", "-110px"); }, function () { $(this).text("more..").siblings(".complete").hide(); $('.footer').css("bottom", "-22px"); }); function resetOtp() { $.ajax({ type: "POST", url: "ajax/resetOtpAuth", success: function (data) { var results = data.split("~~"); if ($.trim(results[0]) == 'Y') { $('.resetOtpTxt').hide(); $('.countDown').show(); countdown("countdownApp", 15, 0); } else if ($.trim(results[0]) == 'N' && $.trim(results[2]) == '105') { $("#TwoFactor .errorMsg .alert").text("Error!" + $.trim(results[1])); $('.resetOtpTxt').hide(); $('.countDown').show(); countdown("countdownApp", $.trim(results[3]), 0); } else { $("#TwoFactor .errorMsg .alert").text("Error!" + $.trim(results[1])); $("#TwoFactor .errorMsg").fadeIn(1000).delay(3000).fadeOut(1000); } } }); } //countdownTimer function countdown(elementName, minutes, seconds) { var element, endTime, hours, mins, msLeft, time; function twoDigits(n) { return (n <= 9 ? "0" + n : n); } function updateTimer() { msLeft = endTime - (+new Date); if (msLeft < 1000) { $('.resetOtpTxt').show(); $('.countDown').hide(); element.innerHTML = "Time is up!"; } else { time = new Date(msLeft); hours = time.getUTCHours(); mins = time.getUTCMinutes(); element.innerHTML = (hours ? hours + ':' + twoDigits(mins) : mins) + ':' + twoDigits(time.getUTCSeconds()); setTimeout(updateTimer, time.getUTCMilliseconds() + 500); } } element = document.getElementById(elementName); endTime = (+new Date) + 1000 * (60 * minutes + seconds) + 500; updateTimer(); } $('#check').on('click', function () { var cookieRemMe = $('#cookieRemMe').val(); if (cookieRemMe != 1 && $('#check').is(':checked')) { $('#check').prop('checked', false); $('.cookie-overlay').removeClass('hide').addClass('d-block'); } }); </script> <script src="assets/js/lang/english.js?v=4.24" type="text/javascript"></script> <script src="assets/js/lang/arabic.js?v=4.24" type="text/javascript"></script> <script src="assets/js/lang/chinese.js?v=4.24" type="text/javascript"></script> <script src="assets/js/lang/french.js?v=4.24" type="text/javascript"></script> <script src="assets/js/lang/russian.js?v=4.24" type="text/javascript"></script> <script src="assets/js/lang/spanish.js?v=4.24" type="text/javascript"></script> <script> var set_lang, set_lang_ajax, LocalLang; $(function () { "use strict"; set_lang = function (lang) { var languageData = null; if (lang == 'en') { var languageData = englishData; } else if (lang == 'ru') { var languageData = russionData; } else if (lang == 'fr') { var languageData = frenchData; } else if (lang == 'ch') { var languageData = chineseData; } else if (lang == 'ar') { var languageData = arabicData; } else if (lang == 'es') { var languageData = spanishData; } $('body').removeClass("Lang_en Lang_ru Lang_fr Lang_ch Lang_ar Lang_es"); if (languageData != null) { localStorage.setItem("selLang", lang); localStorage.setItem("PageLang", lang); LocalLang = localStorage.getItem("PageLang"); $('body').addClass('Lang_'+LocalLang); if(WhiteLabelBrandName == 'JimiFleet'){ $('body').addClass('jimifleet'); } translateElements(languageData); translateDateRangePicker(languageData); } }; set_lang_ajax = function (lang) { var languageData; if (lang == 'en') { var languageData = englishData; } else if (lang == 'ru') { var languageData = russionData; } else if (lang == 'fr') { var languageData = frenchData; } else if (lang == 'ch') { var languageData = chineseData; } else if (lang == 'ar') { var languageData = arabicData; } else if (lang == 'es') { var languageData = spanishData; } if (languageData != '') { localStorage.setItem("selLang", lang); localStorage.setItem("PageLang", lang); LocalLang = localStorage.getItem("PageLang"); translateAjaxElements(languageData); translateDateRangePicker(languageData); AjaxSetupReinitiate(); } }; function translateElements(dictionary) { $("[data-translate]").html(function () { var key = $(this).data("translate"); if (dictionary.hasOwnProperty(key)) { var title = $(this).attr("title"); var html = $(this).html(); if ($(this).attr("placeholder") !== undefined) { $(this).attr("placeholder", dictionary[key]); } else if ($(this).attr("title") !== undefined && !$(this).attr("placeholder")) { $(this).attr("title", dictionary[key]); if (title == html) { return dictionary[key]; } } else if ($(this).attr("data-tooltip") !== undefined) { $(this).attr("data-tooltip", dictionary[key]); if (title == html) { return dictionary[key]; } }else { if (WhiteLabelBrandName != 'Amber Connect') { var reBrandTxt = dictionary[key].replace(/Amber Connect Ltd/g, WhiteLabelCompany); reBrandTxt = reBrandTxt.replace(/Amber Connect/g, WhiteLabelBrandName); reBrandTxt = reBrandTxt.replace(/Amber/g, WhiteLabelBrandNameShrt); return reBrandTxt.replace(/support@amberconnect\.com/g, WhiteLabelSupportEmail); } else { return dictionary[key]; } } } }); } function translateAjaxElements(dictionary) { $("[data-translate-ajax]").html(function () { var key = $(this).data("translate-ajax"); if (dictionary.hasOwnProperty(key)) { var title = $(this).attr("title"); var html = $(this).html(); if ($(this).attr("placeholder") !== undefined) { $(this).attr("placeholder", dictionary[key]); } else if ($(this).attr("title") !== undefined && !$(this).attr("placeholder")) { $(this).attr("title", dictionary[key]); if (title == html) { return dictionary[key]; } }else if ($(this).attr("data-tooltip") !== undefined) { $(this).attr("data-tooltip", dictionary[key]); if (title == html) { return dictionary[key]; } } else { if (WhiteLabelBrandName != 'Amber Connect') { var reBrandTxt = dictionary[key].replace(/Amber Connect Ltd/g, WhiteLabelCompany); reBrandTxt = reBrandTxt.replace(/Amber Connect/g, WhiteLabelBrandName); reBrandTxt = reBrandTxt.replace(/Amber/g, WhiteLabelBrandNameShrt); return reBrandTxt.replace(/support@amberconnect\.com/g, WhiteLabelSupportEmail); } else { return dictionary[key]; } } } }); $("[CheckWhiteLabel]").html(function() { var html = $(this).html(); if (WhiteLabelBrandName != 'Amber Connect') { var reBrandTxt = html.replace(/Amber Connect Ltd/g, WhiteLabelCompany); reBrandTxt = reBrandTxt.replace(/Amber Connect/g, WhiteLabelBrandName); reBrandTxt = reBrandTxt.replace(/Amber/g, WhiteLabelBrandNameShrt); return reBrandTxt.replace(/support@amberconnect\.com/g, WhiteLabelSupportEmail); } else { return html; } }); } function translateDateRangePicker(dictionary) { $("[data-range-key]").html(function () { var key = $(this).data("range-key"); key = "lg_" + key.replace(/\s/g, ''); if (dictionary.hasOwnProperty(key)) { return dictionary[key]; } }); } function loadLanguage() { LocalLang = localStorage.getItem("PageLang"); if (LocalLang != null) { LangChange(LocalLang); // LangAjaxChange(LocalLang); } else { LocalLang = localStorage.getItem("selLang"); LangChange(LocalLang); } } function loadAjaxLanguage() { LocalLang = localStorage.getItem("PageLang"); if (LocalLang != null) { LangAjaxChange(LocalLang); } else { LocalLang = localStorage.getItem("selLang"); } } function AjaxSetupReinitiate() { $.ajaxSetup({ data: { choosen_lang: localStorage.getItem("selLang"), } }); } $(document).ajaxComplete(function (event, xhr, settings) { var targeturl = settings.url; const myArray = targeturl.split("?"); var url = myArray[0]; var NoPageUrl = ["ajax/multiLiveTrack", "ajax/sessionCheck", "ajax/notifytimesession", "ajax/getNotifyCount", "ajax/sessionCheckFleet"]; if (NoPageUrl.includes(url) == false) { var chkLocalLang = localStorage.getItem("PageLang"); if (chkLocalLang != null) { console.log('Ajax Lang Call '); loadAjaxLanguage(); } } }); //localStorage.setItem("selLang", 'en'); if(localStorage.getItem("selLang") == null || localStorage.getItem("selLang") == ''){ localStorage.setItem("selLang", 'en'); } loadLanguage(); }); function LangChange(lang) { $('.langSelText').text(lang.toUpperCase()); set_lang(lang); set_lang_ajax(lang); changeLang(lang); $('.lang').removeClass('active'); $('.' + lang).addClass('active'); } function LangAjaxChange(lang) { set_lang_ajax(lang); } function changeLang(lang) { $.ajax({ type: "POST", url: "ajax/changeLang" + extension, data: { lang: lang }, success: function(data) { } }); } (function (i, s, o, g, r, a, m) { i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function () { (i[r].q = i[r].q || []).push(arguments) }, i[r].l = 1 * new Date(); a = s.createElement(o), m = s.getElementsByTagName(o)[0]; a.async = 1; a.src = g; m.parentNode.insertBefore(a, m) })(window, document, 'script', 'https://www.google-analytics.com/analytics.js', 'ga'); ga('create', 'UA-83920713-4', 'auto'); ga('set', 'dimension1', ''); ga('set', 'dimension2', ''); ga('set', 'dimension3', ''); ga('set', 'dimension4', ''); ga('send', 'pageview', { 'dimension1': '', 'dimension2': '', 'dimension3': '', 'dimension4': '' }); ga('send', 'pageview'); </script> <script>if (window.module) module = window.module;</script> <script> getNotifyCount('');</script> <script src="assets/js/error/error.js?v=4.24" type="text/javascript"></script> <script> function MsgBox(Type, Style, MsgCode, Heading) { toastr.remove(); var LocalLang = localStorage.getItem("PageLang"); var Msg = errordata[LocalLang][MsgCode]; var StyleCss; if (Style == 'TopCenter') { StyleCss = "toast-top-center"; } else if (Style == 'TopRight') { StyleCss = "toast-top-right"; } else if (Style == 'TopFull') { StyleCss = "toast-top-full-width"; } else if (Style == 'BottomRight') { StyleCss = "toast-bottom-right"; } else if (Style == 'BottomCenter') { StyleCss = "toast-bottom-center"; } else if (Style == 'BottomFull') { StyleCss = "toast-bottom-full-width"; } toastr.options = { "closeButton": true, "debug": false, "newestOnTop": false, "progressBar": true, "positionClass": StyleCss, "preventDuplicates": false, "showDuration": "0", "hideDuration": "0", "timeOut": "3000", "extendedTimeOut": "0", "showEasing": "swing", "hideEasing": "linear", "showMethod": "fadeIn", "hideMethod": "fadeOut" } if (Type == 'success') { toastr['success'](Msg, Heading); } else if (Type == 'info') { toastr['info'](Msg, Heading); } else if (Type == 'error') { toastr['error'](Msg, Heading); } else if (Type == 'warning') { toastr['warning'](Msg, Heading); } } </script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10