1: function WebForm_PostBackOptions(eventTarget, eventArgument, validation, validationGroup, actionUrl, trackFocus, clientSubmit) {
2: this.eventTarget = eventTarget;
3: this.eventArgument = eventArgument;
4: this.validation = validation;
5: this.validationGroup = validationGroup;
6: this.actionUrl = actionUrl;
7: this.trackFocus = trackFocus;
8: this.clientSubmit = clientSubmit;
9: }
10: function WebForm_DoPostBackWithOptions(options) {
11: var validationResult = true;
12: if (options.validation) {
13: if (typeof(Page_ClientValidate) == 'function') {
14: validationResult = Page_ClientValidate(options.validationGroup);
15: }
16: }
17: if (validationResult) {
18: if ((typeof(options.actionUrl) != "undefined") && (options.actionUrl != null) && (options.actionUrl.length > 0)) {
19: theForm.action = options.actionUrl;
20: }
21: if (options.trackFocus) {
22: var lastFocus = theForm.elements["__LASTFOCUS"];
23: if ((typeof(lastFocus) != "undefined") && (lastFocus != null)) {
24: if (typeof(document.activeElement) == "undefined") {
25: lastFocus.value = options.eventTarget;
26: }
27: else {
28: var active = document.activeElement;
29: if ((typeof(active) != "undefined") && (active != null)) {
30: if ((typeof(active.id) != "undefined") && (active.id != null) && (active.id.length > 0)) {
31: lastFocus.value = active.id;
32: }
33: else if (typeof(active.name) != "undefined") {
34: lastFocus.value = active.name;
35: }
36: }
37: }
38: }
39: }
40: }
41: if (options.clientSubmit) {
42: __doPostBack(options.eventTarget, options.eventArgument);
43: }
44: }
45: var __pendingCallbacks = new Array();
46: var __synchronousCallBackIndex = -1;
47: function WebForm_DoCallback(eventTarget, eventArgument, eventCallback, context, errorCallback, useAsync) {
48: var postData = __theFormPostData +
49: "__CALLBACKID=" + WebForm_EncodeCallback(eventTarget) +
50: "&__CALLBACKPARAM=" + WebForm_EncodeCallback(eventArgument);
51: if (theForm["__EVENTVALIDATION"]) {
52: postData += "&__EVENTVALIDATION=" + WebForm_EncodeCallback(theForm["__EVENTVALIDATION"].value);
53: }
54: var xmlRequest,e;
55: try {
56: xmlRequest = new XMLHttpRequest();
57: }
58: catch(e) {
59: try {
60: xmlRequest = new ActiveXObject("Microsoft.XMLHTTP");
61: }
62: catch(e) {
63: }
64: }
65: var setRequestHeaderMethodExists = true;
66: try {
67: setRequestHeaderMethodExists = (xmlRequest && xmlRequest.setRequestHeader);
68: }
69: catch(e) {}
70: var callback = new Object();
71: callback.eventCallback = eventCallback;
72: callback.context = context;
73: callback.errorCallback = errorCallback;
74: callback.async = useAsync;
75: var callbackIndex = WebForm_FillFirstAvailableSlot(__pendingCallbacks, callback);
76: if (!useAsync) {
77: if (__synchronousCallBackIndex != -1) {
78: __pendingCallbacks[__synchronousCallBackIndex] = null;
79: }
80: __synchronousCallBackIndex = callbackIndex;
81: }
82: if (setRequestHeaderMethodExists) {
83: xmlRequest.onreadystatechange = WebForm_CallbackComplete;
84: callback.xmlRequest = xmlRequest;
85: xmlRequest.open("POST", theForm.action, true);
86: xmlRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
87: xmlRequest.send(postData);
88: return;
89: }
90: callback.xmlRequest = new Object();
91: var callbackFrameID = "__CALLBACKFRAME" + callbackIndex;
92: var xmlRequestFrame = document.frames[callbackFrameID];
93: if (!xmlRequestFrame) {
94: xmlRequestFrame = document.createElement("IFRAME");
95: xmlRequestFrame.width = "1";
96: xmlRequestFrame.height = "1";
97: xmlRequestFrame.frameBorder = "0";
98: xmlRequestFrame.id = callbackFrameID;
99: xmlRequestFrame.name = callbackFrameID;
100: xmlRequestFrame.style.position = "absolute";
101: xmlRequestFrame.style.top = "-100px"
102: xmlRequestFrame.style.left = "-100px";
103: try {
104: if (callBackFrameUrl) {
105: xmlRequestFrame.src = callBackFrameUrl;
106: }
107: }
108: catch(e) {}
109: document.body.appendChild(xmlRequestFrame);
110: }
111: var interval = window.setInterval(function() {
112: xmlRequestFrame = document.frames[callbackFrameID];
113: if (xmlRequestFrame && xmlRequestFrame.document) {
114: window.clearInterval(interval);
115: xmlRequestFrame.document.write("");
116: xmlRequestFrame.document.close();
117: xmlRequestFrame.document.write('<html><body><form method="post"><input type="hidden" name="__CALLBACKLOADSCRIPT" value="t"></form></body></html>');
118: xmlRequestFrame.document.close();
119: xmlRequestFrame.document.forms[0].action = theForm.action;
120: var count = __theFormPostCollection.length;
121: var element;
122: for (var i = 0; i < count; i++) {
123: element = __theFormPostCollection[i];
124: if (element) {
125: var fieldElement = xmlRequestFrame.document.createElement("INPUT");
126: fieldElement.type = "hidden";
127: fieldElement.name = element.name;
128: fieldElement.value = element.value;
129: xmlRequestFrame.document.forms[0].appendChild(fieldElement);
130: }
131: }
132: var callbackIdFieldElement = xmlRequestFrame.document.createElement("INPUT");
133: callbackIdFieldElement.type = "hidden";
134: callbackIdFieldElement.name = "__CALLBACKID";
135: callbackIdFieldElement.value = eventTarget;
136: xmlRequestFrame.document.forms[0].appendChild(callbackIdFieldElement);
137: var callbackParamFieldElement = xmlRequestFrame.document.createElement("INPUT");
138: callbackParamFieldElement.type = "hidden";
139: callbackParamFieldElement.name = "__CALLBACKPARAM";
140: callbackParamFieldElement.value = eventArgument;
141: xmlRequestFrame.document.forms[0].appendChild(callbackParamFieldElement);
142: if (theForm["__EVENTVALIDATION"]) {
143: var callbackValidationFieldElement = xmlRequestFrame.document.createElement("INPUT");
144: callbackValidationFieldElement.type = "hidden";
145: callbackValidationFieldElement.name = "__EVENTVALIDATION";
146: callbackValidationFieldElement.value = theForm["__EVENTVALIDATION"].value;
147: xmlRequestFrame.document.forms[0].appendChild(callbackValidationFieldElement);
148: }
149: var callbackIndexFieldElement = xmlRequestFrame.document.createElement("INPUT");
150: callbackIndexFieldElement.type = "hidden";
151: callbackIndexFieldElement.name = "__CALLBACKINDEX";
152: callbackIndexFieldElement.value = callbackIndex;
153: xmlRequestFrame.document.forms[0].appendChild(callbackIndexFieldElement);
154: xmlRequestFrame.document.forms[0].submit();
155: }
156: }, 10);
157: }
158: function WebForm_CallbackComplete() {
159: for (i = 0; i < __pendingCallbacks.length; i++) {
160: callbackObject = __pendingCallbacks[i];
161: if (callbackObject && callbackObject.xmlRequest && (callbackObject.xmlRequest.readyState == 4)) {
162: WebForm_ExecuteCallback(callbackObject);
163: if (!__pendingCallbacks[i].async) {
164: __synchronousCallBackIndex = -1;
165: }
166: __pendingCallbacks[i] = null;
167: var callbackFrameID = "__CALLBACKFRAME" + i;
168: var xmlRequestFrame = document.getElementById(callbackFrameID);
169: if (xmlRequestFrame) {
170: xmlRequestFrame.parentNode.removeChild(xmlRequestFrame);
171: }
172: }
173: }
174: }
175: function WebForm_ExecuteCallback(callbackObject) {
176: var response = callbackObject.xmlRequest.responseText;
177: if (response.charAt(0) == "s") {
178: if ((typeof(callbackObject.eventCallback) != "undefined") && (callbackObject.eventCallback != null)) {
179: callbackObject.eventCallback(response.substring(1), callbackObject.context);
180: }
181: }
182: else if (response.charAt(0) == "e") {
183: if ((typeof(callbackObject.errorCallback) != "undefined") && (callbackObject.errorCallback != null)) {
184: callbackObject.errorCallback(response.substring(1), callbackObject.context);
185: }
186: }
187: else {
188: var separatorIndex = response.indexOf("|");
189: if (separatorIndex != -1) {
190: var validationFieldLength = parseInt(response.substring(0, separatorIndex));
191: if (!isNaN(validationFieldLength)) {
192: var validationField = response.substring(separatorIndex + 1, separatorIndex + validationFieldLength + 1);
193: if (validationField != "") {
194: var validationFieldElement = theForm["__EVENTVALIDATION"];
195: if (!validationFieldElement) {
196: validationFieldElement = document.createElement("INPUT");
197: validationFieldElement.type = "hidden";
198: validationFieldElement.name = "__EVENTVALIDATION";
199: theForm.appendChild(validationFieldElement);
200: }
201: validationFieldElement.value = validationField;
202: }
203: if ((typeof(callbackObject.eventCallback) != "undefined") && (callbackObject.eventCallback != null)) {
204: callbackObject.eventCallback(response.substring(separatorIndex + validationFieldLength + 1), callbackObject.context);
205: }
206: }
207: }
208: }
209: }
210: function WebForm_FillFirstAvailableSlot(array, element) {
211: var i;
212: for (i = 0; i < array.length; i++) {
213: if (!array[i]) break;
214: }
215: array[i] = element;
216: return i;
217: }
218: var __nonMSDOMBrowser = (window.navigator.appName.toLowerCase().indexOf('explorer') == -1);
219: var __theFormPostData = "";
220: var __theFormPostCollection = new Array();
221: function WebForm_InitCallback() {
222: var count = theForm.elements.length;
223: var element;
224: for (var i = 0; i < count; i++) {
225: element = theForm.elements[i];
226: var tagName = element.tagName.toLowerCase();
227: if (tagName == "input") {
228: var type = element.type;
229: if ((type == "text" || type == "hidden" || type == "password" ||
230: ((type == "checkbox" || type == "radio") && element.checked)) &&
231: (element.id != "__EVENTVALIDATION")) {
232: WebForm_InitCallbackAddField(element.name, element.value);
233: }
234: }
235: else if (tagName == "select") {
236: var selectCount = element.options.length;
237: for (var j = 0; j < selectCount; j++) {
238: var selectChild = element.options[j];
239: if (selectChild.selected == true) {
240: WebForm_InitCallbackAddField(element.name, element.value);
241: }
242: }
243: }
244: else if (tagName == "textarea") {
245: WebForm_InitCallbackAddField(element.name, element.value);
246: }
247: }
248: }
249: function WebForm_InitCallbackAddField(name, value) {
250: var nameValue = new Object();
251: nameValue.name = name;
252: nameValue.value = value;
253: __theFormPostCollection[__theFormPostCollection.length] = nameValue;
254: __theFormPostData += name + "=" + WebForm_EncodeCallback(value) + "&";
255: }
256: function WebForm_EncodeCallback(parameter) {
257: if (encodeURIComponent) {
258: return encodeURIComponent(parameter);
259: }
260: else {
261: return escape(parameter);
262: }
263: }
264: var __disabledControlArray = new Array();
265: function WebForm_ReEnableControls() {
266: if (typeof(__enabledControlArray) == 'undefined') {
267: return false;
268: }
269: var disabledIndex = 0;
270: for (var i = 0; i < __enabledControlArray.length; i++) {
271: var c;
272: if (__nonMSDOMBrowser) {
273: c = document.getElementById(__enabledControlArray[i]);
274: }
275: else {
276: c = document.all[__enabledControlArray[i]];
277: }
278: if ((typeof(c) != "undefined") && (c != null) && (c.disabled == true)) {
279: c.disabled = false;
280: __disabledControlArray[disabledIndex++] = c;
281: }
282: }
283: setTimeout("WebForm_ReDisableControls()", 0);
284: return true;
285: }
286: function WebForm_ReDisableControls() {
287: for (var i = 0; i < __disabledControlArray.length; i++) {
288: __disabledControlArray[i].disabled = true;
289: }
290: }
291: function WebForm_FireDefaultButton(event, target) {
292: if (event.keyCode == 13 && !(event.srcElement && (event.srcElement.tagName.toLowerCase() == "textarea"))) {
293: var defaultButton;
294: if (__nonMSDOMBrowser) {
295: defaultButton = document.getElementById(target);
296: }
297: else {
298: defaultButton = document.all[target];
299: }
300: if (defaultButton && typeof(defaultButton.click) != "undefined") {
301: defaultButton.click();
302: event.cancelBubble = true;
303: if (event.stopPropagation) event.stopPropagation();
304: return false;
305: }
306: }
307: return true;
308: }
309: function WebForm_GetScrollX() {
310: if (__nonMSDOMBrowser) {
311: return window.pageXOffset;
312: }
313: else {
314: if (document.documentElement && document.documentElement.scrollLeft) {
315: return document.documentElement.scrollLeft;
316: }
317: else if (document.body) {
318: return document.body.scrollLeft;
319: }
320: }
321: return 0;
322: }
323: function WebForm_GetScrollY() {
324: if (__nonMSDOMBrowser) {
325: return window.pageYOffset;
326: }
327: else {
328: if (document.documentElement && document.documentElement.scrollTop) {
329: return document.documentElement.scrollTop;
330: }
331: else if (document.body) {
332: return document.body.scrollTop;
333: }
334: }
335: return 0;
336: }
337: function WebForm_SaveScrollPositionSubmit() {
338: if (__nonMSDOMBrowser) {
339: theForm.elements['__SCROLLPOSITIONY'].value = window.pageYOffset;
340: theForm.elements['__SCROLLPOSITIONX'].value = window.pageXOffset;
341: }
342: else {
343: theForm.__SCROLLPOSITIONX.value = WebForm_GetScrollX();
344: theForm.__SCROLLPOSITIONY.value = WebForm_GetScrollY();
345: }
346: if ((typeof(this.oldSubmit) != "undefined") && (this.oldSubmit != null)) {
347: return this.oldSubmit();
348: }
349: return true;
350: }
351: function WebForm_SaveScrollPositionOnSubmit() {
352: theForm.__SCROLLPOSITIONX.value = WebForm_GetScrollX();
353: theForm.__SCROLLPOSITIONY.value = WebForm_GetScrollY();
354: if ((typeof(this.oldOnSubmit) != "undefined") && (this.oldOnSubmit != null)) {
355: return this.oldOnSubmit();
356: }
357: return true;
358: }
359: function WebForm_RestoreScrollPosition() {
360: if (__nonMSDOMBrowser) {
361: window.scrollTo(theForm.elements['__SCROLLPOSITIONX'].value, theForm.elements['__SCROLLPOSITIONY'].value);
362: }
363: else {
364: window.scrollTo(theForm.__SCROLLPOSITIONX.value, theForm.__SCROLLPOSITIONY.value);
365: }
366: if ((typeof(theForm.oldOnLoad) != "undefined") && (theForm.oldOnLoad != null)) {
367: return theForm.oldOnLoad();
368: }
369: return true;
370: }
371: function WebForm_TextBoxKeyHandler(event) {
372: if (event.keyCode == 13) {
373: var target;
374: if (__nonMSDOMBrowser) {
375: target = event.target;
376: }
377: else {
378: target = event.srcElement;
379: }
380: if ((typeof(target) != "undefined") && (target != null)) {
381: if (typeof(target.onchange) != "undefined") {
382: target.onchange();
383: event.cancelBubble = true;
384: if (event.stopPropagation) event.stopPropagation();
385: return false;
386: }
387: }
388: }
389: return true;
390: }
391: function WebForm_AppendToClassName(element, className) {
392: var current = element.className;
393: if (current) {
394: if (current.charAt(current.length - 1) != ' ') {
395: current += ' ';
396: }
397: current += className;
398: }
399: else {
400: current = className;
401: }
402: element.className = current;
403: }
404: function WebForm_RemoveClassName(element, className) {
405: var current = element.className;
406: if (current) {
407: if (current.substring(current.length - className.length - 1, current.length) == ' ' + className) {
408: element.className = current.substring(0, current.length - className.length - 1);
409: return;
410: }
411: if (current == className) {
412: element.className = "";
413: return;
414: }
415: var index = current.indexOf(' ' + className + ' ');
416: if (index != -1) {
417: element.className = current.substring(0, index) + current.substring(index + className.length + 2, current.length);
418: return;
419: }
420: if (current.substring(0, className.length) == className + ' ') {
421: element.className = current.substring(className.length + 1, current.length);
422: }
423: }
424: }
425: function WebForm_GetElementById(elementId) {
426: if (document.getElementById) {
427: return document.getElementById(elementId);
428: }
429: else if (document.all) {
430: return document.all[elementId];
431: }
432: else return null;
433: }
434: function WebForm_GetElementByTagName(element, tagName) {
435: var elements = WebForm_GetElementsByTagName(element, tagName);
436: if (elements && elements.length > 0) {
437: return elements[0];
438: }
439: else return null;
440: }
441: function WebForm_GetElementsByTagName(element, tagName) {
442: if (element && tagName) {
443: if (element.getElementsByTagName) {
444: return element.getElementsByTagName(tagName);
445: }
446: if (element.all && element.all.tags) {
447: return element.all.tags(tagName);
448: }
449: }
450: return null;
451: }
452: function WebForm_GetElementDir(element) {
453: if (element) {
454: if (element.dir) {
455: return element.dir;
456: }
457: return WebForm_GetElementDir(element.parentNode);
458: }
459: return "ltr";
460: }
461: function WebForm_GetElementPosition(element) {
462: var result = new Object();
463: result.x = 0;
464: result.y = 0;
465: result.width = 0;
466: result.height = 0;
467: if (element.offsetParent) {
468: result.x = element.offsetLeft;
469: result.y = element.offsetTop;
470: var parent = element.offsetParent;
471: while (parent) {
472: result.x += parent.offsetLeft;
473: result.y += parent.offsetTop;
474: var parentTagName = parent.tagName.toLowerCase();
475: if (parentTagName != "table" &&
476: parentTagName != "body" &&
477: parentTagName != "html" &&
478: parentTagName != "div" &&
479: parent.clientTop &&
480: parent.clientLeft) {
481: result.x += parent.clientLeft;
482: result.y += parent.clientTop;
483: }
484: parent = parent.offsetParent;
485: }
486: }
487: else if (element.left && element.top) {
488: result.x = element.left;
489: result.y = element.top;
490: }
491: else {
492: if (element.x) {
493: result.x = element.x;
494: }
495: if (element.y) {
496: result.y = element.y;
497: }
498: }
499: if (element.offsetWidth && element.offsetHeight) {
500: result.width = element.offsetWidth;
501: result.height = element.offsetHeight;
502: }
503: else if (element.style && element.style.pixelWidth && element.style.pixelHeight) {
504: result.width = element.style.pixelWidth;
505: result.height = element.style.pixelHeight;
506: }
507: return result;
508: }
509: function WebForm_GetParentByTagName(element, tagName) {
510: var parent = element.parentNode;
511: var upperTagName = tagName.toUpperCase();
512: while (parent && (parent.tagName.toUpperCase() != upperTagName)) {
513: parent = parent.parentNode ? parent.parentNode : parent.parentElement;
514: }
515: return parent;
516: }
517: function WebForm_SetElementHeight(element, height) {
518: if (element && element.style) {
519: element.style.height = height + "px";
520: }
521: }
522: function WebForm_SetElementWidth(element, width) {
523: if (element && element.style) {
524: element.style.width = width + "px";
525: }
526: }
527: function WebForm_SetElementX(element, x) {
528: if (element && element.style) {
529: element.style.left = x + "px";
530: }
531: }
532: function WebForm_SetElementY(element, y) {
533: if (element && element.style) {
534: element.style.top = y + "px";
535: }
536: }