NameSpace: SGL_Constants.htm

File SGL_Constants.htm, 97.2 kB (added by randy, 6 years ago)

SGL Constants

Line 
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
2 <html><head><title></title>
3 <meta http-equiv="Content-type" content="text/html; charset=windows-1251">
4 <style>
5         table.dBug_array,table.dBug_object,table.dBug_resource,table.dBug_resourceC,table.dBug_xml {
6                 font-family:Verdana, Arial, Helvetica, sans-serif; color:#000000; font-size:12px;
7         }
8        
9         .dBug_arrayHeader,
10         .dBug_objectHeader,
11         .dBug_resourceHeader,
12         .dBug_resourceCHeader,
13         .dBug_xmlHeader
14                 { font-weight:bold; color:#FFFFFF; }
15        
16         /* array */
17         table.dBug_array { background-color:#006600; }
18         table.dBug_array td { background-color:#FFFFFF; }
19         table.dBug_array td.dBug_arrayHeader { background-color:#009900; }
20         table.dBug_array td.dBug_arrayKey { background-color:#CCFFCC; }
21        
22         /* object */
23         table.dBug_object { background-color:#0000CC; }
24         table.dBug_object td { background-color:#FFFFFF; }
25         table.dBug_object td.dBug_objectHeader { background-color:#4444CC; }
26         table.dBug_object td.dBug_objectKey { background-color:#CCDDFF; }
27        
28         /* resource */
29         table.dBug_resourceC { background-color:#884488; }
30         table.dBug_resourceC td { background-color:#FFFFFF; }
31         table.dBug_resourceC td.dBug_resourceCHeader { background-color:#AA66AA; }
32         table.dBug_resourceC td.dBug_resourceCKey { background-color:#FFDDFF; }
33        
34         /* resource */
35         table.dBug_resource { background-color:#884488; }
36         table.dBug_resource td { background-color:#FFFFFF; }
37         table.dBug_resource td.dBug_resourceHeader { background-color:#AA66AA; }
38         table.dBug_resource td.dBug_resourceKey { background-color:#FFDDFF; }
39         table.dBug_resource td.dBug_resourceKey2 { background-color:#FFDDFF; }
40        
41         /* xml */
42         table.dBug_xml { background-color:#888888; }
43         table.dBug_xml td { background-color:#FFFFFF; }
44         table.dBug_xml td.dBug_xmlHeader { background-color:#AAAAAA; }
45         table.dBug_xml td.dBug_xmlKey { background-color:#DDDDDD; }
46 </style>
47 <script type="text/javascript">
48 /*  Prototype JavaScript framework, version 1.4.0
49  *  (c) 2005 Sam Stephenson <sam@conio.net>
50  *
51  *  THIS FILE IS AUTOMATICALLY GENERATED. When sending patches, please diff
52  *  against the source tree, available from the Prototype darcs repository.
53  *
54  *  Prototype is freely distributable under the terms of an MIT-style license.
55  *
56  *  For details, see the Prototype web site: http://prototype.conio.net/
57  *
58 /*--------------------------------------------------------------------------*/
59
60 var Prototype = {
61   Version: '1.4.0',
62   ScriptFragment: '(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)',
63
64   emptyFunction: function() {},
65   K: function(x) {return x}
66 }
67
68 var Class = {
69   create: function() {
70     return function() {
71       this.initialize.apply(this, arguments);
72     }
73   }
74 }
75
76 var Abstract = new Object();
77
78 Object.extend = function(destination, source) {
79   for (property in source) {
80     destination[property] = source[property];
81   }
82   return destination;
83 }
84
85 Object.inspect = function(object) {
86   try {
87     if (object == undefined) return 'undefined';
88     if (object == null) return 'null';
89     return object.inspect ? object.inspect() : object.toString();
90   } catch (e) {
91     if (e instanceof RangeError) return '...';
92     throw e;
93   }
94 }
95
96 Function.prototype.bind = function() {
97   var __method = this, args = $A(arguments), object = args.shift();
98   return function() {
99     return __method.apply(object, args.concat($A(arguments)));
100   }
101 }
102
103 Function.prototype.bindAsEventListener = function(object) {
104   var __method = this;
105   return function(event) {
106     return __method.call(object, event || window.event);
107   }
108 }
109
110 Object.extend(Number.prototype, {
111   toColorPart: function() {
112     var digits = this.toString(16);
113     if (this < 16) return '0' + digits;
114     return digits;
115   },
116
117   succ: function() {
118     return this + 1;
119   },
120
121   times: function(iterator) {
122     $R(0, this, true).each(iterator);
123     return this;
124   }
125 });
126
127 var Try = {
128   these: function() {
129     var returnValue;
130
131     for (var i = 0; i < arguments.length; i++) {
132       var lambda = arguments[i];
133       try {
134         returnValue = lambda();
135         break;
136       } catch (e) {}
137     }
138
139     return returnValue;
140   }
141 }
142
143 /*--------------------------------------------------------------------------*/
144
145 var PeriodicalExecuter = Class.create();
146 PeriodicalExecuter.prototype = {
147   initialize: function(callback, frequency) {
148     this.callback = callback;
149     this.frequency = frequency;
150     this.currentlyExecuting = false;
151
152     this.registerCallback();
153   },
154
155   registerCallback: function() {
156     setInterval(this.onTimerEvent.bind(this), this.frequency * 1000);
157   },
158
159   onTimerEvent: function() {
160     if (!this.currentlyExecuting) {
161       try {
162         this.currentlyExecuting = true;
163         this.callback();
164       } finally {
165         this.currentlyExecuting = false;
166       }
167     }
168   }
169 }
170
171 /*--------------------------------------------------------------------------*/
172
173 function $() {
174   var elements = new Array();
175
176   for (var i = 0; i < arguments.length; i++) {
177     var element = arguments[i];
178     if (typeof element == 'string')
179       element = document.getElementById(element);
180
181     if (arguments.length == 1)
182       return element;
183
184     elements.push(element);
185   }
186
187   return elements;
188 }
189 Object.extend(String.prototype, {
190   stripTags: function() {
191     return this.replace(/<\/?[^>]+>/gi, '');
192   },
193
194   stripScripts: function() {
195     return this.replace(new RegExp(Prototype.ScriptFragment, 'img'), '');
196   },
197
198   extractScripts: function() {
199     var matchAll = new RegExp(Prototype.ScriptFragment, 'img');
200     var matchOne = new RegExp(Prototype.ScriptFragment, 'im');
201     return (this.match(matchAll) || []).map(function(scriptTag) {
202       return (scriptTag.match(matchOne) || ['', ''])[1];
203     });
204   },
205
206   evalScripts: function() {
207     return this.extractScripts().map(eval);
208   },
209
210   escapeHTML: function() {
211     var div = document.createElement('div');
212     var text = document.createTextNode(this);
213     div.appendChild(text);
214     return div.innerHTML;
215   },
216
217   unescapeHTML: function() {
218     var div = document.createElement('div');
219     div.innerHTML = this.stripTags();
220     return div.childNodes[0] ? div.childNodes[0].nodeValue : '';
221   },
222
223   toQueryParams: function() {
224     var pairs = this.match(/^\??(.*)$/)[1].split('&');
225     return pairs.inject({}, function(params, pairString) {
226       var pair = pairString.split('=');
227       params[pair[0]] = pair[1];
228       return params;
229     });
230   },
231
232   toArray: function() {
233     return this.split('');
234   },
235
236   camelize: function() {
237     var oStringList = this.split('-');
238     if (oStringList.length == 1) return oStringList[0];
239
240     var camelizedString = this.indexOf('-') == 0
241       ? oStringList[0].charAt(0).toUpperCase() + oStringList[0].substring(1)
242       : oStringList[0];
243
244     for (var i = 1, len = oStringList.length; i < len; i++) {
245       var s = oStringList[i];
246       camelizedString += s.charAt(0).toUpperCase() + s.substring(1);
247     }
248
249     return camelizedString;
250   },
251
252   inspect: function() {
253     return "'" + this.replace('\\', '\\\\').replace("'", '\\\'') + "'";
254   }
255 });
256
257 String.prototype.parseQuery = String.prototype.toQueryParams;
258
259 var $break    = new Object();
260 var $continue = new Object();
261
262 var Enumerable = {
263   each: function(iterator) {
264     var index = 0;
265     try {
266       this._each(function(value) {
267         try {
268           iterator(value, index++);
269         } catch (e) {
270           if (e != $continue) throw e;
271         }
272       });
273     } catch (e) {
274       if (e != $break) throw e;
275     }
276   },
277
278   all: function(iterator) {
279     var result = true;
280     this.each(function(value, index) {
281       result = result && !!(iterator || Prototype.K)(value, index);
282       if (!result) throw $break;
283     });
284     return result;
285   },
286
287   any: function(iterator) {
288     var result = true;
289     this.each(function(value, index) {
290       if (result = !!(iterator || Prototype.K)(value, index))
291         throw $break;
292     });
293     return result;
294   },
295
296   collect: function(iterator) {
297     var results = [];
298     this.each(function(value, index) {
299       results.push(iterator(value, index));
300     });
301     return results;
302   },
303
304   detect: function (iterator) {
305     var result;
306     this.each(function(value, index) {
307       if (iterator(value, index)) {
308         result = value;
309         throw $break;
310       }
311     });
312     return result;
313   },
314
315   findAll: function(iterator) {
316     var results = [];
317     this.each(function(value, index) {
318       if (iterator(value, index))
319         results.push(value);
320     });
321     return results;
322   },
323
324   grep: function(pattern, iterator) {
325     var results = [];
326     this.each(function(value, index) {
327       var stringValue = value.toString();
328       if (stringValue.match(pattern))
329         results.push((iterator || Prototype.K)(value, index));
330     })
331     return results;
332   },
333
334   include: function(object) {
335     var found = false;
336     this.each(function(value) {
337       if (value == object) {
338         found = true;
339         throw $break;
340       }
341     });
342     return found;
343   },
344
345   inject: function(memo, iterator) {
346     this.each(function(value, index) {
347       memo = iterator(memo, value, index);
348     });
349     return memo;
350   },
351
352   invoke: function(method) {
353     var args = $A(arguments).slice(1);
354     return this.collect(function(value) {
355       return value[method].apply(value, args);
356     });
357   },
358
359   max: function(iterator) {
360     var result;
361     this.each(function(value, index) {
362       value = (iterator || Prototype.K)(value, index);
363       if (value >= (result || value))
364         result = value;
365     });
366     return result;
367   },
368
369   min: function(iterator) {
370     var result;
371     this.each(function(value, index) {
372       value = (iterator || Prototype.K)(value, index);
373       if (value <= (result || value))
374         result = value;
375     });
376     return result;
377   },
378
379   partition: function(iterator) {
380     var trues = [], falses = [];
381     this.each(function(value, index) {
382       ((iterator || Prototype.K)(value, index) ?
383         trues : falses).push(value);
384     });
385     return [trues, falses];
386   },
387
388   pluck: function(property) {
389     var results = [];
390     this.each(function(value, index) {
391       results.push(value[property]);
392     });
393     return results;
394   },
395
396   reject: function(iterator) {
397     var results = [];
398     this.each(function(value, index) {
399       if (!iterator(value, index))
400         results.push(value);
401     });
402     return results;
403   },
404
405   sortBy: function(iterator) {
406     return this.collect(function(value, index) {
407       return {value: value, criteria: iterator(value, index)};
408     }).sort(function(left, right) {
409       var a = left.criteria, b = right.criteria;
410       return a < b ? -1 : a > b ? 1 : 0;
411     }).pluck('value');
412   },
413
414   toArray: function() {
415     return this.collect(Prototype.K);
416   },
417
418   zip: function() {
419     var iterator = Prototype.K, args = $A(arguments);
420     if (typeof args.last() == 'function')
421       iterator = args.pop();
422
423     var collections = [this].concat(args).map($A);
424     return this.map(function(value, index) {
425       iterator(value = collections.pluck(index));
426       return value;
427     });
428   },
429
430   inspect: function() {
431     return '#<Enumerable:' + this.toArray().inspect() + '>';
432   }
433 }
434
435 Object.extend(Enumerable, {
436   map:     Enumerable.collect,
437   find:    Enumerable.detect,
438   select:  Enumerable.findAll,
439   member:  Enumerable.include,
440   entries: Enumerable.toArray
441 });
442 var $A = Array.from = function(iterable) {
443   if (!iterable) return [];
444   if (iterable.toArray) {
445     return iterable.toArray();
446   } else {
447     var results = [];
448     for (var i = 0; i < iterable.length; i++)
449       results.push(iterable[i]);
450     return results;
451   }
452 }
453
454 Object.extend(Array.prototype, Enumerable);
455
456 Array.prototype._reverse = Array.prototype.reverse;
457
458 Object.extend(Array.prototype, {
459   _each: function(iterator) {
460     for (var i = 0; i < this.length; i++)
461       iterator(this[i]);
462   },
463
464   clear: function() {
465     this.length = 0;
466     return this;
467   },
468
469   first: function() {
470     return this[0];
471   },
472
473   last: function() {
474     return this[this.length - 1];
475   },
476
477   compact: function() {
478     return this.select(function(value) {
479       return value != undefined || value != null;
480     });
481   },
482
483   flatten: function() {
484     return this.inject([], function(array, value) {
485       return array.concat(value.constructor == Array ?
486         value.flatten() : [value]);
487     });
488   },
489
490   without: function() {
491     var values = $A(arguments);
492     return this.select(function(value) {
493       return !values.include(value);
494     });
495   },
496
497   indexOf: function(object) {
498     for (var i = 0; i < this.length; i++)
499       if (this[i] == object) return i;
500     return -1;
501   },
502
503   reverse: function(inline) {
504     return (inline !== false ? this : this.toArray())._reverse();
505   },
506
507   shift: function() {
508     var result = this[0];
509     for (var i = 0; i < this.length - 1; i++)
510       this[i] = this[i + 1];
511     this.length--;
512     return result;
513   },
514
515   inspect: function() {
516     return '[' + this.map(Object.inspect).join(', ') + ']';
517   }
518 });
519 var Hash = {
520   _each: function(iterator) {
521     for (key in this) {
522       var value = this[key];
523       if (typeof value == 'function') continue;
524
525       var pair = [key, value];
526       pair.key = key;
527       pair.value = value;
528       iterator(pair);
529     }
530   },
531
532   keys: function() {
533     return this.pluck('key');
534   },
535
536   values: function() {
537     return this.pluck('value');
538   },
539
540   merge: function(hash) {
541     return $H(hash).inject($H(this), function(mergedHash, pair) {
542       mergedHash[pair.key] = pair.value;
543       return mergedHash;
544     });
545   },
546
547   toQueryString: function() {
548     return this.map(function(pair) {
549       return pair.map(encodeURIComponent).join('=');
550     }).join('&');
551   },
552
553   inspect: function() {
554     return '#<Hash:{' + this.map(function(pair) {
555       return pair.map(Object.inspect).join(': ');
556     }).join(', ') + '}>';
557   }
558 }
559
560 function $H(object) {
561   var hash = Object.extend({}, object || {});
562   Object.extend(hash, Enumerable);
563   Object.extend(hash, Hash);
564   return hash;
565 }
566 ObjectRange = Class.create();
567 Object.extend(ObjectRange.prototype, Enumerable);
568 Object.extend(ObjectRange.prototype, {
569   initialize: function(start, end, exclusive) {
570     this.start = start;
571     this.end = end;
572     this.exclusive = exclusive;
573   },
574
575   _each: function(iterator) {
576     var value = this.start;
577     do {
578       iterator(value);
579       value = value.succ();
580     } while (this.include(value));
581   },
582
583   include: function(value) {
584     if (value < this.start)
585       return false;
586     if (this.exclusive)
587       return value < this.end;
588     return value <= this.end;
589   }
590 });
591
592 var $R = function(start, end, exclusive) {
593   return new ObjectRange(start, end, exclusive);
594 }
595
596 var Ajax = {
597   getTransport: function() {
598     return Try.these(
599       function() {return new ActiveXObject('Msxml2.XMLHTTP')},
600       function() {return new ActiveXObject('Microsoft.XMLHTTP')},
601       function() {return new XMLHttpRequest()}
602     ) || false;
603   },
604
605   activeRequestCount: 0
606 }
607
608 Ajax.Responders = {
609   responders: [],
610
611   _each: function(iterator) {
612     this.responders._each(iterator);
613   },
614
615   register: function(responderToAdd) {
616     if (!this.include(responderToAdd))
617       this.responders.push(responderToAdd);
618   },
619
620   unregister: function(responderToRemove) {
621     this.responders = this.responders.without(responderToRemove);
622   },
623
624   dispatch: function(callback, request, transport, json) {
625     this.each(function(responder) {
626       if (responder[callback] && typeof responder[callback] == 'function') {
627         try {
628           responder[callback].apply(responder, [request, transport, json]);
629         } catch (e) {}
630       }
631     });
632   }
633 };
634
635 Object.extend(Ajax.Responders, Enumerable);
636
637 Ajax.Responders.register({
638   onCreate: function() {
639     Ajax.activeRequestCount++;
640   },
641
642   onComplete: function() {
643     Ajax.activeRequestCount--;
644   }
645 });
646
647 Ajax.Base = function() {};
648 Ajax.Base.prototype = {
649   setOptions: function(options) {
650     this.options = {
651       method:       'post',
652       asynchronous: true,
653       parameters:   ''
654     }
655     Object.extend(this.options, options || {});
656   },
657
658   responseIsSuccess: function() {
659     return this.transport.status == undefined
660         || this.transport.status == 0
661         || (this.transport.status >= 200 && this.transport.status < 300);
662   },
663
664   responseIsFailure: function() {
665     return !this.responseIsSuccess();
666   }
667 }
668
669 Ajax.Request = Class.create();
670 Ajax.Request.Events =
671   ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete'];
672
673 Ajax.Request.prototype = Object.extend(new Ajax.Base(), {
674   initialize: function(url, options) {
675     this.transport = Ajax.getTransport();
676     this.setOptions(options);
677     this.request(url);
678   },
679
680   request: function(url) {
681     var parameters = this.options.parameters || '';
682     if (parameters.length > 0) parameters += '&_=';
683
684     try {
685       this.url = url;
686       if (this.options.method == 'get' && parameters.length > 0)
687         this.url += (this.url.match(/\?/) ? '&' : '?') + parameters;
688
689       Ajax.Responders.dispatch('onCreate', this, this.transport);
690
691       this.transport.open(this.options.method, this.url,
692         this.options.asynchronous);
693
694       if (this.options.asynchronous) {
695         this.transport.onreadystatechange = this.onStateChange.bind(this);
696         setTimeout((function() {this.respondToReadyState(1)}).bind(this), 10);
697       }
698
699       this.setRequestHeaders();
700
701       var body = this.options.postBody ? this.options.postBody : parameters;
702       this.transport.send(this.options.method == 'post' ? body : null);
703
704     } catch (e) {
705       this.dispatchException(e);
706     }
707   },
708
709   setRequestHeaders: function() {
710     var requestHeaders =
711       ['X-Requested-With', 'XMLHttpRequest',
712        'X-Prototype-Version', Prototype.Version];
713
714     if (this.options.method == 'post') {
715       requestHeaders.push('Content-type',
716         'application/x-www-form-urlencoded');
717
718       /* Force "Connection: close" for Mozilla browsers to work around
719        * a bug where XMLHttpReqeuest sends an incorrect Content-length
720        * header. See Mozilla Bugzilla #246651.
721        */
722       if (this.transport.overrideMimeType)
723         requestHeaders.push('Connection', 'close');
724     }
725
726     if (this.options.requestHeaders)
727       requestHeaders.push.apply(requestHeaders, this.options.requestHeaders);
728
729     for (var i = 0; i < requestHeaders.length; i += 2)
730       this.transport.setRequestHeader(requestHeaders[i], requestHeaders[i+1]);
731   },
732
733   onStateChange: function() {
734     var readyState = this.transport.readyState;
735     if (readyState != 1)
736       this.respondToReadyState(this.transport.readyState);
737   },
738
739   header: function(name) {
740     try {
741       return this.transport.getResponseHeader(name);
742     } catch (e) {}
743   },
744
745   evalJSON: function() {
746     try {
747       return eval(this.header('X-JSON'));
748     } catch (e) {}
749   },
750
751   evalResponse: function() {
752     try {
753       return eval(this.transport.responseText);
754     } catch (e) {
755       this.dispatchException(e);
756     }
757   },
758
759   respondToReadyState: function(readyState) {
760     var event = Ajax.Request.Events[readyState];
761     var transport = this.transport, json = this.evalJSON();
762
763     if (event == 'Complete') {
764       try {
765         (this.options['on' + this.transport.status]
766          || this.options['on' + (this.responseIsSuccess() ? 'Success' : 'Failure')]
767          || Prototype.emptyFunction)(transport, json);
768       } catch (e) {
769         this.dispatchException(e);
770       }
771
772       if ((this.header('Content-type') || '').match(/^text\/javascript/i))
773         this.evalResponse();
774     }
775
776     try {
777       (this.options['on' + event] || Prototype.emptyFunction)(transport, json);
778       Ajax.Responders.dispatch('on' + event, this, transport, json);
779     } catch (e) {
780       this.dispatchException(e);
781     }
782
783     /* Avoid memory leak in MSIE: clean up the oncomplete event handler */
784     if (event == 'Complete')
785       this.transport.onreadystatechange = Prototype.emptyFunction;
786   },
787
788   dispatchException: function(exception) {
789     (this.options.onException || Prototype.emptyFunction)(this, exception);
790     Ajax.Responders.dispatch('onException', this, exception);
791   }
792 });
793
794 Ajax.Updater = Class.create();
795
796 Object.extend(Object.extend(Ajax.Updater.prototype, Ajax.Request.prototype), {
797   initialize: function(container, url, options) {
798     this.containers = {
799       success: container.success ? $(container.success) : $(container),
800       failure: container.failure ? $(container.failure) :
801         (container.success ? null : $(container))
802     }
803
804     this.transport = Ajax.getTransport();
805     this.setOptions(options);
806
807     var onComplete = this.options.onComplete || Prototype.emptyFunction;
808     this.options.onComplete = (function(transport, object) {
809       this.updateContent();
810       onComplete(transport, object);
811     }).bind(this);
812
813     this.request(url);
814   },
815
816   updateContent: function() {
817     var receiver = this.responseIsSuccess() ?
818       this.containers.success : this.containers.failure;
819     var response = this.transport.responseText;
820
821     if (!this.options.evalScripts)
822       response = response.stripScripts();
823
824     if (receiver) {
825       if (this.options.insertion) {
826         new this.options.insertion(receiver, response);
827       } else {
828         Element.update(receiver, response);
829       }
830     }
831
832     if (this.responseIsSuccess()) {
833       if (this.onComplete)
834         setTimeout(this.onComplete.bind(this), 10);
835     }
836   }
837 });
838
839 Ajax.PeriodicalUpdater = Class.create();
840 Ajax.PeriodicalUpdater.prototype = Object.extend(new Ajax.Base(), {
841   initialize: function(container, url, options) {
842     this.setOptions(options);
843     this.onComplete = this.options.onComplete;
844
845     this.frequency = (this.options.frequency || 2);
846     this.decay = (this.options.decay || 1);
847
848     this.updater = {};
849     this.container = container;
850     this.url = url;
851
852     this.start();
853   },
854
855   start: function() {
856     this.options.onComplete = this.updateComplete.bind(this);
857     this.onTimerEvent();
858   },
859
860   stop: function() {
861     this.updater.onComplete = undefined;
862     clearTimeout(this.timer);
863     (this.onComplete || Prototype.emptyFunction).apply(this, arguments);
864   },
865
866   updateComplete: function(request) {
867     if (this.options.decay) {
868       this.decay = (request.responseText == this.lastText ?
869         this.decay * this.options.decay : 1);
870
871       this.lastText = request.responseText;
872     }
873     this.timer = setTimeout(this.onTimerEvent.bind(this),
874       this.decay * this.frequency * 1000);
875   },
876
877   onTimerEvent: function() {
878     this.updater = new Ajax.Updater(this.container, this.url, this.options);
879   }
880 });
881 document.getElementsByClassName = function(className, parentElement) {
882   var children = ($(parentElement) || document.body).getElementsByTagName('*');
883   return $A(children).inject([], function(elements, child) {
884     if (child.className.match(new RegExp("(^|\\s)" + className + "(\\s|$)")))
885       elements.push(child);
886     return elements;
887   });
888 }
889
890 /*--------------------------------------------------------------------------*/
891
892 if (!window.Element) {
893   var Element = new Object();
894 }
895
896 Object.extend(Element, {
897   visible: function(element) {
898     return $(element).style.display != 'none';
899   },
900
901   toggle: function() {
902     for (var i = 0; i < arguments.length; i++) {
903       var element = $(arguments[i]);
904       Element[Element.visible(element) ? 'hide' : 'show'](element);
905     }
906   },
907
908   hide: function() {
909     for (var i = 0; i < arguments.length; i++) {
910       var element = $(arguments[i]);
911       element.style.display = 'none';
912     }
913   },
914
915   show: function() {
916     for (var i = 0; i < arguments.length; i++) {
917       var element = $(arguments[i]);
918       element.style.display = '';
919     }
920   },
921
922   remove: function(element) {
923     element = $(element);
924     element.parentNode.removeChild(element);
925   },
926
927   update: function(element, html) {
928     $(element).innerHTML = html.stripScripts();
929     setTimeout(function() {html.evalScripts()}, 10);
930   },
931
932   getHeight: function(element) {
933     element = $(element);
934     return element.offsetHeight;
935   },
936
937   classNames: function(element) {
938     return new Element.ClassNames(element);
939   },
940
941   hasClassName: function(element, className) {
942     if (!(element = $(element))) return;
943     return Element.classNames(element).include(className);
944   },
945
946   addClassName: function(element, className) {
947     if (!(element = $(element))) return;
948     return Element.classNames(element).add(className);
949   },
950
951   removeClassName: function(element, className) {
952     if (!(element = $(element))) return;
953     return Element.classNames(element).remove(className);
954   },
955
956   // removes whitespace-only text node children
957   cleanWhitespace: function(element) {
958     element = $(element);
959     for (var i = 0; i < element.childNodes.length; i++) {
960       var node = element.childNodes[i];
961       if (node.nodeType == 3 && !/\S/.test(node.nodeValue))
962         Element.remove(node);
963     }
964   },
965
966   empty: function(element) {
967     return $(element).innerHTML.match(/^\s*$/);
968   },
969
970   scrollTo: function(element) {
971     element = $(element);
972     var x = element.x ? element.x : element.offsetLeft,
973         y = element.y ? element.y : element.offsetTop;
974     window.scrollTo(x, y);
975   },
976
977   getStyle: function(element, style) {
978     element = $(element);
979     var value = element.style[style.camelize()];
980     if (!value) {
981       if (document.defaultView && document.defaultView.getComputedStyle) {
982         var css = document.defaultView.getComputedStyle(element, null);
983         value = css ? css.getPropertyValue(style) : null;
984       } else if (element.currentStyle) {
985         value = element.currentStyle[style.camelize()];
986       }
987     }
988
989     if (window.opera && ['left', 'top', 'right', 'bottom'].include(style))
990       if (Element.getStyle(element, 'position') == 'static') value = 'auto';
991
992     return value == 'auto' ? null : value;
993   },
994
995   setStyle: function(element, style) {
996     element = $(element);
997     for (name in style)
998       element.style[name.camelize()] = style[name];
999   },
1000
1001   getDimensions: function(element) {
1002     element = $(element);
1003     if (Element.getStyle(element, 'display') != 'none')
1004       return {width: element.offsetWidth, height: element.offsetHeight};
1005
1006     // All *Width and *Height properties give 0 on elements with display none,
1007     // so enable the element temporarily
1008     var els = element.style;
1009     var originalVisibility = els.visibility;
1010     var originalPosition = els.position;
1011     els.visibility = 'hidden';
1012     els.position = 'absolute';
1013     els.display = '';
1014     var originalWidth = element.clientWidth;
1015     var originalHeight = element.clientHeight;
1016     els.display = 'none';
1017     els.position = originalPosition;
1018     els.visibility = originalVisibility;
1019     return {width: originalWidth, height: originalHeight};
1020   },
1021
1022   makePositioned: function(element) {
1023     element = $(element);
1024     var pos = Element.getStyle(element, 'position');
1025     if (pos == 'static' || !pos) {
1026       element._madePositioned = true;
1027       element.style.position = 'relative';
1028       // Opera returns the offset relative to the positioning context, when an
1029       // element is position relative but top and left have not been defined
1030       if (window.opera) {
1031         element.style.top = 0;
1032         element.style.left = 0;
1033       }
1034     }
1035   },
1036
1037   undoPositioned: function(element) {
1038     element = $(element);
1039     if (element._madePositioned) {
1040       element._madePositioned = undefined;
1041       element.style.position =
1042         element.style.top =
1043         element.style.left =
1044         element.style.bottom =
1045         element.style.right = '';
1046     }
1047   },
1048
1049   makeClipping: function(element) {
1050     element = $(element);
1051     if (element._overflow) return;
1052     element._overflow = element.style.overflow;
1053     if ((Element.getStyle(element, 'overflow') || 'visible') != 'hidden')
1054       element.style.overflow = 'hidden';
1055   },
1056
1057   undoClipping: function(element) {
1058     element = $(element);
1059     if (element._overflow) return;
1060     element.style.overflow = element._overflow;
1061     element._overflow = undefined;
1062   }
1063 });
1064
1065 var Toggle = new Object();
1066 Toggle.display = Element.toggle;
1067
1068 /*--------------------------------------------------------------------------*/
1069
1070 Abstract.Insertion = function(adjacency) {
1071   this.adjacency = adjacency;
1072 }
1073
1074 Abstract.Insertion.prototype = {
1075   initialize: function(element, content) {
1076     this.element = $(element);
1077     this.content = content.stripScripts();
1078
1079     if (this.adjacency && this.element.insertAdjacentHTML) {
1080       try {
1081         this.element.insertAdjacentHTML(this.adjacency, this.content);
1082       } catch (e) {
1083         if (this.element.tagName.toLowerCase() == 'tbody') {
1084           this.insertContent(this.contentFromAnonymousTable());
1085         } else {
1086           throw e;
1087         }
1088       }
1089     } else {
1090       this.range = this.element.ownerDocument.createRange();
1091       if (this.initializeRange) this.initializeRange();
1092       this.insertContent([this.range.createContextualFragment(this.content)]);
1093     }
1094
1095     setTimeout(function() {content.evalScripts()}, 10);
1096   },
1097
1098   contentFromAnonymousTable: function() {
1099     var div = document.createElement('div');
1100     div.innerHTML = '<table><tbody>' + this.content + '</tbody></table>';
1101     return $A(div.childNodes[0].childNodes[0].childNodes);
1102   }
1103 }
1104
1105 var Insertion = new Object();
1106
1107 Insertion.Before = Class.create();
1108 Insertion.Before.prototype = Object.extend(new Abstract.Insertion('beforeBegin'), {
1109   initializeRange: function() {
1110     this.range.setStartBefore(this.element);
1111   },
1112
1113   insertContent: function(fragments) {
1114     fragments.each((function(fragment) {
1115       this.element.parentNode.insertBefore(fragment, this.element);
1116     }).bind(this));
1117   }
1118 });
1119
1120 Insertion.Top = Class.create();
1121 Insertion.Top.prototype = Object.extend(new Abstract.Insertion('afterBegin'), {
1122   initializeRange: function() {
1123     this.range.selectNodeContents(this.element);
1124     this.range.collapse(true);
1125   },
1126
1127   insertContent: function(fragments) {
1128     fragments.reverse(false).each((function(fragment) {
1129       this.element.insertBefore(fragment, this.element.firstChild);
1130     }).bind(this));
1131   }
1132 });
1133
1134 Insertion.Bottom = Class.create();
1135 Insertion.Bottom.prototype = Object.extend(new Abstract.Insertion('beforeEnd'), {
1136   initializeRange: function() {
1137     this.range.selectNodeContents(this.element);
1138     this.range.collapse(this.element);
1139   },
1140
1141   insertContent: function(fragments) {
1142     fragments.each((function(fragment) {
1143       this.element.appendChild(fragment);
1144     }).bind(this));
1145   }
1146 });
1147
1148 Insertion.After = Class.create();
1149 Insertion.After.prototype = Object.extend(new Abstract.Insertion('afterEnd'), {
1150   initializeRange: function() {
1151     this.range.setStartAfter(this.element);
1152   },
1153
1154   insertContent: function(fragments) {
1155     fragments.each((function(fragment) {
1156       this.element.parentNode.insertBefore(fragment,
1157         this.element.nextSibling);
1158     }).bind(this));
1159   }
1160 });
1161
1162 /*--------------------------------------------------------------------------*/
1163
1164 Element.ClassNames = Class.create();
1165 Element.ClassNames.prototype = {
1166   initialize: function(element) {
1167     this.element = $(element);
1168   },
1169
1170   _each: function(iterator) {
1171     this.element.className.split(/\s+/).select(function(name) {
1172       return name.length > 0;
1173     })._each(iterator);
1174   },
1175
1176   set: function(className) {
1177     this.element.className = className;
1178   },
1179
1180   add: function(classNameToAdd) {
1181     if (this.include(classNameToAdd)) return;
1182     this.set(this.toArray().concat(classNameToAdd).join(' '));
1183   },
1184
1185   remove: function(classNameToRemove) {
1186     if (!this.include(classNameToRemove)) return;
1187     this.set(this.select(function(className) {
1188       return className != classNameToRemove;
1189     }).join(' '));
1190   },
1191
1192   toString: function() {
1193     return this.toArray().join(' ');
1194   }
1195 }
1196
1197 Object.extend(Element.ClassNames.prototype, Enumerable);
1198 var Field = {
1199   clear: function() {
1200     for (var i = 0; i < arguments.length; i++)
1201       $(arguments[i]).value = '';
1202   },
1203
1204   focus: function(element) {
1205     $(element).focus();
1206   },
1207
1208   present: function() {
1209     for (var i = 0; i < arguments.length; i++)
1210       if ($(arguments[i]).value == '') return false;
1211     return true;
1212   },
1213
1214   select: function(element) {
1215     $(element).select();
1216   },
1217
1218   activate: function(element) {
1219     element = $(element);
1220     element.focus();
1221     if (element.select)
1222       element.select();
1223   }
1224 }
1225
1226 /*--------------------------------------------------------------------------*/
1227
1228 var Form = {
1229   serialize: function(form) {
1230     var elements = Form.getElements($(form));
1231     var queryComponents = new Array();
1232
1233     for (var i = 0; i < elements.length; i++) {
1234       var queryComponent = Form.Element.serialize(elements[i]);
1235       if (queryComponent)
1236         queryComponents.push(queryComponent);
1237     }
1238
1239     return queryComponents.join('&');
1240   },
1241
1242   getElements: function(form) {
1243     form = $(form);
1244     var elements = new Array();
1245
1246     for (tagName in Form.Element.Serializers) {
1247       var tagElements = form.getElementsByTagName(tagName);
1248       for (var j = 0; j < tagElements.length; j++)
1249         elements.push(tagElements[j]);
1250     }
1251     return elements;
1252   },
1253
1254   getInputs: function(form, typeName, name) {
1255     form = $(form);
1256     var inputs = form.getElementsByTagName('input');
1257
1258     if (!typeName && !name)
1259       return inputs;
1260
1261     var matchingInputs = new Array();
1262     for (var i = 0; i < inputs.length; i++) {
1263       var input = inputs[i];
1264       if ((typeName && input.type != typeName) ||
1265           (name && input.name != name))
1266         continue;
1267       matchingInputs.push(input);
1268     }
1269
1270     return matchingInputs;
1271   },
1272
1273   disable: function(form) {
1274     var elements = Form.getElements(form);
1275     for (var i = 0; i < elements.length; i++) {
1276       var element = elements[i];
1277       element.blur();
1278       element.disabled = 'true';
1279     }
1280   },
1281
1282   enable: function(form) {
1283     var elements = Form.getElements(form);
1284     for (var i = 0; i < elements.length; i++) {
1285       var element = elements[i];
1286       element.disabled = '';
1287     }
1288   },
1289
1290   findFirstElement: function(form) {
1291     return Form.getElements(form).find(function(element) {
1292       return element.type != 'hidden' && !element.disabled &&
1293         ['input', 'select', 'textarea'].include(element.tagName.toLowerCase());
1294     });
1295   },
1296
1297   focusFirstElement: function(form) {
1298     Field.activate(Form.findFirstElement(form));
1299   },
1300
1301   reset: function(form) {
1302     $(form).reset();
1303   }
1304 }
1305
1306 Form.Element = {
1307   serialize: function(element) {
1308     element = $(element);
1309     var method = element.tagName.toLowerCase();
1310     var parameter = Form.Element.Serializers[method](element);
1311
1312     if (parameter) {
1313       var key = encodeURIComponent(parameter[0]);
1314       if (key.length == 0) return;
1315
1316       if (parameter[1].constructor != Array)
1317         parameter[1] = [parameter[1]];
1318
1319       return parameter[1].map(function(value) {
1320         return key + '=' + encodeURIComponent(value);
1321       }).join('&');
1322     }
1323   },
1324
1325   getValue: function(element) {
1326     element = $(element);
1327     var method = element.tagName.toLowerCase();
1328     var parameter = Form.Element.Serializers[method](element);
1329
1330     if (parameter)
1331       return parameter[1];
1332   }
1333 }
1334
1335 Form.Element.Serializers = {
1336   input: function(element) {
1337     switch (element.type.toLowerCase()) {
1338       case 'submit':
1339       case 'hidden':
1340       case 'password':
1341       case 'text':
1342         return Form.Element.Serializers.textarea(element);
1343       case 'checkbox':
1344       case 'radio':
1345         return Form.Element.Serializers.inputSelector(element);
1346     }
1347     return false;
1348   },
1349
1350   inputSelector: function(element) {
1351     if (element.checked)
1352       return [element.name, element.value];
1353   },
1354
1355   textarea: function(element) {
1356     return [element.name, element.value];
1357   },
1358
1359   select: function(element) {
1360     return Form.Element.Serializers[element.type == 'select-one' ?
1361       'selectOne' : 'selectMany'](element);
1362   },
1363
1364   selectOne: function(element) {
1365     var value = '', opt, index = element.selectedIndex;
1366     if (index >= 0) {
1367       opt = element.options[index];
1368       value = opt.value;
1369       if (!value && !('value' in opt))
1370         value = opt.text;
1371     }
1372     return [element.name, value];
1373   },
1374
1375   selectMany: function(element) {
1376     var value = new Array();
1377     for (var i = 0; i < element.length; i++) {
1378       var opt = element.options[i];
1379       if (opt.selected) {
1380         var optValue = opt.value;
1381         if (!optValue && !('value' in opt))
1382           optValue = opt.text;
1383         value.push(optValue);
1384       }
1385     }
1386     return [element.name, value];
1387   }
1388 }
1389
1390 /*--------------------------------------------------------------------------*/
1391
1392 var $F = Form.Element.getValue;
1393
1394 /*--------------------------------------------------------------------------*/
1395
1396 Abstract.TimedObserver = function() {}
1397 Abstract.TimedObserver.prototype = {
1398   initialize: function(element, frequency, callback) {
1399     this.frequency = frequency;
1400     this.element   = $(element);
1401     this.callback  = callback;
1402
1403     this.lastValue = this.getValue();
1404     this.registerCallback();
1405   },
1406
1407   registerCallback: function() {
1408     setInterval(this.onTimerEvent.bind(this), this.frequency * 1000);
1409   },
1410
1411   onTimerEvent: function() {
1412     var value = this.getValue();
1413     if (this.lastValue != value) {
1414       this.callback(this.element, value);
1415       this.lastValue = value;
1416     }
1417   }
1418 }
1419
1420 Form.Element.Observer = Class.create();
1421 Form.Element.Observer.prototype = Object.extend(new Abstract.TimedObserver(), {
1422   getValue: function() {
1423     return Form.Element.getValue(this.element);
1424   }
1425 });
1426
1427 Form.Observer = Class.create();
1428 Form.Observer.prototype = Object.extend(new Abstract.TimedObserver(), {
1429   getValue: function() {
1430     return Form.serialize(this.element);
1431   }
1432 });
1433
1434 /*--------------------------------------------------------------------------*/
1435
1436 Abstract.EventObserver = function() {}
1437 Abstract.EventObserver.prototype = {
1438   initialize: function(element, callback) {
1439     this.element  = $(element);
1440     this.callback = callback;
1441
1442     this.lastValue = this.getValue();
1443     if (this.element.tagName.toLowerCase() == 'form')
1444       this.registerFormCallbacks();
1445     else
1446       this.registerCallback(this.element);
1447   },
1448
1449   onElementEvent: function() {
1450     var value = this.getValue();
1451     if (this.lastValue != value) {
1452       this.callback(this.element, value);
1453       this.lastValue = value;
1454     }
1455   },
1456
1457   registerFormCallbacks: function() {
1458     var elements = Form.getElements(this.element);
1459     for (var i = 0; i < elements.length; i++)
1460       this.registerCallback(elements[i]);
1461   },
1462
1463   registerCallback: function(element) {
1464     if (element.type) {
1465       switch (element.type.toLowerCase()) {
1466         case 'checkbox':
1467         case 'radio':
1468           Event.observe(element, 'click', this.onElementEvent.bind(this));
1469           break;
1470         case 'password':
1471         case 'text':
1472         case 'textarea':
1473         case 'select-one':
1474         case 'select-multiple':
1475           Event.observe(element, 'change', this.onElementEvent.bind(this));
1476           break;
1477       }
1478     }
1479   }
1480 }
1481
1482 Form.Element.EventObserver = Class.create();
1483 Form.Element.EventObserver.prototype = Object.extend(new Abstract.EventObserver(), {
1484   getValue: function() {
1485     return Form.Element.getValue(this.element);
1486   }
1487 });
1488
1489 Form.EventObserver = Class.create();
1490 Form.EventObserver.prototype = Object.extend(new Abstract.EventObserver(), {
1491   getValue: function() {
1492     return Form.serialize(this.element);
1493   }
1494 });
1495 if (!window.Event) {
1496   var Event = new Object();
1497 }
1498
1499 Object.extend(Event, {
1500   KEY_BACKSPACE: 8,
1501   KEY_TAB:       9,
1502   KEY_RETURN:   13,
1503   KEY_ESC:      27,
1504   KEY_LEFT:     37,
1505   KEY_UP:       38,
1506   KEY_RIGHT:    39,
1507   KEY_DOWN:     40,
1508   KEY_DELETE:   46,
1509
1510   element: function(event) {
1511     return event.target || event.srcElement;
1512   },
1513
1514   isLeftClick: function(event) {
1515     return (((event.which) && (event.which == 1)) ||
1516             ((event.button) && (event.button == 1)));
1517   },
1518
1519   pointerX: function(event) {
1520     return event.pageX || (event.clientX +
1521       (document.documentElement.scrollLeft || document.body.scrollLeft));
1522   },
1523
1524   pointerY: function(event) {
1525     return event.pageY || (event.clientY +
1526       (document.documentElement.scrollTop || document.body.scrollTop));
1527   },
1528
1529   stop: function(event) {
1530     if (event.preventDefault) {
1531       event.preventDefault();
1532       event.stopPropagation();
1533     } else {
1534       event.returnValue = false;
1535       event.cancelBubble = true;
1536     }
1537   },
1538
1539   // find the first node with the given tagName, starting from the
1540   // node the event was triggered on; traverses the DOM upwards
1541   findElement: function(event, tagName) {
1542     var element = Event.element(event);
1543     while (element.parentNode && (!element.tagName ||
1544         (element.tagName.toUpperCase() != tagName.toUpperCase())))
1545       element = element.parentNode;
1546     return element;
1547   },
1548
1549   observers: false,
1550
1551   _observeAndCache: function(element, name, observer, useCapture) {
1552     if (!this.observers) this.observers = [];
1553     if (element.addEventListener) {
1554       this.observers.push([element, name, observer, useCapture]);
1555       element.addEventListener(name, observer, useCapture);
1556     } else if (element.attachEvent) {
1557       this.observers.push([element, name, observer, useCapture]);
1558       element.attachEvent('on' + name, observer);
1559     }
1560   },
1561
1562   unloadCache: function() {
1563     if (!Event.observers) return;
1564     for (var i = 0; i < Event.observers.length; i++) {
1565       Event.stopObserving.apply(this, Event.observers[i]);
1566       Event.observers[i][0] = null;
1567     }
1568     Event.observers = false;
1569   },
1570
1571   observe: function(element, name, observer, useCapture) {
1572     var element = $(element);
1573     useCapture = useCapture || false;
1574
1575     if (name == 'keypress' &&
1576         (navigator.appVersion.match(/Konqueror|Safari|KHTML/)
1577         || element.attachEvent))
1578       name = 'keydown';
1579
1580     this._observeAndCache(element, name, observer, useCapture);
1581   },
1582
1583   stopObserving: function(element, name, observer, useCapture) {
1584     var element = $(element);
1585     useCapture = useCapture || false;
1586
1587     if (name == 'keypress' &&
1588         (navigator.appVersion.match(/Konqueror|Safari|KHTML/)
1589         || element.detachEvent))
1590       name = 'keydown';
1591
1592     if (element.removeEventListener) {
1593       element.removeEventListener(name, observer, useCapture);
1594     } else if (element.detachEvent) {
1595       element.detachEvent('on' + name, observer);
1596     }
1597   }
1598 });
1599
1600 /* prevent memory leaks in IE */
1601 Event.observe(window, 'unload', Event.unloadCache, false);
1602 var Position = {
1603   // set to true if needed, warning: firefox performance problems
1604   // NOT neeeded for page scrolling, only if draggable contained in
1605   // scrollable elements
1606   includeScrollOffsets: false,
1607
1608   // must be called before calling withinIncludingScrolloffset, every time the
1609   // page is scrolled
1610   prepare: function() {
1611     this.deltaX =  window.pageXOffset
1612                 || document.documentElement.scrollLeft
1613                 || document.body.scrollLeft
1614                 || 0;
1615     this.deltaY =  window.pageYOffset
1616                 || document.documentElement.scrollTop
1617                 || document.body.scrollTop
1618                 || 0;
1619   },
1620
1621   realOffset: function(element) {
1622     var valueT = 0, valueL = 0;
1623     do {
1624       valueT += element.scrollTop  || 0;
1625       valueL += element.scrollLeft || 0;
1626       element = element.parentNode;
1627     } while (element);
1628     return [valueL, valueT];
1629   },
1630
1631   cumulativeOffset: function(element) {
1632     var valueT = 0, valueL = 0;
1633     do {
1634       valueT += element.offsetTop  || 0;
1635       valueL += element.offsetLeft || 0;
1636       element = element.offsetParent;
1637     } while (element);
1638     return [valueL, valueT];
1639   },
1640
1641   positionedOffset: function(element) {
1642     var valueT = 0, valueL = 0;
1643     do {
1644       valueT += element.offsetTop  || 0;
1645       valueL += element.offsetLeft || 0;
1646       element = element.offsetParent;
1647       if (element) {
1648         p = Element.getStyle(element, 'position');
1649         if (p == 'relative' || p == 'absolute') break;
1650       }
1651     } while (element);
1652     return [valueL, valueT];
1653   },
1654
1655   offsetParent: function(element) {
1656     if (element.offsetParent) return element.offsetParent;
1657     if (element == document.body) return element;
1658
1659     while ((element = element.parentNode) && element != document.body)
1660       if (Element.getStyle(element, 'position') != 'static')
1661         return element;
1662
1663     return document.body;
1664   },
1665
1666   // caches x/y coordinate pair to use with overlap
1667   within: function(element, x, y) {
1668     if (this.includeScrollOffsets)
1669       return this.withinIncludingScrolloffsets(element, x, y);
1670     this.xcomp = x;
1671     this.ycomp = y;
1672     this.offset = this.cumulativeOffset(element);
1673
1674     return (y >= this.offset[1] &&
1675             y <  this.offset[1] + element.offsetHeight &&
1676             x >= this.offset[0] &&
1677             x <  this.offset[0] + element.offsetWidth);
1678   },
1679
1680   withinIncludingScrolloffsets: function(element, x, y) {
1681     var offsetcache = this.realOffset(element);
1682
1683     this.xcomp = x + offsetcache[0] - this.deltaX;
1684     this.ycomp = y + offsetcache[1] - this.deltaY;
1685     this.offset = this.cumulativeOffset(element);
1686
1687     return (this.ycomp >= this.offset[1] &&
1688             this.ycomp <  this.offset[1] + element.offsetHeight &&
1689             this.xcomp >= this.offset[0] &&
1690             this.xcomp <  this.offset[0] + element.offsetWidth);
1691   },
1692
1693   // within must be called directly before
1694   overlap: function(mode, element) {
1695     if (!mode) return 0;
1696     if (mode == 'vertical')
1697       return ((this.offset[1] + element.offsetHeight) - this.ycomp) /
1698         element.offsetHeight;
1699     if (mode == 'horizontal')
1700       return ((this.offset[0] + element.offsetWidth) - this.xcomp) /
1701         element.offsetWidth;
1702   },
1703
1704   clone: function(source, target) {
1705     source = $(source);
1706     target = $(target);
1707     target.style.position = 'absolute';
1708     var offsets = this.cumulativeOffset(source);
1709     target.style.top    = offsets[1] + 'px';
1710     target.style.left   = offsets[0] + 'px';
1711     target.style.width  = source.offsetWidth + 'px';
1712     target.style.height = source.offsetHeight + 'px';
1713   },
1714
1715   page: function(forElement) {
1716     var valueT = 0, valueL = 0;
1717
1718     var element = forElement;
1719     do {
1720       valueT += element.offsetTop  || 0;
1721       valueL += element.offsetLeft || 0;
1722
1723       // Safari fix
1724       if (element.offsetParent==document.body)
1725         if (Element.getStyle(element,'position')=='absolute') break;
1726
1727     } while (element = element.offsetParent);
1728
1729     element = forElement;
1730     do {
1731       valueT -= element.scrollTop  || 0;
1732       valueL -= element.scrollLeft || 0;
1733     } while (element = element.parentNode);
1734
1735     return [valueL, valueT];
1736   },
1737
1738   clone: function(source, target) {
1739     var options = Object.extend({
1740       setLeft:    true,
1741       setTop:     true,
1742       setWidth:   true,
1743       setHeight:  true,
1744       offsetTop:  0,
1745       offsetLeft: 0
1746     }, arguments[2] || {})
1747
1748     // find page position of source
1749     source = $(source);
1750     var p = Position.page(source);
1751
1752     // find coordinate system to use
1753     target = $(target);
1754     var delta = [0, 0];
1755     var parent = null;
1756     // delta [0,0] will do fine with position: fixed elements,
1757     // position:absolute needs offsetParent deltas
1758     if (Element.getStyle(target,'position') == 'absolute') {
1759       parent = Position.offsetParent(target);
1760       delta = Position.page(parent);
1761     }
1762
1763     // correct by body offsets (fixes Safari)
1764     if (parent == document.body) {
1765       delta[0] -= document.body.offsetLeft;
1766       delta[1] -= document.body.offsetTop;
1767     }
1768
1769     // set position
1770     if(options.setLeft)   target.style.left  = (p[0] - delta[0] + options.offsetLeft) + 'px';
1771     if(options.setTop)    target.style.top   = (p[1] - delta[1] + options.offsetTop) + 'px';
1772     if(options.setWidth)  target.style.width = source.offsetWidth + 'px';
1773     if(options.setHeight) target.style.height = source.offsetHeight + 'px';
1774   },
1775
1776   absolutize: function(element) {
1777     element = $(element);
1778     if (element.style.position == 'absolute') return;
1779     Position.prepare();
1780
1781     var offsets = Position.positionedOffset(element);
1782     var top     = offsets[1];
1783     var left    = offsets[0];
1784     var width   = element.clientWidth;
1785     var height  = element.clientHeight;
1786
1787     element._originalLeft   = left - parseFloat(element.style.left  || 0);
1788     element._originalTop    = top  - parseFloat(element.style.top || 0);
1789     element._originalWidth  = element.style.width;
1790     element._originalHeight = element.style.height;
1791
1792     element.style.position = 'absolute';
1793     element.style.top    = top + 'px';;
1794     element.style.left   = left + 'px';;
1795     element.style.width  = width + 'px';;
1796     element.style.height = height + 'px';;
1797   },
1798
1799   relativize: function(element) {
1800     element = $(element);
1801     if (element.style.position == 'relative') return;
1802     Position.prepare();
1803
1804     element.style.position = 'relative';
1805     var top  = parseFloat(element.style.top  || 0) - (element._originalTop || 0);
1806     var left = parseFloat(element.style.left || 0) - (element._originalLeft || 0);
1807
1808     element.style.top    = top + 'px';
1809     element.style.left   = left + 'px';
1810     element.style.height = element._originalHeight;
1811     element.style.width  = element._originalWidth;
1812   }
1813 }
1814
1815 // Safari returns margins on body which is incorrect if the child is absolutely
1816 // positioned.  For performance reasons, redefine Position.cumulativeOffset for
1817 // KHTML/WebKit only.
1818 if (/Konqueror|Safari|KHTML/.test(navigator.userAgent)) {
1819   Position.cumulativeOffset = function(element) {
1820     var valueT = 0, valueL = 0;
1821     do {
1822       valueT += element.offsetTop  || 0;
1823       valueL += element.offsetLeft || 0;
1824       if (element.offsetParent == document.body)
1825         if (Element.getStyle(element, 'position') == 'absolute') break;
1826
1827       element = element.offsetParent;
1828     } while (element);
1829
1830     return [valueL, valueT];
1831   }
1832 }
1833 </script>
1834 <script type="text/javascript">
1835 /* code modified from ColdFusion's cfdump code */
1836 /* code modified from original dBug */
1837 dBug = new Object();
1838 dBug.toggleRow = function(source) {
1839                 var source = Event.element(source);
1840                 var target=(document.all) ? source.parentElement.cells[1] : source.parentNode.lastChild
1841                 dBug.toggleTarget(target,dBug.toggleSource(source));
1842         }
1843        
1844 dBug.toggleSource = function(source) {
1845                 if (source.style.fontStyle=='italic') {
1846                         source.style.fontStyle='normal';
1847                         source.title='click to collapse';
1848                         return 'open';
1849                 } else {
1850                         source.style.fontStyle='italic';
1851                         source.title='click to expand';
1852                         return 'closed';
1853                 }
1854         }
1855
1856 dBug.toggleTarget = function(target,switchToState) {
1857                 target.style.display=(switchToState=='open') ? '' : 'none';
1858         }
1859
1860 dBug.toggleTable = function(source) {
1861                 var source = Event.element(source);
1862                 var switchToState=dBug.toggleSource(source);
1863                 if(document.all) {
1864                         var table=source.parentElement.parentElement;
1865                         for(var i=1;i<table.rows.length;i++) {
1866                                 target=table.rows[i];
1867                                 dBug.toggleTarget(target,switchToState);
1868                         }
1869                 }
1870                 else {
1871                         var table=source.parentNode.parentNode;
1872                         for (var i=1;i<table.childNodes.length;i++) {
1873                                 target=table.childNodes[i];
1874                                 if(target.style) {
1875                                         dBug.toggleTarget(target,switchToState);
1876                                 }
1877                         }
1878                 }
1879         }
1880
1881 dBug.attachHandlers = function(cls, mtd) {
1882                 $A(document.getElementsByClassName(cls)).each(
1883                         function (td) {
1884                                         Event.observe( td, 'click', mtd );
1885                                         Event.observe( td, 'mouseover',
1886                                                 function( ev ) {
1887                                                         el = Event.element(ev);
1888                                                         el.style.cursor = 'pointer';
1889                                                 }
1890                                         );
1891                                         Event.observe( td, 'mouseout',
1892                                                 function( ev ) {
1893                                                         el = Event.element(ev);
1894                                                         el.style.cursor = 'auto';
1895                                                 }
1896                                         );
1897                                 }
1898                 );
1899         }
1900
1901 dBug.initialize = function() {
1902                 $A(dBug.types).each(
1903                         function (str) {
1904                                 dBug.attachHandlers( "dBug_" + str + "Header", dBug.toggleTable );
1905                                 dBug.attachHandlers( "dBug_" + str + "Key", dBug.toggleRow );
1906                         }
1907                 );
1908         }
1909
1910 dBug.types = ['resource', 'object', 'array', 'boolean', 'gd', 'xml',
1911         'fbsql', 'mssql', 'msql', 'pgsql', 'sybase-db', 'sybase-ct', 'mysql'];
1912
1913
1914 Event.observe( window, 'load', dBug.initialize );
1915 </script></head><body>
1916
1917 <table class="dBug_array" cellpadding="3" cellspacing="2">
1918                                 <tbody><tr>
1919                                         <td style="cursor: auto;" class="dBug_arrayHeader" colspan="2">array (430)</td>
1920                                 </tr><tr>
1921                                 <td style="cursor: auto;" class="dBug_arrayKey" valign="top">SGL_START_TIME</td>
1922                                 <td>1.1619959935E+012</td>
1923 </tr>
1924 <tr>
1925                                 <td class="dBug_arrayKey" valign="top">SGL_CACHE_LIBS</td>
1926                                 <td>FALSE</td>
1927 </tr>
1928 <tr>
1929                                 <td class="dBug_arrayKey" valign="top">SGL_INSTALLED</td>
1930                                 <td>TRUE</td>
1931 </tr>
1932 <tr>
1933                                 <td class="dBug_arrayKey" valign="top">SGL_SERVER_NAME</td>
1934                                 <td>localhost</td>
1935 </tr>
1936 <tr>
1937                                 <td class="dBug_arrayKey" valign="top">SGL_PATH</td>
1938                                 <td>C:\bin\xampp\htdocs\seagull</td>
1939 </tr>
1940 <tr>
1941                                 <td class="dBug_arrayKey" valign="top">SGL_LIB_PEAR_DIR</td>
1942                                 <td>C:\bin\xampp\htdocs\seagull/lib/pear</td>
1943 </tr>
1944 <tr>
1945                                 <td class="dBug_arrayKey" valign="top">SGL_VAR_DIR</td>
1946                                 <td>C:\bin\xampp\htdocs\seagull/var</td>
1947 </tr>
1948 <tr>
1949                                 <td class="dBug_arrayKey" valign="top">SGL_ETC_DIR</td>
1950                                 <td>C:\bin\xampp\htdocs\seagull/etc</td>
1951 </tr>
1952 <tr>
1953                                 <td class="dBug_arrayKey" valign="top">SGL_APP_ROOT</td>
1954                                 <td>C:\bin\xampp\htdocs\seagull</td>
1955 </tr>
1956 <tr>
1957                                 <td class="dBug_arrayKey" valign="top">SGL_LOG_DIR</td>
1958                                 <td>C:\bin\xampp\htdocs\seagull/var/log</td>
1959 </tr>
1960 <tr>
1961                                 <td class="dBug_arrayKey" valign="top">SGL_TMP_DIR</td>
1962                                 <td>C:\bin\xampp\htdocs\seagull/var/tmp</td>
1963 </tr>
1964 <tr>
1965                                 <td class="dBug_arrayKey" valign="top">SGL_CACHE_DIR</td>
1966                                 <td>C:\bin\xampp\htdocs\seagull/var/cache</td>
1967 </tr>
1968 <tr>
1969                                 <td class="dBug_arrayKey" valign="top">SGL_LIB_DIR</td>
1970                                 <td>C:\bin\xampp\htdocs\seagull/lib</td>
1971 </tr>
1972 <tr>
1973                                 <td class="dBug_arrayKey" valign="top">SGL_ENT_DIR</td>
1974                                 <td>C:\bin\xampp\htdocs\seagull/var/cache/entities</td>
1975 </tr>
1976 <tr>
1977                                 <td class="dBug_arrayKey" valign="top">SGL_DAT_DIR</td>
1978                                 <td>C:\bin\xampp\htdocs\seagull/lib/data</td>
1979 </tr>
1980 <tr>
1981                                 <td class="dBug_arrayKey" valign="top">SGL_CORE_DIR</td>
1982                                 <td>C:\bin\xampp\htdocs\seagull/lib/SGL</td>
1983 </tr>
1984 <tr>
1985                                 <td class="dBug_arrayKey" valign="top">SGL_ERROR_INVALIDARGS</td>
1986                                 <td>-101</td>
1987 </tr>
1988 <tr>
1989                                 <td class="dBug_arrayKey" valign="top">SGL_ERROR_INVALIDCONFIG</td>
1990                                 <td>-102</td>
1991 </tr>
1992 <tr>
1993                                 <td class="dBug_arrayKey" valign="top">SGL_ERROR_NODATA</td>
1994                                 <td>-103</td>
1995 </tr>
1996 <tr>
1997                                 <td class="dBug_arrayKey" valign="top">SGL_ERROR_NOCLASS</td>
1998                                 <td>-104</td>
1999 </tr>
2000 <tr>
2001                                 <td class="dBug_arrayKey" valign="top">SGL_ERROR_NOMETHOD</td>
2002                                 <td>-105</td>
2003 </tr>
2004 <tr>
2005                                 <td class="dBug_arrayKey" valign="top">SGL_ERROR_NOAFFECTEDROWS</td>
2006                                 <td>-106</td>
2007 </tr>
2008 <tr>
2009                                 <td class="dBug_arrayKey" valign="top">SGL_ERROR_NOTSUPPORTED</td>
2010                                 <td>-107</td>
2011 </tr>
2012 <tr>
2013                                 <td class="dBug_arrayKey" valign="top">SGL_ERROR_INVALIDCALL</td>
2014                                 <td>-108</td>
2015 </tr>
2016 <tr>
2017                                 <td class="dBug_arrayKey" valign="top">SGL_ERROR_INVALIDAUTH</td>
2018                                 <td>-109</td>
2019 </tr>
2020 <tr>
2021                                 <td class="dBug_arrayKey" valign="top">SGL_ERROR_EMAILFAILURE</td>
2022                                 <td>-110</td>
2023 </tr>
2024 <tr>
2025                                 <td class="dBug_arrayKey" valign="top">SGL_ERROR_DBFAILURE</td>
2026                                 <td>-111</td>
2027 </tr>
2028 <tr>
2029                                 <td class="dBug_arrayKey" valign="top">SGL_ERROR_DBTRANSACTIONFAILURE</td>
2030                                 <td>-112</td>
2031 </tr>
2032 <tr>
2033                                 <td class="dBug_arrayKey" valign="top">SGL_ERROR_BANNEDUSER</td>
2034                                 <td>-113</td>
2035 </tr>
2036 <tr>
2037                                 <td class="dBug_arrayKey" valign="top">SGL_ERROR_NOFILE</td>
2038                                 <td>-114</td>
2039 </tr>
2040 <tr>
2041                                 <td class="dBug_arrayKey" valign="top">SGL_ERROR_INVALIDFILEPERMS</td>
2042                                 <td>-115</td>
2043 </tr>
2044 <tr>
2045                                 <td class="dBug_arrayKey" valign="top">SGL_ERROR_INVALIDSESSION</td>
2046                                 <td>-116</td>
2047 </tr>
2048 <tr>
2049                                 <td class="dBug_arrayKey" valign="top">SGL_ERROR_INVALIDPOST</td>
2050                                 <td>-117</td>
2051 </tr>
2052 <tr>
2053                                 <td class="dBug_arrayKey" valign="top">SGL_ERROR_INVALIDTRANSLATION</td>
2054                                 <td>-118</td>
2055 </tr>
2056 <tr>
2057                                 <td class="dBug_arrayKey" valign="top">SGL_ERROR_FILEUNWRITABLE</td>
2058                                 <td>-119</td>
2059 </tr>
2060 <tr>
2061                                 <td class="dBug_arrayKey" valign="top">SGL_ERROR_INVALIDMETHODPERMS</td>
2062                                 <td>-120</td>
2063 </tr>
2064 <tr>
2065                                 <td class="dBug_arrayKey" valign="top">SGL_ERROR_INVALIDREQUEST</td>
2066                                 <td>-121</td>
2067 </tr>
2068 <tr>
2069                                 <td class="dBug_arrayKey" valign="top">SGL_ERROR_INVALIDTYPE</td>
2070                                 <td>-122</td>
2071 </tr>
2072 <tr>
2073                                 <td class="dBug_arrayKey" valign="top">SGL_ERROR_RECURSION</td>
2074                                 <td>-123</td>
2075 </tr>
2076 <tr>
2077                                 <td class="dBug_arrayKey" valign="top">SGL_MESSAGE_ERROR</td>
2078                                 <td>0</td>
2079 </tr>
2080 <tr>
2081                                 <td class="dBug_arrayKey" valign="top">SGL_MESSAGE_INFO</td>
2082                                 <td>1</td>
2083 </tr>
2084 <tr>
2085                                 <td class="dBug_arrayKey" valign="top">SGL_MESSAGE_WARNING</td>
2086                                 <td>2</td>
2087 </tr>
2088 <tr>
2089                                 <td class="dBug_arrayKey" valign="top">SGL_SORTBY_GRP</td>
2090                                 <td>1</td>
2091 </tr>
2092 <tr>
2093                                 <td class="dBug_arrayKey" valign="top">SGL_SORTBY_USER</td>
2094                                 <td>2</td>
2095 </tr>
2096 <tr>
2097                                 <td class="dBug_arrayKey" valign="top">SGL_SORTBY_ORG</td>
2098                                 <td>3</td>
2099 </tr>
2100 <tr>
2101                                 <td class="dBug_arrayKey" valign="top">SGL_ANY_ROLE</td>
2102                                 <td>-2</td>
2103 </tr>
2104 <tr>
2105                                 <td class="dBug_arrayKey" valign="top">SGL_UNASSIGNED</td>
2106                                 <td>-1</td>
2107 </tr>
2108 <tr>
2109                                 <td class="dBug_arrayKey" valign="top">SGL_GUEST</td>
2110                                 <td>0</td>
2111 </tr>
2112 <tr>
2113                                 <td class="dBug_arrayKey" valign="top">SGL_ADMIN</td>
2114                                 <td>1</td>
2115 </tr>
2116 <tr>
2117                                 <td class="dBug_arrayKey" valign="top">SGL_MEMBER</td>
2118                                 <td>2</td>
2119 </tr>
2120 <tr>
2121                                 <td class="dBug_arrayKey" valign="top">SGL_STATUS_DELETED</td>
2122                                 <td>0</td>
2123 </tr>
2124 <tr>
2125                                 <td class="dBug_arrayKey" valign="top">SGL_STATUS_FOR_APPROVAL</td>
2126                                 <td>1</td>
2127 </tr>
2128 <tr>
2129                                 <td class="dBug_arrayKey" valign="top">SGL_STATUS_BEING_EDITED</td>
2130                                 <td>2</td>
2131 </tr>
2132 <tr>
2133                                 <td class="dBug_arrayKey" valign="top">SGL_STATUS_APPROVED</td>
2134                                 <td>3</td>
2135 </tr>
2136 <tr>
2137                                 <td class="dBug_arrayKey" valign="top">SGL_STATUS_PUBLISHED</td>
2138                                 <td>4</td>
2139 </tr>
2140 <tr>
2141                                 <td class="dBug_arrayKey" valign="top">SGL_STATUS_ARCHIVED</td>
2142                                 <td>5</td>
2143 </tr>
2144 <tr>
2145                                 <td class="dBug_arrayKey" valign="top">SGL_RET_NAME_VALUE</td>
2146                                 <td>1</td>
2147 </tr>
2148 <tr>
2149                                 <td class="dBug_arrayKey" valign="top">SGL_RET_ID_VALUE</td>
2150                                 <td>2</td>
2151 </tr>
2152 <tr>
2153                                 <td class="dBug_arrayKey" valign="top">SGL_RET_ARRAY</td>
2154                                 <td>3</td>
2155 </tr>
2156 <tr>
2157                                 <td class="dBug_arrayKey" valign="top">SGL_RET_STRING</td>
2158                                 <td>4</td>
2159 </tr>
2160 <tr>
2161                                 <td class="dBug_arrayKey" valign="top">SGL_CHAR</td>
2162                                 <td>1</td>
2163 </tr>
2164 <tr>
2165                                 <td class="dBug_arrayKey" valign="top">SGL_WORD</td>
2166                                 <td>2</td>
2167 </tr>
2168 <tr>
2169                                 <td class="dBug_arrayKey" valign="top">SGL_LANG_ID_SGL</td>
2170                                 <td>1</td>
2171 </tr>
2172 <tr>
2173                                 <td class="dBug_arrayKey" valign="top">SGL_LANG_ID_TRANS2</td>
2174                                 <td>2</td>
2175 </tr>
2176 <tr>
2177                                 <td class="dBug_arrayKey" valign="top">SGL_ANY_SECTION</td>
2178                                 <td>0</td>
2179 </tr>
2180 <tr>
2181                                 <td class="dBug_arrayKey" valign="top">SGL_NEXT_ID</td>
2182                                 <td>0</td>
2183 </tr>
2184 <tr>
2185                                 <td class="dBug_arrayKey" valign="top">SGL_NOTICES_DISABLED</td>
2186                                 <td>0</td>
2187 </tr>
2188 <tr>
2189                                 <td class="dBug_arrayKey" valign="top">SGL_NOTICES_ENABLED</td>
2190                                 <td>1</td>
2191 </tr>
2192 <tr>
2193                                 <td class="dBug_arrayKey" valign="top">SGL_DEBUG_SHOW_LINE_NUMBERS</td>
2194                                 <td>FALSE</td>
2195 </tr>
2196 <tr>
2197                                 <td class="dBug_arrayKey" valign="top">DB_DATAOBJECT_NO_OVERLOAD</td>
2198                                 <td>TRUE</td>
2199 </tr>
2200 <tr>
2201                                 <td class="dBug_arrayKey" valign="top">SGL_CENSOR_DISABLE</td>
2202                                 <td>0</td>
2203 </tr>
2204 <tr>
2205                                 <td class="dBug_arrayKey" valign="top">SGL_CENSOR_EXACT_MATCH</td>
2206                                 <td>1</td>
2207 </tr>
2208 <tr>
2209                                 <td class="dBug_arrayKey" valign="top">SGL_CENSOR_WORD_BEGINNING</td>
2210                                 <td>2</td>
2211 </tr>
2212 <tr>
2213                                 <td class="dBug_arrayKey" valign="top">SGL_CENSOR_WORD_FRAGMENT</td>
2214                                 <td>3</td>
2215 </tr>
2216 <tr>
2217                                 <td class="dBug_arrayKey" valign="top">SGL_SESSION_UPDATE_WINDOW</td>
2218                                 <td>10</td>
2219 </tr>
2220 <tr>
2221                                 <td class="dBug_arrayKey" valign="top">SGL_DSN_ARRAY</td>
2222                                 <td>0</td>
2223 </tr>
2224 <tr>
2225                                 <td class="dBug_arrayKey" valign="top">SGL_DSN_STRING</td>
2226                                 <td>1</td>
2227 </tr>
2228 <tr>
2229                                 <td class="dBug_arrayKey" valign="top">PEAR_ERROR_RETURN</td>
2230                                 <td>1</td>
2231 </tr>
2232 <tr>
2233                                 <td class="dBug_arrayKey" valign="top">PEAR_ERROR_PRINT</td>
2234                                 <td>2</td>
2235 </tr>
2236 <tr>
2237                                 <td class="dBug_arrayKey" valign="top">PEAR_ERROR_TRIGGER</td>
2238                                 <td>4</td>
2239 </tr>
2240 <tr>
2241                                 <td class="dBug_arrayKey" valign="top">PEAR_ERROR_DIE</td>
2242                                 <td>8</td>
2243 </tr>
2244 <tr>
2245                                 <td class="dBug_arrayKey" valign="top">PEAR_ERROR_CALLBACK</td>
2246                                 <td>16</td>
2247 </tr>
2248 <tr>
2249                                 <td class="dBug_arrayKey" valign="top">PEAR_ERROR_EXCEPTION</td>
2250                                 <td>32</td>
2251 </tr>
2252 <tr>
2253                                 <td class="dBug_arrayKey" valign="top">PEAR_ZE2</td>
2254                                 <td>TRUE</td>
2255 </tr>
2256 <tr>
2257                                 <td class="dBug_arrayKey" valign="top">OS_WINDOWS</td>
2258                                 <td>TRUE</td>
2259 </tr>
2260 <tr>
2261                                 <td class="dBug_arrayKey" valign="top">OS_UNIX</td>
2262                                 <td>FALSE</td>
2263 </tr>
2264 <tr>
2265                                 <td class="dBug_arrayKey" valign="top">PEAR_OS</td>
2266                                 <td>Windows</td>
2267 </tr>
2268 <tr>
2269                                 <td class="dBug_arrayKey" valign="top">DB_OK</td>
2270                                 <td>1</td>
2271 </tr>
2272 <tr>
2273                                 <td class="dBug_arrayKey" valign="top">DB_ERROR</td>
2274                                 <td>-1</td>
2275 </tr>
2276 <tr>
2277                                 <td class="dBug_arrayKey" valign="top">DB_ERROR_SYNTAX</td>
2278                                 <td>-2</td>
2279 </tr>
2280 <tr>
2281                                 <td class="dBug_arrayKey" valign="top">DB_ERROR_CONSTRAINT</td>
2282                                 <td>-3</td>
2283 </tr>
2284 <tr>
2285                                 <td class="dBug_arrayKey" valign="top">DB_ERROR_NOT_FOUND</td>
2286                                 <td>-4</td>
2287 </tr>
2288 <tr>
2289                                 <td class="dBug_arrayKey" valign="top">DB_ERROR_ALREADY_EXISTS</td>
2290                                 <td>-5</td>
2291 </tr>
2292 <tr>
2293                                 <td class="dBug_arrayKey" valign="top">DB_ERROR_UNSUPPORTED</td>
2294                                 <td>-6</td>
2295 </tr>
2296 <tr>
2297                                 <td class="dBug_arrayKey" valign="top">DB_ERROR_MISMATCH</td>
2298                                 <td>-7</td>
2299 </tr>
2300 <tr>
2301                                 <td class="dBug_arrayKey" valign="top">DB_ERROR_INVALID</td>
2302                                 <td>-8</td>
2303 </tr>
2304 <tr>
2305                                 <td class="dBug_arrayKey" valign="top">DB_ERROR_NOT_CAPABLE</td>
2306                                 <td>-9</td>
2307 </tr>
2308 <tr>
2309                                 <td class="dBug_arrayKey" valign="top">DB_ERROR_TRUNCATED</td>
2310                                 <td>-10</td>
2311 </tr>
2312 <tr>
2313                                 <td class="dBug_arrayKey" valign="top">DB_ERROR_INVALID_NUMBER</td>
2314                                 <td>-11</td>
2315 </tr>
2316 <tr>
2317                                 <td class="dBug_arrayKey" valign="top">DB_ERROR_INVALID_DATE</td>
2318                                 <td>-12</td>
2319 </tr>
2320 <tr>
2321                                 <td class="dBug_arrayKey" valign="top">DB_ERROR_DIVZERO</td>
2322                                 <td>-13</td>
2323 </tr>
2324 <tr>
2325                                 <td class="dBug_arrayKey" valign="top">DB_ERROR_NODBSELECTED</td>
2326                                 <td>-14</td>
2327 </tr>
2328 <tr>
2329                                 <td class="dBug_arrayKey" valign="top">DB_ERROR_CANNOT_CREATE</td>
2330                                 <td>-15</td>
2331 </tr>
2332 <tr>
2333                                 <td class="dBug_arrayKey" valign="top">DB_ERROR_CANNOT_DROP</td>
2334                                 <td>-17</td>
2335 </tr>
2336 <tr>
2337                                 <td class="dBug_arrayKey" valign="top">DB_ERROR_NOSUCHTABLE</td>
2338                                 <td>-18</td>
2339 </tr>
2340 <tr>
2341                                 <td class="dBug_arrayKey" valign="top">DB_ERROR_NOSUCHFIELD</td>
2342                                 <td>-19</td>
2343 </tr>
2344 <tr>
2345                                 <td class="dBug_arrayKey" valign="top">DB_ERROR_NEED_MORE_DATA</td>
2346                                 <td>-20</td>
2347 </tr>
2348 <tr>
2349                                 <td class="dBug_arrayKey" valign="top">DB_ERROR_NOT_LOCKED</td>
2350                                 <td>-21</td>
2351 </tr>
2352 <tr>
2353                                 <td class="dBug_arrayKey" valign="top">DB_ERROR_VALUE_COUNT_ON_ROW</td>
2354                                 <td>-22</td>
2355 </tr>
2356 <tr>
2357                                 <td class="dBug_arrayKey" valign="top">DB_ERROR_INVALID_DSN</td>
2358                                 <td>-23</td>
2359 </tr>
2360 <tr>
2361                                 <td class="dBug_arrayKey" valign="top">DB_ERROR_CONNECT_FAILED</td>
2362                                 <td>-24</td>
2363 </tr>
2364 <tr>
2365                                 <td class="dBug_arrayKey" valign="top">DB_ERROR_EXTENSION_NOT_FOUND</td>
2366                                 <td>-25</td>
2367 </tr>
2368 <tr>
2369                                 <td class="dBug_arrayKey" valign="top">DB_ERROR_ACCESS_VIOLATION</td>
2370                                 <td>-26</td>
2371 </tr>
2372 <tr>
2373                                 <td class="dBug_arrayKey" valign="top">DB_ERROR_NOSUCHDB</td>
2374                                 <td>-27</td>
2375 </tr>
2376 <tr>
2377                                 <td class="dBug_arrayKey" valign="top">DB_ERROR_CONSTRAINT_NOT_NULL</td>
2378                                 <td>-29</td>
2379 </tr>
2380 <tr>
2381                                 <td class="dBug_arrayKey" valign="top">DB_PARAM_SCALAR</td>
2382                                 <td>1</td>
2383 </tr>
2384 <tr>
2385                                 <td class="dBug_arrayKey" valign="top">DB_PARAM_OPAQUE</td>
2386                                 <td>2</td>
2387 </tr>
2388 <tr>
2389                                 <td class="dBug_arrayKey" valign="top">DB_PARAM_MISC</td>
2390                                 <td>3</td>
2391 </tr>
2392 <tr>
2393                                 <td class="dBug_arrayKey" valign="top">DB_BINMODE_PASSTHRU</td>
2394                                 <td>1</td>
2395 </tr>
2396 <tr>
2397                                 <td class="dBug_arrayKey" valign="top">DB_BINMODE_RETURN</td>
2398                                 <td>2</td>
2399 </tr>
2400 <tr>
2401                                 <td class="dBug_arrayKey" valign="top">DB_BINMODE_CONVERT</td>
2402                                 <td>3</td>
2403 </tr>
2404 <tr>
2405                                 <td class="dBug_arrayKey" valign="top">DB_FETCHMODE_DEFAULT</td>
2406                                 <td>0</td>
2407 </tr>
2408 <tr>
2409                                 <td class="dBug_arrayKey" valign="top">DB_FETCHMODE_ORDERED</td>
2410                                 <td>1</td>
2411 </tr>
2412 <tr>
2413                                 <td class="dBug_arrayKey" valign="top">DB_FETCHMODE_ASSOC</td>
2414                                 <td>2</td>
2415 </tr>
2416 <tr>
2417                                 <td class="dBug_arrayKey" valign="top">DB_FETCHMODE_OBJECT</td>
2418                                 <td>3</td>
2419 </tr>
2420 <tr>
2421                                 <td class="dBug_arrayKey" valign="top">DB_FETCHMODE_FLIPPED</td>
2422                                 <td>4</td>
2423 </tr>
2424 <tr>
2425                                 <td class="dBug_arrayKey" valign="top">DB_GETMODE_ORDERED</td>
2426                                 <td>1</td>
2427 </tr>
2428 <tr>
2429                                 <td class="dBug_arrayKey" valign="top">DB_GETMODE_ASSOC</td>
2430                                 <td>2</td>
2431 </tr>
2432 <tr>
2433                                 <td class="dBug_arrayKey" valign="top">DB_GETMODE_FLIPPED</td>
2434                                 <td>4</td>
2435 </tr>
2436 <tr>
2437                                 <td class="dBug_arrayKey" valign="top">DB_TABLEINFO_ORDER</td>
2438                                 <td>1</td>
2439 </tr>
2440 <tr>
2441                                 <td class="dBug_arrayKey" valign="top">DB_TABLEINFO_ORDERTABLE</td>
2442                                 <td>2</td>
2443 </tr>
2444 <tr>
2445                                 <td class="dBug_arrayKey" valign="top">DB_TABLEINFO_FULL</td>
2446                                 <td>3</td>
2447 </tr>
2448 <tr>
2449                                 <td class="dBug_arrayKey" valign="top">DB_AUTOQUERY_INSERT</td>
2450                                 <td>1</td>
2451 </tr>
2452 <tr>
2453                                 <td class="dBug_arrayKey" valign="top">DB_AUTOQUERY_UPDATE</td>
2454                                 <td>2</td>
2455 </tr>
2456 <tr>
2457                                 <td class="dBug_arrayKey" valign="top">DB_PORTABILITY_NONE</td>
2458                                 <td>0</td>
2459 </tr>
2460 <tr>
2461                                 <td class="dBug_arrayKey" valign="top">DB_PORTABILITY_LOWERCASE</td>
2462                                 <td>1</td>
2463 </tr>
2464 <tr>
2465                                 <td class="dBug_arrayKey" valign="top">DB_PORTABILITY_RTRIM</td>
2466                                 <td>2</td>
2467 </tr>
2468 <tr>
2469                                 <td class="dBug_arrayKey" valign="top">DB_PORTABILITY_DELETE_COUNT</td>
2470                                 <td>4</td>
2471 </tr>
2472 <tr>
2473                                 <td class="dBug_arrayKey" valign="top">DB_PORTABILITY_NUMROWS</td>
2474                                 <td>8</td>
2475 </tr>
2476 <tr>
2477                                 <td class="dBug_arrayKey" valign="top">DB_PORTABILITY_ERRORS</td>
2478                                 <td>16</td>
2479 </tr>
2480 <tr>
2481                                 <td class="dBug_arrayKey" valign="top">DB_PORTABILITY_NULL_TO_EMPTY</td>
2482                                 <td>32</td>
2483 </tr>
2484 <tr>
2485                                 <td class="dBug_arrayKey" valign="top">DB_PORTABILITY_ALL</td>
2486                                 <td>63</td>
2487 </tr>
2488 <tr>
2489                                 <td class="dBug_arrayKey" valign="top">SGL_WEB_ROOT</td>
2490                                 <td>C:\bin\xampp\htdocs\seagull/www</td>
2491 </tr>
2492 <tr>
2493                                 <td class="dBug_arrayKey" valign="top">SGL_THEME_DIR</td>
2494                                 <td>C:\bin\xampp\htdocs\seagull/www/themes</td>
2495 </tr>
2496 <tr>
2497                                 <td class="dBug_arrayKey" valign="top">SGL_MOD_DIR</td>
2498                                 <td>C:\bin\xampp\htdocs\seagull/modules</td>
2499 </tr>
2500 <tr>
2501                                 <td class="dBug_arrayKey" valign="top">SGL_UPLOAD_DIR</td>
2502                                 <td>C:\bin\xampp\htdocs\seagull/var/uploads</td>
2503 </tr>
2504 <tr>
2505                                 <td class="dBug_arrayKey" valign="top">PEAR_LOG_EMERG</td>
2506                                 <td>0</td>
2507 </tr>
2508 <tr>
2509                                 <td class="dBug_arrayKey" valign="top">PEAR_LOG_ALERT</td>
2510                                 <td>1</td>
2511 </tr>
2512 <tr>
2513                                 <td class="dBug_arrayKey" valign="top">PEAR_LOG_CRIT</td>
2514                                 <td>2</td>
2515 </tr>
2516 <tr>
2517                                 <td class="dBug_arrayKey" valign="top">PEAR_LOG_ERR</td>
2518                                 <td>3</td>
2519 </tr>
2520 <tr>
2521                                 <td class="dBug_arrayKey" valign="top">PEAR_LOG_WARNING</td>
2522                                 <td>4</td>
2523 </tr>
2524 <tr>
2525                                 <td class="dBug_arrayKey" valign="top">PEAR_LOG_NOTICE</td>
2526                                 <td>5</td>
2527 </tr>
2528 <tr>
2529                                 <td class="dBug_arrayKey" valign="top">PEAR_LOG_INFO</td>
2530                                 <td>6</td>
2531 </tr>
2532 <tr>
2533                                 <td class="dBug_arrayKey" valign="top">PEAR_LOG_DEBUG</td>
2534                                 <td>7</td>
2535 </tr>
2536 <tr>
2537                                 <td class="dBug_arrayKey" valign="top">SGL_PROFILING_ENABLED</td>
2538                                 <td>FALSE</td>
2539 </tr>
2540 <tr>
2541                                 <td class="dBug_arrayKey" valign="top">SGL_SEAGULL_VERSION</td>
2542                                 <td>0.7.0</td>
2543 </tr>
2544 <tr>
2545                                 <td class="dBug_arrayKey" valign="top">SGL_EMAIL_ADMIN_THRESHOLD</td>
2546                                 <td>0</td>
2547 </tr>
2548 <tr>
2549                                 <td class="dBug_arrayKey" valign="top">SGL_BASE_URL</td>
2550                                 <td>http://localhost/seagull/www</td>
2551 </tr>
2552 <tr>
2553                                 <td class="dBug_arrayKey" valign="top">SGL_INITIALISED</td>
2554                                 <td>TRUE</td>
2555 </tr>
2556 <tr>
2557                                 <td class="dBug_arrayKey" valign="top">CACHE_LITE_ERROR_RETURN</td>
2558                                 <td>1</td>
2559 </tr>
2560 <tr>
2561                                 <td class="dBug_arrayKey" valign="top">CACHE_LITE_ERROR_DIE</td>
2562                                 <td>8</td>
2563 </tr>
2564 <tr>
2565                                 <td class="dBug_arrayKey" valign="top">SGL_MODULE_CONFIG_LOADED</td>
2566                                 <td>TRUE</td>
2567 </tr>
2568 <tr>
2569                                 <td class="dBug_arrayKey" valign="top">SGL_CLIENT_OS</td>
2570                                 <td>Win</td>
2571 </tr>
2572 <tr>
2573                                 <td class="dBug_arrayKey" valign="top">DB_DATAOBJECT_FETCHMODE_ORDERED</td>
2574                                 <td>1</td>
2575 </tr>
2576 <tr>
2577                                 <td class="dBug_arrayKey" valign="top">DB_DATAOBJECT_FETCHMODE_ASSOC</td>
2578                                 <td>2</td>
2579 </tr>
2580 <tr>
2581                                 <td class="dBug_arrayKey" valign="top">DB_DATAOBJECT_INT</td>
2582                                 <td>1</td>
2583 </tr>
2584 <tr>
2585                                 <td class="dBug_arrayKey" valign="top">DB_DATAOBJECT_STR</td>
2586                                 <td>2</td>
2587 </tr>
2588 <tr>
2589                                 <td class="dBug_arrayKey" valign="top">DB_DATAOBJECT_DATE</td>
2590                                 <td>4</td>
2591 </tr>
2592 <tr>
2593                                 <td class="dBug_arrayKey" valign="top">DB_DATAOBJECT_TIME</td>
2594                                 <td>8</td>
2595 </tr>
2596 <tr>
2597                                 <td class="dBug_arrayKey" valign="top">DB_DATAOBJECT_BOOL</td>
2598                                 <td>16</td>
2599 </tr>
2600 <tr>
2601                                 <td class="dBug_arrayKey" valign="top">DB_DATAOBJECT_TXT</td>
2602                                 <td>32</td>
2603 </tr>
2604 <tr>
2605                                 <td class="dBug_arrayKey" valign="top">DB_DATAOBJECT_BLOB</td>
2606                                 <td>64</td>
2607 </tr>
2608 <tr>
2609                                 <td class="dBug_arrayKey" valign="top">DB_DATAOBJECT_NOTNULL</td>
2610                                 <td>128</td>
2611 </tr>
2612 <tr>
2613                                 <td class="dBug_arrayKey" valign="top">DB_DATAOBJECT_MYSQLTIMESTAMP</td>
2614                                 <td>256</td>
2615 </tr>
2616 <tr>
2617                                 <td class="dBug_arrayKey" valign="top">DB_DATAOBJECT_ERROR_INVALIDARGS</td>
2618                                 <td>-1</td>
2619 </tr>
2620 <tr>
2621                                 <td class="dBug_arrayKey" valign="top">DB_DATAOBJECT_ERROR_NODATA</td>
2622                                 <td>-2</td>
2623 </tr>
2624 <tr>
2625                                 <td class="dBug_arrayKey" valign="top">DB_DATAOBJECT_ERROR_INVALIDCONFIG</td>
2626                                 <td>-3</td>
2627 </tr>
2628 <tr>
2629                                 <td class="dBug_arrayKey" valign="top">DB_DATAOBJECT_ERROR_NOCLASS</td>
2630                                 <td>-4</td>
2631 </tr>
2632 <tr>
2633                                 <td class="dBug_arrayKey" valign="top">DB_DATAOBJECT_ERROR_INVALID_CALL</td>
2634                                 <td>-7</td>
2635 </tr>
2636 <tr>
2637                                 <td class="dBug_arrayKey" valign="top">DB_DATAOBJECT_WHEREADD_ONLY</td>
2638                                 <td>TRUE</td>
2639 </tr>
2640 <tr>
2641                                 <td class="dBug_arrayKey" valign="top">SGL_ROLESYNC_ADD</td>
2642                                 <td>1</td>
2643 </tr>
2644 <tr>
2645                                 <td class="dBug_arrayKey" valign="top">SGL_ROLESYNC_REMOVE</td>
2646                                 <td>2</td>
2647 </tr>
2648 <tr>
2649                                 <td class="dBug_arrayKey" valign="top">SGL_ROLESYNC_ADDREMOVE</td>
2650                                 <td>3</td>
2651 </tr>
2652 <tr>
2653                                 <td class="dBug_arrayKey" valign="top">SGL_ROLESYNC_VIEWONLY</td>
2654                                 <td>4</td>
2655 </tr>
2656 <tr>
2657                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_ACCOUNTMGR</td>
2658                                 <td>197</td>
2659 </tr>
2660 <tr>
2661                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_ACCOUNTMGR_CMD_EDIT</td>
2662                                 <td>145</td>
2663 </tr>
2664 <tr>
2665                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_ACCOUNTMGR_CMD_SUMMARY</td>
2666                                 <td>148</td>
2667 </tr>
2668 <tr>
2669                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_ACCOUNTMGR_CMD_UPDATE</td>
2670                                 <td>146</td>
2671 </tr>
2672 <tr>
2673                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_ACCOUNTMGR_CMD_VIEWPROFILE</td>
2674                                 <td>147</td>
2675 </tr>
2676 <tr>
2677                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_ARTICLEMGR</td>
2678                                 <td>135</td>
2679 </tr>
2680 <tr>
2681                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_ARTICLEVIEWMGR</td>
2682                                 <td>136</td>
2683 </tr>
2684 <tr>
2685                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_BLOCKMGR</td>
2686                                 <td>1</td>
2687 </tr>
2688 <tr>
2689                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_BLOCKMGR_CMD_ADD</td>
2690                                 <td>2</td>
2691 </tr>
2692 <tr>
2693                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_BLOCKMGR_CMD_DELETE</td>
2694                                 <td>4</td>
2695 </tr>
2696 <tr>
2697                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_BLOCKMGR_CMD_EDIT</td>
2698                                 <td>3</td>
2699 </tr>
2700 <tr>
2701                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_BLOCKMGR_CMD_INSERT</td>
2702                                 <td>7</td>
2703 </tr>
2704 <tr>
2705                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_BLOCKMGR_CMD_LIST</td>
2706                                 <td>6</td>
2707 </tr>
2708 <tr>
2709                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_BLOCKMGR_CMD_REORDER</td>
2710                                 <td>5</td>
2711 </tr>
2712 <tr>
2713                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_BLOCKMGR_CMD_UPDATE</td>
2714                                 <td>8</td>
2715 </tr>
2716 <tr>
2717                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_BUGMGR</td>
2718                                 <td>25</td>
2719 </tr>
2720 <tr>
2721                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_BUGMGR_CMD_LIST</td>
2722                                 <td>26</td>
2723 </tr>
2724 <tr>
2725                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_BUGMGR_CMD_SEND</td>
2726                                 <td>27</td>
2727 </tr>
2728 <tr>
2729                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_CALENDARMGR</td>
2730                                 <td>45</td>
2731 </tr>
2732 <tr>
2733                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_CONFIGMGR</td>
2734                                 <td>20</td>
2735 </tr>
2736 <tr>
2737                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_CONFIGMGR_CMD_EDIT</td>
2738                                 <td>21</td>
2739 </tr>
2740 <tr>
2741                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_CONFIGMGR_CMD_UPDATE</td>
2742                                 <td>22</td>
2743 </tr>
2744 <tr>
2745                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_CONTACTMGR</td>
2746                                 <td>84</td>
2747 </tr>
2748 <tr>
2749                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_CONTACTMGR_CMD_DELETE</td>
2750                                 <td>86</td>
2751 </tr>
2752 <tr>
2753                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_CONTACTMGR_CMD_INSERT</td>
2754                                 <td>85</td>
2755 </tr>
2756 <tr>
2757                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_CONTACTMGR_CMD_LIST</td>
2758                                 <td>87</td>
2759 </tr>
2760 <tr>
2761                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_CONTACTUSMGR</td>
2762                                 <td>9</td>
2763 </tr>
2764 <tr>
2765                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_CONTACTUSMGR_CMD_LIST</td>
2766                                 <td>11</td>
2767 </tr>
2768 <tr>
2769                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_CONTACTUSMGR_CMD_SEND</td>
2770                                 <td>10</td>
2771 </tr>
2772 <tr>
2773                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_CONTENTTYPEMGR</td>
2774                                 <td>126</td>
2775 </tr>
2776 <tr>
2777                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_CONTENTTYPEMGR_CMD_ADD</td>
2778                                 <td>127</td>
2779 </tr>
2780 <tr>
2781                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_CONTENTTYPEMGR_CMD_DELETE</td>
2782                                 <td>131</td>
2783 </tr>
2784 <tr>
2785                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_CONTENTTYPEMGR_CMD_EDIT</td>
2786                                 <td>129</td>
2787 </tr>
2788 <tr>
2789                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_CONTENTTYPEMGR_CMD_INSERT</td>
2790                                 <td>128</td>
2791 </tr>
2792 <tr>
2793                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_CONTENTTYPEMGR_CMD_LIST</td>
2794                                 <td>132</td>
2795 </tr>
2796 <tr>
2797                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_CONTENTTYPEMGR_CMD_UPDATE</td>
2798                                 <td>130</td>
2799 </tr>
2800 <tr>
2801                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_DEFAULTMGR</td>
2802                                 <td>23</td>
2803 </tr>
2804 <tr>
2805                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_DEFAULTMGR_CMD_LIST</td>
2806                                 <td>24</td>
2807 </tr>
2808 <tr>
2809                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_DOCUMENTMGR</td>
2810                                 <td>137</td>
2811 </tr>
2812 <tr>
2813                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_DOCUMENTORMGR</td>
2814                                 <td>43</td>
2815 </tr>
2816 <tr>
2817                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_DOCUMENTORMGR_CMD_LIST</td>
2818                                 <td>44</td>
2819 </tr>
2820 <tr>
2821                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_EVENTMGR</td>
2822                                 <td>46</td>
2823 </tr>
2824 <tr>
2825                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_FAQMGR</td>
2826                                 <td>50</td>
2827 </tr>
2828 <tr>
2829                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_FAQMGR_CMD_ADD</td>
2830                                 <td>51</td>
2831 </tr>
2832 <tr>
2833                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_FAQMGR_CMD_DELETE</td>
2834                                 <td>55</td>
2835 </tr>
2836 <tr>
2837                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_FAQMGR_CMD_EDIT</td>
2838                                 <td>53</td>
2839 </tr>
2840 <tr>
2841                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_FAQMGR_CMD_INSERT</td>
2842                                 <td>52</td>
2843 </tr>
2844 <tr>
2845                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_FAQMGR_CMD_LIST</td>
2846                                 <td>56</td>
2847 </tr>
2848 <tr>
2849                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_FAQMGR_CMD_REORDER</td>
2850                                 <td>57</td>
2851 </tr>
2852 <tr>
2853                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_FAQMGR_CMD_REORDERUPDATE</td>
2854                                 <td>58</td>
2855 </tr>
2856 <tr>
2857                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_FAQMGR_CMD_UPDATE</td>
2858                                 <td>54</td>
2859 </tr>
2860 <tr>
2861                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_FILEASSOCMGR</td>
2862                                 <td>71</td>
2863 </tr>
2864 <tr>
2865                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_FILEMGR</td>
2866                                 <td>72</td>
2867 </tr>
2868 <tr>
2869                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_FILEMGR_CMD_DOWNLOAD</td>
2870                                 <td>81</td>
2871 </tr>
2872 <tr>
2873                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_FILEMGR_CMD_DOWNLOADZIPPED</td>
2874                                 <td>82</td>
2875 </tr>
2876 <tr>
2877                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_FILEMGR_CMD_VIEW</td>
2878                                 <td>83</td>
2879 </tr>
2880 <tr>
2881                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_GALLERY2MGR</td>
2882                                 <td>59</td>
2883 </tr>
2884 <tr>
2885                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_GALLERY2MGR_CMD_LIST</td>
2886                                 <td>60</td>
2887 </tr>
2888 <tr>
2889                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_GUESTBOOKADMINMGR</td>
2890                                 <td>65</td>
2891 </tr>
2892 <tr>
2893                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_GUESTBOOKADMINMGR_CMD_ADD</td>
2894                                 <td>67</td>
2895 </tr>
2896 <tr>
2897                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_GUESTBOOKADMINMGR_CMD_DELETE</td>
2898                                 <td>69</td>
2899 </tr>
2900 <tr>
2901                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_GUESTBOOKADMINMGR_CMD_INSERT</td>
2902                                 <td>68</td>
2903 </tr>
2904 <tr>
2905                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_GUESTBOOKADMINMGR_CMD_LIST</td>
2906                                 <td>66</td>
2907 </tr>
2908 <tr>
2909                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_GUESTBOOKMGR</td>
2910                                 <td>61</td>
2911 </tr>
2912 <tr>
2913                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_GUESTBOOKMGR_CMD_ADD</td>
2914                                 <td>63</td>
2915 </tr>
2916 <tr>
2917                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_GUESTBOOKMGR_CMD_INSERT</td>
2918                                 <td>64</td>
2919 </tr>
2920 <tr>
2921                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_GUESTBOOKMGR_CMD_LIST</td>
2922                                 <td>62</td>
2923 </tr>
2924 <tr>
2925                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_INSTANTMESSAGEMGR</td>
2926                                 <td>95</td>
2927 </tr>
2928 <tr>
2929                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_INSTANTMESSAGEMGR_CMD_COMPOSE</td>
2930                                 <td>90</td>
2931 </tr>
2932 <tr>
2933                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_INSTANTMESSAGEMGR_CMD_DELETE</td>
2934                                 <td>89</td>
2935 </tr>
2936 <tr>
2937                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_INSTANTMESSAGEMGR_CMD_INBOX</td>
2938                                 <td>94</td>
2939 </tr>
2940 <tr>
2941                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_INSTANTMESSAGEMGR_CMD_INSERT</td>
2942                                 <td>92</td>
2943 </tr>
2944 <tr>
2945                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_INSTANTMESSAGEMGR_CMD_OUTBOX</td>
2946                                 <td>93</td>
2947 </tr>
2948 <tr>
2949                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_INSTANTMESSAGEMGR_CMD_READ</td>
2950                                 <td>88</td>
2951 </tr>
2952 <tr>
2953                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_INSTANTMESSAGEMGR_CMD_REPLY</td>
2954                                 <td>91</td>
2955 </tr>
2956 <tr>
2957                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_INSTANTMESSAGEMGR_CMD_SENDALERT</td>
2958                                 <td>96</td>
2959 </tr>
2960 <tr>
2961                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_LISTMGR</td>
2962                                 <td>108</td>
2963 </tr>
2964 <tr>
2965                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_LISTMGR_CMD_ADDLIST</td>
2966                                 <td>117</td>
2967 </tr>
2968 <tr>
2969                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_LISTMGR_CMD_ADDRESSBOOK</td>
2970                                 <td>111</td>
2971 </tr>
2972 <tr>
2973                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_LISTMGR_CMD_DELETELISTS</td>
2974                                 <td>120</td>
2975 </tr>
2976 <tr>
2977                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_LISTMGR_CMD_DELETESUBSCRIBER</td>
2978                                 <td>115</td>
2979 </tr>
2980 <tr>
2981                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_LISTMGR_CMD_EDITLIST</td>
2982                                 <td>118</td>
2983 </tr>
2984 <tr>
2985                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_LISTMGR_CMD_EDITSUBSCRIBER</td>
2986                                 <td>113</td>
2987 </tr>
2988 <tr>
2989                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_LISTMGR_CMD_LIST</td>
2990                                 <td>109</td>
2991 </tr>
2992 <tr>
2993                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_LISTMGR_CMD_LISTLISTS</td>
2994                                 <td>116</td>
2995 </tr>
2996 <tr>
2997                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_LISTMGR_CMD_LISTSUBSCRIBERS</td>
2998                                 <td>112</td>
2999 </tr>
3000 <tr>
3001                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_LISTMGR_CMD_SEND</td>
3002                                 <td>110</td>
3003 </tr>
3004 <tr>
3005                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_LISTMGR_CMD_UPDATELIST</td>
3006                                 <td>119</td>
3007 </tr>
3008 <tr>
3009                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_LISTMGR_CMD_UPDATESUBSCRIBER</td>
3010                                 <td>114</td>
3011 </tr>
3012 <tr>
3013                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_LOCATIONMGR</td>
3014                                 <td>47</td>
3015 </tr>
3016 <tr>
3017                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_LOGINMGR</td>
3018                                 <td>198</td>
3019 </tr>
3020 <tr>
3021                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_LOGINMGR_CMD_LIST</td>
3022                                 <td>150</td>
3023 </tr>
3024 <tr>
3025                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_LOGINMGR_CMD_LOGIN</td>
3026                                 <td>149</td>
3027 </tr>
3028 <tr>
3029                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_LOGINMGR_CMD_LOGOUT</td>
3030                                 <td>199</td>
3031 </tr>
3032 <tr>
3033                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_MAINTENANCEMGR</td>
3034                                 <td>34</td>
3035 </tr>
3036 <tr>
3037                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_MAINTENANCEMGR_CMD_APPEND</td>
3038                                 <td>30</td>
3039 </tr>
3040 <tr>
3041                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_MAINTENANCEMGR_CMD_CHECKALLMODULES</td>
3042                                 <td>36</td>
3043 </tr>
3044 <tr>
3045                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_MAINTENANCEMGR_CMD_CHECKLATESTVERSION</td>
3046                                 <td>39</td>
3047 </tr>
3048 <tr>
3049                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_MAINTENANCEMGR_CMD_CLEARCACHE</td>
3050                                 <td>32</td>
3051 </tr>
3052 <tr>
3053                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_MAINTENANCEMGR_CMD_CREATEMODULE</td>
3054                                 <td>38</td>
3055 </tr>
3056 <tr>
3057                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_MAINTENANCEMGR_CMD_DBGEN</td>
3058                                 <td>31</td>
3059 </tr>
3060 <tr>
3061                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_MAINTENANCEMGR_CMD_EDIT</td>
3062                                 <td>28</td>
3063 </tr>
3064 <tr>
3065                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_MAINTENANCEMGR_CMD_LIST</td>
3066                                 <td>33</td>
3067 </tr>
3068 <tr>
3069                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_MAINTENANCEMGR_CMD_REBUILDSEQUENCES</td>
3070                                 <td>37</td>
3071 </tr>
3072 <tr>
3073                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_MAINTENANCEMGR_CMD_UPDATE</td>
3074                                 <td>29</td>
3075 </tr>
3076 <tr>
3077                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_MAINTENANCEMGR_CMD_VERIFY</td>
3078                                 <td>35</td>
3079 </tr>
3080 <tr>
3081                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_MEDIAMGR</td>
3082                                 <td>70</td>
3083 </tr>
3084 <tr>
3085                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_MEDIAMGR_CMD_ADD</td>
3086                                 <td>73</td>
3087 </tr>
3088 <tr>
3089                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_MEDIAMGR_CMD_DELETE</td>
3090                                 <td>79</td>
3091 </tr>
3092 <tr>
3093                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_MEDIAMGR_CMD_EDIT</td>
3094                                 <td>75</td>
3095 </tr>
3096 <tr>
3097                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_MEDIAMGR_CMD_INSERT</td>
3098                                 <td>74</td>
3099 </tr>
3100 <tr>
3101                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_MEDIAMGR_CMD_LIST</td>
3102                                 <td>80</td>
3103 </tr>
3104 <tr>
3105                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_MEDIAMGR_CMD_SETDOWNLOAD</td>
3106                                 <td>77</td>
3107 </tr>
3108 <tr>
3109                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_MEDIAMGR_CMD_UPDATE</td>
3110                                 <td>76</td>
3111 </tr>
3112 <tr>
3113                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_MEDIAMGR_CMD_VIEW</td>
3114                                 <td>78</td>
3115 </tr>
3116 <tr>
3117                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_MODULEMGR</td>
3118                                 <td>12</td>
3119 </tr>
3120 <tr>
3121                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_MODULEMGR_CMD_ADD</td>
3122                                 <td>13</td>
3123 </tr>
3124 <tr>
3125                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_MODULEMGR_CMD_DELETE</td>
3126                                 <td>15</td>
3127 </tr>
3128 <tr>
3129                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_MODULEMGR_CMD_EDIT</td>
3130                                 <td>18</td>
3131 </tr>
3132 <tr>
3133                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_MODULEMGR_CMD_INSERT</td>
3134                                 <td>14</td>
3135 </tr>
3136 <tr>
3137                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_MODULEMGR_CMD_LIST</td>
3138                                 <td>16</td>
3139 </tr>
3140 <tr>
3141                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_MODULEMGR_CMD_OVERVIEW</td>
3142                                 <td>17</td>
3143 </tr>
3144 <tr>
3145                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_MODULEMGR_CMD_UPDATE</td>
3146                                 <td>19</td>
3147 </tr>
3148 <tr>
3149                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_NAVSTYLEMGR</td>
3150                                 <td>97</td>
3151 </tr>
3152 <tr>
3153                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_NAVSTYLEMGR_CMD_CHANGESTYLE</td>
3154                                 <td>98</td>
3155 </tr>
3156 <tr>
3157                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_NAVSTYLEMGR_CMD_LIST</td>
3158                                 <td>99</td>
3159 </tr>
3160 <tr>
3161                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_NEWSLETTERMGR</td>
3162                                 <td>121</td>
3163 </tr>
3164 <tr>
3165                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_NEWSLETTERMGR_CMD_AUTHORIZE</td>
3166                                 <td>125</td>
3167 </tr>
3168 <tr>
3169                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_NEWSLETTERMGR_CMD_LIST</td>
3170                                 <td>122</td>
3171 </tr>
3172 <tr>
3173                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_NEWSLETTERMGR_CMD_SUBSCRIBE</td>
3174                                 <td>123</td>
3175 </tr>
3176 <tr>
3177                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_NEWSLETTERMGR_CMD_UNSUBSCRIBE</td>
3178                                 <td>124</td>
3179 </tr>
3180 <tr>
3181                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_ORGMGR</td>
3182                                 <td>200</td>
3183 </tr>
3184 <tr>
3185                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_ORGMGR_CMD_ADD</td>
3186                                 <td>151</td>
3187 </tr>
3188 <tr>
3189                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_ORGMGR_CMD_DELETE</td>
3190                                 <td>155</td>
3191 </tr>
3192 <tr>
3193                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_ORGMGR_CMD_EDIT</td>
3194                                 <td>153</td>
3195 </tr>
3196 <tr>
3197                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_ORGMGR_CMD_INSERT</td>
3198                                 <td>152</td>
3199 </tr>
3200 <tr>
3201                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_ORGMGR_CMD_LIST</td>
3202                                 <td>156</td>
3203 </tr>
3204 <tr>
3205                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_ORGMGR_CMD_UPDATE</td>
3206                                 <td>154</td>
3207 </tr>
3208 <tr>
3209                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_ORGPREFERENCEMGR</td>
3210                                 <td>201</td>
3211 </tr>
3212 <tr>
3213                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_ORGPREFERENCEMGR_CMD_EDITALL</td>
3214                                 <td>202</td>
3215 </tr>
3216 <tr>
3217                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_ORGPREFERENCEMGR_CMD_UPDATEALL</td>
3218                                 <td>203</td>
3219 </tr>
3220 <tr>
3221                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_ORGTYPEMGR</td>
3222                                 <td>220</td>
3223 </tr>
3224 <tr>
3225                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_ORGTYPEMGR_CMD_ADD</td>
3226                                 <td>221</td>
3227 </tr>
3228 <tr>
3229                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_ORGTYPEMGR_CMD_DELETE</td>
3230                                 <td>225</td>
3231 </tr>
3232 <tr>
3233                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_ORGTYPEMGR_CMD_EDIT</td>
3234                                 <td>223</td>
3235 </tr>
3236 <tr>
3237                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_ORGTYPEMGR_CMD_INSERT</td>
3238                                 <td>222</td>
3239 </tr>
3240 <tr>
3241                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_ORGTYPEMGR_CMD_LIST</td>
3242                                 <td>226</td>
3243 </tr>
3244 <tr>
3245                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_ORGTYPEMGR_CMD_UPDATE</td>
3246                                 <td>224</td>
3247 </tr>
3248 <tr>
3249                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_PASSWORDMGR</td>
3250                                 <td>204</td>
3251 </tr>
3252 <tr>
3253                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_PASSWORDMGR_CMD_FORGOT</td>
3254                                 <td>158</td>
3255 </tr>
3256 <tr>
3257                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_PASSWORDMGR_CMD_RETRIEVE</td>
3258                                 <td>157</td>
3259 </tr>
3260 <tr>
3261                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_PEARMGR</td>
3262                                 <td>40</td>
3263 </tr>
3264 <tr>
3265                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_PEARMGR_CMD_DOREQUEST</td>
3266                                 <td>42</td>
3267 </tr>
3268 <tr>
3269                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_PEARMGR_CMD_LIST</td>
3270                                 <td>41</td>
3271 </tr>
3272 <tr>
3273                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_PERMISSIONMGR</td>
3274                                 <td>205</td>
3275 </tr>
3276 <tr>
3277                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_PERMISSIONMGR_CMD_ADD</td>
3278                                 <td>162</td>
3279 </tr>
3280 <tr>
3281                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_PERMISSIONMGR_CMD_DELETE</td>
3282                                 <td>166</td>
3283 </tr>
3284 <tr>
3285                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_PERMISSIONMGR_CMD_DELETEORPHANED</td>
3286                                 <td>209</td>
3287 </tr>
3288 <tr>
3289                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_PERMISSIONMGR_CMD_EDIT</td>
3290                                 <td>164</td>
3291 </tr>
3292 <tr>
3293                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_PERMISSIONMGR_CMD_INSERT</td>
3294                                 <td>163</td>
3295 </tr>
3296 <tr>
3297                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_PERMISSIONMGR_CMD_INSERTNEW</td>
3298                                 <td>207</td>
3299 </tr>
3300 <tr>
3301                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_PERMISSIONMGR_CMD_LIST</td>
3302                                 <td>167</td>
3303 </tr>
3304 <tr>
3305                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_PERMISSIONMGR_CMD_SCANNEW</td>
3306                                 <td>206</td>
3307 </tr>
3308 <tr>
3309                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_PERMISSIONMGR_CMD_SCANORPHANED</td>
3310                                 <td>208</td>
3311 </tr>
3312 <tr>
3313                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_PERMISSIONMGR_CMD_UPDATE</td>
3314                                 <td>165</td>
3315 </tr>
3316 <tr>
3317                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_PREFERENCEMGR</td>
3318                                 <td>210</td>
3319 </tr>
3320 <tr>
3321                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_PREFERENCEMGR_CMD_ADD</td>
3322                                 <td>168</td>
3323 </tr>
3324 <tr>
3325                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_PREFERENCEMGR_CMD_DELETE</td>
3326                                 <td>172</td>
3327 </tr>
3328 <tr>
3329                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_PREFERENCEMGR_CMD_EDIT</td>
3330                                 <td>170</td>
3331 </tr>
3332 <tr>
3333                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_PREFERENCEMGR_CMD_INSERT</td>
3334                                 <td>169</td>
3335 </tr>
3336 <tr>
3337                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_PREFERENCEMGR_CMD_LIST</td>
3338                                 <td>173</td>
3339 </tr>
3340 <tr>
3341                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_PREFERENCEMGR_CMD_UPDATE</td>
3342                                 <td>171</td>
3343 </tr>
3344 <tr>
3345                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_PROFILEMGR</td>
3346                                 <td>211</td>
3347 </tr>
3348 <tr>
3349                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_PROFILEMGR_CMD_VIEW</td>
3350                                 <td>174</td>
3351 </tr>
3352 <tr>
3353                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_REGISTERMGR</td>
3354                                 <td>212</td>
3355 </tr>
3356 <tr>
3357                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_REGISTERMGR_CMD_ADD</td>
3358                                 <td>175</td>
3359 </tr>
3360 <tr>
3361                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_REGISTERMGR_CMD_INSERT</td>
3362                                 <td>176</td>
3363 </tr>
3364 <tr>
3365                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_RNDMSGMGR</td>
3366                                 <td>139</td>
3367 </tr>
3368 <tr>
3369                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_RNDMSGMGR_CMD_ADD</td>
3370                                 <td>140</td>
3371 </tr>
3372 <tr>
3373                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_RNDMSGMGR_CMD_DELETE</td>
3374                                 <td>142</td>
3375 </tr>
3376 <tr>
3377                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_RNDMSGMGR_CMD_INSERT</td>
3378                                 <td>141</td>
3379 </tr>
3380 <tr>
3381                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_RNDMSGMGR_CMD_LIST</td>
3382                                 <td>143</td>
3383 </tr>
3384 <tr>
3385                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_ROLEMGR</td>
3386                                 <td>213</td>
3387 </tr>
3388 <tr>
3389                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_ROLEMGR_CMD_ADD</td>
3390                                 <td>177</td>
3391 </tr>
3392 <tr>
3393                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_ROLEMGR_CMD_DELETE</td>
3394                                 <td>181</td>
3395 </tr>
3396 <tr>
3397                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_ROLEMGR_CMD_DUPLICATE</td>
3398                                 <td>144</td>
3399 </tr>
3400 <tr>
3401                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_ROLEMGR_CMD_EDIT</td>
3402                                 <td>179</td>
3403 </tr>
3404 <tr>
3405                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_ROLEMGR_CMD_EDITPERMS</td>
3406                                 <td>183</td>
3407 </tr>
3408 <tr>
3409                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_ROLEMGR_CMD_INSERT</td>
3410                                 <td>178</td>
3411 </tr>
3412 <tr>
3413                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_ROLEMGR_CMD_LIST</td>
3414                                 <td>182</td>
3415 </tr>
3416 <tr>
3417                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_ROLEMGR_CMD_UPDATE</td>
3418                                 <td>180</td>
3419 </tr>
3420 <tr>
3421                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_ROLEMGR_CMD_UPDATEPERMS</td>
3422                                 <td>184</td>
3423 </tr>
3424 <tr>
3425                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_RSSMGR</td>
3426                                 <td>48</td>
3427 </tr>
3428 <tr>
3429                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_RSSMGR_CMD_NEWS</td>
3430                                 <td>49</td>
3431 </tr>
3432 <tr>
3433                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_SECTIONMGR</td>
3434                                 <td>100</td>
3435 </tr>
3436 <tr>
3437                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_SECTIONMGR_CMD_ADD</td>
3438                                 <td>101</td>
3439 </tr>
3440 <tr>
3441                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_SECTIONMGR_CMD_DELETE</td>
3442                                 <td>105</td>
3443 </tr>
3444 <tr>
3445                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_SECTIONMGR_CMD_EDIT</td>
3446                                 <td>103</td>
3447 </tr>
3448 <tr>
3449                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_SECTIONMGR_CMD_INSERT</td>
3450                                 <td>102</td>
3451 </tr>
3452 <tr>
3453                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_SECTIONMGR_CMD_LIST</td>
3454                                 <td>107</td>
3455 </tr>
3456 <tr>
3457                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_SECTIONMGR_CMD_REORDER</td>
3458                                 <td>106</td>
3459 </tr>
3460 <tr>
3461                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_SECTIONMGR_CMD_UPDATE</td>
3462                                 <td>104</td>
3463 </tr>
3464 <tr>
3465                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_USERIMPORTMGR</td>
3466                                 <td>214</td>
3467 </tr>
3468 <tr>
3469                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_USERIMPORTMGR_CMD_INSERTIMPORTEDUSERS</td>
3470                                 <td>216</td>
3471 </tr>
3472 <tr>
3473                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_USERIMPORTMGR_CMD_LIST</td>
3474                                 <td>215</td>
3475 </tr>
3476 <tr>
3477                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_USERMGR</td>
3478                                 <td>217</td>
3479 </tr>
3480 <tr>
3481                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_USERMGR_CMD_ADD</td>
3482                                 <td>185</td>
3483 </tr>
3484 <tr>
3485                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_USERMGR_CMD_CHANGEUSERSTATUS</td>
3486                                 <td>228</td>
3487 </tr>
3488 <tr>
3489                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_USERMGR_CMD_DELETE</td>
3490                                 <td>189</td>
3491 </tr>
3492 <tr>
3493                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_USERMGR_CMD_EDIT</td>
3494                                 <td>187</td>
3495 </tr>
3496 <tr>
3497                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_USERMGR_CMD_EDITPERMS</td>
3498                                 <td>193</td>
3499 </tr>
3500 <tr>
3501                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_USERMGR_CMD_INSERT</td>
3502                                 <td>186</td>
3503 </tr>
3504 <tr>
3505                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_USERMGR_CMD_LIST</td>
3506                                 <td>190</td>
3507 </tr>
3508 <tr>
3509                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_USERMGR_CMD_REQUESTCHANGEUSERSTATUS</td>
3510                                 <td>227</td>
3511 </tr>
3512 <tr>
3513                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_USERMGR_CMD_REQUESTPASSWORDRESET</td>
3514                                 <td>191</td>
3515 </tr>
3516 <tr>
3517                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_USERMGR_CMD_RESETPASSWORD</td>
3518                                 <td>192</td>
3519 </tr>
3520 <tr>
3521                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_USERMGR_CMD_SYNCTOROLE</td>
3522                                 <td>218</td>
3523 </tr>
3524 <tr>
3525                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_USERMGR_CMD_TRUNCATELOGINTBL</td>
3526                                 <td>230</td>
3527 </tr>
3528 <tr>
3529                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_USERMGR_CMD_UPDATE</td>
3530                                 <td>188</td>
3531 </tr>
3532 <tr>
3533                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_USERMGR_CMD_UPDATEPERMS</td>
3534                                 <td>194</td>
3535 </tr>
3536 <tr>
3537                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_USERMGR_CMD_VIEWLOGIN</td>
3538                                 <td>229</td>
3539 </tr>
3540 <tr>
3541                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_USERPASSWORDMGR</td>
3542                                 <td>159</td>
3543 </tr>
3544 <tr>
3545                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_USERPASSWORDMGR_CMD_EDIT</td>
3546                                 <td>160</td>
3547 </tr>
3548 <tr>
3549                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_USERPASSWORDMGR_CMD_UPDATE</td>
3550                                 <td>161</td>
3551 </tr>
3552 <tr>
3553                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_USERPREFERENCEMGR</td>
3554                                 <td>219</td>
3555 </tr>
3556 <tr>
3557                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_USERPREFERENCEMGR_CMD_EDITALL</td>
3558                                 <td>195</td>
3559 </tr>
3560 <tr>
3561                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_USERPREFERENCEMGR_CMD_UPDATEALL</td>
3562                                 <td>196</td>
3563 </tr>
3564 <tr>
3565                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_USERSEARCHMGR</td>
3566                                 <td>231</td>
3567 </tr>
3568 <tr>
3569                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_USERSEARCHMGR_CMD_ADD</td>
3570                                 <td>232</td>
3571 </tr>
3572 <tr>
3573                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_USERSEARCHMGR_CMD_SEARCH</td>
3574                                 <td>233</td>
3575 </tr>
3576 <tr>
3577                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_WIKISCRAPEMGR</td>
3578                                 <td>133</td>
3579 </tr>
3580 <tr>
3581                                 <td class="dBug_arrayKey" valign="top">SGL_PERMS_WIKISCRAPEMGR_CMD_LIST</td>
3582                                 <td>134</td>
3583 </tr>
3584 <tr>
3585                                 <td class="dBug_arrayKey" valign="top">SGL_FLEXY_FORCE_COMPILE</td>
3586                                 <td>0</td>
3587 </tr>
3588 <tr>
3589                                 <td class="dBug_arrayKey" valign="top">SGL_FLEXY_DEBUG</td>
3590                                 <td>0</td>
3591 </tr>
3592 <tr>
3593                                 <td class="dBug_arrayKey" valign="top">SGL_FLEXY_FILTERS</td>
3594                                 <td>SimpleTags</td>
3595 </tr>
3596 <tr>
3597                                 <td class="dBug_arrayKey" valign="top">SGL_FLEXY_ALLOW_PHP</td>
3598                                 <td>TRUE</td>
3599 </tr>
3600 <tr>
3601                                 <td class="dBug_arrayKey" valign="top">SGL_FLEXY_LOCALE</td>
3602                                 <td>en</td>
3603 </tr>
3604 <tr>
3605                                 <td class="dBug_arrayKey" valign="top">SGL_FLEXY_COMPILER</td>
3606                                 <td>Flexy</td>
3607 </tr>
3608 <tr>
3609                                 <td class="dBug_arrayKey" valign="top">SGL_FLEXY_VALID_FNS</td>
3610                                 <td>include</td>
3611 </tr>
3612 <tr>
3613                                 <td class="dBug_arrayKey" valign="top">SGL_FLEXY_GLOBAL_FNS</td>
3614                                 <td>TRUE</td>
3615 </tr>
3616 <tr>
3617                                 <td class="dBug_arrayKey" valign="top">SGL_FLEXY_IGNORE</td>
3618                                 <td>0</td>
3619 </tr>
3620 <tr>
3621                                 <td class="dBug_arrayKey" valign="top">HTML_TEMPLATE_FLEXY_ERROR_SYNTAX</td>
3622                                 <td>-1</td>
3623 </tr>
3624 <tr>
3625                                 <td class="dBug_arrayKey" valign="top">HTML_TEMPLATE_FLEXY_ERROR_INVALIDARGS</td>
3626                                 <td>-2</td>
3627 </tr>
3628 <tr>
3629                                 <td class="dBug_arrayKey" valign="top">HTML_TEMPLATE_FLEXY_ERROR_FILE</td>
3630                                 <td>-2</td>
3631 </tr>
3632 <tr>
3633                                 <td class="dBug_arrayKey" valign="top">HTML_TEMPLATE_FLEXY_ERROR_RETURN</td>
3634                                 <td>1</td>
3635 </tr>
3636 <tr>
3637                                 <td class="dBug_arrayKey" valign="top">HTML_TEMPLATE_FLEXY_ERROR_DIE</td>
3638                                 <td>8</td>
3639 </tr>
3640 </tbody></table></body></html>