# -*- tcl -*-
# $Id: framed_toc,v 1.8 1999/02/15 20:59:27 tobotras Exp $

proc divgenStart {} {
    if { "[typeVal]" != "toc" } return
    outSpec save fileHandle \
	[open [TOCfileName] "w"]

    output "[HtmlHeader]</HEAD><[elt BODY]>"
}

proc divgenEnd {} {
    if { "[typeVal]" != "toc" } return

    output "\n</BODY>\n</HTML>\n"

    close [outSpec get fileHandle]
    outSpec restore
}

rename Link {}

proc Link {} {
    return "A TARGET='BodyFrame'"
}

rename TOClink {}

proc TOClink {} {
    return "A TARGET='TOCFrame'"
}

rename TOCref {}

proc TOCref {} {
    return
}

rename TOCfileName {}

proc TOCfileName {} {
    global baseFileName
    return "${baseFileName}-toc.html"
}

rename BodyFileName {}

proc BodyFileName {} {
    global baseFileName
    return "${baseFileName}-body.html"
}

rename OpenBody {}

proc OpenBody {} {
    global TEItools_frames_value
    if { [info exist TEItools_frames_value] } {
	set s [split $TEItools_frames_value ":"]
	set left [lindex $s 0]
	set right [lindex $s 1]
	if { "$left" == "" || "$right" == "" } {
	    Error "Syntax error in 'frames' option value"
	    set left 1
	    set right 4
	}
    } else {
	set left 1
	set right 4
    }
    output "[HtmlHeader]

<TITLE>[htmlTitle]</TITLE>
 </HEAD>
 <FRAMESET COLS='${left}*,${right}*'>
  <FRAME SRC='[TOCfileName]' NAME='TOCFrame'>
  <FRAME SRC='[BodyFileName]' NAME='BodyFrame'>
  <NOFRAMES>
    <[elt BODY]>
      <P>[SeeTocAndText [TOCfileName] [BodyFileName]]
    </BODY>
  </NOFRAMES>
 </FRAMESET>
</HTML>
"
    outSpec set fileHandle [open [BodyFileName] "w"]

    output "[HtmlHeader]"
}

proc htmlTitle {} {
    set title ""
    withNode docroot descendant element TITLE in TITLESTMT {
	set title [filteredContent]
    }
    return $title
}

rename CloseBody {}

proc CloseBody {} {
    output "[HtmlFooter]"
}

rename HtmlDTD {}

proc HtmlDTD {} {
    return "-//W3C//DTD HTML 4.0 Frameset//EN"
}

set TEItools_framed_toc_is_already_loaded 1
