<div ng-controller="FireController as fire">

  <form class="form-horizontal" role="form">
    <div class="form-group">
      <div class="col-md-12">
        <div class="checkbox">
          <label class="control-label">
            <input type="checkbox"
                   ng-model="fire.complianceTempValue"
                   ng-click="fire.becomeCompliant(fire.complianceTempValue)"
                   ng-disabled="fire.complianceProblems !== null"
                   ng-checked="fire.compliantWithGOST()">
            <translate>Включить полное соответствие настроек требованиям ГОСТ Р 53325-2012</translate>
          </label>
          <div class="help-block" ng-show="fire.complianceProblems !== null">
            <p ng-if="fire.complianceProblems.noFireZones" class="text-danger" style="margin-bottom: 0" translate>
              Нет пожарных шлейфов
            </p>
            <p ng-if="fire.complianceProblems.conflictingOpenCollectors"
               ng-init="conflicts = fire.complianceProblems.conflictingOpenCollectors"
               class="text-danger" style="margin-bottom: 0">
              <span ng-if="conflicts.length == 1"
                    translate translate-params-name="fire.getOpenCollectorName(conflicts[0])">
                Выход «{[name]}» используется в «Автоматике»
              </span>
              <span ng-if="conflicts.length > 1"
                    translate translate-comment="(построение фразы вида 'Выходы «AA», «BB» и «CC» используются в «Автоматике»')">
                Выходы <span ng-repeat="num in conflicts">{[$middle ? ', ' : $last ? ' и ' : '']}«{[ fire.getOpenCollectorName(num) ]}»</span> используются в «Автоматике»
              </span>
            </p>
            <p ng-show="fire.complianceProblems.noFireModeResetCode" class="text-danger" style="margin-bottom:0" translate>
              Код для сброса обобщённого состояния «Пожар» не задан
            </p>
            <p ng-show="fire.complianceProblems.noFireIndicationTestCode" class="text-danger" style="margin-bottom:0" translate>
              Код для включения функции тестирования световой индикации,
              отображения информации и звуковой сигнализации не задан
            </p>
            <p ng-show="fire.complianceProblems.sirenOff" class="text-danger" style="margin-bottom: 0" translate>
              Сирена не подключена
            </p>
          </div>
        </div>
      </div>
    </div>
  </form>

  <hr>

  <form class="form-horizontal" role="form">
    <div class="form-group">
      <div class="col-md-8">
        <div class="checkbox">
          <label class="control-label">
            <input type="checkbox"
                   ng-model="fire.settings().check_keyboard_connection"
                   ng-true-value="1"
                   ng-false-value="0"
                   ng-disabled="fire.complianceTempValue">
            <translate>Включить контроль линии связи с СОТИ</translate>
          </label>
          <div class="help-block">
            <p translate>
              В качестве системы отображения текстовой информации должна выступать клавиатура К16‑LCD,
              адрес для которой должен быть установлен в значение 1.
            </p>
            <p translate>
              Для того чтобы установить адрес на клавиатуре К16‑LCD, необходимо
              нажать и удерживать кнопку <strong>1</strong> во время включения клавиатуры.
            </p>
          </div>
        </div>
      </div>
    </div>

    <div class="form-group">
      <div class="col-md-8">
        <div class="checkbox">
          <label class="control-label">
            <input type="checkbox"
                   ng-model="fire.indication.use_fire_oc"
                   ng-true-value="1"
                   ng-false-value="0"
                   ng-click="fire.indicationChanged()"
                   ng-disabled="!fire.fireOCAvailable() || fire.complianceTempValue">
            <translate>Задействовать выход «FIRE2» для передачи обобщённого сигнала «Пожар»</translate>
          </label>
          <div class="help-block" ng-show="!fire.fireOCAvailable()">
            <span class="text-danger" translate translate-params-name="'FIRE2'">
              Выход «{[name]}» используется в «Автоматике»
            </span>
          </div>
        </div>
      </div>
    </div>

    <div class="form-group">
      <div class="col-md-8">
        <div class="checkbox">
          <label class="control-label">
            <input type="checkbox"
                   ng-model="fire.indication.use_defect_oc"
                   ng-true-value="1"
                   ng-false-value="0"
                   ng-click="fire.indicationChanged()"
                   ng-disabled="!fire.defectOCAvailable() || fire.complianceTempValue">
            <translate>Задействовать выход «DEFECT2» для передачи обобщённого сигнала «Неисправность»</translate>
          </label>
          <div class="help-block" ng-show="!fire.defectOCAvailable()">
            <span class="text-danger" translate translate-params-name="'DEFECT2'">
              Выход «{[name]}» используется в «Автоматике»
            </span>
          </div>
        </div>
      </div>
    </div>

    <div class="form-group" ng-init="conflicts = fire.extIndicationModuleConflics()">
      <div class="col-md-8">
        <div class="checkbox">
          <label class="control-label">
            <input type="checkbox"
                   ng-model="fire.indication.ext_fire_indication_module_connected"
                   ng-true-value="1"
                   ng-false-value="0"
                   ng-click="fire.indicationChanged()"
                   ng-disabled="conflicts.length || fire.complianceTempValue">
            <translate>Задействовать БВИ «Пожар» для индикации состояния прибора</translate>
          </label>
          <div class="help-block" ng-show="conflicts.length">
            <span class="text-danger">
              <span ng-if="conflicts.length == 1"
                    translate translate-params-name="fire.getOpenCollectorName(conflicts[0])">
                Выход «{[name]}» используется в «Автоматике»
              </span>
              <span ng-if="conflicts.length > 1"
                    translate translate-comment="(построение фразы вида 'Выходы «AA», «BB» и «CC» используются в «Автоматике»')">
                Выходы <span ng-repeat="num in conflicts">{[$middle ? ', ' : $last ? ' и ' : '']}«{[ fire.getOpenCollectorName(num) ]}»</span> используются в «Автоматике»
              </span>
            </span>
          </div>
          <div class="help-block" translate>
            Для подключения БВИ «Пожар» используются дискретные выходы «LED_G», «LED_Y» и «DISABL»,
            расположенные на клеммной колодке «Индикация» в верхней части платы прибора.
          </div>
        </div>
      </div>
    </div>

    <div class="form-group">
      <div class="col-md-8">
        <div class="checkbox">
          <label class="control-label">
            <input type="checkbox"
                   ng-model="fire.settings().check_ext_fire_indication_module_faults"
                   ng-true-value="1"
                   ng-false-value="0"
                   ng-disabled="!fire.settings().ext_fire_indication_module_connected || fire.complianceTempValue">
            <translate>Включить контроль линии связи с БВИ «Пожар»</translate>
          </label>
        </div>
      </div>
    </div>

    <div class="form-group">
      <div class="col-md-8">
        <div class="checkbox">
          <label class="control-label">
            <input type="checkbox"
                   ng-model="fire.settings().fire_fault_siren_indication_enabled"
                   ng-disabled="!fire.isSirenOn() || fire.complianceTempValue"
                   ng-true-value="1"
                   ng-false-value="0">
            <translate>Включить индикацию неисправности с помощью сирены</translate>
          </label>
          <div class="help-block" ng-show="!fire.isSirenOn() && !fire.haveRielta()">
            <span class="text-danger" translate>
              Индикация неисправности с помощью сирены не может быть включена,
              так как сирена отключена в настройках прибора. Для включения
              сирены необходимо включить параметр «Сирена подключена», который
              находится на вкладке «Разное», в разделе «Сирена».
            </span>
          </div>
          <div class="help-block" ng-show="!fire.isSirenOn() && fire.haveRielta() &&
                                           !fire.disabledWirelessSirenZones().length">
            <span class="text-danger" translate>
              Индикация неисправности с помощью сирены не может быть включена,
              так как сирена отключена в настройках прибора. Для включения
              сирены необходимо включить параметр «Сирена подключена», который
              находится на вкладке «Разное», в разделе «Сирена».
              Кроме того, вместо проводной сирены можно подключить беспроводную.
            </span>
          </div>
          <div class="help-block" ng-show="!fire.isSirenOn() && fire.haveRielta() &&
                                           fire.disabledWirelessSirenZones().length">
            <span class="text-danger" translate>
              Индикация неисправности с помощью сирены не может быть включена,
              так как сирена выключена в настройках прибора. Для включения сирены
              необходимо перейти на вкладку «Беспроводные устройства» и включить
              шлейфы <span ng-repeat="zone_id in fire.disabledWirelessSirenZones()">
              №{[ zone_id + 1 ]},</span> соответствующие беспроводной сирене.
            </span>
          </div>
        </div>
      </div>
    </div>

    <div class="form-group">
      <div class="col-md-8">
        <div class="checkbox">
          <label class="control-label">
            <input type="checkbox"
                   ng-model="fire.settings().fire_state_auto_reset_enabled"
                   ng-disabled="fire.complianceTempValue"
                   ng-true-value="0"
                   ng-false-value="1">
            <translate>Запретить автоматический сброс обобщённого состояния «Пожар»</translate>
          </label>
        </div>
      </div>
    </div>

    <div class="form-group">
      <div class="col-md-8">
        <div class="checkbox">
          <label class="control-label">
            <input type="checkbox"
                   ng-model="fire.settings().fire_state_reset_with_tm_key_enabled"
                   ng-disabled="fire.complianceTempValue"
                   ng-true-value="0"
                   ng-false-value="1">
            <translate>Запретить сброс обобщённого состояния «Пожар» с помощью TM-ключа.</translate>
          </label>
          <div class="help-block" translate>
            Если разрешен сброс обобщённого состояния «Пожар» с помощью ТМ-ключа, то для этой цели
            может использоваться любой ТМ-ключ, с помощью которого разрешено взятие / снятие с охраны.
            Если прибор находится в состоянии «Пожар», то при считывании ТМ-ключа будет выполнен
            только сброс этого состояния, взятие / снятие выполняться не будет.
          </div>
        </div>
      </div>
    </div>

    <div class="form-group">
      <label class="col-md-6 control-label" translate>Интервал ожидания повторной тревоги</label>
      <div class="col-md-2">
        <select class="form-control"
                ng-model="fire.settings().fire_delay"
                convert-to-number
                defaultable>
          <option d-op value="60" translate>1 минута</option>
          <option d-op value="120" translate>2 минуты</option>
          <option d-op value="180" translate>3 минуты</option>
          <option d-op value="240" translate>4 минуты</option>
          <option d-op default value="300" translate>5 минут</option>
        </select>
      </div>
    </div>

  </form>

  <form class="form-horizontal" action="" role="form" guarded name="fire.codesForm">
    <div class="form-group" ng-class="fire.codesForm.resetCode.$invalid || fire.needFireResetCode()?'has-error':''">
      <div class="row">
        <label class="control-label col-md-6" translate>Код для сброса обобщённого состояния «Пожар»</label>
        <div class="col-md-2">
          <input keyboard-code class="form-control" type="text" name="resetCode"
                 ng-model="fire.codes.fireModeResetCode"
                 ng-model-options="{ updateOn: 'default blur', debounce: { default: 500, blur: 0 } }"
                 validate-using-function="{ func: fire.validateFireModeResetCode, key: 'valid-fire-mode-off-code'}"
                 ng-change="fire.revalidate(fire.codesForm.resetCode, fire.codesForm.testCode)"
                 ng-trim="false"
                 ng-disabled="fire.complianceTempValue">
        </div>
      </div>
      <div class="row" ng-show="fire.needFireResetCode()">
        <div class="col-md-5 col-md-offset-6 help-block" translate>
          В конфигурации прибора есть включенные пожарные шлейфы. Необходимо указать код для сброса обобщённого состояния «Пожар».
        </div>
      </div>
      <div class="row" ng-show="fire.codesForm.resetCode.$invalid">
        <div class="col-md-5 col-md-offset-6 help-block">
          <div ng-if="fire.codesForm.resetCode.$error.minlength" translate>
            Код должен состоять из {[ fire.codes.length ]} цифр и быть уникальным.
          </div>
          <div ng-if="fire.codesCoincidence.fireModeResetCode">
            <ng-switch on="fire.codesCoincidence.fireModeResetCode">
              <span ng-switch-when="userCode" translate>
                Код совпадает с кодом пользователя.
              </span>
              <span ng-switch-when="fireSirenOffCode" translate>
                Код совпадает с кодом отключения пожарной сирены.
              </span>
              <span ng-switch-when="fireIndicationTestCode" translate>
                Код совпадает с кодом включения функции тестирования световой индикации, отображения информации и звуковой сигнализации.
              </span>
            </ng-switch>
          </div>
        </div>
      </div>
    </div>

    <div class="form-group" ng-class="fire.codesForm.testCode.$invalid?'has-error':''">
      <div class="row">
        <!-- Т.к. Лейбл занимает две строки уберем дефолтный паддинг сверху (7px) и поднимем вверх на половину паддинга -->
        <label class="control-label col-md-6" style="padding-top: initial; margin-top: -3.5px;" translate>
          Код для включения функции тестирования световой индикации, отображения информации и звуковой сигнализации
        </label>
        <div class="col-md-2">
          <input keyboard-code class="form-control" name="testCode" type="text"
                 ng-model="fire.codes.fireIndicationTestCode"
                 ng-model-options="{ updateOn: 'default blur', debounce: { default: 500, blur: 0 } }"
                 validate-using-function="{ func: fire.validateFireIndicationTestCode, key: 'valid-fire-test-code'}"
                 ng-change="fire.revalidate(fire.codesForm.testCode, fire.codesForm.resetCode)"
                 ng-trim="false"
                 ng-disabled="fire.complianceTempValue">
        </div>
      </div>
      <div class="row" ng-show="fire.codesForm.testCode.$invalid">
        <div class="col-md-5 col-md-offset-6 help-block">
          <div ng-if="fire.codesForm.testCode.$error.minlength" translate>
            Код должен состоять из {[ fire.codes.length ]} цифр и быть уникальным.
          </div>
          <div ng-if="fire.codesCoincidence.fireIndicationTestCode">
            <ng-switch on="fire.codesCoincidence.fireIndicationTestCode">
              <span ng-switch-when="userCode" translate>
                Код совпадает с кодом пользователя.
              </span>
              <span ng-switch-when="fireSirenOffCode" translate>
                Код совпадает с кодом отключения пожарной сирены.
              </span>
              <span ng-switch-when="fireModeResetCode" translate>
                Код совпадает с кодом сброса обобщённого состояния «Пожар».
              </span>
            </ng-switch>
          </div>
        </div>
      </div>
    </div>
  </form>
</div>
