Blame html/dbnavig.dsl

Packit Service 4c4772
;; $Id: dbnavig.dsl,v 1.3 2001/07/05 12:08:42 nwalsh Exp $
Packit Service 4c4772
;;
Packit Service 4c4772
;; This file is part of the Modular DocBook Stylesheet distribution.
Packit Service 4c4772
;; See ../README or http://nwalsh.com/docbook/dsssl/
Packit Service 4c4772
;;
Packit Service 4c4772
Packit Service 4c4772
;; The header of a chunk has this form:
Packit Service 4c4772
;;
Packit Service 4c4772
;; +-----------------------------------------+
Packit Service 4c4772
;; |               nav-banner                |
Packit Service 4c4772
;; +------------+---------------+------------|
Packit Service 4c4772
;; |  prevlink  |  nav-context  |  nextlink  |
Packit Service 4c4772
;; +-----------------------------------------+
Packit Service 4c4772
Packit Service 4c4772
(define (nav-banner? elemnode)
Packit Service 4c4772
  ;; This node has a banner if:
Packit Service 4c4772
  ;; 1. There's an inherited dbhtml PI value for "banner-text" and that
Packit Service 4c4772
  ;;    value is not the empty string, or
Packit Service 4c4772
  ;; 2. The element is not the root element
Packit Service 4c4772
  (let ((banner (inherited-dbhtml-value elemnode "banner-text")))
Packit Service 4c4772
    (or (and banner (not (string=? banner "")))
Packit Service 4c4772
	(not (node-list=? elemnode (sgml-root-element))))))
Packit Service 4c4772
Packit Service 4c4772
(define (nav-banner elemnode)
Packit Service 4c4772
  (let* ((rootelem       (sgml-root-element))
Packit Service 4c4772
	 (info           (info-element rootelem))
Packit Service 4c4772
	 (subtitle-child (select-elements (children rootelem)
Packit Service 4c4772
					  (normalize "subtitle")))
Packit Service 4c4772
	 (subtitle-info  (select-elements (children info)
Packit Service 4c4772
					  (normalize "subtitle")))
Packit Service 4c4772
	 (subtitle       (if (node-list-empty? subtitle-info)
Packit Service 4c4772
			     subtitle-child
Packit Service 4c4772
			     subtitle-info))
Packit Service 4c4772
	 (banner-text    (inherited-dbhtml-value elemnode "banner-text"))
Packit Service 4c4772
	 (banner-href    (inherited-dbhtml-value elemnode "banner-href"))
Packit Service 4c4772
	 (banner         (if (and banner-text (not (string=? banner-text "")))
Packit Service 4c4772
			     (literal banner-text)
Packit Service 4c4772
			     (make sequence
Packit Service 4c4772
			       (element-title-sosofo rootelem)
Packit Service 4c4772
			       (if (node-list-empty? subtitle)
Packit Service 4c4772
				   (empty-sosofo)
Packit Service 4c4772
				   (make sequence
Packit Service 4c4772
				     (literal ": ")
Packit Service 4c4772
				     (with-mode subtitle-mode
Packit Service 4c4772
				       (process-node-list subtitle))))))))
Packit Service 4c4772
    (make sequence
Packit Service 4c4772
      (if banner-href
Packit Service 4c4772
	  (make element gi: "A"
Packit Service 4c4772
		attributes: (list (list "HREF" banner-href))
Packit Service 4c4772
		banner)
Packit Service 4c4772
	  banner))))
Packit Service 4c4772
Packit Service 4c4772
(define (nav-context? elemnode)
Packit Service 4c4772
  ;; Print a context header if
Packit Service 4c4772
  ;; 1. There's an inherited dbhtml PI value for "context-text" and that
Packit Service 4c4772
  ;;    value is not the empty string, or
Packit Service 4c4772
  ;; 2. The chunk is a top level section and the parent component 
Packit Service 4c4772
  ;;    isn't the same as the root element (which appears in the nav-banner).
Packit Service 4c4772
  ;;
Packit Service 4c4772
  (let* ((context-text (inherited-dbhtml-value elemnode "context-text"))
Packit Service 4c4772
	 (rootelem     (sgml-root-element))
Packit Service 4c4772
	 (component    (ancestor-member elemnode
Packit Service 4c4772
					(append (book-element-list)
Packit Service 4c4772
						(division-element-list)
Packit Service 4c4772
						(component-element-list))))
Packit Service 4c4772
	 (gencontext   (and (or (equal? (gi elemnode) (normalize "sect1"))
Packit Service 4c4772
				(equal? (gi elemnode) (normalize "section")))
Packit Service 4c4772
			    (not (node-list=? component rootelem)))))
Packit Service 4c4772
    (or gencontext
Packit Service 4c4772
	(and context-text (not (string=? context-text ""))))))
Packit Service 4c4772
Packit Service 4c4772
(define (nav-context elemnode)
Packit Service 4c4772
  ;; Print the context string for elemnode.  If there's an inherited
Packit Service 4c4772
  ;; dbhtml value for 'context-text', use that.  Otherwise, use the
Packit Service 4c4772
  ;; title of the parent component...
Packit Service 4c4772
  (let* ((context-href  (inherited-dbhtml-value elemnode "context-href")))
Packit Service 4c4772
    (if (nav-context? elemnode)
Packit Service 4c4772
	(if context-href
Packit Service 4c4772
	    (make element gi: "A"
Packit Service 4c4772
		  attributes: (list (list "HREF" context-href))
Packit Service 4c4772
		  (nav-context-sosofo elemnode))
Packit Service 4c4772
	    (nav-context-sosofo elemnode))
Packit Service 4c4772
	(empty-sosofo))))
Packit Service 4c4772
Packit Service 4c4772
(define (nav-context-sosofo elemnode)
Packit Service 4c4772
  (let* ((component     (ancestor-member elemnode
Packit Service 4c4772
					 (append (book-element-list)
Packit Service 4c4772
						 (division-element-list)
Packit Service 4c4772
						 (component-element-list))))
Packit Service 4c4772
	 (context-text  (inherited-dbhtml-value elemnode "context-text")))
Packit Service 4c4772
    (if (and context-text (not (string=? context-text "")))
Packit Service 4c4772
	(literal context-text)
Packit Service 4c4772
	(if (equal? (element-label component) "")
Packit Service 4c4772
	    (make sequence
Packit Service 4c4772
	      (element-title-sosofo component))
Packit Service 4c4772
	    (make sequence
Packit Service 4c4772
	      ;; Special case.  This is a bit of a hack.
Packit Service 4c4772
	      ;; I need to revisit this aspect of 
Packit Service 4c4772
	      ;; appendixes. 
Packit Service 4c4772
	      (if (and (equal? (gi component) (normalize "appendix"))
Packit Service 4c4772
		       (or (equal? (gi elemnode) (normalize "sect1"))
Packit Service 4c4772
			   (equal? (gi elemnode) (normalize "section")))
Packit Service 4c4772
		       (equal? (gi (parent component)) (normalize "article")))
Packit Service 4c4772
		  (empty-sosofo)
Packit Service 4c4772
		  (literal (gentext-element-name-space (gi component))))
Packit Service 4c4772
	      (element-label-sosofo component)
Packit Service 4c4772
	      (literal (gentext-label-title-sep (gi component)))
Packit Service 4c4772
	      (element-title-sosofo component))))))
Packit Service 4c4772
Packit Service 4c4772
;; The footer of a chunk has this form:
Packit Service 4c4772
;;
Packit Service 4c4772
;; +----------------------------------------+
Packit Service 4c4772
;; |  prevlink  |   nav-home   |  nextlink  |
Packit Service 4c4772
;; +------------+--------------+------------|
Packit Service 4c4772
;; |  p. title  |    nav-up    |  n. title  |
Packit Service 4c4772
;; +-----------------------------------------+
Packit Service 4c4772
Packit Service 4c4772
(define (nav-home? elemnode)
Packit Service 4c4772
  (not (node-list=? elemnode (sgml-root-element))))
Packit Service 4c4772
Packit Service 4c4772
(define (nav-home elemnode)
Packit Service 4c4772
  (sgml-root-element))
Packit Service 4c4772
Packit Service 4c4772
(define (nav-home-link elemnode)
Packit Service 4c4772
  (let ((home      (nav-home elemnode))
Packit Service 4c4772
	(home-text (inherited-dbhtml-value elemnode "home-text")))
Packit Service 4c4772
    (if (node-list=? elemnode home)
Packit Service 4c4772
	(make entity-ref name: "nbsp")
Packit Service 4c4772
	(make element gi: "A"
Packit Service 4c4772
	      attributes: (list
Packit Service 4c4772
			   (list "HREF" 
Packit Service 4c4772
				 (href-to home))
Packit Service 4c4772
			   (list "ACCESSKEY" "H"))
Packit Service 4c4772
	      (if home-text
Packit Service 4c4772
		  (literal home-text)
Packit Service 4c4772
		  (gentext-nav-home home))))))
Packit Service 4c4772
Packit Service 4c4772
;; nav-up is displayed in the bottom center of the footer-navigation
Packit Service 4c4772
;; table.  The definition below will show "Up" for nested components
Packit Service 4c4772
;; (the component wrapping a section, the division wrapping a component
Packit Service 4c4772
;; etc.).  It can be abused for other things, such as an index...
Packit Service 4c4772
;;
Packit Service 4c4772
(define (nav-up? elemnode)
Packit Service 4c4772
  (let ((up      (parent elemnode))
Packit Service 4c4772
	(up-text (inherited-dbhtml-value elemnode "up-text")))
Packit Service 4c4772
    (if (and up-text (not (string=? up-text "")))
Packit Service 4c4772
	#t
Packit Service 4c4772
	(if (or (node-list-empty? up)
Packit Service 4c4772
		(node-list=? up (sgml-root-element))
Packit Service 4c4772
		(equal? (gi up) (normalize "bookinfo"))
Packit Service 4c4772
		(equal? (gi up) (normalize "docinfo"))
Packit Service 4c4772
		(equal? (gi up) (normalize "setinfo")))
Packit Service 4c4772
	    #f
Packit Service 4c4772
	    #t))))
Packit Service 4c4772
Packit Service 4c4772
(define (nav-up elemnode)
Packit Service 4c4772
  (let* ((up      (parent elemnode))
Packit Service 4c4772
	 (up-href (inherited-dbhtml-value elemnode "up-href"))
Packit Service 4c4772
	 (uplink? (not (or (node-list-empty? up)
Packit Service 4c4772
			   (node-list=? up (sgml-root-element)))))
Packit Service 4c4772
	 (href    (if up-href
Packit Service 4c4772
		      up-href
Packit Service 4c4772
		      (if uplink?
Packit Service 4c4772
			  (href-to up)
Packit Service 4c4772
			  #f))))
Packit Service 4c4772
    (if href
Packit Service 4c4772
	(make element gi: "A"
Packit Service 4c4772
	      attributes: (list
Packit Service 4c4772
			   (list "HREF" href)
Packit Service 4c4772
			   (list "ACCESSKEY" "U"))
Packit Service 4c4772
	      (nav-up-sosofo elemnode))
Packit Service 4c4772
	(nav-up-sosofo elemnode))))
Packit Service 4c4772
Packit Service 4c4772
(define (nav-up-sosofo elemnode)
Packit Service 4c4772
  (let* ((up      (parent elemnode))
Packit Service 4c4772
	 (up-text (inherited-dbhtml-value elemnode "up-text")))
Packit Service 4c4772
    (if (and up-text (not (string=? up-text "")))
Packit Service 4c4772
	(literal up-text)
Packit Service 4c4772
	(if (or (node-list-empty? up)
Packit Service 4c4772
		(node-list=? up (sgml-root-element)))
Packit Service 4c4772
	    (make entity-ref name: "nbsp")
Packit Service 4c4772
	    (gentext-nav-up up)))))
Packit Service 4c4772
Packit Service 4c4772
(define (nav-footer elemnode)
Packit Service 4c4772
  (empty-sosofo))
Packit Service 4c4772
Packit Service 4c4772
;; ======================================================================
Packit Service 4c4772
Packit Service 4c4772
(define (header-navigation nd #!optional (navlist '()))
Packit Service 4c4772
  (let* ((prev  (if (null? navlist)
Packit Service 4c4772
		    (prev-chunk-element nd)
Packit Service 4c4772
		    (list-ref navlist 0)))
Packit Service 4c4772
	 (next  (if (null? navlist)
Packit Service 4c4772
		    (next-chunk-element nd)
Packit Service 4c4772
		    (list-ref navlist 1)))
Packit Service 4c4772
	 (prevm (if (null? navlist)
Packit Service 4c4772
		    (prev-major-component-chunk-element nd)
Packit Service 4c4772
		    (list-ref navlist 2)))
Packit Service 4c4772
	 (nextm (if (null? navlist)
Packit Service 4c4772
		    (next-major-component-chunk-element nd)
Packit Service 4c4772
		    (list-ref navlist 3)))
Packit Service 4c4772
	 (rnavlist (list prev next prevm nextm)))
Packit Service 4c4772
    (make sequence
Packit Service 4c4772
      ($html-body-start$)
Packit Service 4c4772
      (if %header-navigation%
Packit Service 4c4772
	  (cond 
Packit Service 4c4772
	   ((equal? (gi nd) (normalize "set"))
Packit Service 4c4772
	    (set-header-navigation nd rnavlist))
Packit Service 4c4772
	   ((equal? (gi nd) (normalize "book"))
Packit Service 4c4772
	    (book-header-navigation nd rnavlist))
Packit Service 4c4772
	   ((equal? (gi nd) (normalize "part"))
Packit Service 4c4772
	    (part-header-navigation nd rnavlist))
Packit Service 4c4772
	   ((equal? (gi nd) (normalize "preface"))
Packit Service 4c4772
	    (preface-header-navigation nd rnavlist))
Packit Service 4c4772
	   ((equal? (gi nd) (normalize "chapter"))
Packit Service 4c4772
	    (chapter-header-navigation nd rnavlist))
Packit Service 4c4772
	   ((equal? (gi nd) (normalize "article"))
Packit Service 4c4772
	    (article-header-navigation nd rnavlist))
Packit Service 4c4772
	   ((equal? (gi nd) (normalize "appendix"))
Packit Service 4c4772
	    (appendix-header-navigation nd rnavlist))
Packit Service 4c4772
	   ((equal? (gi nd) (normalize "reference"))
Packit Service 4c4772
	    (reference-header-navigation nd rnavlist))
Packit Service 4c4772
	   ((equal? (gi nd) (normalize "refentry"))
Packit Service 4c4772
	    (refentry-header-navigation nd rnavlist))
Packit Service 4c4772
	   ((equal? (gi nd) (normalize "glossary"))
Packit Service 4c4772
	    (glossary-header-navigation nd rnavlist))
Packit Service 4c4772
	   ((equal? (gi nd) (normalize "bibliography"))
Packit Service 4c4772
	    (bibliography-header-navigation nd rnavlist))
Packit Service 4c4772
	   ((equal? (gi nd) (normalize "index"))
Packit Service 4c4772
	    (index-header-navigation nd rnavlist))
Packit Service 4c4772
	   ;; LegalNotice only happens when %generate-legalnotice-link% is #t
Packit Service 4c4772
	   ((equal? (gi nd) (normalize "legalnotice"))
Packit Service 4c4772
	    (default-header-navigation nd
Packit Service 4c4772
	      (empty-node-list) (empty-node-list)
Packit Service 4c4772
	      (empty-node-list) (empty-node-list)))
Packit Service 4c4772
	   ((member (gi nd) (section-element-list))
Packit Service 4c4772
	    (section-header-navigation nd rnavlist))
Packit Service 4c4772
	   (else (default-header-navigation nd prev next prevm nextm)))
Packit Service 4c4772
	  (empty-sosofo))
Packit Service 4c4772
      ($user-header-navigation$ prev next prevm nextm)
Packit Service 4c4772
      ($html-body-content-start$))))
Packit Service 4c4772
Packit Service 4c4772
(define (footer-navigation nd #!optional (navlist '()))
Packit Service 4c4772
  (let* ((prev  (if (null? navlist)
Packit Service 4c4772
		    (prev-chunk-element nd)
Packit Service 4c4772
		    (list-ref navlist 0)))
Packit Service 4c4772
	 (next  (if (null? navlist)
Packit Service 4c4772
		    (next-chunk-element nd)
Packit Service 4c4772
		    (list-ref navlist 1)))
Packit Service 4c4772
	 (prevm (if (null? navlist)
Packit Service 4c4772
		    (prev-major-component-chunk-element nd)
Packit Service 4c4772
		    (list-ref navlist 2)))
Packit Service 4c4772
	 (nextm (if (null? navlist)
Packit Service 4c4772
		    (next-major-component-chunk-element nd)
Packit Service 4c4772
		    (list-ref navlist 3)))
Packit Service 4c4772
	 (rnavlist (list prev next prevm nextm)))
Packit Service 4c4772
    (make sequence
Packit Service 4c4772
      (make-endnotes)
Packit Service 4c4772
      ($html-body-content-end$)
Packit Service 4c4772
      ($user-footer-navigation$ prev next prevm nextm)
Packit Service 4c4772
      (if %footer-navigation%
Packit Service 4c4772
	  (cond 
Packit Service 4c4772
	   ((equal? (gi nd) (normalize "set"))          
Packit Service 4c4772
	    (set-footer-navigation nd rnavlist))
Packit Service 4c4772
	   ((equal? (gi nd) (normalize "book"))
Packit Service 4c4772
	    (book-footer-navigation nd rnavlist))
Packit Service 4c4772
	   ((equal? (gi nd) (normalize "part"))
Packit Service 4c4772
	    (part-footer-navigation nd rnavlist))
Packit Service 4c4772
	   ((equal? (gi nd) (normalize "preface"))
Packit Service 4c4772
	    (preface-footer-navigation nd rnavlist))
Packit Service 4c4772
	   ((equal? (gi nd) (normalize "chapter"))
Packit Service 4c4772
	    (chapter-footer-navigation nd rnavlist))
Packit Service 4c4772
	   ((equal? (gi nd) (normalize "article"))
Packit Service 4c4772
	    (article-footer-navigation nd rnavlist))
Packit Service 4c4772
	   ((equal? (gi nd) (normalize "appendix"))
Packit Service 4c4772
	    (appendix-footer-navigation nd rnavlist))
Packit Service 4c4772
	   ((equal? (gi nd) (normalize "reference"))
Packit Service 4c4772
	    (reference-footer-navigation nd rnavlist))
Packit Service 4c4772
	   ((equal? (gi nd) (normalize "refentry"))
Packit Service 4c4772
	    (refentry-footer-navigation nd rnavlist))
Packit Service 4c4772
	   ((equal? (gi nd) (normalize "glossary"))
Packit Service 4c4772
	    (glossary-footer-navigation nd rnavlist))
Packit Service 4c4772
	   ((equal? (gi nd) (normalize "bibliography"))
Packit Service 4c4772
	    (bibliography-footer-navigation nd rnavlist))
Packit Service 4c4772
	   ((equal? (gi nd) (normalize "index"))
Packit Service 4c4772
	    (index-footer-navigation nd rnavlist))
Packit Service 4c4772
	   ;; LegalNotice only happens when %generate-legalnotice-link% is #t
Packit Service 4c4772
	   ((equal? (gi nd) (normalize "legalnotice"))  
Packit Service 4c4772
	    (default-footer-navigation nd
Packit Service 4c4772
	      (empty-node-list) (empty-node-list)
Packit Service 4c4772
	      (empty-node-list) (empty-node-list)))
Packit Service 4c4772
	   ((member (gi nd) (section-element-list))
Packit Service 4c4772
	    (section-footer-navigation nd rnavlist))
Packit Service 4c4772
	   (else (default-footer-navigation nd prev next prevm nextm)))
Packit Service 4c4772
	  (empty-sosofo))
Packit Service 4c4772
      (nav-footer nd)
Packit Service 4c4772
      ($html-body-end$))))
Packit Service 4c4772
Packit Service 4c4772
(define (set-header-navigation elemnode #!optional (navlist '()))
Packit Service 4c4772
  (empty-sosofo))
Packit Service 4c4772
Packit Service 4c4772
(define (book-header-navigation elemnode #!optional (navlist '()))
Packit Service 4c4772
  (empty-sosofo))
Packit Service 4c4772
Packit Service 4c4772
(define (part-header-navigation elemnode #!optional (navlist '()))
Packit Service 4c4772
  (let* ((prev  (if (null? navlist)
Packit Service 4c4772
		    (prev-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 0)))
Packit Service 4c4772
	 (next  (if (null? navlist)
Packit Service 4c4772
		    (next-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 1)))
Packit Service 4c4772
	 (prevsib (if (null? navlist)
Packit Service 4c4772
		    (prev-major-component-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 2)))
Packit Service 4c4772
	 (nextsib (if (null? navlist)
Packit Service 4c4772
		    (next-major-component-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 3))))
Packit Service 4c4772
    (default-header-navigation elemnode prev next prevsib nextsib)))
Packit Service 4c4772
Packit Service 4c4772
(define (preface-header-navigation elemnode #!optional (navlist '()))
Packit Service 4c4772
  (let* ((prev  (if (null? navlist)
Packit Service 4c4772
		    (prev-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 0)))
Packit Service 4c4772
	 (next  (if (null? navlist)
Packit Service 4c4772
		    (next-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 1)))
Packit Service 4c4772
	 (prevsib (if (null? navlist)
Packit Service 4c4772
		    (prev-major-component-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 2)))
Packit Service 4c4772
	 (nextsib (if (null? navlist)
Packit Service 4c4772
		    (next-major-component-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 3))))
Packit Service 4c4772
    (default-header-navigation elemnode prev next prevsib nextsib)))
Packit Service 4c4772
Packit Service 4c4772
(define (chapter-header-navigation elemnode #!optional (navlist '()))
Packit Service 4c4772
  (let* ((prev  (if (null? navlist)
Packit Service 4c4772
		    (prev-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 0)))
Packit Service 4c4772
	 (next  (if (null? navlist)
Packit Service 4c4772
		    (next-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 1)))
Packit Service 4c4772
	 (prevsib (if (null? navlist)
Packit Service 4c4772
		    (prev-major-component-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 2)))
Packit Service 4c4772
	 (nextsib (if (null? navlist)
Packit Service 4c4772
		    (next-major-component-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 3))))
Packit Service 4c4772
    (default-header-navigation elemnode prev next prevsib nextsib)))
Packit Service 4c4772
Packit Service 4c4772
(define (appendix-header-navigation elemnode #!optional (navlist '()))
Packit Service 4c4772
  (let* ((prev  (if (null? navlist)
Packit Service 4c4772
		    (prev-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 0)))
Packit Service 4c4772
	 (next  (if (null? navlist)
Packit Service 4c4772
		    (next-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 1)))
Packit Service 4c4772
	 (prevsib (if (null? navlist)
Packit Service 4c4772
		    (prev-major-component-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 2)))
Packit Service 4c4772
	 (nextsib (if (null? navlist)
Packit Service 4c4772
		    (next-major-component-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 3))))
Packit Service 4c4772
    (default-header-navigation elemnode prev next prevsib nextsib)))
Packit Service 4c4772
Packit Service 4c4772
(define (article-header-navigation elemnode #!optional (navlist '()))
Packit Service 4c4772
  (let* ((prev  (if (null? navlist)
Packit Service 4c4772
		    (prev-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 0)))
Packit Service 4c4772
	 (next  (if (null? navlist)
Packit Service 4c4772
		    (next-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 1)))
Packit Service 4c4772
	 (prevsib (if (null? navlist)
Packit Service 4c4772
		    (prev-major-component-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 2)))
Packit Service 4c4772
	 (nextsib (if (null? navlist)
Packit Service 4c4772
		    (next-major-component-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 3))))
Packit Service 4c4772
    (if (node-list=? elemnode (sgml-root-element))
Packit Service 4c4772
	(empty-sosofo)
Packit Service 4c4772
	(default-header-navigation elemnode prev next prevsib nextsib))))
Packit Service 4c4772
Packit Service 4c4772
(define (glossary-header-navigation elemnode #!optional (navlist '()))
Packit Service 4c4772
  (let* ((prev  (if (null? navlist)
Packit Service 4c4772
		    (prev-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 0)))
Packit Service 4c4772
	 (next  (if (null? navlist)
Packit Service 4c4772
		    (next-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 1)))
Packit Service 4c4772
	 (prevsib (if (null? navlist)
Packit Service 4c4772
		    (prev-major-component-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 2)))
Packit Service 4c4772
	 (nextsib (if (null? navlist)
Packit Service 4c4772
		    (next-major-component-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 3))))
Packit Service 4c4772
    (default-header-navigation elemnode prev next prevsib nextsib)))
Packit Service 4c4772
Packit Service 4c4772
(define (bibliography-header-navigation elemnode #!optional (navlist '()))
Packit Service 4c4772
  (let* ((prev  (if (null? navlist)
Packit Service 4c4772
		    (prev-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 0)))
Packit Service 4c4772
	 (next  (if (null? navlist)
Packit Service 4c4772
		    (next-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 1)))
Packit Service 4c4772
	 (prevsib (if (null? navlist)
Packit Service 4c4772
		    (prev-major-component-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 2)))
Packit Service 4c4772
	 (nextsib (if (null? navlist)
Packit Service 4c4772
		    (next-major-component-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 3))))
Packit Service 4c4772
    (default-header-navigation elemnode prev next prevsib nextsib)))
Packit Service 4c4772
Packit Service 4c4772
(define (index-header-navigation elemnode #!optional (navlist '()))
Packit Service 4c4772
  (let* ((prev  (if (null? navlist)
Packit Service 4c4772
		    (prev-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 0)))
Packit Service 4c4772
	 (next  (if (null? navlist)
Packit Service 4c4772
		    (next-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 1)))
Packit Service 4c4772
	 (prevsib (if (null? navlist)
Packit Service 4c4772
		    (prev-major-component-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 2)))
Packit Service 4c4772
	 (nextsib (if (null? navlist)
Packit Service 4c4772
		    (next-major-component-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 3))))
Packit Service 4c4772
    (default-header-navigation elemnode prev next prevsib nextsib)))
Packit Service 4c4772
Packit Service 4c4772
(define (reference-header-navigation elemnode #!optional (navlist '()))
Packit Service 4c4772
  (let* ((prev  (if (null? navlist)
Packit Service 4c4772
		    (prev-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 0)))
Packit Service 4c4772
	 (next  (if (null? navlist)
Packit Service 4c4772
		    (next-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 1)))
Packit Service 4c4772
	 (prevsib (if (null? navlist)
Packit Service 4c4772
		    (prev-major-component-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 2)))
Packit Service 4c4772
	 (nextsib (if (null? navlist)
Packit Service 4c4772
		    (next-major-component-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 3))))
Packit Service 4c4772
    (default-header-navigation elemnode prev next prevsib nextsib)))
Packit Service 4c4772
Packit Service 4c4772
(define (refentry-header-navigation elemnode #!optional (navlist '()))
Packit Service 4c4772
  (let* ((prev  (if (null? navlist)
Packit Service 4c4772
		    (prev-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 0)))
Packit Service 4c4772
	 (next  (if (null? navlist)
Packit Service 4c4772
		    (next-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 1)))
Packit Service 4c4772
	 (prevsib (if (null? navlist)
Packit Service 4c4772
		    (prev-major-component-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 2)))
Packit Service 4c4772
	 (nextsib (if (null? navlist)
Packit Service 4c4772
		    (next-major-component-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 3))))
Packit Service 4c4772
    (default-header-navigation elemnode prev next prevsib nextsib)))
Packit Service 4c4772
Packit Service 4c4772
(define (section-header-navigation elemnode #!optional (navlist '()))
Packit Service 4c4772
  (let* ((prev  (if (null? navlist)
Packit Service 4c4772
		    (prev-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 0)))
Packit Service 4c4772
	 (next  (if (null? navlist)
Packit Service 4c4772
		    (next-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 1)))
Packit Service 4c4772
	 (prevsib (if (null? navlist)
Packit Service 4c4772
		    (prev-major-component-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 2)))
Packit Service 4c4772
	 (nextsib (if (null? navlist)
Packit Service 4c4772
		    (next-major-component-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 3))))
Packit Service 4c4772
    (default-header-navigation elemnode prev next prevsib nextsib)))
Packit Service 4c4772
Packit Service 4c4772
(define (set-footer-navigation elemnode #!optional (navlist '()))
Packit Service 4c4772
  (let* ((prev  (if (null? navlist)
Packit Service 4c4772
		    (prev-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 0)))
Packit Service 4c4772
	 (next  (if (null? navlist)
Packit Service 4c4772
		    (next-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 1)))
Packit Service 4c4772
	 (prevsib (if (null? navlist)
Packit Service 4c4772
		    (prev-major-component-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 2)))
Packit Service 4c4772
	 (nextsib (if (null? navlist)
Packit Service 4c4772
		    (next-major-component-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 3))))
Packit Service 4c4772
    (default-footer-navigation elemnode prev next prevsib nextsib)))
Packit Service 4c4772
Packit Service 4c4772
(define (book-footer-navigation elemnode #!optional (navlist '()))
Packit Service 4c4772
  (let* ((prev  (if (null? navlist)
Packit Service 4c4772
		    (prev-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 0)))
Packit Service 4c4772
	 (next  (if (null? navlist)
Packit Service 4c4772
		    (next-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 1)))
Packit Service 4c4772
	 (prevsib (if (null? navlist)
Packit Service 4c4772
		    (prev-major-component-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 2)))
Packit Service 4c4772
	 (nextsib (if (null? navlist)
Packit Service 4c4772
		    (next-major-component-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 3))))
Packit Service 4c4772
    (default-footer-navigation elemnode prev next prevsib nextsib)))
Packit Service 4c4772
Packit Service 4c4772
(define (part-footer-navigation elemnode #!optional (navlist '()))
Packit Service 4c4772
  (let* ((prev  (if (null? navlist)
Packit Service 4c4772
		    (prev-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 0)))
Packit Service 4c4772
	 (next  (if (null? navlist)
Packit Service 4c4772
		    (next-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 1)))
Packit Service 4c4772
	 (prevsib (if (null? navlist)
Packit Service 4c4772
		    (prev-major-component-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 2)))
Packit Service 4c4772
	 (nextsib (if (null? navlist)
Packit Service 4c4772
		    (next-major-component-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 3))))
Packit Service 4c4772
    (default-footer-navigation elemnode prev next prevsib nextsib)))
Packit Service 4c4772
Packit Service 4c4772
(define (preface-footer-navigation elemnode #!optional (navlist '()))
Packit Service 4c4772
  (let* ((prev  (if (null? navlist)
Packit Service 4c4772
		    (prev-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 0)))
Packit Service 4c4772
	 (next  (if (null? navlist)
Packit Service 4c4772
		    (next-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 1)))
Packit Service 4c4772
	 (prevsib (if (null? navlist)
Packit Service 4c4772
		    (prev-major-component-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 2)))
Packit Service 4c4772
	 (nextsib (if (null? navlist)
Packit Service 4c4772
		    (next-major-component-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 3))))
Packit Service 4c4772
    (default-footer-navigation elemnode prev next prevsib nextsib)))
Packit Service 4c4772
Packit Service 4c4772
(define (chapter-footer-navigation elemnode #!optional (navlist '()))
Packit Service 4c4772
  (let* ((prev  (if (null? navlist)
Packit Service 4c4772
		    (prev-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 0)))
Packit Service 4c4772
	 (next  (if (null? navlist)
Packit Service 4c4772
		    (next-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 1)))
Packit Service 4c4772
	 (prevsib (if (null? navlist)
Packit Service 4c4772
		    (prev-major-component-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 2)))
Packit Service 4c4772
	 (nextsib (if (null? navlist)
Packit Service 4c4772
		    (next-major-component-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 3))))
Packit Service 4c4772
    (default-footer-navigation elemnode prev next prevsib nextsib)))
Packit Service 4c4772
Packit Service 4c4772
(define (appendix-footer-navigation elemnode #!optional (navlist '()))
Packit Service 4c4772
  (let* ((prev  (if (null? navlist)
Packit Service 4c4772
		    (prev-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 0)))
Packit Service 4c4772
	 (next  (if (null? navlist)
Packit Service 4c4772
		    (next-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 1)))
Packit Service 4c4772
	 (prevsib (if (null? navlist)
Packit Service 4c4772
		    (prev-major-component-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 2)))
Packit Service 4c4772
	 (nextsib (if (null? navlist)
Packit Service 4c4772
		    (next-major-component-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 3))))
Packit Service 4c4772
    (default-footer-navigation elemnode prev next prevsib nextsib)))
Packit Service 4c4772
Packit Service 4c4772
(define (article-footer-navigation elemnode #!optional (navlist '()))
Packit Service 4c4772
  (let* ((prev  (if (null? navlist)
Packit Service 4c4772
		    (prev-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 0)))
Packit Service 4c4772
	 (next  (if (null? navlist)
Packit Service 4c4772
		    (next-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 1)))
Packit Service 4c4772
	 (prevsib (if (null? navlist)
Packit Service 4c4772
		    (prev-major-component-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 2)))
Packit Service 4c4772
	 (nextsib (if (null? navlist)
Packit Service 4c4772
		    (next-major-component-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 3))))
Packit Service 4c4772
    (default-footer-navigation elemnode prev next prevsib nextsib)))
Packit Service 4c4772
Packit Service 4c4772
(define (glossary-footer-navigation elemnode #!optional (navlist '()))
Packit Service 4c4772
  (let* ((prev  (if (null? navlist)
Packit Service 4c4772
		    (prev-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 0)))
Packit Service 4c4772
	 (next  (if (null? navlist)
Packit Service 4c4772
		    (next-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 1)))
Packit Service 4c4772
	 (prevsib (if (null? navlist)
Packit Service 4c4772
		    (prev-major-component-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 2)))
Packit Service 4c4772
	 (nextsib (if (null? navlist)
Packit Service 4c4772
		    (next-major-component-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 3))))
Packit Service 4c4772
    (default-footer-navigation elemnode prev next prevsib nextsib)))
Packit Service 4c4772
Packit Service 4c4772
(define (bibliography-footer-navigation elemnode #!optional (navlist '()))
Packit Service 4c4772
  (let* ((prev  (if (null? navlist)
Packit Service 4c4772
		    (prev-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 0)))
Packit Service 4c4772
	 (next  (if (null? navlist)
Packit Service 4c4772
		    (next-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 1)))
Packit Service 4c4772
	 (prevsib (if (null? navlist)
Packit Service 4c4772
		    (prev-major-component-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 2)))
Packit Service 4c4772
	 (nextsib (if (null? navlist)
Packit Service 4c4772
		    (next-major-component-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 3))))
Packit Service 4c4772
    (default-footer-navigation elemnode prev next prevsib nextsib)))
Packit Service 4c4772
Packit Service 4c4772
(define (index-footer-navigation elemnode #!optional (navlist '()))
Packit Service 4c4772
  (let* ((prev  (if (null? navlist)
Packit Service 4c4772
		    (prev-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 0)))
Packit Service 4c4772
	 (next  (if (null? navlist)
Packit Service 4c4772
		    (next-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 1)))
Packit Service 4c4772
	 (prevsib (if (null? navlist)
Packit Service 4c4772
		    (prev-major-component-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 2)))
Packit Service 4c4772
	 (nextsib (if (null? navlist)
Packit Service 4c4772
		    (next-major-component-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 3))))
Packit Service 4c4772
    (default-footer-navigation elemnode prev next prevsib nextsib)))
Packit Service 4c4772
Packit Service 4c4772
(define (reference-footer-navigation elemnode #!optional (navlist '()))
Packit Service 4c4772
  (let* ((prev  (if (null? navlist)
Packit Service 4c4772
		    (prev-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 0)))
Packit Service 4c4772
	 (next  (if (null? navlist)
Packit Service 4c4772
		    (next-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 1)))
Packit Service 4c4772
	 (prevsib (if (null? navlist)
Packit Service 4c4772
		    (prev-major-component-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 2)))
Packit Service 4c4772
	 (nextsib (if (null? navlist)
Packit Service 4c4772
		    (next-major-component-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 3))))
Packit Service 4c4772
    (default-footer-navigation elemnode prev next prevsib nextsib)))
Packit Service 4c4772
Packit Service 4c4772
(define (refentry-footer-navigation elemnode #!optional (navlist '()))
Packit Service 4c4772
  (let* ((prev  (if (null? navlist)
Packit Service 4c4772
		    (prev-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 0)))
Packit Service 4c4772
	 (next  (if (null? navlist)
Packit Service 4c4772
		    (next-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 1)))
Packit Service 4c4772
	 (prevsib (if (null? navlist)
Packit Service 4c4772
		    (prev-major-component-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 2)))
Packit Service 4c4772
	 (nextsib (if (null? navlist)
Packit Service 4c4772
		    (next-major-component-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 3))))
Packit Service 4c4772
    (default-footer-navigation elemnode prev next prevsib nextsib)))
Packit Service 4c4772
Packit Service 4c4772
(define (section-footer-navigation elemnode #!optional (navlist '()))
Packit Service 4c4772
  (let* ((prev  (if (null? navlist)
Packit Service 4c4772
		    (prev-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 0)))
Packit Service 4c4772
	 (next  (if (null? navlist)
Packit Service 4c4772
		    (next-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 1)))
Packit Service 4c4772
	 (prevsib (if (null? navlist)
Packit Service 4c4772
		    (prev-major-component-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 2)))
Packit Service 4c4772
	 (nextsib (if (null? navlist)
Packit Service 4c4772
		    (next-major-component-chunk-element elemnode)
Packit Service 4c4772
		    (list-ref navlist 3))))
Packit Service 4c4772
    (default-footer-navigation elemnode prev next prevsib nextsib)))
Packit Service 4c4772
Packit Service 4c4772
;; ----------------------------------------------------------------------
Packit Service 4c4772
Packit Service 4c4772
(define (default-header-nav-tbl-ff elemnode prev next prevsib nextsib)
Packit Service 4c4772
  (let* ((r1? (nav-banner? elemnode))
Packit Service 4c4772
	 (r1-sosofo (make element gi: "TR"
Packit Service 4c4772
			  (make element gi: "TH"
Packit Service 4c4772
				attributes: (list
Packit Service 4c4772
					     (list "COLSPAN" "5")
Packit Service 4c4772
					     (list "ALIGN" "center")
Packit Service 4c4772
					     (list "VALIGN" "bottom"))
Packit Service 4c4772
				(nav-banner elemnode))))
Packit Service 4c4772
	 (r2? (or (not (node-list-empty? prev))
Packit Service 4c4772
		  (not (node-list-empty? next))
Packit Service 4c4772
		  (not (node-list-empty? prevsib))
Packit Service 4c4772
		  (not (node-list-empty? nextsib))
Packit Service 4c4772
		  (nav-context? elemnode)))
Packit Service 4c4772
	 (r2-sosofo (make element gi: "TR"
Packit Service 4c4772
			  (make element gi: "TD"
Packit Service 4c4772
				attributes: (list
Packit Service 4c4772
					     (list "WIDTH" "10%")
Packit Service 4c4772
					     (list "ALIGN" "left")
Packit Service 4c4772
					     (list "VALIGN" "top"))
Packit Service 4c4772
				(if (node-list-empty? prev)
Packit Service 4c4772
				    (make entity-ref name: "nbsp")
Packit Service 4c4772
				    (make element gi: "A"
Packit Service 4c4772
					  attributes: (list
Packit Service 4c4772
						       (list "HREF"
Packit Service 4c4772
							     (href-to
Packit Service 4c4772
							      prev))
Packit Service 4c4772
						       (list "ACCESSKEY"
Packit Service 4c4772
							     "P"))
Packit Service 4c4772
					  (gentext-nav-prev prev))))
Packit Service 4c4772
			  (make element gi: "TD"
Packit Service 4c4772
				attributes: (list
Packit Service 4c4772
					     (list "WIDTH" "10%")
Packit Service 4c4772
					     (list "ALIGN" "left")
Packit Service 4c4772
					     (list "VALIGN" "top"))
Packit Service 4c4772
				(if (node-list-empty? prevsib)
Packit Service 4c4772
				    (make entity-ref name: "nbsp")
Packit Service 4c4772
				    (make element gi: "A"
Packit Service 4c4772
					  attributes: (list
Packit Service 4c4772
						       (list "HREF"
Packit Service 4c4772
							     (href-to
Packit Service 4c4772
							      prevsib)))
Packit Service 4c4772
					  (gentext-nav-prev-sibling prevsib))))
Packit Service 4c4772
			  (make element gi: "TD"
Packit Service 4c4772
				attributes: (list
Packit Service 4c4772
					     (list "WIDTH" "60%")
Packit Service 4c4772
					     (list "ALIGN" "center")
Packit Service 4c4772
					     (list "VALIGN" "bottom"))
Packit Service 4c4772
				(nav-context elemnode))
Packit Service 4c4772
			  (make element gi: "TD"
Packit Service 4c4772
				attributes: (list
Packit Service 4c4772
					     (list "WIDTH" "10%")
Packit Service 4c4772
					     (list "ALIGN" "right")
Packit Service 4c4772
					     (list "VALIGN" "top"))
Packit Service 4c4772
				(if (node-list-empty? nextsib)
Packit Service 4c4772
				    (make entity-ref name: "nbsp")
Packit Service 4c4772
				    (make element gi: "A"
Packit Service 4c4772
					  attributes: (list
Packit Service 4c4772
						       (list "HREF" 
Packit Service 4c4772
							     (href-to
Packit Service 4c4772
							      nextsib)))
Packit Service 4c4772
					  (gentext-nav-next-sibling nextsib))))
Packit Service 4c4772
			  (make element gi: "TD"
Packit Service 4c4772
				attributes: (list
Packit Service 4c4772
					     (list "WIDTH" "10%")
Packit Service 4c4772
					     (list "ALIGN" "right")
Packit Service 4c4772
					     (list "VALIGN" "top"))
Packit Service 4c4772
				(if (node-list-empty? next)
Packit Service 4c4772
				    (make entity-ref name: "nbsp")
Packit Service 4c4772
				    (make element gi: "A"
Packit Service 4c4772
					  attributes: (list
Packit Service 4c4772
						       (list "HREF" 
Packit Service 4c4772
							     (href-to
Packit Service 4c4772
							      next))
Packit Service 4c4772
						       (list "ACCESSKEY"
Packit Service 4c4772
							     "N"))
Packit Service 4c4772
					  (gentext-nav-next next)))))))
Packit Service 4c4772
    (if (or r1? r2?)
Packit Service 4c4772
	(make element gi: "DIV"
Packit Service 4c4772
	      attributes: '(("CLASS" "NAVHEADER"))
Packit Service 4c4772
	  (make element gi: "TABLE"
Packit Service 4c4772
		attributes: (list
Packit Service 4c4772
			     (list "SUMMARY" "Header navigation table")
Packit Service 4c4772
			     (list "WIDTH" %gentext-nav-tblwidth%)
Packit Service 4c4772
			     (list "BORDER" "0")
Packit Service 4c4772
			     (list "CELLPADDING" "0")
Packit Service 4c4772
			     (list "CELLSPACING" "0"))
Packit Service 4c4772
		(if r1? r1-sosofo (empty-sosofo))
Packit Service 4c4772
		(if r2? r2-sosofo (empty-sosofo)))
Packit Service 4c4772
	  (make empty-element gi: "HR"
Packit Service 4c4772
		attributes: (list
Packit Service 4c4772
			     (list "ALIGN" "LEFT")
Packit Service 4c4772
			     (list "WIDTH" %gentext-nav-tblwidth%))))
Packit Service 4c4772
	(empty-sosofo))))
Packit Service 4c4772
Packit Service 4c4772
(define (default-header-nav-tbl-noff elemnode prev next prevsib nextsib)
Packit Service 4c4772
  (let* ((r1? (nav-banner? elemnode))
Packit Service 4c4772
	 (r1-sosofo (make element gi: "TR"
Packit Service 4c4772
			  (make element gi: "TH"
Packit Service 4c4772
				attributes: (list
Packit Service 4c4772
					     (list "COLSPAN" "3")
Packit Service 4c4772
					     (list "ALIGN" "center"))
Packit Service 4c4772
				(nav-banner elemnode))))
Packit Service 4c4772
	 (r2? (or (not (node-list-empty? prev))
Packit Service 4c4772
		  (not (node-list-empty? next))
Packit Service 4c4772
		  (nav-context? elemnode)))
Packit Service 4c4772
	 (r2-sosofo (make element gi: "TR"
Packit Service 4c4772
			  (make element gi: "TD"
Packit Service 4c4772
				attributes: (list
Packit Service 4c4772
					     (list "WIDTH" "10%")
Packit Service 4c4772
					     (list "ALIGN" "left")
Packit Service 4c4772
					     (list "VALIGN" "bottom"))
Packit Service 4c4772
				(if (node-list-empty? prev)
Packit Service 4c4772
				    (make entity-ref name: "nbsp")
Packit Service 4c4772
				    (make element gi: "A"
Packit Service 4c4772
					  attributes: (list
Packit Service 4c4772
						       (list "HREF" 
Packit Service 4c4772
							     (href-to 
Packit Service 4c4772
							      prev))
Packit Service 4c4772
						       (list "ACCESSKEY"
Packit Service 4c4772
							     "P"))
Packit Service 4c4772
					  (gentext-nav-prev prev))))
Packit Service 4c4772
			  (make element gi: "TD"
Packit Service 4c4772
				attributes: (list
Packit Service 4c4772
					     (list "WIDTH" "80%")
Packit Service 4c4772
					     (list "ALIGN" "center")
Packit Service 4c4772
					     (list "VALIGN" "bottom"))
Packit Service 4c4772
				(nav-context elemnode))
Packit Service 4c4772
			  (make element gi: "TD"
Packit Service 4c4772
				attributes: (list
Packit Service 4c4772
					     (list "WIDTH" "10%")
Packit Service 4c4772
					     (list "ALIGN" "right")
Packit Service 4c4772
					     (list "VALIGN" "bottom"))
Packit Service 4c4772
				(if (node-list-empty? next)
Packit Service 4c4772
				    (make entity-ref name: "nbsp")
Packit Service 4c4772
				    (make element gi: "A"
Packit Service 4c4772
					  attributes: (list
Packit Service 4c4772
						       (list "HREF" 
Packit Service 4c4772
							     (href-to
Packit Service 4c4772
							      next))
Packit Service 4c4772
						       (list "ACCESSKEY"
Packit Service 4c4772
							     "N"))
Packit Service 4c4772
					  (gentext-nav-next next)))))))
Packit Service 4c4772
    (if (or r1? r2?)
Packit Service 4c4772
	(make element gi: "DIV"
Packit Service 4c4772
	      attributes: '(("CLASS" "NAVHEADER"))
Packit Service 4c4772
	  (make element gi: "TABLE"
Packit Service 4c4772
		attributes: (list
Packit Service 4c4772
			     (list "SUMMARY" "Header navigation table")
Packit Service 4c4772
			     (list "WIDTH" %gentext-nav-tblwidth%)
Packit Service 4c4772
			     (list "BORDER" "0")
Packit Service 4c4772
			     (list "CELLPADDING" "0")
Packit Service 4c4772
			     (list "CELLSPACING" "0"))
Packit Service 4c4772
		(if r1? r1-sosofo (empty-sosofo))
Packit Service 4c4772
		(if r2? r2-sosofo (empty-sosofo)))
Packit Service 4c4772
	  (make empty-element gi: "HR"
Packit Service 4c4772
		attributes: (list
Packit Service 4c4772
			     (list "ALIGN" "LEFT")
Packit Service 4c4772
			     (list "WIDTH" %gentext-nav-tblwidth%))))
Packit Service 4c4772
	(empty-sosofo))))
Packit Service 4c4772
Packit Service 4c4772
(define (default-header-nav-notbl-ff elemnode prev next prevsib nextsib)
Packit Service 4c4772
  (make element gi: "DIV"
Packit Service 4c4772
	attributes: '(("CLASS" "NAVHEADER"))
Packit Service 4c4772
	(if (nav-banner? elemnode)
Packit Service 4c4772
	    (make element gi: "H1"
Packit Service 4c4772
		  (nav-banner elemnode))
Packit Service 4c4772
	    (empty-sosofo))
Packit Service 4c4772
Packit Service 4c4772
	(if (and (node-list-empty? prev)
Packit Service 4c4772
		 (node-list-empty? prevsib)
Packit Service 4c4772
		 (node-list-empty? nextsib)
Packit Service 4c4772
		 (node-list-empty? next))
Packit Service 4c4772
	    (empty-sosofo)
Packit Service 4c4772
	    (make element gi: "P"
Packit Service 4c4772
		  (if (node-list-empty? next)
Packit Service 4c4772
		      (empty-sosofo)
Packit Service 4c4772
		      (make sequence 
Packit Service 4c4772
			(make element gi: "A"
Packit Service 4c4772
			      attributes: (list
Packit Service 4c4772
					   (list "HREF" (href-to next))
Packit Service 4c4772
					   (list "ACCESSKEY" "N"))
Packit Service 4c4772
			      (gentext-nav-next next))))
Packit Service 4c4772
Packit Service 4c4772
		  (if (node-list-empty? prev)
Packit Service 4c4772
		      (empty-sosofo)
Packit Service 4c4772
		      (make sequence
Packit Service 4c4772
			(if (node-list-empty? next)
Packit Service 4c4772
			    (empty-sosofo)
Packit Service 4c4772
			    (literal ", "))
Packit Service 4c4772
			(make element gi: "A"
Packit Service 4c4772
			      attributes: (list
Packit Service 4c4772
					   (list "HREF" (href-to prev))
Packit Service 4c4772
					   (list "ACCESSKEY" "P"))
Packit Service 4c4772
			      (gentext-nav-prev prev))))
Packit Service 4c4772
		  
Packit Service 4c4772
		  (if (node-list-empty? nextsib)
Packit Service 4c4772
		      (empty-sosofo)
Packit Service 4c4772
		      (make sequence 
Packit Service 4c4772
			(if (and (node-list-empty? next)
Packit Service 4c4772
				 (node-list-empty? prev))
Packit Service 4c4772
			    (empty-sosofo)
Packit Service 4c4772
			    (literal ", "))
Packit Service 4c4772
			(make element gi: "A"
Packit Service 4c4772
			      attributes: (list
Packit Service 4c4772
					   (list "HREF" (href-to nextsib)))
Packit Service 4c4772
			      (gentext-nav-next-sibling nextsib))))
Packit Service 4c4772
Packit Service 4c4772
		  (if (node-list-empty? prevsib)
Packit Service 4c4772
		      (empty-sosofo)
Packit Service 4c4772
		      (make sequence 
Packit Service 4c4772
			(if (and (node-list-empty? next)
Packit Service 4c4772
				 (node-list-empty? prev)
Packit Service 4c4772
				 (node-list-empty? nextsib))
Packit Service 4c4772
			    (empty-sosofo)
Packit Service 4c4772
			    (literal ", "))
Packit Service 4c4772
			(make element gi: "A"
Packit Service 4c4772
			      attributes: (list
Packit Service 4c4772
					   (list "HREF" (href-to prevsib)))
Packit Service 4c4772
			      (gentext-nav-prev-sibling prevsib))))))
Packit Service 4c4772
	
Packit Service 4c4772
	(if (nav-context? elemnode)
Packit Service 4c4772
	    (make element gi: "H2"
Packit Service 4c4772
		  (nav-context elemnode))
Packit Service 4c4772
	    (empty-sosofo))
Packit Service 4c4772
	
Packit Service 4c4772
	(make empty-element gi: "HR")))
Packit Service 4c4772
Packit Service 4c4772
(define (default-header-nav-notbl-noff elemnode prev next prevsib nextsib)
Packit Service 4c4772
  (default-header-nav-notbl-ff elemnode prev next 
Packit Service 4c4772
    (empty-node-list) (empty-node-list)))
Packit Service 4c4772
Packit Service 4c4772
(define (default-header-navigation elemnode prev next prevsib nextsib)
Packit Service 4c4772
  (if %gentext-nav-use-tables%
Packit Service 4c4772
      (if %gentext-nav-use-ff% 
Packit Service 4c4772
	  (default-header-nav-tbl-ff elemnode prev next prevsib nextsib)
Packit Service 4c4772
	  (default-header-nav-tbl-noff elemnode prev next prevsib nextsib))
Packit Service 4c4772
      (if %gentext-nav-use-ff% 
Packit Service 4c4772
	  (default-header-nav-notbl-ff elemnode prev next prevsib nextsib)
Packit Service 4c4772
	  (default-header-nav-notbl-noff elemnode prev next prevsib nextsib))))
Packit Service 4c4772
Packit Service 4c4772
(define (default-footer-navigation elemnode prev next prevsib nextsib)
Packit Service 4c4772
  (if %gentext-nav-use-tables%
Packit Service 4c4772
      (default-footer-nav-tbl elemnode prev next prevsib nextsib)
Packit Service 4c4772
      (default-footer-nav-notbl elemnode prev next prevsib nextsib)))
Packit Service 4c4772
Packit Service 4c4772
(define (default-footer-nav-tbl elemnode prev next prevsib nextsib)
Packit Service 4c4772
  (let ((r1? (or (not (node-list-empty? prev))
Packit Service 4c4772
		 (not (node-list-empty? next))
Packit Service 4c4772
		 (nav-home? elemnode)))
Packit Service 4c4772
	(r2? (or (not (node-list-empty? prev))
Packit Service 4c4772
		 (not (node-list-empty? next))
Packit Service 4c4772
		 (nav-up? elemnode)))
Packit Service 4c4772
Packit Service 4c4772
	(r1-sosofo (make element gi: "TR"
Packit Service 4c4772
			 (make element gi: "TD"
Packit Service 4c4772
			       attributes: (list
Packit Service 4c4772
					    (list "WIDTH" "33%")
Packit Service 4c4772
					    (list "ALIGN" "left")
Packit Service 4c4772
					    (list "VALIGN" "top"))
Packit Service 4c4772
			       (if (node-list-empty? prev)
Packit Service 4c4772
				   (make entity-ref name: "nbsp")
Packit Service 4c4772
				   (make element gi: "A"
Packit Service 4c4772
					 attributes: (list
Packit Service 4c4772
						      (list "HREF" (href-to
Packit Service 4c4772
								    prev))
Packit Service 4c4772
						      (list "ACCESSKEY"
Packit Service 4c4772
							    "P"))
Packit Service 4c4772
					 (gentext-nav-prev prev))))
Packit Service 4c4772
			 (make element gi: "TD"
Packit Service 4c4772
			       attributes: (list
Packit Service 4c4772
					    (list "WIDTH" "34%")
Packit Service 4c4772
					    (list "ALIGN" "center")
Packit Service 4c4772
					    (list "VALIGN" "top"))
Packit Service 4c4772
			       (nav-home-link elemnode))
Packit Service 4c4772
			 (make element gi: "TD"
Packit Service 4c4772
			       attributes: (list
Packit Service 4c4772
					    (list "WIDTH" "33%")
Packit Service 4c4772
					    (list "ALIGN" "right")
Packit Service 4c4772
					    (list "VALIGN" "top"))
Packit Service 4c4772
			       (if (node-list-empty? next)
Packit Service 4c4772
				   (make entity-ref name: "nbsp")
Packit Service 4c4772
				   (make element gi: "A"
Packit Service 4c4772
					 attributes: (list
Packit Service 4c4772
						      (list "HREF" (href-to
Packit Service 4c4772
								    next))
Packit Service 4c4772
						      (list "ACCESSKEY"
Packit Service 4c4772
							    "N"))
Packit Service 4c4772
					 (gentext-nav-next next))))))
Packit Service 4c4772
	(r2-sosofo (make element gi: "TR"
Packit Service 4c4772
			 (make element gi: "TD"
Packit Service 4c4772
			       attributes: (list
Packit Service 4c4772
					    (list "WIDTH" "33%")
Packit Service 4c4772
					    (list "ALIGN" "left")
Packit Service 4c4772
					    (list "VALIGN" "top"))
Packit Service 4c4772
			       (if (node-list-empty? prev)
Packit Service 4c4772
				   (make entity-ref name: "nbsp")
Packit Service 4c4772
				   (element-title-sosofo prev)))
Packit Service 4c4772
			 (make element gi: "TD"
Packit Service 4c4772
			       attributes: (list
Packit Service 4c4772
					    (list "WIDTH" "34%")
Packit Service 4c4772
					    (list "ALIGN" "center")
Packit Service 4c4772
					    (list "VALIGN" "top"))
Packit Service 4c4772
			       (if (nav-up? elemnode)
Packit Service 4c4772
				   (nav-up elemnode)
Packit Service 4c4772
				   (make entity-ref name: "nbsp")))
Packit Service 4c4772
			 (make element gi: "TD"
Packit Service 4c4772
			       attributes: (list
Packit Service 4c4772
					    (list "WIDTH" "33%")
Packit Service 4c4772
					    (list "ALIGN" "right")
Packit Service 4c4772
					    (list "VALIGN" "top"))
Packit Service 4c4772
			       (if (node-list-empty? next)
Packit Service 4c4772
				   (make entity-ref name: "nbsp")
Packit Service 4c4772
				   (element-title-sosofo next))))))
Packit Service 4c4772
    (if (or r1? r2?)
Packit Service 4c4772
	(make element gi: "DIV"
Packit Service 4c4772
	      attributes: '(("CLASS" "NAVFOOTER"))
Packit Service 4c4772
	  (make empty-element gi: "HR"
Packit Service 4c4772
		attributes: (list
Packit Service 4c4772
			     (list "ALIGN" "LEFT") 
Packit Service 4c4772
			     (list "WIDTH" %gentext-nav-tblwidth%)))
Packit Service 4c4772
	  (make element gi: "TABLE"
Packit Service 4c4772
		attributes: (list
Packit Service 4c4772
			     (list "SUMMARY" "Footer navigation table")
Packit Service 4c4772
			     (list "WIDTH" %gentext-nav-tblwidth%)
Packit Service 4c4772
			     (list "BORDER" "0")
Packit Service 4c4772
			     (list "CELLPADDING" "0")
Packit Service 4c4772
			     (list "CELLSPACING" "0"))
Packit Service 4c4772
		(if r1? r1-sosofo (empty-sosofo))
Packit Service 4c4772
		(if r2? r2-sosofo (empty-sosofo))))
Packit Service 4c4772
	(empty-sosofo))))
Packit Service 4c4772
Packit Service 4c4772
(define (default-footer-nav-notbl elemnode prev next prevsib nextsib)
Packit Service 4c4772
  (make element gi: "DIV"
Packit Service 4c4772
	attributes: '(("CLASS" "NAVFOOTER"))
Packit Service 4c4772
	(make empty-element gi: "HR")
Packit Service 4c4772
    
Packit Service 4c4772
	(if (nav-home? elemnode)
Packit Service 4c4772
	    (nav-home-link elemnode)
Packit Service 4c4772
	    (empty-sosofo))
Packit Service 4c4772
Packit Service 4c4772
	(if (nav-up? elemnode)
Packit Service 4c4772
	    (make sequence
Packit Service 4c4772
	      (if (nav-home? elemnode)
Packit Service 4c4772
		  (literal ", ")
Packit Service 4c4772
		  (empty-sosofo))
Packit Service 4c4772
	      (nav-up elemnode))
Packit Service 4c4772
	    (empty-sosofo))
Packit Service 4c4772
    
Packit Service 4c4772
	(if (or (nav-home? elemnode) (nav-up? elemnode))
Packit Service 4c4772
	    (make empty-element gi: "BR")
Packit Service 4c4772
	    (empty-sosofo))
Packit Service 4c4772
Packit Service 4c4772
	(if (node-list-empty? prev)
Packit Service 4c4772
	    (empty-sosofo)
Packit Service 4c4772
	    (make sequence
Packit Service 4c4772
	      (make element gi: "A"
Packit Service 4c4772
		    attributes: (list
Packit Service 4c4772
				 (list "HREF" (href-to prev))
Packit Service 4c4772
				 (list "ACCESSKEY" "P"))
Packit Service 4c4772
		    (gentext-nav-prev prev))
Packit Service 4c4772
	      (literal ": " (element-title-string prev))
Packit Service 4c4772
	      (make empty-element gi: "BR")))
Packit Service 4c4772
	
Packit Service 4c4772
	(if (node-list-empty? next)
Packit Service 4c4772
	    (empty-sosofo)
Packit Service 4c4772
	    (make sequence
Packit Service 4c4772
	      (make element gi: "A"
Packit Service 4c4772
		    attributes: (list
Packit Service 4c4772
				 (list "HREF" (href-to next))
Packit Service 4c4772
				 (list "ACCESSKEY" "N"))
Packit Service 4c4772
		    (gentext-nav-next next))
Packit Service 4c4772
	      (literal ": " (element-title-string next))
Packit Service 4c4772
	      (make empty-element gi: "BR")))))
Packit Service 4c4772
Packit Service 4c4772
(define ($user-header-navigation$ #!optional 
Packit Service 4c4772
				  (prev (empty-node-list))
Packit Service 4c4772
				  (next (empty-node-list))
Packit Service 4c4772
				  (prevm (empty-node-list))
Packit Service 4c4772
				  (nextm (empty-node-list)))
Packit Service 4c4772
  (empty-sosofo))
Packit Service 4c4772
Packit Service 4c4772
(define ($user-footer-navigation$ #!optional 
Packit Service 4c4772
				  (prev (empty-node-list))
Packit Service 4c4772
				  (next (empty-node-list))
Packit Service 4c4772
				  (prevm (empty-node-list))
Packit Service 4c4772
				  (nextm (empty-node-list)))
Packit Service 4c4772
  (empty-sosofo))
Packit Service 4c4772
Packit Service 4c4772
;; EOF dbnavig.dsl;