PageSourceSearch

https://auditonline.gov.in/priaaadwr/engine.js?version=1791427442516

js auditonline.gov.in collected 2026-10-08 02:44:20 UTC 53,311 bytes, 2,740 lines download raw bytes

1/*
2 * Copyright 2005 Joe Walker
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *     http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16 
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36if (typeof dwr == 'undefined') dwr = {};
37
38(function() {
39if (!dwr.engine) dwr.engine = {};
40
41
42
43
44
45dwr.engine.setErrorHandler = function(handler) {
46dwr.engine._errorHandler = handler;
47};
48
49
50
51
52
53dwr.engine.setWarningHandler = function(handler) {
54dwr.engine._warningHandler = handler;
55};
56
57
58
59
60
61
62
63
64
65dwr.engine.setTextHtmlHandler = function(handler) {
66dwr.engine._textHtmlHandler = handler;
67};
68
69dwr.engine.setPollStatusHandler = function(handler) {
70dwr.engine._pollStatusHandler = handler;
71};
72
73
74
75
76
77dwr.engine.setTimeout = function(timeout) {
78dwr.engine._timeout = timeout;
79};
80
81
82
83
84dwr.engine.setPollTimeout = function(timeout) {
85dwr.engine._pollTimeout = timeout;
86};
87
88
89
90
91
92dwr.engine.setPreHook = function(handler) {
93dwr.engine._preHook = handler;
94};
95
96
97
98
99
100dwr.engine.setPostHook = function(handler) {
101dwr.engine._postHook = handler;
102};
103
104
105
106
107
108dwr.engine.setOverridePath = function(path) {
109dwr.engine._overridePath = path;
110};
111
112
113
114
115
116dwr.engine.setOverrideContextPath = function(path) {
117dwr.engine._overrideContextPath = path;
118};
119
120
121
122
123
124dwr.engine.setCookieAttributes = function(attributeString) {
125dwr.engine._cookieAttributes = attributeString;
126};
127
128
129
130
131
132dwr.engine.setHeaders = function(headers) {
133dwr.engine._headers = headers;
134};
135
136
137
138
139
140dwr.engine.setAttributes = function(attributes) {
141dwr.engine._attributes = attributes;
142};
143
144
145
146
147
148dwr.engine.setOrdered = function(ordered) {
149dwr.engine._ordered = ordered;
150};
151
152
153
154
155
156
157
158dwr.engine.setAsync = function(async) {
159dwr.engine._async = async;
160};
161
162
163
164
165
166dwr.engine.setActiveReverseAjax = function(activeReverseAjax) {
167if (activeReverseAjax) {
168
169if (dwr.engine._activeReverseAjax) return;
170
171if (!dwr.engine._retryIntervals || dwr.engine._retryIntervals.length === 0) { dwr.engine._retryIntervals = dwr.engine._defaultRetryIntervals; }
172dwr.engine._activeReverseAjax = true;
173if (dwr.engine._initializing) return;
174dwr.engine._poll();
175}
176else {
177
178if (dwr.engine._activeReverseAjax && dwr.engine._pollBatch) {
179dwr.engine.transport.abort(dwr.engine._pollBatch);
180}
181dwr.engine._activeReverseAjax = false;
182}
183
184
185
186};
187
188
189
190
191
192dwr.engine.setNotifyServerOnPageUnload = function(notify, asyncUnload) {
193dwr.engine._asyncUnload = (asyncUnload !== undefined) ? asyncUnload : false;
194dwr.engine._isNotifyServerOnPageUnload = notify;
195};
196
197
198
199
200
201dwr.engine.setNotifyServerOnPageLoad = function(notify) {
202dwr.engine._isNotifyServerOnPageLoad = notify;
203if (notify && !dwr.engine._initializing && !dwr.engine._isNotifyServerOnPageLoadSent) {
204eval("dwr.engine._execute(dwr.engine._pathToDwrServlet, '__System', 'pageLoaded', [ function() { dwr.engine._ordered = false; }]);");
205dwr.engine._isNotifyServerOnPageLoadSent = true;
206}
207};
208
209
210
211
212
213dwr.engine.setMaxRetries = function(maxRetries) {
214dwr.engine._maxRetries = maxRetries;
215};
216
217
218
219
220
221dwr.engine.setRetryIntervals = function(intervalsArray) {
222dwr.engine._retryIntervals = intervalsArray;
223};
224
225
226
227
228
229
230dwr.engine.defaultErrorHandler = function(message, ex) {
231dwr.engine._debug("Error: " + ex.name + ", " + ex.message, true);
232if (!message) message = "A server error has occurred.";
233
234if (message.indexOf("0x80040111") != -1) return;
235if ("false" == "true") alert(message);
236};
237
238
239
240
241
242
243dwr.engine.defaultWarningHandler = function(message, ex) {
244dwr.engine._debug(message);
245};
246
247
248
249
250
251
252dwr.engine.defaultPollStatusHandler = function(newStatus, ex) {
253dwr.engine.util.logHandlerEx(function() {
254if (newStatus === false && dwr.engine._errorHandler) dwr.engine._errorHandler(ex.message, ex);
255});
256};
257
258
259
260
261dwr.engine.beginBatch = function() {
262if (dwr.engine._batch) {
263dwr.engine._handleError(null, { name:"dwr.engine.batchBegun", message:"Batch already begun" });
264return;
265}
266dwr.engine._batch = dwr.engine.batch.create();
267};
268
269
270
271
272
273dwr.engine.endBatch = function(options) {
274var batch = dwr.engine._batch;
275if (batch == null) {
276dwr.engine._handleError(null, { name:"dwr.engine.batchNotBegun", message:"No batch in progress" });
277return;
278}
279dwr.engine._batch = null;
280if (batch.map.callCount === 0) {
281return;
282}
283
284
285if (options) {
286dwr.engine.batch.merge(batch, options);
287}
288
289
290
291if (batch.async && (dwr.engine._ordered || dwr.engine._internalOrdered) && dwr.engine._batchesLength !== 0) {
292dwr.engine._batchQueue[dwr.engine._batchQueue.length] = batch;
293}
294else {
295return dwr.engine.transport.send(batch);
296}
297};
298
299
300
301
302
303
304dwr.engine.openInDownload = function(data) {
305var div = document.createElement("div");
306document.body.appendChild(div);
307div.innerHTML = "<iframe width='0' height='0' scrolling='no' frameborder='0' src='" + data + "'></iframe>";
308};
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324dwr.version = {
325
326
327
328major:parseInt("3", 10),
329
330
331
332
333minor:parseInt("0", 10),
334
335
336
337
338revision:parseInt("3", 10),
339
340
341
342
343build:parseInt("-1", 10),
344
345
346
347
348
349title:"dev",
350
351
352
353
354label:"3.0.3-dev"
355};
356
357
358
359
360
361
362dwr.engine._initializing = true;
363
364
365dwr.engine._allowGetButMakeForgeryEasier = "false";
366
367
368dwr.engine._scriptTagProtection = "throw 'allowScriptTagRemoting is false.';";
369
370
371dwr.engine._pathToDwrServlet = "/priaaadwr";
372
373
374dwr.engine._overridePath = "";
375if (typeof pathToDwrServlet != "undefined") {
376dwr.engine._overridePath = pathToDwrServlet;
377}
378
379dwr.engine._effectivePath = function() {
380return dwr.engine._overridePath || dwr.engine._pathToDwrServlet;
381};
382
383
384dwr.engine._contextPath = "";
385
386
387dwr.engine._overrideContextPath = "";
388
389dwr.engine._effectiveContextPath = function() {
390return dwr.engine._overrideContextPath || dwr.engine._contextPath;
391};
392
393
394dwr.engine._cookieAttributes = "";
395
396
397dwr.engine._useStreamingPoll = "true";
398
399dwr.engine._pollOnline = true;
400
401
402dwr.engine._ModePlainCall = "/call/plaincall/";
403dwr.engine._ModePlainPoll = "/call/plainpoll/";
404dwr.engine._ModeHtmlCall = "/call/htmlcall/";
405dwr.engine._ModeHtmlPoll = "/call/htmlpoll/";
406
407
408dwr.engine._async = Boolean("true");
409
410
411dwr.engine._pageId = null;
412
413
414dwr.engine._dwrSessionId = null;
415
416
417dwr.engine._scriptSessionId = "";
418
419
420dwr.engine._preHook = null;
421
422
423dwr.engine._postHook = null;
424
425
426dwr.engine._batches = {};
427
428
429dwr.engine._batchesLength = 0;
430
431
432dwr.engine._batchQueue = [];
433
434
435dwr.engine._ordered = false;
436
437
438dwr.engine._internalOrdered = false;
439
440
441dwr.engine._batch = null;
442
443
444dwr.engine._timeout = 0;
445
446
447dwr.engine._activeReverseAjax = false;
448
449
450dwr.engine._nextReverseAjaxIndex = 0;
451
452
453dwr.engine._reverseAjaxQueue = {};
454
455
456dwr.engine._pollBatch = null;
457
458
459dwr.engine._pollTimeout = 0;
460
461
462dwr.engine._pollCometInterval = 200;
463
464
465dwr.engine._retries = 1;
466dwr.engine._maxRetries = -1;
467
468
469dwr.engine._retryIntervals = [];
470
471
472
473
474
475dwr.engine._defaultRetryIntervals = [ 1, 3, 3 ];
476
477dwr.engine._textHtmlHandler = null;
478
479
480dwr.engine._headers = null;
481
482
483if (typeof attributes != "undefined") {
484dwr.engine._attributes = attributes;
485}
486else {
487dwr.engine._attributes = null;
488}
489
490
491dwr.engine._nextBatchId = 0;
492
493
494dwr.engine._instanceId = -1;
495
496
497dwr.engine._propnames = [ "async", "timeout", "errorHandler", "warningHandler", "textHtmlHandler" ];
498
499
500dwr.engine._partialResponseNo = 0;
501dwr.engine._partialResponseYes = 1;
502
503
504dwr.engine._isNotifyServerOnPageUnload = false;
505
506
507dwr.engine._isNotifyServerOnPageLoad = false;
508dwr.engine._isNotifyServerOnPageLoadSent = false;
509
510
511dwr.engine._asyncUnload = false;
512
513
514
515
516
517dwr.engine._mappedClasses = {};
518
519
520dwr.engine._errorHandler = dwr.engine.defaultErrorHandler;
521
522
523dwr.engine._warningHandler = dwr.engine.defaultWarningHandler;
524
525dwr.engine._pollStatusHandler = dwr.engine.defaultPollStatusHandler;
526
527
528dwr.engine._postSeperator = "\n";
529dwr.engine._defaultInterceptor = function(data) { return data; };
530dwr.engine._urlRewriteHandler = dwr.engine._defaultInterceptor;
531dwr.engine._contentRewriteHandler = dwr.engine._defaultInterceptor;
532dwr.engine._replyRewriteHandler = dwr.engine._defaultInterceptor;
533
534
535dwr.engine._excludeObjectAttributes = {
536"$dwrClassName": true,
537"$dwrByRef": true,
538"$_dwrConversionRef": true
539};
540
541dwr.engine._ieConditions = {};
542
543
544dwr.engine._beforeUnloading = false;
545
546
547dwr.engine._queuedBatchException = null;
548
549
550
551dwr.engine._beforeUnloader = function() {
552dwr.engine._beforeUnloading = true;
553
554
555
556setTimeout(function() {
557
558
559
560setTimeout(function() {
561dwr.engine._beforeUnloading = false;
562}, 1000);
563}, 1);
564};
565
566
567dwr.engine._unloading = false;
568
569
570dwr.engine._unloader = function() {
571dwr.engine._unloading = true;
572
573
574dwr.engine._batchQueue.length = 0;
575
576
577var batch;
578for (var batchId in dwr.engine._batches) {
579batch = dwr.engine._batches[batchId];
580if (batch.transport && batch.transport.abort) {
581batch.transport.abort(batch);
582}
583}
584
585
586if (dwr.engine._isNotifyServerOnPageUnload) {
587dwr.engine._debug("calling unloader for: " + dwr.engine._scriptSessionId);
588batch = {
589map:{
590callCount:1,
591'c0-scriptName':'__System',
592'c0-methodName':'pageUnloaded',
593'c0-id':0
594},
595paramCount:0, isPoll:false, async:dwr.engine._asyncUnload,
596headers:{}, preHooks:[], postHooks:[],
597timeout:dwr.engine._timeout,
598errorHandler:null, globalErrorHandler:dwr.engine._errorHandler, warningHandler:null, textHtmlHandler:null, globalTextHtmlHandler:null,
599handlers:[{ exceptionHandler:null, callback:null }]
600};
601dwr.engine.transport.send(batch);
602dwr.engine._isNotifyServerOnPageUnload = false;
603}
604};
605
606function ignoreIfUnloading(batch, f) {
607
608if (dwr.engine._unloading) return;
609
610if (dwr.engine._beforeUnloading && (batch == null || batch.async)) {
611setTimeout(function() {
612ignoreIfUnloading(batch, f);
613}, 100);
614}
615
616else {
617return f();
618}
619}
620
621dwr.engine._initializer = {
622
623
624
625preInit: function() {
626
627dwr.engine._pageId = dwr.engine.util.tokenify(new Date().getTime()) + "-" + dwr.engine.util.tokenify(Math.random() * 1E16);
628
629
630dwr.engine.transport.updateDwrSessionFromCookie();
631
632
633dwr.engine.util.addEventListener(window, 'beforeunload', dwr.engine._beforeUnloader);
634dwr.engine.util.addEventListener(window, 'unload', dwr.engine._unloader);
635
636
637var g = dwr.engine._global;
638if (!g.dwr) g.dwr = {};
639if (!g.dwr._) g.dwr._ = [];
640dwr.engine._instanceId = g.dwr._.length;
641g.dwr._[dwr.engine._instanceId] = dwr;
642},
643
644loadDwrConfig: function() {
645if (typeof dwrConfig != "undefined") {
646for(p in dwrConfig) {
647var methodName = "set" + p.charAt(0).toUpperCase() + p.substring(1);
648var setter = dwr.engine[methodName];
649if (setter) setter(dwrConfig[p]);
650}
651}
652},
653
654init: function() {
655dwr.engine._initializer.preInit();
656dwr.engine._initializer.loadDwrConfig();
657dwr.engine._initializing = false;
658
659if (dwr.engine._isNotifyServerOnPageLoad) {
660eval("dwr.engine._execute(dwr.engine._pathToDwrServlet, '__System', 'pageLoaded', [ function() { dwr.engine._ordered = false; }]);");
661dwr.engine._isNotifyServerOnPageLoadSent = true;
662}
663if (dwr.engine._activeReverseAjax) {
664dwr.engine._poll();
665}
666}
667};
668
669
670
671
672
673
674
675
676
677
678
679dwr.engine._execute = function(overridePath, scriptName, methodName, args) {
680var path = overridePath || dwr.engine._effectivePath();
681dwr.engine._singleShot = false;
682if (dwr.engine._batch == null) {
683dwr.engine.beginBatch();
684dwr.engine._singleShot = true;
685}
686
687var batch = dwr.engine._batch;
688
689
690if (batch.path == null) {
691batch.path = path;
692}
693else {
694if (batch.path != path) {
695dwr.engine._handleError(batch, { name:"dwr.engine.multipleServlets", message:"Can't batch requests to multiple DWR Servlets." });
696return;
697}
698}
699
700dwr.engine.batch.addCall(batch, scriptName, methodName, args);
701
702if (dwr.engine._isHeartbeatBatch(batch)) {
703
704batch.timeout = 750;
705}
706
707
708batch.map.callCount++;
709if (dwr.engine._singleShot) {
710return dwr.engine.endBatch();
711}
712};
713
714
715
716
717
718dwr.engine._poll = function() {
719if (!dwr.engine._activeReverseAjax) {
720return;
721}
722dwr.engine._pollBatch = dwr.engine.batch.createPoll();
723dwr.engine.transport.send(dwr.engine._pollBatch);
724};
725
726
727dwr.engine._executeScript = function(script) {
728if (script == null) {
729return null;
730}
731if (script === "") {
732dwr.engine._debug("Warning: blank script", true);
733return null;
734}
735
736(new Function("dwr", script))(dwr);
737};
738
739
740dwr.engine._callPostHooks = function(batch) {
741if (batch.postHooks) {
742for (var i = 0; i < batch.postHooks.length; i++) {
743batch.postHooks[i]();
744}
745batch.postHooks = null;
746}
747};
748
749
750
751
752
753
754
755dwr.engine._isHeartbeatBatch = function(batch) {
756return (batch.map && batch.map['c0-methodName'] === 'checkHeartbeat' && batch.map['c0-scriptName'] === '__System');
757};
758
759
760
761
762
763
764
765dwr.engine._handleError = function(batch, ex) {
766if (batch && dwr.engine._isHeartbeatBatch(batch)) {
767return;
768}
769var errorHandlers = [];
770var anyCallWithoutErrorHandler = false;
771if (batch && batch.isPoll) {
772dwr.engine._handlePollRetry(batch, ex);
773} else {
774
775if (batch) {
776for (var i = 0; i < batch.map.callCount; i++) {
777var handlers = batch.handlers[i];
778if (!handlers.completed) {
779if (typeof handlers.errorHandler == "function")
780errorHandlers.push(handlers.errorHandler);
781else
782anyCallWithoutErrorHandler = true;
783handlers.completed = true;
784}
785}
786}
787
788ignoreIfUnloading(batch, function() {
789if (batch) {
790var textHtmlHandler = batch.textHtmlHandler || batch.globalTextHtmlHandler;
791if (ex.name === "dwr.engine.textHtmlReply" && textHtmlHandler) {
792dwr.engine.util.logHandlerEx(function() {
793textHtmlHandler(ex);
794});
795return;
796}
797}
798dwr.engine._prepareException(ex);
799var errorHandler;
800while(errorHandlers.length > 0) {
801errorHandler = errorHandlers.shift();
802dwr.engine.util.logHandlerEx(function() {
803errorHandler(ex.message, ex);
804});
805}
806if (batch) {
807dwr.engine.util.logHandlerEx(function() {
808if (typeof batch.errorHandler == "function") batch.errorHandler(ex.message, ex);
809else if (anyCallWithoutErrorHandler) {
810if (typeof batch.globalErrorHandler == "function") batch.globalErrorHandler(ex.message, ex);
811}
812});
813dwr.engine.batch.remove(batch);
814}
815});
816}
817};
818
819
820
821
822
823
824
825dwr.engine._handlePollRetry = function(batch, ex) {
826var retryInterval = dwr.engine._getRetryInterval();
827
828if (dwr.engine._retries === dwr.engine._retryIntervals.length - 1) {
829dwr.engine._debug("poll retry - going offline: " + retryInterval/1000 + " seconds");
830dwr.engine._handlePollStatusChange(false, ex, batch);
831
832var heartbeatInterval = setInterval(function() {
833if (dwr.engine._maxRetries === -1 || dwr.engine._retries < dwr.engine._maxRetries) {
834dwr.engine._execute(null, '__System', 'checkHeartbeat', [ function() {
835
836clearInterval(heartbeatInterval);
837dwr.engine._poll();
838}]);
839dwr.engine._retries++;
840dwr.engine._debug("DWR Offline - poll retry - interval: " + retryInterval/1000 + " seconds");
841} else {
842
843clearInterval(heartbeatInterval);
844dwr.engine._debug("max retries reached, stop polling for server status.");
845dwr.engine._handlePollStatusChange(false, ex, batch);
846}
847}, retryInterval);
848} else {
849dwr.engine._retries++;
850dwr.engine.batch.remove(batch);
851dwr.engine._debug("DWR Online - poll retry - interval: " + retryInterval/1000 + " seconds");
852setTimeout(dwr.engine._poll, retryInterval);
853}
854};
855
856dwr.engine._getRetryInterval = function() {
857var retryInterval;
858if (dwr.engine._retries < dwr.engine._retryIntervals.length) {
859retryInterval = dwr.engine._retryIntervals[dwr.engine._retries] * 1000;
860} else {
861
862retryInterval = dwr.engine._retryIntervals[dwr.engine._retryIntervals.length - 1] * 1000;
863}
864return retryInterval;
865};
866
867
868
869
870
871
872dwr.engine._handlePollStatusChange = function(newStatus, ex, batch) {
873if (batch.isPoll || dwr.engine._isHeartbeatBatch(batch)) {
874var changed = dwr.engine._pollOnline !== newStatus;
875var maxRetriesReached = dwr.engine._maxRetries === dwr.engine._retries;
876dwr.engine._pollOnline = newStatus;
877if ((changed || maxRetriesReached) && typeof dwr.engine._pollStatusHandler === "function")
878dwr.engine.util.logHandlerEx(function() {
879dwr.engine._pollStatusHandler(newStatus, ex, maxRetriesReached);
880});
881if (newStatus) {
882dwr.engine._retries = 1;
883}
884}
885};
886
887
888
889
890
891
892
893dwr.engine._handleWarning = function(batch, ex) {
894if (batch && dwr.engine._isHeartbeatBatch(batch)) {
895return;
896}
897ignoreIfUnloading(batch, function() {
898
899dwr.engine._prepareException(ex);
900dwr.engine.util.logHandlerEx(function() {
901if (batch && typeof batch.warningHandler == "function") batch.warningHandler(ex.message, ex);
902else if (dwr.engine._warningHandler) dwr.engine._warningHandler(ex.message, ex);
903});
904if (batch) dwr.engine.batch.remove(batch);
905});
906};
907
908
909
910
911
912
913dwr.engine._prepareException = function(ex) {
914if (typeof ex == "string") ex = { name:"unknown", message:ex };
915if (ex.message == null) ex.message = "";
916if (ex.name == null) ex.name = "unknown";
917};
918
919
920
921
922
923dwr.engine._delegate = (function() {
924function F(){}
925return (function(obj){
926F.prototype = obj;
927return new F();
928});
929})();
930
931
932
933
934
935dwr.engine._createFromMap = function(map) {
936var obj = new this();
937for(prop in map) if (map.hasOwnProperty(prop)) obj[prop] = map[prop];
938return obj;
939};
940
941
942
943
944dwr.engine._global = (function(){return this;}).call(null);
945
946
947
948
949
950
951
952dwr.engine._getObject = function(prop) {
953var parts = prop.split(".");
954var value = undefined;
955var scope = dwr.engine._global;
956while(parts.length > 0) {
957var currprop = parts.shift();
958if (!scope) return undefined;
959value = scope[currprop];
960if (value && value.tagName && document.getElementById(currprop) == value) return undefined;
961scope = value;
962}
963return value;
964};
965
966
967
968
969
970
971dwr.engine._setObject = function(prop, obj) {
972var parts = prop.split(".");
973var level;
974var scope = dwr.engine._global;
975while(parts.length > 0) {
976var currprop = parts.shift();
977if (parts.length === 0) {
978scope[currprop] = obj;
979}
980else {
981level = scope[currprop];
982if (level == null || level.tagName && document.getElementById(currprop) == level) {
983scope[currprop] = level = {};
984}
985scope = level;
986}
987}
988};
989
990
991
992
993
994
995
996dwr.engine._debug = function(message, stacktrace) {
997var written = false;
998try {
999if (window.console) {
1000if (stacktrace && window.console.trace) window.console.trace();
1001if (window.console.log) window.console.log(message);
1002written = true;
1003}
1004else if (window.opera && window.opera.postError) {
1005window.opera.postError(message);
1006written = true;
1007}
1008}
1009catch (ex) {   }
1010
1011if (!written) {
1012var debug = document.getElementById("dwr-debug");
1013if (debug) {
1014var contents = message + "<br/>" + debug.innerHTML;
1015if (contents.length > 2048) contents = contents.substring(0, 2048);
1016debug.innerHTML = contents;
1017}
1018}
1019};
1020
1021
1022
1023
1024dwr.engine.remote = {
1025
1026
1027
1028
1029
1030
1031
1032handleCallback:function(batchId, callId, reply) {
1033var batch = dwr.engine._batches[batchId];
1034if (!batch) return;
1035
1036
1037batch.reply = reply;
1038
1039
1040
1041try {
1042var handlers = batch.handlers[callId];
1043if (!handlers) {
1044dwr.engine._debug("Warning: Missing handlers. callId=" + callId, true);
1045}
1046else {
1047batch.handlers[callId].completed = true;
1048if (typeof handlers.callback == "function") {
1049dwr.engine.util.logHandlerEx(function() {
1050if(handlers.callbackArg !== undefined)
1051handlers.callback.call(handlers.callbackScope, reply, handlers.callbackArg);
1052else
1053handlers.callback.call(handlers.callbackScope, reply);
1054});
1055}
1056}
1057}
1058catch (ex) {
1059dwr.engine._handleError(batch, ex);
1060}
1061},
1062
1063
1064
1065
1066
1067
1068handleFunctionCall:function(id, args) {
1069var func = dwr.engine.serialize.remoteFunctions[id];
1070func.apply(window, args);
1071},
1072
1073
1074
1075
1076
1077
1078handleObjectCall:function(id, methodName, args) {
1079var obj = dwr.engine.serialize.remoteFunctions[id];
1080obj[methodName].apply(obj, args);
1081},
1082
1083
1084
1085
1086
1087
1088handleSetCall:function(id, propertyName, data) {
1089var obj = dwr.engine.serialize.remoteFunctions[id];
1090obj[propertyName] = data;
1091},
1092
1093
1094
1095
1096
1097handleFunctionClose:function(id) {
1098delete dwr.engine.serialize.remoteFunctions[id];
1099},
1100
1101
1102
1103
1104
1105
1106
1107
1108handleException:function(batchId, callId, ex) {
1109var batch = dwr.engine._batches[batchId];
1110if (!batch) return;
1111
1112var handlers = batch.handlers[callId];
1113batch.handlers[callId].completed = true;
1114if (handlers == null) {
1115dwr.engine._debug("Warning: null handlers in remoteHandleException", true);
1116return;
1117}
1118
1119if (ex.message === undefined) {
1120ex.message = "";
1121}
1122
1123dwr.engine.util.logHandlerEx(function() {
1124if (typeof handlers.exceptionHandler == "function") {
1125if (handlers.exceptionArg !== undefined)
1126handlers.exceptionHandler.call(handlers.exceptionScope, ex.message, ex, handlers.exceptionArg);
1127else
1128handlers.exceptionHandler.call(handlers.exceptionScope, ex.message, ex);
1129}
1130else if (typeof handlers.errorHandler == "function") {
1131handlers.errorHandler(ex.message, ex);
1132}
1133else if (typeof batch.errorHandler == "function") {
1134batch.errorHandler(ex.message, ex);
1135}
1136else if (typeof batch.globalErrorHandler == "function") {
1137batch.globalErrorHandler(ex.message, ex);
1138}
1139});
1140},
1141
1142
1143
1144
1145handleReverseAjax:function(reverseAjaxIndex, reverseAjaxFunc) {
1146if (reverseAjaxIndex < dwr.engine._nextReverseAjaxIndex) return;
1147dwr.engine._reverseAjaxQueue[reverseAjaxIndex] = reverseAjaxFunc;
1148while(true) {
1149var nextFunc = dwr.engine._reverseAjaxQueue[dwr.engine._nextReverseAjaxIndex];
1150if (!nextFunc) return;
1151dwr.engine.util.logHandlerEx(function() {
1152nextFunc();
1153});
1154delete dwr.engine._reverseAjaxQueue[dwr.engine._nextReverseAjaxIndex];
1155dwr.engine._nextReverseAjaxIndex++;
1156}
1157},
1158
1159
1160
1161
1162
1163
1164
1165handleBatchException:function(ex, batchId) {
1166var batch = dwr.engine._batches[batchId];
1167if (ex.message === undefined) ex.message = "";
1168if (batch) {
1169dwr.engine._handleError(batch, ex);
1170} else {
1171dwr.engine._queuedBatchException = ex;
1172}
1173},
1174
1175
1176
1177
1178
1179
1180
1181pollCometDisabled:function(ex, batchId){
1182dwr.engine.setActiveReverseAjax(false);
1183var batch = dwr.engine._batches[batchId];
1184if (ex.message === undefined) {
1185ex.message = "";
1186}
1187dwr.engine._handleError(batch, ex);
1188},
1189
1190
1191
1192
1193
1194
1195
1196newObject:function(dwrClassName, memberMap){
1197var classfunc = dwr.engine._mappedClasses[dwrClassName];
1198if (classfunc && classfunc.createFromMap) {
1199return classfunc.createFromMap(memberMap);
1200}
1201else {
1202memberMap.$dwrClassName = dwrClassName;
1203return memberMap;
1204}
1205}
1206};
1207
1208
1209
1210
1211dwr.engine.serialize = {
1212
1213
1214
1215domDocument:[
1216"Msxml2.DOMDocument.6.0",
1217"Msxml2.DOMDocument.5.0",
1218"Msxml2.DOMDocument.4.0",
1219"Msxml2.DOMDocument.3.0",
1220"MSXML2.DOMDocument",
1221"MSXML.DOMDocument",
1222"Microsoft.XMLDOM"
1223],
1224
1225
1226
1227
1228remoteFunctions:{},
1229
1230
1231
1232
1233funcId:0,
1234
1235
1236
1237
1238
1239toDomElement:function(xml) {
1240return dwr.engine.serialize.toDomDocument(xml).documentElement;
1241},
1242
1243
1244
1245
1246
1247toDomDocument:function(xml) {
1248var dom;
1249if (window.DOMParser) {
1250var parser = new DOMParser();
1251dom = parser.parseFromString(xml, "text/xml");
1252if (!dom.documentElement || dom.documentElement.tagName == "parsererror") {
1253var message = dom.documentElement.firstChild.data;
1254message += "\n" + dom.documentElement.firstChild.nextSibling.firstChild.data;
1255throw message;
1256}
1257return dom;
1258}
1259else if (window.ActiveXObject) {
1260dom = dwr.engine.util.newActiveXObject(dwr.engine.serialize.domDocument);
1261dom.loadXML(xml);
1262return dom;
1263}
1264else {
1265var div = document.createElement("div");
1266div.innerHTML = xml;
1267return div;
1268}
1269},
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280convert:function(batch, directrefmap, otherrefmap, data, name, depth) {
1281if (data == null) {
1282batch.map[name] = "null:null";
1283return;
1284}
1285
1286switch (typeof data) {
1287case "boolean":
1288batch.map[name] = "boolean:" + data;
1289break;
1290case "number":
1291batch.map[name] = "number:" + data;
1292break;
1293case "string":
1294batch.map[name] = "string:" + encodeURIComponent(data);
1295break;
1296case "object":
1297var ref = dwr.engine.serialize.lookup(directrefmap, otherrefmap, data, name);
1298var objstr = Object.prototype.toString.call(data);
1299if (data.$dwrByRef) batch.map[name] = dwr.engine.serialize.convertByReference(batch, directrefmap, otherrefmap, data, name, depth + 1);
1300else if (ref != null) batch.map[name] = ref;
1301else if (objstr == "[object String]") batch.map[name] = "string:" + encodeURIComponent(data);
1302else if (objstr == "[object Boolean]") batch.map[name] = "boolean:" + data;
1303else if (objstr == "[object Number]") batch.map[name] = "number:" + data;
1304else if (objstr == "[object Date]") batch.map[name] = "date:" + data.getTime();
1305else if (objstr == "[object Array]") batch.map[name] = dwr.engine.serialize.convertArray(batch, directrefmap, otherrefmap, data, name, depth + 1);
1306else if (data && data.tagName && data.tagName.toLowerCase() == "input" && data.type && data.type.toLowerCase() == "file") {
1307batch.fileUpload = true;
1308batch.map[name] = data;
1309}
1310else {
1311
1312
1313if (data.nodeName && data.nodeType) {
1314batch.map[name] = dwr.engine.serialize.convertDom(data);
1315}
1316else {
1317batch.map[name] = dwr.engine.serialize.convertObject(batch, directrefmap, otherrefmap, data, name, depth + 1);
1318}
1319}
1320break;
1321case "function":
1322
1323if (depth === 0) {
1324batch.map[name] = dwr.engine.serialize.convertByReference(batch, directrefmap, otherrefmap, data, name, depth + 1);
1325}
1326break;
1327default:
1328dwr.engine._handleWarning(null, { name:"dwr.engine.unexpectedType", message:"Unexpected type: " + typeof data + ", attempting default converter." });
1329batch.map[name] = "default:" + data;
1330break;
1331}
1332},
1333
1334
1335
1336
1337
1338
1339convertByReference:function(batch, directrefmap, otherrefmap, data, name, depth) {
1340var funcId = "f" + dwr.engine.serialize.funcId;
1341dwr.engine.serialize.remoteFunctions[funcId] = data;
1342dwr.engine.serialize.funcId++;
1343return "byref:" + funcId;
1344},
1345
1346
1347
1348
1349
1350
1351convertArray:function(batch, directrefmap, otherrefmap, data, name, depth) {
1352var childName, i;
1353if (dwr.engine.util.ieCondition("if lte IE 7")) {
1354
1355var buf = ["array:["];
1356for (i = 0; i < data.length; i++) {
1357if (i !== 0) buf.push(",");
1358batch.paramCount++;
1359childName = "c" + dwr.engine._batch.map.callCount + "-e" + batch.paramCount;
1360dwr.engine.serialize.convert(batch, directrefmap, otherrefmap, data[i], childName, depth + 1);
1361buf.push("reference:");
1362buf.push(childName);
1363}
1364buf.push("]");
1365reply = buf.join("");
1366}
1367else {
1368
1369var reply = "array:[";
1370for (i = 0; i < data.length; i++) {
1371if (i !== 0) reply += ",";
1372batch.paramCount++;
1373childName = "c" + dwr.engine._batch.map.callCount + "-e" + batch.paramCount;
1374dwr.engine.serialize.convert(batch, directrefmap, otherrefmap, data[i], childName, depth + 1);
1375reply += "reference:";
1376reply += childName;
1377}
1378reply += "]";
1379}
1380
1381return reply;
1382},
1383
1384
1385
1386
1387
1388
1389convertObject:function(batch, directrefmap, otherrefmap, data, name, depth) {
1390
1391var reply = "Object_" + dwr.engine.serialize.getObjectClassName(data).replace(/:/g, "?") + ":{";
1392var elementset = (data.constructor && data.constructor.$dwrClassMembers ? data.constructor.$dwrClassMembers : data);
1393var element;
1394for (element in elementset) {
1395if (typeof data[element] != "function" && !dwr.engine._excludeObjectAttributes[element]) {
1396batch.paramCount++;
1397var childName = "c" + dwr.engine._batch.map.callCount + "-e" + batch.paramCount;
1398dwr.engine.serialize.convert(batch, directrefmap, otherrefmap, data[element], childName, depth + 1);
1399reply += encodeURIComponent(element) + ":reference:" + childName + ", ";
1400}
1401}
1402
1403if (reply.substring(reply.length - 2) == ", ") {
1404reply = reply.substring(0, reply.length - 2);
1405}
1406reply += "}";
1407
1408return reply;
1409},
1410
1411
1412
1413
1414
1415
1416convertDom:function(data) {
1417return "xml:" + encodeURIComponent(dwr.engine.serialize.serializeDom(data));
1418},
1419serializeDom:function(data) {
1420var output;
1421if (window.XMLSerializer) output = new XMLSerializer().serializeToString(data);
1422else if (data.xml) output = data.xml;
1423else throw new Error("The browser doesn't support XML serialization of: " + data);
1424return output;
1425},
1426
1427
1428
1429
1430
1431
1432lookup:function(directrefmap, otherrefmap, data, name) {
1433
1434var ref;
1435if ("$_dwrConversionRef" in data) {
1436ref = data.$_dwrConversionRef;
1437if (ref && directrefmap[ref] != data) ref = null;
1438}
1439if (ref == null) {
1440for(r in otherrefmap) {
1441if (otherrefmap[r] == data) {
1442ref = r;
1443break;
1444}
1445}
1446}
1447if (ref != null) return "reference:" + ref;
1448
1449try {
1450data.$_dwrConversionRef = name;
1451directrefmap[name] = data;
1452}
1453catch(err) {
1454otherrefmap[name] = data;
1455}
1456return null;
1457},
1458
1459
1460
1461
1462
1463cleanup:function(directrefmap) {
1464for(var refName in directrefmap) {
1465var data = directrefmap[refName];
1466try {
1467delete data.$_dwrConversionRef;
1468}
1469catch(err) {
1470data.$_dwrConversionRef = undefined;
1471}
1472}
1473},
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483getObjectClassName:function(obj) {
1484
1485if (obj.$dwrClassName)
1486return obj.$dwrClassName;
1487else if (obj.constructor && obj.constructor.$dwrClassName)
1488return obj.constructor.$dwrClassName;
1489else
1490return "Object";
1491}
1492};
1493
1494
1495
1496
1497dwr.engine.transport = {
1498
1499
1500
1501
1502
1503send:function(batch) {
1504if (batch.path == null) {
1505batch.path = dwr.engine._effectivePath();
1506}
1507dwr.engine.transport.updateDwrSessionFromCookie();
1508if (!dwr.engine._dwrSessionId) {
1509dwr.engine._internalOrdered = true;
1510var retval;
1511var idbatch = {
1512map:{
1513callCount:1,
1514'c0-scriptName':'__System',
1515'c0-methodName':'generateId',
1516'c0-id':0
1517},
1518paramCount:0, isPoll:false, async:batch.async,
1519headers:{}, preHooks:[],
1520postHooks:[function() {
1521dwr.engine._internalOrdered = false;
1522}],
1523timeout:dwr.engine._timeout,
1524errorHandler:batch.errorHandler, globalErrorHandler:batch.globalErrorHandler, warningHandler:batch.warningHandler, textHtmlHandler:batch.textHtmlHandler, globalTextHtmlHandler:batch.globalTextHtmlHandler,
1525path:batch.path,
1526handlers:[{
1527exceptionHandler:null,
1528callback:function(id) {
1529dwr.engine.transport.updateDwrSessionFromCookie();
1530if (!dwr.engine._dwrSessionId) {
1531dwr.engine.transport.setDwrSession(id);
1532}
1533retval = dwr.engine.transport.send2(batch);
1534}
1535}]
1536};
1537dwr.engine.transport.send2(idbatch);
1538return retval;
1539}
1540else {
1541return dwr.engine.transport.send2(batch);
1542}
1543},
1544
1545
1546
1547
1548
1549
1550send2:function(batch) {
1551dwr.engine.batch.prepareToSend(batch);
1552
1553
1554var isCrossDomain = false;
1555if (batch.path.indexOf("http://") === 0 || batch.path.indexOf("https://") === 0) {
1556var dwrShortPath = batch.path.split("/", 3).join("/");
1557var hrefShortPath = window.location.href.split("/", 3).join("/");
1558isCrossDomain = (dwrShortPath != hrefShortPath);
1559}
1560
1561if (batch.fileUpload) {
1562if (isCrossDomain) {
1563throw new Error("Cross domain file uploads are not possible with this release of DWR");
1564}
1565batch.transport = dwr.engine.transport.iframe;
1566}
1567else if (isCrossDomain) {
1568batch.transport = dwr.engine.transport.scriptTag;
1569}
1570else if (batch.isPoll && dwr.engine._useStreamingPoll == "true" && dwr.engine.util.ieCondition("if (IE 8)|(IE 9)")) {
1571batch.transport = dwr.engine.transport.iframe;
1572}
1573else {
1574batch.transport = dwr.engine.transport.xhr;
1575}
1576
1577return batch.transport.send(batch);
1578},
1579
1580
1581
1582
1583complete:function(batch) {
1584dwr.engine.batch.validate(batch);
1585dwr.engine.transport.remove(batch);
1586},
1587
1588
1589
1590
1591
1592
1593abort:function(batch) {
1594var transport = batch.transport;
1595if (transport.abort) {
1596transport.abort(batch);
1597}
1598dwr.engine.transport.remove(batch);
1599},
1600
1601
1602
1603
1604
1605remove:function(batch) {
1606if (batch.transport) {
1607dwr.engine._callPostHooks(batch);
1608batch.transport.remove(batch);
1609batch.transport = null;
1610}
1611dwr.engine.batch.remove(batch);
1612},
1613
1614setDwrSession:function(dwrsess) {
1615dwr.engine._dwrSessionId = dwrsess;
1616var attrs = "";
1617if (!dwr.engine._cookieAttributes.match(/^path=/i)) {
1618attrs = "; path=" + (dwr.engine._effectiveContextPath() || "/");
1619}
1620if (dwr.engine._cookieAttributes) {
1621attrs += "; " + dwr.engine._cookieAttributes;
1622}
1623document.cookie = "DWRSESSIONID=" + dwrsess + attrs;
1624dwr.engine._scriptSessionId = dwrsess + "/" + dwr.engine._pageId;
1625},
1626
1627updateDwrSessionFromCookie:function() {
1628if (!dwr.engine._dwrSessionId) {
1629var match = document.cookie.match(/(?:^|; )DWRSESSIONID=([^;]+)/);
1630if (match) {
1631dwr.engine.transport.setDwrSession(match[1]);
1632}
1633}
1634},
1635
1636
1637
1638
1639xhr:{
1640
1641
1642
1643httpMethod:"POST",
1644
1645
1646
1647
1648
1649
1650XMLHTTP:["Msxml2.XMLHTTP.6.0", "Msxml2.XMLHTTP.5.0", "Msxml2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP"],
1651
1652
1653
1654
1655
1656send:function(batch) {
1657if (batch.isPoll) {
1658batch.map.partialResponse = dwr.engine._partialResponseYes;
1659}
1660
1661
1662if (batch.isPoll && dwr.engine._useStreamingPoll == "false") {
1663batch.map.partialResponse = dwr.engine._partialResponseNo;
1664}
1665if (batch.isPoll && dwr.engine.util.ieCondition("if lte IE 9")) {
1666batch.map.partialResponse = dwr.engine._partialResponseNo;
1667}
1668
1669if (window.XMLHttpRequest) {
1670batch.req = new XMLHttpRequest();
1671}
1672else if (window.ActiveXObject) {
1673batch.req = dwr.engine.util.newActiveXObject(dwr.engine.transport.xhr.XMLHTTP);
1674}
1675
1676
1677if (batch.async === true) {
1678batch.req.onreadystatechange = function() {
1679if (typeof dwr != 'undefined') {
1680dwr.engine.transport.xhr.stateChange(batch);
1681}
1682};
1683}
1684
1685httpMethod = dwr.engine.transport.xhr.httpMethod;
1686
1687batch.mode = batch.isPoll ? dwr.engine._ModePlainPoll : dwr.engine._ModePlainCall;
1688var request = dwr.engine.batch.constructRequest(batch, httpMethod);
1689
1690try {
1691batch.req.open(httpMethod, request.url, batch.async);
1692try {
1693for (var prop in batch.headers) {
1694var value = batch.headers[prop];
1695if (typeof value == "string") {
1696batch.req.setRequestHeader(prop, value);
1697}
1698}
1699if (!batch.headers["Content-Type"]) {
1700batch.req.setRequestHeader("Content-Type", "text/plain");
1701}
1702}
1703catch (ex) {
1704dwr.engine._handleWarning(batch, ex);
1705}
1706
1707batch.req.send(request.body);
1708if (batch.async === false) {
1709dwr.engine.transport.xhr.stateChange(batch);
1710}
1711}
1712catch (ex2) {
1713dwr.engine._handleError(batch, ex2);
1714}
1715
1716if (batch.isPoll && batch.map.partialResponse == dwr.engine._partialResponseYes) {
1717dwr.engine.transport.xhr.checkCometPoll();
1718}
1719
1720
1721return batch.reply;
1722},
1723
1724
1725
1726
1727
1728
1729stateChange:function(batch) {
1730var toEval;
1731
1732if (batch.aborted) return;
1733if (batch.completed) {
1734if (batch.transport) dwr.engine._debug("Error: _stateChange() with batch.completed");
1735return;
1736}
1737
1738
1739var req = batch.req;
1740var status = 0;
1741try {
1742if (req.readyState >= 2) {
1743status = req.status;
1744}
1745}
1746catch(ignore) {}
1747
1748
1749
1750if (status === 0 && req.readyState < 4) {
1751return;
1752}
1753
1754
1755
1756
1757
1758if (status === 200) {
1759dwr.engine._handlePollStatusChange(true, null, batch);
1760}
1761
1762
1763if (req.readyState != 4) {
1764return;
1765}
1766
1767if (dwr.engine._unloading) {
1768dwr.engine._debug("Ignoring reply from server as page is unloading.");
1769return;
1770}
1771
1772try {
1773var reply = req.responseText;
1774reply = dwr.engine._replyRewriteHandler(reply);
1775var contentType = req.getResponseHeader("Content-Type");
1776if (status >= 200 && status < 300) {
1777if (contentType.indexOf("text/plain") < 0 && contentType.indexOf("text/javascript") < 0) {
1778if (contentType.indexOf("text/html") == 0) {
1779dwr.engine._handleError(batch, { name:"dwr.engine.textHtmlReply", message:"HTML reply from the server.", responseText:reply||"" });
1780} else {
1781dwr.engine._handleError(batch, { name:"dwr.engine.invalidMimeType", message:"Invalid content type: '" + contentType + "'" });
1782}
1783} else if (reply == null || reply === "") {
1784dwr.engine._handleError(batch, { name:"dwr.engine.missingData", message:"No data received from server" });
1785} else {
1786if (batch.isPoll && batch.map.partialResponse == dwr.engine._partialResponseYes) {
1787dwr.engine.transport.xhr.processCometResponse(reply, batch);
1788} else {
1789if (reply.search("//#DWR") === -1) {
1790dwr.engine._handleError(batch, { name:"dwr.engine.invalidReply", message:"Invalid reply from server" });
1791} else {
1792toEval = reply;
1793}
1794}
1795}
1796} else if (status >= 400) {
1797var statusText = "statusText could not be read.";
1798try {
1799statusText = req.statusText;
1800} catch (ex) {
1801
1802}
1803dwr.engine._handleError(batch, { name:"dwr.engine.http." + status, message:statusText });
1804}
1805
1806if (toEval != null) toEval = toEval.replace(dwr.engine._scriptTagProtection, "");
1807dwr.engine._executeScript(toEval);
1808dwr.engine.transport.complete(batch);
1809
1810} catch (ex2) {
1811dwr.engine._handleError(batch, ex2);
1812}
1813},
1814
1815
1816
1817
1818
1819checkCometPoll:function() {
1820var req = dwr.engine._pollBatch && dwr.engine._pollBatch.req;
1821if (req) {
1822var text = req.responseText;
1823if (text != null) {
1824dwr.engine.transport.xhr.processCometResponse(text, dwr.engine._pollBatch);
1825}
1826}
1827
1828if (dwr.engine._pollBatch) {
1829setTimeout(dwr.engine.transport.xhr.checkCometPoll, dwr.engine._pollCometInterval);
1830}
1831},
1832
1833
1834
1835
1836
1837
1838
1839
1840processCometResponse:function(response, batch) {
1841if (batch.charsProcessed == response.length) return;
1842if (response.length === 0) {
1843batch.charsProcessed = 0;
1844return;
1845}
1846
1847var firstStartTag = response.indexOf("//#DWR-START#", batch.charsProcessed);
1848if (firstStartTag == -1) {
1849
1850return;
1851}
1852
1853
1854
1855
1856var lastEndTag = response.lastIndexOf("//#DWR-END#");
1857if (lastEndTag == -1) {
1858
1859return;
1860}
1861
1862
1863if (response.charCodeAt(lastEndTag + 11) == 13 && response.charCodeAt(lastEndTag + 12) == 10) {
1864batch.charsProcessed = lastEndTag + 13;
1865}
1866else {
1867batch.charsProcessed = lastEndTag + 11;
1868}
1869
1870var exec = response.substring(firstStartTag + 13, lastEndTag);
1871
1872try {
1873dwr.engine._executeScript(exec);
1874}
1875catch (ex) {
1876
1877
1878if (dwr != null) {
1879dwr.engine._handleError(batch, ex);
1880}
1881}
1882},
1883
1884
1885
1886
1887abort:function(batch) {
1888if (batch.req) {
1889batch.aborted = true;
1890batch.req.abort();
1891}
1892},
1893
1894
1895
1896
1897
1898remove:function(batch) {
1899
1900if (batch.req) {
1901delete batch.req;
1902}
1903}
1904},
1905
1906
1907
1908
1909iframe:{
1910
1911
1912
1913httpMethod:"POST",
1914
1915
1916
1917
1918
1919send:function(batch) {
1920if (document.body == null) {
1921setTimeout(function(){dwr.engine.transport.iframe.send(batch);}, 100);
1922return;
1923}
1924batch.httpMethod = dwr.engine.transport.iframe.httpMethod;
1925if (batch.fileUpload) {
1926batch.httpMethod = "POST";
1927batch.encType = "multipart/form-data";
1928}
1929batch.loadingStarted = false;
1930if (window.location.hostname != document.domain) batch.map.documentDomain = document.domain;
1931var idname = dwr.engine.transport.iframe.getId(batch);
1932batch.div1 = document.createElement("div");
1933batch.div1.innerHTML = "<iframe frameborder='0' style='width:0px;height:0px;border:0;display:none;' id='" + idname + "' name='" + idname + "'></iframe>";
1934batch.iframe = batch.div1.firstChild;
1935batch.document = document;
1936batch.iframe.batch = batch;
1937batch.fileInputs = [];
1938dwr.engine.util.addEventListener(batch.iframe, "load", function(ev) {
1939
1940if (!batch.loadingStarted) return;
1941
1942while(batch.fileInputs.length > 0) {
1943var entry = batch.fileInputs.pop();
1944entry.original.setAttribute("id", entry.clone.getAttribute("id"));
1945entry.original.setAttribute("name", entry.clone.getAttribute("name"));
1946entry.original.style.display = entry.clone.style.display;
1947entry.clone.parentNode.replaceChild(entry.original, entry.clone);
1948}
1949
1950if (batch.completed) return;
1951
1952if (dwr.engine._queuedBatchException) {
1953dwr.engine._handleError(batch, dwr.engine._queuedBatchException);
1954dwr.engine._queuedBatchException = null;
1955return;
1956}
1957
1958try {
1959var contentDoc = batch.iframe.contentDocument || batch.iframe.contentWindow.document;
1960} catch(ex) {
1961var contentEx = ex;
1962}
1963if (typeof dwr != "undefined") {
1964var htmlResponse = contentDoc && contentDoc.documentElement ? contentDoc.documentElement.outerHTML : "(Could not extract HTML response: " + contentEx.message + ")";
1965dwr.engine._handleError(batch, {name:"dwr.engine.textHtmlReply", message:"HTML reply from the server.", responseText:htmlResponse});
1966}
1967});
1968
1969// http://stackoverflow.com/questions/18414964/load-event-for-iframe-does-not-fire-in-ie
1970document.body.appendChild(batch.div1);
1971dwr.engine.transport.iframe.beginLoader(batch, idname);
1972},
1973
1974
1975
1976
1977
1978
1979getId:function(batch) {
1980return batch.isPoll ? "dwr-if-poll-" + dwr.engine._instanceId + "-" + batch.map.batchId : "dwr-if-" + dwr.engine._instanceId + "-" + batch.map.batchId;
1981},
1982
1983
1984
1985
1986
1987beginLoader:function(batch, idname) {
1988if (batch.isPoll) {
1989batch.map.partialResponse = dwr.engine._partialResponseYes;
1990}
1991batch.mode = batch.isPoll ? dwr.engine._ModeHtmlPoll : dwr.engine._ModeHtmlCall;
1992var request = dwr.engine.batch.constructRequest(batch, batch.httpMethod);
1993if (batch.httpMethod === "GET") {
1994batch.iframe.setAttribute("src", request.url);
1995}
1996else {
1997
1998// See http://soakedandsoaped.com/articles/read/firefox-3-native-ajax-file-upload
1999
2000batch.div2 = document.createElement("div");
2001document.body.appendChild(batch.div2);
2002batch.div2.innerHTML = "<form" + (batch.encType ? " encType='" + batch.encType + "' encoding='" + batch.encType + "'" : "") + "></form>";
2003batch.form = batch.div2.firstChild;
2004batch.form.setAttribute("action", request.url);
2005batch.form.setAttribute("target", idname);
2006batch.form.setAttribute("style", "display:none");
2007batch.form.setAttribute("method", batch.httpMethod);
2008for (var prop in batch.map) {
2009var value = batch.map[prop];
2010if (typeof value != "function") {
2011if (value && value.tagName && value.tagName.toLowerCase() == "input" && value.type && value.type.toLowerCase() == "file") {
2012
2013
2014
2015if (value.parentNode) {
2016var clone = value.cloneNode(true);
2017value.parentNode.replaceChild(clone, value);
2018batch.fileInputs.push({original:value, clone:clone});
2019}
2020value.removeAttribute("id");
2021value.setAttribute("name", prop);
2022value.style.display = "none";
2023batch.form.appendChild(value);
2024} else {
2025var formInput = batch.document.createElement("input");
2026formInput.setAttribute("type", "hidden");
2027formInput.setAttribute("name", prop);
2028formInput.setAttribute("value", value);
2029batch.form.appendChild(formInput);
2030}
2031}
2032}
2033batch.loadingStarted = true;
2034batch.form.submit();
2035}
2036},
2037
2038
2039
2040
2041remote:{
2042
2043
2044
2045
2046
2047
2048beginIFrameResponse:function(iframe, batchId) {
2049},
2050
2051
2052
2053
2054
2055
2056endChunk:function(iframeWindow) {
2057setTimeout(function() {
2058
2059var scriptTags = iframeWindow.document.body.getElementsByTagName("script");
2060if (scriptTags.length > 0) {
2061var s = scriptTags[0];
2062s.parentNode.removeChild(s);
2063}
2064}, 0);
2065},
2066
2067
2068
2069
2070
2071
2072endIFrameResponse:function(batchId) {
2073var batch = dwr.engine._batches[batchId];
2074if (batch) dwr.engine.transport.complete(batch);
2075}
2076},
2077
2078remove:function(batch) {
2079
2080
2081setTimeout(function(){
2082if (batch.iframe && batch.iframe.parentNode) {
2083batch.iframe.parentNode.removeChild(batch.iframe);
2084batch.iframe = null;
2085}
2086if (batch.div1 && batch.div1.parentNode) {
2087batch.div1.parentNode.removeChild(batch.div1);
2088batch.div1 = null;
2089}
2090if (batch.form && batch.form.parentNode) {
2091batch.form.parentNode.removeChild(batch.form);
2092batch.form = null;
2093}
2094if (batch.div2 && batch.div2.parentNode) {
2095batch.div2.parentNode.removeChild(batch.div2);
2096batch.div2 = null;
2097}
2098}, 100);
2099}
2100},
2101
2102
2103
2104
2105scriptTag:{
2106
2107
2108
2109
2110send:function(batch) {
2111if (batch.isPoll) {
2112batch.map.partialResponse = dwr.engine._partialResponseNo;
2113}
2114batch.mode = batch.isPoll ? dwr.engine._ModePlainPoll : dwr.engine._ModePlainCall;
2115var request = dwr.engine.batch.constructRequest(batch, "GET");
2116
2117batch.script = document.createElement("script");
2118batch.script.id = "dwr-st-" + batch.map.batchId;
2119batch.script.src = request.url;
2120batch.script.type = "text/javascript";
2121batch.script.async = true;
2122dwr.engine.util.addEventListener(batch.script, "load", function(ev) {
2123if (typeof dwr != "undefined") dwr.engine.transport.scriptTag.complete(batch);
2124});
2125dwr.engine.util.addEventListener(batch.script, "error", function(ev) {
2126if (typeof dwr != "undefined") dwr.engine.transport.scriptTag.complete(batch);
2127});
2128dwr.engine.util.addEventListener(batch.script, "readystatechange", function(ev) {
2129if (typeof dwr != "undefined") {
2130if (batch.completed) return;
2131if (batch.script.readyState == "complete" || batch.script.readyState == "loaded") {
2132dwr.engine.transport.scriptTag.complete(batch);
2133}
2134}
2135});
2136document.getElementsByTagName("head")[0].appendChild(batch.script);
2137},
2138
2139
2140
2141
2142complete:function(batch) {
2143dwr.engine.transport.complete(batch);
2144},
2145
2146
2147
2148
2149remove:function(batch) {
2150
2151if (!batch.script) return;
2152
2153
2154batch.script.parentNode.removeChild(batch.script);
2155batch.script = null;
2156}
2157}
2158};
2159
2160
2161
2162
2163
2164dwr.engine.batch = {
2165
2166
2167
2168
2169create:function() {
2170var batch = {
2171async:dwr.engine._async,
2172charsProcessed:0,
2173handlers:[],
2174isPoll:false,
2175map:{ callCount:0 },
2176paramCount:0,
2177preHooks:[],
2178postHooks:[],
2179timeout:dwr.engine._timeout,
2180errorHandler:null,
2181globalErrorHandler:dwr.engine._errorHandler,
2182warningHandler:dwr.engine._warningHandler,
2183textHtmlHandler:null,
2184globalTextHtmlHandler:dwr.engine._textHtmlHandler
2185};
2186if (!dwr.engine._activeReverseAjax) batch.map.nextReverseAjaxIndex = dwr.engine._nextReverseAjaxIndex;
2187
2188if (dwr.engine._preHook) {
2189batch.preHooks.push(dwr.engine._preHook);
2190}
2191if (dwr.engine._postHook) {
2192batch.postHooks.push(dwr.engine._postHook);
2193}
2194
2195dwr.engine.batch.populateHeadersAndAttributes(batch);
2196return batch;
2197},
2198
2199
2200
2201
2202
2203
2204createPoll:function() {
2205var batch = {
2206async:true,
2207charsProcessed:0,
2208handlers:[{
2209callback:function(pause) {
2210dwr.engine._pollBatch = null;
2211setTimeout(dwr.engine._poll, pause);
2212}
2213}],
2214isPoll:true,
2215map:{ callCount:1, nextReverseAjaxIndex:dwr.engine._nextReverseAjaxIndex},
2216paramCount:0,
2217preHooks:[],
2218postHooks:[],
2219timeout:dwr.engine._pollTimeout
2220};
2221dwr.engine.batch.populateHeadersAndAttributes(batch);
2222return batch;
2223},
2224
2225
2226
2227
2228
2229
2230populateHeadersAndAttributes:function(batch) {
2231var propname, data;
2232batch.headers = {};
2233if (dwr.engine._headers) {
2234for (propname in dwr.engine._headers) {
2235data = dwr.engine._headers[propname];
2236if (typeof data != "function") batch.headers[propname] = data;
2237}
2238}
2239batch.attributes = {};
2240if (dwr.engine._attributes) {
2241for (propname in dwr.engine._attributes) {
2242data = dwr.engine._attributes[propname];
2243if (typeof data != "function") batch.attributes[propname] = data;
2244}
2245}
2246},
2247
2248
2249
2250
2251
2252addCall:function(batch, scriptName, methodName, args) {
2253
2254
2255var callData, stopAt;
2256var lastArg = args[args.length - 1];
2257if (lastArg == null || typeof lastArg == "function") {
2258callData = { callback:lastArg };
2259stopAt = args.length - 1;
2260}
2261else if (dwr.engine.util.isCallOptionArgument(lastArg)) {
2262callData = lastArg;
2263stopAt = args.length - 1;
2264}
2265else {
2266callData = {};
2267stopAt = args.length;
2268}
2269
2270
2271if (dwr.engine._singleShot) dwr.engine.batch.merge(batch, callData);
2272batch.handlers[batch.map.callCount] = {
2273callback:callData.callbackHandler || callData.callback,
2274callbackArg:callData.callbackArg || callData.arg,
2275callbackScope:callData.callbackScope || callData.scope || window,
2276exceptionHandler:callData.exceptionHandler,
2277exceptionArg:callData.exceptionArg || callData.arg,
2278exceptionScope:callData.exceptionScope || callData.scope || window,
2279errorHandler:callData.errorHandler
2280};
2281
2282
2283var prefix = "c" + batch.map.callCount + "-";
2284batch.map[prefix + "scriptName"] = scriptName;
2285batch.map[prefix + "methodName"] = methodName;
2286batch.map[prefix + "id"] = batch.map.callCount;
2287var directrefmap = {}, otherrefmap = {};
2288for (var i = 0; i < stopAt; i++) {
2289dwr.engine.serialize.convert(batch, directrefmap, otherrefmap, args[i], prefix + "param" + i, 0);
2290}
2291dwr.engine.serialize.cleanup(directrefmap);
2292},
2293
2294
2295
2296
2297
2298
2299
2300merge:function(batch, overrides) {
2301var propname, data;
2302for (var i = 0; i < dwr.engine._propnames.length; i++) {
2303propname = dwr.engine._propnames[i];
2304if (dwr.engine._singleShot && propname == "errorHandler") continue;
2305if (overrides[propname] != null) batch[propname] = overrides[propname];
2306}
2307if (overrides.preHook != null) batch.preHooks.unshift(overrides.preHook);
2308if (overrides.postHook != null) batch.postHooks.push(overrides.postHook);
2309if (overrides.headers) {
2310for (propname in overrides.headers) {
2311data = overrides.headers[propname];
2312if (typeof data != "function") batch.headers[propname] = data;
2313}
2314}
2315var attrs = null;
2316if (overrides.attributes) attrs = overrides.attributes;
2317if (attrs) {
2318for (propname in attrs) {
2319data = attrs[propname];
2320if (typeof data != "function") batch.attributes[propname] = data;
2321}
2322}
2323},
2324
2325
2326
2327
2328
2329
2330prepareToSend:function(batch) {
2331batch.map.batchId = dwr.engine._nextBatchId;
2332dwr.engine._nextBatchId++;
2333dwr.engine._batches[batch.map.batchId] = batch;
2334dwr.engine._batchesLength++;
2335batch.completed = false;
2336batch.map.instanceId = dwr.engine._instanceId;
2337
2338
2339batch.map.page = encodeURIComponent(window.location.pathname + window.location.search);
2340batch.map.scriptSessionId = dwr.engine._scriptSessionId;
2341
2342for (var i = 0; i < batch.preHooks.length; i++) {
2343batch.preHooks[i]();
2344}
2345batch.preHooks = null;
2346
2347if (batch.timeout && batch.timeout !== 0) {
2348batch.timeoutId = setTimeout(function() {
2349dwr.engine.transport.abort(batch);
2350dwr.engine._handleError(batch, { name:"dwr.engine.timeout", message:"Timeout" });
2351}, batch.timeout);
2352}
2353},
2354
2355
2356
2357
2358
2359
2360
2361constructRequest:function(batch, httpMethod) {
2362
2363var urlBuffer = [];
2364urlBuffer.push(batch.path);
2365urlBuffer.push(batch.mode);
2366if (batch.isPoll) {
2367urlBuffer.push("ReverseAjax.dwr");
2368}
2369else if (batch.map.callCount == 1) {
2370urlBuffer.push(batch.map["c0-scriptName"]);
2371urlBuffer.push(".");
2372urlBuffer.push(batch.map["c0-methodName"]);
2373urlBuffer.push(".dwr");
2374}
2375else {
2376urlBuffer.push("Multiple.");
2377urlBuffer.push(batch.map.callCount);
2378urlBuffer.push(".dwr");
2379}
2380
2381var sessionMatchExpr = new RegExp(
2382"^" +
2383"[^;\\?#]+" +
2384"(;[^\\?#]+)");
2385var sessionMatch = location.href.match(sessionMatchExpr);
2386if (sessionMatch != null) {
2387urlBuffer.push(sessionMatch[1]);
2388}
2389
2390
2391if (batch.attributes) {
2392for (var attrname in batch.attributes) {
2393var data = batch.attributes[attrname];
2394if (typeof data != "function") batch.map["a-" + attrname] = "" + data;
2395}
2396}
2397
2398var request = {};
2399var prop;
2400if (httpMethod == "GET") {
2401
2402
2403batch.map.callCount = "" + batch.map.callCount;
2404urlBuffer.push("?");
2405for (prop in batch.map) {
2406if (typeof batch.map[prop] != "function") {
2407urlBuffer.push(encodeURIComponent(prop));
2408urlBuffer.push("=");
2409urlBuffer.push(encodeURIComponent(batch.map[prop]));
2410urlBuffer.push("&");
2411}
2412}
2413urlBuffer.pop();
2414request.body = null;
2415}
2416else {
2417
2418request.body = "";
2419if (dwr.engine.util.ieCondition("if lte IE 7")) {
2420
2421var buf = [];
2422for (prop in batch.map) {
2423if (typeof batch.map[prop] != "function") {
2424buf.push(prop + "=" + batch.map[prop] + dwr.engine._postSeperator);
2425}
2426}
2427request.body = buf.join("");
2428}
2429else {
2430
2431for (prop in batch.map) {
2432if (typeof batch.map[prop] != "function") {
2433request.body += prop + "=" + batch.map[prop] + dwr.engine._postSeperator;
2434}
2435}
2436}
2437request.body = dwr.engine._contentRewriteHandler(request.body);
2438}
2439request.url = dwr.engine._urlRewriteHandler(urlBuffer.join(""));
2440return request;
2441},
2442
2443
2444
2445
2446
2447
2448
2449validate:function(batch) {
2450if (!batch.completed) {
2451var repliesReceived = 0;
2452for (var i = 0; i < batch.map.callCount; i++) {
2453if (batch.handlers[i].completed === true) {
2454repliesReceived++;
2455}
2456}
2457if (repliesReceived == 0 && dwr.engine._queuedBatchException) {
2458dwr.engine._handleError(batch, dwr.engine._queuedBatchException);
2459dwr.engine._queuedBatchException = null;
2460} else if (repliesReceived < batch.map.callCount) {
2461dwr.engine._handleError(batch, { name:"dwr.engine.incompleteReply", message:"Incomplete reply from server" });
2462}
2463}
2464},
2465
2466
2467
2468
2469
2470
2471remove:function(batch) {
2472if (!batch) {
2473dwr.engine._debug("Warning: null batch in dwr.engine.batch.remove()", true);
2474return;
2475}
2476
2477if (batch.completed) {
2478return;
2479}
2480batch.completed = true;
2481
2482
2483dwr.engine.transport.remove(batch);
2484
2485
2486if (batch.timeoutId != null) {
2487clearTimeout(batch.timeoutId);
2488delete batch.timeoutId;
2489}
2490
2491
2492if (batch.map && (batch.map.batchId != null)) {
2493delete dwr.engine._batches[batch.map.batchId];
2494dwr.engine._batchesLength--;
2495}
2496if (batch == dwr.engine._batch) dwr.engine._batch = null;
2497if (batch == dwr.engine._pollBatch) dwr.engine._pollBatch = null;
2498
2499
2500
2501
2502if (dwr.engine._batchQueue.length !== 0) {
2503var sendbatch = dwr.engine._batchQueue.shift();
2504dwr.engine.transport.send(sendbatch);
2505}
2506}
2507};
2508
2509
2510
2511
2512
2513dwr.engine.util = {
2514
2515
2516
2517
2518newActiveXObject:function(axarray) {
2519var returnValue;
2520for (var i = 0; i < axarray.length; i++) {
2521try {
2522returnValue = new ActiveXObject(axarray[i]);
2523break;
2524}
2525catch (ex) {   }
2526}
2527return returnValue;
2528},
2529
2530ieCondition:function(cond) {
2531if (!(cond in dwr.engine._ieConditions)) {
2532var div = document.createElement("div");
2533div.innerHTML = "<!--[" + cond + "]><p><![endif]-->";
2534dwr.engine._ieConditions[cond] = !!(div.getElementsByTagName("p").length);
2535}
2536return dwr.engine._ieConditions[cond];
2537},
2538
2539
2540
2541
2542tokenify: function(number) {
2543var tokenbuf = [];
2544var charmap = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ*$";
2545var remainder = number;
2546while (remainder > 0)
2547{
2548tokenbuf.push(charmap.charAt(remainder & 0x3F));
2549remainder = Math.floor(remainder / 64);
2550}
2551return tokenbuf.join("");
2552},
2553
2554addEventListener: function(elem, name, func) {
2555if (elem.addEventListener)
2556elem.addEventListener(name, func, false);
2557else
2558elem.attachEvent("on" + name, func);
2559},
2560
2561isCallOptionArgument: function(lastArg) {
2562return (typeof lastArg === "object" && (typeof lastArg.callback === "function" ||
2563typeof lastArg.exceptionHandler === "function" || typeof lastArg.callbackHandler === "function" ||
2564typeof lastArg.errorHandler === "function" || typeof lastArg.warningHandler === "function" || lastArg.hasOwnProperty("async")));
2565},
2566
2567logHandlerEx: function(func) {
2568try {
2569func();
2570} catch(ex) {
2571dwr.engine._debug("Exception occured in user-specified handler:");
2572dwr.engine._debug(ex);
2573}
2574}
2575};
2576
2577
2578dwr.engine._initializer.init();
2579
2580
2581
2582
2583dwr.hub = {
2584
2585
2586
2587
2588
2589publish:function(topicName, data) {
2590dwr.engine._execute(null, '__System', 'publish', topicName, data, {});
2591},
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601subscribe:function(topicName, callback, scope, subscriberData) {
2602var subscription = "" + dwr.hub._subscriptionId;
2603dwr.hub._subscriptionId++;
2604dwr.hub._subscriptions[subscription] = {
2605callback:callback,
2606scope:scope,
2607subscriberData:subscriberData
2608};
2609dwr.engine._execute(null, '__System', 'subscribe', topicName, subscription, {});
2610return subscription;
2611},
2612
2613
2614
2615
2616
2617
2618
2619_remotePublish:function(subscriptionId, publishData) {
2620var subscriptionData = dwr.hub._subscriptions[subscriptionId];
2621if (!subscriptionData) return;
2622subscriptionData.callback.call(subscriptionData.scope, publishData, subscriptionData.subscriberData);
2623},
2624
2625
2626
2627
2628_subscriptionId:0,
2629
2630
2631
2632
2633_subscriptions:{}
2634};
2635
2636
2637
2638
2639
2640dwr.data = {
2641
2642
2643
2644
2645
2646StoreChangeListener:{
2647
2648
2649
2650
2651
2652itemRemoved:function(source, itemId) { },
2653
2654
2655
2656
2657
2658
2659itemAdded:function(source, item) { },
2660
2661
2662
2663
2664
2665
2666
2667
2668itemChanged:function(source, item, changedAttributes) { }
2669},
2670
2671
2672
2673
2674
2675
2676
2677
2678Cache:function(storeId, listener) {
2679this.storeId = storeId;
2680this.listener = listener;
2681}
2682};
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695dwr.data.Cache.prototype.viewRegion = function(region, callbackObj) {
2696if (!region) region = { };
2697if (!region.start) region.start = 0;
2698if (!region.count) region.count = -1;
2699if (!region.sort) region.sort = [];
2700else {
2701for (var index = 0; index < region.sort.length; index++) {
2702if (typeof region.sort[index].descending == "undefined") {
2703region.sort[index].descending = false;
2704}
2705}
2706}
2707if (!region.query) region.query = {};
2708
2709return dwr.engine._execute(null, '__Data', 'viewRegion', [ this.storeId, region, this.listener, callbackObj ]);
2710};
2711
2712
2713
2714
2715
2716
2717dwr.data.Cache.prototype.viewItem = function(itemId, callbackObj) {
2718return dwr.engine._execute(null, '__Data', 'viewItem', [ this.storeId, itemId, this.listener, callbackObj ]);
2719};
2720
2721
2722
2723
2724
2725dwr.data.Cache.prototype.unsubscribe = function(callbackObj) {
2726if (this.listener) {
2727return dwr.engine._execute(null, '__Data', 'unsubscribe', [ this.storeId, this.listener, callbackObj ]);
2728}
2729};
2730
2731
2732
2733
2734
2735
2736dwr.data.Cache.prototype.update = function(items, callbackObj) {
2737return dwr.engine._execute(null, '__Data', 'update', [ this.storeId, items, callbackObj ]);
2738};
2739
2740})();

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.