PageSourceSearch

https://secure.myimpactnetwork.com/dwr/util.js

js myimpactnetwork.com collected 2026-10-04 13:33:36 UTC 32,832 bytes, 1,526 lines download raw bytes

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20if (window['dojo']) dojo.provide('dwr.util');
21if (typeof window['dwr'] == 'undefined') window.dwr = {};
22if (typeof dwr['util'] == 'undefined') dwr.util = {};
23
24
25
26dwr.util._escapeHtml = true;
27
28
29
30
31dwr.util.setEscapeHtml = function(escapeHtml) {
32dwr.util._escapeHtml = escapeHtml;
33};
34
35
36dwr.util._shouldEscapeHtml = function(options) {
37if (options && options.escapeHtml != null) {
38return options.escapeHtml;
39}
40return dwr.util._escapeHtml;
41};
42
43
44
45
46
47dwr.util.escapeHtml = function(original) {
48return original.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;').replace(/"/g,'&quot;').replace(/'/g,'&#039;');
49};
50
51
52
53
54
55dwr.util.unescapeHtml = function(original) {
56return original.replace(/&lt;/g,'<').replace(/&gt;/g,'>').replace(/&quot;/g,'"').replace(/&#039;/g,"'").replace(/&amp;/g,'&');
57};
58
59
60
61
62
63dwr.util.replaceXmlCharacters = function(original) {
64original = original.replace("&", "+");
65original = original.replace("<", "\u2039");
66original = original.replace(">", "\u203A");
67original = original.replace("\'", "\u2018");
68original = original.replace("\"", "\u201C");
69return original;
70};
71
72
73
74
75
76dwr.util.containsXssRiskyCharacters = function(original) {
77return (original.indexOf('&') != -1
78|| original.indexOf('<') != -1
79|| original.indexOf('>') != -1
80|| original.indexOf('\'') != -1
81|| original.indexOf('\"') != -1);
82};
83
84
85
86
87
88dwr.util.onReturn = function(event, action) {
89if (!event) event = window.event;
90if (event && event.keyCode && event.keyCode == 13) action();
91};
92
93
94
95
96
97dwr.util.selectRange = function(ele, start, end) {
98ele = dwr.util._getElementById(ele, "selectRange()");
99if (ele == null) return;
100if (ele.setSelectionRange) {
101ele.setSelectionRange(start, end);
102}
103else if (ele.createTextRange) {
104var range = ele.createTextRange();
105range.moveStart("character", start);
106range.moveEnd("character", end - ele.value.length);
107range.select();
108}
109ele.focus();
110};
111
112
113
114
115
116dwr.util.byId = function() {
117var elems = [];
118for (var i = 0; i < arguments.length; i++) {
119var idOrElem = arguments[i];
120var elem;
121if (typeof idOrElem == 'string') {
122var elem = document.getElementById(idOrElem);
123
124
125if (document.all && elem && elem.attributes.id.value != idOrElem) {
126elem = null;
127var maybeElems = document.all[idOrElem];
128if (maybeElems.tagName) maybeElems = [maybeElems];
129for (var j = 0; j < maybeElems.length; j++) {
130if (maybeElems[j].attributes.id.value == idOrElem) {
131elem = maybeElems[j];
132break;
133}
134}
135}
136}
137else {
138elem = idOrElem;
139}
140if (arguments.length == 1) {
141return elem;
142}
143elems.push(elem);
144}
145return elems;
146}
147
148
149
150
151
152if (window['$'] == null) {
153window['$'] = dwr.util.byId;
154}
155
156
157
158
159
160dwr.util.toDescriptiveString = function(data, showLevels, options) {
161if (showLevels === undefined) showLevels = 1;
162var opt = {};
163if (dwr.util._isObject(options)) opt = options;
164var defaultoptions = {
165escapeHtml:false,
166baseIndent: "",
167childIndent: "\u00A0\u00A0",
168lineTerminator: "\n",
169oneLineMaxItems: 5,
170shortStringMaxLength: 13,
171propertyNameMaxLength: 30
172};
173for (var p in defaultoptions) {
174if (!(p in opt)) {
175opt[p] = defaultoptions[p];
176}
177}
178
179var skipDomProperties = {
180document:true, ownerDocument:true,
181all:true,
182parentElement:true, parentNode:true, offsetParent:true,
183children:true, firstChild:true, lastChild:true,
184previousSibling:true, nextSibling:true,
185innerHTML:true, outerHTML:true,
186innerText:true, outerText:true, textContent:true,
187attributes:true,
188style:true, currentStyle:true, runtimeStyle:true,
189parentTextEdit:true
190};
191
192function recursive(data, showLevels, indentDepth, options) {
193var reply = "";
194try {
195
196if (dwr.util._isString(data)) {
197var str = data;
198if (showLevels == 0 && str.length > options.shortStringMaxLength)
199str = str.substring(0, options.shortStringMaxLength-3) + "...";
200if (options.escapeHtml) {
201
202
203var lines = str.split("\n");
204for (var i = 0; i < lines.length; i++) lines[i] = dwr.util.escapeHtml(lines[i]);
205str = lines.join("\n");
206}
207if (showLevels == 0) {
208str = str.replace(/\n|\r|\t/g, function(ch) {
209switch (ch) {
210case "\n": return "\\n";
211case "\r": return "";
212case "\t": return "\\t";
213}
214});
215}
216else {
217str = str.replace(/\n|\r|\t/g, function(ch) {
218switch (ch) {
219case "\n": return options.lineTerminator + indent(indentDepth+1, options);
220case "\r": return "";
221case "\t": return "\\t";
222}
223});
224}
225reply = '"' + str + '"';
226}
227
228
229else if (dwr.util._isFunction(data)) {
230reply = "function";
231}
232
233
234else if (dwr.util._isArrayLike(data)) {
235if (showLevels == 0) {
236if (data.length > 0)
237reply = "[...]";
238else
239reply = "[]";
240}
241else {
242var strarr = [];
243strarr.push("[");
244var count = 0;
245for (var i = 0; i < data.length; i++) {
246if (!(i in data) && data != "[object NodeList]") continue;
247var itemvalue = data[i];
248if (count > 0) strarr.push(", ");
249if (showLevels == 1) {
250if (count == options.oneLineMaxItems) {
251strarr.push("...");
252break;
253}
254}
255else {
256strarr.push(options.lineTerminator + indent(indentDepth+1, options));
257}
258if (i != count) {
259strarr.push(i);
260strarr.push(":");
261}
262strarr.push(recursive(itemvalue, showLevels-1, indentDepth+1, options));
263count++;
264}
265if (showLevels > 1) strarr.push(options.lineTerminator + indent(indentDepth, options));
266strarr.push("]");
267reply = strarr.join("");
268}
269}
270
271
272else if (dwr.util._isObject(data) && !dwr.util._isDate(data)) {
273if (showLevels == 0) {
274reply = dwr.util._detailedTypeOf(data);
275}
276else {
277var strarr = [];
278if (dwr.util._detailedTypeOf(data) != "Object") {
279strarr.push(dwr.util._detailedTypeOf(data));
280if (typeof data.valueOf() != "object") {
281strarr.push(":");
282strarr.push(recursive(data.valueOf(), 1, indentDepth, options));
283}
284strarr.push(" ");
285}
286strarr.push("{");
287var isDomObject = dwr.util._isHTMLElement(data);
288var count = 0;
289for (var prop in data) {
290var propvalue = data[prop];
291if (isDomObject) {
292if (!propvalue) continue;
293if (typeof propvalue == "function") continue;
294if (skipDomProperties[prop]) continue;
295if (prop.toUpperCase() == prop) continue;
296}
297if (count > 0) strarr.push(", ");
298if (showLevels == 1) {
299if (count == options.oneLineMaxItems) {
300strarr.push("...");
301break;
302}
303}
304else {
305strarr.push(options.lineTerminator + indent(indentDepth+1, options));
306}
307strarr.push(prop.length > options.propertyNameMaxLength ? prop.substring(0, options.propertyNameMaxLength-3) + "..." : prop);
308strarr.push(":");
309strarr.push(recursive(propvalue, showLevels-1, indentDepth+1, options));
310count++;
311}
312if (showLevels > 1 && count > 0) strarr.push(options.lineTerminator + indent(indentDepth, options));
313strarr.push("}");
314reply = strarr.join("");
315}
316}
317
318
319else {
320reply = "" + data;
321}
322
323return reply;
324}
325catch(err) {
326return (err.message ? err.message : ""+err);
327}
328}
329
330function indent(count, options) {
331var strarr = [];
332strarr.push(options.baseIndent);
333for (var i=0; i<count; i++) {
334strarr.push(options.childIndent);
335}
336return strarr.join("");
337};
338
339return recursive(data, showLevels, 0, opt);
340};
341
342
343
344
345
346dwr.util.useLoadingMessage = function(message) {
347var loadingMessage;
348if (message) loadingMessage = message;
349else loadingMessage = "Loading";
350dwr.engine.setPreHook(function() {
351var disabledZone = dwr.util.byId('disabledZone');
352if (!disabledZone) {
353disabledZone = document.createElement('div');
354disabledZone.setAttribute('id', 'disabledZone');
355disabledZone.style.position = "absolute";
356disabledZone.style.zIndex = "1000";
357disabledZone.style.left = "0px";
358disabledZone.style.top = "0px";
359disabledZone.style.width = "100%";
360disabledZone.style.height = "100%";
361
362if (window.ActiveXObject) {
363disabledZone.style.background = "white";
364disabledZone.style.filter = "alpha(opacity=0)";
365}
366document.body.appendChild(disabledZone);
367var messageZone = document.createElement('div');
368messageZone.setAttribute('id', 'messageZone');
369messageZone.style.position = "absolute";
370messageZone.style.top = "0px";
371messageZone.style.right = "0px";
372messageZone.style.background = "red";
373messageZone.style.color = "white";
374messageZone.style.fontFamily = "Arial,Helvetica,sans-serif";
375messageZone.style.padding = "4px";
376document.body.appendChild(messageZone);
377var text = document.createTextNode(loadingMessage);
378messageZone.appendChild(text);
379dwr.util._disabledZoneUseCount = 1;
380}
381else {
382dwr.util.byId('messageZone').innerHTML = loadingMessage;
383disabledZone.style.visibility = 'visible';
384dwr.util._disabledZoneUseCount++;
385dwr.util.byId('messageZone').style.visibility = 'visible';
386}
387});
388dwr.engine.setPostHook(function() {
389dwr.util._disabledZoneUseCount--;
390if (dwr.util._disabledZoneUseCount == 0) {
391dwr.util.byId('disabledZone').style.visibility = 'hidden';
392dwr.util.byId('messageZone').style.visibility = 'hidden';
393}
394});
395};
396
397
398
399
400dwr.util.setHighlightHandler = function(handler) {
401dwr.util._highlightHandler = handler;
402};
403
404
405
406
407dwr.util.yellowFadeHighlightHandler = function(ele) {
408dwr.util._yellowFadeProcess(ele, 0);
409};
410dwr.util._yellowFadeSteps = [ "d0", "b0", "a0", "90", "98", "a0", "a8", "b0", "b8", "c0", "c8", "d0", "d8", "e0", "e8", "f0", "f8" ];
411dwr.util._yellowFadeProcess = function(ele, colorIndex) {
412ele = dwr.util.byId(ele);
413if (colorIndex < dwr.util._yellowFadeSteps.length) {
414ele.style.backgroundColor = "#ffff" + dwr.util._yellowFadeSteps[colorIndex];
415setTimeout("dwr.util._yellowFadeProcess('" + ele.id + "'," + (colorIndex + 1) + ")", 200);
416}
417else {
418ele.style.backgroundColor = "transparent";
419}
420};
421
422
423
424
425dwr.util.borderFadeHighlightHandler = function(ele) {
426ele.style.borderWidth = "2px";
427ele.style.borderStyle = "solid";
428dwr.util._borderFadeProcess(ele, 0);
429};
430dwr.util._borderFadeSteps = [ "d0", "b0", "a0", "90", "98", "a0", "a8", "b0", "b8", "c0", "c8", "d0", "d8", "e0", "e8", "f0", "f8" ];
431dwr.util._borderFadeProcess = function(ele, colorIndex) {
432ele = dwr.util.byId(ele);
433if (colorIndex < dwr.util._borderFadeSteps.length) {
434ele.style.borderColor = "#ff" + dwr.util._borderFadeSteps[colorIndex] + dwr.util._borderFadeSteps[colorIndex];
435setTimeout("dwr.util._borderFadeProcess('" + ele.id + "'," + (colorIndex + 1) + ")", 200);
436}
437else {
438ele.style.backgroundColor = "transparent";
439}
440};
441
442
443
444
445dwr.util.focusHighlightHandler = function(ele) {
446try {
447ele.focus();
448}
449catch (ex) {   }
450};
451
452
453dwr.util._highlightHandler = null;
454
455
456
457
458dwr.util.highlight = function(ele, options) {
459if (options && options.highlightHandler) {
460options.highlightHandler(dwr.util.byId(ele));
461}
462else if (dwr.util._highlightHandler != null) {
463dwr.util._highlightHandler(dwr.util.byId(ele));
464}
465};
466
467
468
469
470
471dwr.util.setValue = function(ele, val, options) {
472if (val == null) val = "";
473if (options == null) options = {};
474
475var orig = ele;
476ele = dwr.util.byId(ele);
477var nodes = null;
478if (ele == null) {
479
480nodes = document.getElementsByName(orig);
481if (nodes.length >= 1) ele = nodes.item(0);
482}
483
484if (ele == null) {
485dwr.util._debug("setValue() can't find an element with id/name: " + orig + ".");
486return;
487}
488
489
490dwr.util.highlight(ele, options);
491
492if (dwr.util._isHTMLElement(ele, "select")) {
493if (ele.type == "select-multiple" && dwr.util._isArray(val)) dwr.util._selectListItems(ele, val);
494else dwr.util._selectListItem(ele, val);
495return;
496}
497
498if (dwr.util._isHTMLElement(ele, "input")) {
499if (ele.type == "radio" || ele.type == "checkbox") {
500if (nodes && nodes.length >= 1) {
501for (var i = 0; i < nodes.length; i++) {
502var node = nodes.item(i);
503if (node.type != ele.type) continue;
504if (dwr.util._isArray(val)) {
505node.checked = false;
506for (var j = 0; j < val.length; j++)
507if (val[j] == node.value) node.checked = true;
508}
509else {
510node.checked = (node.value == val);
511}
512}
513}
514else {
515ele.checked = (val == true);
516}
517}
518else ele.value = val;
519
520return;
521}
522
523if (dwr.util._isHTMLElement(ele, "textarea")) {
524ele.value = val;
525return;
526}
527
528if (dwr.util._isHTMLElement(ele, "img")) {
529ele.src = val;
530return;
531}
532
533
534
535if (val.nodeType) {
536if (val.nodeType == 9  ) val = val.documentElement;
537val = dwr.util._importNode(ele.ownerDocument, val, true);
538ele.appendChild(val);
539return;
540}
541
542
543if (dwr.util._shouldEscapeHtml(options)) {
544if ("textContent" in ele) ele.textContent = val.toString();
545else if ("innerText" in ele) ele.innerText = val.toString();
546else ele.innerHTML = dwr.util.escapeHtml(val.toString());
547}
548else {
549ele.innerHTML = val;
550}
551};
552
553
554
555
556
557
558dwr.util._selectListItems = function(ele, val) {
559
560
561var found  = 0;
562var i;
563var j;
564for (i = 0; i < ele.options.length; i++) {
565ele.options[i].selected = false;
566for (j = 0; j < val.length; j++) {
567if (ele.options[i].value == val[j]) {
568ele.options[i].selected = true;
569found++;
570}
571}
572}
573
574if (found == val.length) return;
575
576for (i = 0; i < ele.options.length; i++) {
577for (j = 0; j < val.length; j++) {
578if (ele.options[i].text == val[j]) {
579ele.options[i].selected = true;
580}
581}
582}
583};
584
585
586
587
588
589
590dwr.util._selectListItem = function(ele, val) {
591
592
593var found = false;
594var i;
595for (i = 0; i < ele.options.length; i++) {
596if (ele.options[i].value == val) {
597ele.options[i].selected = true;
598found = true;
599}
600else {
601ele.options[i].selected = false;
602}
603}
604
605
606if (found) return;
607
608for (i = 0; i < ele.options.length; i++) {
609ele.options[i].selected = (ele.options[i].text == val);
610}
611};
612
613
614
615
616
617dwr.util.getValue = function(ele, options) {
618if (options == null) options = {};
619var orig = ele;
620ele = dwr.util.byId(ele);
621var nodes = null;
622if (ele == null) {
623
624nodes = document.getElementsByName(orig);
625if (nodes.length >= 1) ele = nodes.item(0);
626}
627if (ele == null) {
628dwr.util._debug("getValue() can't find an element with id/name: " + orig + ".");
629return "";
630}
631
632if (dwr.util._isHTMLElement(ele, "select")) {
633
634
635if (ele.type == "select-multiple") {
636var reply = new Array();
637for (var i = 0; i < ele.options.length; i++) {
638var item = ele.options[i];
639if (item.selected) {
640var valueAttr = item.getAttributeNode("value");
641if (valueAttr && valueAttr.specified) {
642reply.push(item.value);
643}
644else {
645reply.push(item.text);
646}
647}
648}
649return reply;
650}
651else {
652var sel = ele.selectedIndex;
653if (sel != -1) {
654var item = ele.options[sel];
655var valueAttr = item.getAttributeNode("value");
656if (valueAttr && valueAttr.specified) {
657return item.value;
658}
659return item.text;
660}
661else {
662return "";
663}
664}
665}
666
667if (dwr.util._isHTMLElement(ele, "input")) {
668if (ele.type == "radio") {
669if (nodes && nodes.length >= 1) {
670for (var i = 0; i < nodes.length; i++) {
671var node = nodes.item(i);
672if (node.type == ele.type) {
673if (node.checked) return node.value;
674}
675}
676}
677return ele.checked;
678}
679if (ele.type == "checkbox") {
680if (nodes && nodes.length >= 1) {
681var reply = [];
682for (var i = 0; i < nodes.length; i++) {
683var node = nodes.item(i);
684if (node.type == ele.type) {
685if (node.checked) reply.push(node.value);
686}
687}
688return reply;
689}
690return ele.checked;
691}
692if (ele.type == "file") {
693return ele;
694}
695return ele.value;
696}
697
698if (dwr.util._isHTMLElement(ele, "textarea")) {
699return ele.value;
700}
701
702if (dwr.util._shouldEscapeHtml(options)) {
703if (ele.textContent) return ele.textContent;
704else if (ele.innerText) return ele.innerText;
705}
706return ele.innerHTML;
707};
708
709
710
711
712
713dwr.util.getText = function(ele) {
714ele = dwr.util._getElementById(ele, "getText()");
715if (ele == null) return null;
716if (!dwr.util._isHTMLElement(ele, "select")) {
717dwr.util._debug("getText() can only be used with select elements. Attempt to use: " + dwr.util._detailedTypeOf(ele) + " from  id: " + orig + ".");
718return "";
719}
720
721
722
723var sel = ele.selectedIndex;
724if (sel != -1) {
725return ele.options[sel].text;
726}
727else {
728return "";
729}
730};
731
732
733
734
735
736
737
738dwr.util.setValues = function(data, options) {
739var prefix = "";
740var depth = 100;
741if (options && options.prefix) prefix = options.prefix;
742if (options && options.idPrefix) prefix = options.idPrefix;
743if (options && "depth" in options) depth = options.depth;
744dwr.util._setValuesRecursive(data, prefix, depth, options);
745};
746
747
748
749
750dwr.util._setValuesRecursive = function(data, idpath, depth, options) {
751if (depth == 0) return;
752
753
754if (dwr.util._isArray(data) && data.length > 0 && dwr.util._isObject(data[0])) {
755for (var i = 0; i < data.length; i++) {
756dwr.util._setValuesRecursive(data[i], idpath+"["+i+"]", depth-1, options);
757}
758}
759
760else if (dwr.util._isObject(data) && !dwr.util._isArray(data)) {
761for (var prop in data) {
762var subidpath = idpath ? idpath+"."+prop : prop;
763
764if (dwr.util._isObject(data[prop]) && !dwr.util._isArray(data[prop]) && !dwr.util._isDate(data[prop])
765|| dwr.util._isArray(data[prop]) && data[prop].length > 0 && dwr.util._isObject(data[prop][0])) {
766dwr.util._setValuesRecursive(data[prop], subidpath, depth-1, options);
767}
768
769else if (typeof data[prop] == "function") {
770
771}
772
773
774else {
775
776if (dwr.util.byId(subidpath) != null || document.getElementsByName(subidpath).length >= 1) {
777dwr.util.setValue(subidpath, data[prop], options);
778}
779}
780}
781}
782};
783
784
785
786
787
788
789
790
791
792dwr.util.getValues = function(data, options) {
793if (typeof data == "string" || dwr.util._isHTMLElement(data)) {
794return dwr.util.getFormValues(data);
795}
796else {
797var prefix = "";
798var depth = 100;
799if (options != null && options.prefix) prefix = options.prefix;
800if (options != null && options.idPrefix) prefix = options.idPrefix;
801if (options != null && "depth" in options) depth = options.depth;
802dwr.util._getValuesRecursive(data, prefix, depth, options);
803return data;
804}
805};
806
807
808
809
810
811
812dwr.util.getFormValues = function(eleOrNameOrId) {
813var ele = null;
814if (typeof eleOrNameOrId == "string") {
815ele = document.forms[eleOrNameOrId];
816if (ele == null) ele = dwr.util.byId(eleOrNameOrId);
817}
818else if (dwr.util._isHTMLElement(eleOrNameOrId)) {
819ele = eleOrNameOrId;
820}
821if (ele != null) {
822if (ele.elements == null) {
823alert("getFormValues() requires an object or reference to a form element.");
824return null;
825}
826var reply = {};
827var name;
828var value;
829for (var i = 0; i < ele.elements.length; i++) {
830if (ele[i].type in {button:0,submit:0,reset:0,image:0,file:0}) continue;
831if (ele[i].name) {
832name = ele[i].name;
833value = dwr.util.getValue(name);
834}
835else {
836if (ele[i].id) name = ele[i].id;
837else name = "element" + i;
838value = dwr.util.getValue(ele[i]);
839}
840reply[name] = value;
841}
842return reply;
843}
844};
845
846
847
848
849dwr.util._getValuesRecursive = function(data, idpath, depth, options) {
850if (depth == 0) return;
851
852
853if (dwr.util._isArray(data) && data.length > 0 && dwr.util._isObject(data[0])) {
854for (var i = 0; i < data.length; i++) {
855dwr.util._getValuesRecursive(data[i], idpath+"["+i+"]", depth-1, options);
856}
857}
858
859else if (dwr.util._isObject(data) && !dwr.util._isArray(data)) {
860for (var prop in data) {
861var subidpath = idpath ? idpath+"."+prop : prop;
862
863if (dwr.util._isObject(data[prop]) && !dwr.util._isArray(data[prop])
864|| dwr.util._isArray(data[prop]) && data[prop].length > 0 && dwr.util._isObject(data[prop][0])) {
865dwr.util._getValuesRecursive(data[prop], subidpath, depth-1, options);
866}
867
868else if (typeof data[prop] == "function") {
869
870}
871
872
873else {
874
875if (dwr.util.byId(subidpath) != null || document.getElementsByName(subidpath).length >= 1) {
876data[prop] = dwr.util.getValue(subidpath);
877}
878}
879}
880}
881};
882
883
884
885
886
887dwr.util.addOptions = function(ele, data ) {
888ele = dwr.util._getElementById(ele, "addOptions()");
889if (ele == null) return;
890var useOptions = dwr.util._isHTMLElement(ele, "select");
891var useLi = dwr.util._isHTMLElement(ele, ["ul", "ol"]);
892if (!useOptions && !useLi) {
893dwr.util._debug("addOptions() can only be used with select/ul/ol elements. Attempt to use: " + dwr.util._detailedTypeOf(ele));
894return;
895}
896if (data == null) return;
897
898var argcount = arguments.length;
899var options = {};
900var lastarg = arguments[argcount - 1];
901if (argcount > 2 && dwr.util._isObject(lastarg)) {
902options = lastarg;
903argcount--;
904}
905var arg3 = null; if (argcount >= 3) arg3 = arguments[2];
906var arg4 = null; if (argcount >= 4) arg4 = arguments[3];
907if (!options.optionCreator && useOptions) options.optionCreator = dwr.util._defaultOptionCreator;
908if (!options.optionCreator && useLi) options.optionCreator = dwr.util._defaultListItemCreator;
909options.document = ele.ownerDocument;
910
911var text, value, li;
912if (dwr.util._isArray(data)) {
913
914for (var i = 0; i < data.length; i++) {
915options.data = data[i];
916options.text = null;
917options.value = null;
918if (useOptions) {
919if (arg3 != null) {
920if (arg4 != null) {
921options.text = dwr.util._getValueFrom(data[i], arg4);
922options.value = dwr.util._getValueFrom(data[i], arg3);
923}
924else options.text = options.value = dwr.util._getValueFrom(data[i], arg3);
925}
926else options.text = options.value = dwr.util._getValueFrom(data[i]);
927
928if (options.text != null || options.value) {
929var opt = options.optionCreator(options);
930opt.text = options.text;
931opt.value = options.value;
932ele.options[ele.options.length] = opt;
933}
934}
935else {
936options.value = dwr.util._getValueFrom(data[i], arg3);
937if (options.value != null) {
938li = options.optionCreator(options);
939if (dwr.util._shouldEscapeHtml(options)) {
940options.value = dwr.util.escapeHtml(options.value);
941}
942li.innerHTML = options.value;
943ele.appendChild(li);
944}
945}
946}
947}
948else if (arg4 != null) {
949if (!useOptions) {
950alert("dwr.util.addOptions can only create select lists from objects.");
951return;
952}
953for (var prop in data) {
954options.data = data[prop];
955options.value = dwr.util._getValueFrom(data[prop], arg3);
956options.text = dwr.util._getValueFrom(data[prop], arg4);
957
958if (options.text != null || options.value) {
959var opt = options.optionCreator(options);
960opt.text = options.text;
961opt.value = options.value;
962ele.options[ele.options.length] = opt;
963}
964}
965}
966else {
967if (!useOptions) {
968dwr.util._debug("dwr.util.addOptions can only create select lists from objects.");
969return;
970}
971for (var prop in data) {
972if (typeof data[prop] == "function") continue;
973options.data = data[prop];
974if (!arg3) {
975options.value = prop;
976options.text = data[prop];
977}
978else {
979options.value = data[prop];
980options.text = prop;
981}
982if (options.text != null || options.value) {
983var opt = options.optionCreator(options);
984opt.text = options.text;
985opt.value = options.value;
986ele.options[ele.options.length] = opt;
987}
988}
989}
990
991
992dwr.util.highlight(ele, options);
993};
994
995
996
997
998dwr.util._getValueFrom = function(data, method) {
999if (method == null) return data;
1000else if (typeof method == 'function') return method(data);
1001else return data[method];
1002};
1003
1004
1005
1006
1007dwr.util._defaultOptionCreator = function(options) {
1008return options.document.createElement("option");
1009};
1010
1011
1012
1013
1014dwr.util._defaultListItemCreator = function(options) {
1015return options.document.createElement("li");
1016};
1017
1018
1019
1020
1021
1022dwr.util.removeAllOptions = function(ele) {
1023ele = dwr.util._getElementById(ele, "removeAllOptions()");
1024if (ele == null) return;
1025var useOptions = dwr.util._isHTMLElement(ele, "select");
1026var useLi = dwr.util._isHTMLElement(ele, ["ul", "ol"]);
1027if (!useOptions && !useLi) {
1028dwr.util._debug("removeAllOptions() can only be used with select, ol and ul elements. Attempt to use: " + dwr.util._detailedTypeOf(ele));
1029return;
1030}
1031if (useOptions) {
1032ele.options.length = 0;
1033}
1034else {
1035while (ele.childNodes.length > 0) {
1036ele.removeChild(ele.firstChild);
1037}
1038}
1039};
1040
1041
1042
1043
1044
1045dwr.util.addRows = function(ele, data, cellFuncs, options) {
1046ele = dwr.util._getElementById(ele, "addRows()");
1047if (ele == null) return;
1048if (!dwr.util._isHTMLElement(ele, ["table", "tbody", "thead", "tfoot"])) {
1049dwr.util._debug("addRows() can only be used with table, tbody, thead and tfoot elements. Attempt to use: " + dwr.util._detailedTypeOf(ele));
1050return;
1051}
1052if (!options) options = {};
1053if (!options.rowCreator) options.rowCreator = dwr.util._defaultRowCreator;
1054if (!options.cellCreator) options.cellCreator = dwr.util._defaultCellCreator;
1055options.document = ele.ownerDocument;
1056var tr, rowNum;
1057if (dwr.util._isArray(data)) {
1058for (rowNum = 0; rowNum < data.length; rowNum++) {
1059options.rowData = data[rowNum];
1060options.rowIndex = rowNum;
1061options.rowNum = rowNum;
1062options.data = null;
1063options.cellNum = -1;
1064tr = dwr.util._addRowInner(cellFuncs, options);
1065if (tr != null) ele.appendChild(tr);
1066}
1067}
1068else if (typeof data == "object") {
1069rowNum = 0;
1070for (var rowIndex in data) {
1071options.rowData = data[rowIndex];
1072options.rowIndex = rowIndex;
1073options.rowNum = rowNum;
1074options.data = null;
1075options.cellNum = -1;
1076tr = dwr.util._addRowInner(cellFuncs, options);
1077if (tr != null) ele.appendChild(tr);
1078rowNum++;
1079}
1080}
1081
1082dwr.util.highlight(ele, options);
1083};
1084
1085
1086
1087
1088dwr.util._emptyTableCellReplacement = "<div style='width:0;height:0;overflow:hidden;'></div>";
1089
1090
1091
1092
1093dwr.util._addRowInner = function(cellFuncs, options) {
1094var tr = options.rowCreator(options);
1095if (tr == null) return null;
1096for (var cellNum = 0; cellNum < cellFuncs.length; cellNum++) {
1097var func = cellFuncs[cellNum];
1098if (typeof func == 'function') options.data = func(options.rowData, options);
1099else options.data = func || "";
1100options.cellNum = cellNum;
1101var td = options.cellCreator(options);
1102if (td != null) {
1103if (options.data) {
1104if (dwr.util._isHTMLElement(options.data)) td.appendChild(options.data);
1105else {
1106if (dwr.util._shouldEscapeHtml(options) && typeof(options.data) == "string") {
1107td.innerHTML = dwr.util.escapeHtml(options.data);
1108}
1109else {
1110td.innerHTML = options.data;
1111}
1112}
1113}
1114else {
1115td.innerHTML = dwr.util._emptyTableCellReplacement;
1116}
1117tr.appendChild(td);
1118}
1119}
1120return tr;
1121};
1122
1123
1124
1125
1126dwr.util._defaultRowCreator = function(options) {
1127return options.document.createElement("tr");
1128};
1129
1130
1131
1132
1133dwr.util._defaultCellCreator = function(options) {
1134return options.document.createElement("td");
1135};
1136
1137
1138
1139
1140
1141dwr.util.removeAllRows = function(ele, options) {
1142ele = dwr.util._getElementById(ele, "removeAllRows()");
1143if (ele == null) return;
1144if (!options) options = {};
1145if (!options.filter) options.filter = function() { return true; };
1146if (!dwr.util._isHTMLElement(ele, ["table", "tbody", "thead", "tfoot"])) {
1147dwr.util._debug("removeAllRows() can only be used with table, tbody, thead and tfoot elements. Attempt to use: " + dwr.util._detailedTypeOf(ele));
1148return;
1149}
1150var child = ele.firstChild;
1151var next;
1152while (child != null) {
1153next = child.nextSibling;
1154if (options.filter(child)) {
1155ele.removeChild(child);
1156}
1157child = next;
1158}
1159};
1160
1161
1162
1163
1164dwr.util.setClassName = function(ele, className) {
1165ele = dwr.util._getElementById(ele, "setClassName()");
1166if (ele == null) return;
1167ele.className = className;
1168};
1169
1170
1171
1172
1173dwr.util.addClassName = function(ele, className) {
1174ele = dwr.util._getElementById(ele, "addClassName()");
1175if (ele == null) return;
1176ele.className += " " + className;
1177};
1178
1179
1180
1181
1182
1183dwr.util.removeClassName = function(ele, className) {
1184ele = dwr.util._getElementById(ele, "removeClassName()");
1185if (ele == null) return;
1186var regex = new RegExp("(^|\\s)" + className + "(\\s|$)", 'g');
1187ele.className = ele.className.replace(regex, '');
1188};
1189
1190
1191
1192
1193dwr.util.toggleClassName = function(ele, className) {
1194ele = dwr.util._getElementById(ele, "toggleClassName()");
1195if (ele == null) return;
1196var regex = new RegExp("(^|\\s)" + className + "(\\s|$)");
1197if (regex.test(ele.className)) {
1198ele.className = ele.className.replace(regex, '');
1199}
1200else {
1201ele.className += " " + className;
1202}
1203};
1204
1205
1206
1207
1208
1209dwr.util.cloneNode = function(ele, options) {
1210ele = dwr.util._getElementById(ele, "cloneNode()");
1211if (ele == null) return null;
1212if (options == null) options = {};
1213var clone = ele.cloneNode(true);
1214if (options.idPrefix || options.idSuffix) {
1215dwr.util._updateIds(clone, options);
1216}
1217else {
1218dwr.util._removeIds(clone);
1219}
1220ele.parentNode.insertBefore(clone, ele);
1221return clone;
1222};
1223
1224
1225
1226
1227dwr.util._updateIds = function(ele, options) {
1228if (options == null) options = {};
1229if (ele.id) {
1230ele.setAttribute("id", (options.idPrefix || "") + ele.id + (options.idSuffix || ""));
1231}
1232var children = ele.childNodes;
1233for (var i = 0; i < children.length; i++) {
1234var child = children.item(i);
1235if (child.nodeType == 1  ) {
1236dwr.util._updateIds(child, options);
1237}
1238}
1239};
1240
1241
1242
1243
1244dwr.util._removeIds = function(ele) {
1245if (ele.id) ele.removeAttribute("id");
1246var children = ele.childNodes;
1247for (var i = 0; i < children.length; i++) {
1248var child = children.item(i);
1249if (child.nodeType == 1  ) {
1250dwr.util._removeIds(child);
1251}
1252}
1253};
1254
1255
1256
1257
1258
1259dwr.util.cloneNodeForValues = function(templateEle, data, options) {
1260templateEle = dwr.util._getElementById(templateEle, "cloneNodeForValues()");
1261if (templateEle == null) return null;
1262if (options == null) options = {};
1263var idpath;
1264if (options.idPrefix != null)
1265idpath = options.idPrefix;
1266else
1267idpath = templateEle.id || "";
1268return dwr.util._cloneNodeForValuesRecursive(templateEle, data, idpath, options);
1269};
1270
1271
1272
1273
1274dwr.util._cloneNodeForValuesRecursive = function(templateEle, data, idpath, options) {
1275
1276
1277if (dwr.util._isArray(data)) {
1278var clones = [];
1279for (var i = 0; i < data.length; i++) {
1280var item = data[i];
1281var clone = dwr.util._cloneNodeForValuesRecursive(templateEle, item, idpath + "[" + i + "]", options);
1282clones.push(clone);
1283}
1284return clones;
1285}
1286else
1287
1288
1289
1290if (dwr.util._isObject(data) && !dwr.util._isArray(data)) {
1291var clone = templateEle.cloneNode(true);
1292if (options.updateCloneStyle && clone.style) {
1293for (var propname in options.updateCloneStyle) {
1294clone.style[propname] = options.updateCloneStyle[propname];
1295}
1296}
1297dwr.util._replaceIds(clone, templateEle.id, idpath);
1298templateEle.parentNode.insertBefore(clone, templateEle);
1299dwr.util._cloneSubArrays(data, idpath, options);
1300return clone;
1301}
1302
1303
1304return null;
1305};
1306
1307
1308
1309
1310
1311dwr.util._replaceIds = function(ele, oldidpath, newidpath) {
1312if (ele.id) {
1313var newId = null;
1314if (ele.id == oldidpath) {
1315newId = newidpath;
1316}
1317else if (ele.id.length > oldidpath.length) {
1318if (ele.id.substr(0, oldidpath.length) == oldidpath) {
1319var trailingChar = ele.id.charAt(oldidpath.length);
1320if (trailingChar == "." || trailingChar == "[") {
1321newId = newidpath + ele.id.substr(oldidpath.length);
1322}
1323}
1324}
1325if (newId) {
1326ele.setAttribute("id", newId);
1327}
1328else {
1329ele.removeAttribute("id");
1330}
1331}
1332var children = ele.childNodes;
1333for (var i = 0; i < children.length; i++) {
1334var child = children.item(i);
1335if (child.nodeType == 1  ) {
1336dwr.util._replaceIds(child, oldidpath, newidpath);
1337}
1338}
1339};
1340
1341
1342
1343
1344
1345dwr.util._cloneSubArrays = function(data, idpath, options) {
1346for (prop in data) {
1347var value = data[prop];
1348
1349if (dwr.util._isArray(value)) {
1350
1351if (value.length > 0 && dwr.util._isObject(value[0])) {
1352var subTemplateId = idpath + "." + prop;
1353var subTemplateEle = dwr.util.byId(subTemplateId);
1354if (subTemplateEle != null) {
1355dwr.util._cloneNodeForValuesRecursive(subTemplateEle, value, subTemplateId, options);
1356}
1357}
1358}
1359
1360else if (dwr.util._isObject(value)) {
1361dwr.util._cloneSubArrays(value, idpath + "." + prop, options);
1362}
1363}
1364};
1365
1366
1367
1368
1369dwr.util._getElementById = function(ele, source) {
1370var orig = ele;
1371ele = dwr.util.byId(ele);
1372if (ele == null) {
1373dwr.util._debug(source + " can't find an element with id: " + orig + ".");
1374}
1375return ele;
1376};
1377
1378
1379
1380
1381
1382
1383
1384dwr.util._isHTMLElement = function(ele, nodeName) {
1385if (ele == null || typeof ele != "object" || ele.nodeName == null) {
1386return false;
1387}
1388if (nodeName != null) {
1389var test = ele.nodeName.toLowerCase();
1390if (typeof nodeName == "string") {
1391return test == nodeName.toLowerCase();
1392}
1393if (dwr.util._isArray(nodeName)) {
1394var match = false;
1395for (var i = 0; i < nodeName.length && !match; i++) {
1396if (test == nodeName[i].toLowerCase()) {
1397match =  true;
1398}
1399}
1400return match;
1401}
1402dwr.util._debug("dwr.util._isHTMLElement was passed test node name that is neither a string or array of strings");
1403return false;
1404}
1405return true;
1406};
1407
1408
1409
1410
1411dwr.util._detailedTypeOf = function(x) {
1412var reply = typeof x;
1413if (reply == "object") {
1414reply = Object.prototype.toString.apply(x);
1415reply = reply.substring(8, reply.length-1);
1416}
1417return reply;
1418};
1419
1420
1421
1422
1423dwr.util._isObject = function(data) {
1424return (data && typeof data == "object");
1425};
1426
1427
1428
1429
1430dwr.util._isArray = function(data) {
1431return (data && Object.prototype.toString.call(data)=="[object Array]");
1432};
1433
1434
1435
1436
1437dwr.util._isArrayLike = function(data) {
1438return data
1439&& (typeof data.length == "number")
1440&& ((data.propertyIsEnumerable && data.propertyIsEnumerable("length")==false) || !data.constructor || data!="[object Object]")
1441&& !dwr.util._isString(data)
1442&& !dwr.util._isFunction(data)
1443&& !data.tagName;
1444};
1445
1446
1447
1448
1449dwr.util._isString = function(data) {
1450return (data && (typeof data == "string" || Object.prototype.toString.call(data) == "[object String]"));
1451};
1452
1453
1454
1455
1456dwr.util._isFunction = function(data) {
1457return (data && (typeof data == "function" || Object.prototype.toString.call(data) == "[object Function]")
1458&& data != "[object NodeList]");
1459};
1460
1461
1462
1463
1464dwr.util._isDate = function(data) {
1465return (data && Object.prototype.toString.call(data)=="[object Date]");
1466};
1467
1468
1469
1470
1471dwr.util._importNode = function(doc, importedNode, deep) {
1472var newNode;
1473
1474if (importedNode.nodeType == 1  ) {
1475newNode = doc.createElement(importedNode.nodeName);
1476
1477for (var i = 0; i < importedNode.attributes.length; i++) {
1478var attr = importedNode.attributes[i];
1479if (attr.nodeValue != null && attr.nodeValue != '') {
1480newNode.setAttribute(attr.name, attr.nodeValue);
1481}
1482}
1483
1484if (importedNode.style != null) {
1485newNode.style.cssText = importedNode.style.cssText;
1486}
1487}
1488else if (importedNode.nodeType == 3  ) {
1489newNode = doc.createTextNode(importedNode.nodeValue);
1490}
1491
1492if (deep && importedNode.hasChildNodes()) {
1493for (i = 0; i < importedNode.childNodes.length; i++) {
1494newNode.appendChild(dwr.util._importNode(doc, importedNode.childNodes[i], true));
1495}
1496}
1497
1498return newNode;
1499};
1500
1501
1502dwr.util._debug = function(message, stacktrace) {
1503var written = false;
1504try {
1505if (window.console) {
1506if (stacktrace && window.console.trace) window.console.trace();
1507window.console.log(message);
1508written = true;
1509}
1510else if (window.opera && window.opera.postError) {
1511window.opera.postError(message);
1512written = true;
1513}
1514}
1515catch (ex) {   }
1516
1517if (!written) {
1518var debug = document.getElementById("dwr-debug");
1519if (debug) {
1520var contents = message + "<br/>" + debug.innerHTML;
1521if (contents.length > 2048) contents = contents.substring(0, 2048);
1522debug.innerHTML = contents;
1523}
1524}
1525};
1526

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.