proc template; define tagset tagsets.phtml; notes "This is the plain HTML definition"; /* until inheritance is fixed */ %let map =<>%nrstr(&)%str(%')%str(%"); map="&map"; mapsub = '/</>/&/'/"/'; /* old map map = '<>&'; mapsub = '/</>/&/'; */ nobreakspace = ' '; split = '
'; stacked_columns = yes; output_type = 'html'; image_formats = 'gif,jpeg,png,java,activex'; breaktext_ratio = 2.5; breaktext_width = 40; breaktext_length = 80; ext_graph_instance = yes; embedded_stylesheet=yes; copyright='©'; trademark='™'; registered_tm='®'; beginwellformed = '<'; endwellformed = '>'; define event putvars; put "event vars" nl; putvars event "name: " _name_ " = " _value_ nl; put "memory vars" nl; putvars mem "name: " _name_ " = " _value_ nl; put "style vars" nl; putvars style "name: " _name_ " = " _value_ nl; end; define event initialize; trigger set_just_lookup; end; define event show_charset; set $show_charset "1" / if !exists(suppress_charset); end; define event put_value; put VALUE; end; define event put_value_cr; put VALUE nl; end; define event dynamic; put "Content-Type: text/html" CR CR CR; end; define event stylesheet_link; break /if !exists(url); set $urlList url; trigger urlLoop ; unset $urlList; put '' CR ; end; define event contents_stylesheet_link; set $urlList url; trigger urlLoop / if exists(url); unset $urlList; end; define event link; putq '' nl; end; define event urlLoop; eval $index 1; set $current_url scan($urlList, $index, ' '); do /while !cmp($current_url, ' '); set $current_url trim($current_url); trigger link; eval $index $index + 1; set $current_url scan($urlList, $index, ' '); done; end; /* define event urlLoop; eval $space_pos index($urlList, " "); do /while $space_pos ne 0; do /if $space_pos ne 0; set $current_url substr($urlList,1,$space_pos); set $current_url trim($current_url); done; trigger link; set $urlList substr($urlList,$space_pos); set $urlList strip($urlList); eval $space_pos index($urlList, " "); done; */ /* when space_pos is 0 it's either the only link or the last link */ /* set $current_url $urlList; trigger link; end; */ define event top_file; start: put HTMLDOCTYPE CR; put "" CR; finish: put "" CR; end; define event top_title; put ""; put "SAS Output Frame" / if !exists(value); put VALUE; put "" CR; end; define event top_code; start: set $content_position "first" /if cmp(type, 'f'); set $content_position "last" /if cmp(type, 'l'); set $content_orientation "horizontal" /if cmp(colcount, '1'); set $content_orientation "vertical" /if cmp(colcount, '2'); put "' CR; /* create a frameset to hold the two contents files if they both exist. */ trigger contents_pages_frameset start/ if cmp(type, "f"); finish: put "" nl; put "<body>" nl ; put "<ul>" nl ; unset $link; set $link contents_url /if exists(contents_url); set $link contents_name /if !exists($link); put '<li><a href="' $link '">The Table of Contents</a></li>' nl /if exists($link); unset $link; set $link pages_url /if exists(pages_url); set $link pages_name /if !exists($link); put '<li><a href="' $link '">The Table of Pages</a></li>' nl /if exists($link); unset $link; set $link body_url /if exists(body_url); set $link body_name /if !exists($link); put '<li><a href="' $link '">The Contents</a></li>' nl /if exists($link); put "</ul>" nl ; put "</body>" nl ; put "" nl; put "" nl; end; define event contents_pages_frameset; start: break /if !exists(pages_name, contents_name); put "' nl; finish: break /if !exists(pages_name, contents_name); put "" nl; end; define event content_frameset; put "23%" / if !exists(CONTENTSIZE); put CONTENTSIZE; end; define event body_frameset; put "*" / if !exists(BODYSIZE); put BODYSIZE; end; define event pages_frame; break /if !exists(pages_name); put '" CR; /* close up the frameset for the contents files if they both exist */ trigger contents_pages_frameset finish; end; define event content_frame; break /if !exists(contents_name); put '" CR; end; define event body_frame; put '" CR; /* create a frameset to hold the two contents files if they both exist. */ trigger contents_pages_frameset start/ if cmp($content_position, "last"); end; define event doc; start: put HTMLDOCTYPE CR; put "" CR; finish: put "" CR; end; define event doc_head; start: put "" CR; put VALUE CR ; finish: put "" CR; end; define event code_body; trigger contents_code; end; define event contents_bullet_style; put "" CR CR; end; define event contents_javascript; trigger contents_bullet_style; trigger contents_inline_code /if !any(code_name, code_url); trigger contents_code_link /if any(code_name, code_url); put CR; put "" CR; end; define event contents_inline_code; trigger javascript_tag start; trigger contents_code; trigger javascript_tag finish; end; define event javascript_tag; start: put "" CR; put "" CR; end; define event contents_code; put "var openimage = 'folderopen.gif';" CR; put "var closeimage = 'folderclosed.gif';" CR; put CR; put "var initialized = false;" CR; put "var expanded = false;" CR; put CR; put "// Check for DOM support" CR; put "var DOMsupport = false;" CR; put 'if (document.getElementById && ' CR; put ' document.createTextNode && ' CR; put " document.createElement)" CR; put " DOMsupport = true;" CR; put CR; put "function getAllLists()" CR; put "//" CR; put "// Get a list of all lists in the document" CR; put "// " CR; put "{" CR; put " var lists = new Array();" CR; put " var uls = document.getElementsByTagName('UL');" CR; put " for (var i = 0; i < uls.length; i++)" CR; put " lists[lists.length] = uls[i];" CR; put " var ols = document.getElementsByTagName('OL');" CR; put " for (var i = 0; i < ols.length; i++)" CR; put " lists[lists.length] = ols[i];" CR; put " return lists;" CR; put "}" CR; put CR; put "function getAllListItems()" CR; put "//" CR; put "// Get a list of all list items in the document" CR; put "//" CR; put "{" CR; put " return document.getElementsByTagName('LI');" CR; put "}" CR; put CR; put "function expandCollapse()" CR; put "{" CR; put " if ( expanded ) collapseAll();" CR; put " else expandAll();" CR; put "}" CR; put CR; put "function collapseAll()" CR; put "//" CR; put "// Collapse all lists down to 'level' " CR; put "//" CR; put "{" CR; put " initAll(null, false);" CR; put " expanded = false;" CR; put "}" CR; put CR; put "function expandAll(level)" CR; put "//" CR; put "// Expand all lists up to 'level' " CR; put "//" CR; put "{" CR; put " initAll(level, true);" CR; put " expanded = true;" CR; put "}" CR; put "" CR; put "function initAll(level, visible)" CR; put "//" CR; put "// Expand/collapse all lists up to 'level' " CR; put "//" CR; put "{" CR; put " if ( !DOMsupport ) return;" CR; put CR; put " // Initialize list elements to their starting behavior" CR; put " if ( !initialized ) " CR; put " {" CR; put " initialized = true;" CR; put CR; put " // Set onclick events for all items with nested lists" CR; put " var items = getAllListItems();" CR; put " for (var i = 0; i < items.length; i++)" CR; put " {" CR; put " var elem = items[i];" CR; put " if ( elem.getElementsByTagName('UL') ||" CR; put " elem.getElementsByTagName('OL') )" CR; put " {" CR; put " elem.onclick = toggleView;" CR; put " elem.style.cursor = 'pointer';" CR; put " }" CR; put " }" CR; put CR; put " collapseAll();" CR; put " }" CR; put CR; put " // If level is undefined or less than zero, expand everything" CR; put " if ( !level || level < 0 ) " CR; put " level = -1;" CR; put CR; put " var lists = getAllLists();" CR; put CR; put " for (var i=0; i < lists.length; i++)" CR; put " {" CR; put " nesting = getNestingLevel(lists[i]);" CR; put ' if ( nesting == 0 && visible == false )' CR; put " continue;" CR; put " if ( level == -1 || nesting < level )" CR; put " {" CR; put " setDisplay(lists[i], visible);" CR; put CR; put " var li = lists[i].parentNode;" CR; put ' while ( li && li.nodeName != ''LI'' )' CR; put " li = li.parentNode;" CR; put " if ( li ) setImage(li, visible);" CR; put " }" CR; put " }" CR; put "}" CR; put CR; put "function setDisplay(elem, visible)" CR; put "{" CR; put " var display = (visible) ? 'block' : 'none';" CR; put " elem.style.display = display;" CR; put "}" CR; put CR; put "function setImage(elem, visible)" CR; put "{" CR; put " if ( !openimage || !closeimage ) return;" CR; put CR; put " var images = elem.getElementsByTagName('IMG');" CR; put " " CR; put " if ( !images.length ) return;" CR; put CR; put " var image = images[0];" CR; put CR; put " image.src = ( visible ) ? openimage : closeimage;" CR; put "}" CR; put CR; put "function toggleView(e)" CR; put "//" CR; put "// If the children of this item are hidden, display them." CR; put "// If they are displayed, hide them." CR; put "//" CR; put "{" CR; put " var elem = (window.event) ? window.event.srcElement : e.target;" CR; put CR; put ' while ( elem && elem.nodeName != ''LI'' )' CR; put " {" CR; put " if ( elem.nodeName == 'A' ) " CR; put " return true;" CR; put " elem = elem.parentNode;" CR; put " }" CR; put CR; put " if ( !elem ) return;" CR; put CR; put " var children = elem.childNodes;" CR; put CR; put " for (var i = 0; i < children.length; i++)" CR; put " {" CR; put " c = children[i];" CR; put ' if ( c.nodeName != ''UL'' && c.nodeName != ''OL'' ) continue;' CR; put " if ( !c.style ) continue;" CR; put " setImage(elem, (c.style.display != 'block'));" CR; put " setDisplay(c, (c.style.display != 'block'));" CR; put " }" CR; put CR; put " if (window.event) window.event.cancelBubble = true;" CR; put " else e.stopPropagation();" CR; put "" CR; put " return false;" CR; put "}" CR; put "" CR; put "function getNestingLevel(elem)" CR; put "//" CR; put "// Get the nesting level of the given list" CR; put "//" CR; put "{" CR; put " var parent = elem.parentNode;" CR; put " var level = 0;" CR; put ' while ( parent && parent.nodeName != ''BODY'' )' CR; put " { " CR; put " if ( parent.nodeName == 'UL' || " CR; put " parent.nodeName == 'OL' )" CR; put " level++;" CR; put " parent = parent.parentNode;" CR; put " }" CR; put " return level;" CR; put "}" CR; end; define event contents_head; start: trigger doc_head; finish: trigger contents_javascript; trigger doc_head; end; define event contents_code_link; put "'; put "" CR; put "" CR; end; define event top_head; start: put "" CR; put VALUE CR; finish: put "" CR; end; define event doc_title; put ""; put "SAS Output" / if !exists(VALUE); put VALUE; put "" CR; end; define event content_title; put ""; put "SAS Output" / if !exists(VALUE); put VALUE; put "" CR; end; define event doc_meta; put '' CR; trigger show_charset; put "" nl /if exists(value); break /if !any( htmlcontenttype, encoding); break /if ^exists(htmlcontenttype) and ^exists($show_charset); put "' CR; end; define event top_meta; put '' CR; trigger show_charset; put "" nl /if exists(value); break /if !any( htmlcontenttype, encoding, $show_charset); put "' CR; end; define event ie_check; trigger javascript start; put 'var _info = navigator.userAgent' CR; put 'var _ie = (_info.indexOf("MSIE") > 0' CR; put ' && _info.indexOf("Win") > 0' CR; put ' && _info.indexOf("Windows 3.1") < 0);' CR; set $ieCheckDone "true"; trigger javascript finish; end; /* Web Accessibility Feature 1194.22 (I) */ /*-----------------------------------------*/ define event doc_body; put '" CR; trigger pre_post; put CR; trigger ie_check; finish: trigger pre_post; put "" CR; end; define event doc_foot; start: put "" CR; finish: put "" CR; end; /* Web Accessibility Feature 1194.22 (I) */ /*-----------------------------------------*/ define event javascript; start: put '" CR CR; put '' CR; /* 508 */ end; define event startup_function; start: put "function startup(){" CR CR; finish: put TAGATTR CR; put "}" CR; end; define event shutdown_function; start: put "function shutdown(){" CR CR; finish: put TAGATTR CR; put "}" CR; end; define event windowload; put VALUE CR; end; define event contents; start: put HTMLDOCTYPE CR; put "" CR; finish: put "" CR; end; define event contents_body; start: put "" CR; finish: put "" CR; end; define event preformatted; start: put "
";
            finish:
                put "
"; end; define event contents_title; put ""; end; define event stylesheetclass; put " font-family: " FONT_FACE; put ";" CR / exists(FONT_FACE); put " font-size: " FONT_SIZE; put ";" CR / exists(FONT_SIZE); put " font-weight: " FONT_WEIGHT; put ";" CR / exists(FONT_WEIGHT); put " font-style: " FONT_STYLE; put ";" CR / exists(FONT_STYLE); put " color: " FOREGROUND; put ";" CR / exists(FOREGROUND); put " text-decoration: " text_decoration; put ";" CR / exists(text_decoration); put " background-color: " BACKGROUND; put ";" CR / exists(BACKGROUND); put " background-image: url('" BACKGROUNDIMAGE "')" /if exists(backgroundimage); put ";" CR / exists(BACKGROUNDIMAGE); trigger margins; /*trigger Border_shadow / if exists(BORDERCOLORDARK, BORDERCOLORLIGHT ); */ trigger Border; put " list-style-type: " BULLET; put ";" CR / exists(BULLET); put " height: " OUTPUTHEIGHT; put ";" CR / exists(OUTPUTHEIGHT); put " width: " OUTPUTWIDTH; put ";" CR / exists(OUTPUTWIDTH); put " text-align: " / exists(just); put $just_lookup[just]; put ";" CR / exists(just); put " vertical-align: " / exists(vjust); put $vjust_lookup[vjust]; put ";" CR / exists(vjust); put " " htmlstyle; put ";" CR / exists(htmlstyle); end; define event margins; put " text-indent: " indent; put ";" nl / exists(indent); break /if cmp(htmlclass, 'contentItem'); break /if cmp(htmlclass, 'pagesItem'); break /if cmp(htmlclass, 'ContentFolder'); break /if cmp(htmlclass, 'ByContentFolder'); put " margin-left: " LEFTMARGIN; put ";" CR / exists(LEFTMARGIN); put " margin-right: " RIGHTMARGIN; put ";" CR / exists(RIGHTMARGIN); put " margin-top: " TOPMARGIN; put ";" CR / exists(TOPMARGIN); put " margin-bottom: " BOTTOMMARGIN; put ";" CR / exists(BOTTOMMARGIN); end; define event Border_shadow; put " border-left: " BORDERWIDTH; put " outset: " / exists(BORDERCOLORLIGHT); put ";" CR / exists(BORDERCOLORLIGHT); put " border-top: " BORDERWIDTH; put " outset: " / exists(BORDERCOLORLIGHT); put ";" CR / exists(BORDERCOLORLIGHT); put " border-right: " BORDERWIDTH; put " outset: " / exists(BORDERCOLORDARK); put ";" CR / exists(BORDERCOLORDARK); put " border-bottom: " BORDERWIDTH; put " outset: " / exists(BORDERCOLORDARK); put ";" CR / exists(BORDERCOLORDARK); end; define event Border; put " border-width: " borderwidth; put ";" CR / exists(borderwidth); put " border-top-width: " bordertopwidth; put ";" CR / exists(bordertopwidth); put " border-bottom-width: " borderbottomwidth; put ";" CR / exists(borderbottomwidth); put " border-right-width: " borderrightwidth; put ";" CR / exists(borderrightwidth); put " border-left-width: " borderleftwidth; put ";" CR / exists(borderleftwidth); put " border-color: " bordercolor; put ";" CR / exists(bordercolor); put " border-top-color: " bordertopcolor; put ";" CR / exists(bordertopcolor); put " border-bottom-color: " borderbottomcolor; put ";" CR / exists(borderbottomcolor); put " border-right-color: " borderrightcolor; put ";" CR / exists(borderrightcolor); put " border-left-color: " borderleftcolor; put ";" CR / exists(borderleftcolor); put " border-style: " borderstyle; put ";" CR / exists(borderstyle); put " border-top-style: " bordertopstyle; put ";" CR / exists(bordertopstyle); put " border-bottom-style: " borderbottomstyle; put ";" CR / exists(borderbottomstyle); put " border-right-style: " borderrightstyle; put ";" CR / exists(borderrightstyle); put " border-left-style: " borderleftstyle; put ";" CR / exists(borderleftstyle); end; define event style_inline; put ' ' tagattr; break / if !any(font_face, font_size, font_weight, font_style, foreground, background, backgroundimage, LEFTMARGIN, RIGHTMARGIN, TOPMARGIN, bottommargin, bullet, outputheight, outputwidth, htmlstyle, indent, text_decoration, borderwidth, bordertopwidth, borderbottomwidth, borderrightwidth, borderleftwidth, bordercolor, bordertopcolor, borderbottomcolor, borderrightcolor, borderleftcolor, borderstyle, bordertopstyle, borderbottomstyle, borderrightstyle, borderleftstyle); put ' style="'; put " font-family: " FONT_FACE; put ";" / exists(FONT_FACE); put " font-size: " FONT_SIZE; put ";" / exists(FONT_SIZE); put " font-weight: " FONT_WEIGHT; put ";" / exists(FONT_WEIGHT); put " font-style: " FONT_STYLE; put ";" / exists(FONT_STYLE); put " color: " FOREGROUND; put ";" / exists(FOREGROUND); put " text-decoration: " text_decoration; put ";" / exists(text_decoration); put " background-color: " BACKGROUND; put ";" / exists(BACKGROUND); put " background-image: url('" BACKGROUNDIMAGE "')" /if exists(backgroundimage); put ";" / exists(BACKGROUNDIMAGE); put " margin-left: " LEFTMARGIN; put ";" / exists(LEFTMARGIN); put " margin-right: " RIGHTMARGIN; put ";" / exists(RIGHTMARGIN); put " margin-top: " TOPMARGIN; put ";" / exists(TOPMARGIN); put " margin-bottom: " BOTTOMMARGIN; put ";" / exists(BOTTOMMARGIN); put " text-indent: " indent; put ";" / exists(indent); trigger Border_inline ; put " list_style_type: " BULLET; put ";" / exists(BULLET); put " height: " OUTPUTHEIGHT; put ";" / exists(OUTPUTHEIGHT); put " width: " OUTPUTWIDTH; put ";" / exists(OUTPUTWIDTH); /* put " text-align: " / exists(just); put 'center' /if cmp(just, 'c'); put 'right' /if cmp(just, 'r'); put 'left' /if cmp(just, 'l'); put ";" / exists(vjust); put " vertical-align: " / exists(vjust); put 'middle' /if cmp(vjust, 'c'); put 'top' /if cmp(vjust, 't'); put 'bottom' /if cmp(vjust, 'b'); put ";" / exists(vjust); */ put " " htmlstyle; put ";" / exists(htmlstyle); put '"'; end; define event Border_inline; put " border-width: " borderwidth; put ";" / exists(borderwidth); put " border-top-width: " bordertopwidth; put ";" / exists(bordertopwidth); put " border-bottom-width: " borderbottomwidth; put ";" / exists(borderbottomwidth); put " border-right-width: " borderrightwidth; put ";" / exists(borderrightwidth); put " border-left-width: " borderleftwidth; put ";" / exists(borderleftwidth); put " border-color: " bordercolor; put ";" / exists(bordercolor); put " border-top-color: " bordertopcolor; put ";" / exists(bordertopcolor); put " border-bottom-color: " borderbottomcolor; put ";" / exists(borderbottomcolor); put " border-right-color: " borderrightcolor; put ";" / exists(borderrightcolor); put " border-left-color: " borderleftcolor; put ";" / exists(borderleftcolor); put " border-style: " borderstyle; put ";" / exists(borderstyle); put " border-top-style: " bordertopstyle; put ";" / exists(bordertopstyle); put " border-bottom-style: " borderbottomstyle; put ";" / exists(borderbottomstyle); put " border-right-style: " borderrightstyle; put ";" / exists(borderrightstyle); put " border-left-style: " borderleftstyle; put ";" / exists(borderleftstyle); end; define event embedded_stylesheet; start: put "" nl; end; define event style; put "" CR; end; define event shortstyles; /* put "" CR;*/ end; define event alignstyle ; putl '.l {text-align: left }'; putl '.c {text-align: center }'; putl '.r {text-align: right }'; putl '.d {text-align: "." }'; putl '.t {vertical-align: top }'; putl '.m {vertical-align: middle }'; putl '.b {vertical-align: bottom }'; putl 'TD, TH {vertical-align: top }'; putl '.stacked_cell{padding: 0 }'; end; define event bodystyle; style=body; put "body {" CR; trigger stylesheetclass; put "}" CR; trigger linkclass /if exists(linkcolor); trigger vlinkclass /if exists(visitedlinkcolor); trigger alinkclass /if exists(activelinkcolor); end; define event linkclass; /* a:link, a:visited, a:hover, a:active */ put "a:link {" CR; put "color:" linkcolor CR; put "}" CR; end; define event vlinkclass; put "a:visited {" CR; put "color:" visitedlinkcolor CR; put "}" CR; end; define event alinkclass; put "a:active {" CR; put "color:" activelinkcolor CR; put "}" CR; end; define event titlestyle; style = systemtitle; put "h1 {" CR; trigger stylesheetclass; put "}" CR; end; define event proctitlestyle; style = proctitle; put "h2, h3, h4, h5, h6 {" CR; trigger stylesheetclass; put "}" CR; end; define event tablestyle; style = table; put "table {" CR; trigger stylesheetclass; put "}" CR; end; define event tdstyle; style = data; put "td {" CR; trigger stylesheetclass; put "}" CR; end; define event thstyle; style = header; put "th {" CR; trigger stylesheetclass; put "}" CR; end; define event list; start: put "<"; trigger list_tag; trigger listclass; put ">" CR; finish: put "" CR; end; /*-------------------------------------------------------eric-*/ /*-- All this so we don't get the style class on the top --*/ /*-- level of the list. If we did then the margins are --*/ /*-- much wider than we'd like. --*/ /*----------------------------------------------------14Jun02-*/ define event listclass; break /if cmp(htmlclass, "contents"); break /if cmp(htmlclass, "pages"); putq " class=" HTMLCLASS ; end; define event list_entry; start: put "" nl; trigger do_link /if listentryanchor; trigger do_list_value/if !listentryanchor; finish: put "" nl; end; define event do_link; trigger hyperlink_value / if any(URL, ANCHOR); put VALUE / if !any(URL, ANCHOR); end; define event do_list_value; put value; end; define event hyperlink_value; trigger hyperlink start; trigger hyperlink finish; end; define event hyperlink; start: put '"; put VALUE; finish: put "" CR; end; define event contents_list; start: put "<"; trigger list_tag; trigger listclass; put ">" CR; finish: put "" CR; end; define event contents_branch; file=CONTENTS; start: trigger list_entry start; trigger list; finish: trigger list finish; trigger list_entry finish; end; define event contents_leaf; file=CONTENTS; trigger list_entry start; trigger list_entry finish; end; /*putlog "list_tag:" $list_tag " event:" event_name " state:" state " class:" htmlclass;*/ define event pages_branch; file=PAGES; start: trigger list_entry start; trigger Page_list; finish: trigger Page_list finish; trigger list_entry finish; end; define event page_list; style=PagesItem; start: put "<"; trigger list_tag; trigger listclass; put ">" CR; finish: put "" CR; end; define event list_tag; set $list_tag "ul"; set $list_tag "ol" /if cmp(htmlclass, 'contents'); set $list_tag "ol" /if cmp(htmlclass, 'pages'); put $list_tag; end; define event page_anchor; file=PAGES; start: put "" nl; put '"; put 'Page ' total_page_count; put "" CR; finish: put "" nl; end; define event anchor; putq "" CR / if length(NAME); end; define event breakline; put ""; end; define event splitline; put ""; end; define event line; put ""; end; define event pagebreak; put PAGEBREAKHTML CR; end; define event map; start: put "" CR; finish: put "" CR; end; define event map_area; start: put "' CR; end; define event map_coordinate; put ' coords="' / if !exists($coord_started); put ',' / if exists($coord_started); set $coord_started "true"; put coordinate; end; define event image; put '' nl; put "" CR; put "" CR; end; define event style_align; break /if !any(just, vjust); put ' style="'; trigger inline_just /if exists(just) ; trigger inline_vjust /if exists(just) ; put '"'; end; define event set_just_lookup; set $just_lookup['c'] 'center'; set $just_lookup['r'] 'right'; set $just_lookup['d'] 'right'; set $just_lookup['l'] 'left'; set $just_lookup['C'] 'center'; set $just_lookup['R'] 'right'; set $just_lookup['D'] 'right'; set $just_lookup['L'] 'left'; set $vjust_lookup['t'] 'top'; set $vjust_lookup['m'] 'middle'; set $vjust_lookup['c'] 'middle'; set $vjust_lookup['b'] 'bottom'; set $vjust_lookup['T'] 'top'; set $vjust_lookup['M'] 'middle'; set $vjust_lookup['C'] 'middle'; set $vjust_lookup['B'] 'bottom'; end; define event inline_just; put ' text-align: '; put $just_lookup[just] ';'; end; define event inline_vjust; put ' vertical-align: '; put $vjust_lookup[vjust] ';'; end; define event paragraph; start: put "

" nl; put VALUE; finish: put "

" nl; end; /* Web Accessibility Feature 1194.2 (H) */ /*--------------------------------------*/ define event table; start: put "" CR; put "" CR; set $parent_table_spacing cellspacing; set $parent_table_padding cellpadding; finish: put "" CR; put "" CR; end; define event verbatim_container; start: put "" CR; put "" CR; finish: put "" CR; put "" CR; end; define event verbatim; start: put "" CR; trigger preformatted; finish: trigger preformatted; put "" CR; end; define event verbatim_text; put value; put nl; end; define event table_summary; put ' summary='; /* 508 */ putq summary; /* 508 */ break /if exists(summary); /* 508 */ put '"'; /* 508 */ put "Procedure " proc_name ": "; /* 508 */ put output_label; /* 508 */ put output_name /if !exist(output_label); /* 508 */ put '"'; /* 508 */ end; define event table_head; put "" CR; finish: put "" CR; end; define event table_body; put "" CR; finish: put "" CR; end; define event table_foot; put "" CR; finish: put "" CR; end; define event colgroup; put "" CR; finish: put "" CR; end; define event colspec_entry; put "" CR; end; define event row; put "" CR; finish: put "" CR; end; /* Web Accessibility Feature 1194.22 (G&H) */ /*-----------------------------------------*/ define event rowcol; putq ' rowspan=' ROWSPAN; putq ' colspan=' COLSPAN; trigger rowhead / breakif contains(HTMLCLASS,"RowHeader"); trigger colhead / if contains(HTMLCLASS,"eader"); end; /* Web Accessibility Feature 1194.22 (G&H) */ /*-----------------------------------------*/ define event rowhead; /* 508 */ do /if exists(ROWSPAN); put ' scope="rowgroup"'; else; put ' scope="row"'; done; end; /* Web Accessibility Feature 1194.22 (G&H) */ /*-----------------------------------------*/ define event colhead; /* New Event */ do /if exists(COLSPAN); put ' scope="colgroup"'; else; put ' scope="col"'; done; end; /* for compatibility with past releases and other tagsets */ define event align; trigger real_align start; trigger real_align finish; end; define event real_align; start: set $vjust vjust; set $just just; set $just "r" /when cmp("d", just); set $vjust "m" /when cmp("c", vjust); put ' class="'; put $just ' ' $vjust /if any($just, $vjust); unset $vjust; unset $just; finish: put '"'; end; define event classalign; trigger real_align start; put ' ' htmlclass; trigger real_align finish; end; define event header; start: put ""; trigger cell_value; finish: trigger cell_value; put "" CR; end; define event data; start: put ""; trigger cell_value; finish: trigger cell_value; put "" CR; end; define event stacked_cell; start: put ''; put '' nl; finish: put '
' nl; end; define event stacked_value; start: put "" nl; trigger data; finish: trigger data; put "" nl; end; define event stacked_value_header; start: put "" nl; trigger header; finish: trigger header; put "" nl; end; define event cell_value; start: trigger preformatted /if asis; set $close_hyperlink "true" / if exists(URL); trigger hyperlink / if exists(URL); put value / if !exists(URL); finish: trigger hyperlink / if exists($close_hyperlink); unset $close_hyperlink; trigger preformatted /if asis; end; define event cell_is_empty; put ' '; end; define event alt_align; putq ' align=' $just_lookup[just]; end; /* Web Accessibility Feature 1194.22 (H) */ /*---------------------------------------*/ define event association; put '' nl; put ''; put "" CR; finish: put "" CR; put "
" CR; put "" CR; end; define event assoc_end_got_capt; put ""; end; define event caption; put ""; put TEXT; finish: put "" CR; put "" / if cmp(TYPE, "T"); put "" / if cmp(TYPE, "L"); end; /*==========ODA==========*/ define event pre_post; start: put PREHTML; putq '' /if exists(PREIMAGE); put PRETEXT; finish: put POSTTEXT; putq '' /if exists(POSTIMAGE); put POSTHTML; end; define event proc; put "
" CR; finish: put "
" CR; end; define event output; put "
" CR; finish: put "
" CR; put "" CR; end; define event align_output; put "
" CR; finish: put "
" CR; end; define event byline; put ""; put VALUE; put "" CR; end; define event proc_title; put ""; put VALUE; put "" CR; end; /*-------------------------------------------------------eric-*/ /*-- For inline formatting. Currently, everything is --*/ /*-- a span function. That could be enhanced to more --*/ /*-- varied events later. --*/ /*----------------------------------------------------5Mar 03-*/ define event span; start: trigger pre_post; set $pre_post POSTTEXT; do /if postimage; set $pre_post $pre_post '' /if exists(POSTIMAGE); done; set $pre_post $pre_postput POSTHTML; put '"; put value; finish: put ""; put $pre_post; unset $pre_post; end; define event nbspace; start: put space ; end; define event format; put '"; put value; put ""; end; define event title_format_section; put '"; trigger hyperlink_value / if exists(URL); put VALUE / if !exists(URL); put ""; end; define event proc_title_group; finish: put "" nl; end; define event proc_note_group; start: put "" nl; put "" nl; finish: put "" nl; end; define event system_title; start: put ""; put VALUE; break /if exists(value); put ' ' /if exists(empty); finish: put "" nl; end; define event system_footer; start: put ""; put VALUE; finish: put "" CR; end; define event note; put ""; put VALUE; put "" CR; end; define event warning; put ""; put VALUE; put "" CR; end; define event error; put ""; put VALUE; put "" CR; end; define event fatal; put ""; put VALUE; put "" CR; end; define event branch; start: break / if hidden; trigger contents_branch; finish: break / if hidden; trigger contents_branch; end; define event proc_branch; start: break / if hidden; set $proc_name "true"; trigger contents_branch; trigger pages_branch; unset $proc_name; finish: break / if hidden; set $proc_name "true"; trigger contents_branch; trigger pages_branch; unset $proc_name; end; define event leaf; start: break / if hidden; trigger contents_leaf; end; /**********************************/ /* These events are specific to */ /* javameta output. Some of these */ /* are also applicable to the */ /* MSOffice2k tagset (cdh) */ /**********************************/ define event java_graph; start: put " " CR; end; define event java_unsupported; put "Sorry, your browser does not support the applet tag." CR; putq 'The graph ' code ' cannot be displayed.' CR; end; define event metacode_parameter; start: put '' CR; end; define event graph_actx_width; style=Graph; pure_style; put ' WIDTH="' WIDTH 'px"' CR / breakif !cmp(WIDTH , "0" ); putq " WIDTH=" OUTPUTWIDTH CR / if exists(OUTPUTWIDTH); put ' WIDTH="640px"' CR / if !exists(OUTPUTWIDTH); end; define event graph_actx_height; style=Graph; pure_style; put ' HEIGHT="' DEPTH 'px"' CR / breakif !cmp( DEPTH , "0" ); putq " HEIGHT=" OUTPUTHEIGHT CR / if exists(OUTPUTHEIGHT); put ' HEIGHT="480px"' CR / if !exists(OUTPUTHEIGHT); end; define event graph_fxd_attributes; pure_style; trigger graph_actx_width; trigger graph_actx_height; putq " CLASS=" HTMLCLASS CR; put ' ALIGN="top">' CR; end; define event graph_attribute; put " " NAME; putq "=" VALUE CR; end; define event graph_parameter; putq "" CR; end; define event graph_border; start: put '' CR; put '' CR; put '' CR; put '' CR; put '
' CR; finish: put '
' CR; end; /*** symbols **/ define event super; start: put "" ; put VALUE; put "" ; end ; define event sub; start: put "" ; put VALUE; put "" ; end ; define event dagger; start: put '†' ; end ; define event newline; do /if value; eval $ncount inputn(value, "3."); else; eval $ncount 1; done; do /while $ncount; put "
" nl; eval $ncount $ncount-1; done; unset $ncount; end; end; define style styles.theme; parent=styles.default; /* Assign colors */ %let ActiveTitle = %STR(activecaption); %let Background = %STR(background); %let Hilight = %STR(highlight); %let HilightText = %STR(highlighttext); %let TitleText = %STR(captiontext); %let Window = %STR(window); %let WindowText = %STR(windowtext); %let Scrollbar = %STR(scrollbar); %let InactiveTitle = %STR(inactivecaption); %let Menu = %STR(menu); %let WindowFrame = %STR(windowframe); %let MenuText = %STR(menutext); %let ActiveBorder = %STR(activeborder); %let InactiveBorder = %STR(inactiveborder); %let AppWorkspace = %STR(appworkspace); %let ButtonFace = %STR(buttonface); %let ButtonShadow = %STR(buttonshadow); %let GrayText = %STR(graytext); %let ButtonText = %STR(buttontext); %let InactiveTitleText = %STR(inactivecaptiontext); %let ButtonHilight = %STR(buttonhighlight); %let ButtonDkShadow = %STR(buttonshadow); %let ButtonLight = %STR(buttonhighlight); %let InfoText = %STR(infotext); %let InfoWindow = %STR(infobackground); /* Assign background properties */ %let BackgroundImage = %STR(); %let Watermark = %STR(1); /* Assign sounds */ %let AppGPFault = %STR(); %let Maximize = %STR(); %let Minimize = %STR(); %let MenuCommand = %STR(); %let MenuPopup = %STR(); %let Open = %STR(); %let Close = %STR(); %let RestoreDown = %STR(); %let RestoreUp = %STR(); %let RingIn = %STR(); %let Ringout = %STR(); %let SystemAsterisk = %STR(); %let SystemDefault = %STR(); %let SystemExclamation = %STR(); %let SystemExit = %STR(); %let SystemHand = %STR(); %let SystemQuestion = %STR(); %let SystemStart = %STR(); %let EmptyRecycleBin = %STR(); /* Assign images */ %let NoteImage = %STR(); %let WarnImage = %STR(); %let ErrorImage = %STR(); %let FatalImage = %STR(); style fonts / "docFont" = ("Arial, sans-serif", 2) "headingFont" = ("Arial, sans-serif", 3, bold) "headingEmphasisFont" = ("Arial, sans-serif", 3, italic bold) "FixedFont" = ("'Courier New', monospace", 3 ) "FixedHeadingFont" = ("'Courier New', monospace", 3 ) "FixedStrongFont" = ("'Courier New', monospace", 3, bold) "FixedEmphasisFont" = ("'Courier New', monospace", 2, italic) "EmphasisFont" = ("Arial, sans-serif", 2, italic) "StrongFont" = ("Arial, sans-serif", 3, bold) "TitleFont" = ("Arial, sans-serif", 4, italic bold) "TitleFont2" = ("Arial, sans-serif", 3, italic bold) "NoFont" = ("",2) ; style GraphFonts / "GraphTitleFont" = ("Arial", 14pt, bold) "GraphFootnoteFont" = ("Arial", 12pt, bold) "GraphLabelFont" = ("Arial", 12pt, bold) "GraphValueFont" = ("Arial", 10pt) "GraphDataFont" = ("Arial", 8pt) ; /* Set embeds */ %let Maximize = %STR(); %let Minimize = %STR(); %let MenuCommand = %STR(); %let MenuPopup = %STR(); %let SystemStart = %STR(); %let SystemQuestion = %STR(); %let AppGPFault = %STR(); %let SystemAsterisk = %STR(); %let SystemExclamation = %STR(); style colors / "docbg" = &Background "docfg" = &MenuText "contentbg" = &Menu "contentfg" = &MenuText "link1" = &ActiveTitle "link2" = &Background "Contitlefg" = &MenuText "Confolderfg" = &MenuText "Conentryfg" = &MenuText "systitlebg" = &Background "systitlefg" = &ActiveBorder "titlebg" = &Background "titlefg" = &ActiveBorder "proctitlebg" = &Background "proctitlefg" = &ActiveBorder "captionbg" = &Background "captionfg" = &MenuText "bylinebg" = &ActiveTitle "bylinefg" = &TitleText "notebg" = &Hilight "notefg" = &HilightText "tablebg" = &AppWorkspace "tableborder" = &MenuText "batchfg" = &MenuText "batchbg" = &Menu "databg" = &Menu "datafg" = &MenuText "databgstrong" = &Menu "datafgstrong" = &MenuText "databgemph" = &Menu "datafgemph" = &MenuText "headerbg" = &ActiveTitle "headerfg" = &TitleText "headerbgstrong" = &ActiveTitle "headerfgstrong" = &TitleText "headerbgemph" = &ActiveTitle "headerfgemph" = &TitleText "hilight" = &Hilight "hilighttext" = &HilightText ; style GraphColors / "gdata1" = cx193296 "gdata2" = cxFFC500 "gdata3" = cx560467 "gdata4" = cx26C4BE "gdata5" = cxC3050E "gdata6" = cxFF9600 "gdata7" = cxAB2CED "gdata8" = cxFFE400 "gdata9" = cx6170FF "gdata10" = cx75006B "gdata11" = cx66A404 "gdata12" = cxC5D5F4 "gcdata1" = cx2A25D9 "gcdata2" = cx763810 "gcdata3" = cx426952 "gcdata4" = cxC1161C "gcdata5" = cx9D3CDB "gcdata6" = cx7F8E1F "gcdata7" = cxB26084 "gcdata8" = cx2597FA "gcdata9" = cxC08A13 "gcdata10" = cx47A82A "gcdata11" = cxB38EF3 "gcdata12" = cxF7AC4E "gwalls" = cxFFFFFF "gfloor" = cxFFFFFF "glegend" = cxFFFFFF "gshadow" = cx000000 "gaxis" = cx000000 "ggrid" = cx000000 "goutlines" = cx000000 "gborderlines" = cx000000 "glabel" = cx000000 "gtext" = cx000000 "gramp2cstart" = cxFFFFFF "gramp2cend" = cx193296 "gconramp2cstart" = cxFFFFFF "gconramp2cend" = cx6497EB "gramp3cstart" = cx193296 "gramp3cneutral" = cxFFFFFF "gramp3cend" = cxC3050E "gconramp3cstart" = cx0000FF "gconramp3cneutral" = cxFF00FF "gconramp3cend" = cxFF0000 /* the following color values are temporary */ /* they must be updated by the UI group */ "gheader" = colors("docbg") "greferencelines" = cxCDCDCD "ginset" = cxFFFFFF "ginsetheader" = colors("docbg") "gdata" = cxB9CFE7 "gcdata" = cx000000 "goutlier" = cxB9CFE7 "gcoutlier" = cx000000 "gfit" = cx003178 "gcfit" = cx003178 "gconfidence" = cxB9CFE7 "gcconfidence" = cx003178 "gpredict" = cx003178 "gcpredict" = cx003178 "gpredictlim" = cxB9CFE7 "gcpredictlim" = cx003178 "gerror" = cxB9CFE7 "gcerror" = cx000000 ; %let javascript = %STR(); style theme / "BackgroundImage" = "&BackgroundImage" "TOCAudio" = "&javascript&Maximize&Minimize&MenuPopup&MenuCommand" "BodyAudio" = "&javascript&SystemQuestion&AppGPFault" "NoteImage" = "&NoteImage" "WarnImage" = "&WarnImage" "FatalImage" = "&FatalImage" "ErrorImage" = "&ErrorImage" "Content Title" = "Table of Contents
" "Watermark" = "&Watermark" "prehtml flyover" = "" "posthtml flyover" = "" "Pre Title" = "" "Post Title" = "" ; style html / "fake bullet" = "·" "Line" = "
" "break" = "
" "prehtml flyover bullet" = "·" "prehtml flyover line" = "
" "posthtml flyover line" = "

" "expandAll" = "" "prefix1" = "The " "suffix1" = " Procedure" "Pages Title" = "Table of Pages" "Pre Note Banner" = "
" "Post Note Banner" = "
NOTE:
" "Pre Warn Banner" = "
" "Post Warn Banner" = "
WARNING:
" "Pre Error Banner" = "
" "Post Error Banner" = "
ERROR:
" "Pre Fatal Banner" = "
" "Post Fatal Banner" = "
FATAL:
" "Line Break" = "
" ; style Container / ForeGround = colors("docfg") Font = Fonts("DocFont") ; style Body from Document / PageBreakHtml = html("Line") LeftMargin = 8 RightMargin = 8 PreHtml = theme("BodyAudio") BackgroundImage = theme("BackgroundImage") BackGround = colors("docbg") Watermark = theme("Watermark") ; style Contents from Document / LeftMargin = 2 RightMargin = 2 BackGround = colors("contentbg") PageBreakHtml = html("break") Bullet = "upper-roman" font_face = 'menu' leftmargin = 5px PreHtml = theme("TOCAudio") tagattr = ' onload="expandAll()"' ; style IndexItem from Container / Bullet = "NONE" ListEntryAnchor = yes Font = fonts("NoFont") LeftMargin = 6pt ; style ContentFolder from IndexItem / ListEntryAnchor = no PreHtml = theme("prehtml flyover") PostHtml = theme("posthtml flyover") font_face = 'menu' tagattr = ' onclick="play(''MenuPopup'')"' ; style ContentItem from IndexItem / font_face = 'menu' tagattr = ' onclick="play(''MenuCommand'')"' ; style IndexProcName from Index / PreText = html("prefix1") PostText = html("suffix1") PreHtml = theme("prehtml flyover") PostHtml = theme("posthtml flyover") Bullet = "upper-roman" ListEntryAnchor = no font_face = 'menu' leftmargin = 0 tagattr = ' onclick="play(''MenuPopup'')"' ; style IndexAction from Index / Foreground = colors("hilighttext") Background = colors("hilight") Font = fonts("NoFont") ; style IndexTitle from Index ; style ContentTitle from IndexTitle / PreHtml = html("expandAll") PreText = theme("content title") PostHtml = theme("posthtml flyover") ; style TitlesAndFooters from Container / ForeGround = colors("systitlefg") BackGround = colors("docbg") PreHTML = theme("Pre Title") Font = Fonts("TitleFont2") PostHTML = theme("Post Title") ; style ProcTitle from TitlesAndFooters / ForeGround = colors("proctitlefg") ; style NoteBanner from Note / PreHtml = html("Pre Note Banner") PreImage = theme("NoteImage") PreText = html("Post Note Banner") ForeGround = colors("notebg") BackGround = colors("notefg") ; style WarnBanner from Note / PreHtml = html("Pre Warn Banner") PreImage = theme("WarnImage") PreText = html("Post Warn Banner") ForeGround = colors("notebg") BackGround = colors("notefg") ; style FatalBanner from Note / PreHtml = html("Pre Fatal Banner") PreImage = theme("FatalImage") PreText = html("Post Fatal Banner") ForeGround = colors("notebg") BackGround = colors("notefg") ; style ErrorBanner from Note / PreHtml = html("Pre Error Banner") PreImage = theme("ErrorImage") PreText = html("Post Error Banner") ForeGround = colors("notebg") BackGround = colors("notefg") ; style Output from Container / BorderWidth = 1 BorderColor = colors("tableborder") CellSpacing = 1 CellPadding = 7 Frame = BOX Rules = GROUPS BackGround = colors("tablebg") ; style Batch from Output / BorderWidth = 0 BackGround = colors("batchbg") ForeGround = colors("batchfg") Font = fonts("FixedFont") ; Style GraphBackground from GraphBackground "Graph background attributes" / Foreground = GraphColors("gwalls") Background = GraphColors("gwalls") ; end; run;