# -*- tcl -*-

rename doneTranslation {}

proc doneTranslation {} {
    global baseFileName
    set newFileName "${baseFileName}.urls"
    Debug "opening URL table file `${newFileName}'"
    outSpec save fileHandle \
	[open $newFileName "w"]
    if { [useUnicode] } {
	fconfigure [outSpec get fileHandle] -encoding identity
    }
    pushMode generateurls
    withNode docroot {
	translateHandler
    }
    output "\"\n"
    popMode

    close [outSpec get fileHandle]
    outSpec restore
    return "\n"
}

specification generateurls {
    {element HEAD in DIV4} {
	prefix		[urlOfDiv]
	cdataFilter	generateUrlTextFilter
	sdataFilter	generateUrlTextFilter
    }
    {element HEAD in DIV in DIV in DIV in DIV} {
	prefix		[urlOfDiv]
	cdataFilter	generateUrlTextFilter
	sdataFilter	generateUrlTextFilter
    }
    {element HEAD in DIV3} {
	prefix		[urlOfDiv]
	cdataFilter	generateUrlTextFilter
	sdataFilter	generateUrlTextFilter
    }
    {element HEAD in DIV in DIV in DIV} {
	prefix		[urlOfDiv]
	cdataFilter	generateUrlTextFilter
	sdataFilter	generateUrlTextFilter
    }
    {element HEAD in DIV2} {
	prefix		[urlOfDiv]
	cdataFilter	generateUrlTextFilter
	sdataFilter	generateUrlTextFilter
    }
    {element HEAD in DIV in DIV} {
	prefix		[urlOfDiv]
	cdataFilter	generateUrlTextFilter
	sdataFilter	generateUrlTextFilter
    }
    {element HEAD in DIV1} {
	prefix		[urlOfDiv]
	cdataFilter	generateUrlTextFilter
	sdataFilter	generateUrlTextFilter
    }
    {element HEAD in DIV} {
	prefix		[urlOfDiv]
	cdataFilter	generateUrlTextFilter
	sdataFilter	generateUrlTextFilter
    }
    {element Q in HEAD in DIV} {
	prefix		{\"}
	suffix		{\"}
	cdataFilter	generateUrlTextFilter
	sdataFilter	generateUrlTextFilter
    }
    {element Q in HEAD in DIV1} {
	prefix		{\"}
	suffix		{\"}
	cdataFilter	generateUrlTextFilter
	sdataFilter	generateUrlTextFilter
    }
    {element Q in HEAD in DIV2} {
	prefix		{\"}
	suffix		{\"}
	cdataFilter	generateUrlTextFilter
	sdataFilter	generateUrlTextFilter
    }
    {element Q in HEAD in DIV3} {
	prefix		{\"}
	suffix		{\"}
	cdataFilter	generateUrlTextFilter
	sdataFilter	generateUrlTextFilter
    }
    {element Q in HEAD in DIV4} {
	prefix		{\"}
	suffix		{\"}
	cdataFilter	generateUrlTextFilter
	sdataFilter	generateUrlTextFilter
    }
    {element Q in HEAD in DIV5} {
	prefix		{\"}
	suffix		{\"}
	cdataFilter	generateUrlTextFilter
	sdataFilter	generateUrlTextFilter
    }
    {element LB in HEAD in DIV} {
	suffix		" "
    }
    {element LB in HEAD in DIV1} {
	suffix		" "
    }
    {element LB in HEAD in DIV2} {
	suffix		" "
    }
    {element LB in HEAD in DIV3} {
	suffix		" "
    }
    {element LB in HEAD in DIV4} {
	suffix		" "
    }
    {element LB in HEAD in DIV5} {
	suffix		" "
    }
    {element KW in HEAD in DIV} {
	cdataFilter	generateUrlTextFilter
	sdataFilter	generateUrlTextFilter
    }
    {element KW in HEAD in DIV1} {
	cdataFilter	generateUrlTextFilter
	sdataFilter	generateUrlTextFilter
    }
    {element KW in HEAD in DIV2} {
	cdataFilter	generateUrlTextFilter
	sdataFilter	generateUrlTextFilter
    }
    {element KW in HEAD in DIV3} {
	cdataFilter	generateUrlTextFilter
	sdataFilter	generateUrlTextFilter
    }
    {element KW in HEAD in DIV4} {
	cdataFilter	generateUrlTextFilter
	sdataFilter	generateUrlTextFilter
    }
    {element KW in HEAD in DIV5} {
	cdataFilter	generateUrlTextFilter
	sdataFilter	generateUrlTextFilter
    }
    {el} {
	cdataFilter	null
	sdataFilter	null
    }
}

proc urlOfDiv {} {
    global firstLineOfUrlTable
    if { ![info exists firstLineOfUrlTable] } {
	set firstLineOfUrlTable yes
	set beg ""
    } else {
	set beg "\"\n"
    }
    set addr [query parent address]
    return "${beg}[DivisionFileName $addr]\#[AddrToName $addr]\t\""
}

proc generateUrlTextFilter { text } {
    #    return [trimSpaces [generateUrlTextFilterSubst $text]]
    return [generateUrlTextFilterSubst $text]
}

substitution generateUrlTextFilterSubst {
    {"} {\"}
    "\n" { }
}

