1<!DOCTYPE html> 2<html> 3<head> 4 5 <meta charset="utf-8"> 6 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 7 <meta name="google-site-verification" content="pOYpx-eOMPaJiCevCZG6arNYQKhiIQjOLmFdreGMIV8" /> 8 <meta name="csrf-token" content="o3wBO2KtJ4i3zIW56jnKp20cQe7xLFOBIJKSix3t"> 9 10 <title>Joyrise Health | Login</title> 11 12 <!-- SEO --> 13 <link rel="canonical" href="https://af.joyrise.com/joyrise/login"> 14 15 <link rel="preload" as="style" href="https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,400;0,600;1,400&display=swap"> 16 <link href="https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,400;0,600;1,400&display=swap" rel="stylesheet"> 17 <link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro" rel="stylesheet" type="text/css"> 18 <link href="https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@700;900&display=swap" rel="stylesheet"> 19 <link href="https://d1639lhkj5l89m.cloudfront.net/css/bootstrap.min.css" rel="stylesheet"> 20 <link rel="stylesheet" href="https://pro.fontawesome.com/releases/v5.15.1/css/all.css" integrity="sha384-9ZfPnbegQSumzaE7mks2IYgHoayLtuto3AS6ieArECeaR8nCfliJVuLh/GaQ1gyM" crossorigin="anonymous"> 21 <link href="https://d1639lhkj5l89m.cloudfront.net/css/animate.css" rel="stylesheet"> 22 <link href="https://d1639lhkj5l89m.cloudfront.net/css/style.css" rel="stylesheet"> 23 <link rel="stylesheet" href="https://d1639lhkj5l89m.cloudfront.net/css/affiliate/login_translate-min.css">
vendor: 93 bytes, lines 23-26
23 24 <script src="https://www.recaptcha.net/recaptcha/api.js" async defer></script> 25 26
26<link rel="stylesheet" href="https://d1639lhkj5l89m.cloudfront.net/affiliate-bootstrap/css/affiliate-style.css"> 27 <link href="https://d1639lhkj5l89m.cloudfront.net/css/affiliate/auth/login.min.css" rel="stylesheet"> 28 <style> 29 .login-wrapper { 30 margin: 0 auto; 31 } 32 33 .input-with-icon { 34 padding-right: 33px; 35 } 36 37 input[type="password"] { 38 font-family: sans-serif; 39 } 40 41 @media only screen and (min-width: 300px) and (max-width: 768px) { 42 .login-wrapper { 43 width: 90% !important; 44 margin-bottom: 15px; 45 margin-top: 15px; 46 } 47 } 48 @media only screen and (min-width: 300px) and (max-width: 490px) { 49 .g-recaptcha { 50 -webkit-transform:scale(0.85); 51 transform:scale(0.85); 52 -webkit-transform-origin:0 0; 53 transform-origin:0 0; 54 } 55 } 56 @media only screen and (min-width: 300px) and (max-width: 499px) { 57 .toggle-password { 58 width: 14px; 59 height: 14px; 60 } 61 } 62 </style> 63 64 <style type="text/css"> 65 #logo img{ 66 max-width: 150px; 67 height: auto; 68 margin: 0 auto 15px; 69 } 70 #login_button_text { 71 background-color: #1d85e8; 72 } 73 #create_account_button_text { 74 background-color: #ffffff; 75 } 76 </style> 77 </head> 78 79<body class="gray-bg" style="background-color: #E9E9E9;"> 80 <div class="gg-translate" id="google_translate_element" 81 style="display: none" > 82 </div> 83 84 <div class="row animated fadeInDown vertical-center " > 85 86 <div class="col-md-4 col-lg-4 col-md-offset-4 col-lg-offset-4 login-wrapper"> 87 <div id="logo" class="text-center"> 88 <a target="_blank" href="https://joyriseshop.myshopify.com"> 89 <img src="https://cdn.uppromote.com/storage/uploads/logo/1752161926_5053088_ce0d0a3e0c7f0549497ea5dafd9f90a9.png" /> 90 </a> 91 </div> 92 93 <div class="ibox-content border-radius-25 ibox-shadow"> 94 <h2 id="main_heading_text"> 95 Affiliate Login 96 </h2> 97 98 99 <form id="login-form" class="m-t" role="form" action="https://af.joyrise.com/joyrise/login_aff?" method="POST"> 100 <input type="hidden" name="_token" value="o3wBO2KtJ4i3zIW56jnKp20cQe7xLFOBIJKSix3t"> 101 <input type="hidden" name="shop_id" value="176485" /> 102 <input type="hidden" name="otp" id="otp-hidden"> 103 <input type="hidden" name="type_check_2fa" id="type-check-2fa"> 104 <div class="form-group"> 105 <input type="text" name="email" class="form-control" placeholder="Email" required=""> 106 </div> 107 <div class="form-group" style="position: relative;"> 108 <input type="password" name="password" class="form-control input-with-icon" placeholder="Password" required="" style="padding-right: 40px;"> 109 <img src="https://d1639lhkj5l89m.cloudfront.net/icons/eye-active.svg" class="toggle-password" style="position: absolute; top: 50%; right: 20px; transform: translateY(-50%); cursor: pointer;" /> 110 </div> 111 <div class="g-recaptcha" data-sitekey="6LcfFqkaAAAAAODkHHT2DLE7UBeSbf7kVCdBkTQE" 112 style="margin-bottom: 20px; display: block;"></div> 113 <button type="submit" class="btn text-white block full-width m-b" id="login_button_text">Login</button> 114 <a href="https://af.joyrise.com/joyrise/password/reset"> 115 <small id="forgot_password_text">Forgot password?</small> 116 </a> 117 118 <p class="text-muted text-center"> 119 <small id="do_not_have_an_account_text">Do you have an account?</small> 120 </p> 121 <a class="btn btn-sm btn-white btn-block" href=" https://af.
121joyrise.com/register " id="create_account_button_text">Create an account</a> 122 </form> 123 124 </div> 125 </div> 126 127 </div> 128 129 130 131 132 <div data-iframe-height="true"></div> 133</body> 134 135 136
136<script type="text/javascript" 137 src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
137 138 <!-- Mainly scripts --> 139
139<script src="https://d1639lhkj5l89m.cloudfront.net/js/jquery-3.1.1.min.js"></script>
139 140
140<script src="https://d1639lhkj5l89m.cloudfront.net/js/bootstrap.min.js"></script>
140 141
141<script src="https://d1639lhkj5l89m.cloudfront.net/js/affiliate/login.min.js"></script>
141 142
142<script src="https://d1639lhkj5l89m.cloudfront.net/js/plugins/iframeResizer/iframeResizer.contentWindow.js" type="text/javascript" data-react-helmet="true"></script>
142 143
143<script> 144 const urlSendOTP2FA = "https://af.joyrise.com/joyrise/otp-login"; 145 let twoFactorLoginResendTimeout = ''; 146 $(function() { 147 window.addEventListener('message', event => { 148 // IMPORTANT: check the origin of the data! 149 if (['https://app.uppromote-test.com', 'https://app.uppromote.com'].includes(event.origin)) { 150 // The data was sent from your site. 151 // Data sent with postMessage is stored in event.data: 152 let {selector, text, background} = event.data; 153 if(selector){ 154 if(text) $(selector).text(text); 155 if(background) $(selector).css('background', background); 156 } 157 } else { 158 // The data was NOT sent from your site! 159 // Be careful! Do not use it. This else branch is 160 // here just for clarity, you usually shouldn't need it. 161 return; 162 } 163 }); 164 }); 165 </script>
165 166
166<script> 167 document.querySelector('.toggle-password').addEventListener('click', function() { 168 const passwordInput = document.querySelector('input[name="password"]'); 169 const img = this; 170 171 if (passwordInput.type === 'password') { 172 passwordInput.type = 'text'; 173 img.src = "https://d1639lhkj5l89m.cloudfront.net/icons/eye-hidden.svg"; 174 } else { 175 passwordInput.type = 'password'; 176 img.src = "https://d1639lhkj5l89m.cloudfront.net/icons/eye-active.svg"; 177 } 178 }); 179 </script>
179 180
180<script type="text/javascript"> 181 function scaParseQueryString(query) { 182 var vars = query.split("&"); 183 var query_string = {}; 184 for (var i = 0; i < vars.length; i++) { 185 var pair = vars[i].split("="); 186 var key = decodeURIComponent(pair[0]); 187 var value = decodeURIComponent(pair[1]); 188 // If first entry with this name 189 if (typeof query_string[key] === "undefined") { 190 query_string[key] = decodeURIComponent(value); 191 // If second entry with this name 192 } else if (typeof query_string[key] === "string") { 193 var arr = [query_string[key], decodeURIComponent(value)]; 194 query_string[key] = arr; 195 // If third or later entry with this name 196 } else { 197 query_string[key].push(decodeURIComponent(value)); 198 } 199 } 200 return query_string; 201 } 202 203 $(document).ready(function () { 204 var query = window.location.search.substring(1); 205 var qs = scaParseQueryString(query); 206 if( typeof qs.email !== 'undefined' ) { 207 $("input[name='email']").val(qs.email); 208 } 209 }) 210 211 //translate 212 function googleTranslateElementInit() { 213 new google.translate.TranslateElement({pageLanguage: 'en'}, 'google_translate_element'); 214 const checkHasEnglishOption = function (languages) { 215 const hasEnglish = languages.find(option => option.value === 'en'); 216 if (!hasEnglish) { 217 const enOption = document.createElement('option'); 218 const selectLanguage = document.querySelector('.goog-te-combo'); 219 enOption.value = 'en'; 220 enOption.textContent = 'English'; 221 selectLanguage.append(enOption); 222 } 223 } 224 const waitForGoogleFillLanguages = setInterval(() => { 225 const languages = [...document.querySelectorAll('.goog-te-combo option')]; 226 if (languages.length > 0) { 227 clearInterval(waitForGoogleFillLanguages); 228 checkHasEnglishOption(languages); 229 } 230 }); 231 setTimeout(() => clearInterval(waitForGoogleFillLanguages), 5e3); 232 } 233 </script>
233 234 235</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.