NameSpace: SGL_Output.htm

File SGL_Output.htm, 107.3 kB (added by randy, 6 years ago)

SGL Output

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><meta http-equiv="Content-type" content="text/html; charset=windows-1251" />
3 <style>
4         table.dBug_array,table.dBug_object,table.dBug_resource,table.dBug_resourceC,table.dBug_xml {
5                 font-family:Verdana, Arial, Helvetica, sans-serif; color:#000000; font-size:12px;
6         }
7        
8         .dBug_arrayHeader,
9         .dBug_objectHeader,
10         .dBug_resourceHeader,
11         .dBug_resourceCHeader,
12         .dBug_xmlHeader
13                 { font-weight:bold; color:#FFFFFF; }
14        
15         /* array */
16         table.dBug_array { background-color:#006600; }
17         table.dBug_array td { background-color:#FFFFFF; }
18         table.dBug_array td.dBug_arrayHeader { background-color:#009900; }
19         table.dBug_array td.dBug_arrayKey { background-color:#CCFFCC; }
20        
21         /* object */
22         table.dBug_object { background-color:#0000CC; }
23         table.dBug_object td { background-color:#FFFFFF; }
24         table.dBug_object td.dBug_objectHeader { background-color:#4444CC; }
25         table.dBug_object td.dBug_objectKey { background-color:#CCDDFF; }
26        
27         /* resource */
28         table.dBug_resourceC { background-color:#884488; }
29         table.dBug_resourceC td { background-color:#FFFFFF; }
30         table.dBug_resourceC td.dBug_resourceCHeader { background-color:#AA66AA; }
31         table.dBug_resourceC td.dBug_resourceCKey { background-color:#FFDDFF; }
32        
33         /* resource */
34         table.dBug_resource { background-color:#884488; }
35         table.dBug_resource td { background-color:#FFFFFF; }
36         table.dBug_resource td.dBug_resourceHeader { background-color:#AA66AA; }
37         table.dBug_resource td.dBug_resourceKey { background-color:#FFDDFF; }
38         table.dBug_resource td.dBug_resourceKey2 { background-color:#FFDDFF; }
39        
40         /* xml */
41         table.dBug_xml { background-color:#888888; }
42         table.dBug_xml td { background-color:#FFFFFF; }
43         table.dBug_xml td.dBug_xmlHeader { background-color:#AAAAAA; }
44         table.dBug_xml td.dBug_xmlKey { background-color:#DDDDDD; }
45 </style>
46 <script type="text/javascript">
47 /*  Prototype JavaScript framework, version 1.4.0
48  *  (c) 2005 Sam Stephenson <sam@conio.net>
49  *
50  *  THIS FILE IS AUTOMATICALLY GENERATED. When sending patches, please diff
51  *  against the source tree, available from the Prototype darcs repository.
52  *
53  *  Prototype is freely distributable under the terms of an MIT-style license.
54  *
55  *  For details, see the Prototype web site: http://prototype.conio.net/
56  *
57 /*--------------------------------------------------------------------------*/
58
59 var Prototype = {
60   Version: '1.4.0',
61   ScriptFragment: '(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)',
62
63   emptyFunction: function() {},
64   K: function(x) {return x}
65 }
66
67 var Class = {
68   create: function() {
69     return function() {
70       this.initialize.apply(this, arguments);
71     }
72   }
73 }
74
75 var Abstract = new Object();
76
77 Object.extend = function(destination, source) {
78   for (property in source) {
79     destination[property] = source[property];
80   }
81   return destination;
82 }
83
84 Object.inspect = function(object) {
85   try {
86     if (object == undefined) return 'undefined';
87     if (object == null) return 'null';
88     return object.inspect ? object.inspect() : object.toString();
89   } catch (e) {
90     if (e instanceof RangeError) return '...';
91     throw e;
92   }
93 }
94
95 Function.prototype.bind = function() {
96   var __method = this, args = $A(arguments), object = args.shift();
97   return function() {
98     return __method.apply(object, args.concat($A(arguments)));
99   }
100 }
101
102 Function.prototype.bindAsEventListener = function(object) {
103   var __method = this;
104   return function(event) {
105     return __method.call(object, event || window.event);
106   }
107 }
108
109 Object.extend(Number.prototype, {
110   toColorPart: function() {
111     var digits = this.toString(16);
112     if (this < 16) return '0' + digits;
113     return digits;
114   },
115
116   succ: function() {
117     return this + 1;
118   },
119
120   times: function(iterator) {
121     $R(0, this, true).each(iterator);
122     return this;
123   }
124 });
125
126 var Try = {
127   these: function() {
128     var returnValue;
129
130     for (var i = 0; i < arguments.length; i++) {
131       var lambda = arguments[i];
132       try {
133         returnValue = lambda();
134         break;
135       } catch (e) {}
136     }
137
138     return returnValue;
139   }
140 }
141
142 /*--------------------------------------------------------------------------*/
143
144 var PeriodicalExecuter = Class.create();
145 PeriodicalExecuter.prototype = {
146   initialize: function(callback, frequency) {
147     this.callback = callback;
148     this.frequency = frequency;
149     this.currentlyExecuting = false;
150
151     this.registerCallback();
152   },
153
154   registerCallback: function() {
155     setInterval(this.onTimerEvent.bind(this), this.frequency * 1000);
156   },
157
158   onTimerEvent: function() {
159     if (!this.currentlyExecuting) {
160       try {
161         this.currentlyExecuting = true;
162         this.callback();
163       } finally {
164         this.currentlyExecuting = false;
165       }
166     }
167   }
168 }
169
170 /*--------------------------------------------------------------------------*/
171
172 function $() {
173   var elements = new Array();
174
175   for (var i = 0; i < arguments.length; i++) {
176     var element = arguments[i];
177     if (typeof element == 'string')
178       element = document.getElementById(element);
179
180     if (arguments.length == 1)
181       return element;
182
183     elements.push(element);
184   }
185
186   return elements;
187 }
188 Object.extend(String.prototype, {
189   stripTags: function() {
190     return this.replace(/<\/?[^>]+>/gi, '');
191   },
192
193   stripScripts: function() {
194     return this.replace(new RegExp(Prototype.ScriptFragment, 'img'), '');
195   },
196
197   extractScripts: function() {
198     var matchAll = new RegExp(Prototype.ScriptFragment, 'img');
199     var matchOne = new RegExp(Prototype.ScriptFragment, 'im');
200     return (this.match(matchAll) || []).map(function(scriptTag) {
201       return (scriptTag.match(matchOne) || ['', ''])[1];
202     });
203   },
204
205   evalScripts: function() {
206     return this.extractScripts().map(eval);
207   },
208
209   escapeHTML: function() {
210     var div = document.createElement('div');
211     var text = document.createTextNode(this);
212     div.appendChild(text);
213     return div.innerHTML;
214   },
215
216   unescapeHTML: function() {
217     var div = document.createElement('div');
218     div.innerHTML = this.stripTags();
219     return div.childNodes[0] ? div.childNodes[0].nodeValue : '';
220   },
221
222   toQueryParams: function() {
223     var pairs = this.match(/^\??(.*)$/)[1].split('&');
224     return pairs.inject({}, function(params, pairString) {
225       var pair = pairString.split('=');
226       params[pair[0]] = pair[1];
227       return params;
228     });
229   },
230
231   toArray: function() {
232     return this.split('');
233   },
234
235   camelize: function() {
236     var oStringList = this.split('-');
237     if (oStringList.length == 1) return oStringList[0];
238
239     var camelizedString = this.indexOf('-') == 0
240       ? oStringList[0].charAt(0).toUpperCase() + oStringList[0].substring(1)
241       : oStringList[0];
242
243     for (var i = 1, len = oStringList.length; i < len; i++) {
244       var s = oStringList[i];
245       camelizedString += s.charAt(0).toUpperCase() + s.substring(1);
246     }
247
248     return camelizedString;
249   },
250
251   inspect: function() {
252     return "'" + this.replace('\\', '\\\\').replace("'", '\\\'') + "'";
253   }
254 });
255
256 String.prototype.parseQuery = String.prototype.toQueryParams;
257
258 var $break    = new Object();
259 var $continue = new Object();
260
261 var Enumerable = {
262   each: function(iterator) {
263     var index = 0;
264     try {
265       this._each(function(value) {
266         try {
267           iterator(value, index++);
268         } catch (e) {
269           if (e != $continue) throw e;
270         }
271       });
272     } catch (e) {
273       if (e != $break) throw e;
274     }
275   },
276
277   all: function(iterator) {
278     var result = true;
279     this.each(function(value, index) {
280       result = result && !!(iterator || Prototype.K)(value, index);
281       if (!result) throw $break;
282     });
283     return result;
284   },
285
286   any: function(iterator) {
287     var result = true;
288     this.each(function(value, index) {
289       if (result = !!(iterator || Prototype.K)(value, index))
290         throw $break;
291     });
292     return result;
293   },
294
295   collect: function(iterator) {
296     var results = [];
297     this.each(function(value, index) {
298       results.push(iterator(value, index));
299     });
300     return results;
301   },
302
303   detect: function (iterator) {
304     var result;
305     this.each(function(value, index) {
306       if (iterator(value, index)) {
307         result = value;
308         throw $break;
309       }
310     });
311     return result;
312   },
313
314   findAll: function(iterator) {
315     var results = [];
316     this.each(function(value, index) {
317       if (iterator(value, index))
318         results.push(value);
319     });
320     return results;
321   },
322
323   grep: function(pattern, iterator) {
324     var results = [];
325     this.each(function(value, index) {
326       var stringValue = value.toString();
327       if (stringValue.match(pattern))
328         results.push((iterator || Prototype.K)(value, index));
329     })
330     return results;
331   },
332
333   include: function(object) {
334     var found = false;
335     this.each(function(value) {
336       if (value == object) {
337         found = true;
338         throw $break;
339       }
340     });
341     return found;
342   },
343
344   inject: function(memo, iterator) {
345     this.each(function(value, index) {
346       memo = iterator(memo, value, index);
347     });
348     return memo;
349   },
350
351   invoke: function(method) {
352     var args = $A(arguments).slice(1);
353     return this.collect(function(value) {
354       return value[method].apply(value, args);
355     });
356   },
357
358   max: function(iterator) {
359     var result;
360     this.each(function(value, index) {
361       value = (iterator || Prototype.K)(value, index);
362       if (value >= (result || value))
363         result = value;
364     });
365     return result;
366   },
367
368   min: function(iterator) {
369     var result;
370     this.each(function(value, index) {
371       value = (iterator || Prototype.K)(value, index);
372       if (value <= (result || value))
373         result = value;
374     });
375     return result;
376   },
377
378   partition: function(iterator) {
379     var trues = [], falses = [];
380     this.each(function(value, index) {
381       ((iterator || Prototype.K)(value, index) ?
382         trues : falses).push(value);
383     });
384     return [trues, falses];
385   },
386
387   pluck: function(property) {
388     var results = [];
389     this.each(function(value, index) {
390       results.push(value[property]);
391     });
392     return results;
393   },
394
395   reject: function(iterator) {
396     var results = [];
397     this.each(function(value, index) {
398       if (!iterator(value, index))
399         results.push(value);
400     });
401     return results;
402   },
403
404   sortBy: function(iterator) {
405     return this.collect(function(value, index) {
406       return {value: value, criteria: iterator(value, index)};
407     }).sort(function(left, right) {
408       var a = left.criteria, b = right.criteria;
409       return a < b ? -1 : a > b ? 1 : 0;
410     }).pluck('value');
411   },
412
413   toArray: function() {
414     return this.collect(Prototype.K);
415   },
416
417   zip: function() {
418     var iterator = Prototype.K, args = $A(arguments);
419     if (typeof args.last() == 'function')
420       iterator = args.pop();
421
422     var collections = [this].concat(args).map($A);
423     return this.map(function(value, index) {
424       iterator(value = collections.pluck(index));
425       return value;
426     });
427   },
428
429   inspect: function() {
430     return '#<Enumerable:' + this.toArray().inspect() + '>';
431   }
432 }
433
434 Object.extend(Enumerable, {
435   map:     Enumerable.collect,
436   find:    Enumerable.detect,
437   select:  Enumerable.findAll,
438   member:  Enumerable.include,
439   entries: Enumerable.toArray
440 });
441 var $A = Array.from = function(iterable) {
442   if (!iterable) return [];
443   if (iterable.toArray) {
444     return iterable.toArray();
445   } else {
446     var results = [];
447     for (var i = 0; i < iterable.length; i++)
448       results.push(iterable[i]);
449     return results;
450   }
451 }
452
453 Object.extend(Array.prototype, Enumerable);
454
455 Array.prototype._reverse = Array.prototype.reverse;
456
457 Object.extend(Array.prototype, {
458   _each: function(iterator) {
459     for (var i = 0; i < this.length; i++)
460       iterator(this[i]);
461   },
462
463   clear: function() {
464     this.length = 0;
465     return this;
466   },
467
468   first: function() {
469     return this[0];
470   },
471
472   last: function() {
473     return this[this.length - 1];
474   },
475
476   compact: function() {
477     return this.select(function(value) {
478       return value != undefined || value != null;
479     });
480   },
481
482   flatten: function() {
483     return this.inject([], function(array, value) {
484       return array.concat(value.constructor == Array ?
485         value.flatten() : [value]);
486     });
487   },
488
489   without: function() {
490     var values = $A(arguments);
491     return this.select(function(value) {
492       return !values.include(value);
493     });
494   },
495
496   indexOf: function(object) {
497     for (var i = 0; i < this.length; i++)
498       if (this[i] == object) return i;
499     return -1;
500   },
501
502   reverse: function(inline) {
503     return (inline !== false ? this : this.toArray())._reverse();
504   },
505
506   shift: function() {
507     var result = this[0];
508     for (var i = 0; i < this.length - 1; i++)
509       this[i] = this[i + 1];
510     this.length--;
511     return result;
512   },
513
514   inspect: function() {
515     return '[' + this.map(Object.inspect).join(', ') + ']';
516   }
517 });
518 var Hash = {
519   _each: function(iterator) {
520     for (key in this) {
521       var value = this[key];
522       if (typeof value == 'function') continue;
523
524       var pair = [key, value];
525       pair.key = key;
526       pair.value = value;
527       iterator(pair);
528     }
529   },
530
531   keys: function() {
532     return this.pluck('key');
533   },
534
535   values: function() {
536     return this.pluck('value');
537   },
538
539   merge: function(hash) {
540     return $H(hash).inject($H(this), function(mergedHash, pair) {
541       mergedHash[pair.key] = pair.value;
542       return mergedHash;
543     });
544   },
545
546   toQueryString: function() {
547     return this.map(function(pair) {
548       return pair.map(encodeURIComponent).join('=');
549     }).join('&');
550   },
551
552   inspect: function() {
553     return '#<Hash:{' + this.map(function(pair) {
554       return pair.map(Object.inspect).join(': ');
555     }).join(', ') + '}>';
556   }
557 }
558
559 function $H(object) {
560   var hash = Object.extend({}, object || {});
561   Object.extend(hash, Enumerable);
562   Object.extend(hash, Hash);
563   return hash;
564 }
565 ObjectRange = Class.create();
566 Object.extend(ObjectRange.prototype, Enumerable);
567 Object.extend(ObjectRange.prototype, {
568   initialize: function(start, end, exclusive) {
569     this.start = start;
570     this.end = end;
571     this.exclusive = exclusive;
572   },
573
574   _each: function(iterator) {
575     var value = this.start;
576     do {
577       iterator(value);
578       value = value.succ();
579     } while (this.include(value));
580   },
581
582   include: function(value) {
583     if (value < this.start)
584       return false;
585     if (this.exclusive)
586       return value < this.end;
587     return value <= this.end;
588   }
589 });
590
591 var $R = function(start, end, exclusive) {
592   return new ObjectRange(start, end, exclusive);
593 }
594
595 var Ajax = {
596   getTransport: function() {
597     return Try.these(
598       function() {return new ActiveXObject('Msxml2.XMLHTTP')},
599       function() {return new ActiveXObject('Microsoft.XMLHTTP')},
600       function() {return new XMLHttpRequest()}
601     ) || false;
602   },
603
604   activeRequestCount: 0
605 }
606
607 Ajax.Responders = {
608   responders: [],
609
610   _each: function(iterator) {
611     this.responders._each(iterator);
612   },
613
614   register: function(responderToAdd) {
615     if (!this.include(responderToAdd))
616       this.responders.push(responderToAdd);
617   },
618
619   unregister: function(responderToRemove) {
620     this.responders = this.responders.without(responderToRemove);
621   },
622
623   dispatch: function(callback, request, transport, json) {
624     this.each(function(responder) {
625       if (responder[callback] && typeof responder[callback] == 'function') {
626         try {
627           responder[callback].apply(responder, [request, transport, json]);
628         } catch (e) {}
629       }
630     });
631   }
632 };
633
634 Object.extend(Ajax.Responders, Enumerable);
635
636 Ajax.Responders.register({
637   onCreate: function() {
638     Ajax.activeRequestCount++;
639   },
640
641   onComplete: function() {
642     Ajax.activeRequestCount--;
643   }
644 });
645
646 Ajax.Base = function() {};
647 Ajax.Base.prototype = {
648   setOptions: function(options) {
649     this.options = {
650       method:       'post',
651       asynchronous: true,
652       parameters:   ''
653     }
654     Object.extend(this.options, options || {});
655   },
656
657   responseIsSuccess: function() {
658     return this.transport.status == undefined
659         || this.transport.status == 0
660         || (this.transport.status >= 200 && this.transport.status < 300);
661   },
662
663   responseIsFailure: function() {
664     return !this.responseIsSuccess();
665   }
666 }
667
668 Ajax.Request = Class.create();
669 Ajax.Request.Events =
670   ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete'];
671
672 Ajax.Request.prototype = Object.extend(new Ajax.Base(), {
673   initialize: function(url, options) {
674     this.transport = Ajax.getTransport();
675     this.setOptions(options);
676     this.request(url);
677   },
678
679   request: function(url) {
680     var parameters = this.options.parameters || '';
681     if (parameters.length > 0) parameters += '&_=';
682
683     try {
684       this.url = url;
685       if (this.options.method == 'get' && parameters.length > 0)
686         this.url += (this.url.match(/\?/) ? '&' : '?') + parameters;
687
688       Ajax.Responders.dispatch('onCreate', this, this.transport);
689
690       this.transport.open(this.options.method, this.url,
691         this.options.asynchronous);
692
693       if (this.options.asynchronous) {
694         this.transport.onreadystatechange = this.onStateChange.bind(this);
695         setTimeout((function() {this.respondToReadyState(1)}).bind(this), 10);
696       }
697
698       this.setRequestHeaders();
699
700       var body = this.options.postBody ? this.options.postBody : parameters;
701       this.transport.send(this.options.method == 'post' ? body : null);
702
703     } catch (e) {
704       this.dispatchException(e);
705     }
706   },
707
708   setRequestHeaders: function() {
709     var requestHeaders =
710       ['X-Requested-With', 'XMLHttpRequest',
711        'X-Prototype-Version', Prototype.Version];
712
713     if (this.options.method == 'post') {
714       requestHeaders.push('Content-type',
715         'application/x-www-form-urlencoded');
716
717       /* Force "Connection: close" for Mozilla browsers to work around
718        * a bug where XMLHttpReqeuest sends an incorrect Content-length
719        * header. See Mozilla Bugzilla #246651.
720        */
721       if (this.transport.overrideMimeType)
722         requestHeaders.push('Connection', 'close');
723     }
724
725     if (this.options.requestHeaders)
726       requestHeaders.push.apply(requestHeaders, this.options.requestHeaders);
727
728     for (var i = 0; i < requestHeaders.length; i += 2)
729       this.transport.setRequestHeader(requestHeaders[i], requestHeaders[i+1]);
730   },
731
732   onStateChange: function() {
733     var readyState = this.transport.readyState;
734     if (readyState != 1)
735       this.respondToReadyState(this.transport.readyState);
736   },
737
738   header: function(name) {
739     try {
740       return this.transport.getResponseHeader(name);
741     } catch (e) {}
742   },
743
744   evalJSON: function() {
745     try {
746       return eval(this.header('X-JSON'));
747     } catch (e) {}
748   },
749
750   evalResponse: function() {
751     try {
752       return eval(this.transport.responseText);
753     } catch (e) {
754       this.dispatchException(e);
755     }
756   },
757
758   respondToReadyState: function(readyState) {
759     var event = Ajax.Request.Events[readyState];
760     var transport = this.transport, json = this.evalJSON();
761
762     if (event == 'Complete') {
763       try {
764         (this.options['on' + this.transport.status]
765          || this.options['on' + (this.responseIsSuccess() ? 'Success' : 'Failure')]
766          || Prototype.emptyFunction)(transport, json);
767       } catch (e) {
768         this.dispatchException(e);
769       }
770
771       if ((this.header('Content-type') || '').match(/^text\/javascript/i))
772         this.evalResponse();
773     }
774
775     try {
776       (this.options['on' + event] || Prototype.emptyFunction)(transport, json);
777       Ajax.Responders.dispatch('on' + event, this, transport, json);
778     } catch (e) {
779       this.dispatchException(e);
780     }
781
782     /* Avoid memory leak in MSIE: clean up the oncomplete event handler */
783     if (event == 'Complete')
784       this.transport.onreadystatechange = Prototype.emptyFunction;
785   },
786
787   dispatchException: function(exception) {
788     (this.options.onException || Prototype.emptyFunction)(this, exception);
789     Ajax.Responders.dispatch('onException', this, exception);
790   }
791 });
792
793 Ajax.Updater = Class.create();
794
795 Object.extend(Object.extend(Ajax.Updater.prototype, Ajax.Request.prototype), {
796   initialize: function(container, url, options) {
797     this.containers = {
798       success: container.success ? $(container.success) : $(container),
799       failure: container.failure ? $(container.failure) :
800         (container.success ? null : $(container))
801     }
802
803     this.transport = Ajax.getTransport();
804     this.setOptions(options);
805
806     var onComplete = this.options.onComplete || Prototype.emptyFunction;
807     this.options.onComplete = (function(transport, object) {
808       this.updateContent();
809       onComplete(transport, object);
810     }).bind(this);
811
812     this.request(url);
813   },
814
815   updateContent: function() {
816     var receiver = this.responseIsSuccess() ?
817       this.containers.success : this.containers.failure;
818     var response = this.transport.responseText;
819
820     if (!this.options.evalScripts)
821       response = response.stripScripts();
822
823     if (receiver) {
824       if (this.options.insertion) {
825         new this.options.insertion(receiver, response);
826       } else {
827         Element.update(receiver, response);
828       }
829     }
830
831     if (this.responseIsSuccess()) {
832       if (this.onComplete)
833         setTimeout(this.onComplete.bind(this), 10);
834     }
835   }
836 });
837
838 Ajax.PeriodicalUpdater = Class.create();
839 Ajax.PeriodicalUpdater.prototype = Object.extend(new Ajax.Base(), {
840   initialize: function(container, url, options) {
841     this.setOptions(options);
842     this.onComplete = this.options.onComplete;
843
844     this.frequency = (this.options.frequency || 2);
845     this.decay = (this.options.decay || 1);
846
847     this.updater = {};
848     this.container = container;
849     this.url = url;
850
851     this.start();
852   },
853
854   start: function() {
855     this.options.onComplete = this.updateComplete.bind(this);
856     this.onTimerEvent();
857   },
858
859   stop: function() {
860     this.updater.onComplete = undefined;
861     clearTimeout(this.timer);
862     (this.onComplete || Prototype.emptyFunction).apply(this, arguments);
863   },
864
865   updateComplete: function(request) {
866     if (this.options.decay) {
867       this.decay = (request.responseText == this.lastText ?
868         this.decay * this.options.decay : 1);
869
870       this.lastText = request.responseText;
871     }
872     this.timer = setTimeout(this.onTimerEvent.bind(this),
873       this.decay * this.frequency * 1000);
874   },
875
876   onTimerEvent: function() {
877     this.updater = new Ajax.Updater(this.container, this.url, this.options);
878   }
879 });
880 document.getElementsByClassName = function(className, parentElement) {
881   var children = ($(parentElement) || document.body).getElementsByTagName('*');
882   return $A(children).inject([], function(elements, child) {
883     if (child.className.match(new RegExp("(^|\\s)" + className + "(\\s|$)")))
884       elements.push(child);
885     return elements;
886   });
887 }
888
889 /*--------------------------------------------------------------------------*/
890
891 if (!window.Element) {
892   var Element = new Object();
893 }
894
895 Object.extend(Element, {
896   visible: function(element) {
897     return $(element).style.display != 'none';
898   },
899
900   toggle: function() {
901     for (var i = 0; i < arguments.length; i++) {
902       var element = $(arguments[i]);
903       Element[Element.visible(element) ? 'hide' : 'show'](element);
904     }
905   },
906
907   hide: function() {
908     for (var i = 0; i < arguments.length; i++) {
909       var element = $(arguments[i]);
910       element.style.display = 'none';
911     }
912   },
913
914   show: function() {
915     for (var i = 0; i < arguments.length; i++) {
916       var element = $(arguments[i]);
917       element.style.display = '';
918     }
919   },
920
921   remove: function(element) {
922     element = $(element);
923     element.parentNode.removeChild(element);
924   },
925
926   update: function(element, html) {
927     $(element).innerHTML = html.stripScripts();
928     setTimeout(function() {html.evalScripts()}, 10);
929   },
930
931   getHeight: function(element) {
932     element = $(element);
933     return element.offsetHeight;
934   },
935
936   classNames: function(element) {
937     return new Element.ClassNames(element);
938   },
939
940   hasClassName: function(element, className) {
941     if (!(element = $(element))) return;
942     return Element.classNames(element).include(className);
943   },
944
945   addClassName: function(element, className) {
946     if (!(element = $(element))) return;
947     return Element.classNames(element).add(className);
948   },
949
950   removeClassName: function(element, className) {
951     if (!(element = $(element))) return;
952     return Element.classNames(element).remove(className);
953   },
954
955   // removes whitespace-only text node children
956   cleanWhitespace: function(element) {
957     element = $(element);
958     for (var i = 0; i < element.childNodes.length; i++) {
959       var node = element.childNodes[i];
960       if (node.nodeType == 3 && !/\S/.test(node.nodeValue))
961         Element.remove(node);
962     }
963   },
964
965   empty: function(element) {
966     return $(element).innerHTML.match(/^\s*$/);
967   },
968
969   scrollTo: function(element) {
970     element = $(element);
971     var x = element.x ? element.x : element.offsetLeft,
972         y = element.y ? element.y : element.offsetTop;
973     window.scrollTo(x, y);
974   },
975
976   getStyle: function(element, style) {
977     element = $(element);
978     var value = element.style[style.camelize()];
979     if (!value) {
980       if (document.defaultView && document.defaultView.getComputedStyle) {
981         var css = document.defaultView.getComputedStyle(element, null);
982         value = css ? css.getPropertyValue(style) : null;
983       } else if (element.currentStyle) {
984         value = element.currentStyle[style.camelize()];
985       }
986     }
987
988     if (window.opera && ['left', 'top', 'right', 'bottom'].include(style))
989       if (Element.getStyle(element, 'position') == 'static') value = 'auto';
990
991     return value == 'auto' ? null : value;
992   },
993
994   setStyle: function(element, style) {
995     element = $(element);
996     for (name in style)
997       element.style[name.camelize()] = style[name];
998   },
999
1000   getDimensions: function(element) {
1001     element = $(element);
1002     if (Element.getStyle(element, 'display') != 'none')
1003       return {width: element.offsetWidth, height: element.offsetHeight};
1004
1005     // All *Width and *Height properties give 0 on elements with display none,
1006     // so enable the element temporarily
1007     var els = element.style;
1008     var originalVisibility = els.visibility;
1009     var originalPosition = els.position;
1010     els.visibility = 'hidden';
1011     els.position = 'absolute';
1012     els.display = '';
1013     var originalWidth = element.clientWidth;
1014     var originalHeight = element.clientHeight;
1015     els.display = 'none';
1016     els.position = originalPosition;
1017     els.visibility = originalVisibility;
1018     return {width: originalWidth, height: originalHeight};
1019   },
1020
1021   makePositioned: function(element) {
1022     element = $(element);
1023     var pos = Element.getStyle(element, 'position');
1024     if (pos == 'static' || !pos) {
1025       element._madePositioned = true;
1026       element.style.position = 'relative';
1027       // Opera returns the offset relative to the positioning context, when an
1028       // element is position relative but top and left have not been defined
1029       if (window.opera) {
1030         element.style.top = 0;
1031         element.style.left = 0;
1032       }
1033     }
1034   },
1035
1036   undoPositioned: function(element) {
1037     element = $(element);
1038     if (element._madePositioned) {
1039       element._madePositioned = undefined;
1040       element.style.position =
1041         element.style.top =
1042         element.style.left =
1043         element.style.bottom =
1044         element.style.right = '';
1045     }
1046   },
1047
1048   makeClipping: function(element) {
1049     element = $(element);
1050     if (element._overflow) return;
1051     element._overflow = element.style.overflow;
1052     if ((Element.getStyle(element, 'overflow') || 'visible') != 'hidden')
1053       element.style.overflow = 'hidden';
1054   },
1055
1056   undoClipping: function(element) {
1057     element = $(element);
1058     if (element._overflow) return;
1059     element.style.overflow = element._overflow;
1060     element._overflow = undefined;
1061   }
1062 });
1063
1064 var Toggle = new Object();
1065 Toggle.display = Element.toggle;
1066
1067 /*--------------------------------------------------------------------------*/
1068
1069 Abstract.Insertion = function(adjacency) {
1070   this.adjacency = adjacency;
1071 }
1072
1073 Abstract.Insertion.prototype = {
1074   initialize: function(element, content) {
1075     this.element = $(element);
1076     this.content = content.stripScripts();
1077
1078     if (this.adjacency && this.element.insertAdjacentHTML) {
1079       try {
1080         this.element.insertAdjacentHTML(this.adjacency, this.content);
1081       } catch (e) {
1082         if (this.element.tagName.toLowerCase() == 'tbody') {
1083           this.insertContent(this.contentFromAnonymousTable());
1084         } else {
1085           throw e;
1086         }
1087       }
1088     } else {
1089       this.range = this.element.ownerDocument.createRange();
1090       if (this.initializeRange) this.initializeRange();
1091       this.insertContent([this.range.createContextualFragment(this.content)]);
1092     }
1093
1094     setTimeout(function() {content.evalScripts()}, 10);
1095   },
1096
1097   contentFromAnonymousTable: function() {
1098     var div = document.createElement('div');
1099     div.innerHTML = '<table><tbody>' + this.content + '</tbody></table>';
1100     return $A(div.childNodes[0].childNodes[0].childNodes);
1101   }
1102 }
1103
1104 var Insertion = new Object();
1105
1106 Insertion.Before = Class.create();
1107 Insertion.Before.prototype = Object.extend(new Abstract.Insertion('beforeBegin'), {
1108   initializeRange: function() {
1109     this.range.setStartBefore(this.element);
1110   },
1111
1112   insertContent: function(fragments) {
1113     fragments.each((function(fragment) {
1114       this.element.parentNode.insertBefore(fragment, this.element);
1115     }).bind(this));
1116   }
1117 });
1118
1119 Insertion.Top = Class.create();
1120 Insertion.Top.prototype = Object.extend(new Abstract.Insertion('afterBegin'), {
1121   initializeRange: function() {
1122     this.range.selectNodeContents(this.element);
1123     this.range.collapse(true);
1124   },
1125
1126   insertContent: function(fragments) {
1127     fragments.reverse(false).each((function(fragment) {
1128       this.element.insertBefore(fragment, this.element.firstChild);
1129     }).bind(this));
1130   }
1131 });
1132
1133 Insertion.Bottom = Class.create();
1134 Insertion.Bottom.prototype = Object.extend(new Abstract.Insertion('beforeEnd'), {
1135   initializeRange: function() {
1136     this.range.selectNodeContents(this.element);
1137     this.range.collapse(this.element);
1138   },
1139
1140   insertContent: function(fragments) {
1141     fragments.each((function(fragment) {
1142       this.element.appendChild(fragment);
1143     }).bind(this));
1144   }
1145 });
1146
1147 Insertion.After = Class.create();
1148 Insertion.After.prototype = Object.extend(new Abstract.Insertion('afterEnd'), {
1149   initializeRange: function() {
1150     this.range.setStartAfter(this.element);
1151   },
1152
1153   insertContent: function(fragments) {
1154     fragments.each((function(fragment) {
1155       this.element.parentNode.insertBefore(fragment,
1156         this.element.nextSibling);
1157     }).bind(this));
1158   }
1159 });
1160
1161 /*--------------------------------------------------------------------------*/
1162
1163 Element.ClassNames = Class.create();
1164 Element.ClassNames.prototype = {
1165   initialize: function(element) {
1166     this.element = $(element);
1167   },
1168
1169   _each: function(iterator) {
1170     this.element.className.split(/\s+/).select(function(name) {
1171       return name.length > 0;
1172     })._each(iterator);
1173   },
1174
1175   set: function(className) {
1176     this.element.className = className;
1177   },
1178
1179   add: function(classNameToAdd) {
1180     if (this.include(classNameToAdd)) return;
1181     this.set(this.toArray().concat(classNameToAdd).join(' '));
1182   },
1183
1184   remove: function(classNameToRemove) {
1185     if (!this.include(classNameToRemove)) return;
1186     this.set(this.select(function(className) {
1187       return className != classNameToRemove;
1188     }).join(' '));
1189   },
1190
1191   toString: function() {
1192     return this.toArray().join(' ');
1193   }
1194 }
1195
1196 Object.extend(Element.ClassNames.prototype, Enumerable);
1197 var Field = {
1198   clear: function() {
1199     for (var i = 0; i < arguments.length; i++)
1200       $(arguments[i]).value = '';
1201   },
1202
1203   focus: function(element) {
1204     $(element).focus();
1205   },
1206
1207   present: function() {
1208     for (var i = 0; i < arguments.length; i++)
1209       if ($(arguments[i]).value == '') return false;
1210     return true;
1211   },
1212
1213   select: function(element) {
1214     $(element).select();
1215   },
1216
1217   activate: function(element) {
1218     element = $(element);
1219     element.focus();
1220     if (element.select)
1221       element.select();
1222   }
1223 }
1224
1225 /*--------------------------------------------------------------------------*/
1226
1227 var Form = {
1228   serialize: function(form) {
1229     var elements = Form.getElements($(form));
1230     var queryComponents = new Array();
1231
1232     for (var i = 0; i < elements.length; i++) {
1233       var queryComponent = Form.Element.serialize(elements[i]);
1234       if (queryComponent)
1235         queryComponents.push(queryComponent);
1236     }
1237
1238     return queryComponents.join('&');
1239   },
1240
1241   getElements: function(form) {
1242     form = $(form);
1243     var elements = new Array();
1244
1245     for (tagName in Form.Element.Serializers) {
1246       var tagElements = form.getElementsByTagName(tagName);
1247       for (var j = 0; j < tagElements.length; j++)
1248         elements.push(tagElements[j]);
1249     }
1250     return elements;
1251   },
1252
1253   getInputs: function(form, typeName, name) {
1254     form = $(form);
1255     var inputs = form.getElementsByTagName('input');
1256
1257     if (!typeName && !name)
1258       return inputs;
1259
1260     var matchingInputs = new Array();
1261     for (var i = 0; i < inputs.length; i++) {
1262       var input = inputs[i];
1263       if ((typeName && input.type != typeName) ||
1264           (name && input.name != name))
1265         continue;
1266       matchingInputs.push(input);
1267     }
1268
1269     return matchingInputs;
1270   },
1271
1272   disable: function(form) {
1273     var elements = Form.getElements(form);
1274     for (var i = 0; i < elements.length; i++) {
1275       var element = elements[i];
1276       element.blur();
1277       element.disabled = 'true';
1278     }
1279   },
1280
1281   enable: function(form) {
1282     var elements = Form.getElements(form);
1283     for (var i = 0; i < elements.length; i++) {
1284       var element = elements[i];
1285       element.disabled = '';
1286     }
1287   },
1288
1289   findFirstElement: function(form) {
1290     return Form.getElements(form).find(function(element) {
1291       return element.type != 'hidden' && !element.disabled &&
1292         ['input', 'select', 'textarea'].include(element.tagName.toLowerCase());
1293     });
1294   },
1295
1296   focusFirstElement: function(form) {
1297     Field.activate(Form.findFirstElement(form));
1298   },
1299
1300   reset: function(form) {
1301     $(form).reset();
1302   }
1303 }
1304
1305 Form.Element = {
1306   serialize: function(element) {
1307     element = $(element);
1308     var method = element.tagName.toLowerCase();
1309     var parameter = Form.Element.Serializers[method](element);
1310
1311     if (parameter) {
1312       var key = encodeURIComponent(parameter[0]);
1313       if (key.length == 0) return;
1314
1315       if (parameter[1].constructor != Array)
1316         parameter[1] = [parameter[1]];
1317
1318       return parameter[1].map(function(value) {
1319         return key + '=' + encodeURIComponent(value);
1320       }).join('&');
1321     }
1322   },
1323
1324   getValue: function(element) {
1325     element = $(element);
1326     var method = element.tagName.toLowerCase();
1327     var parameter = Form.Element.Serializers[method](element);
1328
1329     if (parameter)
1330       return parameter[1];
1331   }
1332 }
1333
1334 Form.Element.Serializers = {
1335   input: function(element) {
1336     switch (element.type.toLowerCase()) {
1337       case 'submit':
1338       case 'hidden':
1339       case 'password':
1340       case 'text':
1341         return Form.Element.Serializers.textarea(element);
1342       case 'checkbox':
1343       case 'radio':
1344         return Form.Element.Serializers.inputSelector(element);
1345     }
1346     return false;
1347   },
1348
1349   inputSelector: function(element) {
1350     if (element.checked)
1351       return [element.name, element.value];
1352   },
1353
1354   textarea: function(element) {
1355     return [element.name, element.value];
1356   },
1357
1358   select: function(element) {
1359     return Form.Element.Serializers[element.type == 'select-one' ?
1360       'selectOne' : 'selectMany'](element);
1361   },
1362
1363   selectOne: function(element) {
1364     var value = '', opt, index = element.selectedIndex;
1365     if (index >= 0) {
1366       opt = element.options[index];
1367       value = opt.value;
1368       if (!value && !('value' in opt))
1369         value = opt.text;
1370     }
1371     return [element.name, value];
1372   },
1373
1374   selectMany: function(element) {
1375     var value = new Array();
1376     for (var i = 0; i < element.length; i++) {
1377       var opt = element.options[i];
1378       if (opt.selected) {
1379         var optValue = opt.value;
1380         if (!optValue && !('value' in opt))
1381           optValue = opt.text;
1382         value.push(optValue);
1383       }
1384     }
1385     return [element.name, value];
1386   }
1387 }
1388
1389 /*--------------------------------------------------------------------------*/
1390
1391 var $F = Form.Element.getValue;
1392
1393 /*--------------------------------------------------------------------------*/
1394
1395 Abstract.TimedObserver = function() {}
1396 Abstract.TimedObserver.prototype = {
1397   initialize: function(element, frequency, callback) {
1398     this.frequency = frequency;
1399     this.element   = $(element);
1400     this.callback  = callback;
1401
1402     this.lastValue = this.getValue();
1403     this.registerCallback();
1404   },
1405
1406   registerCallback: function() {
1407     setInterval(this.onTimerEvent.bind(this), this.frequency * 1000);
1408   },
1409
1410   onTimerEvent: function() {
1411     var value = this.getValue();
1412     if (this.lastValue != value) {
1413       this.callback(this.element, value);
1414       this.lastValue = value;
1415     }
1416   }
1417 }
1418
1419 Form.Element.Observer = Class.create();
1420 Form.Element.Observer.prototype = Object.extend(new Abstract.TimedObserver(), {
1421   getValue: function() {
1422     return Form.Element.getValue(this.element);
1423   }
1424 });
1425
1426 Form.Observer = Class.create();
1427 Form.Observer.prototype = Object.extend(new Abstract.TimedObserver(), {
1428   getValue: function() {
1429     return Form.serialize(this.element);
1430   }
1431 });
1432
1433 /*--------------------------------------------------------------------------*/
1434
1435 Abstract.EventObserver = function() {}
1436 Abstract.EventObserver.prototype = {
1437   initialize: function(element, callback) {
1438     this.element  = $(element);
1439     this.callback = callback;
1440
1441     this.lastValue = this.getValue();
1442     if (this.element.tagName.toLowerCase() == 'form')
1443       this.registerFormCallbacks();
1444     else
1445       this.registerCallback(this.element);
1446   },
1447
1448   onElementEvent: function() {
1449     var value = this.getValue();
1450     if (this.lastValue != value) {
1451       this.callback(this.element, value);
1452       this.lastValue = value;
1453     }
1454   },
1455
1456   registerFormCallbacks: function() {
1457     var elements = Form.getElements(this.element);
1458     for (var i = 0; i < elements.length; i++)
1459       this.registerCallback(elements[i]);
1460   },
1461
1462   registerCallback: function(element) {
1463     if (element.type) {
1464       switch (element.type.toLowerCase()) {
1465         case 'checkbox':
1466         case 'radio':
1467           Event.observe(element, 'click', this.onElementEvent.bind(this));
1468           break;
1469         case 'password':
1470         case 'text':
1471         case 'textarea':
1472         case 'select-one':
1473         case 'select-multiple':
1474           Event.observe(element, 'change', this.onElementEvent.bind(this));
1475           break;
1476       }
1477     }
1478   }
1479 }
1480
1481 Form.Element.EventObserver = Class.create();
1482 Form.Element.EventObserver.prototype = Object.extend(new Abstract.EventObserver(), {
1483   getValue: function() {
1484     return Form.Element.getValue(this.element);
1485   }
1486 });
1487
1488 Form.EventObserver = Class.create();
1489 Form.EventObserver.prototype = Object.extend(new Abstract.EventObserver(), {
1490   getValue: function() {
1491     return Form.serialize(this.element);
1492   }
1493 });
1494 if (!window.Event) {
1495   var Event = new Object();
1496 }
1497
1498 Object.extend(Event, {
1499   KEY_BACKSPACE: 8,
1500   KEY_TAB:       9,
1501   KEY_RETURN:   13,
1502   KEY_ESC:      27,
1503   KEY_LEFT:     37,
1504   KEY_UP:       38,
1505   KEY_RIGHT:    39,
1506   KEY_DOWN:     40,
1507   KEY_DELETE:   46,
1508
1509   element: function(event) {
1510     return event.target || event.srcElement;
1511   },
1512
1513   isLeftClick: function(event) {
1514     return (((event.which) && (event.which == 1)) ||
1515             ((event.button) && (event.button == 1)));
1516   },
1517
1518   pointerX: function(event) {
1519     return event.pageX || (event.clientX +
1520       (document.documentElement.scrollLeft || document.body.scrollLeft));
1521   },
1522
1523   pointerY: function(event) {
1524     return event.pageY || (event.clientY +
1525       (document.documentElement.scrollTop || document.body.scrollTop));
1526   },
1527
1528   stop: function(event) {
1529     if (event.preventDefault) {
1530       event.preventDefault();
1531       event.stopPropagation();
1532     } else {
1533       event.returnValue = false;
1534       event.cancelBubble = true;
1535     }
1536   },
1537
1538   // find the first node with the given tagName, starting from the
1539   // node the event was triggered on; traverses the DOM upwards
1540   findElement: function(event, tagName) {
1541     var element = Event.element(event);
1542     while (element.parentNode && (!element.tagName ||
1543         (element.tagName.toUpperCase() != tagName.toUpperCase())))
1544       element = element.parentNode;
1545     return element;
1546   },
1547
1548   observers: false,
1549
1550   _observeAndCache: function(element, name, observer, useCapture) {
1551     if (!this.observers) this.observers = [];
1552     if (element.addEventListener) {
1553       this.observers.push([element, name, observer, useCapture]);
1554       element.addEventListener(name, observer, useCapture);
1555     } else if (element.attachEvent) {
1556       this.observers.push([element, name, observer, useCapture]);
1557       element.attachEvent('on' + name, observer);
1558     }
1559   },
1560
1561   unloadCache: function() {
1562     if (!Event.observers) return;
1563     for (var i = 0; i < Event.observers.length; i++) {
1564       Event.stopObserving.apply(this, Event.observers[i]);
1565       Event.observers[i][0] = null;
1566     }
1567     Event.observers = false;
1568   },
1569
1570   observe: function(element, name, observer, useCapture) {
1571     var element = $(element);
1572     useCapture = useCapture || false;
1573
1574     if (name == 'keypress' &&
1575         (navigator.appVersion.match(/Konqueror|Safari|KHTML/)
1576         || element.attachEvent))
1577       name = 'keydown';
1578
1579     this._observeAndCache(element, name, observer, useCapture);
1580   },
1581
1582   stopObserving: function(element, name, observer, useCapture) {
1583     var element = $(element);
1584     useCapture = useCapture || false;
1585
1586     if (name == 'keypress' &&
1587         (navigator.appVersion.match(/Konqueror|Safari|KHTML/)
1588         || element.detachEvent))
1589       name = 'keydown';
1590
1591     if (element.removeEventListener) {
1592       element.removeEventListener(name, observer, useCapture);
1593     } else if (element.detachEvent) {
1594       element.detachEvent('on' + name, observer);
1595     }
1596   }
1597 });
1598
1599 /* prevent memory leaks in IE */
1600 Event.observe(window, 'unload', Event.unloadCache, false);
1601 var Position = {
1602   // set to true if needed, warning: firefox performance problems
1603   // NOT neeeded for page scrolling, only if draggable contained in
1604   // scrollable elements
1605   includeScrollOffsets: false,
1606
1607   // must be called before calling withinIncludingScrolloffset, every time the
1608   // page is scrolled
1609   prepare: function() {
1610     this.deltaX =  window.pageXOffset
1611                 || document.documentElement.scrollLeft
1612                 || document.body.scrollLeft
1613                 || 0;
1614     this.deltaY =  window.pageYOffset
1615                 || document.documentElement.scrollTop
1616                 || document.body.scrollTop
1617                 || 0;
1618   },
1619
1620   realOffset: function(element) {
1621     var valueT = 0, valueL = 0;
1622     do {
1623       valueT += element.scrollTop  || 0;
1624       valueL += element.scrollLeft || 0;
1625       element = element.parentNode;
1626     } while (element);
1627     return [valueL, valueT];
1628   },
1629
1630   cumulativeOffset: function(element) {
1631     var valueT = 0, valueL = 0;
1632     do {
1633       valueT += element.offsetTop  || 0;
1634       valueL += element.offsetLeft || 0;
1635       element = element.offsetParent;
1636     } while (element);
1637     return [valueL, valueT];
1638   },
1639
1640   positionedOffset: function(element) {
1641     var valueT = 0, valueL = 0;
1642     do {
1643       valueT += element.offsetTop  || 0;
1644       valueL += element.offsetLeft || 0;
1645       element = element.offsetParent;
1646       if (element) {
1647         p = Element.getStyle(element, 'position');
1648         if (p == 'relative' || p == 'absolute') break;
1649       }
1650     } while (element);
1651     return [valueL, valueT];
1652   },
1653
1654   offsetParent: function(element) {
1655     if (element.offsetParent) return element.offsetParent;
1656     if (element == document.body) return element;
1657
1658     while ((element = element.parentNode) && element != document.body)
1659       if (Element.getStyle(element, 'position') != 'static')
1660         return element;
1661
1662     return document.body;
1663   },
1664
1665   // caches x/y coordinate pair to use with overlap
1666   within: function(element, x, y) {
1667     if (this.includeScrollOffsets)
1668       return this.withinIncludingScrolloffsets(element, x, y);
1669     this.xcomp = x;
1670     this.ycomp = y;
1671     this.offset = this.cumulativeOffset(element);
1672
1673     return (y >= this.offset[1] &&
1674             y <  this.offset[1] + element.offsetHeight &&
1675             x >= this.offset[0] &&
1676             x <  this.offset[0] + element.offsetWidth);
1677   },
1678
1679   withinIncludingScrolloffsets: function(element, x, y) {
1680     var offsetcache = this.realOffset(element);
1681
1682     this.xcomp = x + offsetcache[0] - this.deltaX;
1683     this.ycomp = y + offsetcache[1] - this.deltaY;
1684     this.offset = this.cumulativeOffset(element);
1685
1686     return (this.ycomp >= this.offset[1] &&
1687             this.ycomp <  this.offset[1] + element.offsetHeight &&
1688             this.xcomp >= this.offset[0] &&
1689             this.xcomp <  this.offset[0] + element.offsetWidth);
1690   },
1691
1692   // within must be called directly before
1693   overlap: function(mode, element) {
1694     if (!mode) return 0;
1695     if (mode == 'vertical')
1696       return ((this.offset[1] + element.offsetHeight) - this.ycomp) /
1697         element.offsetHeight;
1698     if (mode == 'horizontal')
1699       return ((this.offset[0] + element.offsetWidth) - this.xcomp) /
1700         element.offsetWidth;
1701   },
1702
1703   clone: function(source, target) {
1704     source = $(source);
1705     target = $(target);
1706     target.style.position = 'absolute';
1707     var offsets = this.cumulativeOffset(source);
1708     target.style.top    = offsets[1] + 'px';
1709     target.style.left   = offsets[0] + 'px';
1710     target.style.width  = source.offsetWidth + 'px';
1711     target.style.height = source.offsetHeight + 'px';
1712   },
1713
1714   page: function(forElement) {
1715     var valueT = 0, valueL = 0;
1716
1717     var element = forElement;
1718     do {
1719       valueT += element.offsetTop  || 0;
1720       valueL += element.offsetLeft || 0;
1721
1722       // Safari fix
1723       if (element.offsetParent==document.body)
1724         if (Element.getStyle(element,'position')=='absolute') break;
1725
1726     } while (element = element.offsetParent);
1727
1728     element = forElement;
1729     do {
1730       valueT -= element.scrollTop  || 0;
1731       valueL -= element.scrollLeft || 0;
1732     } while (element = element.parentNode);
1733
1734     return [valueL, valueT];
1735   },
1736
1737   clone: function(source, target) {
1738     var options = Object.extend({
1739       setLeft:    true,
1740       setTop:     true,
1741       setWidth:   true,
1742       setHeight:  true,
1743       offsetTop:  0,
1744       offsetLeft: 0
1745     }, arguments[2] || {})
1746
1747     // find page position of source
1748     source = $(source);
1749     var p = Position.page(source);
1750
1751     // find coordinate system to use
1752     target = $(target);
1753     var delta = [0, 0];
1754     var parent = null;
1755     // delta [0,0] will do fine with position: fixed elements,
1756     // position:absolute needs offsetParent deltas
1757     if (Element.getStyle(target,'position') == 'absolute') {
1758       parent = Position.offsetParent(target);
1759       delta = Position.page(parent);
1760     }
1761
1762     // correct by body offsets (fixes Safari)
1763     if (parent == document.body) {
1764       delta[0] -= document.body.offsetLeft;
1765       delta[1] -= document.body.offsetTop;
1766     }
1767
1768     // set position
1769     if(options.setLeft)   target.style.left  = (p[0] - delta[0] + options.offsetLeft) + 'px';
1770     if(options.setTop)    target.style.top   = (p[1] - delta[1] + options.offsetTop) + 'px';
1771     if(options.setWidth)  target.style.width = source.offsetWidth + 'px';
1772     if(options.setHeight) target.style.height = source.offsetHeight + 'px';
1773   },
1774
1775   absolutize: function(element) {
1776     element = $(element);
1777     if (element.style.position == 'absolute') return;
1778     Position.prepare();
1779
1780     var offsets = Position.positionedOffset(element);
1781     var top     = offsets[1];
1782     var left    = offsets[0];
1783     var width   = element.clientWidth;
1784     var height  = element.clientHeight;
1785
1786     element._originalLeft   = left - parseFloat(element.style.left  || 0);
1787     element._originalTop    = top  - parseFloat(element.style.top || 0);
1788     element._originalWidth  = element.style.width;
1789     element._originalHeight = element.style.height;
1790
1791     element.style.position = 'absolute';
1792     element.style.top    = top + 'px';;
1793     element.style.left   = left + 'px';;
1794     element.style.width  = width + 'px';;
1795     element.style.height = height + 'px';;
1796   },
1797
1798   relativize: function(element) {
1799     element = $(element);
1800     if (element.style.position == 'relative') return;
1801     Position.prepare();
1802
1803     element.style.position = 'relative';
1804     var top  = parseFloat(element.style.top  || 0) - (element._originalTop || 0);
1805     var left = parseFloat(element.style.left || 0) - (element._originalLeft || 0);
1806
1807     element.style.top    = top + 'px';
1808     element.style.left   = left + 'px';
1809     element.style.height = element._originalHeight;
1810     element.style.width  = element._originalWidth;
1811   }
1812 }
1813
1814 // Safari returns margins on body which is incorrect if the child is absolutely
1815 // positioned.  For performance reasons, redefine Position.cumulativeOffset for
1816 // KHTML/WebKit only.
1817 if (/Konqueror|Safari|KHTML/.test(navigator.userAgent)) {
1818   Position.cumulativeOffset = function(element) {
1819     var valueT = 0, valueL = 0;
1820     do {
1821       valueT += element.offsetTop  || 0;
1822       valueL += element.offsetLeft || 0;
1823       if (element.offsetParent == document.body)
1824         if (Element.getStyle(element, 'position') == 'absolute') break;
1825
1826       element = element.offsetParent;
1827     } while (element);
1828
1829     return [valueL, valueT];
1830   }
1831 }
1832 </script>
1833 <script type="text/javascript">
1834 /* code modified from ColdFusion's cfdump code */
1835 /* code modified from original dBug */
1836 dBug = new Object();
1837 dBug.toggleRow = function(source) {
1838                 var source = Event.element(source);
1839                 var target=(document.all) ? source.parentElement.cells[1] : source.parentNode.lastChild
1840                 dBug.toggleTarget(target,dBug.toggleSource(source));
1841         }
1842        
1843 dBug.toggleSource = function(source) {
1844                 if (source.style.fontStyle=='italic') {
1845                         source.style.fontStyle='normal';
1846                         source.title='click to collapse';
1847                         return 'open';
1848                 } else {
1849                         source.style.fontStyle='italic';
1850                         source.title='click to expand';
1851                         return 'closed';
1852                 }
1853         }
1854
1855 dBug.toggleTarget = function(target,switchToState) {
1856                 target.style.display=(switchToState=='open') ? '' : 'none';
1857         }
1858
1859 dBug.toggleTable = function(source) {
1860                 var source = Event.element(source);
1861                 var switchToState=dBug.toggleSource(source);
1862                 if(document.all) {
1863                         var table=source.parentElement.parentElement;
1864                         for(var i=1;i<table.rows.length;i++) {
1865                                 target=table.rows[i];
1866                                 dBug.toggleTarget(target,switchToState);
1867                         }
1868                 }
1869                 else {
1870                         var table=source.parentNode.parentNode;
1871                         for (var i=1;i<table.childNodes.length;i++) {
1872                                 target=table.childNodes[i];
1873                                 if(target.style) {
1874                                         dBug.toggleTarget(target,switchToState);
1875                                 }
1876                         }
1877                 }
1878         }
1879
1880 dBug.attachHandlers = function(cls, mtd) {
1881                 $A(document.getElementsByClassName(cls)).each(
1882                         function (td) {
1883                                         Event.observe( td, 'click', mtd );
1884                                         Event.observe( td, 'mouseover',
1885                                                 function( ev ) {
1886                                                         el = Event.element(ev);
1887                                                         el.style.cursor = 'pointer';
1888                                                 }
1889                                         );
1890                                         Event.observe( td, 'mouseout',
1891                                                 function( ev ) {
1892                                                         el = Event.element(ev);
1893                                                         el.style.cursor = 'auto';
1894                                                 }
1895                                         );
1896                                 }
1897                 );
1898         }
1899
1900 dBug.initialize = function() {
1901                 $A(dBug.types).each(
1902                         function (str) {
1903                                 dBug.attachHandlers( "dBug_" + str + "Header", dBug.toggleTable );
1904                                 dBug.attachHandlers( "dBug_" + str + "Key", dBug.toggleRow );
1905                         }
1906                 );
1907         }
1908
1909 dBug.types = ['resource', 'object', 'array', 'boolean', 'gd', 'xml',
1910         'fbsql', 'mssql', 'msql', 'pgsql', 'sybase-db', 'sybase-ct', 'mysql'];
1911
1912
1913 Event.observe( window, 'load', dBug.initialize );
1914 </script>
1915 </head>
1916 <body>
1917
1918 <table class="dBug_object" cellpadding="3" cellspacing="2">
1919                                 <tbody><tr>
1920                                         <td class="dBug_objectHeader" colspan="2">Object id #14 (SGL_Output)</td>
1921                                 </tr><tr>
1922                                 <td class="dBug_objectKey" valign="top">onLoad</td>
1923                                 <td>[empty]</td>
1924 </tr>
1925 <tr>
1926                                 <td class="dBug_objectKey" valign="top">aOnLoadEvents</td>
1927                                 <td>[empty]</td>
1928 </tr>
1929 <tr>
1930                                 <td class="dBug_objectKey" valign="top">moduleName</td>
1931                                 <td>default</td>
1932 </tr>
1933 <tr>
1934                                 <td class="dBug_objectKey" valign="top">masterTemplate</td>
1935                                 <td>home.html</td>
1936 </tr>
1937 <tr>
1938                                 <td class="dBug_objectKey" valign="top">template</td>
1939                                 <td>home.html</td>
1940 </tr>
1941 <tr>
1942                                 <td class="dBug_objectKey" valign="top">pageTitle</td>
1943                                 <td>Home</td>
1944 </tr>
1945 <tr>
1946                                 <td class="dBug_objectKey" valign="top">welcome</td>
1947                                 <td>[empty]</td>
1948 </tr>
1949 <tr>
1950                                 <td class="dBug_objectKey" valign="top">action</td>
1951                                 <td>list</td>
1952 </tr>
1953 <tr>
1954                                 <td class="dBug_objectKey" valign="top">request</td>
1955                                 <td><table class="dBug_object" cellpadding="3" cellspacing="2">
1956                                 <tbody><tr>
1957                                         <td style="cursor: pointer;" class="dBug_objectHeader" colspan="2">Object id #10 (SGL_Request)</td>
1958                                 </tr><tr>
1959                                 <td class="dBug_objectKey" valign="top">aProps</td>
1960                                 <td><table class="dBug_array" cellpadding="3" cellspacing="2">
1961                                 <tbody><tr>
1962                                         <td class="dBug_arrayHeader" colspan="2">array (2)</td>
1963                                 </tr><tr>
1964                                 <td class="dBug_arrayKey" valign="top">moduleName</td>
1965                                 <td>default</td>
1966 </tr>
1967 <tr>
1968                                 <td class="dBug_arrayKey" valign="top">managerName</td>
1969                                 <td>default</td>
1970 </tr>
1971 </tbody></table></td>
1972 </tr>
1973 <tr>
1974                                 <td class="dBug_objectKey" valign="top">init</td>
1975                                 <td>[function]</td>
1976 </tr>
1977 <tr>
1978                                 <td class="dBug_objectKey" valign="top">singleton</td>
1979                                 <td>[function]</td>
1980 </tr>
1981 <tr>
1982                                 <td class="dBug_objectKey" valign="top">isEmpty</td>
1983                                 <td>[function]</td>
1984 </tr>
1985 <tr>
1986                                 <td class="dBug_objectKey" valign="top">initHttp</td>
1987                                 <td>[function]</td>
1988 </tr>
1989 <tr>
1990                                 <td class="dBug_objectKey" valign="top">initCli</td>
1991                                 <td>[function]</td>
1992 </tr>
1993 <tr>
1994                                 <td class="dBug_objectKey" valign="top">merge</td>
1995                                 <td>[function]</td>
1996 </tr>
1997 <tr>
1998                                 <td class="dBug_objectKey" valign="top">get</td>
1999                                 <td>[function]</td>
2000 </tr>
2001 <tr>
2002                                 <td class="dBug_objectKey" valign="top">set</td>
2003                                 <td>[function]</td>
2004 </tr>
2005 <tr>
2006                                 <td class="dBug_objectKey" valign="top">add</td>
2007                                 <td>[function]</td>
2008 </tr>
2009 <tr>
2010                                 <td class="dBug_objectKey" valign="top">getAll</td>
2011                                 <td>[function]</td>
2012 </tr>
2013 <tr>
2014                                 <td class="dBug_objectKey" valign="top">getModuleName</td>
2015                                 <td>[function]</td>
2016 </tr>
2017 <tr>
2018                                 <td class="dBug_objectKey" valign="top">getManagerName</td>
2019                                 <td>[function]</td>
2020 </tr>
2021 <tr>
2022                                 <td class="dBug_objectKey" valign="top">getUri</td>
2023                                 <td>[function]</td>
2024 </tr>
2025 <tr>
2026                                 <td class="dBug_objectKey" valign="top">debug</td>
2027                                 <td>[function]</td>
2028 </tr>
2029 </tbody></table></td>
2030 </tr>
2031 <tr>
2032                                 <td class="dBug_objectKey" valign="top">manager</td>
2033                                 <td><table class="dBug_object" cellpadding="3" cellspacing="2">
2034                                 <tbody><tr>
2035                                         <td class="dBug_objectHeader" colspan="2">Object id #36 (DefaultMgr)</td>
2036                                 </tr><tr>
2037                                 <td class="dBug_objectKey" valign="top">masterTemplate</td>
2038                                 <td>master.html</td>
2039 </tr>
2040 <tr>
2041                                 <td class="dBug_objectKey" valign="top">template</td>
2042                                 <td>home.html</td>
2043 </tr>
2044 <tr>
2045                                 <td class="dBug_objectKey" valign="top">pageTitle</td>
2046                                 <td>Home</td>
2047 </tr>
2048 <tr>
2049                                 <td class="dBug_objectKey" valign="top">validated</td>
2050                                 <td>TRUE</td>
2051 </tr>
2052 <tr>
2053                                 <td class="dBug_objectKey" valign="top">sortBy</td>
2054                                 <td>[empty]</td>
2055 </tr>
2056 <tr>
2057                                 <td class="dBug_objectKey" valign="top">_aActionsMapping</td>
2058                                 <td><table class="dBug_array" cellpadding="3" cellspacing="2">
2059                                 <tbody><tr>
2060                                         <td class="dBug_arrayHeader" colspan="2">array (1)</td>
2061                                 </tr><tr>
2062                                 <td class="dBug_arrayKey" valign="top">list</td>
2063                                 <td><table class="dBug_array" cellpadding="3" cellspacing="2">
2064                                 <tbody><tr>
2065                                         <td class="dBug_arrayHeader" colspan="2">array (1)</td>
2066                                 </tr><tr>
2067                                 <td class="dBug_arrayKey" valign="top">0</td>
2068                                 <td>list</td>
2069 </tr>
2070 </tbody></table></td>
2071 </tr>
2072 </tbody></table></td>
2073 </tr>
2074 <tr>
2075                                 <td class="dBug_objectKey" valign="top">DefaultMgr</td>
2076                                 <td>[function]</td>
2077 </tr>
2078 <tr>
2079                                 <td class="dBug_objectKey" valign="top">validate</td>
2080                                 <td>[function]</td>
2081 </tr>
2082 <tr>
2083                                 <td class="dBug_objectKey" valign="top">_cmd_list</td>
2084                                 <td>[function]</td>
2085 </tr>
2086 <tr>
2087                                 <td class="dBug_objectKey" valign="top">SGL_Manager</td>
2088                                 <td>[function]</td>
2089 </tr>
2090 <tr>
2091                                 <td class="dBug_objectKey" valign="top">_getDb</td>
2092                                 <td>[function]</td>
2093 </tr>
2094 <tr>
2095                                 <td class="dBug_objectKey" valign="top">getConfig</td>
2096                                 <td>[function]</td>
2097 </tr>
2098 <tr>
2099                                 <td class="dBug_objectKey" valign="top">process</td>
2100                                 <td>[function]</td>
2101 </tr>
2102 <tr>
2103                                 <td class="dBug_objectKey" valign="top">_authorise</td>
2104                                 <td>[function]</td>
2105 </tr>
2106 <tr>
2107                                 <td class="dBug_objectKey" valign="top">getTemplate</td>
2108                                 <td>[function]</td>
2109 </tr>
2110 <tr>
2111                                 <td class="dBug_objectKey" valign="top">display</td>
2112                                 <td>[function]</td>
2113 </tr>
2114 <tr>
2115                                 <td class="dBug_objectKey" valign="top">isValid</td>
2116                                 <td>[function]</td>
2117 </tr>
2118 <tr>
2119                                 <td class="dBug_objectKey" valign="top">_cmd_redirectToDefault</td>
2120                                 <td>[function]</td>
2121 </tr>
2122 <tr>
2123                                 <td class="dBug_objectKey" valign="top">getDefaultPageParams</td>
2124                                 <td>[function]</td>
2125 </tr>
2126 </tbody></table></td>
2127 </tr>
2128 <tr>
2129                                 <td class="dBug_objectKey" valign="top">session</td>
2130                                 <td><table class="dBug_object" cellpadding="3" cellspacing="2">
2131                                 <tbody><tr>
2132                                         <td class="dBug_objectHeader" colspan="2">Object id #37 (SGL_Session)</td>
2133                                 </tr><tr>
2134                                 <td class="dBug_objectKey" valign="top">_timeout</td>
2135                                 <td>[empty]</td>
2136 </tr>
2137 <tr>
2138                                 <td class="dBug_objectKey" valign="top">SGL_Session</td>
2139                                 <td>[function]</td>
2140 </tr>
2141 <tr>
2142                                 <td class="dBug_objectKey" valign="top">_init</td>
2143                                 <td>[function]</td>
2144 </tr>
2145 <tr>
2146                                 <td class="dBug_objectKey" valign="top">exists</td>
2147                                 <td>[function]</td>
2148 </tr>
2149 <tr>
2150                                 <td class="dBug_objectKey" valign="top">isValid</td>
2151                                 <td>[function]</td>
2152 </tr>
2153 <tr>
2154                                 <td class="dBug_objectKey" valign="top">isTimedOut</td>
2155                                 <td>[function]</td>
2156 </tr>
2157 <tr>
2158                                 <td class="dBug_objectKey" valign="top">hasPerms</td>
2159                                 <td>[function]</td>
2160 </tr>
2161 <tr>
2162                                 <td class="dBug_objectKey" valign="top">currentUserIsOwner</td>
2163                                 <td>[function]</td>
2164 </tr>
2165 <tr>
2166                                 <td class="dBug_objectKey" valign="top">getUid</td>
2167                                 <td>[function]</td>
2168 </tr>
2169 <tr>
2170                                 <td class="dBug_objectKey" valign="top">getUsername</td>
2171                                 <td>[function]</td>
2172 </tr>
2173 <tr>
2174                                 <td class="dBug_objectKey" valign="top">getRoleId</td>
2175                                 <td>[function]</td>
2176 </tr>
2177 <tr>
2178                                 <td class="dBug_objectKey" valign="top">getOrganisationId</td>
2179                                 <td>[function]</td>
2180 </tr>
2181 <tr>
2182                                 <td class="dBug_objectKey" valign="top">remove</td>
2183                                 <td>[function]</td>
2184 </tr>
2185 <tr>
2186                                 <td class="dBug_objectKey" valign="top">get</td>
2187                                 <td>[function]</td>
2188 </tr>
2189 <tr>
2190                                 <td class="dBug_objectKey" valign="top">set</td>
2191                                 <td>[function]</td>
2192 </tr>
2193 <tr>
2194                                 <td class="dBug_objectKey" valign="top">debug</td>
2195                                 <td>[function]</td>
2196 </tr>
2197 <tr>
2198                                 <td class="dBug_objectKey" valign="top">getId</td>
2199                                 <td>[function]</td>
2200 </tr>
2201 <tr>
2202                                 <td class="dBug_objectKey" valign="top">destroy</td>
2203                                 <td>[function]</td>
2204 </tr>
2205 <tr>
2206                                 <td class="dBug_objectKey" valign="top">getUserSessionCount</td>
2207                                 <td>[function]</td>
2208 </tr>
2209 <tr>
2210                                 <td class="dBug_objectKey" valign="top">destroyUserSessions</td>
2211                                 <td>[function]</td>
2212 </tr>
2213 <tr>
2214                                 <td class="dBug_objectKey" valign="top">getGuestSessionCount</td>
2215                                 <td>[function]</td>
2216 </tr>
2217 <tr>
2218                                 <td class="dBug_objectKey" valign="top">getMemberSessionCount</td>
2219                                 <td>[function]</td>
2220 </tr>
2221 <tr>
2222                                 <td class="dBug_objectKey" valign="top">getSessionCount</td>
2223                                 <td>[function]</td>
2224 </tr>
2225 <tr>
2226                                 <td class="dBug_objectKey" valign="top">dbOpen</td>
2227                                 <td>[function]</td>
2228 </tr>
2229 <tr>
2230                                 <td class="dBug_objectKey" valign="top">dbClose</td>
2231                                 <td>[function]</td>
2232 </tr>
2233 <tr>
2234                                 <td class="dBug_objectKey" valign="top">dbRead</td>
2235                                 <td>[function]</td>
2236 </tr>
2237 <tr>
2238                                 <td class="dBug_objectKey" valign="top">dbWrite</td>
2239                                 <td>[function]</td>
2240 </tr>
2241 <tr>
2242                                 <td class="dBug_objectKey" valign="top">dbDestroy</td>
2243                                 <td>[function]</td>
2244 </tr>
2245 <tr>
2246                                 <td class="dBug_objectKey" valign="top">dbGc</td>
2247                                 <td>[function]</td>
2248 </tr>
2249 </tbody></table></td>
2250 </tr>
2251 <tr>
2252                                 <td class="dBug_objectKey" valign="top">currUrl</td>
2253                                 <td>/seagull/www/index.php</td>
2254 </tr>
2255 <tr>
2256                                 <td class="dBug_objectKey" valign="top">currLang</td>
2257                                 <td>en</td>
2258 </tr>
2259 <tr>
2260                                 <td class="dBug_objectKey" valign="top">theme</td>
2261                                 <td>default</td>
2262 </tr>
2263 <tr>
2264                                 <td class="dBug_objectKey" valign="top">charset</td>
2265                                 <td>iso-8859-15</td>
2266 </tr>
2267 <tr>
2268                                 <td class="dBug_objectKey" valign="top">webRoot</td>
2269                                 <td>http://localhost/seagull/www</td>
2270 </tr>
2271 <tr>
2272                                 <td class="dBug_objectKey" valign="top">imagesDir</td>
2273                                 <td>http://localhost/seagull/www/themes/default/images</td>
2274 </tr>
2275 <tr>
2276                                 <td class="dBug_objectKey" valign="top">versionAPI</td>
2277                                 <td>0.7.0</td>
2278 </tr>
2279 <tr>
2280                                 <td class="dBug_objectKey" valign="top">sessID</td>
2281                                 <td>SGLSESSID=47a2dc70138ec5231f3d6035783798f0</td>
2282 </tr>
2283 <tr>
2284                                 <td class="dBug_objectKey" valign="top">scriptOpen</td>
2285                                 <td>
2286 <script type="text/javascript"> <!--
2287 </td>
2288 </tr>
2289 <tr>
2290                                 <td valign="top" class="dBug_objectKey">scriptClose</td>
2291                                 <td>
2292 //--> </script>
2293 </td>
2294 </tr>
2295 <tr>
2296                                 <td class="dBug_objectKey" valign="top">isMinimalInstall</td>
2297                                 <td>[empty]</td>
2298 </tr>
2299 <tr>
2300                                 <td style="cursor: auto;" class="dBug_objectKey" valign="top">conf</td>
2301                                 <td><table class="dBug_array" cellpadding="3" cellspacing="2">
2302                                 <tbody><tr>
2303                                         <td class="dBug_arrayHeader" colspan="2">array (28)</td>
2304                                 </tr><tr>
2305                                 <td class="dBug_arrayKey" valign="top">db</td>
2306                                 <td><table class="dBug_array" cellpadding="3" cellspacing="2">
2307                                 <tbody><tr>
2308                                         <td class="dBug_arrayHeader" colspan="2">array (10)</td>
2309                                 </tr><tr>
2310                                 <td class="dBug_arrayKey" valign="top">type</td>
2311                                 <td>mysql_SGL</td>
2312 </tr>
2313 <tr>
2314                                 <td class="dBug_arrayKey" valign="top">host</td>
2315                                 <td>localhost</td>
2316 </tr>
2317 <tr>
2318                                 <td class="dBug_arrayKey" valign="top">protocol</td>
2319                                 <td>unix</td>
2320 </tr>
2321 <tr>
2322                                 <td class="dBug_arrayKey" valign="top">socket</td>
2323                                 <td>[empty string]</td>
2324 </tr>
2325 <tr>
2326                                 <td class="dBug_arrayKey" valign="top">port</td>
2327                                 <td>3306</td>
2328 </tr>
2329 <tr>
2330                                 <td class="dBug_arrayKey" valign="top">user</td>
2331                                 <td>root</td>
2332 </tr>
2333 <tr>
2334                                 <td class="dBug_arrayKey" valign="top">pass</td>
2335                                 <td>[empty string]</td>
2336 </tr>
2337 <tr>
2338                                 <td class="dBug_arrayKey" valign="top">name</td>
2339                                 <td>seagull</td>
2340 </tr>
2341 <tr>
2342                                 <td class="dBug_arrayKey" valign="top">postConnect</td>
2343                                 <td>[empty string]</td>
2344 </tr>
2345 <tr>
2346                                 <td class="dBug_arrayKey" valign="top">prefix</td>
2347                                 <td>not implemented yet</td>
2348 </tr>
2349 </tbody></table></td>
2350 </tr>
2351 <tr>
2352                                 <td class="dBug_arrayKey" valign="top">site</td>
2353                                 <td><table class="dBug_array" cellpadding="3" cellspacing="2">
2354                                 <tbody><tr>
2355                                         <td class="dBug_arrayHeader" colspan="2">array (28)</td>
2356                                 </tr><tr>
2357                                 <td class="dBug_arrayKey" valign="top">outputUrlHandler</td>
2358                                 <td>SGL_UrlParser_SefStrategy</td>
2359 </tr>
2360 <tr>
2361                                 <td class="dBug_arrayKey" valign="top">name</td>
2362                                 <td>Seagull Framework</td>
2363 </tr>
2364 <tr>
2365                                 <td class="dBug_arrayKey" valign="top">showLogo</td>
2366                                 <td>logo.png</td>
2367 </tr>
2368 <tr>
2369                                 <td class="dBug_arrayKey" valign="top">compression</td>
2370                                 <td>[empty string]</td>
2371 </tr>
2372 <tr>
2373                                 <td class="dBug_arrayKey" valign="top">outputBuffering</td>
2374                                 <td>[empty string]</td>
2375 </tr>
2376 <tr>
2377                                 <td class="dBug_arrayKey" valign="top">banIpEnabled</td>
2378                                 <td>[empty string]</td>
2379 </tr>
2380 <tr>
2381                                 <td class="dBug_arrayKey" valign="top">denyList</td>
2382                                 <td>[empty string]</td>
2383 </tr>
2384 <tr>
2385                                 <td class="dBug_arrayKey" valign="top">allowList</td>
2386                                 <td>[empty string]</td>
2387 </tr>
2388 <tr>
2389                                 <td class="dBug_arrayKey" valign="top">tidyhtml</td>
2390                                 <td>[empty string]</td>
2391 </tr>
2392 <tr>
2393                                 <td class="dBug_arrayKey" valign="top">blocksEnabled</td>
2394                                 <td>TRUE</td>
2395 </tr>
2396 <tr>
2397                                 <td class="dBug_arrayKey" valign="top">safeDelete</td>
2398                                 <td>1</td>
2399 </tr>
2400 <tr>
2401                                 <td class="dBug_arrayKey" valign="top">frontScriptName</td>
2402                                 <td>index.php</td>
2403 </tr>
2404 <tr>
2405                                 <td class="dBug_arrayKey" valign="top">defaultModule</td>
2406                                 <td>default</td>
2407 </tr>
2408 <tr>
2409                                 <td class="dBug_arrayKey" valign="top">defaultManager</td>
2410                                 <td>default</td>
2411 </tr>
2412 <tr>
2413                                 <td class="dBug_arrayKey" valign="top">defaultArticleViewType</td>
2414                                 <td>1</td>
2415 </tr>
2416 <tr>
2417                                 <td class="dBug_arrayKey" valign="top">defaultParams</td>
2418                                 <td>[empty string]</td>
2419 </tr>
2420 <tr>
2421                                 <td class="dBug_arrayKey" valign="top">templateEngine</td>
2422                                 <td>flexy</td>
2423 </tr>
2424 <tr>
2425                                 <td class="dBug_arrayKey" valign="top">wysiwygEditor</td>
2426                                 <td>tinyfck</td>
2427 </tr>
2428 <tr>
2429                                 <td class="dBug_arrayKey" valign="top">extendedLocale</td>
2430                                 <td>[empty string]</td>
2431 </tr>
2432 <tr>
2433                                 <td class="dBug_arrayKey" valign="top">localeCategory</td>
2434                                 <td>'LC_ALL'</td>
2435 </tr>
2436 <tr>
2437                                 <td class="dBug_arrayKey" valign="top">adminGuiTheme</td>
2438                                 <td>default_admin</td>
2439 </tr>
2440 <tr>
2441                                 <td class="dBug_arrayKey" valign="top">defaultTheme</td>
2442                                 <td>default</td>
2443 </tr>
2444 <tr>
2445                                 <td class="dBug_arrayKey" valign="top">filterChain</td>
2446                                 <td>[empty string]</td>
2447 </tr>
2448 <tr>
2449                                 <td class="dBug_arrayKey" valign="top">globalJavascriptOnload</td>
2450                                 <td>[empty string]</td>
2451 </tr>
2452 <tr>
2453                                 <td class="dBug_arrayKey" valign="top">serverTimeOffset</td>
2454                                 <td>UTC</td>
2455 </tr>
2456 <tr>
2457                                 <td class="dBug_arrayKey" valign="top">baseUrl</td>
2458                                 <td>http://localhost/seagull/www</td>
2459 </tr>
2460 <tr>
2461                                 <td class="dBug_arrayKey" valign="top">description</td>
2462                                 <td>Coming soon to a webserver near you.</td>
2463 </tr>
2464 <tr>
2465                                 <td class="dBug_arrayKey" valign="top">keywords</td>
2466                                 <td>seagull, php, framework, cms, content management</td>
2467 </tr>
2468 </tbody></table></td>
2469 </tr>
2470 <tr>
2471                                 <td class="dBug_arrayKey" valign="top">path</td>
2472                                 <td><table class="dBug_array" cellpadding="3" cellspacing="2">
2473                                 <tbody><tr>
2474                                         <td class="dBug_arrayHeader" colspan="2">array (5)</td>
2475                                 </tr><tr>
2476                                 <td class="dBug_arrayKey" valign="top">additionalIncludePath</td>
2477                                 <td>[empty string]</td>
2478 </tr>
2479 <tr>
2480                                 <td class="dBug_arrayKey" valign="top">moduleDirOverride</td>
2481                                 <td>[empty string]</td>
2482 </tr>
2483 <tr>
2484                                 <td class="dBug_arrayKey" valign="top">uploadDirOverride</td>
2485                                 <td>[empty string]</td>
2486 </tr>
2487 <tr>
2488                                 <td class="dBug_arrayKey" valign="top">installRoot</td>
2489                                 <td>C:\bin\xampp\htdocs\seagull</td>
2490 </tr>
2491 <tr>
2492                                 <td class="dBug_arrayKey" valign="top">webRoot</td>
2493                                 <td>C:\bin\xampp\htdocs\seagull/www</td>
2494 </tr>
2495 </tbody></table></td>
2496 </tr>
2497 <tr>
2498                                 <td class="dBug_arrayKey" valign="top">cookie</td>
2499                                 <td><table class="dBug_array" cellpadding="3" cellspacing="2">
2500                                 <tbody><tr>
2501                                         <td class="dBug_arrayHeader" colspan="2">array (4)</td>
2502                                 </tr><tr>
2503                                 <td class="dBug_arrayKey" valign="top">path</td>
2504                                 <td>/</td>
2505 </tr>
2506 <tr>
2507                                 <td class="dBug_arrayKey" valign="top">domain</td>
2508                                 <td>[empty string]</td>
2509 </tr>
2510 <tr>
2511                                 <td class="dBug_arrayKey" valign="top">secure</td>
2512                                 <td>[empty string]</td>
2513 </tr>
2514 <tr>
2515                                 <td class="dBug_arrayKey" valign="top">name</td>
2516                                 <td>SGLSESSID</td>
2517 </tr>
2518 </tbody></table></td>
2519 </tr>
2520 <tr>
2521                                 <td class="dBug_arrayKey" valign="top">session</td>
2522                                 <td><table class="dBug_array" cellpadding="3" cellspacing="2">
2523                                 <tbody><tr>
2524                                         <td class="dBug_arrayHeader" colspan="2">array (5)</td>
2525                                 </tr><tr>
2526                                 <td class="dBug_arrayKey" valign="top">maxLifetime</td>
2527                                 <td>0</td>
2528 </tr>
2529 <tr>
2530                                 <td class="dBug_arrayKey" valign="top">extended</td>
2531                                 <td>0</td>
2532 </tr>
2533 <tr>
2534                                 <td class="dBug_arrayKey" valign="top">singleUser</td>
2535                                 <td>[empty string]</td>
2536 </tr>
2537 <tr>
2538                                 <td class="dBug_arrayKey" valign="top">handler</td>
2539                                 <td>file</td>
2540 </tr>
2541 <tr>
2542                                 <td class="dBug_arrayKey" valign="top">allowedInUri</td>
2543                                 <td>1</td>
2544 </tr>
2545 </tbody></table></td>
2546 </tr>
2547 <tr>
2548                                 <td class="dBug_arrayKey" valign="top">cache</td>
2549                                 <td><table class="dBug_array" cellpadding="3" cellspacing="2">
2550                                 <tbody><tr>
2551                                         <td class="dBug_arrayHeader" colspan="2">array (3)</td>
2552                                 </tr><tr>
2553                                 <td class="dBug_arrayKey" valign="top">enabled</td>
2554                                 <td>[empty string]</td>
2555 </tr>
2556 <tr>
2557                                 <td class="dBug_arrayKey" valign="top">libCacheEnabled</td>
2558                                 <td>[empty string]</td>
2559 </tr>
2560 <tr>
2561                                 <td class="dBug_arrayKey" valign="top">lifetime</td>
2562                                 <td>86400</td>
2563 </tr>
2564 </tbody></table></td>
2565 </tr>
2566 <tr>
2567                                 <td class="dBug_arrayKey" valign="top">debug</td>
2568                                 <td><table class="dBug_array" cellpadding="3" cellspacing="2">
2569                                 <tbody><tr>
2570                                         <td class="dBug_arrayHeader" colspan="2">array (11)</td>
2571                                 </tr><tr>
2572                                 <td class="dBug_arrayKey" valign="top">authorisationEnabled</td>
2573                                 <td>1</td>
2574 </tr>
2575 <tr>
2576                                 <td class="dBug_arrayKey" valign="top">sessionDebugAllowed</td>
2577                                 <td>1</td>
2578 </tr>
2579 <tr>
2580                                 <td class="dBug_arrayKey" valign="top">customErrorHandler</td>
2581                                 <td>1</td>
2582 </tr>
2583 <tr>
2584                                 <td class="dBug_arrayKey" valign="top">production</td>
2585                                 <td>[empty string]</td>
2586 </tr>
2587 <tr>
2588                                 <td class="dBug_arrayKey" valign="top">showBacktrace</td>
2589                                 <td>[empty string]</td>
2590 </tr>
2591 <tr>
2592                                 <td class="dBug_arrayKey" valign="top">profiling</td>
2593                                 <td>[empty string]</td>
2594 </tr>
2595 <tr>
2596                                 <td class="dBug_arrayKey" valign="top">emailAdminThreshold</td>
2597                                 <td>'PEAR_LOG_EMERG'</td>
2598 </tr>
2599 <tr>
2600                                 <td class="dBug_arrayKey" valign="top">showBugReporterLink</td>
2601                                 <td>1</td>
2602 </tr>
2603 <tr>
2604                                 <td class="dBug_arrayKey" valign="top">enableDebugBlock</td>
2605                                 <td>[empty string]</td>
2606 </tr>
2607 <tr>
2608                                 <td class="dBug_arrayKey" valign="top">showUntranslated</td>
2609                                 <td>1</td>
2610 </tr>
2611 <tr>
2612                                 <td class="dBug_arrayKey" valign="top">dataObject</td>
2613                                 <td>0</td>
2614 </tr>
2615 </tbody></table></td>
2616 </tr>
2617 <tr>
2618                                 <td class="dBug_arrayKey" valign="top">translation</td>
2619                                 <td><table class="dBug_array" cellpadding="3" cellspacing="2">
2620                                 <tbody><tr>
2621                                         <td class="dBug_arrayHeader" colspan="2">array (4)</td>
2622                                 </tr><tr>
2623                                 <td class="dBug_arrayKey" valign="top">addMissingTrans</td>
2624                                 <td>FALSE</td>
2625 </tr>
2626 <tr>
2627                                 <td class="dBug_arrayKey" valign="top">fallbackLang</td>
2628                                 <td>en_iso_8859_15</td>
2629 </tr>
2630 <tr>
2631                                 <td class="dBug_arrayKey" valign="top">container</td>
2632                                 <td>file</td>
2633 </tr>
2634 <tr>
2635                                 <td class="dBug_arrayKey" valign="top">installedLanguages</td>
2636                                 <td>pt_br_iso_8859_1,zh_tw_big5,zh_gb2312,zh_utf_8,zh_tw_utf_8,cs_iso_8859_2,nl_iso_8859_1,en_iso_8859_15,fr_iso_8859_1,fr_utf_8,de_iso_8859_1,it_iso_8859_1,ja_euc_jp,ja_utf_8,no_iso_8859_1,pl_iso_8859_2,pt_iso_8859_1,ru_utf_8,ru_windows_1251,es_iso_8859_1,es_utf_8,sv_iso_8859_1,tr_iso_8859_9,tr_utf_8</td>
2637 </tr>
2638 </tbody></table></td>
2639 </tr>
2640 <tr>
2641                                 <td class="dBug_arrayKey" valign="top">navigation</td>
2642                                 <td><table class="dBug_array" cellpadding="3" cellspacing="2">
2643                                 <tbody><tr>
2644                                         <td class="dBug_arrayHeader" colspan="2">array (4)</td>
2645                                 </tr><tr>
2646                                 <td class="dBug_arrayKey" valign="top">enabled</td>
2647                                 <td>1</td>
2648 </tr>
2649 <tr>
2650                                 <td class="dBug_arrayKey" valign="top">renderer</td>
2651                                 <td>SimpleRenderer</td>
2652 </tr>
2653 <tr>
2654                                 <td class="dBug_arrayKey" valign="top">driver</td>
2655                                 <td>SimpleDriver</td>
2656 </tr>
2657 <tr>
2658                                 <td class="dBug_arrayKey" valign="top">stylesheet</td>
2659                                 <td>SglDefault_TwoLevel</td>
2660 </tr>
2661 </tbody></table></td>
2662 </tr>
2663 <tr>
2664                                 <td style="cursor: auto;" class="dBug_arrayKey" valign="top">log</td>
2665                                 <td><table class="dBug_array" cellpadding="3" cellspacing="2">
2666                                 <tbody><tr>
2667                                         <td class="dBug_arrayHeader" colspan="2">array (8)</td>
2668                                 </tr><tr>
2669                                 <td class="dBug_arrayKey" valign="top">enabled</td>
2670                                 <td>[empty string]</td>
2671 </tr>
2672 <tr>
2673                                 <td style="cursor: auto;" class="dBug_arrayKey" valign="top">type</td>
2674                                 <td>file</td>
2675 </tr>
2676 <tr>
2677                                 <td class="dBug_arrayKey" valign="top">name</td>
2678                                 <td>var/log/php_log.txt</td>
2679 </tr>
2680 <tr>
2681                                 <td class="dBug_arrayKey" valign="top">priority</td>
2682                                 <td>7</td>
2683 </tr>
2684 <tr>
2685                                 <td class="dBug_arrayKey" valign="top">ident</td>
2686                                 <td>Seagull</td>
2687 </tr>
2688 <tr>
2689                                 <td class="dBug_arrayKey" valign="top">ignoreRepeated</td>
2690                                 <td>[empty string]</td>
2691 </tr>
2692 <tr>
2693                                 <td class="dBug_arrayKey" valign="top">paramsUsername</td>
2694                                 <td>[empty string]</td>
2695 </tr>
2696 <tr>
2697                                 <td class="dBug_arrayKey" valign="top">paramsPassword</td>
2698                                 <td>[empty string]</td>
2699 </tr>
2700 </tbody></table></td>
2701 </tr>
2702 <tr>
2703                                 <td class="dBug_arrayKey" valign="top">mta</td>
2704                                 <td><table class="dBug_array" cellpadding="3" cellspacing="2">
2705                                 <tbody><tr>
2706                                         <td class="dBug_arrayHeader" colspan="2">array (9)</td>
2707                                 </tr><tr>
2708                                 <td class="dBug_arrayKey" valign="top">backend</td>
2709                                 <td>mail</td>
2710 </tr>
2711 <tr>
2712                                 <td class="dBug_arrayKey" valign="top">sendmailPath</td>
2713                                 <td>/usr/sbin/sendmail</td>
2714 </tr>
2715 <tr>
2716                                 <td class="dBug_arrayKey" valign="top">sendmailArgs</td>
2717                                 <td>-t -i</td>
2718 </tr>
2719 <tr>
2720                                 <td class="dBug_arrayKey" valign="top">smtpHost</td>
2721                                 <td>127.0.0.1</td>
2722 </tr>
2723 <tr>
2724                                 <td class="dBug_arrayKey" valign="top">smtpLocalHost</td>
2725                                 <td>seagullproject.org</td>
2726 </tr>
2727 <tr>
2728                                 <td class="dBug_arrayKey" valign="top">smtpPort</td>
2729                                 <td>25</td>
2730 </tr>
2731 <tr>
2732                                 <td class="dBug_arrayKey" valign="top">smtpAuth</td>
2733                                 <td>0</td>
2734 </tr>
2735 <tr>
2736                                 <td class="dBug_arrayKey" valign="top">smtpUsername</td>
2737                                 <td>[empty string]</td>
2738 </tr>
2739 <tr>
2740                                 <td class="dBug_arrayKey" valign="top">smtpPassword</td>
2741                                 <td>[empty string]</td>
2742 </tr>
2743 </tbody></table></td>
2744 </tr>
2745 <tr>
2746                                 <td style="cursor: auto;" class="dBug_arrayKey" valign="top">email</td>
2747                                 <td><table class="dBug_array" cellpadding="3" cellspacing="2">
2748                                 <tbody><tr>
2749                                         <td class="dBug_arrayHeader" colspan="2">array (3)</td>
2750                                 </tr><tr>
2751                                 <td class="dBug_arrayKey" valign="top">admin</td>
2752                                 <td>admin@fred.com</td>
2753 </tr>
2754 <tr>
2755                                 <td class="dBug_arrayKey" valign="top">support</td>
2756                                 <td>admin@fred.com</td>
2757 </tr>
2758 <tr>
2759                                 <td class="dBug_arrayKey" valign="top">info</td>
2760                                 <td>admin@fred.com</td>
2761 </tr>
2762 </tbody></table></td>
2763 </tr>
2764 <tr>
2765                                 <td style="cursor: auto;" class="dBug_arrayKey" valign="top">popup</td>
2766                                 <td><table class="dBug_array" cellpadding="3" cellspacing="2">
2767                                 <tbody><tr>
2768                                         <td class="dBug_arrayHeader" colspan="2">array (2)</td>
2769                                 </tr><tr>
2770                                 <td class="dBug_arrayKey" valign="top">winHeight</td>
2771                                 <td>500</td>
2772 </tr>
2773 <tr>
2774                                 <td class="dBug_arrayKey" valign="top">winWidth</td>
2775                                 <td>600</td>
2776 </tr>
2777 </tbody></table></td>
2778 </tr>
2779 <tr>
2780                                 <td class="dBug_arrayKey" valign="top">censor</td>
2781                                 <td><table class="dBug_array" cellpadding="3" cellspacing="2">
2782                                 <tbody><tr>
2783                                         <td class="dBug_arrayHeader" colspan="2">array (3)</td>
2784                                 </tr><tr>
2785                                 <td class="dBug_arrayKey" valign="top">mode</td>
2786                                 <td>0</td>
2787 </tr>
2788 <tr>
2789                                 <td class="dBug_arrayKey" valign="top">replaceString</td>
2790                                 <td>*censored*</td>
2791 </tr>
2792 <tr>
2793                                 <td class="dBug_arrayKey" valign="top">badWords</td>
2794                                 <td>your,bad,words,here</td>
2795 </tr>
2796 </tbody></table></td>
2797 </tr>
2798 <tr>
2799                                 <td class="dBug_arrayKey" valign="top">p3p</td>
2800                                 <td><table class="dBug_array" cellpadding="3" cellspacing="2">
2801                                 <tbody><tr>
2802                                         <td class="dBug_arrayHeader" colspan="2">array (3)</td>
2803                                 </tr><tr>
2804                                 <td class="dBug_arrayKey" valign="top">policies</td>
2805                                 <td>1</td>
2806 </tr>
2807 <tr>
2808                                 <td class="dBug_arrayKey" valign="top">policyLocation</td>
2809                                 <td>[empty string]</td>
2810 </tr>
2811 <tr>
2812                                 <td class="dBug_arrayKey" valign="top">compactPolicy</td>
2813                                 <td>CUR ADM OUR NOR STA NID</td>
2814 </tr>
2815 </tbody></table></td>
2816 </tr>
2817 <tr>
2818                                 <td class="dBug_arrayKey" valign="top">tuples</td>
2819                                 <td><table class="dBug_array" cellpadding="3" cellspacing="2">
2820                                 <tbody><tr>
2821                                         <td class="dBug_arrayHeader" colspan="2">array (1)</td>
2822                                 </tr><tr>
2823                                 <td class="dBug_arrayKey" valign="top">version</td>
2824                                 <td>0.7.0</td>
2825 </tr>
2826 </tbody></table></td>
2827 </tr>
2828 <tr>
2829                                 <td class="dBug_arrayKey" valign="top">table</td>
2830                                 <td><table class="dBug_array" cellpadding="3" cellspacing="2">
2831                                 <tbody><tr>
2832                                         <td class="dBug_arrayHeader" colspan="2">array (20)</td>
2833                                 </tr><tr>
2834                                 <td class="dBug_arrayKey" valign="top">block</td>
2835                                 <td>block</td>
2836 </tr>
2837 <tr>
2838                                 <td class="dBug_arrayKey" valign="top">block_role</td>
2839                                 <td>block_role</td>
2840 </tr>
2841 <tr>
2842                                 <td class="dBug_arrayKey" valign="top">block_assignment</td>
2843                                 <td>block_assignment</td>
2844 </tr>
2845 <tr>
2846                                 <td class="dBug_arrayKey" valign="top">module</td>
2847                                 <td>module</td>
2848 </tr>
2849 <tr>
2850                                 <td class="dBug_arrayKey" valign="top">sequence</td>
2851                                 <td>sequence</td>
2852 </tr>
2853 <tr>
2854                                 <td class="dBug_arrayKey" valign="top">translation</td>
2855                                 <td>translation</td>
2856 </tr>
2857 <tr>
2858                                 <td class="dBug_arrayKey" valign="top">uri_alias</td>
2859                                 <td>uri_alias</td>
2860 </tr>
2861 <tr>
2862                                 <td class="dBug_arrayKey" valign="top">section</td>
2863                                 <td>section</td>
2864 </tr>
2865 <tr>
2866                                 <td class="dBug_arrayKey" valign="top">login</td>
2867                                 <td>login</td>
2868 </tr>
2869 <tr>
2870                                 <td class="dBug_arrayKey" valign="top">organisation</td>
2871                                 <td>organisation</td>
2872 </tr>
2873 <tr>
2874                                 <td class="dBug_arrayKey" valign="top">organisation_type</td>
2875                                 <td>organisation_type</td>
2876 </tr>
2877 <tr>
2878                                 <td class="dBug_arrayKey" valign="top">org_preference</td>
2879                                 <td>org_preference</td>
2880 </tr>
2881 <tr>
2882                                 <td class="dBug_arrayKey" valign="top">permission</td>
2883                                 <td>permission</td>
2884 </tr>
2885 <tr>
2886                                 <td class="dBug_arrayKey" valign="top">preference</td>
2887                                 <td>preference</td>
2888 </tr>
2889 <tr>
2890                                 <td class="dBug_arrayKey" valign="top">role</td>
2891                                 <td>role</td>
2892 </tr>
2893 <tr>
2894                                 <td class="dBug_arrayKey" valign="top">role_permission</td>
2895                                 <td>role_permission</td>
2896 </tr>
2897 <tr>
2898                                 <td class="dBug_arrayKey" valign="top">user</td>
2899                                 <td>usr</td>
2900 </tr>
2901 <tr>
2902                                 <td class="dBug_arrayKey" valign="top">user_permission</td>
2903                                 <td>user_permission</td>
2904 </tr>
2905 <tr>
2906                                 <td class="dBug_arrayKey" valign="top">user_preference</td>
2907                                 <td>user_preference</td>
2908 </tr>
2909 <tr>
2910                                 <td class="dBug_arrayKey" valign="top">user_session</td>
2911                                 <td>user_session</td>
2912 </tr>
2913 </tbody></table></td>
2914 </tr>
2915 <tr>
2916                                 <td class="dBug_arrayKey" valign="top">ConfigMgr</td>
2917                                 <td><table class="dBug_array" cellpadding="3" cellspacing="2">
2918                                 <tbody><tr>
2919                                         <td class="dBug_arrayHeader" colspan="2">array (2)</td>
2920                                 </tr><tr>
2921                                 <td class="dBug_arrayKey" valign="top">requiresAuth</td>
2922                                 <td>1</td>
2923 </tr>
2924 <tr>
2925                                 <td class="dBug_arrayKey" valign="top">adminGuiAllowed</td>
2926                                 <td>1</td>
2927 </tr>
2928 </tbody></table></td>
2929 </tr>
2930 <tr>
2931                                 <td class="dBug_arrayKey" valign="top">DefaultMgr</td>
2932                                 <td><table class="dBug_array" cellpadding="3" cellspacing="2">
2933                                 <tbody><tr>
2934                                         <td class="dBug_arrayHeader" colspan="2">array (1)</td>
2935                                 </tr><tr>
2936                                 <td class="dBug_arrayKey" valign="top">requiresAuth</td>
2937                                 <td>[empty string]</td>
2938 </tr>
2939 </tbody></table></td>
2940 </tr>
2941 <tr>
2942                                 <td class="dBug_arrayKey" valign="top">ModuleConfigMgr</td>
2943                                 <td><table class="dBug_array" cellpadding="3" cellspacing="2">
2944                                 <tbody><tr>
2945                                         <td class="dBug_arrayHeader" colspan="2">array (2)</td>
2946                                 </tr><tr>
2947                                 <td class="dBug_arrayKey" valign="top">requiresAuth</td>
2948                                 <td>1</td>
2949 </tr>
2950 <tr>
2951                                 <td class="dBug_arrayKey" valign="top">adminGuiAllowed</td>
2952                                 <td>1</td>
2953 </tr>
2954 </tbody></table></td>
2955 </tr>
2956 <tr>
2957                                 <td class="dBug_arrayKey" valign="top">ModuleMgr</td>
2958                                 <td><table class="dBug_array" cellpadding="3" cellspacing="2">
2959                                 <tbody><tr>
2960                                         <td class="dBug_arrayHeader" colspan="2">array (2)</td>
2961                                 </tr><tr>
2962                                 <td class="dBug_arrayKey" valign="top">requiresAuth</td>
2963                                 <td>1</td>
2964 </tr>
2965 <tr>
2966                                 <td class="dBug_arrayKey" valign="top">adminGuiAllowed</td>
2967                                 <td>1</td>
2968 </tr>
2969 </tbody></table></td>
2970 </tr>
2971 <tr>
2972                                 <td class="dBug_arrayKey" valign="top">BugMgr</td>
2973                                 <td><table class="dBug_array" cellpadding="3" cellspacing="2">
2974                                 <tbody><tr>
2975                                         <td class="dBug_arrayHeader" colspan="2">array (1)</td>
2976                                 </tr><tr>
2977                                 <td class="dBug_arrayKey" valign="top">requiresAuth</td>
2978                                 <td>[empty string]</td>
2979 </tr>
2980 </tbody></table></td>
2981 </tr>
2982 <tr>
2983                                 <td class="dBug_arrayKey" valign="top">MaintenanceMgr</td>
2984                                 <td><table class="dBug_array" cellpadding="3" cellspacing="2">
2985                                 <tbody><tr>
2986                                         <td class="dBug_arrayHeader" colspan="2">array (2)</td>
2987                                 </tr><tr>
2988                                 <td class="dBug_arrayKey" valign="top">requiresAuth</td>
2989                                 <td>1</td>
2990 </tr>
2991 <tr>
2992                                 <td class="dBug_arrayKey" valign="top">adminGuiAllowed</td>
2993                                 <td>1</td>
2994 </tr>
2995 </tbody></table></td>
2996 </tr>
2997 <tr>
2998                                 <td class="dBug_arrayKey" valign="top">PearMgr</td>
2999                                 <td><table class="dBug_array" cellpadding="3" cellspacing="2">
3000                                 <tbody><tr>
3001                                         <td class="dBug_arrayHeader" colspan="2">array (2)</td>
3002                                 </tr><tr>
3003                                 <td class="dBug_arrayKey" valign="top">requiresAuth</td>
3004                                 <td>1</td>
3005 </tr>
3006 <tr>
3007                                 <td class="dBug_arrayKey" valign="top">adminGuiAllowed</td>
3008                                 <td>1</td>
3009 </tr>
3010 </tbody></table></td>
3011 </tr>
3012 <tr>
3013                                 <td class="dBug_arrayKey" valign="top">ModuleGenerationMgr</td>
3014                                 <td><table class="dBug_array" cellpadding="3" cellspacing="2">
3015                                 <tbody><tr>
3016                                         <td class="dBug_arrayHeader" colspan="2">array (2)</td>
3017                                 </tr><tr>
3018                                 <td class="dBug_arrayKey" valign="top">requiresAuth</td>
3019                                 <td>1</td>
3020 </tr>
3021 <tr>
3022                                 <td class="dBug_arrayKey" valign="top">adminGuiAllowed</td>
3023                                 <td>1</td>
3024 </tr>
3025 </tbody></table></td>
3026 </tr>
3027 <tr>
3028                                 <td class="dBug_arrayKey" valign="top">TranslationMgr</td>
3029                                 <td><table class="dBug_array" cellpadding="3" cellspacing="2">
3030                                 <tbody><tr>
3031                                         <td class="dBug_arrayHeader" colspan="2">array (1)</td>
3032                                 </tr><tr>
3033                                 <td class="dBug_arrayKey" valign="top">requiresAuth</td>
3034                                 <td>1</td>
3035 </tr>
3036 </tbody></table></td>
3037 </tr>
3038 <tr>
3039                                 <td class="dBug_arrayKey" valign="top">LoginMgr</td>
3040                                 <td><table class="dBug_array" cellpadding="3" cellspacing="2">
3041                                 <tbody><tr>
3042                                         <td class="dBug_arrayHeader" colspan="2">array (5)</td>
3043                                 </tr><tr>
3044                                 <td class="dBug_arrayKey" valign="top">requiresAuth</td>
3045                                 <td>[empty string]</td>
3046 </tr>
3047 <tr>
3048                                 <td class="dBug_arrayKey" valign="top">logonAdminGoto</td>
3049                                 <td>default^module</td>
3050 </tr>
3051 <tr>
3052                                 <td class="dBug_arrayKey" valign="top">logonUserGoto</td>
3053                                 <td>user^account</td>
3054 </tr>
3055 <tr>
3056                                 <td class="dBug_arrayKey" valign="top">recordLogin</td>
3057                                 <td>1</td>
3058 </tr>
3059 <tr>
3060                                 <td class="dBug_arrayKey" valign="top">observers</td>
3061                                 <td>[empty string]</td>
3062 </tr>
3063 </tbody></table></td>
3064 </tr>
3065 <tr>
3066                                 <td class="dBug_arrayKey" valign="top">localConfig</td>
3067                                 <td><table class="dBug_array" cellpadding="3" cellspacing="2">
3068                                 <tbody><tr>
3069                                         <td class="dBug_arrayHeader" colspan="2">array (1)</td>
3070                                 </tr><tr>
3071                                 <td class="dBug_arrayKey" valign="top">moduleName</td>
3072                                 <td>default</td>
3073 </tr>
3074 </tbody></table></td>
3075 </tr>
3076 </tbody></table></td>
3077 </tr>
3078 <tr>
3079                                 <td class="dBug_objectKey" valign="top">queryCount</td>
3080                                 <td>3</td>
3081 </tr>
3082 <tr>
3083                                 <td class="dBug_objectKey" valign="top">executionTime</td>
3084                                 <td>287</td>
3085 </tr>
3086 <tr>
3087                                 <td class="dBug_objectKey" valign="top">adminGuiAllowed</td>
3088                                 <td>[empty]</td>
3089 </tr>
3090 <tr>
3091                                 <td class="dBug_objectKey" valign="top">sectionId</td>
3092                                 <td>24</td>
3093 </tr>
3094 <tr>
3095                                 <td class="dBug_objectKey" valign="top">navigation</td>
3096                                 <td>
3097 <ul><li class="current"><a href="javascript:void(0)">User menu</a>
3098 <ul><li class="current"><a href="http://localhost/seagull/www/index.php/default/">Home</a></li>
3099 </ul>
3100 </li>
3101 </ul>
3102 </td>
3103 </tr>
3104 <tr>
3105                                 <td class="dBug_objectKey" valign="top">currentSectionName</td>
3106                                 <td>Home</td>
3107 </tr>
3108 <tr>
3109                                 <td class="dBug_objectKey" valign="top">blocksMainNav</td>
3110                                 <td><table class="dBug_array" cellpadding="3" cellspacing="2">
3111                                 <tbody><tr>
3112                                         <td class="dBug_arrayHeader" colspan="2">array (1)</td>
3113                                 </tr><tr>
3114                                 <td class="dBug_arrayKey" valign="top">2</td>
3115                                 <td><table class="dBug_object" cellpadding="3" cellspacing="2">
3116                                 <tbody><tr>
3117                                         <td class="dBug_objectHeader" colspan="2">Object id #45 (stdClass)</td>
3118                                 </tr><tr>
3119                                 <td class="dBug_objectKey" valign="top">block_id</td>
3120                                 <td>2</td>
3121 </tr>
3122 <tr>
3123                                 <td class="dBug_objectKey" valign="top">name</td>
3124                                 <td>Navigation_Block_Navigation</td>
3125 </tr>
3126 <tr>
3127                                 <td class="dBug_objectKey" valign="top">title</td>
3128                                 <td>User menu</td>
3129 </tr>
3130 <tr>
3131                                 <td class="dBug_objectKey" valign="top">title_class</td>
3132                                 <td>[empty]</td>
3133 </tr>
3134 <tr>
3135                                 <td class="dBug_objectKey" valign="top">body_class</td>
3136                                 <td>[empty]</td>
3137 </tr>
3138 <tr>
3139                                 <td class="dBug_objectKey" valign="top">position</td>
3140                                 <td>MainNav</td>
3141 </tr>
3142 <tr>
3143                                 <td class="dBug_objectKey" valign="top">params</td>
3144                                 <td>a:9:{s:15:"startParentNode";s:1:"2";s:10:"startLevel";s:1:"0";s:14:"levelsToRender";s:1:"0";s:9:"collapsed";s:1:"1";s:10:"showAlways";s:1:"1";s:12:"cacheEnabled";s:1:"1";s:11:"breadcrumbs";s:1:"0";s:8:"renderer";s:14:"SimpleRenderer";s:8:"template";s:0:"";}</td>
3145 </tr>
3146 <tr>
3147                                 <td class="dBug_objectKey" valign="top">is_cached</td>
3148                                 <td>[empty]</td>
3149 </tr>
3150 <tr>
3151                                 <td class="dBug_objectKey" valign="top">content</td>
3152                                 <td>
3153 <ul><li class="current"><a href="http://localhost/seagull/www/index.php/default/">Home</a></li>
3154 </ul>
3155 </td>
3156 </tr>
3157 </tbody></table></td>
3158 </tr>
3159 </tbody></table></td>
3160 </tr>
3161 <tr>
3162                                 <td class="dBug_objectKey" valign="top">blocksLeft</td>
3163                                 <td><table class="dBug_array" cellpadding="3" cellspacing="2">
3164                                 <tbody><tr>
3165                                         <td class="dBug_arrayHeader" colspan="2">array (2)</td>
3166                                 </tr><tr>
3167                                 <td class="dBug_arrayKey" valign="top">5</td>
3168                                 <td><table class="dBug_object" cellpadding="3" cellspacing="2">
3169                                 <tbody><tr>
3170                                         <td class="dBug_objectHeader" colspan="2">Object id #40 (stdClass)</td>
3171                                 </tr><tr>
3172                                 <td class="dBug_objectKey" valign="top">block_id</td>
3173                                 <td>5</td>
3174 </tr>
3175 <tr>
3176                                 <td class="dBug_objectKey" valign="top">name</td>
3177                                 <td>Default_Block_Sample2</td>
3178 </tr>
3179 <tr>
3180                                 <td class="dBug_objectKey" valign="top">title</td>
3181                                 <td>Syndication</td>
3182 </tr>
3183 <tr>
3184                                 <td class="dBug_objectKey" valign="top">title_class</td>
3185                                 <td>[empty]</td>
3186 </tr>
3187 <tr>
3188                                 <td class="dBug_objectKey" valign="top">body_class</td>
3189                                 <td>[empty]</td>
3190 </tr>
3191 <tr>
3192                                 <td class="dBug_objectKey" valign="top">position</td>
3193                                 <td>Left</td>
3194 </tr>
3195 <tr>
3196                                 <td class="dBug_objectKey" valign="top">params</td>
3197                                 <td>N;</td>
3198 </tr>
3199 <tr>
3200                                 <td class="dBug_objectKey" valign="top">is_cached</td>
3201                                 <td>1</td>
3202 </tr>
3203 <tr>
3204                                 <td class="dBug_objectKey" valign="top">content</td>
3205                                 <td><p><a href="http://feeds.feedburner.com/seagullproject" title="Subscribe to my feed, Seagull PHP Framework" rel="alternate" type="application/rss+xml">
3206 <img src="SGL_Output_files/feed-icon16x16.png" alt="" style="border: 0pt none ;"></a></p></td>
3207 </tr>
3208 </tbody></table></td>
3209 </tr>
3210 <tr>
3211                                 <td class="dBug_arrayKey" valign="top">4</td>
3212                                 <td><table class="dBug_object" cellpadding="3" cellspacing="2">
3213                                 <tbody><tr>
3214                                         <td style="cursor: auto;" class="dBug_objectHeader" colspan="2">Object id #49 (stdClass)</td>
3215                                 </tr><tr>
3216                                 <td class="dBug_objectKey" valign="top">block_id</td>
3217                                 <td>4</td>
3218 </tr>
3219 <tr>
3220                                 <td class="dBug_objectKey" valign="top">name</td>
3221                                 <td>Default_Block_Sample1</td>
3222 </tr>
3223 <tr>
3224                                 <td class="dBug_objectKey" valign="top">title</td>
3225                                 <td>Community</td>
3226 </tr>
3227 <tr>
3228                                 <td class="dBug_objectKey" valign="top">title_class</td>
3229                                 <td>[empty]</td>
3230 </tr>
3231 <tr>
3232                                 <td class="dBug_objectKey" valign="top">body_class</td>
3233                                 <td>[empty]</td>
3234 </tr>
3235 <tr>
3236                                 <td class="dBug_objectKey" valign="top">position</td>
3237                                 <td>Left</td>
3238 </tr>
3239 <tr>
3240                                 <td class="dBug_objectKey" valign="top">params</td>
3241                                 <td>N;</td>
3242 </tr>
3243 <tr>
3244                                 <td class="dBug_objectKey" valign="top">is_cached</td>
3245                                 <td>1</td>
3246 </tr>
3247 <tr>
3248                                 <td class="dBug_objectKey" valign="top">content</td>
3249                                 <td><div class="alignCenter">
3250 <iframe marginwidth="0" marginheight="0" id="async_frame" style="float: left;" src="SGL_Output_files/iframe_002.htm" onload="async_load();" frameborder="0" height="1" scrolling="no" width="1">.</iframe>
3251 <div id="async_demo">&nbsp;<div id="async_src">
3252 <a href="https://sourceforge.net/projects/seagull/"><img src="iframe_data/sflogo.png" alt="SourceForge.net Logo" border="0" height="31" width="88"></a>
3253 </div></div>
3254 <img src="SGL_Output_files/seagull.png" alt="Seagull PHP Framework">
3255 <img src="SGL_Output_files/sgl-framework.png" alt="Seagull PHP Framework">
3256 </div></td>
3257 </tr>
3258 </tbody></table></td>
3259 </tr>
3260 </tbody></table></td>
3261 </tr>
3262 <tr>
3263                                 <td class="dBug_objectKey" valign="top">blocksRight</td>
3264                                 <td><table class="dBug_array" cellpadding="3" cellspacing="2">
3265                                 <tbody><tr>
3266                                         <td class="dBug_arrayHeader" colspan="2">array (1)</td>
3267                                 </tr><tr>
3268                                 <td class="dBug_arrayKey" valign="top">3</td>
3269                                 <td><table class="dBug_object" cellpadding="3" cellspacing="2">
3270                                 <tbody><tr>
3271                                         <td class="dBug_objectHeader" colspan="2">Object id #48 (stdClass)</td>
3272                                 </tr><tr>
3273                                 <td class="dBug_objectKey" valign="top">block_id</td>
3274                                 <td>3</td>
3275 </tr>
3276 <tr>
3277                                 <td class="dBug_objectKey" valign="top">name</td>
3278                                 <td>User_Block_Login2</td>
3279 </tr>
3280 <tr>
3281                                 <td class="dBug_objectKey" valign="top">title</td>
3282                                 <td>Login</td>
3283 </tr>
3284 <tr>
3285                                 <td class="dBug_objectKey" valign="top">title_class</td>
3286                                 <td>[empty]</td>
3287 </tr>
3288 <tr>
3289                                 <td class="dBug_objectKey" valign="top">body_class</td>
3290                                 <td>[empty]</td>
3291 </tr>
3292 <tr>
3293                                 <td class="dBug_objectKey" valign="top">position</td>
3294                                 <td>Right</td>
3295 </tr>
3296 <tr>
3297                                 <td class="dBug_objectKey" valign="top">params</td>
3298                                 <td>a:2:{s:13:"loginTemplate";s:15:"blockLogin.html";s:14:"logoutTemplate";s:16:"blockLogout.html";}</td>
3299 </tr>
3300 <tr>
3301                                 <td class="dBug_objectKey" valign="top">is_cached</td>
3302                                 <td>[empty]</td>
3303 </tr>
3304 <tr>
3305                                 <td class="dBug_objectKey" valign="top">content</td>
3306                                 <td><form method="post" action="http://localhost/seagull/www/index.php/default/login/action/login/" id="login">
3307     <fieldset class="hide">
3308         <input name="action" value="login" type="hidden">
3309         <input name="redir" value="" type="hidden">
3310     </fieldset>
3311     <dl class="onTop">
3312         <dt><label for="frm_username">Username</label></dt>
3313
3314         <dd><input name="frmUsername" id="frm_username" size="15" value="" maxlength="20" type="text"></dd>
3315         <dt><label for="frm_password">Password</label></dt>
3316         <dd><input name="frmPassword" id="frm_password" size="15" value="" maxlength="10" type="password"></dd>
3317     </dl>
3318     <p><input class="wideButton" name="submitted" value="Submit login" type="submit"></p>
3319         <p><a href="http://localhost/seagull/www/index.php/user/password/">Forgot Your Password</a></p>
3320 </form>
3321 </td>
3322 </tr>
3323 </tbody></table></td>
3324 </tr>
3325 </tbody></table></td>
3326 </tr>
3327 <tr>
3328                                 <td class="dBug_objectKey" valign="top">elements</td>
3329                                 <td>[empty]</td>
3330 </tr>
3331 <tr>
3332                                 <td class="dBug_objectKey" valign="top">_error_reporting</td>
3333                                 <td>2039</td>
3334 </tr>
3335 <tr>
3336                                 <td class="dBug_objectKey" valign="top">x</td>
3337                                 <td><table class="dBug_object" cellpadding="3" cellspacing="2">
3338                                 <tbody><tr>
3339                                         <td class="dBug_objectHeader" colspan="2">Object id #42 (HTML_Template_Flexy)</td>
3340                                 </tr><tr>
3341                                 <td class="dBug_objectKey" valign="top">options</td>
3342                                 <td><table class="dBug_array" cellpadding="3" cellspacing="2">
3343                                 <tbody><tr>
3344                                         <td class="dBug_arrayHeader" colspan="2">array (26)</td>
3345                                 </tr><tr>
3346                                 <td class="dBug_arrayKey" valign="top">compileDir</td>
3347                                 <td>C:\bin\xampp\htdocs\seagull/var/cache/tmpl/default</td>
3348 </tr>
3349 <tr>
3350                                 <td class="dBug_arrayKey" valign="top">templateDir</td>
3351                                 <td><table class="dBug_array" cellpadding="3" cellspacing="2">
3352                                 <tbody><tr>
3353                                         <td class="dBug_arrayHeader" colspan="2">array (4)</td>
3354                                 </tr><tr>
3355                                 <td class="dBug_arrayKey" valign="top">0</td>
3356                                 <td>C:\bin\xampp\htdocs\seagull/www/themes/default/default</td>
3357 </tr>
3358 <tr>
3359                                 <td class="dBug_arrayKey" valign="top">1</td>
3360                                 <td>C:\bin\xampp\htdocs\seagull/www/themes/default/default</td>
3361 </tr>
3362 <tr>
3363                                 <td class="dBug_arrayKey" valign="top">2</td>
3364                                 <td>C:\bin\xampp\htdocs\seagull/modules/default/templates</td>
3365 </tr>
3366 <tr>
3367                                 <td class="dBug_arrayKey" valign="top">3</td>
3368                                 <td>C:\bin\xampp\htdocs\seagull/modules/default/templates</td>
3369 </tr>
3370 </tbody></table></td>
3371 </tr>
3372 <tr>
3373                                 <td class="dBug_arrayKey" valign="top">multiSource</td>
3374                                 <td>TRUE</td>
3375 </tr>
3376 <tr>
3377                                 <td class="dBug_arrayKey" valign="top">templateDirOrder</td>
3378                                 <td>reverse</td>
3379 </tr>
3380 <tr>
3381                                 <td class="dBug_arrayKey" valign="top">debug</td>
3382                                 <td>0</td>
3383 </tr>
3384 <tr>
3385                                 <td class="dBug_arrayKey" valign="top">compiler</td>
3386                                 <td>Flexy</td>
3387 </tr>
3388 <tr>
3389                                 <td class="dBug_arrayKey" valign="top">forceCompile</td>
3390                                 <td>0</td>
3391 </tr>
3392 <tr>
3393                                 <td class="dBug_arrayKey" valign="top">filters</td>
3394                                 <td><table class="dBug_array" cellpadding="3" cellspacing="2">
3395                                 <tbody><tr>
3396                                         <td class="dBug_arrayHeader" colspan="2">array (1)</td>
3397                                 </tr><tr>
3398                                 <td class="dBug_arrayKey" valign="top">0</td>
3399                                 <td>SimpleTags</td>
3400 </tr>
3401 </tbody></table></td>
3402 </tr>
3403 <tr>
3404                                 <td class="dBug_arrayKey" valign="top">nonHTML</td>
3405                                 <td>FALSE</td>
3406 </tr>
3407 <tr>
3408                                 <td class="dBug_arrayKey" valign="top">allowPHP</td>
3409                                 <td>TRUE</td>
3410 </tr>
3411 <tr>
3412                                 <td class="dBug_arrayKey" valign="top">flexyIgnore</td>
3413                                 <td>0</td>
3414 </tr>
3415 <tr>
3416                                 <td class="dBug_arrayKey" valign="top">numberFormat</td>
3417                                 <td>,2,'.',','</td>
3418 </tr>
3419 <tr>
3420                                 <td class="dBug_arrayKey" valign="top">url_rewrite</td>
3421                                 <td>[empty string]</td>
3422 </tr>
3423 <tr>
3424                                 <td class="dBug_arrayKey" valign="top">compileToString</td>
3425                                 <td>FALSE</td>
3426 </tr>
3427 <tr>
3428                                 <td class="dBug_arrayKey" valign="top">privates</td>
3429                                 <td>FALSE</td>
3430 </tr>
3431 <tr>
3432                                 <td class="dBug_arrayKey" valign="top">globals</td>
3433                                 <td>TRUE</td>
3434 </tr>
3435 <tr>
3436                                 <td class="dBug_arrayKey" valign="top">globalfunctions</td>
3437                                 <td>TRUE</td>
3438 </tr>
3439 <tr>
3440                                 <td class="dBug_arrayKey" valign="top">locale</td>
3441                                 <td>en</td>
3442 </tr>
3443 <tr>
3444                                 <td class="dBug_arrayKey" valign="top">textdomain</td>
3445                                 <td>[empty string]</td>
3446 </tr>
3447 <tr>
3448                                 <td class="dBug_arrayKey" valign="top">textdomainDir</td>
3449                                 <td>[empty string]</td>
3450 </tr>
3451 <tr>
3452                                 <td class="dBug_arrayKey" valign="top">Translation2</td>
3453                                 <td>FALSE</td>
3454 </tr>
3455 <tr>
3456                                 <td class="dBug_arrayKey" valign="top">charset</td>
3457                                 <td>ISO-8859-1</td>
3458 </tr>
3459 <tr>
3460                                 <td class="dBug_arrayKey" valign="top">strict</td>
3461                                 <td>FALSE</td>
3462 </tr>
3463 <tr>
3464                                 <td class="dBug_arrayKey" valign="top">fatalError</td>
3465                                 <td>8</td>
3466 </tr>
3467 <tr>
3468                                 <td class="dBug_arrayKey" valign="top">plugins</td>
3469                                 <td><table class="dBug_array" cellpadding="3" cellspacing="2">
3470                                 <tbody><tr>
3471                                         <td class="dBug_arrayHeader" colspan="2">array (1)</td>
3472                                 </tr><tr>
3473                                 <td class="dBug_arrayKey" valign="top">DefaultOutput</td>
3474                                 <td>C:\bin\xampp\htdocs\seagull/modules/default/classes/Output.php</td>
3475 </tr>
3476 </tbody></table></td>
3477 </tr>
3478 <tr>
3479                                 <td class="dBug_arrayKey" valign="top">valid_functions</td>
3480                                 <td>include</td>
3481 </tr>
3482 </tbody></table></td>
3483 </tr>
3484 <tr>
3485                                 <td class="dBug_objectKey" valign="top">compiledTemplate</td>
3486                                 <td>C:\bin\xampp\htdocs\seagull/var/cache/tmpl/default\templates_dedc7d019d65bace254909bf2d6159c5\footer.html.en.php</td>
3487 </tr>
3488 <tr>
3489                                 <td class="dBug_objectKey" valign="top">currentTemplate</td>
3490                                 <td>C:\bin\xampp\htdocs\seagull/modules/default/templates\footer.html</td>
3491 </tr>
3492 <tr>
3493                                 <td class="dBug_objectKey" valign="top">getTextStringsFile</td>
3494                                 <td>C:\bin\xampp\htdocs\seagull/var/cache/tmpl/default\templates_dedc7d019d65bace254909bf2d6159c5\footer.html.gettext.serial</td>
3495 </tr>
3496 <tr>
3497                                 <td class="dBug_objectKey" valign="top">elementsFile</td>
3498                                 <td>C:\bin\xampp\htdocs\seagull/var/cache/tmpl/default\templates_dedc7d019d65bace254909bf2d6159c5\footer.html.elements.serial</td>
3499 </tr>
3500 <tr>
3501                                 <td class="dBug_objectKey" valign="top">elements</td>
3502                                 <td>[empty]</td>
3503 </tr>
3504 <tr>
3505                                 <td class="dBug_objectKey" valign="top">HTML_Template_Flexy</td>
3506                                 <td>[function]</td>
3507 </tr>
3508 <tr>
3509                                 <td class="dBug_objectKey" valign="top">compile</td>
3510                                 <td>[function]</td>
3511 </tr>
3512 <tr>
3513                                 <td class="dBug_objectKey" valign="top">compileAll</td>
3514                                 <td>[function]</td>
3515 </tr>
3516 <tr>
3517                                 <td class="dBug_objectKey" valign="top">outputObject</td>
3518                                 <td>[function]</td>
3519 </tr>
3520 <tr>
3521                                 <td class="dBug_objectKey" valign="top">bufferedOutputObject</td>
3522                                 <td>[function]</td>
3523 </tr>
3524 <tr>
3525                                 <td class="dBug_objectKey" valign="top">staticQuickTemplate</td>
3526                                 <td>[function]</td>
3527 </tr>
3528 <tr>
3529                                 <td class="dBug_objectKey" valign="top">debug</td>
3530                                 <td>[function]</td>
3531 </tr>
3532 <tr>
3533                                 <td class="dBug_objectKey" valign="top">mergeElement</td>
3534                                 <td>[function]</td>
3535 </tr>
3536 <tr>
3537                                 <td class="dBug_objectKey" valign="top">getElements</td>
3538                                 <td>[function]</td>
3539 </tr>
3540 <tr>
3541                                 <td class="dBug_objectKey" valign="top">raiseError</td>
3542                                 <td>[function]</td>
3543 </tr>
3544 <tr>
3545                                 <td class="dBug_objectKey" valign="top">setData</td>
3546                                 <td>[function]</td>
3547 </tr>
3548 <tr>
3549                                 <td class="dBug_objectKey" valign="top">setDataByRef</td>
3550                                 <td>[function]</td>
3551 </tr>
3552 <tr>
3553                                 <td class="dBug_objectKey" valign="top">plugin</td>
3554                                 <td>[function]</td>
3555 </tr>
3556 <tr>
3557                                 <td class="dBug_objectKey" valign="top">output</td>
3558                                 <td>[function]</td>
3559 </tr>
3560 <tr>
3561                                 <td class="dBug_objectKey" valign="top">toString</td>
3562                                 <td>[function]</td>
3563 </tr>
3564 </tbody></table></td>
3565 </tr>
3566 <tr>
3567                                 <td class="dBug_objectKey" valign="top">_t</td>
3568                                 <td>link to Object id #14 (SGL_Output)</td>
3569 </tr>
3570 <tr>
3571                                 <td class="dBug_objectKey" valign="top">v</td>
3572                                 <td>k</td>
3573 </tr>
3574 <tr>
3575                                 <td class="dBug_objectKey" valign="top">k</td>
3576                                 <td>k</td>
3577 </tr>
3578 <tr>
3579                                 <td class="dBug_objectKey" valign="top">data</td>
3580                                 <td>       
3581
3582
3583            
3584    
3585    
3586    
3587    
3588    
3589    
3590    
3591    
3592    
3593    
3594
3595    
3596 <script type="text/javascript"> <!--
3597         var SGL_JS_WEBROOT="http://localhost/seagull/www";
3598         var SGL_JS_WINHEIGHT=500;
3599         var SGL_JS_WINWIDTH=600;
3600         var SGL_JS_SESSID="SGLSESSID=47a2dc70138ec5231f3d6035783798f0";
3601         var SGL_JS_CURRURL="/seagull/www/index.php";
3602         var SGL_JS_THEME="default";
3603         var SGL_JS_DATETEMPLATE="%d %B %Y, %H:%M";
3604    
3605 //--> </script>
3606
3607         <script type="text/javascript" src="SGL_Output_files/mainPublic.js"></script>
3608
3609    
3610    
3611    
3612
3613     <div id="outer-wrapper">
3614                 <!-- Logo and header -->
3615         <div id="header">
3616             <div class="wrapLeft">
3617                 <div class="wrapRight">
3618                     <div class="wrap">
3619                         <a id="logo" href="http://localhost/seagull/www/index.php" title="Home">
3620                                                 <img src="SGL_Output_files/logo.png" alt="Seagull Framework Logo">
3621                                                 </a>
3622                                                 <a id="bugReporter" href="http://localhost/seagull/www/index.php/default/bug/" title="&gt;send bug report&lt;">
3623                             <img src="SGL_Output_files/bug.gif" alt="&gt;send bug report&lt;">
3624                         </a>
3625                                             </div>
3626                 </div>
3627             </div>
3628         </div> <!-- close header -->
3629
3630         <!-- top navigation -->
3631         <div id="top-nav">
3632             <div class="inner">
3633                            
3634 <ul><li class="current"><a href="http://localhost/seagull/www/index.php/default/">Home</a></li>
3635 </ul>
3636                         </div>
3637         </div> <!-- close top-nav -->
3638         <div id="breadcrumbs">
3639             <div class="inner">
3640                 <div id="breadcrumb">
3641                                 </div>
3642                                 <div id="lang-switcher">
3643                     <a class="langFlag" id="en-iso-8859-15" href="http://localhost/seagull/www/index.php?lang=en-iso-8859-15"><img src="SGL_Output_files/en-iso-8859-15.png" alt="English" title="speak English please"></a><a class="langFlag" id="fr-iso-8859-1" href="http://localhost/seagull/www/index.php?lang=fr-iso-8859-1"><img src="SGL_Output_files/fr-iso-8859-1.png" alt="French" title="speak French please"></a><a class="langFlag" id="de-iso-8859-1" href="http://localhost/seagull/www/index.php?lang=de-iso-8859-1"><img src="SGL_Output_files/de-iso-8859-1.png" alt="German" title="speak German please"></a><a class="langFlag" id="pl-iso-8859-2" href="http://localhost/seagull/www/index.php?lang=pl-iso-8859-2"><img src="SGL_Output_files/pl-iso-8859-2.png" alt="Polish" title="speak Polish please"></a><a class="langFlag" id="es-iso-8859-1" href="http://localhost/seagull/www/index.php?lang=es-iso-8859-1"><img src="SGL_Output_files/es-iso-8859-1.png" alt="Spanish" title="speak Spanish please"></a>                </div>
3644                                 <div class="spacer">&nbsp;</div>
3645             </div>
3646         </div>
3647
3648         <!-- Main layout -->
3649         <div id="inner-wrapper">
3650         <div class="inner-container" id="layout-3Cols">
3651             <div id="leftCol">
3652                 <div class="inner">
3653                                                         <div class="block">
3654                         <div class="header">
3655                             <h2>Syndication</h2>
3656                         </div>
3657                         <div class="content">
3658                             <p><a href="http://feeds.feedburner.com/seagullproject" title="Subscribe to my feed, Seagull PHP Framework" rel="alternate" type="application/rss+xml">
3659 <img src="SGL_Output_files/feed-icon16x16.png" alt="" style="border: 0pt none ;"></a></p>                        </div>
3660                     </div>
3661                                     <div class="block">
3662                         <div class="header">
3663                             <h2>Community</h2>
3664                         </div>
3665                         <div class="content">
3666                             <div class="alignCenter">
3667 <iframe marginwidth="0" marginheight="0" id="async_frame" style="float: left;" src="SGL_Output_files/iframe_002.htm" onload="async_load();" frameborder="0" height="1" scrolling="no" width="1">.</iframe>
3668 <div id="async_demo">&nbsp;</div>
3669 <img src="SGL_Output_files/seagull.png" alt="Seagull PHP Framework">
3670 <img src="SGL_Output_files/sgl-framework.png" alt="Seagull PHP Framework">
3671 </div>                        </div>
3672                     </div>
3673                                 </div>
3674             </div>
3675             <div id="rightCol">
3676                 <div class="inner">
3677                                                         <div class="block">
3678                         <div class="header">
3679                             <h2>Login</h2>
3680                         </div>
3681                         <div class="content">
3682                             <form method="post" action="http://localhost/seagull/www/index.php/default/login/action/login/" id="login">
3683     <fieldset class="hide">
3684         <input name="action" value="login" type="hidden">
3685         <input name="redir" value="" type="hidden">
3686     </fieldset>
3687     <dl class="onTop">
3688         <dt><label for="frm_username">Username</label></dt>
3689
3690         <dd><input name="frmUsername" id="frm_username" size="15" value="" maxlength="20" type="text"></dd>
3691         <dt><label for="frm_password">Password</label></dt>
3692         <dd><input name="frmPassword" id="frm_password" size="15" value="" maxlength="10" type="password"></dd>
3693     </dl>
3694     <p><input class="wideButton" name="submitted" value="Submit login" type="submit"></p>
3695         <p><a href="http://localhost/seagull/www/index.php/user/password/">Forgot Your Password</a></p>
3696 </form>
3697                         </div>
3698                     </div>
3699                                 </div>
3700             </div>
3701             <div id="middleCol">
3702                 <div id="ensureMinHeight"></div>
3703                 <div class="inner" id="content">
3704                 <h1 class="pageTitle">Getting started with Seagull</h1>
3705 <div class="message"></div>
3706 <p>
3707 This page is a static template for you to replace with your own content, you can find it here:
3708 </p>
3709 <pre class="codeExample">[install-dir]/modules/default/templates/home.html
3710 </pre>
3711
3712 <p>
3713 You can now
3714 <a href="http://localhost/seagull/www/index.php/user/login/">login as admin</a> and start creating your own content.
3715 </p>
3716 <hr>
3717 <p>
3718 The Seagull framework is an
3719 OO <a href="http://php.net/" title="PHP"><acronym title="PHP: Hypertext Preprocessor">PHP</acronym></a>
3720 framework, with core components <acronym title="Berkeley Software Distribution">BSD</acronym> licensed,
3721 that has the following design goals:</p>
3722
3723 <ul class="bullets">
3724     <li>independence of data, logic &amp; presentation layers</li>
3725     <li>extensible component architecture</li>
3726     <li>reduction of repetitive programming tasks</li>
3727     <li>simplifying data access</li>
3728     <li>comprehensive error handling</li>
3729     <li>module workflow routines</li>
3730     <li>form handling without the donkey work</li>
3731     <li>component reuse</li>
3732     <li>authentication management</li>
3733     <li>integration with <acronym title="PHP Extension and Application Repository">PEAR</acronym> libraries</li>
3734     <li><acronym title="PHP: Hypertext Preprocessor">PHP</acronym> coding standards</li>
3735     <li>platform/<acronym title="PHP: Hypertext Preprocessor">PHP</acronym> version/browser independence</li>
3736     <li>self-generating documentation</li>
3737     <li>quality end user docs</li>
3738 </ul>
3739
3740 <p>Seagull works 'out of the box' and is simple to install and configure, please follow the
3741 instructions in INSTALL.txt. Developer info is availabe in
3742 the <a href="http://trac.seagullproject.org/" title="Project docs">project docs</a>.</p>
3743
3744 <p>There are some default modules that come with the framework, these handle tasks related to:</p>
3745
3746 <ul class="bullets">
3747     <li>user/group management</li>
3748     <li>content management</li>
3749     <li>document management</li>
3750     <li>category management</li>
3751     <li>messaging</li>
3752     <li>navigation</li>
3753 </ul>
3754                 </div>
3755             </div>
3756             <div class="spacer"></div>
3757         </div> <!-- close inner-container -->
3758                 </div> <!-- close inner-wrapper -->
3759
3760
3761         <div id="footer">
3762             <div class="wrapLeft">
3763                 <div class="wrapRight">
3764                     <div class="wrap">
3765                         <p>
3766                         Powered by <a href="http://seagullproject.org/" title="Seagull PHP Framework">
3767                         Seagull PHP Framework</a>
3768                                                  - ©
3769                         <a href="http://seagullsystems.com/" title="Seagull Systems">Seagull Systems</a> 2003-2006
3770                         </p>
3771                                                 <p>
3772                         Execution Time = 287 ms, 3 queries                         </p>
3773                        
3774                                             </div>
3775                 </div>
3776             </div>
3777         </div>
3778
3779     </div> <!-- close outer-wrapper -->
3780 </td>
3781 </tr>
3782 <tr>
3783                                 <td class="dBug_objectKey" valign="top">translate</td>
3784                                 <td>[function]</td>
3785 </tr>
3786 <tr>
3787                                 <td class="dBug_objectKey" valign="top">getLangSwitcher</td>
3788                                 <td>[function]</td>
3789 </tr>
3790 <tr>
3791                                 <td class="dBug_objectKey" valign="top">generateSelect</td>
3792                                 <td>[function]</td>
3793 </tr>
3794 <tr>
3795                                 <td class="dBug_objectKey" valign="top">generateCheckboxList</td>
3796                                 <td>[function]</td>
3797 </tr>
3798 <tr>
3799                                 <td class="dBug_objectKey" valign="top">generateCheckbox</td>
3800                                 <td>[function]</td>
3801 </tr>
3802 <tr>
3803                                 <td class="dBug_objectKey" valign="top">generateRadioPair</td>
3804                                 <td>[function]</td>
3805 </tr>
3806 <tr>
3807                                 <td class="dBug_objectKey" valign="top">generateRadioList</td>
3808                                 <td>[function]</td>
3809 </tr>
3810 <tr>
3811                                 <td class="dBug_objectKey" valign="top">formatBytes</td>
3812                                 <td>[function]</td>
3813 </tr>
3814 <tr>
3815                                 <td class="dBug_objectKey" valign="top">formatDate</td>
3816                                 <td>[function]</td>
3817 </tr>
3818 <tr>
3819                                 <td class="dBug_objectKey" valign="top">formatDatePretty</td>
3820                                 <td>[function]</td>
3821 </tr>
3822 <tr>
3823                                 <td class="dBug_objectKey" valign="top">getDateFormat</td>
3824                                 <td>[function]</td>
3825 </tr>
3826 <tr>
3827                                 <td class="dBug_objectKey" valign="top">showDateSelector</td>
3828                                 <td>[function]</td>
3829 </tr>
3830 <tr>
3831                                 <td class="dBug_objectKey" valign="top">getNoExpiryCheckbox</td>
3832                                 <td>[function]</td>
3833 </tr>
3834 <tr>
3835                                 <td class="dBug_objectKey" valign="top">switchRowClass</td>
3836                                 <td>[function]</td>
3837 </tr>
3838 <tr>
3839                                 <td class="dBug_objectKey" valign="top">switchTrueFalse</td>
3840                                 <td>[function]</td>
3841 </tr>
3842 <tr>
3843                                 <td class="dBug_objectKey" valign="top">summarise</td>
3844                                 <td>[function]</td>
3845 </tr>
3846 <tr>
3847                                 <td class="dBug_objectKey" valign="top">msgGet</td>
3848                                 <td>[function]</td>
3849 </tr>
3850 <tr>
3851                                 <td class="dBug_objectKey" valign="top">isAdmin</td>
3852                                 <td>[function]</td>
3853 </tr>
3854 <tr>
3855                                 <td class="dBug_objectKey" valign="top">isAdminOrUnassigned</td>
3856                                 <td>[function]</td>
3857 </tr>
3858 <tr>
3859                                 <td class="dBug_objectKey" valign="top">addOnLoadEvent</td>
3860                                 <td>[function]</td>
3861 </tr>
3862 <tr>
3863                                 <td class="dBug_objectKey" valign="top">getAllOnLoadEvents</td>
3864                                 <td>[function]</td>
3865 </tr>
3866 <tr>
3867                                 <td class="dBug_objectKey" valign="top">makeUrl</td>
3868                                 <td>[function]</td>
3869 </tr>
3870 <tr>
3871                                 <td class="dBug_objectKey" valign="top">getCurrentUrl</td>
3872                                 <td>[function]</td>
3873 </tr>
3874 <tr>
3875                                 <td class="dBug_objectKey" valign="top">isVerticalNav</td>
3876                                 <td>[function]</td>
3877 </tr>
3878 <tr>
3879                                 <td class="dBug_objectKey" valign="top">outputBody</td>
3880                                 <td>[function]</td>
3881 </tr>
3882 <tr>
3883                                 <td class="dBug_objectKey" valign="top">isWin</td>
3884                                 <td>[function]</td>
3885 </tr>
3886 <tr>
3887                                 <td class="dBug_objectKey" valign="top">isEqual</td>
3888                                 <td>[function]</td>
3889 </tr>
3890 <tr>
3891                                 <td class="dBug_objectKey" valign="top">assign</td>
3892                                 <td>[function]</td>
3893 </tr>
3894 <tr>
3895                                 <td class="dBug_objectKey" valign="top">increment</td>
3896                                 <td>[function]</td>
3897 </tr>
3898 <tr>
3899                                 <td class="dBug_objectKey" valign="top">getCurrentModule</td>
3900                                 <td>[function]</td>
3901 </tr>
3902 <tr>
3903                                 <td class="dBug_objectKey" valign="top">getCurrentManager</td>
3904                                 <td>[function]</td>
3905 </tr>
3906 <tr>
3907                                 <td class="dBug_objectKey" valign="top">getCurrentTemplate</td>
3908                                 <td>[function]</td>
3909 </tr>
3910 <tr>
3911                                 <td class="dBug_objectKey" valign="top">getCurrentId</td>
3912                                 <td>[function]</td>
3913 </tr>
3914 <tr>
3915                                 <td class="dBug_objectKey" valign="top">hasPerms</td>
3916                                 <td>[function]</td>
3917 </tr>
3918 <tr>
3919                                 <td class="dBug_objectKey" valign="top">printf</td>
3920                                 <td>[function]</td>
3921 </tr>
3922 <tr>
3923                                 <td class="dBug_objectKey" valign="top">makeCssLink</td>
3924                                 <td>[function]</td>
3925 </tr>
3926 </tbody></table></body></html>