Created
June 28, 2023 18:36
-
-
Save ShaggyDude/c9b724b698f6d971790845c5f7bcaff3 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function WebForm_PostBackOptions(eventTarget, eventArgument, validation, validationGroup, actionUrl, trackFocus, clientSubmit) { | |
this.eventTarget = eventTarget; | |
this.eventArgument = eventArgument; | |
this.validation = validation; | |
this.validationGroup = validationGroup; | |
this.actionUrl = actionUrl; | |
this.trackFocus = trackFocus; | |
this.clientSubmit = clientSubmit; | |
} | |
function WebForm_DoPostBackWithOptions(options) { | |
var validationResult = true; | |
if (options.validation) { | |
if (typeof(Page_ClientValidate) == 'function') { | |
validationResult = Page_ClientValidate(options.validationGroup); | |
} | |
} | |
if (validationResult) { | |
if ((typeof(options.actionUrl) != "undefined") && (options.actionUrl != null) && (options.actionUrl.length > 0)) { | |
theForm.action = options.actionUrl; | |
} | |
if (options.trackFocus) { | |
var lastFocus = theForm.elements["__LASTFOCUS"]; | |
if ((typeof(lastFocus) != "undefined") && (lastFocus != null)) { | |
if (typeof(document.activeElement) == "undefined") { | |
lastFocus.value = options.eventTarget; | |
} | |
else { | |
var active = document.activeElement; | |
if ((typeof(active) != "undefined") && (active != null)) { | |
if ((typeof(active.id) != "undefined") && (active.id != null) && (active.id.length > 0)) { | |
lastFocus.value = active.id; | |
} | |
else if (typeof(active.name) != "undefined") { | |
lastFocus.value = active.name; | |
} | |
} | |
} | |
} | |
} | |
} | |
if (options.clientSubmit) { | |
__doPostBack(options.eventTarget, options.eventArgument); | |
} | |
} | |
var __pendingCallbacks = new Array(); | |
var __synchronousCallBackIndex = -1; | |
function WebForm_DoCallback(eventTarget, eventArgument, eventCallback, context, errorCallback, useAsync) { | |
var postData = __theFormPostData + | |
"__CALLBACKID=" + WebForm_EncodeCallback(eventTarget) + | |
"&__CALLBACKPARAM=" + WebForm_EncodeCallback(eventArgument); | |
if (theForm["__EVENTVALIDATION"]) { | |
postData += "&__EVENTVALIDATION=" + WebForm_EncodeCallback(theForm["__EVENTVALIDATION"].value); | |
} | |
var xmlRequest,e; | |
try { | |
xmlRequest = new XMLHttpRequest(); | |
} | |
catch(e) { | |
try { | |
xmlRequest = new ActiveXObject("Microsoft.XMLHTTP"); | |
} | |
catch(e) { | |
} | |
} | |
var setRequestHeaderMethodExists = true; | |
try { | |
setRequestHeaderMethodExists = (xmlRequest && xmlRequest.setRequestHeader); | |
} | |
catch(e) {} | |
var callback = new Object(); | |
callback.eventCallback = eventCallback; | |
callback.context = context; | |
callback.errorCallback = errorCallback; | |
callback.async = useAsync; | |
var callbackIndex = WebForm_FillFirstAvailableSlot(__pendingCallbacks, callback); | |
if (!useAsync) { | |
if (__synchronousCallBackIndex != -1) { | |
__pendingCallbacks[__synchronousCallBackIndex] = null; | |
} | |
__synchronousCallBackIndex = callbackIndex; | |
} | |
if (setRequestHeaderMethodExists) { | |
xmlRequest.onreadystatechange = WebForm_CallbackComplete; | |
callback.xmlRequest = xmlRequest; | |
// e.g. http: | |
var action = theForm.action || document.location.pathname, fragmentIndex = action.indexOf('#'); | |
if (fragmentIndex !== -1) { | |
action = action.substr(0, fragmentIndex); | |
} | |
if (!__nonMSDOMBrowser) { | |
var domain = ""; | |
var path = action; | |
var query = ""; | |
var queryIndex = action.indexOf('?'); | |
if (queryIndex !== -1) { | |
query = action.substr(queryIndex); | |
path = action.substr(0, queryIndex); | |
} | |
if (path.indexOf("%") === -1) { | |
// domain may or may not be present (e.g. action of "foo.aspx" vs "http: | |
if (/^https?\:\/\/.*$/gi.test(path)) { | |
var domainPartIndex = path.indexOf("\/\/") + 2; | |
var slashAfterDomain = path.indexOf("/", domainPartIndex); | |
if (slashAfterDomain === -1) { | |
// entire url is the domain (e.g. "http: | |
domain = path; | |
path = ""; | |
} | |
else { | |
domain = path.substr(0, slashAfterDomain); | |
path = path.substr(slashAfterDomain); | |
} | |
} | |
action = domain + encodeURI(path) + query; | |
} | |
} | |
xmlRequest.open("POST", action, true); | |
xmlRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8"); | |
xmlRequest.send(postData); | |
return; | |
} | |
callback.xmlRequest = new Object(); | |
var callbackFrameID = "__CALLBACKFRAME" + callbackIndex; | |
var xmlRequestFrame = document.frames[callbackFrameID]; | |
if (!xmlRequestFrame) { | |
xmlRequestFrame = document.createElement("IFRAME"); | |
xmlRequestFrame.width = "1"; | |
xmlRequestFrame.height = "1"; | |
xmlRequestFrame.frameBorder = "0"; | |
xmlRequestFrame.id = callbackFrameID; | |
xmlRequestFrame.name = callbackFrameID; | |
xmlRequestFrame.style.position = "absolute"; | |
xmlRequestFrame.style.top = "-100px" | |
xmlRequestFrame.style.left = "-100px"; | |
try { | |
if (callBackFrameUrl) { | |
xmlRequestFrame.src = callBackFrameUrl; | |
} | |
} | |
catch(e) {} | |
document.body.appendChild(xmlRequestFrame); | |
} | |
var interval = window.setInterval(function() { | |
xmlRequestFrame = document.frames[callbackFrameID]; | |
if (xmlRequestFrame && xmlRequestFrame.document) { | |
window.clearInterval(interval); | |
xmlRequestFrame.document.write(""); | |
xmlRequestFrame.document.close(); | |
xmlRequestFrame.document.write('<html><body><form method="post"><input type="hidden" name="__CALLBACKLOADSCRIPT" value="t"></form></body></html>'); | |
xmlRequestFrame.document.close(); | |
xmlRequestFrame.document.forms[0].action = theForm.action; | |
var count = __theFormPostCollection.length; | |
var element; | |
for (var i = 0; i < count; i++) { | |
element = __theFormPostCollection[i]; | |
if (element) { | |
var fieldElement = xmlRequestFrame.document.createElement("INPUT"); | |
fieldElement.type = "hidden"; | |
fieldElement.name = element.name; | |
fieldElement.value = element.value; | |
xmlRequestFrame.document.forms[0].appendChild(fieldElement); | |
} | |
} | |
var callbackIdFieldElement = xmlRequestFrame.document.createElement("INPUT"); | |
callbackIdFieldElement.type = "hidden"; | |
callbackIdFieldElement.name = "__CALLBACKID"; | |
callbackIdFieldElement.value = eventTarget; | |
xmlRequestFrame.document.forms[0].appendChild(callbackIdFieldElement); | |
var callbackParamFieldElement = xmlRequestFrame.document.createElement("INPUT"); | |
callbackParamFieldElement.type = "hidden"; | |
callbackParamFieldElement.name = "__CALLBACKPARAM"; | |
callbackParamFieldElement.value = eventArgument; | |
xmlRequestFrame.document.forms[0].appendChild(callbackParamFieldElement); | |
if (theForm["__EVENTVALIDATION"]) { | |
var callbackValidationFieldElement = xmlRequestFrame.document.createElement("INPUT"); | |
callbackValidationFieldElement.type = "hidden"; | |
callbackValidationFieldElement.name = "__EVENTVALIDATION"; | |
callbackValidationFieldElement.value = theForm["__EVENTVALIDATION"].value; | |
xmlRequestFrame.document.forms[0].appendChild(callbackValidationFieldElement); | |
} | |
var callbackIndexFieldElement = xmlRequestFrame.document.createElement("INPUT"); | |
callbackIndexFieldElement.type = "hidden"; | |
callbackIndexFieldElement.name = "__CALLBACKINDEX"; | |
callbackIndexFieldElement.value = callbackIndex; | |
xmlRequestFrame.document.forms[0].appendChild(callbackIndexFieldElement); | |
xmlRequestFrame.document.forms[0].submit(); | |
} | |
}, 10); | |
} | |
function WebForm_CallbackComplete() { | |
for (var i = 0; i < __pendingCallbacks.length; i++) { | |
callbackObject = __pendingCallbacks[i]; | |
if (callbackObject && callbackObject.xmlRequest && (callbackObject.xmlRequest.readyState == 4)) { | |
if (!__pendingCallbacks[i].async) { | |
__synchronousCallBackIndex = -1; | |
} | |
__pendingCallbacks[i] = null; | |
var callbackFrameID = "__CALLBACKFRAME" + i; | |
var xmlRequestFrame = document.getElementById(callbackFrameID); | |
if (xmlRequestFrame) { | |
xmlRequestFrame.parentNode.removeChild(xmlRequestFrame); | |
} | |
WebForm_ExecuteCallback(callbackObject); | |
} | |
} | |
} | |
function WebForm_ExecuteCallback(callbackObject) { | |
var response = callbackObject.xmlRequest.responseText; | |
if (response.charAt(0) == "s") { | |
if ((typeof(callbackObject.eventCallback) != "undefined") && (callbackObject.eventCallback != null)) { | |
callbackObject.eventCallback(response.substring(1), callbackObject.context); | |
} | |
} | |
else if (response.charAt(0) == "e") { | |
if ((typeof(callbackObject.errorCallback) != "undefined") && (callbackObject.errorCallback != null)) { | |
callbackObject.errorCallback(response.substring(1), callbackObject.context); | |
} | |
} | |
else { | |
var separatorIndex = response.indexOf("|"); | |
if (separatorIndex != -1) { | |
var validationFieldLength = parseInt(response.substring(0, separatorIndex)); | |
if (!isNaN(validationFieldLength)) { | |
var validationField = response.substring(separatorIndex + 1, separatorIndex + validationFieldLength + 1); | |
if (validationField != "") { | |
var validationFieldElement = theForm["__EVENTVALIDATION"]; | |
if (!validationFieldElement) { | |
validationFieldElement = document.createElement("INPUT"); | |
validationFieldElement.type = "hidden"; | |
validationFieldElement.name = "__EVENTVALIDATION"; | |
theForm.appendChild(validationFieldElement); | |
} | |
validationFieldElement.value = validationField; | |
} | |
if ((typeof(callbackObject.eventCallback) != "undefined") && (callbackObject.eventCallback != null)) { | |
callbackObject.eventCallback(response.substring(separatorIndex + validationFieldLength + 1), callbackObject.context); | |
} | |
} | |
} | |
} | |
} | |
function WebForm_FillFirstAvailableSlot(array, element) { | |
var i; | |
for (i = 0; i < array.length; i++) { | |
if (!array[i]) break; | |
} | |
array[i] = element; | |
return i; | |
} | |
var __nonMSDOMBrowser = (window.navigator.appName.toLowerCase().indexOf('explorer') == -1); | |
var __theFormPostData = ""; | |
var __theFormPostCollection = new Array(); | |
var __callbackTextTypes = /^(text|password|hidden|search|tel|url|email|number|range|color|datetime|date|month|week|time|datetime-local)$/i; | |
function WebForm_InitCallback() { | |
var formElements = theForm.elements, | |
count = formElements.length, | |
element; | |
for (var i = 0; i < count; i++) { | |
element = formElements[i]; | |
var tagName = element.tagName.toLowerCase(); | |
if (tagName == "input") { | |
var type = element.type; | |
if ((__callbackTextTypes.test(type) || ((type == "checkbox" || type == "radio") && element.checked)) | |
&& (element.id != "__EVENTVALIDATION")) { | |
WebForm_InitCallbackAddField(element.name, element.value); | |
} | |
} | |
else if (tagName == "select") { | |
var selectCount = element.options.length; | |
for (var j = 0; j < selectCount; j++) { | |
var selectChild = element.options[j]; | |
if (selectChild.selected == true) { | |
WebForm_InitCallbackAddField(element.name, element.value); | |
} | |
} | |
} | |
else if (tagName == "textarea") { | |
WebForm_InitCallbackAddField(element.name, element.value); | |
} | |
} | |
} | |
function WebForm_InitCallbackAddField(name, value) { | |
var nameValue = new Object(); | |
nameValue.name = name; | |
nameValue.value = value; | |
__theFormPostCollection[__theFormPostCollection.length] = nameValue; | |
__theFormPostData += WebForm_EncodeCallback(name) + "=" + WebForm_EncodeCallback(value) + "&"; | |
} | |
function WebForm_EncodeCallback(parameter) { | |
if (encodeURIComponent) { | |
return encodeURIComponent(parameter); | |
} | |
else { | |
return escape(parameter); | |
} | |
} | |
var __disabledControlArray = new Array(); | |
function WebForm_ReEnableControls() { | |
if (typeof(__enabledControlArray) == 'undefined') { | |
return false; | |
} | |
var disabledIndex = 0; | |
for (var i = 0; i < __enabledControlArray.length; i++) { | |
var c; | |
if (__nonMSDOMBrowser) { | |
c = document.getElementById(__enabledControlArray[i]); | |
} | |
else { | |
c = document.all[__enabledControlArray[i]]; | |
} | |
if ((typeof(c) != "undefined") && (c != null) && (c.disabled == true)) { | |
c.disabled = false; | |
__disabledControlArray[disabledIndex++] = c; | |
} | |
} | |
setTimeout("WebForm_ReDisableControls()", 0); | |
return true; | |
} | |
function WebForm_ReDisableControls() { | |
for (var i = 0; i < __disabledControlArray.length; i++) { | |
__disabledControlArray[i].disabled = true; | |
} | |
} | |
function WebForm_SimulateClick(element, event) { | |
var clickEvent; | |
if (element) { | |
if (element.click) { | |
element.click(); | |
} else { | |
clickEvent = document.createEvent("MouseEvents"); | |
clickEvent.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); | |
if (!element.dispatchEvent(clickEvent)) { | |
return true; | |
} | |
} | |
event.cancelBubble = true; | |
if (event.stopPropagation) { | |
event.stopPropagation(); | |
} | |
return false; | |
} | |
return true; | |
} | |
function WebForm_FireDefaultButton(event, target) { | |
if (event.keyCode == 13) { | |
var src = event.srcElement || event.target; | |
if (src && | |
((src.tagName.toLowerCase() == "input") && | |
(src.type.toLowerCase() == "submit" || src.type.toLowerCase() == "button")) || | |
((src.tagName.toLowerCase() == "a") && | |
(src.href != null) && (src.href != "")) || | |
(src.tagName.toLowerCase() == "textarea")) { | |
return true; | |
} | |
var defaultButton; | |
if (__nonMSDOMBrowser) { | |
defaultButton = document.getElementById(target); | |
} | |
else { | |
defaultButton = document.all[target]; | |
} | |
if (defaultButton) { | |
return WebForm_SimulateClick(defaultButton, event); | |
} | |
} | |
return true; | |
} | |
function WebForm_GetScrollX() { | |
if (__nonMSDOMBrowser) { | |
return window.pageXOffset; | |
} | |
else { | |
if (document.documentElement && document.documentElement.scrollLeft) { | |
return document.documentElement.scrollLeft; | |
} | |
else if (document.body) { | |
return document.body.scrollLeft; | |
} | |
} | |
return 0; | |
} | |
function WebForm_GetScrollY() { | |
if (__nonMSDOMBrowser) { | |
return window.pageYOffset; | |
} | |
else { | |
if (document.documentElement && document.documentElement.scrollTop) { | |
return document.documentElement.scrollTop; | |
} | |
else if (document.body) { | |
return document.body.scrollTop; | |
} | |
} | |
return 0; | |
} | |
function WebForm_SaveScrollPositionSubmit() { | |
if (__nonMSDOMBrowser) { | |
theForm.elements['__SCROLLPOSITIONY'].value = window.pageYOffset; | |
theForm.elements['__SCROLLPOSITIONX'].value = window.pageXOffset; | |
} | |
else { | |
theForm.__SCROLLPOSITIONX.value = WebForm_GetScrollX(); | |
theForm.__SCROLLPOSITIONY.value = WebForm_GetScrollY(); | |
} | |
if ((typeof(this.oldSubmit) != "undefined") && (this.oldSubmit != null)) { | |
return this.oldSubmit(); | |
} | |
return true; | |
} | |
function WebForm_SaveScrollPositionOnSubmit() { | |
theForm.__SCROLLPOSITIONX.value = WebForm_GetScrollX(); | |
theForm.__SCROLLPOSITIONY.value = WebForm_GetScrollY(); | |
if ((typeof(this.oldOnSubmit) != "undefined") && (this.oldOnSubmit != null)) { | |
return this.oldOnSubmit(); | |
} | |
return true; | |
} | |
function WebForm_RestoreScrollPosition() { | |
if (__nonMSDOMBrowser) { | |
window.scrollTo(theForm.elements['__SCROLLPOSITIONX'].value, theForm.elements['__SCROLLPOSITIONY'].value); | |
} | |
else { | |
window.scrollTo(theForm.__SCROLLPOSITIONX.value, theForm.__SCROLLPOSITIONY.value); | |
} | |
if ((typeof(theForm.oldOnLoad) != "undefined") && (theForm.oldOnLoad != null)) { | |
return theForm.oldOnLoad(); | |
} | |
return true; | |
} | |
function WebForm_TextBoxKeyHandler(event) { | |
if (event.keyCode == 13) { | |
var target; | |
if (__nonMSDOMBrowser) { | |
target = event.target; | |
} | |
else { | |
target = event.srcElement; | |
} | |
if ((typeof(target) != "undefined") && (target != null)) { | |
if (typeof(target.onchange) != "undefined") { | |
target.onchange(); | |
event.cancelBubble = true; | |
if (event.stopPropagation) event.stopPropagation(); | |
return false; | |
} | |
} | |
} | |
return true; | |
} | |
function WebForm_TrimString(value) { | |
return value.replace(/^\s+|\s+$/g, '') | |
} | |
function WebForm_AppendToClassName(element, className) { | |
var currentClassName = ' ' + WebForm_TrimString(element.className) + ' '; | |
className = WebForm_TrimString(className); | |
var index = currentClassName.indexOf(' ' + className + ' '); | |
if (index === -1) { | |
element.className = (element.className === '') ? className : element.className + ' ' + className; | |
} | |
} | |
function WebForm_RemoveClassName(element, className) { | |
var currentClassName = ' ' + WebForm_TrimString(element.className) + ' '; | |
className = WebForm_TrimString(className); | |
var index = currentClassName.indexOf(' ' + className + ' '); | |
if (index >= 0) { | |
element.className = WebForm_TrimString(currentClassName.substring(0, index) + ' ' + | |
currentClassName.substring(index + className.length + 1, currentClassName.length)); | |
} | |
} | |
function WebForm_GetElementById(elementId) { | |
if (document.getElementById) { | |
return document.getElementById(elementId); | |
} | |
else if (document.all) { | |
return document.all[elementId]; | |
} | |
else return null; | |
} | |
function WebForm_GetElementByTagName(element, tagName) { | |
var elements = WebForm_GetElementsByTagName(element, tagName); | |
if (elements && elements.length > 0) { | |
return elements[0]; | |
} | |
else return null; | |
} | |
function WebForm_GetElementsByTagName(element, tagName) { | |
if (element && tagName) { | |
if (element.getElementsByTagName) { | |
return element.getElementsByTagName(tagName); | |
} | |
if (element.all && element.all.tags) { | |
return element.all.tags(tagName); | |
} | |
} | |
return null; | |
} | |
function WebForm_GetElementDir(element) { | |
if (element) { | |
if (element.dir) { | |
return element.dir; | |
} | |
return WebForm_GetElementDir(element.parentNode); | |
} | |
return "ltr"; | |
} | |
function WebForm_GetElementPosition(element) { | |
var result = new Object(); | |
result.x = 0; | |
result.y = 0; | |
result.width = 0; | |
result.height = 0; | |
if (element.offsetParent) { | |
result.x = element.offsetLeft; | |
result.y = element.offsetTop; | |
var parent = element.offsetParent; | |
while (parent) { | |
result.x += parent.offsetLeft; | |
result.y += parent.offsetTop; | |
var parentTagName = parent.tagName.toLowerCase(); | |
if (parentTagName != "table" && | |
parentTagName != "body" && | |
parentTagName != "html" && | |
parentTagName != "div" && | |
parent.clientTop && | |
parent.clientLeft) { | |
result.x += parent.clientLeft; | |
result.y += parent.clientTop; | |
} | |
parent = parent.offsetParent; | |
} | |
} | |
else if (element.left && element.top) { | |
result.x = element.left; | |
result.y = element.top; | |
} | |
else { | |
if (element.x) { | |
result.x = element.x; | |
} | |
if (element.y) { | |
result.y = element.y; | |
} | |
} | |
if (element.offsetWidth && element.offsetHeight) { | |
result.width = element.offsetWidth; | |
result.height = element.offsetHeight; | |
} | |
else if (element.style && element.style.pixelWidth && element.style.pixelHeight) { | |
result.width = element.style.pixelWidth; | |
result.height = element.style.pixelHeight; | |
} | |
return result; | |
} | |
function WebForm_GetParentByTagName(element, tagName) { | |
var parent = element.parentNode; | |
var upperTagName = tagName.toUpperCase(); | |
while (parent && (parent.tagName.toUpperCase() != upperTagName)) { | |
parent = parent.parentNode ? parent.parentNode : parent.parentElement; | |
} | |
return parent; | |
} | |
function WebForm_SetElementHeight(element, height) { | |
if (element && element.style) { | |
element.style.height = height + "px"; | |
} | |
} | |
function WebForm_SetElementWidth(element, width) { | |
if (element && element.style) { | |
element.style.width = width + "px"; | |
} | |
} | |
function WebForm_SetElementX(element, x) { | |
if (element && element.style) { | |
element.style.left = x + "px"; | |
} | |
} | |
function WebForm_SetElementY(element, y) { | |
if (element && element.style) { | |
element.style.top = y + "px"; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment