{"id":114,"date":"2026-04-20T14:49:02","date_gmt":"2026-04-20T14:49:02","guid":{"rendered":"https:\/\/www.divetalking.com\/oceanseye\/?page_id=114"},"modified":"2026-04-20T16:31:02","modified_gmt":"2026-04-20T16:31:02","slug":"dive-logs","status":"publish","type":"page","link":"https:\/\/www.divetalking.com\/oceanseye\/dive-logs\/","title":{"rendered":"Dive Logs"},"content":{"rendered":"<div id=\"dtdl-auth-wrap\" style=\"max-width:460px;margin:40px auto;font-family:sans-serif;\">\n\n  <!-- Header -->\n  <div style=\"background:linear-gradient(135deg,#0c4a6e,#0369a1);color:#fff;padding:22px 24px 0;border-radius:10px 10px 0 0;text-align:center;\">\n    <div style=\"font-size:32px;margin-bottom:8px;\">&#128220;<\/div>\n    <div style=\"font-size:17px;font-weight:800;letter-spacing:-.01em;\">Oceanseye Dive Log<\/div>\n    <div style=\"font-size:12px;opacity:.75;margin-top:4px;margin-bottom:18px;\">Your personal dive logbook<\/div>\n\n    <!-- Tabs -->\n    <div style=\"display:flex;gap:2px;margin:0 -24px;\">\n      <button id=\"dtdl-tab-login-btn\"\n        style=\"flex:1;padding:10px 0;font-size:13px;font-weight:700;border:none;cursor:pointer;border-radius:6px 6px 0 0;background:rgba(255,255,255,.15);color:rgba(255,255,255,.7);\"\n        onclick=\"dtdlAuthTab('login')\">Log In<\/button>\n      <button id=\"dtdl-tab-register-btn\"\n        style=\"flex:1;padding:10px 0;font-size:13px;font-weight:700;border:none;cursor:pointer;border-radius:6px 6px 0 0;background:#fff;color:#0369a1;\"\n        onclick=\"dtdlAuthTab('register')\">Create Account<\/button>\n    <\/div>\n  <\/div>\n\n  <!-- Panel body -->\n  <div style=\"background:#fff;border:1px solid #e2e8f0;border-top:none;border-radius:0 0 10px 10px;padding:24px;\">\n\n    <!-- Status message -->\n    <div id=\"dtdl-auth-msg\" style=\"display:none;padding:10px 14px;border-radius:6px;font-size:13px;margin-bottom:16px;\"><\/div>\n\n    <!-- ===================== LOGIN FORM ===================== -->\n    <div id=\"dtdl-tab-login\" style=\"display:none;\">\n      <div style=\"font-size:14px;font-weight:700;color:#1d2327;margin-bottom:16px;\">Welcome back<\/div>\n\n      <div style=\"margin-bottom:14px;\">\n        <label style=\"display:block;font-size:11px;font-weight:700;color:#374151;margin-bottom:4px;\">Username or Email<\/label>\n        <input type=\"text\" id=\"dtdl-login-user\" autocomplete=\"username\"\n          style=\"width:100%;padding:9px 10px;border:1px solid #e2e8f0;border-radius:6px;font-size:14px;box-sizing:border-box;font-family:inherit;\">\n      <\/div>\n\n      <div style=\"margin-bottom:6px;\">\n        <label style=\"display:block;font-size:11px;font-weight:700;color:#374151;margin-bottom:4px;\">Password<\/label>\n        <input type=\"password\" id=\"dtdl-login-pass\" autocomplete=\"current-password\"\n          style=\"width:100%;padding:9px 10px;border:1px solid #e2e8f0;border-radius:6px;font-size:14px;box-sizing:border-box;font-family:inherit;\">\n      <\/div>\n\n      <div style=\"text-align:right;margin-bottom:18px;\">\n        <a href=\"https:\/\/www.divetalking.com\/oceanseye\/wp-login.php?action=lostpassword&#038;redirect_to=https%3A%2F%2Fwww.divetalking.com%2Foceanseye%2Fdive-logs%2F\"\n           style=\"font-size:12px;color:#0369a1;text-decoration:none;\">Forgot password?<\/a>\n      <\/div>\n\n      <button onclick=\"dtdlDoLogin()\"\n        style=\"width:100%;padding:11px;background:#0369a1;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:700;cursor:pointer;\"\n        id=\"dtdl-login-btn\">Log In<\/button>\n\n      <div style=\"text-align:center;margin-top:16px;font-size:12px;color:#64748b;\">\n        No account yet?\n        <a href=\"#\" onclick=\"dtdlAuthTab('register');return false;\" style=\"color:#0369a1;font-weight:700;text-decoration:none;\">Create one free<\/a>\n      <\/div>\n    <\/div>\n\n    <!-- ==================== REGISTER FORM ==================== -->\n    <div id=\"dtdl-tab-register\" style=\"display:none;\">\n      <div style=\"font-size:14px;font-weight:700;color:#1d2327;margin-bottom:4px;\">Create your free account<\/div>\n      <div style=\"font-size:12px;color:#64748b;margin-bottom:18px;\">Your logbook is private \u2014 only you can see it.<\/div>\n\n      <div style=\"display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px;\">\n        <div>\n          <label style=\"display:block;font-size:11px;font-weight:700;color:#374151;margin-bottom:4px;\">First Name <span style=\"color:#dc2626;\">*<\/span><\/label>\n          <input type=\"text\" id=\"dtdl-reg-first\" autocomplete=\"given-name\"\n            style=\"width:100%;padding:9px 10px;border:1px solid #e2e8f0;border-radius:6px;font-size:14px;box-sizing:border-box;font-family:inherit;\">\n        <\/div>\n        <div>\n          <label style=\"display:block;font-size:11px;font-weight:700;color:#374151;margin-bottom:4px;\">Last Name <span style=\"color:#dc2626;\">*<\/span><\/label>\n          <input type=\"text\" id=\"dtdl-reg-last\" autocomplete=\"family-name\"\n            style=\"width:100%;padding:9px 10px;border:1px solid #e2e8f0;border-radius:6px;font-size:14px;box-sizing:border-box;font-family:inherit;\">\n        <\/div>\n      <\/div>\n\n      <div style=\"margin-bottom:14px;\">\n        <label style=\"display:block;font-size:11px;font-weight:700;color:#374151;margin-bottom:4px;\">Email Address <span style=\"color:#dc2626;\">*<\/span><\/label>\n        <input type=\"email\" id=\"dtdl-reg-email\" autocomplete=\"email\"\n          style=\"width:100%;padding:9px 10px;border:1px solid #e2e8f0;border-radius:6px;font-size:14px;box-sizing:border-box;font-family:inherit;\">\n      <\/div>\n\n      <div style=\"margin-bottom:14px;\">\n        <label style=\"display:block;font-size:11px;font-weight:700;color:#374151;margin-bottom:4px;\">Password <span style=\"color:#dc2626;\">*<\/span> <span id=\"dtdl-pw-hint\" style=\"font-size:10px;color:#94a3b8;font-weight:400;\">(min. 8 characters)<\/span><\/label>\n        <input type=\"password\" id=\"dtdl-reg-pass\" autocomplete=\"new-password\"\n          style=\"width:100%;padding:9px 10px;border:1px solid #e2e8f0;border-radius:6px;font-size:14px;box-sizing:border-box;font-family:inherit;\"\n          oninput=\"dtdlPwStrength(this.value)\">\n        <!-- Strength bar -->\n        <div style=\"height:4px;background:#f0f0f1;border-radius:2px;margin-top:6px;overflow:hidden;\">\n          <div id=\"dtdl-pw-bar\" style=\"height:100%;width:0%;border-radius:2px;transition:width .3s,background .3s;\"><\/div>\n        <\/div>\n        <div id=\"dtdl-pw-label\" style=\"font-size:10px;color:#94a3b8;margin-top:3px;\"><\/div>\n      <\/div>\n\n      <div style=\"margin-bottom:20px;\">\n        <label style=\"display:block;font-size:11px;font-weight:700;color:#374151;margin-bottom:4px;\">Confirm Password <span style=\"color:#dc2626;\">*<\/span><\/label>\n        <input type=\"password\" id=\"dtdl-reg-pass2\" autocomplete=\"new-password\"\n          style=\"width:100%;padding:9px 10px;border:1px solid #e2e8f0;border-radius:6px;font-size:14px;box-sizing:border-box;font-family:inherit;\">\n      <\/div>\n\n      <!-- Privacy notice \/ consent -->\n      <div style=\"background:#f0f9ff;border:1px solid #bae6fd;border-radius:6px;padding:12px 14px;margin-bottom:18px;font-size:12px;color:#374151;line-height:1.5;\">\n        By creating an account your information will be stored on this site. Your dive log is private by default \u2014 only entries you choose to share are visible to others.\n      <\/div>\n\n      <button onclick=\"dtdlDoRegister()\"\n        style=\"width:100%;padding:11px;background:#0c4a6e;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:700;cursor:pointer;\"\n        id=\"dtdl-reg-btn\">Create My Account<\/button>\n\n      <div style=\"text-align:center;margin-top:16px;font-size:12px;color:#64748b;\">\n        Already have an account?\n        <a href=\"#\" onclick=\"dtdlAuthTab('login');return false;\" style=\"color:#0369a1;font-weight:700;text-decoration:none;\">Log in<\/a>\n      <\/div>\n    <\/div>\n\n  <\/div><!-- \/panel body -->\n<\/div><!-- #dtdl-auth-wrap -->\n\n<script>\n(function($){\n    var dtdlAuthAjax  = 'https:\/\/www.divetalking.com\/oceanseye\/wp-admin\/admin-ajax.php';\n    var dtdlAuthNonce = '76a2f18a63';\n    var dtdlAuthRedir = 'https:\/\/www.divetalking.com\/oceanseye\/dive-logs\/';\n\n    \/\/ ---- Tab switcher ---------------------------------------------------\n    window.dtdlAuthTab = function(tab) {\n        $('#dtdl-tab-login, #dtdl-tab-register').hide();\n        $('#dtdl-auth-msg').hide();\n        if (tab === 'login') {\n            $('#dtdl-tab-login').show();\n            $('#dtdl-tab-login-btn').css({background:'#fff', color:'#0369a1'});\n            $('#dtdl-tab-register-btn').css({background:'rgba(255,255,255,.15)', color:'rgba(255,255,255,.7)'});\n        } else {\n            $('#dtdl-tab-register').show();\n            $('#dtdl-tab-login-btn').css({background:'rgba(255,255,255,.15)', color:'rgba(255,255,255,.7)'});\n            $('#dtdl-tab-register-btn').css({background:'#fff', color:'#0369a1'});\n        }\n    };\n\n    \/\/ ---- Message helper -------------------------------------------------\n    function dtdlAuthMsg(msg, ok) {\n        var $m = $('#dtdl-auth-msg');\n        $m.html(msg)\n          .css({\n              display:'block',\n              background: ok ? '#f0fdf4' : '#fef2f2',\n              border: '1px solid ' + (ok ? '#bbf7d0' : '#fecaca'),\n              color: ok ? '#166534' : '#991b1b'\n          });\n    }\n\n    \/\/ ---- Password strength meter ----------------------------------------\n    window.dtdlPwStrength = function(pw) {\n        var score = 0;\n        if (pw.length >= 8)  score++;\n        if (pw.length >= 12) score++;\n        if (\/[A-Z]\/.test(pw)) score++;\n        if (\/[0-9]\/.test(pw)) score++;\n        if (\/[^A-Za-z0-9]\/.test(pw)) score++;\n        var labels = ['','Weak','Fair','Good','Strong','Very strong'];\n        var colors = ['','#ef4444','#f97316','#eab308','#22c55e','#15803d'];\n        var pct    = [0, 20, 40, 60, 80, 100];\n        $('#dtdl-pw-bar').css({width: pct[score] + '%', background: colors[score]});\n        $('#dtdl-pw-label').text(score > 0 ? labels[score] : '').css('color', colors[score]);\n    };\n\n    \/\/ ---- Login ----------------------------------------------------------\n    window.dtdlDoLogin = function() {\n        var user = $('#dtdl-login-user').val().trim();\n        var pass = $('#dtdl-login-pass').val();\n        if (!user || !pass) { dtdlAuthMsg('Please enter your username and password.', false); return; }\n\n        $('#dtdl-login-btn').text('Logging in...').prop('disabled', true);\n        $.post(dtdlAuthAjax, {\n            action: 'dtdl_login',\n            nonce:  dtdlAuthNonce,\n            username: user,\n            password: pass\n        }, function(res) {\n            $('#dtdl-login-btn').text('Log In').prop('disabled', false);\n            if (res && res.success) {\n                dtdlAuthMsg('Welcome back! Loading your logbook...', true);\n                setTimeout(function(){ window.location.href = dtdlAuthRedir; }, 800);\n            } else {\n                var msg = (res && res.data) ? res.data : 'Login failed. Check your credentials.';\n                dtdlAuthMsg(msg, false);\n            }\n        }).fail(function() {\n            $('#dtdl-login-btn').text('Log In').prop('disabled', false);\n            dtdlAuthMsg('Server error. Please try again.', false);\n        });\n    };\n\n    \/\/ Allow Enter key on login form\n    $('#dtdl-login-user, #dtdl-login-pass').on('keypress', function(e) {\n        if (e.which === 13) dtdlDoLogin();\n    });\n\n    \/\/ ---- Register -------------------------------------------------------\n    window.dtdlDoRegister = function() {\n        var first = $('#dtdl-reg-first').val().trim();\n        var last  = $('#dtdl-reg-last').val().trim();\n        var email = $('#dtdl-reg-email').val().trim();\n        var pass  = $('#dtdl-reg-pass').val();\n        var pass2 = $('#dtdl-reg-pass2').val();\n\n        if (!first || !last)    { dtdlAuthMsg('Please enter your first and last name.', false); return; }\n        if (!email)             { dtdlAuthMsg('Please enter your email address.', false); return; }\n        if (!pass)              { dtdlAuthMsg('Please choose a password.', false); return; }\n        if (pass.length < 8)   { dtdlAuthMsg('Password must be at least 8 characters.', false); return; }\n        if (pass !== pass2)    { dtdlAuthMsg('Passwords do not match.', false); return; }\n\n        $('#dtdl-reg-btn').text('Creating account...').prop('disabled', true);\n        $.post(dtdlAuthAjax, {\n            action:     'dtdl_register',\n            nonce:      dtdlAuthNonce,\n            first_name: first,\n            last_name:  last,\n            email:      email,\n            password:   pass,\n            password2:  pass2\n        }, function(res) {\n            $('#dtdl-reg-btn').text('Create My Account').prop('disabled', false);\n            if (res && res.success) {\n                dtdlAuthMsg('Account created! Loading your logbook...', true);\n                setTimeout(function(){ window.location.href = dtdlAuthRedir; }, 1000);\n            } else {\n                var msg = (res && res.data) ? res.data : 'Registration failed. Please try again.';\n                dtdlAuthMsg(msg, false);\n            }\n        }).fail(function() {\n            $('#dtdl-reg-btn').text('Create My Account').prop('disabled', false);\n            dtdlAuthMsg('Server error. Please try again.', false);\n        });\n    };\n\n    \/\/ ---- Boot: determine which tab to show first ------------------------\n    $(function() {\n        \/\/ If URL has ?dtdl_registered=1, show login with a success note\n        var qs = window.location.search;\n        if (qs.indexOf('dtdl_tab=register') !== -1) {\n            dtdlAuthTab('register');\n        } else {\n            dtdlAuthTab('login');\n        }\n    });\n\n})(jQuery);\n<\/script>\n        \n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-114","page","type-page","status-publish"],"_links":{"self":[{"href":"https:\/\/www.divetalking.com\/oceanseye\/wp-json\/wp\/v2\/pages\/114","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.divetalking.com\/oceanseye\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.divetalking.com\/oceanseye\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.divetalking.com\/oceanseye\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.divetalking.com\/oceanseye\/wp-json\/wp\/v2\/comments?post=114"}],"version-history":[{"count":1,"href":"https:\/\/www.divetalking.com\/oceanseye\/wp-json\/wp\/v2\/pages\/114\/revisions"}],"predecessor-version":[{"id":115,"href":"https:\/\/www.divetalking.com\/oceanseye\/wp-json\/wp\/v2\/pages\/114\/revisions\/115"}],"wp:attachment":[{"href":"https:\/\/www.divetalking.com\/oceanseye\/wp-json\/wp\/v2\/media?parent=114"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}