<!-- This Source Code Form is subject to the terms of the Mozilla Public
   - License, v. 2.0. If a copy of the MPL was not distributed with this
   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
<div class="list-group">
    <div class="list-group-item">
        <h4><i class="fa fa-user"></i> <span id="username">Not logged in</span></h4>
        <i class="fa fa-key"></i> Pairing Code: <span id="pairingkey">None</span><br />
        <i class="fa fa-server"></i> Server: <span id="syncurl">None</span>
    </div>
    <div class="list-group-item" onclick="openscreen('accounts', 'FADE');">
        <b>Manage and switch accounts</b>
    </div>
</div>

<div class="list-group">
    <div class="list-group-item" onclick="updatepassword()">
        <b>Update Password</b>
        <p>Enter your new password if you changed it from AccountHub.</p>
    </div>
    <div class="list-group-item" onclick="deleteall()">
        <b>Disconnect All Accounts</b>
        <p>Forget all account data for all connected accounts and open the setup tool.</p>
    </div>
</div>

<div class="list-group">
    <div class="list-group-item" onclick="toggleAnimations()">
        <b>Turn animations <span id="animations_offon_label">off</span></b>
        <p>Disable transitions and animations on slow devices or to save battery life.</p>
    </div>
</div>

<div class="list-group">
    <div class="list-group-item" onclick="openscreen('zeroconf', 'FADE')">
        <b>Server Locator</b>
        <p>Scan the local network for Business Apps services.</p>
    </div>
</div>

<div class="list-group">
    <div class="list-group-item">
        <b><span id="app_name">Netsyms Business Apps for Mobile</span> v<span id="app_version">1.x</span></b>
        <br />
        Copyright &copy; 2018 Netsyms Technologies.  Licensed under the <span style="text-decoration: underline;" onclick="window.open('https://source.netsyms.com/Business/MobileApp?pk_campaign=BusinessMobile-SystemBrowser', '_system', '');">Mozilla Public License 2.0</span>.
        <br />
        <span style="text-decoration: underline;" onclick="window.open('https://netsyms.com/?pk_campaign=BusinessMobile-SystemBrowser', '_system', '');">https://netsyms.com</span>
        <br />
        <span id="app_package">com.netsyms.BusinessMobile</span>
        <br />
        build #<span id="app_version_code">1xxxx</span>
    </div>
    <div class="list-group-item" onclick="openscreen('credits', 'FADE')">
        <b>Credits and Open Source</b>
    </div>
    <div class="list-group-item" onclick="cordova.InAppBrowser.open('https://netsyms.biz/mobile-privacy-policy', '_blank', 'location=yes');">
        <b>Privacy Policy</b>
    </div>
</div>

<script>
    setnavbar("settings");

    function deleteall() {
        navigator.notification.confirm("Really wipe user data?  You will need to resync the app with AccountHub to use it again.  This will not delete 2-factor auth keys.", function (result) {
            if (result != 1) {
                return;
            }
            // Wipe localStorage
            localStorage.removeItem("username");
            localStorage.removeItem("password");
            localStorage.removeItem("syncurl");
            localStorage.removeItem("key");
            localStorage.removeItem("accounts");
            // force-reload app
            navigator.notification.alert("All connection data and credentials erased.", function () {
                restartApplication();
            }, "App Reset", 'Continue');
        }, "Are you sure?");
    }

    function toggleAnimations() {
        if (localStorage.getItem("animations") === null || localStorage.getItem("animations") === "true") {
            localStorage.setItem("animations", "false");
            $.fx.off = true;
            $('#animations_offon_label').text("on");
            navigator.notification.alert("Animations turned off.", null, "Setting updated", "Dismiss");
        } else {
            localStorage.setItem("animations", "true");
            $.fx.off = false;
            $('#animations_offon_label').text("off");
            navigator.notification.alert("Animations turned on.", null, "Setting updated", "Dismiss");
        }
    }

    /**
     * Prompts the user to enter their password, then checks the password and
     * saves or displays an error.
     * @returns {undefined}
     */
    function updatepassword() {
        navigator.notification.prompt("Re-enter your password.", function (results) {
            if (results.buttonIndex == 1) {
                $.post(localStorage.getItem("syncurl"), {
                    username: localStorage.getItem("username"),
                    key: localStorage.getItem("key"),
                    password: results.input1,
                    action: "check_password"
                }, function (data) {
                    if (data.status === 'OK') {
                        localStorage.setItem("password", results.input1);
                        passwd(results.input1);
                        navigator.notification.alert("Saved password updated.", function () {
                            // Reload app just to be safe
                            restartApplication();
                        }, "Success", 'Continue');
                    } else {
                        navigator.notification.alert(data.msg, null, "Error", 'Dismiss');
                    }
                }, "json").fail(function () {
                    navigator.notification.alert("Could not connect to the server.  Try again later.", null, "Error", 'Dismiss');
                });
            }
        }, "Update Password", ["Save", "Cancel"]);
    }

    if (localStorage.getItem("animations") === "false") {
        $('#animations_offon_label').text("on");
    }

    cordova.getAppVersion.getVersionNumber(function (version) {
        $('#app_version').text(version);
    });
    cordova.getAppVersion.getPackageName(function (package) {
        $('#app_package').text(package);
    });
    cordova.getAppVersion.getVersionCode(function (version) {
        $('#app_version_code').text(version);
    });

    if (localStorage.getItem("username")) {
        $("#username").text(localStorage.getItem("username"));
    }
    if (localStorage.getItem("key")) {
        var key = localStorage.getItem("key");
        var stars = "";
        for (var i = 0; i < key.length - 6; i++) {
            stars += "*";
        }
        $("#pairingkey").text(key.slice(0, 3) + stars + key.slice(-3));
    }
    if (localStorage.getItem("syncurl")) {
        $("#syncurl").text(localStorage.getItem("syncurl").replace("/mobile/index.php", ""));
    }
</script>
