1// Copyright (c) 2012 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5/**
6 * @fileoverview Offline login implementation.
7 */
8
9function load() {
10  var params = getUrlSearchParams(location.search);
11
12  // Setup localized strings.
13  $('sign-in-title').textContent = decodeURIComponent(params['stringSignIn']);
14  $('email-label').textContent = decodeURIComponent(params['stringEmail']);
15  $('password-label').textContent =
16      decodeURIComponent(params['stringPassword']);
17  $('submit-button').value = decodeURIComponent(params['stringSignIn']);
18  $('empty-email-alert').textContent =
19      decodeURIComponent(params['stringEmptyEmail']);
20  $('empty-password-alert').textContent =
21      decodeURIComponent(params['stringEmptyPassword']);
22  $('errormsg-alert').textContent = decodeURIComponent(params['stringError']);
23
24  // Setup actions.
25  var form = $('offline-login-form');
26  form.addEventListener('submit', function(e) {
27    // Clear all previous errors.
28    form.email.classList.remove('field-error');
29    form.password.classList.remove('field-error');
30    form.password.classList.remove('form-error');
31
32    if (form.email.value == '') {
33      form.email.classList.add('field-error');
34      form.email.focus();
35    } else if (form.password.value == '') {
36      form.password.classList.add('field-error');
37      form.password.focus();
38    } else {
39      var msg = {
40        'method': 'offlineLogin',
41        'email': form.email.value,
42        'password': form.password.value
43      };
44      window.parent.postMessage(msg, 'chrome://oobe/');
45    }
46    e.preventDefault();
47  });
48
49  var email = params['email'];
50  if (email) {
51    // Email is present, which means that unsuccessful login attempt has been
52    // made. Try to mimic Gaia's behaviour.
53    form.email.value = email;
54    form.password.classList.add('form-error');
55    form.password.focus();
56  } else {
57    form.email.focus();
58  }
59  window.parent.postMessage({'method': 'loginUILoaded'}, 'chrome://oobe/');
60}
61
62document.addEventListener('DOMContentLoaded', load);
63