<?xml version="1.0"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->

<!-- $Id: ac.jx 156161 2005-03-04 15:23:21Z andreas $ -->
<jx:template
  xmlns:jx="http://apache.org/cocoon/templates/jx/1.0"
  xmlns:i18n="http://apache.org/cocoon/i18n/2.1"
  xmlns="http://www.w3.org/1999/xhtml"
  name="">
<jx:set var="area" value="${usecase.getParameter('document').getArea()}"/>
<form method="POST" name="form_ssl_${area}" id="form_ssl_${area}">
  <input type="hidden" name="lenya.usecase" value="${usecase.getName()}"/>
  <input type="hidden" name="lenya.continuation" value="${continuation.id}"/>
  <input type="hidden" name="lenya.submit" value="ok"/>
  <input type="hidden" name="change_ssl" value="true"/>
  <jx:set var="ssl" value="${usecase.getParameter('ssl')}"/>
  <jx:set var="ancestorSsl" value="${usecase.getParameter('ancestorSsl')}"/>
  <jx:choose>
    <jx:when test="${ssl.equals('true') || ancestorSsl.equals('true')}">
      <jx:choose>
        <jx:when test="${ancestorSsl.equals('true')}">
          <input type="checkbox" name="ssl" checked="checked" disabled="disabled">
            <i18n:text>SSL Encryption</i18n:text>
          </input>
        </jx:when>
        <jx:otherwise>
          <input type="checkbox" name="ssl" onchange="document.forms.form_ssl_${area}.submit()" checked="checked">
            <i18n:text>SSL Encryption</i18n:text>
          </input>
        </jx:otherwise>
      </jx:choose>
    </jx:when>
    <jx:otherwise>
      <jx:choose>
        <jx:when test="${ancestorSsl.equals('true')}">
          <input type="checkbox" name="ssl" disabled="disabled">
            <i18n:text>SSL Encryption</i18n:text>
          </input>
        </jx:when>
        <jx:otherwise>
          <input type="checkbox" name="ssl" onchange="document.forms.form_ssl_${area}.submit()">
            <i18n:text>SSL Encryption</i18n:text>
          </input>
        </jx:otherwise>
      </jx:choose>
    </jx:otherwise>
  </jx:choose>
</form>
</jx:template>