1<!DOCTYPE html> 2<html lang="es"> 3<!-- Nombre de la norma: Ley 9048 del 10/07/2012--> 4<!-- Reforma de la Sección VIII, Delitos Informáticos y Conexos, del TÃtulo VII del Código Penal --> 5<!-- Ente emisor: Asamblea Legislativa --> 6<!-- Fecha de vigencia desde: 06/11/2012 --> 7<!-- Versión de la norma: 1 de 2 del 10/07/2012 --> 8<!-- http://www.pgrweb.go.cr/scij/Busqueda/Normativa/Normas/nrm_texto_completo.aspx?param1=NRTC&nValor1=1&nValor2=73583&nValor3=90354&strTipM=TC --> 9<!-- Recuerde que la manipulación o daño de la información es un delito, todo lo que haga en este sistema esta auditado. --> 10 11<head> 12 <meta charset="UTF-8"> 13 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 14 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 15 <meta name="description" content="Enrollment system application, Franco Costa Rican high school" /> 16 <meta name="theme-color" content="#317EFB"/> 17 <meta charset="UTF-8"/> 18 <title translate="no" >Sistema LFC</title> 19 <!-- Ion-Icons --> 20 <link href="https://unpkg.com/[email protected]/dist/css/ionicons.min.css" rel="stylesheet"> 21 <link rel="stylesheet" href="https://rsms.me/inter/inter.css"> 22 <link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/flowbite.min.css"> 23
23<script src="https://unpkg.com/[email protected]/dist/flowbite.js"></script>
23 24
24<script src="https://gestiondematricula.franco.ed.cr/node_modules/flowbite/dist/datepicker.js"></script>
24 25
25<script src="//cdn.jsdelivr.net/npm/sweetalert2@11"></script>
25 26
26<script src="https://gestiondematricula.franco.ed.cr/package/dist/sweetalert2.all.min.js"></script>
26 27
27<script src="https://gestiondematricula.franco.ed.cr/package/dist/sweetalert2.min.js"></script>
27 28 <link rel="stylesheet" href="https://gestiondematricula.franco.ed.cr/package/dist/sweetalert2.css"> 29 <link rel="icon" href="https://gestiondematricula.franco.ed.cr/img/LogoLFC.png"> 30 <!-- chartist --> 31
31<script src="//cdn.jsdelivr.net/chartist.js/latest/chartist.min.js"></script>
31 32 <link href="//cdn.jsdelivr.net/chartist.js/latest/chartist.min.css" rel="stylesheet" type="text/css" > 33 34
34<script src="https://gestiondematricula.franco.ed.cr/js/tailwind.js"></script>
34 35
35<script src="https://gestiondematricula.franco.ed.cr/js/jquery.min.js"></script>
35 36 37 <style> 38 html { 39 scroll-behavior: smooth; 40 } 41 </style> 42
42<script> 43 if (localStorage.getItem('color-theme') === 'dark' || (!('color-theme' in localStorage) && window.matchMedia('(prefers-color-scheme: dark)').matches)) { 44 document.documentElement.classList.add('dark'); 45 } else { 46 document.documentElement.classList.remove('dark'); 47 } 48 </script>
48 49</head><!DOCTYPE html> 50<html lang="es"> 51 52<head> 53 <meta charset="UTF-8"> 54 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 55 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 56 <meta name="google-translate-customization" content="9f841e7780177523-3214ceb76f765f38-gc38c6fe6f9d06436-c"> 57 </meta> 58 59 <title translate="no">Login</title> 60 <link rel="stylesheet" href="https://rsms.me/inter/inter.css"> 61 <link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/flowbite.min.css"> 62
62<script src="https://unpkg.com/[email protected]/dist/flowbite.js"></script>
62 63 64
64<script src="//cdn.jsdelivr.net/npm/sweetalert2@11"></script>
64 65
65<script src="https://gestiondematricula.franco.ed.cr/package/dist/sweetalert2.all.min.js"></script>
65 66
66<script src="https://gestiondematricula.franco.ed.cr/package/dist/sweetalert2.min.js"></script>
66 67 <link rel="stylesheet" href="https://gestiondematricula.franco.ed.cr/package/dist/sweetalert2.css"> 68 69
69<script src="https://gestiondematricula.franco.ed.cr/js/tailwind.js"></script>
69 70
70<script src="https://gestiondematricula.franco.ed.cr/js/jquery.min.js"></script>
70 71
71<script src="https://hcaptcha.com/1/api.js" async defer></script>
71 72
72<script> 73 if (localStorage.getItem('color-theme') === 'dark' || (!('color-theme' in localStorage) && window.matchMedia('(prefers-color-scheme: dark)').matches)) { 74 document.documentElement.classList.add('dark'); 75 } else { 76 document.documentElement.classList.remove('dark'); 77 } 78 79 if (window.localStorage) { 80 if (window.localStorage.getItem('language') !== undefined && window.localStorage.getItem('language')) { 81 document.documentElement.lang = localStorage.getItem('language'); 82 } else { 83 localStorage.setItem('language', 'es'); 84 } 85 } 86 </script>
86 87 <style type="text/css"> 88 main { 89 width: 100%; 90 font-size: 1.2em; 91 line-height: 1.168; 92 position: relative; 93 min-height: 100vh; 94 } 95 96 #goog-gt-tt { 97 display: none !important; 98 } 99 100 .goog-te-banner-frame { 101 display: none !important; 102 } 103 104 .goog-te-menu-value:hover { 105 text-decoration: none !important; 106 } 107 108 body { 109 top: 0 !important; 110 } 111 112 #google_translate_element2 { 113 display: none !important; 114 } 115 </style> 116 <link rel="stylesheet" href="https://gestiondematricula.franco.ed.cr/css/css.css"> 117</head> 118 119<body class="w-full dark:bg-gray-900 bg-gray-50 top-0" style="background-image: url('https://gestiondematricula.franco.ed.cr/img/wallpeaper-login.png');"> 120 <div class="preload"></div> 121 <main class="duration-200 delay-200 flex w-full effect_desc"> 122 <div class="mx-auto md:h-screen justify-center items-center px-6 pt-8 pt:mt-0 flex-auto max-w-4xl p-4 m-8"> 123 <a onclick="pages('index');" class="text-2xl mt-5 mb-10 font-semibold flex justify-center items-center mb-4 lg:mb-10"> 124 <img src="https://gestiondematricula.franco.ed.cr/img/Logo1.png" class="mr-3 w-20 h-20 rounded" alt="LFC Logo" /> 125 <span id="spnLFC" class="self-center text-xl font-bold whitespace-nowrap dark:text-gray-300 ml-5">Liceo Franco Costarricense</span> 126 </a> 127 <div class="bg-white shadow mt-10 rounded-lg md:mt-0 w-full sm:max-w-screen-sm xl:p-0 dark:bg-gray-600 dark:border-gray-700"> 128 129 <div class="w-full pb-5 pt-5"> 130 <center> 131 <h2 class="text-l lg:text-3xl max-w-screen-sm font-bold text-gray-900 dark:text-gray-300"> 132 Iniciar sesión en la plataforma 133 </h2> 134 </center> 135 </div> 136 <div class="tb-load "> 137 <table class="shadow relative md:mt-0 xl:p-0 dark:bg-gray-600 w-full dark:border-gray-700"> 138 <th class="w-33 rounded-lg bg-blue-700"></th> 139 <th class="w-33 bg-white"></th> 140 <th class="w-33 rounded-lg bg-red-700"></th> 141 </table> 142 </div> 143 <div class="p-6 sm:p-8 lg:p-16 space-y-8"> 144 <form class="mt-5 space-y-6" action="" method="post"> 145 <div> 146 <label for="usuario" class="text-sm font-medium text-gray-900 block mb-2 dark:text-gray-300">Usuario</label> 147 <input type="text" name="usuario" id="usuario" class="bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500" placeholder="Usuario de sistema (No es el correo electrónico)" required=""> 148 </div> 149 <div class="relative z-0 mb-6 w-full group"> 150 <input type="password" name="password" id="password" placeholder="Ingresa tu contraseña" class="bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500" required=""> 151 <button id="theme-toggle-password" type="button" class="flex absolute inset-y-0 right-0 items-center pr-3"> 152 <svg id="theme-toggle-eye-password" class="hidden w-4 h-4 text-gray-500 dark:text-gray-400 hover:text-gray-900 dark:hover:text-white" fill="currentColor" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"> 153 <path d="M10 12a2 2 0 100-4 2 2 0 000 4z"></path> 154 <path fill-rule="evenodd" d="M.458 10C1.732 5.943 5.522 3 10 3s8.268 2.943 9.542 7c-1.274 4.057-5.064 7-9.542 7S1.732 14.057.458 10zM14 10a4 4 0 11-8 0 4 4 0 018 0z" clip-rule="evenodd"></path> 155 </svg> 156 <svg id="theme-toggle-eye-off-password" class="w-4 h-4 text-gray-500 dark:text-gray-400 hover:text-gray-900 dark:hover:text-white" fill="currentColor" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"> 157 <path fill-rule="evenodd" d="M3.707 2.293a1 1 0 00-1.414 1.414l14 14a1 1 0 001.414-1.414l-1.473-1.473A10.014 10.014 0 0019.542 10C18.268 5.943 14.478 3 10 3a9.958 9.958 0 00-4.512 1.074l-1.78-1.781zm4.261 4.26l1.514 1.515a2.003 2.003 0 012.45 2.45l1.514 1.514a4 4 0 00-5.478-5.478z" clip-rule="evenodd"></path> 158 <path d="M12.454 16.697L9.75 13.992a4 4 0 01-3.742-3.741L2.335 6.578A9.98 9.98 0 00.458 10c1.274 4.057 5.065 7 9.542 7 .847 0 1.669-.105 2.454-.303z"></path> 159 </svg> 160 </button> 161 </div> 162 <div class="flex items-start"> 163 <div class="flex items-center h-5"> 164 <input id="remember" aria-describedby="remember" name="remember" type="checkbox" class="bg-gray-50 border-gray-300 focus:ring-3 focus:ring-cyan-200 h-4 w-4 roun
164ded"> 165 </div> 166 <div class="text-sm ml-3"> 167 <label for="remember" class="font-medium text-gray-900 dark:text-gray-300 mr-5">Recordarme</label> 168 </div> 169 <a id="modal-recuperacion" class="text-sm text-teal-500 hover:underline ml-auto dark:text-gray-300 text-center dark:bg-gray-500 bg-gray-200 rounded-lg" data-modal-toggle="recovery-password-modal">¿Usuario y Contraseña perdida?</a> 170 </div> 171 <div class="flex items-end rounded-t dark:border-gray-600"> 172 <button id="states-button" data-dropdown-toggle="dropdown-states" class="flex-shrink-0 z-10 inline-flex items-center py-2.5 px-4 text-sm font-medium text-center text-gray-500 bg-gray-100 border border-gray-300 rounded-lg hover:bg-gray-200 focus:ring-4 focus:outline-none focus:ring-gray-100 dark:bg-gray-700 dark:hover:bg-gray-600 dark:focus:ring-gray-700 dark:text-white dark:border-gray-600" type="button"> 173 <div id="seltras"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" class="h-3.5 w-3.5 rounded-full mr-2" viewBox="0 0 10 6"> 174 <path d="M0,0h10v6H0z" fill="#001489" /> 175 <path d="M0,1h10v4H0z" fill="#fff" /> 176 <path d="M0,2h10v2H0z" fill="#da291c" /> 177 <deepl-alert xmlns="" /><deepl-alert xmlns="" /><deepl-alert xmlns="" /> 178 </svg> 179 </div> 180 <label id="lblanguage">Español</label> 181 <svg class="w-2.5 h-2.5 ml-2.5" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 10 6"> 182 <path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m1 1 4 4 4-4" /> 183 </svg> 184 </button> 185 <div id="dropdown-states" class="z-10 hidden bg-white divide-y divide-gray-100 rounded-lg shadow w-44 dark:bg-gray-700"> 186 <ul class="py-2 text-sm effect_profile text-gray-700 dark:text-gray-200" aria-labelledby="states-button"> 187 <li> 188 <button type="button" onclick="change_languages('es|es');" class="inline-flex w-full px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white"> 189 <div class="inline-flex items-center"> 190 <svg xmlns="http://www.w3.org/2000/svg" version="1.1" class="h-3.5 w-3.5 rounded-full mr-2" viewBox="0 0 10 6"> 191 <path d="M0,0h10v6H0z" fill="#001489" /> 192 <path d="M0,1h10v4H0z" fill="#fff" /> 193 <path d="M0,2h10v2H0z" fill="#da291c" /> 194 <deepl-alert xmlns="" /><deepl-alert xmlns="" /><deepl-alert xmlns="" /> 195 </svg> 196 Español 197 </div> 198 </button> 199 </li> 200 <li> 201 <button type="button" onclick="change_languages('es|fr');" class="inline-flex w-full px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white"> 202 <div class="inline-flex items-center"> 203 <svg xmlns="http://www.w3.org/2000/svg" class="h-3.5 w-3.5 rounded-full mr-2"> 204 <rect width="15" height="15" fill="#ED2939" /> 205 <rect width="9" height="15" fill="#fff" /> 206 <rect width="5" height="15" fill="#002395" /><deepl-alert xmlns="" /><deepl-alert xmlns="" /><deepl-alert xmlns="" /> 207 </svg> 208 Frances 209 </div> 210 </button> 211 </li> 212 <li> 213 <button type="button" onclick="change_languages('es|en');" class="inline-flex w-full px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white"> 214 <div class="inline-flex items-center"> 215 <svg aria-hidden="true" class="h-3.5 w-3.5 rounded-full mr-2" xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-us" viewBox="0 0 512 512"> 216 <g fill-rule="evenodd"> 217 <g stroke-width="1pt"> 218 <path fill="#bd3d44" d="M0 0h247v10H0zm0 20h247v10H0zm0 20h247v10H0zm0 20h247v10H0zm0 20h247v10H0zm0 20h247v10H0zm0 20h247v10H0z" transform="scale(3.9385)" /> 219 <path fill="#fff" d="M0 10h247v10H0zm0 20h247v10H0zm0 20h247v10H0zm0 20h247v10H0zm0 20h247v10H0zm0 20h247v10H0z" transform="scale(3.9385)" /> 220 </g> 221 <path fill="#192f5d" d="M0 0h98.8v70H0z" transform="scale(3.9385)" /> 222 <path fill="#fff" d="M8.2 3l1 2.8H12L9.7 7.5l.9 2.7-2.4-1.7L6 10.2l.9-2.7-2.4-1.7h3zm16.5 0l.9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8H45l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0l1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0l.9 2.8h2.9l-2.4 1.7 1 2.7L74 8.5l-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8h2.9L92 7.5l1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm-74.1 7l.9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0l1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0l.9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7H65zm16.4 0l1 2.8H86l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm-74 7l.8 2.8h3l-2.4 1.7.9 2.7-2.4-1.7L6 24.2l.9-2.7-2.4-1.7h3zm16.4 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8H45l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0l1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8h2.9L92 21.5l1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm-74.1 7l.9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0l1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7H65zm16.4 0l1 2.8H86l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm-74 7l.8 2.8h3l-2.4 1.7.9 2.7-2.4-1.7L6 38.2l.9-2.7-2.4-1.7h3zm16.4 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8H45l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0l1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8h2.9L92 35.5l1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm-74.1 7l.9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0l1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7H65zm16.4 0l1 2.8H86l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm-74 7l.8 2.8h3l-2.4 1.7.9 2.7-2.4-1.7L6 52.2l.9-2.7-2.4-1.7h3zm16.4 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8H45l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0l1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8h2.9L92 49.5l1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm-74.1 7l.9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0l1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7H65zm16.4 0l1 2.8H86l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm-74 7l.8 2.8h3l-2.4 1.7.9 2.7-2.4-1.7L6 66.2l.9-2.7-2.4-1.7h3zm16.4 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8H45l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0l1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8h2.9L92
22263.5l1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9z" transform="scale(3.9385)" /> 223 </g> 224 </svg> 225 Ingles 226 </div> 227 </button> 228 </li> 229 </ul> 230 </div> 231 232 <div id="google_translate_element2"></div> 233
233<script type="text/javascript"> 234 function googleTranslateElementInit2() { 235 new google.translate.TranslateElement({ 236 pageLanguage: 'auto', 237 includedLanguages: 'es,fr,en', 238 autoDisplay: false 239 }, 'google_translate_element2'); 240 } 241 </script>
241 242
242<script type="text/javascript" src="https://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit2"></script>
242 243
243<script type="text/javascript"> 244 /* <![CDATA[ */ 245 eval(function(p, a, c, k, e, r) { 246 e = function(c) { 247 return (c < a ? '' : e(parseInt(c / a))) + ((c = c % a) > 35 ? String.fromCharCode(c + 29) : c.toString(36)) 248 }; 249 if (!''.replace(/^/, String)) { 250 while (c--) r[e(c)] = k[c] || e(c); 251 k = [function(e) { 252 return r[e] 253 }]; 254 e = function() { 255 return '\\w+' 256 }; 257 c = 1 258 } 259 while (c--) 260 if (k[c]) p = p.replace(new RegExp('\\b' + e(c) + '\\b', 'g'), k[c]); 261 return p 262 }('6 7(a,b){n{4(2.9){3 c=2.9("o");c.p(b,f,f);a.q(c)}g{3 c=2.r();a.s(\'t\'+b,c)}}u(e){}}6 h(a){4(a.8)a=a.8;4(a==\'\')v;3 b=a.w(\'|\')[1];3 c;3 d=2.x(\'y\');z(3 i=0;i<d.5;i++)4(d[i].A==\'B-C-D\')c=d[i];4(2.j(\'k\')==E||2.j(\'k\').l.5==0||c.5==0||c.l.5==0){F(6(){h(a)},G)}g{c.8=b;7(c,\'m\');7(c,\'m\')}}', 43, 43, '||document|var|if|length|function|GTranslateFireEvent|value|createEvent||||||true|else|doGTranslate||getElementById|google_translate_element2|innerHTML|change|try|HTMLEvents|initEvent|dispatchEvent|createEventObject|fireEvent|on|catch|return|split|getElementsByTagName|select|for|className|goog|te|combo|null|setTimeout|500'.split('|'), 0, {})) 263 /* ]]> */ 264 </script>
264 265 <style> 266 .skiptranslate { 267 display: none; 268 } 269 </style> 270 <button type="submit" onclick="login();" class="ml-auto inline-flex text-white bg-gradient-to-r from-cyan-500 to-blue-500 hover:bg-gradient-to-bl focus:ring-4 focus:outline-none focus:ring-cyan-300 dark:focus:ring-cyan-800 font-medium rounded-lg text-sm px-5 py-2.5 text-center">Ingresar a su cuenta</button> 271 </div> 272 </form> 273 <div> 274 <a href="https://www.franco.ed.cr/wp-content/uploads/Matricula-Recuperar-Usuario-y-restablecer-contrase%C3%B1a.pdf" target="_blank" class="inline-flex w-full items-center justify-center p-2 text-base font-medium text-gray-500 rounded-lg bg-gray-50 hover:text-gray-900 hover:bg-gray-100 dark:text-gray-400 dark:bg-gray-800 dark:hover:bg-gray-700 dark:hover:text-white"> 275 <b class="text-2xl animate-pulse">ð¨</b> 276 <span class="w-full font-bold">Procedimiento para recuperar usuario y restablecer contraseña</span> 277 <svg class="w-4 h-4 ms-2 rtl:rotate-180" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 14 10"> 278 <path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M1 5h12m0 0L9 1m4 4L9 9"/> 279 </svg> 280 281 </a> 282 </div> 283 <div class="splash"></div> 284 </div> 285 </div> 286 </div> 287 </main> 288 <footer class="w-full px-5 py-5 bg-white shadow md:py-10 dark:bg-gray-900"> 289 <div class="flex justify-between sm:flex sm:items-center sm:justify-between pb-4"> 290 <div class=""> 291 <button id="theme-toggle" type="button" class="text-gray-500 m-20 transition duration-75 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 "> 292 <svg id="theme-toggle-dark-icon" class="hidden w-5 h-5" fill="currentColor" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"> 293 <path d="M17.293 13.293A8 8 0 016.707 2.707a8.001 8.001 0 1010.586 10.586z"></path> 294 </svg> 295 <svg id="theme-toggle-light-icon" class="hidden w-5 h-5" fill="currentColor" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"> 296 <path d="M10 2a1 1 0 011 1v1a1 1 0 11-2 0V3a1 1 0 011-1zm4 8a4 4 0 11-8 0 4 4 0 018 0zm-.464 4.95l.707.707a1 1 0 001.414-1.414l-.707-.707a1 1 0 00-1.414 1.414zm2.12-10.607a1 1 0 010 1.414l-.706.707a1 1 0 11-1.414-1.414l.707-.707a1 1 0 011.414 0zM17 11a1 1 0 100-2h-1a1 1 0 100 2h1zm-7 4a1 1 0 011 1v1a1 1 0 11-2 0v-1a1 1 0 011-1zM5.05 6.464A1 1 0 106.465 5.05l-.708-.707a1 1 0 00-1.414 1.414l.707.707zm1.414 8.486l-.707.707a1 1 0 01-1.414-1.414l.707-.707a1 1 0 011.414 1.414zM4 11a1 1 0 100-2H3a1 1 0 000 2h1z" fill-rule="evenodd" clip-rule="evenodd"></path> 297 </svg> 298 </button> 299 </div> 300 <ul class="flex flex-wrap text-sm mt-2 text-gray-500 sm:mb-0 dark:text-gray-400"> 301 <li> 302 <a class="mr-4 hover:underline md:mr-6 text-xs" data-modal-toggle="termsModal">Terminos y condiciones</a> 303 </li> 304 <li> 305 <a class="mr-4 hover:underline md:mr-6 text-xs" data-modal-toggle="privacityModal">Politicas de privacidad</a> 306 </li> 307 </ul> 308 </div> 309 <hr class="my-6 border-gray-200 sm:mx-auto dark:border-gray-700 lg:my-8" /> 310 <div class="flex justify-between sm:items-center sm:justify-between pb-4"> 311 <span class="block text-xs text-gray-500 sm:text-center dark:text-gray-400">© 2026 <a href="https://www.franco.ed.cr/" class="hover:underline">LFC</a>. All Rights Reserved. 312 </span>
313 <span class="block text-xs text-gray-500 sm:text-center dark:text-gray-400"> 314 315 </span> 316 </div> 317 </footer> 318 <div id="recovery-password-modal" tabindex="-1" aria-hidden="true" class="hidden effect_profile duration-200 delay-200 overflow-y-auto overflow-x-hidden fixed top-0 right-0 left-0 z-50 w-full md:inset-0 h-modal md:h-full"> 319 <div class="relative p-4 w-full max-w-md h-full md:h-auto"> 320 <!-- Modal content --> 321 <div class="relative bg-white rounded-lg shadow dark:bg-gray-700"> 322 <button type="button" class="absolute top-3 right-2.5 text-gray-400 bg-transparent hover:bg-gray-200 hover:text-gray-900 rounded-lg text-sm p-1.5 ml-auto inline-flex items-center dark:hover:bg-gray-800 dark:hover:text-white" data-modal-toggle="recovery-password-modal"> 323 <svg aria-hidden="true" class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"> 324 <path fill-rule="evenodd" d="M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z" clip-rule="evenodd"></path> 325 </svg> 326 <span class="sr-only">Close modal</span> 327 </button> 328 <div class="py-6 px-6 lg:px-8"> 329 <h3 class="mb-4 text-base font-medium text-gray-900 dark:text-white">Recuperación de usuario y contraseña</h3> 330 <form class="space-y-6" action="#" method="post"> 331 <div class="hidden invisible"> 332 <label for="userRecovery" class="block mb-2 text-sm font-medium text-gray-900 dark:text-gray-300">Usuario de recuperación</label> 333 <input type="text" name="userRecovery" id="userRecovery" class="bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 dark:bg-gray-600 dark:border-gray-500 dark:placeholder-gray-400 dark:text-white" placeholder="Usuario" required> 334 </div> 335 <div> 336 <label for="emailRecovery" class="block mb-2 text-sm font-medium text-gray-900 dark:text-gray-300">Email de usuario</label> 337 <input type="email" name="emailRecovery" id="emailRecovery" class="bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 dark:bg-gray-600 dark:border-gray-500 dark:placeholder-gray-400 dark:text-white" placeholder="[email protected]" required> 338 </div> 339 <div class="mb-4 mx-auto"> 340 <center> 341 <div class="h-captcha" data-sitekey="87ba702b-ffe8-4b24-aaa9-d8be7ec1efa2" data-error-callback="onError"></div> 342 </center> 343 </div> 344 <button id="sendCode" type="button" class="w-full hidden text-white bg-gradient-to-br from-purple-600 to-blue-500 hover:bg-gradient-to-bl focus:ring-4 focus:outline-none focus:ring-blue-300 dark:focus:ring-blue-800 font-medium rounded-lg text-sm px-5 py-2.5 text-center mr-2 mb-2 invisible">Enviar código</button> 345 <button id="sendLink" type="button" class="w-full text-white bg-gradient-to-br from-purple-600 to-blue-500 hover:bg-gradient-to-bl focus:ring-4 focus:outline-none focus:ring-blue-300 dark:focus:ring-blue-800 font-medium rounded-lg text-sm px-5 py-2.5 text-center mr-2 mb-2">Enviar Link</button> 346 </form> 347 <div class="message"></div> 348 <form class="space-y-6" action="#"> 349 <div id="diverify" class="mt-2 hidden"> 350 <div class="relative z-0 mb-6 w-full group"> 351 <input type="password" id="code-verify" name="code-verify" placeholder="" class="block px-2.5 pb-2.5 pt-4 w-full text-sm text-gray-900 bg-transparent roun
351ded-lg border-1 border-gray-300 appearance-none dark:text-white dark:border-gray-600 dark:focus:border-blue-500 focus:outline-none focus:ring-0 focus:border-blue-600 peer" placeholder="" required /> 352 <label id="pass__message" for="code-verify" class="absolute text-sm text-gray-500 dark:text-gray-400 duration-300 transform -translate-y-4 scale-75 top-2 z-10 origin-[0] bg-white dark:bg-gray-700 px-2 peer-focus:px-2 peer-focus:text-blue-600 peer-focus:dark:text-blue-500 peer-placeholder-shown:scale-100 peer-placeholder-shown:-translate-y-1/2 peer-placeholder-shown:top-1/2 peer-focus:top-2 peer-focus:scale-75 peer-focus:-translate-y-4 left-1">Código</label> 353 <button id="theme-toggle" type="button" onclick="mostrarPassword()" class="flex absolute inset-y-0 right-0 items-center pr-3"> 354 <svg id="theme-toggle-eye" class="hidden w-4 h-4 text-gray-500 dark:text-gray-400 hover:text-gray-900 dark:hover:text-white" fill="currentColor" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"> 355 <path d="M10 12a2 2 0 100-4 2 2 0 000 4z"></path> 356 <path fill-rule="evenodd" d="M.458 10C1.732 5.943 5.522 3 10 3s8.268 2.943 9.542 7c-1.274 4.057-5.064 7-9.542 7S1.732 14.057.458 10zM14 10a4 4 0 11-8 0 4 4 0 018 0z" clip-rule="evenodd"></path> 357 </svg> 358 <svg id="theme-toggle-eye-off" class="w-4 h-4 text-gray-500 dark:text-gray-400 hover:text-gray-900 dark:hover:text-white" fill="currentColor" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"> 359 <path fill-rule="evenodd" d="M3.707 2.293a1 1 0 00-1.414 1.414l14 14a1 1 0 001.414-1.414l-1.473-1.473A10.014 10.014 0 0019.542 10C18.268 5.943 14.478 3 10 3a9.958 9.958 0 00-4.512 1.074l-1.78-1.781zm4.261 4.26l1.514 1.515a2.003 2.003 0 012.45 2.45l1.514 1.514a4 4 0 00-5.478-5.478z" clip-rule="evenodd"></path> 360 <path d="M12.454 16.697L9.75 13.992a4 4 0 01-3.742-3.741L2.335 6.578A9.98 9.98 0 00.458 10c1.274 4.057 5.065 7 9.542 7 .847 0 1.669-.105 2.454-.303z"></path> 361 </svg> 362 </button> 363 </div> 364 <button type="button" id="btn-verify" class="w-full text-white bg-gradient-to-br from-green-400 to-blue-600 hover:bg-gradient-to-bl focus:ring-4 focus:outline-none focus:ring-green-200 dark:focus:ring-green-800 font-medium rounded-lg text-sm px-5 py-2.5 text-center mr-2 mb-2 mt-2">Recuperar</button> 365 </div> 366 </form> 367 </div> 368 </div> 369 370 </div> 371 </div> 372 <div id="privacityModal" tabindex="-1" aria-hidden="true" class="hidden effect_profile asc_lang overflow-y-auto overflow-x-hidden fixed top-0 right-0 left-0 z-50 w-full md:inset-0 h-modal md:h-full"> 373 <div class="relative p-4 w-full max-w-2xl h-full md:h-auto"> 374 <!-- Modal content --> 375 <div class="relative bg-white rounded-lg shadow dark:bg-gray-700"> 376 <!-- Modal header --> 377 <div class="flex justify-between items-start p-4 rounded-t border-b dark:border-gray-600"> 378 <h3 class="text-xl font-semibold text-gray-900 dark:text-white"> 379 Politicas de privacidad 380 </h3> 381 <button type="button" class="text-gray-400 bg-transparent hover:bg-gray-200 hover:text-gray-900 rounded-lg text-sm p-1.5 ml-auto inline-flex items-center dark:hover:bg-gray-600 dark:hover:text-white" data-modal-toggle="privacityModal"> 382 <svg aria-hidden="true" class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"> 383 <path fill-rule="evenodd" d="M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z" clip-rule="evenodd"></path> 384 </svg>
385 <span class="sr-only">Close modal</span> 386 </button> 387 </div> 388 <!-- Modal body --> 389 <div class="p-6 space-y-6"> 390 <p class="text-base leading-relaxed text-gray-500 dark:text-gray-400"> 391 La polÃtica de privacidad de una página web es un documento legal en el que el titular de la web debe informar sus clientes y usuarios sobre los datos personales que se recopilan al navegar en el sitio, a través de que medios se recogen estos datos, se almacenan y sobre el tratamiento que se realizará de los mismos. 392 </p> 393 </div> 394 <!-- Modal footer --> 395 <div class="flex items-center p-6 space-x-2 rounded-b border-t border-gray-200 dark:border-gray-600"> 396 <button data-modal-toggle="privacityModal" type="button" class="ml-auto text-white bg-red-600 hover:bg-red-800 focus:ring-4 focus:outline-none focus:ring-red-300 dark:focus:ring-red-800 font-medium rounded-lg text-sm inline-flex items-center px-5 py-2.5 text-center mr-2"> 397 Cerrar 398 </button> 399 </div> 400 </div> 401 </div> 402 </div> 403 <div id="termsModal" tabindex="-1" aria-hidden="true" class="hidden effect_profile asc_lang overflow-y-auto overflow-x-hidden fixed top-0 right-0 left-0 z-50 w-full md:inset-0 h-modal md:h-full"> 404 <div class="relative p-4 w-full max-w-2xl h-full md:h-auto"> 405 <!-- Modal content --> 406 <div class="bg-white rounded-lg shadow dark:bg-gray-700"> 407 <!-- Modal header --> 408 <div class="flex justify-between items-start p-4 rounded-t border-b dark:border-gray-600"> 409 <h3 class="text-xl font-semibold text-gray-900 dark:text-white"> 410 Terminos y condiciones 411 </h3> 412 <button type="button" class="text-gray-400 bg-transparent hover:bg-gray-200 hover:text-gray-900 rounded-lg text-sm p-1.5 ml-auto inline-flex items-center dark:hover:bg-gray-600 dark:hover:text-white" data-modal-toggle="termsModal"> 413 <svg aria-hidden="true" class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"> 414 <path fill-rule="evenodd" d="M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z" clip-rule="evenodd"></path> 415 </svg> 416 <span class="sr-only">Close modal</span> 417 </button> 418 </div> 419 <!-- Modal body --> 420 <div class="p-6 space-y-6"> 421 <p class="text-base leading-relaxed text-gray-500 dark:text-gray-400"> 422 Los Términos y Condiciones representan el documento que ayuda a prevenir y resolver los problemas. Por ello, son fundamentales en muchos casos para defenderse en caso de abuso. Las Condiciones de servicio establecen la forma en que se puede utilizar tu producto, servicio o contenido de forma legalmente vinculante. 423 </p> 424 </div> 425 <!-- Modal footer --> 426 <div class="flex relative p-6 space-x-2 rounded-b border-t border-gray-200 dark:border-gray-600"> 427 <button data-modal-toggle="termsModal" type="button" class="ml-auto text-white bg-red-600 hover:bg-red-800 focus:ring-4 focus:outline-none focus:ring-red-300 dark:focus:ring-red-800 font-medium rounded-lg text-sm inline-flex items-center px-5 py-2.5 text-center mr-2"> 428 Cerrar 429 </button> 430 </div> 431 </div> 432 </div> 433 </div> 434</body>
435<script> 436 let send = document.getElementById('sendCode'); 437 let sendLink = document.getElementById('sendLink'); 438 let verify = document.getElementById('code-verify'); 439 let btnVerify = document.getElementById('btn-verify'); 440 const diverify = document.getElementById('diverify'); 441 let password = document.getElementById('code-verify'); 442 let txtPass = document.getElementById('password'); 443 let formPassword = document.getElementById('theme-toggle-password'); 444 445 document.addEventListener('DOMContentLoaded', (e) => { 446 e.preventDefault(); 447 change_languages('es|' + localStorage.getItem('language')); 448 }) 449 450 btnVerify.addEventListener('click', function(e) { 451 e.preventDefault(); 452 btnVerify.disabled = true; 453 $('.message').html('<div role="status"><center><svg aria-hidden="true" class="mr-2 w-8 h-8 text-gray-200 animate-spin dark:text-gray-600 fill-blue-600" viewBox="0 0 100 101" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z" fill="currentColor"/><path d="M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z" fill="currentFill"/></svg><span class="sr-only">Loading...</span></center></div>'); 454 let url = 'https://gestiondematricula.franco.ed.cr/routes/adminAjax.php'; 455 let formData = new FormData(); 456 457 userRecovery = $('#userRecovery').val(); 458 emailRecovery = $('#emailRecovery').val(); 459 codeVerify = $('#code-verify').val(); 460 formData.append('email-recovery', emailRecovery); 461 formData.append('user-recovery', userRecovery); 462 formData.append('code-verify', codeVerify.trim()); 463 fetch(url, { 464 method: 'POST', 465 body: formData, 466 mode: 'cors' 467 }).then(response => response.json()) 468 .then(data => { 469 setTimeout(() => { 470 if (data.ok == true) { 471 $('.message').html(''); 472 btnVerify.disabled = true; 473 Swal.fire( 474 'Exito!', 475 'Has recuperado tu cuenta, porfavor revisar su email..!', 476 'success' 477 ) 478 } else { 479 $('.message').html(data.ok); 480 btnVerify.disabled = false; 481 } 482 }, 1000); 483 484 }); 485 }) 486 487 send.addEventListener('click', function(e) { 488 489 e.preventDefault(); 490 491 let formData = new FormData(); 492 let userRecovery = document.getElementById('userRecovery'); 493 let emailRecovery = document.getElementById('emailRecovery'); 494 let hCaptcha = document.getElementsByName('h-captcha-response'); 495 496 if (userRecovery.value.trim() === "" || emailRecovery.value.trim() === "" || validateEmail(emailRecovery.value.trim()) === false) { 497 if (userRecovery.value === "") { 498 userRecovery.classList.add('border-red-500'); 499 userRecovery.classList.add('dark:border-red-500'); 500 userRecovery.classList.add('placeholder-red-700'); 501 } 502 if (emailRecovery.value === "" || validateEmail(email.value.trim()) === false) { 503 emailRecovery.classList.add('border-red-500'); 504 emailRecovery.classList.add('dark:border-red-500'); 505 emailRecovery.classList.add('placeholder-red-700'); 506 } 507 return false 508 } else { 509 510 userRecovery.classList.remove('border-red-500'); 511 userRecovery.classList.remove('dark:border-red-500'); 512 userRecovery.classList.remove('placeholder-red-700'); 513 emailRecovery.classList.remove('border-red-500'); 514 emailRecovery.classList.remove('dark:border-red-500'); 515 emailRecovery.classList.remove('placeholder-red-700'); 516 } 517 518 519 $('.message').html('<div role="status"><center><svg aria-hidden="true" class="mr-2 w-8 h-8 text-gray-200 animate-spin dark:text-gray-600 fill-blue-600" viewB
519ox="0 0 100 101" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z" fill="currentColor"/><path d="M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z" fill="currentFill"/></svg><span class="sr-only">Loading...</span></center></div>'); 520 let url = 'https://gestiondematricula.franco.ed.cr/routes/adminAjax.php'; 521 send.disabled = true; 522 523 formData.append('userRecovery', userRecovery.value); 524 formData.append('emailRecovery', emailRecovery.value); 525 formData.append('h-captcha-response', hCaptcha[0].value); 526 527 fetch(url, { 528 method: 'POST', 529 body: formData, 530 mode: 'cors' 531 }).then(response => response.json()) 532 .then(data => { 533 setTimeout(() => { 534 if (data.ok == true) { 535 $('.message').html(''); 536 diverify.classList.remove('hidden'); 537 send.disabled = true; 538 } else { 539 $('.message').html(data.ok); 540 send.disabled = false; 541 } 542 }, 1000); 543 544 }); 545 }) 546 547 sendLink.addEventListener('click', function(e) { 548 549 e.preventDefault(); 550 551 let formData = new FormData(); 552 let emailRecovery = document.getElementById('emailRecovery'); 553 let hCaptcha = document.getElementsByName('h-captcha-response'); 554 555 if (emailRecovery.value.trim() === "" || validateEmail(emailRecovery.value.trim()) === false) { 556 if (emailRecovery.value === "" || validateEmail(email.value.trim()) === false) { 557 emailRecovery.classList.add('border-red-500'); 558 emailRecovery.classList.add('dark:border-red-500'); 559 emailRecovery.classList.add('placeholder-red-700'); 560 } 561 return false 562 } else { 563 emailRecovery.classList.remove('border-red-500'); 564 emailRecovery.classList.remove('dark:border-red-500'); 565 emailRecovery.classList.remove('placeholder-red-700'); 566 } 567 568 569 $('.message').html('<div role="status"><center><svg aria-hidden="true" class="mr-2 w-8 h-8 text-gray-200 animate-spin dark:text-gray-600 fill-blue-600" viewBox="0 0 100 101" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z" fill="currentColor"/><path d="M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z" fill="currentFill"/></svg><span class="sr-only">Loading...</span></center></div>'); 570 let url = 'https://gestiondematricula.franco.ed.cr/routes/adminAjax.php'; 571 sendLink.disabled = true; 572 573 formData.append('emailRecovery', emailRecovery.value); 574 formData.append('h-captcha-response', hCaptcha[0].value); 575 576 fetch(url, { 577 method: 'POST', 578 body: formData, 579 mode: 'cors' 580 }).then(response => response.json()) 581 .then(data => { 582 setTimeout(() => { 583 if (data.ok == true) { 584 $('.message').html(''); 585 Swal.fire( 586 'Exito!', 587 'Se ha enviado un link de recuperación a su correo electrónico, porfavor revisar su email..!', 588 'success' 589 ) 590 } else { 591 $('.message').html(data.ok); 592 sendLink.disabled = false;
593 } 594 }, 1000); 595 596 }); 597 }) 598 599 function login() { 600 601 let usuario = document.getElementById('usuario').value.trim(); 602 let password = document.getElementById('password').value.trim(); 603 $.ajax({ 604 type: 'POST', 605 url: 'https://gestiondematricula.franco.ed.cr/routes/loginAjax.php', 606 data: { 607 'usuario': usuario, 608 'password': password 609 }, 610 beforeSend: function(data) { 611 if (usuario != '' && password != '') { 612 613 $(".tb-load").html('<marquee width="100%" scrolldelay="100" scrollamount="100" direction="left" loop="infinite">' + 614 '<table class="tb-load shadow relative md:mt-0 xl:p-0 dark:bg-gray-600 w-full dark:border-gray-700">' + 615 '<th class="w-33 rounded-lg bg-blue-700"></th>' + 616 '<th class="w-33 bg-white"></th>' + 617 '<th class="w-33 rounded-lg bg-red-700"></th>' + 618 '</table>' + 619 '</marquee>'); 620 $(".splash").html('<div role="status"><center><svg aria-hidden="true" class="mr-2 w-8 h-8 text-gray-200 animate-spin dark:text-gray-600 fill-blue-600" viewBox="0 0 100 101" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z" fill="currentColor"/><path d="M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z" fill="currentFill"/></svg><span class="sr-only">Loading...</span></center></div>'); 621 } 622 }, 623 success: function(data) { 624 setTimeout(() => { 625 $('.tb-load').html('<table class="tb-load shadow relative md:mt-0 xl:p-0 dark:bg-gray-600 w-full dark:border-gray-700">' + 626 '<th class="w-33 rounded-lg bg-blue-700"></th>' + 627 '<th class="w-33 bg-white"></th>' + 628 '<th class="w-33 rounded-lg bg-red-700"></th>' + 629 '</table>'); 630 $('.splash').html(""); 631 }, 2000); 632 } 633 }) 634 } 635 636 function mostrarPassword() { 637 638 let eye = document.getElementById('theme-toggle-eye'); 639 let eye_off = document.getElementById('theme-toggle-eye-off'); 640 if (password.type == "password") { 641 password.type = "text"; 642 eye.classList.remove('hidden'); 643 eye_off.classList.add('hidden'); 644 } else { 645 password.type = "password"; 646 eye.classList.add('hidden'); 647 eye_off.classList.remove('hidden'); 648 } 649 } 650 651 formPassword.addEventListener('click', function(e) { 652 653 let eye = document.getElementById('theme-toggle-eye-password'); 654 let eye_off = document.getElementById('theme-toggle-eye-off-password'); 655 if (txtPass.type == "password") { 656 txtPass.type = "text"; 657 eye.classList.remove('hidden'); 658 eye_off.classList.add('hidden'); 659 } else { 660 txtPass.type = "password"; 661 eye.classList.add('hidden'); 662 eye_off.classList.remove('hidden'); 663 } 664 }) 665 666 function change_languages(languge) { 667 doGTranslate(languge); 668 let arrlang = languge.split('|'); 669 let namelang = document.getElementById('lblanguage'); 670 let flag = document.getElementById('seltras'); 671 let lfc = document.getElementById('spnLFC'); 672 673 if (arrlang[1] == 'es') { 674 flag.innerHTML = `<svg xmlns="http://www.w3.org/2000/svg" version="1.1" class="h-3.5 w-3.5 rounded-full mr-2" viewBox="0 0 10 6"> 675 <path d="M0,0h10v6H0z" fill="#001489"/> 676 <path d="M0,1h10v4H0z" fill="#fff"/> 677 <path d="M0,2h10v2H0z" fill="#da291c"/> 678 <deepl-alert xmlns=""/><deepl-alert xmlns=""/><deepl-alert xmlns=""/> 679 </svg>`; 680 namelang.innerHTML = 'Español'; 681 // setTimeout(() => { document.title ="Sistema LFC"; }, "1000"); 682 lfc.innerHTML = 'Liceo Franco Costarricense'; 683 localStorage.setItem('language', 'es'); 684 document.documentElement.lang = 'es'; 685 686 } else if (arrlang[1] == 'fr') { 687 flag.innerHTML = `<svg xmlns="http://www.w3.org/2000/svg" class="h-3.5 w-3.5 rounded-full mr-2"> 688 <rect width="15" height="15" fill="#ED2939" /> 689 <rect width="9" height="15" fill="#fff" /> 690 <rect width="5" height="15" fill="#002395" /><deepl-alert xmlns="" /><deepl-alert xmlns="" /><deepl-alert xmlns="" /> 691 </svg>`; 692 namelang.innerHTML = 'Frances'; 693 // setTimeout(() => { document.title ="Système LFC"; }, "1000"); 694 lfc.innerHTML = 'Lycée Franco-Costaricien'; 695 localStorage.setItem('language', 'fr'); 696 document.documentElement.lang = 'fr'; 697 698 } else if (arrlang[1] == 'en') { 699 flag.innerHTML = `<svg aria-hidden="true" class="h-3.5 w-3.5 rounded-full mr-2" xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-us" viewBox="0 0 512 512"> 700 <g fill-rule="evenodd"> 701 <g stroke-width="1pt"> 702 <path fill="#bd3d44" d="M0 0h247v10H0zm0 20h247v10H0zm0 20h247v10H0zm0 20h247v10H0zm0 20h247v10H0zm0 20h247v10H0zm0 20h247v10H0z" transform="scale(3.9385)" /> 703 <path fill="#fff" d="M0 10h247v10H0zm0 20h247v10H0zm0 20h247v10H0zm0 20h247v10H0zm0 20h247v10H0zm0 20h247v10H0z" transform="scale(3.9385)" /> 704 </g> 705 <path fill="#192f5d" d="M0 0h98.8v70H0z" transform="scale(3.9385)" /> 706 <path fill="#fff" d="M8.2 3l1 2.8H12L9.7 7.5l.9 2.7-2.4-1.7L6 10.2l.9-2.7-2.4-1.7h3zm16.5 0l.9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8H45l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0l1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0l.9 2.8h2.9l-2.4 1.7 1 2.7L74 8.5l-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8h2.9L92 7.5l1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm-74.1 7l.9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0l1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0l.9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7H65zm16.4 0l1 2.8H86l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm-74 7l.8 2.8h3l-2.4 1.7.9 2.7-2.4-1.7L6 24.2l.9-2.7-2.4-1.7h3zm16.4 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8H45l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0l1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8h2.9L92 21.5l1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm-74.1 7l.9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0l1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7H65zm16.4 0l1 2.8H86l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm-74 7l.8 2.8h3l-2.4 1.7.9 2.7-2.4-1.7L6 38.2l.9-2.7-2.4-1.7h3zm16.4 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8H45l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0l1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8h2.9L92 35.5l1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm-74.1 7l.9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0l1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7H65zm16.4 0l1 2.8H86l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm-74 7l.8 2.8h3l-2.4 1.7.9 2.7-2.4-1.7L6 52.2l.9-2.7-2.4-1.7h3zm16.4 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8H45l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0l1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8h2.9L92 49.5l1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm-74.1 7l.9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0l1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7H65zm16.4 0l1 2.8H86l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm-74 7l.8 2.8h3l-2.4 1.7.9 2.7-2.4-1.7L6 66.2l.9-2.7-2.4-1.7h3zm16.4 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8H45l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0l1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8h2.9L92
70663.5l1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9z" transform="scale(3.9385)" /> 707 </g> 708 </svg>`; 709 namelang.innerHTML = 'Ingles'; 710 // setTimeout(() => { document.title ="System LFC"; }, "1000"); 711 712 lfc.innerHTML = 'Franco Costa Rican High School'; 713 localStorage.setItem('language', 'en'); 714 document.documentElement.lang = 'en'; 715 } 716 717 return false; 718 } 719</script>
719 720 721</html>
722<script> 723 var themeToggleDarkIcon = document.getElementById('theme-toggle-dark-icon'); 724 var themeToggleLightIcon = document.getElementById('theme-toggle-light-icon'); 725 726 // Change the icons inside the button based on previous settings 727 if (localStorage.getItem('color-theme') === 'dark' || (!('color-theme' in localStorage) && window.matchMedia('(prefers-color-scheme: dark)').matches)) { 728 themeToggleLightIcon.classList.remove('hidden'); 729 } else { 730 themeToggleDarkIcon.classList.remove('hidden'); 731 } 732 733 var themeToggleBtn = document.getElementById('theme-toggle'); 734 735 themeToggleBtn.addEventListener('click', function() { 736 737 // toggle icons inside button 738 themeToggleDarkIcon.classList.toggle('hidden'); 739 themeToggleLightIcon.classList.toggle('hidden'); 740 741 // if set via local storage previously 742 if (localStorage.getItem('color-theme')) { 743 if (localStorage.getItem('color-theme') === 'light') { 744 document.documentElement.classList.add('dark'); 745 localStorage.setItem('color-theme', 'dark'); 746 } else { 747 document.documentElement.classList.remove('dark'); 748 localStorage.setItem('color-theme', 'light'); 749 } 750 751 // if NOT set via local storage previously 752 } else { 753 if (document.documentElement.classList.contains('dark')) { 754 document.documentElement.classList.remove('dark'); 755 localStorage.setItem('color-theme', 'light'); 756 } else { 757 document.documentElement.classList.add('dark'); 758 localStorage.setItem('color-theme', 'dark'); 759 } 760 } 761 762 }); 763</script>
vendor: 1 bytes, line 763
763
764<script> 765 function view_modal() { 766 Swal.fire({ 767 title: 'Estas seguro?', 768 text: "No podrás revertir esto!", 769 icon: 'warning', 770 showCancelButton: true, 771 confirmButtonColor: '#3085d6', 772 cancelButtonColor: '#d33', 773 confirmButtonText: 'Yes, delete it!' 774 }).then((result) => { 775 if (result.isConfirmed) { 776 Swal.fire( 777 'Deleted!', 778 'Your file has been deleted.', 779 'success' 780 ) 781 } 782 }) 783 } 784 785 function pages(page) { 786 787 $.ajax({ 788 type: 'GET', 789 beforeSend: function(objeto) { 790 791 // $('.preload').html('<div id="sb" class="dark:bg-gray-700 bg-gray-100" style="opacity: 0.5;position: fixed;top: 0;left: 0;width: 100%;height: 100%;z-index: 1050;">' + 792 // '<div style="height: 100%;display: flex;justify-content: center;align-items: center;"><img style="opacity:1;" width="200" height="200" src="https://gestiondematricula.franco.ed.cr/img/loading-9.gif"></div>' + 793 // '</div>'); 794 795 }, 796 success: function(data) { 797 setTimeout(() => { 798 window.location = 'https://gestiondematricula.franco.ed.cr/' + page; 799 }, 1000); 800 } 801 }); 802 } 803</script>
vendor: 1 bytes, line 803
803
804<script> 805 function applyInputUpperCase(input) { 806 let mySentence = input.value; 807 let word = mySentence.split(" "); 808 809 for (let i = 0; i < word.length; i++) { 810 word[i] = word[i][0].toUpperCase() + word[i].substr(1); 811 } 812 input.value = word.join(' '); 813 } 814 815 function applyInputMask(elementId, mask) { 816 let inputElement = document.getElementById(elementId); 817 let content = ''; 818 let maxChars = numberCharactersPattern(mask); 819 820 inputElement.addEventListener('keydown', function(e) { 821 e.preventDefault(); 822 if (isNumeric(e.key) && content.length < maxChars) { 823 content += e.key; 824 } 825 if (e.keyCode == 8) { 826 if (content.length > 0) { 827 content = content.substr(0, content.length - 1); 828 } 829 } 830 inputElement.value = maskIt('0000-0000', content); 831 }) 832 } 833 834 function maskIt(pattern, value) { 835 let position = 0; 836 let currentChar = 0; 837 let masked = ''; 838 while (position < pattern.length && currentChar < value.length) { 839 if (pattern[position] === '0') { 840 masked += value[currentChar]; 841 currentChar++; 842 } else { 843 masked += pattern[position]; 844 } 845 position++; 846 } 847 return masked; 848 } 849 850 function numberCharactersPattern(pattern) { 851 let numberChars = 0; 852 for (let i = 0; i < pattern.length; i++) { 853 if (pattern[i] === '0') { 854 numberChars++; 855 } 856 } 857 return numberChars; 858 } 859 860 function isNumeric(char) { 861 return !isNaN(char - parseInt(char)); 862 } 863 864 function validateEmail(valor) { 865 var regex = /^[-\w.%+]{1,64}@(?:[A-Z0-9-]{1,63}\.){1,125}[A-Z]{2,63}$/i; 866 if (!regex.test(valor)) { 867 return false; 868 } else { 869 return true; 870 } 871 } 872 873 function ventana(theURL, winName, features, myWidth, myHeight, isCenter) { //v3.0 874 if (window.screen) 875 if (isCenter) 876 if (isCenter == "true") { 877 var myLeft = (screen.width - myWidth) / 2; 878 var myTop = (screen.height - myHeight) / 2; 879 features += (features != '') ? ',' : ''; 880 features += ',left=' + myLeft + ',top=' + myTop; 881 } 882 window.open(theURL, winName, features + ((features != '') ? ',' : '') + 'width=' + myWidth + ',height=' + myHeight); 883 } 884 885 function validateInputVoid(obj) { 886 if (obj.value == '') { 887 return false; 888 } 889 return true; 890 } 891 892 function haveMayus(cadena) { 893 let letras_mayusculas = "ABCDEFGHYJKLMNÃOPQRSTUVWXYZ"; 894 for (i = 0; i < cadena.length; i++) { 895 if (letras_mayusculas.indexOf(cadena.charAt(i), 0) != -1) { 896 return 1; 897 } 898 } 899 return 0; 900 } 901 902 function haveMinus(cadena) { 903 let letras = "abcdefghyjklmnñopqrstuvwxyz"; 904 for (i = 0; i < cadena.length; i++) { 905 if (letras.indexOf(cadena.charAt(i), 0) != -1) { 906 return 1; 907 } 908 } 909 return 0; 910 } 911 912 function haveNumber(cadena) { 913 let numeros = "0123456789"; 914 for (i = 0; i < cadena.length; i++) { 915 if (numeros.indexOf(cadena.charAt(i), 0) != -1) { 916 return 1; 917 } 918 } 919 return 0; 920 } 921 922 function haveCharterSpecial(cadena) { 923 return cadena.match(/^[^@#*,.¡!¿?%$]+$/) ? 0 : 1; 924 } 925 926 function email_exists(email) { 927 var myHeaders = new Headers(); 928 myHeaders.append("apikey", "Rd9Qtr4Bo050afESHEg97KsPKfU1QKF6"); 929 930 var requestOptions = { 931 method: 'GET', 932 redirect: 'follow', 933 headers: myHeaders 934 }; 935 936 fetch("https://api.apilayer.com/email_verification/check?email="+email+"", requestOptions) 937 .then(response => response.text()) 938 .then(result => console.log(result)) 939 .catch(error => console.log('error', error)); 940 941 } 942 943</script>
943 </body> 944 945</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.