You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
567 lines
21 KiB
JavaScript
567 lines
21 KiB
JavaScript
//CdnPath=http://ajax.aspnetcdn.com/ajax/4.5.1/1/WebForms.js
|
|
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 queryIndex = action.indexOf('?');
|
|
if (queryIndex !== -1) {
|
|
var path = action.substr(0, queryIndex);
|
|
if (path.indexOf("%") === -1) {
|
|
action = encodeURI(path) + action.substr(queryIndex);
|
|
}
|
|
}
|
|
else if (action.indexOf("%") === -1) {
|
|
action = encodeURI(action);
|
|
}
|
|
}
|
|
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";
|
|
}
|
|
} |