<!-- BEGIN: main --><!DOCTYPE html>
<html lang="en">
    <!-- :mode=html: $Id$ -->
    <head>
        <title>{title} - SimpleID</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <meta name="SimpleID-Version" content="{version}" />
        <meta name="robots" content="noindex,nofollow" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
        <link rel="shortcut icon" href="{base_path}html/simpleid.ico" type="image/x-icon" />
        
        <!-- BEGIN: provider -->
            <link rel="openid.server" href="{provider}" />
            <link rel="openid2.provider" href="{provider}" />
            <meta content="{xrds}" http-equiv="X-XRDS-Location" />
        <!-- END: provider -->
        <!-- BEGIN: local_id -->
            <link rel="openid.delegate" href="{local_id}" />
            <link rel="openid2.local_id" href="{local_id}" />
        <!-- END: local_id -->
        
        <link rel="stylesheet" href="{base_path}html/simpleid.css" />
        <style type="text/css" media="screen">
            {css}
        </style>
        
        <script src="{base_path}html/jquery.js" type="text/javascript"></script>
        <script type="text/javascript">
        var l = {
            <!-- BEGIN: js_locale -->"{js_locale_label}": "{js_locale_text}",<!-- END: js_locale -->
        };
        </script>
        <!-- BEGIN: framekiller -->
        <script type="text/javascript">
            $(document).ready(function() {
                if (top !== self) top.location.replace(self.location.href);
            });
        </script>
        <!-- END: framekiller -->
        {javascript}
    </head>
    <body class="{page_class}">
        <div id="header"><div id="header-inner">
            <!-- BEGIN: nav_toggle --><div id="nav-toggle"><img src="{base_path}html/nav-toggle.png" /></div><!-- END: nav_toggle -->
            <div id="logo">
                <h1><a href="http://simpleid.org/">SimpleID</a> <span class="version">{version}</span></h1>
            </div>
            <!-- BEGIN: user -->
            <div id="user-toggle"><img src="{base_path}html/user-toggle.png" /></div>
            <div id="user">
                <div class="logged-in-as">
                    <span><strong title="{identity}" class="identity">{uid}</strong></span>
                <!-- BEGIN: logout --><span id="logout"><a href="{url}">{logout}</a></span><!-- END: logout -->
                </div>
            </div>
            <!-- END: user -->
            <div style="clear: both;"></div>
        </div></div>
        <!-- BEGIN: nav -->
        <div id="nav"><div id="nav-inner">
            <ul id="nav-left">
                <li><a href="{nav_base}">{nav_dashboard_label}</a></li>
                <li><a href="{nav_base}my/profile">{nav_profile_label}</a></li>
                <li><a href="{nav_base}my/sites">{nav_sites_label}</a></li>
            </ul>
            <div style="clear: both"></div>
        </div></div>
        <!-- END: nav -->
        <div id="content"><div id="content-inner">
            <h1>{title}</h1>
            
            <!-- BEGIN: message -->
            <div class="message">
                <p>{message}</p>
            </div>
            <!-- END: message -->
            
            <!-- BEGIN: login -->
            <!-- BEGIN: login_security -->
            <div class="login-security {security_class}">
                <p>{security_message}</p>
            </div>
            <!-- END: login_security -->
            
            <form action="{base_path}index.php" method="post" enctype="application/x-www-form-urlencoded" id="login-form">
                <input type="hidden" name="q" value="login"/><input name="destination" type="hidden" value="{destination}"/>
                <input type="hidden" name="mode" value="{mode}"/><input type="hidden" name="nonce" value="{nonce}" />

                <!-- BEGIN: credentials -->
                <input type="hidden" name="digest" id="edit-digest" value="" />
                
                <div class="form-item">
                    <label for="edit-name">{name_label}</label>
                    <!-- BEGIN: input_uid --><input type="text" maxlength="60" name="name" id="edit-name" value="" autocapitalize="off" autocorrect="off" class="form-text required" {security_disabled} /><!-- END: input_uid -->
                    <!-- BEGIN: fixed_uid --><input type="hidden" name="name" value="{uid}"/><input type="hidden" name="fixed_uid" value="1"/><div id="edit-name">{uid}</div><!-- END: fixed_uid -->
                </div>
                <div class="form-item">
                    <label for="edit-pass">{pass_label}</label>
                    <input type="password" name="pass" id="edit-pass" size="60" class="form-text required" {security_disabled} />
                </div>                
                <div class="form-item">
                    <label class="option">
                        <input type="checkbox" name="autologin" value="1" />
                        {autologin_label}
                    </label>
                </div>
                <!-- END: credentials -->

                <!-- BEGIN: otp -->
                <input type="hidden" name="autologin" value="{autologin}" />
                
                <p>{otp_instructions_label}</p>

                <p>{otp_recovery_label}</p>
                
                <div class="form-item">
                    <label for="edit-otp">{otp_label}</label>
                    <input type="number" maxlength="6" name="otp" id="edit-otp" size="10" value="" autocapitalize="off" autocorrect="off" class="form-text required" />
                </div>
                <!--div class="form-item">
                    <label class="option">
                        <input type="checkbox" name="autoverify" value="1" />
                        {autoverify_label}
                    </label>
                </div-->
                <!-- END: otp -->

                <input type="submit" name="op" id="edit-submit" value="{submit_button}" class="form-default" {security_disabled} />
                <!-- BEGIN: state -->
                    <input type="submit" name="op" id="edit-cancel" value="{cancel_button}" />
                    <input type="hidden" name="s" value="{state}"/>
                <!-- END: state -->
            </form>
            <!-- END: login -->
            
            <!-- BEGIN: openid_consent -->
            <form action="{base_path}index.php" method="post" enctype="application/x-www-form-urlencoded" id="rp-form">
                <input type="hidden" name="q" value="openid/consent" />
                <input type="hidden" name="s" value="{state}" />
                <input name="tk" type="hidden" value="{token}"/>
                
                <!-- BEGIN: icon -->
                <div class="icon">
                    <img src="{icon_url}" alt="" />
                </div>
                <!-- END: icon -->
                
                <!-- BEGIN: setup -->
                <input type="hidden" name="openid.realm" value="{realm}" />
                
                <p>{realm_label}</p>
                
                <!-- BEGIN: suspect -->
                <div class="message unsecure">
                    <p>{suspect_label}</p>
                </div>
                <!-- END: suspect -->
                
                <div class="form-item">
                    <label class="option">
                        <input class="{realm_class}" type="checkbox" name="autorelease" {auto_release} value="1" />
                        {auto_release_label}
                    </label>
                </div>

                {extensions}
                
                <input type="submit" name="op" id="edit-submit" value="{ok_button}" class="form-default" />
                <input type="submit" name="op" id="edit-cancel" value="{cancel_button}" />
                <!-- END: setup -->

                <!-- BEGIN: cancel -->
                <input type="hidden" name="openid.return_to" value="{return_to}" />
                
                <p>{unable_label}</p>
                
                <p>{identity_not_matching_label}</p>
                
                <p>{switch_user_label}</p>
                
                <input type="submit" name="op" id="edit-cancel" value="{cancel_button}" class="form-default" />
                <!-- END: cancel -->                
            </form>
            <!-- END: openid_consent -->
            
            <!-- BEGIN: blocks -->
                {blocks}
            <!-- END: blocks -->

            <!-- BEGIN: sites -->
            <form action="{base_path}index.php" method="post" enctype="application/x-www-form-urlencoded" >
            <input name="q" type="hidden" value="my/sites" />
            <input name="tk" type="hidden" value="{token}"/>
            <input name="update-all" type="hidden" value="1"/>
            <table id="sites">
                <thead>
                    <tr>
                        <th>{realm_label}</th>
                        <th>{last_time_label}</th>
                        <th>{auto_release_label}</th>
                        <th>{remove_label}</th>
                    </tr>
                </thead>
                <tbody>
                    <!-- BEGIN:realm -->
                    <tr>
                        <td><span class="realm">{realm_name}</span></td>
                        <td><span class="last-time">{last_time}</span> {last_time_formatted}</td>
                        <td><input class="{realm_class}" type="checkbox" value="1" name="autorelease[{realm}]" {auto_release}/></td>
                        <td><input type="checkbox" value="1" name="remove[{realm}]"/></td>
                    </tr>
                    <!-- END: realm -->
                </tbody>
            </table>
            <input type="submit" name="op" id="edit-submit" value="{submit_button}" class="form-default" {disabled} />
            </form>
            <!-- END: sites -->

            <!-- BEGIN: otp -->
            <p>{about_otp}</p>

            <p>{otp_warning}</p>
            
            <p>{setup_otp}</p>

            <ol>
                <li>{download_app}</li>
                <li>{add_account}
                    <div class="otp-key"><span class="otp-letters">{secret1}</span><span class="otp-letters">{secret5}</span><span class="otp-letters">{secret9}</span><span class="otp-letters">{secret13}</span></div>
                    <div id="otp-key-qr"></div>
                </li>
                <li>{verify_code}</li>
            </ol>

            <script src="{base_path}html/jquery.qrcode.js" type="text/javascript"></script><script type="text/javascript">$('#otp-key-qr').qrcode("{qr}");</script>

            <form action="{base_path}index.php" method="post" enctype="application/x-www-form-urlencoded">
                <input type="hidden" name="q" value="otp"/><input type="hidden" name="tk" value="{token}"/>
                
                <div class="form-item">
                    <label for="edit-otp">{otp_label}</label>
                    <input type="text" inputmode="numeric" maxlength="6" name="otp" id="edit-otp" size="10" value="" autocapitalize="off" autocorrect="off" class="form-text required" />
                </div>
                <input type="submit" name="op" id="edit-submit" value="{submit_button}" class="form-default" />
            </form>

            <!-- END: otp -->
            
            <!-- BEGIN: upgrade_access_denied -->
            <p>{login_required}</p>
            
            <p>{edit_upgrade_php}</p>
            
            <ol>
                <li>{edit_upgrade_php1}</li>
                <li>{edit_upgrade_php2}</li>
                <li>{edit_upgrade_php3}</li>
                <li>{edit_upgrade_php4}</li>
            </ol>
            
            <p>{simpleid_docs}</p>
            <!-- END: upgrade_access_denied -->

            <!-- BEGIN: upgrade_info -->
            <p>{intro}</p>
            
            <p>{simpleid_docs}</p>
            
            <ol>
                <li>{step1}</li>
                <li>{step2}</li>
            </ol>
  
            <p>{click_continue}</p>

            <form method="post" action="{base_path}upgrade.php">
                <input type="hidden" name="q" value="upgrade-selection" />
                <input type="hidden" name="tk" value="{token}" />
                <input type="submit" value="{continue_button}" />
            </form>
            <!-- END: upgrade_info -->
            
            <!-- BEGIN: upgrade_selection -->
            <p>{version_detected}</p>
            
            <p>{original_version_label}: <strong class="upgrade-version original-version">{original_version}</strong></p>
            
            <p>{this_version_label}: <strong class="upgrade-version this-version">{this_version}</strong></p>
            
                <!-- BEGIN: selection_complete -->
                    <p>{script_complete}</p>
                    <!-- BEGIN: upgrade_access_check -->
                    <div class="message unsecure">
                        <p>{edit_upgrade_php}</p>
                    </div>
                    <!-- END: upgrade_access_check -->
                <!-- END: selection_complete -->
                
                <!-- BEGIN: selection_continue -->
                <p>{click_continue}</p>

                <form method="post" action="{base_path}upgrade.php">
                    <input type="hidden" name="q" value="upgrade-apply" />
                    <input type="hidden" name="tk" value="{token}" />
                    <input type="hidden" name="handle" value="{handle}" />
                    <input type="submit" value="{continue_button}" />
                </form>
                <!-- END: selection_continue -->
                
            <!-- END: upgrade_selection -->
            
            <!-- BEGIN: upgrade_results -->
            <p>{upgrade_complete}</p>
            <!-- BEGIN: upgrade_access_check -->
            <div class="message unsecure">
                <p>{edit_upgrade_php}</p>
            </div>
            <!-- END: upgrade_access_check -->
            
            <div class="upgrade-results">
            {results}
            </div>
            <!-- END: upgrade_results -->
        </div></div>

        <div id="footer">
            <address>
                SimpleID {version} &copy; Kelvin Mo &middot;
                <a href="http://simpleid.org/docs/1/">{footer_doc}</a> &middot;
                <a href="http://github.com/simpleid/simpleid/">{footer_support}</a>
            </address>
        </div>

        <script type="text/javascript">
        (function() {
            var nav, nav_toggle, user, user_toggle;

            nav = document.getElementById('nav');
            nav_toggle = document.getElementById('nav-toggle');
            user = document.getElementById('user');
            user_toggle = document.getElementById('user-toggle');

            if (nav) {
                nav_toggle.onclick = function() {
                    if (nav.className.indexOf('expand') !== -1) {
                        nav.className = nav.className.replace(' expand', '');
                        nav_toggle.className = nav_toggle.className.replace(' expand', '');
                    } else {
                        nav.className += ' expand';
                        nav_toggle.className += ' expand';
                    }
                }
            }

            if (user) {
                user_toggle.onclick = function() {
                    if (user.className.indexOf('expand') !== -1) {
                        user.className = user.className.replace(' expand', '');
                        user_toggle.className = user_toggle.className.replace(' expand', '');
                    } else {
                        user.className += ' expand';
                        user_toggle.className += ' expand';
                    }
                }
            }
        })();
        </script>
    </body>
</html>
<!-- END: main -->

<!-- BEGIN: xrds --><?xml version="1.0" encoding="UTF-8"?>
<xrds:XRDS xmlns="xri://$xrd*($v*2.0)" xmlns:xrds="xri://$xrds" xmlns:simple="http://xrds-simple.net/core/1.0">
    <XRD version="2.0">
        <!-- BEGIN: user_xrds -->
        <Service priority="10">
            <Type>http://specs.openid.net/auth/2.0/signon</Type>
            <URI>{simpleid_base_url}</URI>
            <!-- BEGIN: local_id2 -->
            <LocalID>{local_id}</LocalID>            
            <!-- END: local_id2 -->
        </Service>
        <Service priority="20" xmlns:openid="http://openid.net/xmlns/1.0">
            <Type>http://openid.net/signon/1.0</Type>
            <URI>{simpleid_base_url}</URI>
            <!-- BEGIN: local_id -->
            <openid:Delegate>{local_id}</openid:Delegate>
            <!-- END: local_id -->
        </Service>
        <!-- END: user_xrds -->
        <!-- BEGIN: op_xrds -->
        <Service>
            <Type>http://specs.openid.net/auth/2.0/server</Type>
            <!-- Keep old domain -->
            <Type>http://simpleid.koinic.net/type/version#{version}</Type>
            <!-- BEGIN: type --><Type>{uri}</Type><!-- END: type -->
            <URI>{simpleid_base_url}</URI>
        </Service>
        <!-- END: op_xrds -->
    </XRD>
</xrds:XRDS>
<!-- END: xrds -->

<!-- BEGIN: xrd --><?xml version="1.0" encoding="UTF-8"?>
<XRD xmlns="http://docs.oasis-open.org/ns/xri/xrd-1.0">
    {signature}
    <!-- BEGIN: user_xrd -->
    <Subject>{acct_uri}</Subject>
    <Alias>{simpleid_user_uri}</Alias>
    <!-- BEGIN: local_id -->
    <Alias>{local_id}</Alias>
    <!-- END: local_id -->
    <Link rel="http://specs.openid.net/auth/2.0/provider" href="{simpleid_base_url}" />
    <!-- END: user_xrd -->
    <!-- BEGIN: xrd_link -->
    <Link rel="{rel}" href="{href}" />
    <!-- END: xrd_link -->
</XRD>
<!-- END: xrd -->
