//**************************************************************************
//
//
//                       National Institute Of Standards and Technology
//                                    DTS Version 1.1
//         
//                              HTMLSelectElement Interface
//**************************************************************************

function HTMLSelectElement()
{
var tests = new Array (HTML0001HSEE(),HTML0002HSEE(),HTML0003HSEE(),HTML0004HSEE(),HTML0005HSEE(),HTML0006HSEE(),HTML0007HSEE(),HTML0008HSEE(),HTML0009HSEE(),HTML0010HSEE(),HTML0011HSEE(),HTML0012HSEE(),HTML0013HSEE(),HTML0016HSEE(),HTML0017HSEE(),HTML0018HSEE(),HTML0019HSEE());
   return tests;
}

//------------------------ test case HTML-0001HSEE -------------------------
//
// Testing feature - The "type" attribute is the string "select-multiple" when
//                   multiple attribute is true.
//
// Testing approach - Retrieve the "type" attribute from the first 
//                    SELECT element of the testing document and 
//                    examine its value. It should be equal to "select-multiple".
//
// Semantic Requirements: 1
//
// Last modification date - August 25, 1999
//
// Written by: Carmelo Montanez
//----------------------------------------------------------------------------

 function HTML0001HSEE()
 {
   var computedValue = "";
   var expectedValue = "SELECT-MULTIPLE";
   var results = "";
   var testNode = "";

    results = new testResults("HTML0001HSEE");
    results.description = "The \"type\" attribute is the "+
                          "\"select-multiple\" when the multiple "+
                          "attribute is true.";
//
// Retrieve targeted data.
//
      testNode = new HTMLNodeObject(SELECT,FIRST);
//
// and access its "type" attribute.
//
      computedValue = testNode.node.type;
      computedValue = computedValue.toUpperCase();
//
// Write out results 
//
      results.expected = expectedValue;
      results.actual = computedValue;

    return results;
}

//------------------------ End test case HTML-0001HSEE -------------------------
//
//------------------------   test case HTML-0002HSEE   -------------------------
//
// Testing feature - The "selectedIndex" attribute specifies the ordinal 
//                   index of the selected option.
//
// Testing approach - Retrieve the "selectedIndex" attribute from the 
//                    first SELECT element of the testing document and
//                    examine its value. It should be equal to 0. 
//
// Semantic Requirements: 2 
//
// Last modification date - August 25, 1999
//
// Written by: Carmelo Montanez
//----------------------------------------------------------------------------

 function HTML0002HSEE()
 {
   var computedValue = "";
   var expectedValue = 0; 
   var results = "";
   var testNode = "";

    results = new testResults("HTML0002HSEE");
    results.description = "The \"selectedIndex\" attribute specifies "+
                          "the ordinal index of the selected option.";
//
// Retrieve targeted data.
//
      testNode = new HTMLNodeObject(SELECT,FIRST);
//
// and access its "selectedIndex" attribute.
//
      computedValue = testNode.node.selectedIndex;
//
// Write out results
//
      results.expected = expectedValue;
      results.actual = computedValue;

    return results;
}

//------------------------ End test case HTML-0002HSEE -------------------------
//
//------------------------   test case HTML-0003HSEE   -------------------------
//
// Testing feature - The "selectedIndex" attribute returns -1 if no element is
//                   selected. 
//
// Testing approach - Retrieve the "selectedIndex" attribute from the
//                    second SELECT element of the testing document and
//                    examine its value. It should be equal to -1.
//
// Semantic Requirements: 2
//
// Last modification date - October 25, 1999
//
// Written by: Carmelo Montanez
//----------------------------------------------------------------------------

 function HTML0003HSEE()
 {
   var computedValue = "";
   var expectedValue = -1;
   var results = "";
   var testNode = "";

    results = new testResults("HTML0003HSEE");
    results.description = "The \"selectedIndex\" attribute returns -1 "+
                          "if no element is selected.";
//
// Retrieve targeted data.
//
      testNode = new HTMLNodeObject(SELECT,THIRD);
//
// and access its "selectedIndex" attribute.
//
      computedValue = testNode.node.selectedIndex;
//
// Write out results
//
      results.expected = expectedValue;
      results.actual = computedValue;

    return results;
}

//------------------------ End test case HTML-0003HSEE -------------------------
//
//------------------------   test case HTML-0004HSEE   -------------------------
//
// Testing feature - The "value" attribute specifies the current 
//                   form control value.
//
// Testing approach - Retrieve the "value" attribute from the
//                    first SELECT element of the testing document and
//                    examine its value. It should be equal to ...
//
// Semantic Requirements: 4 
//
// Last modification date - August 25, 1999
//
// Written by: Carmelo Montanez
//----------------------------------------------------------------------------

 function HTML0004HSEE()
 {
   var computedValue = "";
   var expectedValue = "EMP0001";
   var results = "";
   var testNode = "";

    results = new testResults("HTML0004HSEE");
    results.description = "The \"value\" attribute specifies "+
                          "the current form control value.";
//
// Retrieve targeted data.
//
      testNode = new HTMLNodeObject(SELECT,FIRST);
//
// and access its "value" attribute.
//
      computedValue = testNode.node.value;
      computedValue = computedValue.toUpperCase()
//
// Write out results
//
      results.expected = expectedValue;
      results.actual = computedValue;

    return results;
}

//------------------------ End test case HTML-0004HSEE -------------------------
//
//------------------------   test case HTML-0005HSEE   -------------------------
//
// Testing feature - The "length" attribute specifies the number of 
//                   options in this SELECT.
//
// Testing approach - Retrieve the "length" attribute from the
//                    first SELECT element of the testing document and
//                    examine its value. It should be equal to 5.
//
// Semantic Requirements: 5 
//
// Last modification date - August 25, 1999
//
// Written by: Carmelo Montanez
//----------------------------------------------------------------------------

 function HTML0005HSEE()
 {
   var computedValue = "";
   var expectedValue = 5;
   var results = "";
   var testNode = "";

    results = new testResults("HTML0005HSEE");
    results.description = "The \"length\" attribute specifies "+
                          "the number of options in this SELECT.";
//
// Retrieve targeted data.
//
      testNode = new HTMLNodeObject(SELECT,FIRST);
//
// and access its "length" attribute.
//
      computedValue = testNode.node.length;
//
// Write out results
//
      results.expected = expectedValue;
      results.actual = computedValue;

    return results;
}

//------------------------ End test case HTML-0005HSEE -------------------------
//
//------------------------   test case HTML-0006HSEE   -------------------------
//
// Testing feature - The "form" attribute returns the form containing
//                   this control.
//
// Testing approach - Retrieve the "form" attribute from the
//                    first SELECT element of the testing document and
//                    examine the value of "id" attribute.  It 
//                    should be equal to "form1".
//
// Semantic Requirements: 6 
//
// Last modification date - November 1, 1999
//
// Written by: Carmelo Montanez
//----------------------------------------------------------------------------

 function HTML0006HSEE()
 {
   var computedValue = "";
   var expectedValue = "FORM1";
   var results = "";
   var testNode = "";

    results = new testResults("HTML0006HSEE");
    results.description = "The \"form\" attribute contains "+
                          "the form containing this element.";
//
// Retrieve targeted data.
//
      testNode = new HTMLNodeObject(SELECT,FIRST);
//
// and access its "form" attribute.
//
      computedValue = testNode.node.form;
      computedValue = computedValue.id.toUpperCase()
//
// Write out results
//
      results.expected = expectedValue;
      results.actual = computedValue;

    return results;
}

//------------------------ End test case HTML-0006HSEE -------------------------
//
//------------------------   test case HTML-0007HSEE   -------------------------
//
// Testing feature - The "form" attribute returns null if this control 
//                   is not within the control of a form.
//
// Testing approach - Retrieve the "form" attribute from the
//                    second SELECT element of the testing document and
//                    examine its value. It should be equal to null.
//
// Semantic Requirements: 7 
//
// Last modification date - August 25, 1999
//
// Written by: Carmelo Montanez
//----------------------------------------------------------------------------

 function HTML0007HSEE()
 {
   var computedValue = "";
   var expectedValue = null;
   var results = "";
   var testNode = "";

    results = new testResults("HTML0007HSEE");
    results.description = "The \"form\" attribute returns "+
                          "null if this control is not within "+
                          "the context of a form."; 
//
// Retrieve targeted data.
//
      testNode = new HTMLNodeObject(SELECT,THIRD);
//
// and access its "form" attribute.
//
      computedValue = testNode.node.form;
//
// Write out results
//
      results.expected = expectedValue;
      results.actual = computedValue;

    return results;
}

//------------------------ End test case HTML-0007HSEE -------------------------
//
//------------------------   test case HTML-0008HSEE   -------------------------
//
// Testing feature - The "options" attribute returns the collection of
//                   OPTION elements contained by this element.
//
// Testing approach - Retrieve the "options" attribute from the
//                    first SELECT element of the testing document and
//                    examine the first and last items of the returned 
//                    collection. Those items should be "EMP0001" and 
//                    "EMP0005" respectively.
//
// Semantic Requirements: 8 
//
// Last modification date - September 28, 1999
//
// Written by: Carmelo Montanez
//----------------------------------------------------------------------------

 function HTML0008HSEE()
 {
   var computedValue = "";
   var expectedValue = "EMP0001 EMP0005";
   var results = "";
   var testNode = "";
   var optionsList = "";

    results = new testResults("HTML0008HSEE");
    results.description = "The \"options\" attribute returns "+
                          "the collection of OPTION elements "+
                          "contained by this element.";
//
// Retrieve targeted data.
//
      testNode = new HTMLNodeObject(SELECT,FIRST);
//
// and access its "options" attribute.
//
      optionsList = testNode.node.options;
      computedValue = optionsList.item(FIRST).text+" ";
      computedValue += optionsList.item(FIFTH).text;
      computedValue = computedValue.toUpperCase();
//
// Write out results
//
      results.expected = expectedValue;
      results.actual = computedValue;

    return results;
}

//------------------------ End test case HTML-0008HSEE -------------------------
//
//------------------------   test case HTML-0009HSEE   -------------------------
//
// Testing feature - The "disabled" attribute indicates that the control
//                   is unavailable in this context.
//
// Testing approach - Retrieve the "disabled" attribute from the
//                    third SELECT element of the testing document and
//                    examine its value.  It should be equal to true.
//
// Semantic Requirements: 9 
//
// Last modification date - August 25, 1999
//
// Written by: Carmelo Montanez
//----------------------------------------------------------------------------

 function HTML0009HSEE()
 {
   var computedValue = "";
   var expectedValue = true;
   var results = "";
   var testNode = "";

    results = new testResults("HTML0009HSEE");
    results.description = "The \"disabled\" attribute indicates "+
                          "that the control is unavailable in "+
                          "this context.";
//
// Retrieve targeted data.
//
      testNode = new HTMLNodeObject(SELECT,SECOND);
//
// and access its "disabled" attribute.
//
      computedValue = testNode.node.disabled;
//
// Write out results
//
      results.expected = expectedValue;
      results.actual = computedValue;

    return results;
}

//------------------------ End test case HTML-0009HSEE -------------------------
//
//------------------------   test case HTML-0010HSEE   -------------------------
//
// Testing feature - The "multiple" attribute (if true) indicates that
//                   multiple OPTION elements may be selected.
//
// Testing approach - Retrieve the "multiple" attribute from the
//                    first SELECT element of the testing document and
//                    examine its value.  It should be equal to true.
//
// Semantic Requirements: 10 
//
// Last modification date - August 26, 1999
//
// Written by: Carmelo Montanez
//----------------------------------------------------------------------------

 function HTML0010HSEE()
 {
   var computedValue = "";
   var expectedValue = true;
   var results = "";
   var testNode = "";

    results = new testResults("HTML0010HSEE");
    results.description = "The \"multiple\" attribute (if true) "+
                          "indicates that multiple OPTION elements "+
                          "may be selected.";
//
// Retrieve targeted data.
//
      testNode = new HTMLNodeObject(SELECT,FIRST);
//
// and access its "multiple" attribute.
//
      computedValue = testNode.node.multiple;
//
// Write out results
//
      results.expected = expectedValue;
      results.actual = computedValue;

    return results;
}

//------------------------ End test case HTML-0010HSEE -------------------------
//
//------------------------   test case HTML-0011HSEE   -------------------------
//
// Testing feature - The "name" attribute specifies the form control or
//                   object name when submitted with a form.
//
// Testing approach - Retrieve the "name" attribute from the
//                    first SELECT element of the testing document and
//                    examine its value.  It should be equal to "select1".
//
// Semantic Requirements: 11
//
// Last modification date - August 26, 1999
//
// Written by: Carmelo Montanez
//----------------------------------------------------------------------------

 function HTML0011HSEE()
 {
   var computedValue = "";
   var expectedValue = "SELECT1";
   var results = "";
   var testNode = "";

    results = new testResults("HTML0011HSEE");
    results.description = "The \"name\" specifies the form control "+
                          "or object name when submitted with a "+
                          "form."; 
//
// Retrieve targeted data.
//
      testNode = new HTMLNodeObject(SELECT,FIRST);
//
// and access its "name" attribute.
//
      computedValue = testNode.node.name;
      computedValue = computedValue.toUpperCase();
//
// Write out results
//
      results.expected = expectedValue;
      results.actual = computedValue;

    return results;
}

//------------------------ End test case HTML-0011HSEE -------------------------
//
//------------------------   test case HTML-0012HSEE   -------------------------
//
// Testing feature - The "size" attribute specifies the number of
//                   visible rows.
//
// Testing approach - Retrieve the "size" attribute from the
//                    first SELECT element of the testing document and
//                    examine its value.  It should be equal to 1.
//
// Semantic Requirements: 12
//
// Last modification date - August 26, 1999
//
// Written by: Carmelo Montanez
//----------------------------------------------------------------------------

 function HTML0012HSEE()
 {
   var computedValue = "";
   var expectedValue = 1;
   var results = "";
   var testNode = "";

    results = new testResults("HTML0012HSEE");
    results.description = "The \"size\" specifies the number of "+
                          "visible rows.";
//
// Retrieve targeted data.
//
      testNode = new HTMLNodeObject(SELECT,FIRST);
//
// and access its "size" attribute.
//
      computedValue = testNode.node.size;
//
// Write out results
//
      results.expected = expectedValue;
      results.actual = computedValue;

    return results;
}

//------------------------ End test case HTML-0012HSEE -------------------------
//
//------------------------   test case HTML-0013HSEE   -------------------------
//
// Testing feature - The "tabIndex" attribute specifies an index that
//                   represents the element's position in the
//                   tabbing order.
//
// Testing approach - Retrieve the "tabIndex" attribute from the
//                    first SELECT element of the testing document and
//                    examine its value.  It should be equal to 7.
//
// Semantic Requirements: 13
//
// Last modification date - October 26, 1999
//
// Written by: Carmelo Montanez
//----------------------------------------------------------------------------

 function HTML0013HSEE()
 {
   var computedValue = "";
   var expectedValue = 7;
   var results = "";
   var testNode = "";

    results = new testResults("HTML0013HSEE");
    results.description = "The \"tabIndex\" specifies the elements's "+
                          "position in the tabbing order."
//
// Retrieve targeted data.
//
      testNode = new HTMLNodeObject(SELECT,FIRST);
//
// and access its "tabIndex" attribute.
//
      computedValue = testNode.node.tabIndex;
//
// Write out results
//
      resetHTMLData();
      results.expected = expectedValue;
      results.actual = computedValue;

    return results;
}

//------------------------ End test case HTML-0013HSEE -------------------------

//------------------------   test case HTML-0014HSEE   -------------------------
//
// Testing feature - The "add(element,before)" method adds a new element
//                   to the collection of OPTION elements. (test for
//                   adding element to middle of the list.
//
// Testing approach - Retrieve the first SELECT element from the testing
//                    document and add an element to the HTMLCollection
//                    returned by its "options" attribute.  The element
//                    is add right before its third element.  The new
//                    length of the list should be 6.
//
// Semantic Requirements: 14
//
// Last modification date - August 26, 1999
//
// Written by: Carmelo Montanez
//----------------------------------------------------------------------------

 function HTML0014HSEE()
 {
   var computedValue = "";
   var expectedValue = 6;
   var results = "";
   var testNode = "";
   var newElement = "";
   var beforeElement = "";

    results = new testResults("HTML0014HSEE");
    results.description = "The \"add(element,before)\" method adds "+
                          "a new element the the OPTION collection "+
                          "(insert in the middle of the list)";
//
// Retrieve targeted data.
//
      testNode = new HTMLNodeObject(SELECT,FIRST);
//
// build new element and set adding position. 
//
//      newElement = testdoc.createElement(OPTION); 
//      newElement.text = "EMP001A";
//      beforeElement = testNode.node.options(THIRD);
//
// and access its "add(element,before)" method.
//
//      testNode.node.add(newElement,beforeElement);
//      computedValue = testNode.node.length;
//
// Write out results
//
      resetHTMLData();
      results.expected = expectedValue;
      results.actual = computedValue;


    return results;
}

//------------------------ End test case HTML-0014HSEE -------------------------
//
//------------------------   test case HTML-0015HSEE   -------------------------
//
// Testing feature - The "add(element,before)" method adds a new element
//                   to the collection of OPTION elements. (test for
//                   adding element to the tail of the list.
//
// Testing approach - Retrieve the first SELECT element from the testing
//                    document and add an element to the HTMLCollection
//                    returned by its "options" attribute.  The element
//                    is added at the tail of the list by setting the value
//                    of the "before" attribute to null.  The length of the 
//                    list should be 6 and the element at the top of the
//                    list should be element just added
//
// Semantic Requirements: 15
//
// Last modification date - November 4, 1999
//
// Written by: Carmelo Montanez
//----------------------------------------------------------------------------

 function HTML0015HSEE()
 {
   var computedValue = "";
   var expectedValue = "EMP001A";
   var results = "";
   var testNode = "";
   var newElement = "";

    results = new testResults("HTML0015HSEE");
    results.description = "The \"add(element,before)\" method adds "+
                          "the new element to the tail of the list "+
                          "if \"before\" = NULL.";
//
// Retrieve targeted data.
//
      testNode = new HTMLNodeObject(SELECT,FIRST);
//
// build new element.
//
//        newElement = testdoc.createElement("OPTION");
//        newElement.text = "EMP001A";
//
// and access its "add(element,before)" method.
//
//           testNode.node.add(newElement);
//             computedValue = testNode.node.options(SIXTH).text;
//
// Write out results
//
      resetHTMLData();
      results.expected = expectedValue;
      results.actual = computedValue;

    return results;
}

//------------------------ End test case HTML-0015HSEE -------------------------
//
//------------------------   test case HTML-0016HSEE   -------------------------
//
// Testing feature - The "remove(index)" method removes an element from
//                   the collection of OPTION elements (remove at the
//                   top of the list). 
//
// Testing approach - Retrieve the first SELECT element from the testing
//                    document and remove the first item from the 
//                    HTMLCollection returned by its "options" attribute.  
//                    The new length of the list should be 4 and all 
//                    items should shift up one position.
//
// Semantic Requirements: 16
//
// Last modification date - September 29, 1999
//
// Written by: Carmelo Montanez
//----------------------------------------------------------------------------

 function HTML0016HSEE()
 {
   var computedValue = "";
   var expectedValue = "4 EMP0002 EMP0005";
   var results = "";
   var testNode = "";
   var listLength = "";
   var firstElement = "";
   var lastElement = "";

    results = new testResults("HTML0016HSEE");
    results.description = "The \"remove(index)\" method removes "+
                          "an item from the collection of OPTION "+
                          "elements (remove from top of list).";
//
// Retrieve targeted data.
//
      testNode = new HTMLNodeObject(SELECT,FIRST);
//
// and access its "remove(index)" method.
//
      testNode.node.remove(FIRST);
      listLength = testNode.node.options.length;
      firstElement = testNode.node.options(FIRST).text;
      lastElement = testNode.node.options(FOURTH).text;
      computedValue = listLength+" "+firstElement.toUpperCase()+" "+lastElement.toUpperCase();

//
// Write out results
//
      resetHTMLData();
      results.expected = expectedValue;
      results.actual = computedValue;

    return results;
}

//------------------------ End test case HTML-0016HSEE -------------------------
//
//------------------------   test case HTML-0017HSEE   -------------------------
//
// Testing feature - The "remove(index)" method removes an element from
//                   the collection of OPTION elements (remove at the
//                   middle of the list).
//
// Testing approach - Retrieve the first SELECT element from the testing
//                    document and remove item number three from the
//                    HTMLCollection returned by its "options" attribute.
//                    The new length of the list should be 4 and all
//                    items below position number three  should shift 
//                    up one position.
//
// Semantic Requirements: 16
//
// Last modification date - August 26, 1999
//
// Written by: Carmelo Montanez
//----------------------------------------------------------------------------

 function HTML0017HSEE()
 {
   var computedValue = "";
   var expectedValue = "4 EMP0004";
   var results = "";
   var testNode = "";
   var listLength = "";
   var thirdElement = "";

    results = new testResults("HTML0017HSEE");
    results.description = "The \"remove(index)\" method removes "+
                          "an item from the collection of OPTION "+
                          "elements (remove from middle of list).";
//
// Retrieve targeted data.
//
      testNode = new HTMLNodeObject(SELECT,FIRST);
//
// and access its "remove(index)" method.
//
      testNode.node.remove(THIRD);
      listLength = testNode.node.options.length;
      thirdElement = testNode.node.options(THIRD).text;
      computedValue = listLength+" "+thirdElement.toUpperCase();

//
// Write out results
//
      resetHTMLData();
      results.expected = expectedValue;
      results.actual = computedValue;

    return results;
}

//------------------------ End test case HTML-0017HSEE -------------------------
//
//------------------------   test case HTML-0018HSEE   -------------------------
//
// Testing feature - The "remove(index)" method removes an element from
//                   the collection of OPTION elements (remove at the
//                   bottom of the list).
//
// Testing approach - Retrieve the first SELECT element from the testing
//                    document and remove the last item from the
//                    HTMLCollection returned by its "options" attribute.
//                    The new length of the list should be 4 and the last
//                    item in the list should be EMP0004. 
//
// Semantic Requirements: 16
//
// Last modification date - August 30, 1999
//
// Written by: Carmelo Montanez
//----------------------------------------------------------------------------

 function HTML0018HSEE()
 {
   var computedValue = "";
   var expectedValue = "EMP0001 EMP0002 EMP0003 EMP0004 ";
   var results = "";
   var testNode = "";
   var listLength = "";

    results = new testResults("HTML0018HSEE");
    results.description = "The \"remove(index)\" method removes "+
                          "an item from the collection of OPTION "+
                          "elements (remove from bottom of list).";
//
// Retrieve targeted data.
//
      testNode = new HTMLNodeObject(SELECT,FIRST);
//
// and access its "remove(index)" method.
//
      testNode.node.remove(FIFTH);
      listLength = testNode.node.options.length;
      for (var i = 0; i< listLength; i++) 
        computedValue += testNode.node.options(i).text.toUpperCase()+" ";

//
// Write out results
//
      resetHTMLData();
      results.expected = expectedValue;
      results.actual = computedValue;

    return results;
}

//------------------------ End test case HTML-0018HSEE -------------------------
//
//------------------------   test case HTML-0019HSEE   -------------------------
//
// Testing feature - The "remove(index)" method does nothing if no element
//                   has the given index.
//
// Testing approach - Retrieve the first SELECT element from the testing
//                    document and attempt to remove item number eight
//                    from the HTMLCollection returned by its "options" 
//                    attribute.  There is no element with that index 
//                    and therefore the method should do nothing. 
//
// Semantic Requirements: 17
//
// Last modification date - August 30, 1999
//
// Written by: Carmelo Montanez
//----------------------------------------------------------------------------

 function HTML0019HSEE()
 {
   var computedValue = "";
   var expectedValue = "EMP0001 EMP0002 EMP0003 EMP0004 EMP0005 ";
   var results = "";
   var testNode = "";
   var listLength = "";

    results = new testResults("HTML0019HSEE");
    results.description = "The \"remove(index)\" method does "+
                          "nothing if no element has the given "+
                          "index.";
//
// Retrieve targeted data.
//
      testNode = new HTMLNodeObject(SELECT,FIRST);
//
// and access its "remove(index)" method.
//
      testNode.node.remove(EIGHT);
      listLength = testNode.node.options.length;
      for (var i = 0; i< listLength; i++) 
        computedValue += testNode.node.options(i).text.toUpperCase()+" ";
//
// Write out results
//
      resetHTMLData();
      results.expected = expectedValue;
      results.actual = computedValue;

    return results;
}



//------------------------ End test case HTML-0019HSEE -------------------------
//
//------------------------   test case HTML-0020HSEE   -------------------------
//
// Testing feature - The "blur" method removes keybord focus from this
//                   element.
//
// Testing approach - Retrieve the first SELECT element from the testing
//                    document and invoke its "blur()" method.  Upon
//                    invocation of this method, the element should become 
//                    "blurred".  This should trigger an "onblur" event that 
//                    will invoke the "setName()" function which changes the
//                    element's name to "select_12".  Before the "blur()"
//                    method is invoked, the element is given focus by
//                    invoking the "focus()" method.
//
// Semantic Requirements: 18 
//
// Last modification date - October 15, 1999
//
// Written by: Carmelo Montanez
//----------------------------------------------------------------------------

 function HTML0020HSEE()
 {
   var computedValue = "";
   var expectedValue = "NEWID_BLUR";
   var results = "";
   var testNode = "";

    results = new testResults("HTML0020HSEE");
    results.description = "The \"blur()\" method removes keyboard "+
                          "focus from this element.";
//
// Retrieve targeted data.
//
      testNode = new HTMLNodeObject(SELECT,FIRST);
//
// Invoke its "blur()" method.
//
      testNode.node.focus();
      testNode.node.blur();
      computedValue = testNode.node.id;
      computedValue = computedValue.toUpperCase();
//
// Write out results
//
//      resetHTMLData();
      results.expected = expectedValue;
      results.actual = computedValue;

     return results;
}

//------------------------ End test case HTML-0020HSEE -------------------------
//
//------------------------   test case HTML-0021HSEE   -------------------------
//
// Testing feature - The "focus()" method gives keybord focus to this
//                   element.
//
// Testing approach - Retrieve the first SELECT element from the testing
//                    document and invoke its "focus()" method.  upon this
//                    method being invoked, focus should be given to 
//                    this element.  This should trigger an "onfocus" event
//                    that will invoke the "setId()" function which changes the
//                    element's id to "newId".  
//
// Semantic Requirements: 19
//
// Last modification date - October 15, 1999
//
// Written by: Carmelo Montanez
//----------------------------------------------------------------------------

 function HTML0021HSEE()
 {
   var computedValue = "";
   var expectedValue = "RTL"; 
   var results = "";
   var testNode = "";
   var listLength = "";

    results = new testResults("HTML0021HSEE");
    results.description = "The \"focus()\" method gives keyboard "+
                          "focus to this element.";
//
// Retrieve targeted data.
//
      testNode = new HTMLNodeObject(SELECT,FIRST);
//
// Invoke its "focus()" method.
//
      testNode.node.blur();
      testNode.node.focus();
      computedValue = testNode.node.dir;
      computedValue = computedValue.toUpperCase();
//
// Write out results
//
      resetHTMLData();
      results.expected = expectedValue;
      results.actual = computedValue;

    return results;
}

//------------------------ End test case HTML-0021HSEE -------------------------