// ***********************************************************************
// SUPPORTING ROUTINES AND DEFINITIONS
//************************************************************************
//
// General defs.
//
var saved = "";
var MAXEMPLOYEES = 5;
var NODE = 1;
var INDEXING = 2;
var employee = "employee";
var rootNode = "staff";
var pass = "Passed";
var fail = "Failed";
var FIRST = 0;
var SECOND = 1;
var THIRD = 2;
var FOURTH = 3;
var FIFTH = 4;
var SIXTH = 5;
var SEVENTH = 6;
var EIGHT = 7;
var NINETH = 8;
var TENTH = 9;
var ELEVENTH = 10;
var TWELVETH = 11;
var THIRDTEENTH = 12;
var BODY = "BODY";
var TITLE = "TITLE";
var H1 = "H1";
var H2 = "H2";
var H3 = "H3";
var H4 = "H4";
var H5 = "H5";
var H6 = "H6";
var BR = "BR";
var TABLE = "TABLE";
var IMG = "IMG";
var OBJECT = "OBJECT";
var FONT = "FONT";
var BASEFONT = "BASEFONT";
var MAP = "MAP";
var AREA = "AREA";
var P = "P";
var OL = "OL";
var UL = "UL";
var DL = "DL";
var HR = "HR";
var HTML = "HTML";
var HEAD = "HEAD";
var LINK = "LINK";
var META = "META";
var BASE = "BASE";
var FORM = "FORM";
var SELECT = "SELECT";
var OPTION = "OPTION";
var Q = "Q";
var BLOCKQUOTE = "BLOCKQUOTE";
var COL = "COL";
var COLGROUP = "COLGROUP";
var PRE = "PRE";
var DIV = "DIV";
var INS = "INS";
var DEL = "DEL";
var DIR = "DIR";
var APPLET = "APPLET";
var OPTGROUP = "OPTGROUP"
var SCRIPT = "SCRIPT";
var PARAM = "PARAM";
var ISINDEX = "ISINDEX";
var INPUT = "INPUT";
var BUTTON = "BUTTON";
var LABEL = "LABEL";
var TEXTAREA = "TEXTAREA";
var FIELDSET = "FIELDSET";
var ANCHOR = "A";
var FRAMESET = "FRAMESET";
var FRAME = "FRAME";
var IFRAME = "IFRAME";
var LEGEND = "LEGEND";
var MENU = "MENU";
var IFRAME = "IFRAME";
var STYLE = "STYLE";
var LI = "LI"
var SUB = "SUB";
var SUP = "SUP";
var SPAN = "SPAN";
var BDO = "BDO";
var TT = "TT";
var I = "I";
var B = "B";
var U = "U";
var S = "S";
var STRIKE = "STRIKE";
var BIG = "BIG";
var SMALL = "SMALL";
var EM = "EM";
var STRONG = "STRONG";
var DFN = "DFN";
var CODE = "CODE";
var SAMP = "SAMP";
var KBD = "KBD";
var VAR = "VAR";
var CITE = "CITE";
var ACRONYM = "ACRONYM";
var ABBR = "ABBR";
var DT = "DT";
var DD = "DD";
var NOFRAMES = "NOFRAMES";
var NOSCRIPT = "NOSCRIPT";
var ADDRESS = "ADDRESS";
var CENTER = "CENTER";
var TD = "TD";
var TBODY = "TBODY";
var TFOOT = "TFOOT";
var THEAD = "THEAD";
var TR = "TR";
var TH = "TH";
//
// Base URL's for tests depending on specific URL's
//
// BASE1 - The URI returned by the "referrer" attribute (Document interface).
// BASE2 - The string returned by the "domain" attribute (Document interface).
// BASE3 - The URI returned by the "URL" attribute (Document interface).
// BASE4 - The URI returned by the "codebase" attribute (Applet interface).
// BASE5 - ThE URI returned by the "codeBase" attribute (Object interface).
// BASE6 - The URI returned by the "href" attribute (Base interface).
//
var BASE1 = "HTTP://XW2K.SDCT.ITL.NIST.GOV/BRADY/DOM/XMLTEST/";
var BASE2 = "SDCT.ITL.NIST.GOV";
var BASE3 = "HTTP://XW2K.SDCT.ITL.NIST.GOV/BRADY/DOM/FILES/TEST.HTML";
var BASE4 = "HTTP://XW2K.SDCT.ITL.NIST.GOV/BRADY/DOM/FILES/";
var BASE5 = "HTTP://XW2K.SDCT.ITL.NIST.GOV/BRADY/DOM/";
var BASE6 = "HTTP://XW2K.SDCT.ITL.NIST.GOV/BRADY/DOM/";
//
// Exception codes
//
var EOL = String.fromCharCode(13,10);
var INDEX_SIZE_ERR = "The offset must be 0 or a positive number " +
"that is not greater than the number of " +
"characters in the data." + EOL;
var DOMSTRING_SIZE_ERR = " ";
var HIERARCHY_REQUEST1_ERR = "This operation can not be performed with a " +
"Node of type ATTRIBUTE." + EOL;
var HIERARCHY_REQUEST2_ERR = "Inserting a Node or its ancestor under itself " +
"is not allowed." + EOL;
var WRONG_DOCUMENT_ERR = " ";
var INVALID_CHARACTER_ERR = "A name contained an invalid character." + EOL;
var NOT_DATA_ALLOWED_ERR = " ";
var NO_MODIFICATION_ALLOWED_ERR = "Attempt to modify a read-only node." + EOL;
var NOT_FOUND1_ERR = "Invalid procedure call or argument";
var NOT_FOUND2_ERR = "Insert position Node must be a Child of the Node to " +
"insert under." + EOL;
var NOT_FOUND3_ERR = "The parameter Node is not a child of this Node." + EOL;
var NOT_SUPPORTED_ERR = " ";
var INUSE_ATTRIBUTE_ERR = "Attributes must be removed before adding them " +
"to a different node." + EOL;
//
// nodeType values
//
var ELEMENT_NODE = 1;
var ATTRIBUTE_NODE = 2;
var TEXT_NODE = 3;
var CDATA_SECTION_NODE = 4;
var ENTITY_REFERENCE_NODE = 5;
var ENTITY_NODE = 6;
var PROCESSING_INSTRUCTION_NODE = 7;
var COMMENT_NODE = 8;
var DOCUMENT_NODE = 9;
var DOCUMENT_TYPE_NODE = 10;
var DOCUMENT_FRAGMENT_NODE = 11;
var NOTATION_NODE = 12;
function set_description(description) { this.description = description; }
function set_expected (expected) { this.expected = expected;}
function set_actual (actual) { this.actual = actual; }
function set_toString()
{
document.write("name = "+this.name+"
");
document.write("Description = "+this.description+"
");
document.write("Expected Value = "+this.expected+"
");
document.write("Actual Value = "+this.actual+"
");
}
function testResults(name)
{
// get the name of the calling function
this.name = name;
//
// define some methods
//
this.description = set_description;
this.expected = set_expected;
this.actual = set_actual;
// this.toString = set_toString;
}
function getDOMDocument()
{
return masterDoc;
}
function getHTMLDocument()
{
return testdoc;
}
function getFramesetDocument()
{
return framesetdoc;
}
function getDOMHTMLDocument()
{
return HTMLDoc;
}
function getnoDTDXMLDocument()
{
return noDTDXMLObject;
}
function getOriginalDOMDocument()
{
return originalDoc;
}
function getOtherDOMDocument()
{
return otherDoc;
}
function createNode(type,data)
{
var node = "";
switch(type) {
case ATTRIBUTE_NODE:
node = getDOMDocument().createAttribute(data);
break;
case CDATA_SECTION_NODE:
node = getDOMDocument().createCDATASection(data);
break;
case ELEMENT_NODE:
node = getDOMDocument().createElement(data);
break;
case ENTITY_REFERENCE_NODE:
node = getDOMDocument().createEntityReference(data);
break;
case TEXT_NODE:
node = getDOMDocument().createTextNode(data);
break;
default:
break;
}
return node;
}
function resetData()
{
getDOMDocument().removeChild(getDOMDocument().documentElement);
getDOMDocument().appendChild(getOriginalDOMDocument().documentElement.cloneNode(true));
}
function resetHTMLData()
{
newdoc = new originalHTMLDocument(HTML);
testdoc = newdoc.cloneNode(true);
}
function getRootNode()
{
return getDOMDocument().documentElement;
}
function HTMLNodeObject(args)
{
var tagName = arguments[0];
var one = 1;
var two = 2;
var nodeList="";
if (tagName==FRAMESET || tagName==FRAME)
nodeList = framesetdoc.getElementsByTagName(tagName);
else
nodeList = testdoc.getElementsByTagName(tagName);
if (arguments.length == one)
this.node = nodeList.item(FIRST);
else if (arguments.length == two)
this.node = nodeList.item(arguments[SECOND]);
}
function originalHTMLDocument(arg)
{
var tagName = arg;
var one = 1;
var two = 2;
nodeList = originaldoc.getElementsByTagName(tagName);
this.node = nodeList.item(FIRST).cloneNode(true);
return this.node;
}
function getTableCaption(table)
{
return table.caption;
}
function getTableHead(table)
{
return table.tHead;
}
function getTableFoot(table)
{
return table.tFoot;
}
function nodeObject(args)
{
var tagName = employee;
var one = 1;
var two = 2;
var nodeList = "";
nodeList = getRootNode().getElementsByTagName(tagName);
parentNode = nodeList.item(arguments[FIRST]);
if (arguments.length == one)
this.node = parentNode;
else if (arguments.length == two)
this.node = getElement(getSubNodes(parentNode),arguments[SECOND]);
this.attributes = getAttributes(this.node);
this.subNodes = getSubNodes(this.node);
}
function getSubNodes(node)
{
return node.getElementsByTagName("*");
}
function getElement(subNodes,elementAt)
{
return subNodes[elementAt];
}
function getAttributes(node)
{
return node.attributes;
}
function getDocType()
{
return getDOMDocument().childNodes(SECOND);
}
function getEntity(name)
{
return getDocType().entities.getNamedItem(name);
}
function getNotation(name)
{
return getDocType().notations.getNamedItem(name);
}