CINXE.COM
Act-On :: Login
<!DOCTYPE html> <html> <head> <title>Act-On :: Login</title> <!-- FAVICONS --> <link rel="shortcut icon" href="/acton/image/favicon.png?v=2" type="image/x-icon"> <link rel="icon" href="/acton/image/favicon.png?v=2" type="image/x-icon"> <!-- SERVER NAME: 6 ON: 6 VERSION: acton##20241115.14.57.55.030475978-62.8.1-release-62.8.1-1 --> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <!-- ========== CSS ========== --> <link rel="stylesheet" type="text/css" href="//cdn-adepci3.actonsoftware.com/acton/ActOn-reset.css?v=2024-11-20-17-59-38-263"> <link rel="stylesheet" type="text/css" href="//cdn-adepci3.actonsoftware.com/acton/ActOn-Icons.css?v=2024-11-20-17-59-38-263"> <link rel="stylesheet" type="text/css" href="//cdn-adepci3.actonsoftware.com/acton/ng-ui/vendor/fontawesome/css/font-awesome.min.css?v=2024-11-20-17-59-38-263" /> <!-- ========== SETTINGS ========== --> <script type="text/javascript"> var ao_settings = { userTZOffsetMillis: -28800000, userTZName: 'PST', accountId: -1, userId: -1 }; var ao_static_domain = 'cdn-adepci3.actonsoftware.com'; var ao_cache_buster = '2024-11-20-17-59-38-263'; var hasReactWrapper = false, newEmailComposerMarketingListTouchpoints = false, REACT_EMAIL_MESSAGE = '/app/classic/if/legacy/emailMessage'; </script> <script src="https://cdnjs.cloudflare.com/ajax/libs/babel-polyfill/7.8.7/polyfill.min.js"></script> <!-- ========== JQUERY ========== --> <script type="text/javascript" src="//cdn-adepci3.actonsoftware.com/acton/jquery/js/jquery-1.12.4.min.js?v=2024-11-20-17-59-38-263"></script> <script type="text/javascript" src="//cdn-adepci3.actonsoftware.com/acton/jquery/js/jquery-migrate-1.4.1.min.js?v=2024-11-20-17-59-38-263"></script> <script type="text/javascript" src="//cdn-adepci3.actonsoftware.com/acton/jquery/js/jquery-ui.min.js?v=2024-11-20-17-59-38-263"></script> <link rel="stylesheet" href="//cdn-adepci3.actonsoftware.com/acton/jquery/css/jquery-ui.min.css?v=2024-11-20-17-59-38-263"> <!-- ========== JQUERY UI ========== --> <!-- ========== Acton UI ========== --> <link rel="stylesheet" href="//cdn-adepci3.actonsoftware.com/acton/js/ActOn/jquery-aomodal.css?v=2024-11-20-17-59-38-263"> <script type="text/javascript" src="//cdn-adepci3.actonsoftware.com/acton/js/ActOn/jquery-aomodal.js?v=2024-11-20-17-59-38-263"></script> <script type="text/javascript" src="//cdn-adepci3.actonsoftware.com/acton/js/ActOn/jquery-aotabs.js?v=2024-11-20-17-59-38-263"></script> <!-- ========== Handlebars for Templates ========== --> <script type="text/javascript" src="//cdn-adepci3.actonsoftware.com/acton/js/handlebars.1.3.0.js?v=2024-11-20-17-59-38-263"></script> <!-- ========== ActOn.JS ========== --> <script type="text/javascript" src="//cdn-adepci3.actonsoftware.com/acton/js/autoresize.jquery.js?v=2024-11-20-17-59-38-263"></script> <script type="text/javascript" src="//cdn-adepci3.actonsoftware.com/acton/js/ActOn/ActOn-notifications.js?v=2024-11-20-17-59-38-263"></script> <script type="text/javascript" src="//cdn-adepci3.actonsoftware.com/acton/js/ActOn/ActOn-regex.js?v=2024-11-20-17-59-38-263"></script> <script type="text/javascript" src="//cdn-adepci3.actonsoftware.com/acton/js/ActOn/ActOn-handlebars.js?v=2024-11-20-17-59-38-263"></script> <script type="text/javascript" src="//cdn-adepci3.actonsoftware.com/acton/js/ActOn/ActOn-utility.js?v=2024-11-20-17-59-38-263"></script> <script type="text/javascript" src="//cdn-adepci3.actonsoftware.com/acton/js/ActOn/ActOn-ui.js?v=2024-11-20-17-59-38-263"></script> <script type="text/javascript" src="//cdn-adepci3.actonsoftware.com/acton/js/ActOn/ActOn-help.js?v=2024-11-20-17-59-38-263"></script> <script type="text/javascript" src="//cdn-adepci3.actonsoftware.com/acton/js/ActOn/ActOn.js?v=2024-11-20-17-59-38-263"></script> <script type="text/javascript" src="//cdn-adepci3.actonsoftware.com/acton/js/ActOn/ActOn-legacy.js?v=2024-11-20-17-59-38-263"></script> <script type="text/javascript" src="//cdn-adepci3.actonsoftware.com/acton/js/ActOn/ActOn-dateRangePicker.js?v=2024-11-20-17-59-38-263"></script> <script type="text/javascript" src="//cdn-adepci3.actonsoftware.com/acton/js/ActOn/ActOn-crm.js?v=2024-11-20-17-59-38-263"></script> <link rel="stylesheet" type="text/css" href="//cdn-adepci3.actonsoftware.com/acton/js/ActOn/ActOn-dateRangePicker.css?v=2024-11-20-17-59-38-263" media="all"> <!-- Tracking code. This is should be available for all verbs*.js --> <!-- ACT-ON TRACKING BEACON (NEW PAGES TRACKING) --> <script> function trackPreactEvent(event_name) {} function trackPreactEventAndCallBack(cb, eventName, url, timeout) { cb(); } function trackPreactEventAndRedirect(url, eventName) { document.location = url; } function trackPreactEventAndLoadIframe(iframe,url, eventName) { iframe.src = url; } function trackingHandler(click_event) {} function bindPreactTracking() {} </script> <!-- gtm tag will be inserted only when UsageTracking -- gtm.container.id is configured in system.conf--> <!-- ========== Table Sorter ========== --> <script type="text/javascript" src="//cdn-adepci3.actonsoftware.com/acton/jquery/js/jquery.tablesorter.min.js?v=2024-11-20-17-59-38-263"></script> <script type="text/javascript" src="//cdn-adepci3.actonsoftware.com/acton/jquery/js/jquery.tablesorter.widgets.js?v=2024-11-20-17-59-38-263"></script> <!-- ========== JSON FOR IE7 ========== --> <!--[if lte IE 7]> <link rel="stylesheet" href="//cdn-adepci3.actonsoftware.com/acton/jquery/actonui/jquery-actonUI-IE.css?v=2024-11-20-17-59-38-263"> <script type="text/javascript" src="//cdn-adepci3.actonsoftware.com/acton/json2.js?v=2024-11-20-17-59-38-263"></script> <![endif]--> <!-- ========== New UI CSS ========== --> <!-- ========== Tiny MCE ========== --> <!-- ========== FUSION CHARTS ========== --> <!-- ========== ActonFilePicker ========== --> <!-- ========== ActonColorPicker ========== --> <!-- ========== HTML5 Support For Older Browsers ========== --> <!--[if lt IE 9]> <script type="text/javascript" src="//cdn-adepci3.actonsoftware.com/acton/js/html5shiv.js?v=2024-11-20-17-59-38-263"></script> <![endif]--> <!-- ========== Browser Compatibility ========== --> <script type="text/javascript" src="//cdn-adepci3.actonsoftware.com/acton/js/compat.js?v=2024-11-20-17-59-38-263" ></script> <!-- ========== SUPPORT FOR STASHING SHARED LIBRARIES IN INDEXTOP ========== --> <!-- INHERIT STUFF FROM INDEXTOP --> <script type="text/javascript"> (function ( global ) { var pendingSafeCalls = []; var pendingRequires = []; var useRequire = false; var requireLoaded = false; function issuePending() { if( typeof requirejs != 'undefined' ) { var config = { baseUrl: '//cdn-adepci3.actonsoftware.com/acton/jsr/2024-11-20-17-59-38-263', waitSeconds: 7 }; if ( typeof jQuery === 'undefined' ) { config.paths = { 'jquery': '//cdn-adepci3.actonsoftware.com/acton/jquery/js/jquery-1.12.4.min'}; config.shim = { 'ao': [ 'jquery-private' ] } define('jquery-private', ['jquery'], function(jq) { jq.noConflict(true); }); } requirejs.config(config); requireLoaded = true; pendingSafeCalls.forEach( function ( pending ) { requirejs( ['ao'], function ( ao ) { ao.safeCall( pending.method, pending.args ); } ); } ); pendingRequires.forEach( function ( args ) { requirejs.apply( global, args ); } ); } else setTimeout( issuePending, 100 ); } function startRequire() { if( !useRequire ) { useRequire = true; var sTag = document.createElement( 'script' ); sTag.type = 'text/javascript'; sTag.src = '//cdn-adepci3.actonsoftware.com/acton/jsr/2024-11-20-17-59-38-263/require.js'; document.getElementsByTagName( 'head' )[0].appendChild( sTag ); setTimeout( issuePending, 100 ); } } global.safeCall = function ( method, args ) { if( useRequire ) { if( requireLoaded ) require( ['ao'], function ( ao ) { ao.safeCall( method, args ); } ); else pendingSafeCalls.push( {method: method, args: args} ); } else { if( parent != self ) { try { parent.safeCall( method, args ); } catch( e ) { if( typeof console != 'undefined' ) console.log( 'Dynamically loading require for safeCall: ' + e ); pendingSafeCalls.push( {method: method, args: args} ); startRequire(); } } else { try { opener.safeCall( method, args ); } catch( e ) { if( typeof console != 'undefined' ) console.log( 'Dynamically loading require for safeCall: ' + e ); pendingSafeCalls.push( {method: method, args: args} ); startRequire(); } } } }; global.hasSafeCall = function () { if( parent == self ) { try { return opener.hasSafeCall(); } catch( e ) { return false; } } try { return parent.hasSafeCall(); } catch( e ) { return false; } }; global.require = function () { var args = Array.prototype.slice.call( arguments ); if( useRequire ) { if( requireLoaded ) requirejs.apply( global, args ); else pendingRequires.push( args ); } else { if( parent != self ) { try { parent.require.apply( parent, args ); } catch( e ) { if( typeof console != 'undefined' ) console.log( 'Dynamically loading require: ' + e ); pendingRequires.push( args ); startRequire(); } } else { try { opener.require.apply( opener, args ); } catch( e ) { if( typeof console != 'undefined' ) console.log( 'Dynamically loading require: ' + e ); pendingRequires.push( args ); startRequire(); } } } }; })( window ); </script> <script type="text/javascript" src="//cdn-adepci3.actonsoftware.com/acton/jsr/2024-11-20-17-59-38-263/sclass.js?ts=2024-11-20-17-59-38-263" ></script> <script type="text/javascript"> window.onerror = function(errorMsg, url, lineNumber) { $.ajax({ 'url':'/acton/ops/jsErrorLog.jsp', 'method':'POST', 'data': { 'msg':errorMsg, 'url':url, 'lin':lineNumber } }); }; </script> <!-- ========== GOOGLE TRANSLATION ========== --> <style type="text/css"> .l6e { } </style> <script type="text/javascript"> var the_towerOfBabel = null; var waitingQueue = []; safeCall( "babel.babel.babel", {window:window, document:document, callbackFn:setTowerOfBabel, server:'https://adepci3.actonsoftware.com/acton'}); function setTowerOfBabel(theBabel) { the_towerOfBabel = theBabel; the_towerOfBabel.setTargetLanguage(getCookie('l6e')); while(waitingQueue.length > 0) { var nextEntry = waitingQueue.pop(); the_towerOfBabel[nextEntry.method](nextEntry.args); } } function doBabelizeNow (response) { if(the_towerOfBabel) { the_towerOfBabel.babelizeNow (response); } } function translateContent(containerId, containerType, callbackFn) { var args = {containerId:containerId, containerType:containerType, callbackFn:callbackFn}; var attributeArgs = {containerId:containerId, containerType:containerType}; if ( the_towerOfBabel ) { the_towerOfBabel.babelize(args); the_towerOfBabel.babelizeAttributes(attributeArgs); } else { waitingQueue.push({method:'babelize', args:args}); waitingQueue.push({method:'babelizeAttributes', args:attributeArgs}); } } function translateWords(words, callbckFn) { var args = {words:words, callbackFn:callbckFn}; if ( the_towerOfBabel ) { the_towerOfBabel.babelizeWords(args); } else { waitingQueue.push({method:'babelizeWords', args:args}); } } function doConfirm(msg, callbackFn) { var args = {confirmMsg:msg, callbackFn:callbackFn}; if ( the_towerOfBabel ) { the_towerOfBabel.doConfirm(args); } else { logListAOLogger ("towerOfBabel is null or undefined : babel doConfirm", "fine"); waitingQueue.push({method:'doConfirm', args:args}); } } function verifyConfirm(confirmMsg, verifyMsg, callbackFn) { var args = {'confirmMsg':confirmMsg,'verifyMsg':verifyMsg, 'callbackFn':callbackFn}; if( the_towerOfBabel ) { the_towerOfBabel.doConfirmVerify( args ); } else { logListAOLogger ("towerOfBabel is null or undefined : babel verifyConfirm", "fine"); waitingQueue.push({method:'doConfirmVerify', args:args}); } } function doPrompt(promptMsg, defaultValue, callbackFn) { var args = {'promptMsg': promptMsg,'defaultValue': defaultValue,'callbackFn': callbackFn}; if ( the_towerOfBabel ) { the_towerOfBabel.doPrompt(args); } else { logListAOLogger ("towerOfBabel is null or undefined : babel doPrompt", "fine"); waitingQueue.push({method:'doPrompt', args:args}); } } function showMsg(msg, callbackFn) { var args = {'content': msg,'callbackFn': callbackFn}; if ( the_towerOfBabel ) { the_towerOfBabel.doAlert(args); } else { logListAOLogger ("towerOfBabel is null or undefined : babel showMsg", "fine"); waitingQueue.push({method:'doAlert', args:args}); } } </script> <link rel="stylesheet" type="text/css" href="//cdn-adepci3.actonsoftware.com/acton/account/css/login.css?v=1732155218725" media="all"> <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"> <script type="text/javascript" src="//cdn-adepci3.actonsoftware.com/acton/form.js?v=1732155218725"></script> <script type="text/javascript"> if (window.parent) { try { window.parent.postMessage({actonOnLogin: true }, '*'); } catch (e) { console.log(e); } } var domainRegisterURL = "https://customer-success-portal-sso.actonsoftware.com/setcookie"; var domainRegisterParameter = "domain"; var usso = ""; var tp = ""; var tpr = ""; // Login Handler onLogin = function (protocol, remoteDomain, remoteKey, account) { if( protocol !== 'https' && protocol !== 'http' ) protocol = 'https'; var url = 'login.actonsoftware.com%2Facton%2Findex.jsp'; if (!remoteDomain || !remoteKey || !account) { if ( usso ) url = 'https://login.actonsoftware.com/acton/internalapi/auth/usso/check?tp='+tp+'&tpr='+tpr; else { url = url.unescape(); var ii = url.indexOf('http://'); if( ii < 0 ) ii = url.indexOf('https://'); // No relative url starting with .. allowed if( ii === 0 ) { ii = url.indexOf('://'); url = protocol + url.substring (ii); } else if( url.indexOf('login.actonsoftware.com') == 0 ) url = protocol + '://' + url; else url = protocol + '://' + 'login.actonsoftware.com' + (url.indexOf('/acton') == 0 ? '' : '/acton') + url; } if (url.includes('?')) { url += '&fromLogin=true' } else { url += '?fromLogin=true' } if (false) { url = ''; } if (false) { url = url.replace("/acton/..", ":8081"); } location.href = url; } else { var remoteUrl = protocol+'://'+remoteDomain+'/acton/account/loginRemote.jsp?url='+url+ '&key='+remoteKey+'&a='+account+'&protocol='+protocol+(usso?'&usso=1&tp='+tp+'&tpr='+tpr:'')+'&onLogin=1&ts='+(new Date().getTime()); try { if( window.parent.onFederatedLogin ) { window.parent.onFederatedLogin(remoteDomain, remoteUrl); return; } } catch(e) { } location.href = remoteUrl; } }; // Check for login from elsewhere </script> <script type="text/javascript"> // Login var theLoginName = ''; function doLogin () { try { var login = $('#login').val(); var pw = $('#pw').val(); if (!login) return false; theLoginName = login; // Hide login button. It will be restored when the AJAX call returns. $('#loginbutton').hide(); loginMessageHelper('Logging in...', "alert-success", "alert-danger"); var now = new Date(); $.ajax({ type: "POST", url: "loginAjax.jsp", cache: false, data: { n: login, p: pw, tt: getBrowserTimeZoneOffset(), ts: now.getTime() }, complete: function(data){ doLoginDone(data); hideSpinner(); } }); } catch (e) { } return false; } var loginStatusText = [ 'Logging in...', 'Too many login attempts.<br>Try again after 10 minutes.', 'Login failed. Please try again.', 'Your account is no longer<br>' + 'active. Please contact your<br>' + 'account manager or call the<br>' + 'Support Hotline at 1 (844) 336 3191.', 'Your trial has expired.<br>' + 'Please contact your sales<br>' + 'person directly or call<br>' + 'the Sales Hotline<br>' + 'at 1 (844) 336 3191.', 'Your account has expired.<br>' + 'Please contact your sales<br>' + 'person directly or call<br>' + 'the Sales Hotline<br>' + 'at 1 (844) 336 3191.','', 'Your account is not ready for use.<br>' + 'Please try again on or after {{futureDate}}.<br>' + 'If you have any questions, please contact your<br>' + 'account manager or call the<br>' + 'Support Hotline at 1 (844) 336 3191.' ]; var loginStatus405AltText = 'Your account has been shut down and will be purged on {{futureDate}}.<br>' + 'Please contact your sales<br>' + 'person directly or call<br>' + 'the Sales Hotline<br>' + 'at 1 (844) 336 3191.'; function doLoginDone (ajaxRequest) { if( ajaxRequest.status == 200 ) { try { var result = JSON.parse( $.trim(ajaxRequest.responseText) ); if (result.status == 'ok') { _setCookie ('lastlogin', theLoginName, new Date (new Date().getTime() + 1000 * 60 * 60 * 24 * 10), '/'); if(domainRegisterURL && domainRegisterParameter) { //If we have the information to register a domain, do this before completing the login. var data = {}; data[domainRegisterParameter] = result.domain || window.location.hostname; $.ajax({ type: "POST", cache: false, url: domainRegisterURL, data: data, xhrFields: { withCredentials: true }, complete: function(data){ finishLogin(result); } }); } else { //If we can't register a domain, just complete the login. finishLogin(result); } } else { var code = result.code ? result.code : 402; var len = code - 400; var errorMessage = null; if (len != 6) { errorMessage = loginStatusText[len]; var daysLeftUntilPurge = result.daysLeftUntilPurge; var futureDate = result.futureDate; if ( code == 405 && daysLeftUntilPurge ) errorMessage = loginStatus405AltText.replace('{{futureDate}}',futureDate); else if ( code == 407 ) errorMessage = errorMessage.replace('{{futureDate}}',futureDate); loginMessageHelper(errorMessage, "alert-danger", "alert-success"); setTimeout ( $('#loginbutton').show.bind($('#loginbutton')), 5000); } else { var protocol = result.protocol; if( !('http' == protocol || 'https' == protocol ) ) protocol = 'https'; _setCookie ('lastlogin', theLoginName, new Date (new Date().getTime() + 1000 * 60 * 60 * 24 * 10), '/'); errorMessage = result.message; // Password doesn't match policy anymore. Redirect them to a page to fix password. var args = "tab=1&error=" + errorMessage; args += "&redirect=..%2Findex.jsp"; args += "&ts=" + (new Date().getTime()); top.location = protocol + "://" + "login.actonsoftware.com/acton/account/passwordUpdate.jsp?" + args; } } } catch(e) { var code = 402; loginMessageHelper(loginStatusText[code - 400], "alert-danger", "alert-success"); setTimeout ( $('#loginbutton').show.bind($('#loginbutton')), 5000); } } else // Failed for unknown reason { var code = ajaxRequest.status - 400; if( code < 0 || code > (loginStatusText.length-1) ) code = 402; loginMessageHelper(loginStatusText[code], "alert-danger", "alert-success"); setTimeout ( $('#loginbutton').show.bind($('#loginbutton')), 5000); } } function finishLogin (result) { loginMessageHelper(loginStatusText[0], "alert-success", "alert-danger"); var protocol = result.protocol; if( !('http' == protocol || 'https' == protocol ) ) protocol = 'https'; try { if (onLogin) onLogin(protocol, result.domain, result.key, result.a); else if (result.domain && result.key && result.a) top.location = protocol + "://" + result.domain + "/acton/account/loginRemote.jsp?key="+result.key + "&a="+result.a + "&protocol="+protocol + "&ts="+(new Date().getTime()); else top.location = protocol + "://" + "login.actonsoftware.com/acton/index.jsp?ts="+(new Date().getTime()); } catch (e) { if (result.domain && result.key && result.a) top.location = protocol + "://" + result.domain + "/acton/account/loginRemote.jsp?key="+result.key + "&a="+result.a + "&protocol="+protocol + "&ts="+(new Date().getTime()); else top.location = protocol + "://" + "login.actonsoftware.com/acton/index.jsp?ts="+(new Date().getTime()); } // try - catch needed in case parent is in some other domain (security exception will be thrown) } function doSendPassword () { var loginEmail = $('#loginlookup').val(); if (loginEmail == "" || loginEmail == "undefined" || !isEmailAddress(loginEmail)){ alert ('Please enter a valid email address'); return false; } else { var ts = new Date().getTime(); setCookie('loginForgot', ts); $.ajax({ type: "POST", cache: false, url: "../account/loginForgotPasswordAjax.jsp", data: { n: loginEmail, ts: ts }, complete: function(data){ showForgotPasswordResult(data); hideSpinner(); } }); return false; } } function doSendNewPassword () { var newPassValue = $('#reset-pw').val(); if (newPassValue == "" || newPassValue == "undefined") $('#reset-message').html("Password may not be empty.").addClass("alert-danger").removeClass("alert-success").show(); else if (!comparePasswords()) $('#reset-message').html("Passwords do not match.").addClass("alert-danger").removeClass("alert-success").show(); else { var ts = new Date().getTime(); setCookie('loginPassReset', ts); $.ajax({ type: "POST", cache: false, url: "../account/loginResetPasswordAjax.jsp", data: { n: newPassValue, ts: ts, t: "", newUser: "null" }, complete: function(data){ showResetPasswordResult(data); hideSpinner(); } }); } return false; } function showResetPasswordResult (ajaxRequest) { deleteCookie('loginPassReset'); var response = JSON.parse(ajaxRequest.responseText); if (response.status !== "error" && true) { loginMessageHelper('Your password has been successfully reset.<br /> Please login with your new password. ', 'alert-success', 'alert-danger'); setTimeout ( hideResetPW, 1000); }else if(response.status !== "error" && false){ loginMessageHelper('Your password has been set!<br /> Please log in below to begin your marketing journey with Act-On.', 'alert-success', 'alert-danger'); setTimeout ( hideResetPW, 1000); }else { alert(response.message ? response.message :'Password requirements don\'t match.'); } } function showForgotPasswordResult (ajaxRequest) { deleteCookie('loginForgot'); if (ajaxRequest.status == 200) loginMessageHelper('If ' + $('#loginlookup').val().escapeHTML() + ' is a valid login,<br /> instructions to reset the password will be emailed. ', 'alert-success', 'alert-danger'); else loginMessageHelper(ajaxRequest.status + (ajaxRequest.statusText ? ': '+ajaxRequest.statusText : ''), 'alert-danger', 'alert-success'); setTimeout ( hideForgotPW, 1000); } function loginMessageHelper(message, addclass, removeclass) { $('#loginmessage').html(message).addClass(addclass).removeClass(removeclass).show(); } function comparePasswords() { var matchElement = $('#reset-pw-confirm') var pw = $('#reset-pw').val(); var pw2 = $('#reset-pw-confirm').val(); if( pw == "" ) matchElement.removeClass('login-reset-nomatch').removeClass('login-reset-match').show(); else { if( pw == pw2 ) { matchElement.addClass('login-reset-match').removeClass('login-reset-nomatch').show(); return true; } else matchElement.addClass('login-reset-nomatch').removeClass('login-reset-match').show(); } return false; } function checkResetPassword() { if (false) { $("#loginForm").fadeOut("slow", function(){ $("#resetPWForm").fadeIn(); }); comparePasswords(); } else if (false) loginMessageHelper("null", "alert-danger", "alert-success"); else if (false) loginMessageHelper("Password reset token successfully invalidated.", "alert-success", "alert-danger"); } var showForgotPW = function(){ $("#loginForm").fadeOut("slow", function(){ $("#forgotPWForm").fadeIn(); }); return false; } var hideForgotPW = function(){ $("#forgotPWForm").fadeOut("slow", function(){ $("#loginForm").fadeIn(); $("#loginlookup").val(""); }); return false; } var hideResetPW = function(){ $("#resetPWForm").fadeOut("slow", function(){ $("#loginForm").fadeIn(); $("#loginlookup").val(""); }); return false; } var loadFrame = function() { document.getElementById("a_mktgFrame").src = 'https://success.act-on.com/acton/fs/blocks/showLandingPage/a/9883/p/p-05ff/t/page/fm/0'; }; // OnLoad $(function() { var isIE = navigator.userAgent.toLowerCase().indexOf("msie") != -1; var lang = isIE ? navigator.browserLanguage : navigator.language; if (!lang) lang = 'en-us'; setCookie ('jslang', lang.toLowerCase()); setCookie ('jstzo', getBrowserTimeZoneOffset()); var lastLogin = getCookie ('lastlogin'); if (lastLogin && !$('#login').val()) $('#login').val( lastLogin ); checkResetPassword(); loadFrame(); //Events $("#loginForgot").on("click", showForgotPW); $("#cancelButton").on("click", hideForgotPW); $("#resetCancelButton").on("click", hideResetPW); }); </script> <style> .cc_banner-wrapper{ position: absolute !important; } .cc_container{ font-size:14px !important;; } .cc_container a{ margin-left:5px !important; } .cc_container .cc_btn, .cc_container .cc_btn:visited { color: #fff!important; background-color: #7E7E7E!important; width:75px !important; } .cc_container .cc_btn:hover{ background-color: #474747!important; } .cc_container.cc_more_info, .cc_more_info a:visited { color: #178acb!important; } .cc_more_info a:hover { color: #333!important; text-decoration:underline !important; } </style> <!-- Begin Cookie Consent plugin by Silktide - http://silktide.com/cookieconsent --> <script type="text/javascript"> window.cookieconsent_options = {"message":"This website uses cookies to ensure you get the best experience on our website.","dismiss":"I agree","learnMore":"More info","link":"https://www.act-on.com/privacy-policy/","theme":"light-top"}; </script> <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/cookieconsent2/1.0.9/cookieconsent.min.js"></script> <!-- End Cookie Consent plugin --> </head> <body> <div class="row" id="main-panel"> <!-- 1/3 panel --> <div id="login-panel" class="col-sm-4 text-center"> <div id="login-fields"> <div id="logo" class="new-logo"><a href="https://www.act-on.com/" title="Act-On Software" rel="home"> <img class="ao-logo img-responsive" width="120" src="//cdn-adepci3.actonsoftware.com/acton/image/logo.svg" alt="Act-On Software"> </a></div> <!-- Status alert messaging goes here. Manipulate as needed. --> <div id="login-message"> <div id="1001" class="alert alert-danger"> <b>You are using an unsupported browser.</b><br /> Portions of the application may not work.<br /> Supported browsers are: the latest versions of Edge, Firefox & Chrome. </div> <div id="loginmessage" class="alert" style="display: none;"></div> </div> <form onsubmit="return doLogin();" id="loginForm"> <input type="text" name="email" placeholder="Login" class="login-input" id="login"> <input type="password" name="password" placeholder="Password" class="login-input" id="pw"> <button id="loginbutton" class="btn-ghost btntext submit-button" type="submit" onclick="">SECURE LOGIN</button> <a href="#" class="login-forgot" id="loginForgot">Forgot Password?</a> <!--div class="remember-login"> <input type="checkbox"> <span>Keep me logged in</span> </div --> </form> <form onsubmit="return doSendPassword();" id="forgotPWForm"> <input type="text" name="email" placeholder="Login" class="login-input" id="loginlookup" > <div id="emailmessage" class="txt-center" style="display: none;"></div> <button id="emailpwbutton" class="btn-ghost btntext submit-button" type="submit">RESET PASSWORD</button> <button id="cancelButton" class="btn-ghost btntext submit-button" type="button">CANCEL</button> </form> <form onsubmit="return doSendNewPassword()" id="resetPWForm"> <div class="alert-container"> <div class="alert alert-success txt-center"> Update Your Act-On Password<br /> <br /> Your new password must be at least characters <br /> </div> </div> <div id="reset-message" class="txt-center" style="display: none;"></div> <input type="password" name="password" placeholder="New Password" class="login-input" onKeyUp="comparePasswords()" id="reset-pw" /> <input type="password" name="password-confirm" placeholder="Confirm Password" class="login-input" onKeyUp="comparePasswords()" id="reset-pw-confirm" /> <button id="resetEmailPWButton" class="btn-ghost btntext submit-button" type="submit">RESET PASSWORD</button> <button id="resetCancelButton" class="btn-ghost btntext submit-button" type="button">CANCEL</button> </form> <!-- footer links --> <div id="footer"> <div class="footer-links text-center" > <a href="http://www.act-on.com/master-services-agreement" target="_blank">Master Service Agreement</a> | <a href="http://www.act-on.com/privacy-policy" target="_blank">Privacy Policy</a> | <a href="http://www.act-on.com/acceptable-use-policy" target="_blank">Use Policy</a> | <a href="http://developer.act-on.com/documentation/comply-act-softwares-terms-service/" target="_blank">Anti-Spam Laws</a> </div> </div> </div> </div> <!-- 2/3 ad panel--> <div id="ad" class="col-sm-8"> <iframe id="a_mktgFrame" src="" height="100%" width="auto" frameborder="0" style="height:100vh;width:100%;" scrolling="no"></iframe> </div> </div> <!-- Latest compiled and minified JavaScript --> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script> <!-- Google tag (gtag.js) --> <script async src="https://www.googletagmanager.com/gtag/js?id=G-FP4DJNBFP3"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-FP4DJNBFP3'); </script> </body> </html>