1ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved.
2ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Use of this source code is governed by a BSD-style license that can be
3ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// found in the LICENSE file.
4ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
5ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsencr.define('mobile', function() {
6ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
7ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  function SimUnlock() {
8ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  }
9ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
10ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  cr.addSingletonGetter(SimUnlock);
11ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
12ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  // State of the dialog.
13ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  SimUnlock.SIM_UNLOCK_LOADING           = -1;
14ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  SimUnlock.SIM_ABSENT_NOT_LOCKED        =  0,
15ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  SimUnlock.SIM_NOT_LOCKED_ASK_PIN       =  1;
16ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  SimUnlock.SIM_NOT_LOCKED_CHANGE_PIN    =  2;
17ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  SimUnlock.SIM_LOCKED_PIN               =  3;
18ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  SimUnlock.SIM_LOCKED_NO_PIN_TRIES_LEFT =  4;
19ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  SimUnlock.SIM_LOCKED_PUK               =  5;
20ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  SimUnlock.SIM_LOCKED_NO_PUK_TRIES_LEFT =  6;
21ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  SimUnlock.SIM_DISABLED                 =  7;
22ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
23ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  // Mode of the dialog.
24ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  SimUnlock.SIM_DIALOG_UNLOCK       = 0;
25ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  SimUnlock.SIM_DIALOG_CHANGE_PIN   = 1;
26ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  SimUnlock.SIM_DIALOG_SET_LOCK_ON  = 2;
27ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  SimUnlock.SIM_DIALOG_SET_LOCK_OFF = 3;
28ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
29ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  // Error codes.
30ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  SimUnlock.ERROR_PIN = 'incorrectPin';
31ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  SimUnlock.ERROR_PUK = 'incorrectPuk';
32ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  SimUnlock.ERROR_OK = 'ok';
33ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
34ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  SimUnlock.localStrings_ = new LocalStrings();
35ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
36ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  SimUnlock.prototype = {
37ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    initialized_: false,
38ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    mode_: SimUnlock.SIM_DIALOG_UNLOCK,
39ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    pukValue_: '',
40ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    state_: SimUnlock.SIM_UNLOCK_LOADING,
41ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
42ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    changeState_: function(simInfo) {
43ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      var newState = simInfo.state;
44ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      var error = simInfo.error;
45ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      var tries = simInfo.tries;
46ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      var pinMessage;
47ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      this.hideAll_();
48ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      switch(newState) {
49ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen        case SimUnlock.SIM_UNLOCK_LOADING:
50ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen          break;
51ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen        case SimUnlock.SIM_ABSENT_NOT_LOCKED:
52ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen          SimUnlock.close();
53ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen          break;
54ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen        case SimUnlock.SIM_LOCKED_PIN:
55ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen          if (error == SimUnlock.ERROR_OK) {
56ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen            pinMessage = SimUnlock.localStrings_.getStringF(
57ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen                'enterPinTriesMessage', tries);
58ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen            $('pin-error-msg').classList.remove('error');
59ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen          } else if (error == SimUnlock.ERROR_PIN) {
60ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen              pinMessage = SimUnlock.localStrings_.getStringF(
61ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen                  'incorrectPinTriesMessage', tries);
62ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen            $('pin-error-msg').classList.add('error');
63ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen          }
64ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen          $('pin-error-msg').textContent = pinMessage;
65ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen          $('pin-input').value = '';
66ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen          SimUnlock.enablePinDialog(true);
67ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen          $('locked-pin-overlay').hidden = false;
68ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen          $('pin-input').focus();
69ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen          break;
70ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen        case SimUnlock.SIM_NOT_LOCKED_ASK_PIN:
71ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen          if (error == SimUnlock.ERROR_OK) {
72ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen            pinMessage = SimUnlock.localStrings_.getString('enterPinMessage');
73ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen            $('pin-error-msg').classList.remove('error');
74ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen          } else if (error == SimUnlock.ERROR_PIN) {
75ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen              pinMessage = SimUnlock.localStrings_.getStringF(
76ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen                  'incorrectPinTriesMessage', tries);
77ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen            $('pin-error-msg').classList.add('error');
78ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen          }
79ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen          $('pin-error-msg').textContent = pinMessage;
80ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen          $('pin-input').value = '';
81ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen          SimUnlock.enablePinDialog(true);
82ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen          $('locked-pin-overlay').hidden = false;
83ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen          $('pin-input').focus();
84ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen          break;
85ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen        case SimUnlock.SIM_NOT_LOCKED_CHANGE_PIN:
86ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen          SimUnlock.prepareChoosePinDialog(true);
87ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen          if (error == SimUnlock.ERROR_OK) {
88ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen            pinMessage = SimUnlock.localStrings_.getString('changePinMessage');
89ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen            $('choose-pin-msg').classList.remove('error');
90ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen          } else if (error == SimUnlock.ERROR_PIN) {
91ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen              pinMessage = SimUnlock.localStrings_.getStringF(
92ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen                  'incorrectPinTriesMessage', tries);
93ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen            $('choose-pin-msg').classList.add('error');
94ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen          }
95ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen          $('choose-pin-msg').textContent = pinMessage;
96ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen          $('old-pin-input').value = '';
97ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen          $('new-pin-input').value = '';
98ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen          $('retype-new-pin-input').value = '';
99ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen          $('choose-pin-overlay').hidden = false;
100ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen          $('old-pin-input').focus();
101ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen          SimUnlock.enableChoosePinDialog(true);
102ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen          break;
103ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen        case SimUnlock.SIM_LOCKED_NO_PIN_TRIES_LEFT:
104ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen          $('locked-pin-no-tries-overlay').hidden = false;
105ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen          break;
106ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen        case SimUnlock.SIM_LOCKED_PUK:
107ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen          $('puk-input').value = '';
108ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen          if (tries && tries >= 0) {
109ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen            var pukMessage = SimUnlock.localStrings_.getStringF(
110ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen                'enterPukWarning', tries);
111ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen            $('puk-warning-msg').textContent = pukMessage;
112ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen          }
113ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen          $('locked-puk-overlay').hidden = false;
114ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen          $('puk-input').focus();
115ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen          break;
116ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen        case SimUnlock.SIM_LOCKED_NO_PUK_TRIES_LEFT:
117ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen          $('locked-puk-no-tries-overlay').hidden = false;
118ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen          break;
119ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen        case SimUnlock.SimUnlock.SIM_DISABLED:
120ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen          $('sim-disabled-overlay').hidden = false;
121ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen          break;
122ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      }
123ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      this.state_ = newState;
124ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    },
125ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
126ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    hideAll_: function() {
127ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      $('locked-pin-overlay').hidden = true;
128ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      $('locked-pin-no-tries-overlay').hidden = true;
129ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      $('locked-puk-overlay').hidden = true;
130ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      $('choose-pin-overlay').hidden = true;
131ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      $('locked-puk-no-tries-overlay').hidden = true;
132ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      $('sim-disabled-overlay').hidden = true;
133ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    },
134ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
135ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    newPinEntered_: function(newPin, newPin2) {
136ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      var changePinMode = this.state_ == SimUnlock.SIM_NOT_LOCKED_CHANGE_PIN;
137ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      if (newPin != newPin2) {
138ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen        $('choose-pin-error').hidden = false;
139ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen        $('old-pin-input').value = '';
140ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen        $('new-pin-input').value = '';
141ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen        $('retype-new-pin-input').value = '';
142ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen        if (changePinMode)
143ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen          $('old-pin-input').focus();
144ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen        else
145ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen          $('new-pin-input').focus();
146ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      } else {
147ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen        $('choose-pin-error').hidden = true;
148ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen        SimUnlock.enableChoosePinDialog(false);
149ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen        if (changePinMode) {
150ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen          var oldPin = $('old-pin-input').value;
151ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen          chrome.send('changePinCode', [oldPin, newPin]);
152ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen        } else {
153ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen          chrome.send('enterPukCode', [this.pukValue_, newPin]);
154ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen          this.pukValue_ = '';
155ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen        }
156ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      }
157ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    },
158ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
159ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    pukEntered_: function(pukValue) {
160ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      this.pukValue_ = pukValue;
161ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      this.hideAll_();
162ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      SimUnlock.prepareChoosePinDialog(false);
163ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      SimUnlock.enableChoosePinDialog(true);
164ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      $('new-pin-input').value = '';
165ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      $('retype-new-pin-input').value = '';
166ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      $('choose-pin-overlay').hidden = false;
167ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      $('new-pin-input').focus();
168ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    },
169ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
170ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    updateSimStatus_: function(simInfo) {
171ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      this.changeState_(simInfo);
172ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    },
173ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  };
174ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
175ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  SimUnlock.cancel = function() {
176ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    chrome.send('cancel');
177ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    SimUnlock.close();
178ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  };
179ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
180ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  SimUnlock.close = function() {
181ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    window.close();
182ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  };
183ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
184ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  SimUnlock.initialize = function() {
185ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    this.initialized_ = true;
186ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
187ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    var modePattern = /(^\?|&)mode=([^&#]*)/;
188ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    var results = modePattern.exec(window.location.search);
189ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    if (results == null) {
190ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      this.mode_ = SimUnlock.SIM_DIALOG_UNLOCK;
191ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    } else {
192ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      var mode = results[2];
193ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      if (mode == 'change-pin')
194ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen        this.mode_ = SimUnlock.SIM_DIALOG_CHANGE_PIN;
195ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      else if (mode == 'set-lock-on')
196ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen        this.mode_ = SimUnlock.SIM_DIALOG_SET_LOCK_ON;
197ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      else if (mode == 'set-lock-off')
198ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen        this.mode_ = SimUnlock.SIM_DIALOG_SET_LOCK_OFF;
199ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    }
200ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
201ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    $('enter-pin-confirm').addEventListener('click', function(event) {
202ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      SimUnlock.enablePinDialog(false);
203ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      chrome.send('enterPinCode', [$('pin-input').value]);
204ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    });
205ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    $('enter-pin-dismiss').addEventListener('click', function(event) {
206ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      SimUnlock.cancel();
207ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    });
208ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    $('pin-no-tries-proceed').addEventListener('click', function(event) {
209ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      chrome.send('proceedToPukInput');
210ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    });
211ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    $('pin-no-tries-dismiss').addEventListener('click', function(event) {
212ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      SimUnlock.cancel();
213ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    });
214ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    $('enter-puk-confirm').addEventListener('click', function(event) {
215ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      SimUnlock.pukEntered($('puk-input').value);
216ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    });
217ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    $('enter-puk-dismiss').addEventListener('click', function(event) {
218ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      SimUnlock.cancel();
219ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    });
220ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    $('choose-pin-confirm').addEventListener('click', function(event) {
221ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      SimUnlock.newPinEntered($('new-pin-input').value,
222ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen                              $('retype-new-pin-input').value);
223ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    });
224ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    $('choose-pin-dismiss').addEventListener('click', function(event) {
225ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      SimUnlock.cancel();
226ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    });
227ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    $('puk-no-tries-confirm').addEventListener('click', function(event) {
228ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      SimUnlock.close();
229ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    });
230ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    $('sim-disabled-confirm').addEventListener('click', function(event) {
231ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      SimUnlock.close();
232ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    });
233ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    chrome.send('simStatusInitialize', [this.mode_]);
234ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  };
235ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
236ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  SimUnlock.enablePinDialog = function(enabled) {
237ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    $('pin-input').disabled = !enabled;
238ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    $('enter-pin-confirm').disabled = !enabled;
239ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    $('enter-pin-dismiss').disabled = !enabled;
240ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  };
241ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
242ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  SimUnlock.enableChoosePinDialog = function(enabled) {
243ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    $('old-pin-input').disabled = !enabled;
244ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    $('new-pin-input').disabled = !enabled;
245ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    $('retype-new-pin-input').disabled = !enabled;
246ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    $('choose-pin-confirm').disabled = !enabled;
247ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    $('choose-pin-dismiss').disabled = !enabled;
248ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  };
249ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
250ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  SimUnlock.prepareChoosePinDialog = function(changePin) {
251ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    // Our dialog has different height than choose-pin step of the
252ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    // unlock process which we're reusing.
253ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    if (changePin) {
254ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      $('choose-pin-content-area').classList.remove('choose-pin-content-area');
255ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      $('choose-pin-content-area').classList.add('change-pin-content-area');
256ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      var title = SimUnlock.localStrings_.getString('changePinTitle');
257ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      $('choose-pin-title').textContent = title;
258ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    } else {
259ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      $('choose-pin-content-area').classList.remove('change-pin-content-area');
260ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      $('choose-pin-content-area').classList.add('choose-pin-content-area');
261ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      var pinMessage = SimUnlock.localStrings_.getString('choosePinMessage');
262ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      $('choose-pin-msg').classList.remove('error');
263ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      $('choose-pin-msg').textContent = pinMessage;
264ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      var title = SimUnlock.localStrings_.getString('choosePinTitle');
265ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      $('choose-pin-title').textContent = title;
266ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    }
267ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    $('old-pin-label').hidden = !changePin;
268ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    $('old-pin-input-area').hidden = !changePin;
269ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  };
270ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
271ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  SimUnlock.newPinEntered = function(newPin, newPin2) {
272ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    SimUnlock.getInstance().newPinEntered_(newPin, newPin2);
273ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  };
274ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
275ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  SimUnlock.pukEntered = function(pukValue) {
276ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    SimUnlock.getInstance().pukEntered_(pukValue);
277ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  };
278ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
279ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  SimUnlock.simStateChanged = function(simInfo) {
280ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    SimUnlock.getInstance().updateSimStatus_(simInfo);
281ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  };
282ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
283ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  // Export
284ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  return {
285ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    SimUnlock: SimUnlock
286ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  };
287ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
288ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen});
289