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