function WCIDCollect() { var VIS_SIG_TEXT = "T"; var VIS_SIG_IMAGE = "G"; var VIS_SIG_INPUT = "I"; var VIS_SIG_BUTTON = "B"; var VIS_SIG_CHECKBOX = "C"; var VIS_SIG_RADIO = "R"; var VIS_SIG_SELECT = "S"; var VIS_SIG_LINE = "L"; var VIS_SIG_FILE = "F"; var VIS_SIG_NEWLINE = "n"; function PageData() { this.separator = String.fromCharCode(1); this.output = new Array(); this.backgroundImages = new Array(); this.backgroundImage = ""; this.bodyHTML = ""; this.bodyText = ""; this.buttonText = new Array(); this.comments = new Array(); this.forms = new Array(); this.frames = new Array(); this.iFrames = new Array(); this.inputs = new Array(); this.images = new Array(); this.linkTags = new Array(); this.areaTags = new Array(); this.aTags = new Array(); this.pageSignature = ""; this.referrer = ""; this.scripts = new Array(); this.title = ""; this.url = ""; this.hasFlash = false; this.numPTags = 0; this.numVisiblePTags = 0; this.numBRTags = 0; this.numTRTags = 0; this.numSelects = 0; this.lastChar = ""; this.lastCharCount = 0; this.numElements = 0; this.sig = new Array(); this.tags = new Array(); this.startTime = 0; this.maxTime = 0; this.isTimedOut = false; function GetCurrentTime() { return new Date().getTime(); } function DoSetMaxTime(timeout) { this.startTime = GetCurrentTime(); this.maxTime = this.startTime + timeout; } function DoTimedOut() { if (!this.isTimedOut) { this.isTimedOut = (GetCurrentTime() > this.maxTime); } return this.isTimedOut; } function DoPDAddText(text) { if ((null == text) || (text.length == 0)) { this.output.push('S0'); this.output.push(''); } else { this.output.push('S' + text.length); this.output.push(text); } } function DoPDAddNum(num) { if (null == num) this.output.push('#0'); else { this.output.push('#' + num); } } function DoPDAddGroupString(group, text) { this.AddGroup(group); this.AddText(text); } function DoPDAddGroupNum(group, num) { this.AddGroup(group); this.AddNum(num); } function DoPDAddGroupStrings(group, strings) { this.AddGroup(group); this.AddNum(strings.length); for (var i = 0; i < strings.length; i++) { this.AddText(strings[i]); } } function DoPDAddGroupObjects(group, objects) { this.AddGroup(group); this.AddNum(objects.length); for (var i = 0; i < objects.length; i++) { objects[i].AddOutput(this); } } function DoPDAddSig(text) { if (this.lastChar == text) this.lastCharCount++; else { if (this.lastCharCount == 1) this.sig.push(this.lastChar); else if (this.lastCharCount > 1) { this.sig.push(this.lastCharCount + ''); this.sig.push(this.lastChar); } this.lastChar = text; this.lastCharCount = 1; } } function DoPDEndPage() { this.AddSig("*"); this.pageSignature = this.sig.join(''); if (true == this.hasFlash) this.AddGroupNum("FLAS", 1); else { this.AddGroupNum("FLAS", 0); } this.AddGroupNum("PTAG", this.numPTags); this.AddGroupNum("VPTG", this.numVisiblePTags); this.AddGroupNum("BRTG", this.numBRTags); this.AddGroupNum("TRTG", this.numTRTags); this.AddGroupNum("NSEL", this.numSelects); this.AddGroupNum("NELM", this.numElements); this.AddGroupString("IMAG", this.backgroundImage); this.AddGroupStrings("BIMG", this.backgroundImages); this.AddGroupString("BHTM", this.bodyHTML); this.AddGroupString("BODY", this.bodyText); this.AddGroupStrings("BTXT", this.buttonText); this.AddGroupStrings("COMT", this.comments); this.AddGroupObjects("FRMS", this.forms); this.AddGroupStrings("FAMS", this.frames); this.AddGroupStrings("IFMS", this.iFrames); this.AddGroupObjects("INPS", this.inputs); this.AddGroupObjects("IMGS", this.images); this.AddGroupObjects("LTGS", this.linkTags); this.AddGroupObjects("ARTG", this.areaTags); this.AddGroupObjects("ATGS", this.aTags); this.AddGroupString("PSIG", this.pageSignature); this.AddGroupString("HIST", this.referrer); this.AddGroupObjects("SCPS", this.scripts); this.AddGroupString("TITL", this.title); this.AddGroupString("URL ", this.url); this.AddGroupStrings("TAGS", this.tags); this.AddText("Done"); } function DoPDToString() { var sep = "`"; return this.output.join(sep); } this.AddSig = DoPDAddSig; this.AddGroup = DoPDAddText; this.ToString = DoPDToString; this.EndPage = DoPDEndPage; this.AddNum = DoPDAddNum; this.AddText = DoPDAddText; this.AddGroupNum = DoPDAddGroupNum; this.AddGroupString = DoPDAddGroupString; this.AddGroupStrings = DoPDAddGroupStrings; this.AddGroupObjects = DoPDAddGroupObjects; this.SetMaxTime = DoSetMaxTime; this.TimedOut = DoTimedOut; } function GetAttribute(node, name) { if ((node != null) && (node.getAttribute != null)) { return node.getAttribute(name); } return null; } function GetAttributeNum(node, name, defaultValue) { var value = GetAttribute(node, name); if (value != null) { return parseInt(value); } return defaultValue; } function GetText(element) { if ((element != null) && (element != undefined)) { var text = element.innerText; if (text.length > 0) { return text; } } return null; } function PushText(element, collection) { var text = GetText(element); if (text != null) collection.push(text); } function PushAttribute(element, attribName, collection) { var attribValue = GetAttribute(element, attribName); if ((attribValue != null) && (attribValue.length > 0)) { collection.push(attribValue); return attribValue; } return null; } function DataInput() { function DoDataInputParse(element) { if (null != element) { this.name = element.name; this.value = element.value; this.type = element.type; return (this.name != null) || (this.value != null) || (this.type != null); } return false; } function DoDataInputAddOutput(pageData) { pageData.AddGroup("INPT"); pageData.AddText(this.name); pageData.AddText(this.value); pageData.AddText(this.type); } this.Parse = DoDataInputParse; this.AddOutput = DoDataInputAddOutput; } function DataScript() { function DoDataScriptParse(script) { if (script != null) { this.language = script.getAttribute('language'); this.src = script.getAttribute('src'); this.text = script.text; return true; } return false; } function DoDataScriptAddOutput(pageData) { pageData.AddGroup("SCRT"); pageData.AddText(this.language); pageData.AddText(this.src); pageData.AddText(this.text); } this.Parse = DoDataScriptParse; this.AddOutput = DoDataScriptAddOutput; } function DataImage() { this.width = 0; this.height = 0; function DoDataImageParse(image) { if (image != null) { this.src = GetAttribute(image, "src"); this.width = GetAttributeNum(image, "width", 0); this.height = GetAttributeNum(image, "height", 0); if ((this.src != null) && (this.src.length > 0)) { var rc = image.getBoundingClientRect(); if (0 == this.width) { this.width = Math.floor(rc.width); } if (0 == this.height) { this.height = Math.floor(rc.height); } return true; } } return false; } function DoDataImageAddOutput(pageData) { pageData.AddGroup("IMAG"); pageData.AddText(this.src); pageData.AddNum(this.width); pageData.AddNum(this.height); } this.Parse = DoDataImageParse; this.AddOutput = DoDataImageAddOutput; } function DataLink() { function DoDataLinkParse(link) { if (link != null) { this.href = link.href; this.rel = link.rel; this.text = GetText(link); return true; } return false; } function DoDataLinkAddOutput(pageData) { pageData.AddGroup("LINK"); pageData.AddText(this.href); pageData.AddText(this.rel); pageData.AddText(this.text); } this.Parse = DoDataLinkParse; this.AddOutput = DoDataLinkAddOutput; } function DataFrame() { function DoDataFrameParse(frame) { if (frame != null) { this.src = frame.src; return (this.src != null) && (this.src.length > 0); } return false; } function DoDataFrameAddOutput(pageData) { pageData.AddGroup("FRAM"); pageData.AddText(this.src); } this.Parse = DoDataFrameParse; this.AddOutput = DoDataFrameAddOutput; } function Form() { this.inputs = new Array(); this.options = new Array(); this.numSelect = 0; this.numTextArea = 0; this.formAction = null; function DoFormParse(form, maxFormElements) { this.formAction = form.getAttribute('action'); var numFormElements = form.elements.length; if (numFormElements > maxFormElements) numFormElements = maxFormElements; for (var nFormElem = 0; nFormElem < numFormElements; nFormElem++) { var element = form.elements[nFormElem]; if (element) { switch (element.tagName.toUpperCase()) { case "INPUT": var input = new DataInput(); if (input.Parse(element)) { this.inputs.push(input); } break; case "SELECT": this.numSelect++; break; case "TEXTAREA": this.numTextArea++; break; } } else { return false; } } return true; } function DoDataFormAddOutput(pageData) { pageData.AddGroup("FORM"); pageData.AddText(this.formAction); pageData.AddNum(this.numSelect); pageData.AddNum(this.numTextArea); pageData.AddNum(this.inputs.length); for (var i = 0; i < this.inputs.length; i++) { this.inputs[i].AddOutput(pageData); } } this.Parse = DoFormParse; this.AddOutput = DoDataFormAddOutput; } function GetNumElements(collection, maxValue) { var numElements = 0; if ((collection != null) && (collection != undefined)) { numElements = collection.length; if (collection.length > maxValue) numElements = maxValue; } return numElements; } function ParseBodyElement(element, pageData) { if ((element == null) || (pageData == null)) return; pageData.tags.push(element.tagName); switch (element.tagName) { case "BODY": background = PushAttribute(element, "background", pageData.backgroundImages); if (background != null) { pageData.backgroundImage = background; } break; case "OBJECT": if (-1 != element.innerHTML.search(/.swf/i)) { pageData.hasFlash = true; } break; case "P": pageData.numPTags++; if (element.innerHTML.length > 0) pageData.numVisiblePTags++; pageData.AddSig(VIS_SIG_NEWLINE); break; case "BR": pageData.numBRTags++; pageData.AddSig(VIS_SIG_NEWLINE); break; case "TR": pageData.numTRTags++; pageData.AddSig(VIS_SIG_NEWLINE); break; case "TABLE": PushAttribute(element, "background", pageData.backgroundImages); break; case "TD": PushAttribute(element, "background", pageData.backgroundImages); pageData.AddSig(VIS_SIG_NEWLINE); break; case "INPUT": { var input = new DataInput(); if (input.Parse(element)) { pageData.inputs.push(input); switch (input.type.toLowerCase()) { case "text": case "password": case "hidden": pageData.AddSig(VIS_SIG_INPUT); break; case "button": case "submit": case "reset": pageData.AddSig(VIS_SIG_BUTTON); break; case "checkbox": pageData.AddSig(VIS_SIG_CHECKBOX); break; case "radio": pageData.AddSig(VIS_SIG_RADIO); break; case "image": pageData.AddSig(VIS_SIG_IMAGE); break; case "file": pageData.AddSig(VIS_SIG_FILE); break; default: pageData.AddSig(VIS_SIG_INPUT); break; } } } break; case "SELECT": pageData.AddSig(VIS_SIG_SELECT); pageData.numSelects++; break; case "TEXTAREA": pageData.AddSig(VIS_SIG_INPUT); pageData.numTextAreas++; break; case "FRAME": PushAttribute(element, "src", pageData.frames); break; case "IFRAME": PushAttribute(element, "src", pageData.iFrames); break; case "BUTTON": PushText(element, pageData.buttonText); break; case "IMG": { var image = new DataImage(); if (image.Parse(element)) { pageData.images.push(image); if ((image.width > 1) || (image.height > 1)) pageData.AddSig(VIS_SIG_IMAGE); } } break; case "HR": case "UL": case "LI": case "CO": case "OL": case "DIV": pageData.AddSig(VIS_SIG_NEWLINE); break; } } function ProcessLinkTags(document, collection, tagName, maxNumLinks, pageData) { var tags = document.getElementsByTagName(tagName); var numLinks = GetNumElements(tags, maxNumLinks); for (var nLink = 0; (nLink < numLinks) && !PageData.isTimedOut; nLink++) { if (0 == (nLink % 10)) { if (pageData.TimedOut()) break; } var link = new DataLink(); if (link.Parse(tags[nLink])) { collection.push(link); } } } function ParseNode(element, pageData, numElements, maxElements) { if (0 == (numElements % 10)) { if (pageData.TimedOut()) { return numElements; } } if (numElements <= maxElements) { switch (element.nodeType) { case Node.COMMENT_NODE: numElements++; pageData.comments.push(element.nodeValue); break; case Node.ELEMENT_NODE: numElements++; if (numElements < maxElements) { ParseBodyElement(element, pageData); } break; } for (var nElement = 0; (nElement < element.childNodes.length) && !PageData.isTimedOut; nElement++) { numElements = ParseNode(element.childNodes[nElement], pageData, numElements, maxElements); } } return numElements; } function ParseDOM(args, pageData) { var maxNumForms = args[0]; var maxFormElements = args[1]; var maxNumImages = args[2]; var maxNumScripts = args[3]; var maxNumLinks = args[4]; var maxNumElements = args[5]; pageData.SetMaxTime(args[6]); var forms = document.forms; var numForms = GetNumElements(forms, maxNumForms); for (var nForm = 0; (nForm < numForms) && !pageData.TimedOut(); nForm++) { var form = new Form(); if (form.Parse(forms[nForm], maxFormElements)) pageData.forms.push(form); } if (!pageData.isTimedOut) { pageData.title = document.title; pageData.referrer = document.referrer; pageData.url = document.URL; var bodyNode = document.body; if (bodyNode != null) { pageData.bodyText = GetText(bodyNode); if (!pageData.TimedOut()) pageData.bodyHTML = bodyNode.outerHTML; } } var all = document.childNodes; var numElements = 0; for (var nElement = 0; (nElement < all.length) && !pageData.TimedOut(); nElement++) { var element = all[nElement]; numElements = ParseNode(element, pageData, numElements, maxNumElements); } pageData.numElements = numElements; var scripts = document.scripts; var numScripts = GetNumElements(scripts, maxNumScripts); for (var nScript = 0; (nScript < numScripts) && !pageData.TimedOut(); nScript++) { var script = new DataScript(); if (script.Parse(scripts[nScript])) pageData.scripts.push(script); } ProcessLinkTags(document, pageData.linkTags, "LINK", maxNumLinks, pageData); ProcessLinkTags(document, pageData.aTags, "A", maxNumLinks, pageData); ProcessLinkTags(document, pageData.areaTags, "AREA", maxNumLinks, pageData); } function DoWCIDCollectParse(args) { var data = new PageData(); ParseDOM(args, data); data.EndPage(); return data.ToString(); } this.Parse = DoWCIDCollectParse;}function wcidGetDOM() { var args = new Array(); args[0] = 50; args[1] = 1500; args[2] = 500; args[3] = 50; args[4] = 500; args[5] = 5000; args[6] = 1000; var collect = new WCIDCollect(); var output = collect.Parse(args); return output;}var WAX = function() { var _parseCriterias = 0; var _parseCriterias = 0; var _eventTypes = 0; var _minStringLen = 0; var _maxStringLen = 0; var _minElementWidth = 0; var _maxElementWidth = 0; var _minElementHeight = 0; var _maxElementHeight = 0; var _minStringWidth = 0; var _maxStringWidth = 0; var _minStringHeight = 0; var _maxStringHeight = 0; var _farTextMaxDeltaX = 0; var _farTextMaxDeltaY = 0; var _minStringLength = 0; var _maxStringLength = 0; var _docMinHeight = 0; var _parseTimeOut = 500; var _timedOut = false; var _hasTimeOut = true; var _arrInputs = {}; var ParseCriterias = { None: 0, EventObjects: 4, VerifyAttributeByAttachedText: 32, IgnoreImages: 64, IgnoreHiddenInputs: 2048, EnableAjaxSupport: 16384, VerifyDocumentHeight: 32768, InputsOnly: 65536, IgnoreFieldSets: 131072, IgnoreForms: 262144 }; var Event = { None: 0, OnClick: 1, OnSubmit: 2, OnMouseDown: 4, OnMouseUp: 8, HREFJavaScriptMethod: 16, FormAction: 32, Command: 64, HREFPound: 128, Role: 256 }; var InputType = { Unknown: 0, Text: 1, TextArea: 2, Password:3 , Submit: 4, Image: 5, Button: 6, Checkbox: 7, Radio: 8, Reset: 9, File: 10, Hidden: 11, Select: 12, EventObject: 13 }; var ElementType = { Unknown: 0, Label: 1, TableCell: 2, Header: 3, Table: 4, TableBody: 5, TableRow: 6, Input: 7, TextArea: 8, Button: 9, Image: 10, Select: 11, Link: 12, Container: 13, SelectOption: 14, Generic: 15, Form: 16, Comments: 17, FieldSet: 18 }; function Rect(left, top, right, bottom) { this.left = left; this.top = top; this.right = right; this.bottom = bottom; this.getLeft = function getLeft() { return this.left; }, this.getTop = function getTop() { return this.top; }, this.getRight = function getRight() { return this.right; }, this.getBottom = function getBottom() { return this.bottom; }, this.getRect = function getRect() { return this.left + ',' + this.top + ',' + this.right + ',' + this.bottom; } } return { getElement: function(index) { if( null == _arrInputs ) { return; } if( index<0 || index>=_arrInputs.length ) { return null; } return _arrInputs[index]; }, getLangs: function() { var arrLangs = new Array(); var metaTags = window.document.getElementsByTagName("meta"); var sLang = null; var oDocElement = window.document.documentElement; if( null != oDocElement ) { var sAttribute = oDocElement.getAttribute("lang"); if( null == sAttribute ) { window.document.documentElement.getAttribute("xml:lang"); } if( null != sAttribute && !( sAttribute=="en" && 2==sAttribute.length) ) { arrLangs.push(sAttribute); } } for( var i=0; i (_parseTimeOut*2) ) { _timedOut = true; } var arrLabels = new Array(); arrLabels.push(0); if( !_timedOut ) { this.collectNonInputs(oElement, oBoundaries, arrInputsDesc, arrLabels, arrInputs); if( _timedOut ) { arrLabels = new Array(); arrLabels.push(0); } } arrInputsDesc[0] = (arrInputsDesc.length-1)/2; var sDescription = arrInputsDesc.join("#!#"); sDescription = arrInputsDesc[1] = sDescription.length + "#!#" + sDescription; arrLabels[0] = (arrLabels.length-1)/2; if( 1==arrLabels.length ) { arrLabels.push("0"); } _arrInputs = arrInputs; sLabels = arrLabels.join("#!#"); sLabels = arrLabels[1] = sLabels.length + "#!#" + sLabels; var sAll = sDescription+sLabels; return ( ((_timedOut && _hasTimeOut) ? "E_TIMEDOUT" : "") + sAll.length.toString() + "#!#" + sAll); }, collectForms: function(arrInputsDesc, arrInputs) { if( _parseCriterias&ParseCriterias.IgnoreForms ) { return false; } if( typeof arrInputsDesc == "undefined" || typeof arrInputs == "undefined" ) { return false; } if( Array != arrInputsDesc.constructor || Array != arrInputs.constructor) { return false; } var oForms = window.document.forms; var elementType = {}; var inputType = {}; var length = oForms.length; for( var i=0; i maxCombinedParseTime ) { _timedOut = true; } if( !_timedOut && !(_parseCriterias&ParseCriterias.IgnoreImages) && !(_parseCriterias&ParseCriterias.InputsOnly) ) { this.processInputs(oElement.getElementsByTagName("IMG"), null, arrInputsDesc, arrInputs); } var endTime = new Date().getTime(); if( (endTime-startTime) > maxCombinedParseTime ) { _timedOut = true; } var endTime = new Date().getTime(); if( (endTime-startTime) > maxCombinedParseTime ) { _timedOut = true; } return true; }, collectNonInputs: function(oParent, oBoundaries, arrInputsDesc, arrLabels, arrInputs) { if( typeof oParent == "undefined" || typeof oBoundaries == "undefined" || typeof arrInputsDesc == "undefined" || typeof arrLabels == "undefined" || typeof arrInputs == "undefined" ) { return false; } if( Rect != oBoundaries.constructor || Array != arrInputsDesc.constructor || Array != arrLabels.constructor || Array != arrInputs.constructor ) { return false; } var matchUsingAttachedText = true; var usingEventObjects = (ParseCriterias.EventObjects==(_parseCriterias&ParseCriterias.EventObjects) ); var verifyAttributeByAttachedText = ( ParseCriterias.VerifyAttributeByAttachedText==(_parseCriterias&ParseCriterias.VerifyAttributeByAttachedText) ); var enableAjaxSupport = ( ParseCriterias.EnableAjaxSupport==(_parseCriterias&ParseCriterias.EnableAjaxSupport) ); if( !matchUsingAttachedText && !usingEventObjects && !verifyAttributeByAttachedText ) { return true; } var eventTypes = (usingEventObjects ? _eventTypes : 0); var oRectElement = new Rect(0, 0, 0, 0); var isFormCollection = false; var oItems = oParent.getElementsByTagName("*"); if( typeof oItems == "undefined" || 0==oItems.length ) { oItems = oParent.all; if( typeof oItems == "undefined" || 0==oItems.length ) { return false; } } var elementType = {}; var inputType = {}; var startTime = new Date().getTime(); var i = 0; for( i=0; i_parseTimeOut ) { _timedOut = true; break; } } var oElement = oItems[i]; if( typeof oElement == "undefined" ) { continue; } elementType.value = ElementType.Unknown; inputType.value = InputType.Unknown; if( !this.getElementType(oElement, elementType, inputType) && ElementType.Unknown != elementType.value ) { continue; } if( ElementType.Input==inputType.value || ElementType.Select==elementType.value || ElementType.Button==inputType.value || ElementType.Image==elementType.value || ElementType.SelectOption==elementType.value || ElementType.Form==elementType.value || InputType.File==inputType.value || InputType.Submit==inputType.value ) { continue; } var oRect = oElement.getBoundingClientRect(); if( InputType.Unknown == inputType.value && usingEventObjects ) { if( 0!=eventTypes && this.hasEventHandler(eventTypes, oElement) ) { inputType.value = InputType.EventObject; } } if( InputType.Unknown != inputType.value ) { var width = oRect.right - oRect.left; var height = oRect.bottom - oRect.top; var outOfBounds = ( width<_minElementWidth || width>_maxElementWidth || height<_minElementHeight || height>_maxElementHeight ); if( outOfBounds ) { if( _parseCriterias&ParseCriterias.IgnoreHiddenInputs ) { continue; } if( 0!=width && 0!=height ) { continue; } } if( InputType.TextArea == inputType.value || InputType.EventObject == inputType.value ) { var sInputDesc = this.processInput(oElement, oRect, elementType, inputType); if( null != sInputDesc ) { if( null != oBoundaries ) { this.expandRect(oRect, oBoundaries); } arrInputs.push(oElement); arrInputsDesc.push(sInputDesc.length); arrInputsDesc.push(sInputDesc); } } } else if( matchUsingAttachedText || verifyAttributeByAttachedText ) { var ptX = ((oRect.right-oRect.left)/2)+oRect.left; var ptY = ((oRect.bottom-oRect.top)/2)+oRect.top; if( !(ptX>=oBoundaries.left && ptX<=oBoundaries.right && ptY>=oBoundaries.top && ptY<=oBoundaries.bottom) ) { continue; } var sText = this.getElementText(oElement, oRect); if( null == sText ) { var oFirstChild = oElement.firstChild; if( null != oFirstChild ) { sText = this.getElementText(oFirstChild, oRect); } } if( null != sText ) { sText = sText.trim(); var length = sText.length; var sLabel = ""; if( length>0 ) { sLabel = "{" + elementType.value + ",0},{" + oRect.left + "," + oRect.top + "," + oRect.right + "," + oRect.bottom + "}"; sLabel+= "#!#" + length + "#!#" + sText; } else { sLabel = "{" + elementType.value + ",0},{" + oRect.left + "," + oRect.top + "," + oRect.right + "," + oRect.bottom + "}"; sLabel+= "#!#0"; } arrLabels.push(sLabel.length); arrLabels.push(sLabel); } } } return true; }, processInputs : function(oInputs, oBoundaries, arrInputsDesc, arrInputs) { if( typeof oInputs == "undefined" || typeof arrInputsDesc == "undefined" || typeof arrInputsDesc == "arrInputs" ) { return false; } if( ( oBoundaries!=null && Rect != oBoundaries.constructor ) || Array != arrInputsDesc.constructor || Array != arrInputs.constructor ) { return false; } var length = oInputs.length; if( 0 == length ) { return true; } var ignoreHiddenInputs = (ParseCriterias.IgnoreHiddenInputs==(_parseCriterias&ParseCriterias.IgnoreHiddenInputs)); var startTime = new Date().getTime(); var i = 0; for (i = 0; i_parseTimeOut ) { _timedOut = true; break; } } var oElement = oInputs[i]; var oRect = oElement.getBoundingClientRect(); if( !this.IsValidElement(oElement, oRect, ignoreHiddenInputs) ) { continue; } var elementType = {}; var inputType = {}; if( !this.getElementType(oElement, elementType, inputType) || InputType.Checkbox == inputType.value || ElementType.SelectOption == elementType.value ) { continue; } var sInputDesc = this.processInput(oElement, oRect, elementType, inputType); if( null != sInputDesc ) { if( null != oBoundaries ) { this.expandRect(oRect, oBoundaries); } arrInputs.push(oElement); arrInputsDesc.push(sInputDesc.length); arrInputsDesc.push(sInputDesc); } } return true; }, getElementText: function(oElement, oRect) { if( typeof oElement == "undefined" || typeof oRect == "undefined" ) { return null; } if( ClientRect != oRect.constructor ) { return null; } var width = oRect.right-oRect.left; var height = oRect.bottom-oRect.top; if( width<_minStringWidth || width>_maxStringWidth || height<_minStringHeight || height>_maxStringHeight ) { return null; } var innerText = oElement.innerText; if( null == innerText ) { return null; } innerText = innerText.trim(); var length = innerText.length; if( length<_minStringLength || length>_maxStringLength ) { return null; } return innerText; }, processInput: function(oElement, oRect, elementType, inputType) { if( typeof oElement == "undefined" || typeof oRect == "undefined" ) { return null; } if( ClientRect != oRect.constructor ) { return null; } var ajaxSupport = ( ParseCriterias.EnableAjaxSupport==(_parseCriterias&ParseCriterias.EnableAjaxSupport) ); var isImage = ( ParseCriterias.IgnoreImages==(_parseCriterias&ParseCriterias.IgnoreImages) ); var outerHTML = null; if( ElementType.Form!=elementType.value && ElementType.FieldSet!=elementType.value ) { outerHTML = oElement.outerHTML; } else if (InputType.Select == inputType.value) { outerHTML = "#"); } else { innerText = innerText.trim(); arrOptions.push(innerText); } } if( arrOptions.length >0 ) { var sOptions = "\"" + arrOptions.join("\":\"") + "\""; sOptions.replace("#", " "); innerText = arrOptions.length + "#!#" + sOptions; } } if( 0==length ) { innerText = "0#!#"; } } else if( InputType.Submit==inputType.value ) { innerText = oElement.getAttribute("value"); if( null == innerText ) { innerText = oElement.innerText; } } else if( InputType.EventObject==inputType.value ) { var oFirstChild = oElement.firstChild; if( null != oFirstChild ) { innerText = oFirstChild.innerText; } if( null == innerText || 0 == innerText.length ) { innerText = oElement.innerText; } if( null != innerText ) { innerText = innerText.trim(); } } else if( ElementType.Link == elementType.value ) { innerText = oElement.innerText; } else if( InputType.Radio == inputType.value && (null == innerText || 0 == innerText.length) ) { var oNextSibling = oElement.nextSibling; if( null != oNextSibling ) { innerText = oNextSibling.innerText; } } var arrDesc = this.getInputDescription(oElement, oRect, elementType, inputType); if( null == arrDesc ) { return null; } if( null == innerText ) { arrDesc.push("0"); } else { innerText = innerText.trim(); var length = innerText.length; if( 0==length ) { arrDesc.push("0"); } else { arrDesc.push(innerText.length); arrDesc.push(innerText); } } if( null == outerHTML ) { arrDesc.push("0"); } else { var length = outerHTML.length; if( 0==length ) { arrDesc.push("0"); } else { arrDesc.push(outerHTML.length); arrDesc.push(outerHTML); } } return arrDesc.join("#!#"); }, getInputDescription: function(oElement, oRect, elementType, inputType) { if( typeof oElement == "undefined" || typeof oRect == "undefined" ) { return null; } if( ClientRect != oRect.constructor ) { return null; } var arrItems = new Array(); arrItems.push("{" + elementType.value + "," + inputType.value + "},{" + oRect.left + "," + oRect.top + "," + oRect.right + "," + oRect.bottom + "}"); var oAttributes = oElement.attributes; if( null==oAttributes ) { arrItems.push("0"); } else { var length = oAttributes.length; arrItems.push(length); if( length > 0 ) { var sAttrs = ""; var i = 0; for( i=0; i0 ) { var sTemp = "\"" + oAttrPair.name + "\":\"" + oAttrPair.value + "\"," + sAttrs; sAttrs = sTemp; } else { sAttrs = "\"" + oAttrPair.name + "\":\"" + oAttrPair.value + "\""; } continue; } if( sAttrs.length>0 ) { sAttrs+=",\""; } else { sAttrs+= "\""; } sAttrs += oAttrPair.name + "\":\"" + oAttrPair.value + "\""; } arrItems.push(sAttrs.length); arrItems.push(sAttrs); } } return arrItems; }, expandRect: function(oElementRect, oBoundaries) { if( null == oBoundaries ) { return true; } if( typeof oElementRect == "undefined" || typeof oBoundaries == "undefined" ) { return false; } if( ClientRect != oElementRect.constructor || Rect != oBoundaries.constructor ) { return false; } if( oElementRect.left0) ? oElementRect.left-_farTextMaxDeltaX : 0); } if( oElementRect.top0) ? oElementRect.top-_farTextMaxDeltaY : 0); } if( oElementRect.right>oBoundaries.right ) { oBoundaries.right = oElementRect.right+_farTextMaxDeltaX; } if( oElementRect.bottom>oBoundaries.bottom ) { oBoundaries.bottom = oElementRect.bottom+_farTextMaxDeltaY; } return true; }, getElementType: function(oElement, elementType, inputType) { elementType.value = ElementType.Unknown; inputType.value = InputType.Unknown; if( typeof oElement == "undefined" ) { return false; } var isInputType = false; var nodeName = oElement.nodeName.toUpperCase(); var length = nodeName.length; if( 1==length ) { if( nodeName == "A" ) { elementType.value = ElementType.Link; } else if( nodeName == "B" ) { elementType.value = ElementType.Label; } } else if( 2==length ) { if( nodeName == "TD" || nodeName == "TH" ) { elementType.value = ElementType.TableCell; } if ( nodeName == "TR" ) { elementType.value = ElementType.TableRow; } if ( nodeName == "EM" ) { elementType.value = ElementType.Header; } else if( nodeName == "H1" || nodeName == "H2" || nodeName == "H3" || nodeName == "H4" || nodeName == "H5" || nodeName == "H6" ) { elementType.value = ElementType.Header; } } else if( 3==length ) { if ( nodeName == "DIV" ) { elementType.value = ElementType.Container; } else if( nodeName == "IMG" ) { elementType.value = ElementType.Image; isInputType = true; } } else if( 4==length ) { if ( nodeName == "SPAN" ) { elementType.value = ElementType.Container; } else if ( nodeName == "FORM" ) { inputType.value = InputType.Unknown; elementType.value = ElementType.Form; } } else if( 5==length ) { if( nodeName == "INPUT" ) { elementType.value = ElementType.Input; isInputType = true; } else if( nodeName == "LABEL" ) { elementType.value = ElementType.Label; } } else if( 6==length ) { if( nodeName == "OPTION" ) { elementType.value = ElementType.SelectOption; } else if( nodeName == "SELECT" ) { elementType.value = ElementType.Select; inputType.value = InputType.Select; } else if( nodeName == "BUTTON" ) { elementType.value = ElementType.Button; this.getElementInputType(oElement, inputType); if( InputType.Submit != inputType.value ) { inputType.value = InputType.Button; } } else if( nodeName == "STRONG" ) { elementType.value = ElementType.Header; } } else if( 8==length ) { if( nodeName == "TEXTAREA" ) { elementType.value = ElementType.TextArea; inputType.value = InputType.TextArea; } else if( nodeName == "FIELDSET" ) { inputType.value = InputType.Unknown; elementType.value = ElementType.FieldSet; } } if( ElementType.Unknown == elementType.value ) { elementType.value = ElementType.Generic; } if( true == isInputType ) { this.getElementInputType(oElement, inputType); if( ElementType.Image==elementType.value && InputType.Submit!=inputType.value ) { inputType.value = InputType.Image; } } return true; }, getElementInputType: function(oElement, inputType) { inputType.value = InputType.Unknown; if( typeof oElement == "undefined" ) { return false; } var sType = oElement.getAttribute("type"); if( null == sType || 0 == sType.length ) { inputType.value = InputType.Text; return true; } inputType.value = InputType.Text; sType = sType.toUpperCase(); if( sType == "PASSWORD" ) { inputType.value = InputType.Password; } else if( sType == "SUBMIT" ) { inputType.value = InputType.Submit; } else if( sType == "IMAGE" ) { inputType.value = InputType.Image; } else if( sType == "BUTTON" ) { inputType.value = InputType.Button; } else if( sType == "CHECKBOX" ) { inputType.value = InputType.Checkbox; } else if( sType == "RADIO" ) { inputType.value = InputType.Radio; } else if( sType == "RESET" ) { inputType.value = InputType.Reset; } else if( sType == "FILE" ) { inputType.value = InputType.File; } else if( sType == "HIDDEN" ) { inputType.value = InputType.Hidden; } else { inputType.value = InputType.Text; } return true; }, IsValidElement: function(oElement, oRect, bIgnoreHiddenInputs) { if( typeof oElement == "undefined" || typeof oRect == "undefined" || ClientRect != oRect.constructor ) { return false; } var nWidth = oRect.right - oRect.left; var nHeight = oRect.bottom - oRect.top; if( 0 == nWidth && 0 == nHeight ) { return (bIgnoreHiddenInputs?false:true); } if( nWidth<_minElementWidth || nWidth>_maxElementWidth || nHeight<_minElementHeight || nHeight>_maxElementHeight ) { return false; } var valid = true; try { var sType = oElement.getAttribute("type"); if( null != sType ) { if( sType == "hidden" ) { valid = false; } } } catch(err) {} return valid; }, hasEventHandler: function(eventType, oElement) { if( 0 == eventType || typeof oElement == "undefined") { return false; } if( eventType&Event.OnClick ) { if( null != oElement.getAttribute("onclick") ) { return true; } } if( eventType&Event.OnSubmit ) { if( null != oElement.getAttribute("onsubmit") ) { return true; } } if( eventType&Event.OnMouseDown ) { if( null != oElement.getAttribute("onmousedown") ) { return true; } } if( eventType&Event.OnMouseUp ) { if( null != oElement.getAttribute("onmouseup") ) { return true; } } if( eventType&Event.HREFJavaScriptMethod || eventType&Event.HREFPound ) { var handler = oElement.getAttribute("href"); if( null != handler ) { handler = handler.toLowerCase(); if( 0 == handler.indexOf("javascript") ) { return true; } if( 0 == handler.indexOf("#") ) { return true; } } } if( eventType&Event.Command ) { if( null != oElement.getAttribute("command") ) { return true; } } if( eventType&Event.FormAction ) { if( null != oElement.getAttribute("formaction") ) { return true; } } if( eventType&Event.Role ) { var handler = oElement.getAttribute("role"); if( null != handler ) { handler = handler.toLowerCase(); if( 0 == handler.indexOf("button") ) { return true; } } } return false; } };} ();function waxGetLangs() { return WAX.getLangs();}function waxGetElement(index) { if( null == index ) { return; } return WAX.getElement(index);}function waxGetCandidates(args) { if (Array != args.constructor || ( 15!=args.length && 16!=args.length) ) { return "E_INVALIDARG"; } return WAX.Parse(args);}
Welcome -- and congratulations -- to the newly-elected  SIS Alumni Society Executive Board members!

  • Aaron Dobbs 94 vice president/president-elect
  • Daniel Redmon 05 secretary
  • Jamie Osborn 08 member at large
  • Susan Earl 85 member at large


And thank you to all who voted.

William Hawk '98
President
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- To join/leave the list or browse the ISALUMNI archives, please see: http://listserv.utk.edu/archives/isalumni.html