<?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: overview.jx 123960 2005-01-03 12:39:05Z andreas $ -->

<jx:template
  xmlns:jx="http://apache.org/cocoon/templates/jx/1.0"
  xmlns:page="http://apache.org/cocoon/lenya/cms-page/1.0" 
  xmlns:i18n="http://apache.org/cocoon/i18n/2.1"
  xmlns="http://www.w3.org/1999/xhtml"
  name="">
  
  <page:head>
    <jx:set var="pubId" value="${usecase.getParameter('document').getPublication().getId()}"/>
    <jx:set var="area" value="${usecase.getParameter('document').getArea()}"/>
    <jx:set var="language" value="${usecase.getParameter('document').getLanguage()}"/>
    <script src="/modules/sitetree/javascript/tree.js"/>
    <script src="/modules/sitetree/javascript/lenyatree.js"/>
    <script src="/modules/sitetree/javascript/navtree.js"/>
    <script src="/modules/sitemanagement/javascript/lenyaTabs.js"/>
  </page:head>
</jx:template>