home *** CD-ROM | disk | FTP | other *** search
/ PC/CD Gamer UK 45 / PCGAMER45.bin / netware / msie4pp / ie4_s3.cab / IE4_3.CAB / MSHTMENU.DLL / 2110 / FORPAR.DLG < prev    next >
Text File  |  1997-04-04  |  23KB  |  646 lines

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD W3 HTML 3.2//EN">
  2. <HTML STYLE="font: messagebox">
  3. <HEAD>
  4. <META NAME=GENERATOR CONTENT="Trident 3320">
  5.  
  6. <TITLE id=dialogTitle>
  7. Paragraph
  8. </TITLE>
  9.  
  10. <SCRIPT LANGUAGE=JavaScript>
  11.  
  12. //+-------------------------------------------------------------------------
  13. //
  14. //  This section contains code to be moved into a GLOBAL MODULE outside
  15. //  of this particular dialog.
  16. //
  17. //--------------------------------------------------------------------------
  18.  
  19.  
  20.     //----------------------------------------------------------------------------------
  21.     //
  22.     //  Synopsis:   Takes a decimal value and returns its hexadecomal equivalent.
  23.     //
  24.     //  Arguments:  decimal     The value to convert
  25.     //
  26.     //  Returns:    A hexadecimal string. NOTE: the string does not include the
  27.     //              "0x" that's standard at the beginning of the hexadecimal numbers.
  28.     //
  29.     //----------------------------------------------------------------------------------
  30.  
  31.     function CHex(decimal)
  32.     {
  33.         var hd = "0123456789ABCDEF";
  34.         lngConvert = parseInt(decimal);
  35.         if (decimal < 16)
  36.         {
  37.             return (hd.charAt(decimal));
  38.         }
  39.         else
  40.         {
  41.             return (CHex(decimal / 16) + hd.charAt(parseInt(decimal % 16)));
  42.         }
  43.     }   //  CHex
  44.  
  45.  
  46.     //--------------------------------------------------------------------------------
  47.     //
  48.     //  Synopsis:   Takes a six character string and swaps the first two and
  49.     //              last two values. This is useful because queryCommandState returns
  50.     //              color values with the red and blue values flipped.
  51.     //
  52.     //  Arguments:  strColor    The 6 character string to be flipped.
  53.     //
  54.     //  Returns:    A 6 character string.
  55.     //
  56.     //-------------------------------------------------------------------------------
  57.  
  58.     function colorFlip(strColor)
  59.     {
  60.         var strLeft;
  61.         var strRight;
  62.  
  63.         strLeft = strColor.substring(0,2);
  64.         strRight = strColor.substring(4,6);
  65.  
  66.         return strRight + strColor.substring(2,4) + strLeft;
  67.     }   //  colorFlip
  68.  
  69.  
  70.     //-----------------------------------------------------------------------------
  71.     //
  72.     //  Synopsis:   Takes a hexidecimal value and returns its decimal equivalent.
  73.     //
  74.     //  Arguments:  strHex      The hexadecimal value
  75.     //
  76.     //  Returns:    A number
  77.     //
  78.     //-----------------------------------------------------------------------------
  79.  
  80.     function CDec(strHex)
  81.     {
  82.         if ("0x" != strHex.substring(0,2))
  83.         {
  84.             strHex = "0x" + strHex;
  85.         }
  86.         return parseInt(strHex);
  87.     }   //  CDec
  88.  
  89.  
  90.     //----------------------------------------------------------------------
  91.     //
  92.     //  Synopsis:   Turns on the document's expando property.  When this
  93.     //              property is on, it is possible to create new expando
  94.     //              properties or assign to existing ones.
  95.     //
  96.     //  Arguments:  none
  97.     //
  98.     //  Returns:    Nothing
  99.     //
  100.     //----------------------------------------------------------------------
  101.  
  102.     function expandoOn()
  103.     {
  104.         document.expando = true;
  105.     }   //  expandoOn
  106.  
  107.  
  108.     //----------------------------------------------------------------------
  109.     //
  110.     //  Synopsis:   Turns off the document's expando property.  When this
  111.     //              property is off, it is possible to read the value of
  112.     //              existing expando properties, but not possible to create
  113.     //              new ones or modify existing ones.
  114.     //
  115.     //              EXPANDO SHOULD BE OFF EXCEPT WHEN CREATING/MODIFYING
  116.     //              EXPANDO PROPERTIES.  This will save hours debugging
  117.     //              accidentally created expando properties.
  118.     //
  119.     //  Arguments:  none
  120.     //
  121.     //  Returns:    Nothing.
  122.     //
  123.     //----------------------------------------------------------------------
  124.  
  125.     function expandoOff()
  126.     {
  127.         document.expando = false;
  128.     }   //  expandoOff
  129.  
  130.  
  131.     //+--------------------------------------------------------------------------------
  132.     //
  133.     //  Synopsis:   Sets the state of a radio button based on a range and a command id.
  134.     //              The command ID comes from the VALUE of the radio button. (It's
  135.     //              prefixed by "_cmd".)
  136.     //
  137.     //  Arguments:  radio   The radio button we're partying on
  138.     //              range   The range we're querying the status of
  139.     //
  140.     //  Returns:    nothing
  141.     //
  142.     //---------------------------------------------------------------------------------
  143.  
  144.     function getRadioStateCmd(radio, range)
  145.     {
  146.         if (range.queryCommandEnabled(radio.value.substring(4)))
  147.         {
  148.             if(!range.queryCommandIndeterm(radio.value.substring(4)))
  149.             {
  150.                 radio.checked = range.queryCommandState(radio.value.substring(4));
  151.             }
  152.             //
  153.             //  Add code for indeterminate state
  154.             //
  155.         }
  156.     }   //  getRadioStateCmd
  157.  
  158.  
  159.     //+--------------------------------------------------------------------------------
  160.     //
  161.     //  Synopsis:   Sets the state of a select box based on a range and a command id.
  162.     //              The command ID comes from the ID of the select box. (It's
  163.     //              prefixed by "cmd".) NOTE: The VALUEs of OPTIONs of the SELECT box
  164.     //              must be set to the possible return values of the queryCommandValue
  165.     //              method.
  166.     //
  167.     //  Arguments:  radio   The select box we're partying on
  168.     //              range   The range we're querying the status of
  169.     //
  170.     //  Returns:    nothing
  171.     //
  172.     //---------------------------------------------------------------------------------
  173.  
  174.     function getSelectStateCmd(select, range)
  175.     {
  176.         if (globalDoc.queryCommandSupported(select.id.substring(3)))
  177.         {
  178.             for (index = 0; index < select.options.length; index++)
  179.             {
  180.                 if ((select.options[index].value)
  181.                     == (range.queryCommandValue(select.id.substring(3))))
  182.                 {
  183.                     select.selectedIndex = index;
  184.                     break;
  185.                 }
  186.             }
  187.         }
  188.     }   //  getSelectStateCmd
  189.  
  190.  
  191.     //---------------------------------------------------------------------------------
  192.     //
  193.     //  Synopsis:   Takes an element and a range and sets the state of the element
  194.     //              based on the state of the range.
  195.     //              HOW IT WORKS: See comments in the code.
  196.     //
  197.     //  Arguments:  element     The element we're setting
  198.     //              range       The range we're querying the status of.
  199.     //
  200.     //  Returns:    nothing
  201.     //
  202.     //---------------------------------------------------------------------------------
  203.  
  204.     function getStateCmd(element, range)
  205.     {
  206.         //
  207.         //  Radio buttons that are set using a command id have a "_cmd" prefix in
  208.         //  their VALUE. This is to distinguish them from radio buttons that are
  209.         //  not set using a command id, but have to have the same name as radio
  210.         //  buttons that are.
  211.         //
  212.         if (("radio" == element.type) && ("_cmd" == element.value.substring(0,4)))
  213.         {
  214.             getRadioStateCmd(element, range);
  215.         }
  216.  
  217.         //
  218.         //  SELECT boxes with the name "setCmdID" are set based on the command
  219.         //  id in their ID property (minus the "cmd" prefix). See the notes in
  220.         //  the getSelectStateCmd function for more info.
  221.         //
  222.         else if (("SELECT" == element.tagName) && ("setCmdID" == element.name))
  223.         {
  224.             getSelectStateCmd(element, range);
  225.         }
  226.     }   //  getStateCmd
  227.  
  228.  
  229.     //+--------------------------------------------------------------------------------
  230.     //
  231.     //  Synopsis:   Loops through all the elements in the dialog and sets the
  232.     //              appropriate elements based on the type and properties of the
  233.     //              element.
  234.     //
  235.     //  Arguments:  none
  236.     //
  237.     //  Returns:    nothing
  238.     //
  239.     //---------------------------------------------------------------------------------
  240.  
  241.     function initDialogCmd()
  242.     {
  243.         var index;
  244.  
  245.         for (index = 0; index < document.all("radJustify").length; index++)
  246.         {
  247.             getRadioStateCmd(document.all("radJustify")[index], globalDoc.selection.createRange());
  248.         }
  249.  
  250.         getSelectStateCmd(cmd2234, globalDoc.selection.createRange());
  251.  
  252.     }   //  initDialogCmd
  253.  
  254.  
  255.     //+--------------------------------------------------------------------------------
  256.     //
  257.     //  Synopsis:   Sets the state of a range based on the state of a radio button
  258.     //              and a command id. The command id comes from the VALUE of the
  259.     //              radio button. (It's prefixed by "_cmd".)
  260.     //
  261.     //  Arguments:  radio   The radio button we're querying the state of
  262.     //              range   The range we're partying on
  263.     //
  264.     //  Returns:    nothing
  265.     //
  266.     //---------------------------------------------------------------------------------
  267.  
  268.     function setRadioStateCmd(radio, range)
  269.     {
  270.         if (radio.checked != range.queryCommandState(radio.value.substring(4)))
  271.         {
  272.             if (range.queryCommandEnabled(radio.value.substring(4)))
  273.             {
  274.                 range.execCommand(radio.value.substring(4));
  275.             }
  276.         }
  277.     }   //  setRadioStateCmd
  278.  
  279.  
  280.     //+--------------------------------------------------------------------------------
  281.     //
  282.     //  Synopsis:   Sets the state of a range based on the selection in a SELECT box
  283.     //              and a command id. The command id comes from the ID of the SELECT
  284.     //              box (minus the "cmd" prefix). NOTE: The VALUEs of the OPTIONs of the
  285.     //              SELECT box must be set to the possible values for the execCommand
  286.     //              method.
  287.     //
  288.     //  Arguments:  select  The select box we're querying the value of.
  289.     //              range   The range we're partying on.
  290.     //
  291.     //  Returns:    nothing
  292.     //
  293.     //---------------------------------------------------------------------------------
  294.  
  295.     function setSelectStateCmd(select, range)
  296.     {
  297.         if (globalDoc.queryCommandSupported(select.id.substring(3)))
  298.         {
  299.             range.execCommand(select.id.substring(3), false,
  300.                 select.options[select.selectedIndex].value);
  301.         }
  302.     }   //  setSelectStateCmd
  303.  
  304.  
  305.     //---------------------------------------------------------------------------------
  306.     //
  307.     //  Synopsis:   Takes an element and a range and sets the state of the range
  308.     //              based on the state of the element.
  309.     //              HOW IT WORKS: See comments in the code.
  310.     //
  311.     //  Arguments:  element     The element we're querying the status of.
  312.     //              range       The range we're partying on.
  313.     //
  314.     //  Returns:    nothing
  315.     //
  316.     //---------------------------------------------------------------------------------
  317.  
  318.     function setStateCmd(element, range)
  319.     {
  320.         //
  321.         //  Radio buttons that set apply a command id to a range have a "_cmd" prefix
  322.         //  in their VALUE attribute. This is to distinguish them from radio buttons
  323.         //  that aren't associated with a command id, but have the same name as radio
  324.         //  buttons that are.
  325.         //
  326.         if (("radio" == element.type) && ("_cmd" == element.value.substring(0,4)))
  327.         {
  328.             setRadioStateCmd(element, range);
  329.         }
  330.  
  331.         //
  332.         //  SELECT boxes with a name of "setCmdID" effect the range based on the
  333.         //  command id in their ID property (minus the "cmd" prefix). See the notes in
  334.         //  the setSelectStateCmd function for more info.
  335.         //
  336.         else if (("SELECT" == element.tagName) && ("setCmdID" == element.name))
  337.         {
  338.             setSelectStateCmd(element, range);
  339.         }
  340.     }   //  setStateCmd
  341.  
  342.  
  343.     //+--------------------------------------------------------------------------------
  344.     //
  345.     //  Synopsis:   Loops through all the elements in the dialog and sets the
  346.     //              properties of the document based on the type and properties of
  347.     //              the element.
  348.     //
  349.     //  Arguments:  none
  350.     //
  351.     //  Returns:    nothing
  352.     //
  353.     //---------------------------------------------------------------------------------
  354.  
  355.     function closeDialogCmd()
  356.     {
  357.         var index;
  358.  
  359.         for (index = 0; index < document.all("radJustify").length; index++)
  360.         {
  361.             setRadioStateCmd(document.all("radJustify")[index], globalDoc.selection.createRange());
  362.         }
  363.  
  364.         setSelectStateCmd(cmd2234, globalDoc.selection.createRange());
  365.     }   //  closeDialogCmd
  366.  
  367.  
  368.     //+---------------------------------------------------------------------
  369.     //
  370.     //  Synopsis:   Given a string, returns the number the string represents.
  371.     //              This is needed because current localization tools can
  372.     //              only find strings.
  373.     //
  374.     //  Arguments:  string  The string we're changing into a number.
  375.     //
  376.     //  Returns:    a number
  377.     //
  378.     //----------------------------------------------------------------------
  379.  
  380.     function number(string)
  381.     {
  382.         return parseFloat(string);
  383.     }   //  number
  384.  
  385.  
  386.     //+---------------------------------------------------------------------
  387.     //
  388.     //  Synopsis:   If the current selection is not text or none, walk up
  389.     //              the tree until we select something that is
  390.     //
  391.     //  Argument:   doc   The document we're partying on
  392.     //
  393.     //  Returns:    nothing
  394.     //
  395.     //----------------------------------------------------------------------
  396.  
  397.     function walkToText(doc)
  398.     {
  399.         var currentRange;
  400.         var element;
  401.  
  402.         while (("None" != doc.selection.type) && ("Text" != doc.selection.type))
  403.         {
  404.             currentRange = doc.selection.createRange();
  405.             element = currentRange.commonParentElement();
  406.             currentRange = doc.rangeFromElement(element);
  407.             currentRange.select();
  408.         }
  409.     }   //  walkToText
  410.  
  411. </SCRIPT>
  412.  
  413. <SCRIPT LANGUAGE=JavaScript>
  414.  
  415. //+--------------------------------------------------------------------------
  416. //
  417. //  This section contains variables that need to be LOCALIZED
  418. //
  419. //---------------------------------------------------------------------------
  420.  
  421. var L_FormatParagraph_DIALOG_Width_Text  =   "30.4em";
  422. var L_FormatParagraph_DIALOG_Height_Text =   "15em";
  423.  
  424. var L_NoHelp_Text = "No help topic available.";
  425.  
  426. </SCRIPT>
  427.  
  428. <SCRIPT LANGUAGE=JavaScript>
  429.  
  430. //+-------------------------------------------------------------------------
  431. //
  432. //  This section contains code LOCAL to this particular dialog.
  433. //
  434. //--------------------------------------------------------------------------
  435.  
  436. alert("Hit Alert");
  437.  
  438.     expandoOff();
  439.  
  440.     //  Set dialog dimensions
  441.         window.width    =   L_FormatParagraph_DIALOG_Width_Text;
  442.         window.height   =   L_FormatParagraph_DIALOG_Height_Text;
  443.  
  444.     //  Global variables
  445.         var globalDoc = window.dialogArgs.document;     //  The document we're working on.
  446.  
  447.  
  448.     //+--------------------------------------------------------------------------------
  449.     //
  450.     //  Synopsis:   Looks at the currently selected text and fills the dialog options
  451.     //                  appropriately
  452.     //
  453.     //  Arguments:  None
  454.     //
  455.     //  Returns:    Nothing
  456.     //
  457.     //---------------------------------------------------------------------------------
  458.  
  459.     function loadBdy()
  460.     {
  461.         walkToText(globalDoc);
  462.         initDialogCmd();
  463.     }   //loadBdy
  464.  
  465.  
  466.     //-----------------------------------------------------------------------
  467.     //
  468.     //  Synopsis:   Closes the dialog without doing anything.
  469.     //
  470.     //  Arguments:  none.
  471.     //
  472.     //  Returns:    nothing
  473.     //
  474.     //-----------------------------------------------------------------------
  475.  
  476.     function btnCancelClick()
  477.     {
  478.         window.close();
  479.     }   //  btnCancelClick
  480.  
  481.  
  482.     //+---------------------------------------------------------------------------------
  483.     //
  484.     //  Synopsis:   Goes through all the controls on the dialog and sets them to their
  485.     //              default values. BUGBUG This function should go away once we can get
  486.     //              a form inside a 2D div.
  487.     //
  488.     //  Arguments:  none.
  489.     //
  490.     //  returns:    nothing.
  491.     //
  492.     //----------------------------------------------------------------------------------
  493.  
  494.     function btnClearClick()
  495.     {
  496.         cmd2234.value = "<P>";         //  Paragraph style select box
  497.                                        //  set to "Normal"
  498.         radJustifyLeft.checked = true;     //  Text alignment
  499.     }   //  btnClearClick
  500.  
  501.  
  502.     //+----------------------------------------------------------------------
  503.     //
  504.     //  Synopsis:   Closes the dialog after applying the user's selections
  505.     //              to the document
  506.     //
  507.     //  Arguments:  none
  508.     //
  509.     //  Returns:    nothing
  510.     //
  511.     //-----------------------------------------------------------------------
  512.  
  513.     function btnOKClick()
  514.     {
  515.         closeDialogCmd();
  516.         window.close();
  517.     }   //  btnOKClick
  518.  
  519.  
  520. </SCRIPT>
  521.  
  522. <SCRIPT LANGUAGE=JavaScript FOR=document EVENT="onkeypress()">
  523.  
  524.     //+---------------------------------------------------------------------
  525.     //
  526.     //  Synopsis:   Looks for the ENTER and ESCAPE keypresses and runs
  527.     //              the default action.
  528.     //
  529.     //  Arguments:  see OM spec
  530.     //
  531.     //  Returns:    nothing
  532.     //
  533.     //-----------------------------------------------------------------------
  534.  
  535.         var htmlKeyReturn = 13;
  536.         var htmlKeyEscape = 27;
  537.  
  538.         if (event.keyCode == htmlKeyReturn)
  539.         {
  540.             btnOKClick();
  541.         }
  542.  
  543.         else if (event.keyCode == htmlKeyEscape)
  544.         {
  545.             btnCancelClick();
  546.         }
  547.  
  548. </SCRIPT>
  549.  
  550. <SCRIPT LANGUAGE=JavaScript FOR=document EVENT="onhelp()">
  551.  
  552. //+-------------------------------------------------------------------------
  553. //
  554. //  Synopsis:   Opens the help file with the appropriate helpid
  555. //
  556. //  Arguments:  none
  557. //
  558. //  Returns:    nothing
  559. //
  560. //--------------------------------------------------------------------------
  561.  
  562.     //  BUGBUG  Once we get help for the editing dialogs, this function 
  563.     //          will have to change.
  564.     alert(L_NoHelp_Text);
  565.  
  566. </SCRIPT>
  567.  
  568. </HEAD>
  569.  
  570. <BODY style="font: messagebox; background: 'buttonface';" onLoad="loadBdy()">
  571.  
  572. <DIV style="font: messagebox; position: absolute; LEFT: '1em'; TOP: '1em'; WIDTH: '8em'; HEIGHT: '1em'">
  573. <LABEL For=cmd2234 id=lblParaStyle tabIndex=-1>
  574. <U>P</U>aragraph Style
  575. </LABEL>
  576. </DIV>
  577.  
  578. <SELECT id=cmd2234 ACCESSKEY=p NAME="setCmdID" tabIndex=10
  579. style="font: messagebox; LEFT: '1em'; TOP: '2.5em'; WIDTH: '27.7em'; HEIGHT: '2.1em'; position: absolute;">
  580.     <OPTION id=optNormal    VALUE="<P>" selected> Normal          </OPTION>
  581.     <OPTION id=optFormatted VALUE="<PRE>">        Formatted       </OPTION>
  582.     <OPTION id=optAddress   VALUE="<ADDRESS>">    Address         </OPTION>
  583.     <OPTION id=optH1        VALUE="<H1>">         Heading 1       </OPTION>
  584.     <OPTION id=optH2        VALUE="<H2>">         Heading 2       </OPTION>
  585.     <OPTION id=optH3        VALUE="<H3>">         Heading 3       </OPTION>
  586.     <OPTION id=optH4        VALUE="<H4>">         Heading 4       </OPTION>
  587.     <OPTION id=optH5        VALUE="<H5>">         Heading 5       </OPTION>
  588.     <OPTION id=optH6        VALUE="<H6>">         Heading 6       </OPTION>
  589.     <OPTION id=optNumList   VALUE="<OL>">         Numbered List   </OPTION>
  590.     <OPTION id=optBullet    VALUE="<UL>">         Bulleted List   </OPTION>
  591.     <OPTION id=optDirList   VALUE="<DIR>">        Directory List  </OPTION>
  592.     <OPTION id=optMenuList  VALUE="<MENU>">       Menu List       </OPTION>
  593.     <OPTION id=optDefTerm   VALUE="<DT>">         Definition Term </OPTION>
  594.     <OPTION id=optDef       VALUE="<DD>">         Definition      </OPTION>
  595. </SELECT>
  596.  
  597. <TABLE cellspacing cellPadding=7 borderColorDark=buttonhighlight borderColorLight=buttonshadow border=1 noshade="yes"
  598. style="position:absolute;font: messagebox;LEFT: '1em'; TOP: '5.5em'; WIDTH: '28em'; HEIGHT: '3em'">
  599.     <TR>
  600.         <TD style="font: messagebox; position: relative;LEFT: 0; TOP: 0; WIDTH: '19em'; HEIGHT: '2em'">
  601.         <DIV style="color: buttonface">a</DIV>
  602.         </TD>
  603.     </TR>
  604. </TABLE>
  605.  
  606.             <INPUT name=radJustify id=radJustifyLeft type=radio CHECKED ACCESSKEY=l VALUE=_cmdJustifyLeft tabIndex=15
  607.             style="font: messagebox; LEFT: '6.6em'; TOP: '6.5em'; position: absolute; WIDTH: '1em'; HEIGHT: '1em';">
  608.             <DIV style="font: messagebox; position: absolute;LEFT: '8.3em'; TOP: '6.5em'; WIDTH: '3em'; HEIGHT: '1em'">
  609.             <LABEL style="font: messagebox" For=radJustifyLeft id=lblJustifyLeft tabIndex="-1">
  610.             <U>L</U>eft
  611.             </LABEL>
  612.             </DIV>
  613.             <INPUT name=radJustify id=radJustifyCenter type=radio ACCESSKEY=c VALUE=_cmdJustifyCenter tabIndex=20 
  614.             style="font: messagebox; LEFT: '12.1em'; TOP: '6.5em'; position: absolute; WIDTH: '1em'; HEIGHT: '1em'">
  615.             <DIV style="font: messagebox; position: absolute;LEFT: '13.8em'; TOP: '6.5em'; WIDTH: '4em'; HEIGHT: '1em'">
  616.             <LABEL style="font: messagebox" For=radJustifyCenter id=lblJustifyCenter tabIndex="-1">
  617.             <U>C</U>enter
  618.             </LABEL>
  619.             </DIV>
  620.             <INPUT name=radJustify id=radJustifyRight type=radio ACCESSKEY=r VALUE=_cmdJustifyRight tabIndex=25 
  621.             style="font: messagebox; LEFT: '18.6em'; TOP: '6.5em'; position: absolute; WIDTH: '1em'; HEIGHT: '1em'">
  622.             <DIV style="font: messagebox; position: absolute;LEFT: '20.3em'; TOP: '6.5em'; WIDTH: '3em'; HEIGHT: '1.3em'">
  623.             <LABEL style="font: messagebox" For=radJustifyRight lblJustifyRight tabIndex="-1">
  624.             <U>R</U>ight
  625.             </LABEL>
  626.             </DIV>
  627.  
  628. <DIV style="font: messagebox; position: absolute;background: buttonface; HEIGHT: '1em'; LEFT: '1.5em'; TOP: '5em'; WIDTH: '5em'">
  629. <LABEL id=lblAlign tabIndex="-1"> Align Text</LABEL>
  630. </DIV>
  631.  
  632.  
  633. <BUTTON id=btnOk onclick="btnOKClick()" tabIndex=30
  634. style="font: messagebox; LEFT: '6.8em'; TOP: '9.5em'; WIDTH: '6.8em'; HEIGHT: '2.1em'; position: absolute">
  635. OK</BUTTON>
  636.  
  637. <BUTTON id=btnClear onclick="btnClearClick()" tabIndex=35
  638. style="font: messagebox; LEFT: '14.4em'; TOP: '9.5em'; WIDTH: '6.8em'; HEIGHT: '2.1em'; position: absolute">
  639. Clear All</BUTTON>
  640.  
  641. <BUTTON id=btnCancel onclick="btnCancelClick()"  tabIndex=40
  642. style="font: messagebox; LEFT: '22em'; TOP: '9.5em'; position: absolute; WIDTH: '6.8em'; HEIGHT: '2.1em'">
  643. Cancel</BUTTON>
  644.  
  645. </BODY></HTML>
  646.