Merge lp:~richardw/jarmon/auto-apidocumentation into lp:jarmon

Proposed by Richard Wall
Status: Merged
Approved by: Richard Wall
Approved revision: 86
Merge reported by: Richard Wall
Merged at revision: not available
Proposed branch: lp:~richardw/jarmon/auto-apidocumentation
Merge into: lp:jarmon
Diff against target: 1985 lines (+1591/-107)
14 files modified
README (+19/-5)
bin/build (+10/-0)
docs/examples/index.html (+2/-2)
docs/examples/nginx.conf.example (+2/-1)
docs/index.html (+15/-0)
jarmon/jarmon.js (+142/-99)
jarmonbuild/commands.py (+239/-0)
jarmonbuild/yuidoc_template/assets/ac-js (+162/-0)
jarmonbuild/yuidoc_template/assets/api-js (+42/-0)
jarmonbuild/yuidoc_template/assets/api.css (+242/-0)
jarmonbuild/yuidoc_template/assets/reset-fonts-grids-min.css (+7/-0)
jarmonbuild/yuidoc_template/classmap.tmpl (+15/-0)
jarmonbuild/yuidoc_template/index.tmpl (+9/-0)
jarmonbuild/yuidoc_template/main.tmpl (+685/-0)
To merge this branch: bzr merge lp:~richardw/jarmon/auto-apidocumentation
Reviewer Review Type Date Requested Status
Richard Wall Approve
Review via email: mp+33343@code.launchpad.net

Commit message

 * Cleanup and add further doc strings for compatibility with yuidoc
 * Add a tool to automatically download and run yuidoc on the source tree
 * Add a tool to automatically create a releasable source archive containing apidocs
 * Add documentation of the apidoc and release tools.
 * Rearrange the source tree - moving all examples into the docs/examplesfolder

Description of the change

 * Cleanup and add further doc strings for compatibility with yuidoc
 * Add a tool to automatically download and run yuidoc on the source tree
 * Add a tool to automatically create a releasable source archive containing apidocs
 * Add documentation of the apidoc and release tools.
 * Rearrange the source tree - moving all examples into the docs/examplesfolder

To post a comment you must log in.
Revision history for this message
Richard Wall (richardw) wrote :

Looks good please merge :)

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'README'
2--- README 2010-06-23 22:24:21 +0000
3+++ README 2010-08-22 21:23:38 +0000
4@@ -1,15 +1,19 @@
5-Jarmon 0.0.1
6+Jarmon 10.7
7
8
9 What is this?
10 =============
11-Wrappers and convenience fuctions for working with the javascriptRRD, Flot and
12-Collectd.
13+jarmon.js contains various wrappers and convenience fuctions for working with
14+the javascriptRRD, Flot and RRD files generated by eg Collectd.
15+Additionally, there is a fully working example which demonstrates how to use
16+jarmon.js and how to integrate it with other javascript components - such as
17+calendar date pickers etc.
18
19
20 Debian / Ubuntu Quick Start
21 ===========================
22-To get this demo working, you will need to serve this page from a
23+There is a demo html page in the docs/examples folder.
24+To get this demo working, you will need to serve that page from a
25 local webserver and serve the folder that contains your RRD files.
26
27 This demo is designed to work with the RRD files generated by
28@@ -25,10 +29,20 @@
29 $ cd trunk
30
31 # Link to the collectd rrd folder
32-$ ln -s /var/lib/collectd/rrd/localhost data
33+$ ln -s /var/lib/collectd/rrd/localhost docs/examples/data
34
35 # Start a local webserver - here we use Twisted, but there are other web server
36 # config examples in docs/
37 $ aptitude install twisted
38 $ twistd -n web --port 8080 --path .
39
40+$ firefox http://localhost:8080/docs/examples/index.html
41+
42+
43+Next Steps
44+==========
45+Examine:
46+ * docs/examples/index.html
47+ * docs/examples/jarmon_example_recipes.js
48+
49+...for examples of how to use jarmon.js then add your own chart recipes.
50
51=== added directory 'bin'
52=== added file 'bin/build'
53--- bin/build 1970-01-01 00:00:00 +0000
54+++ bin/build 2010-08-22 21:23:38 +0000
55@@ -0,0 +1,10 @@
56+#!/usr/bin/env python
57+import os
58+import sys
59+
60+# Add the current branch to the python path
61+sys.path.append(os.path.join(os.path.dirname(__file__), '..'))
62+
63+from jarmonbuild.commands import main
64+
65+raise SystemExit(main())
66
67=== added directory 'docs/apidocs'
68=== added directory 'docs/examples'
69=== renamed directory 'assets' => 'docs/examples/assets'
70=== renamed file 'index.html' => 'docs/examples/index.html'
71--- index.html 2010-08-01 11:12:55 +0000
72+++ docs/examples/index.html 2010-08-22 21:23:38 +0000
73@@ -13,8 +13,8 @@
74
75 <script type="text/javascript" src="assets/js/dependencies.js"></script>
76
77- <script type="text/javascript" src="jarmon.js"></script>
78- <script type="text/javascript" src="docs/jarmon_example_recipes.js"></script>
79+ <script type="text/javascript" src="../../jarmon/jarmon.js"></script>
80+ <script type="text/javascript" src="jarmon_example_recipes.js"></script>
81 <script type="text/javascript">
82 // Recipes for the charts on this page
83
84
85=== renamed file 'docs/jarmon_example_recipes.js' => 'docs/examples/jarmon_example_recipes.js'
86=== renamed file 'docs/nginx.conf.example' => 'docs/examples/nginx.conf.example'
87--- docs/nginx.conf.example 2010-06-23 22:24:21 +0000
88+++ docs/examples/nginx.conf.example 2010-08-22 21:23:38 +0000
89@@ -56,9 +56,10 @@
90 location / {
91 root .;
92 index index.html;
93+ autoindex on;
94 }
95
96- location /data {
97+ location /docs/examples/data {
98 alias /var/lib/collectd/rrd/aziz;
99 autoindex on;
100 }
101
102=== modified file 'docs/index.html'
103--- docs/index.html 2010-08-03 23:48:15 +0000
104+++ docs/index.html 2010-08-22 21:23:38 +0000
105@@ -8,6 +8,8 @@
106 <h2>Contents</h2>
107 <ol>
108 <li><a href="#browser-compatibility">Browser Compatibility</a></li>
109+ <li><a href="#api-documentation">API documentation</a></li>
110+ <li><a href="#release-process">Release process and tools</a></li>
111 </ol>
112 <h2 id="browser-compatibility">Browser Compatibility</h2>
113 <p>Jarmon depends upon the <a href="http://code.google.com/p/flot/">Flot
114@@ -77,3 +79,16 @@
115 </dl>
116 </dl>
117
118+ <h2 id="api-documentation">API Documentation</h2>
119+ <p>Jarmon includes <a href="apidocs/index.html">comprehensive API
120+ documentation</a>
121+ <p>This API documentation is generated automatically by the release command,
122+ but you can also build it yourself by issuing the
123+ <code>./bin/build apidoc</code> command from within a Jarmon source tree.
124+ The documentation will be saved in a build subfolder.</p>
125+
126+ <h2 id="release-process">Release Process and Tools</h2>
127+ <p>Jarmon includes tools to automate source archive releases. First check
128+ out the source code, then issue the
129+ <code>./bin/build -V 10.8 release</code> command from within the source
130+ tree.</p>
131
132=== added directory 'jarmon'
133=== renamed file 'jarmon.js' => 'jarmon/jarmon.js'
134--- jarmon.js 2010-08-01 11:12:55 +0000
135+++ jarmon/jarmon.js 2010-08-22 21:23:38 +0000
136@@ -1,8 +1,9 @@
137-/* Copyright (c) 2010 Richard Wall <richard (at) the-moon.net>
138+/**
139+ * Copyright (c) 2010 Richard Wall <richard (at) the-moon.net>
140 * See LICENSE for details.
141 *
142 * Wrappers and convenience fuctions for working with the javascriptRRD, jQuery,
143- * and flot charting packages.
144+ * and Flot charting packages.
145 *
146 * Designed to work well with the RRD files generated by Collectd:
147 * - http://collectd.org/
148@@ -12,20 +13,29 @@
149 * - jQuery: http://jquery.com/
150 * - Flot: http://code.google.com/p/flot/
151 * - MochiKit.Async: http://www.mochikit.com/
152+ *
153+ * @module jarmon
154 */
155
156+/**
157+ * A namespace for Jarmon
158+ *
159+ * @class jarmon
160+ * @static
161+ */
162 if(typeof jarmon == 'undefined') {
163 var jarmon = {};
164 }
165
166-/**
167- * Download a binary file asynchronously using the jQuery.ajax function
168- *
169- * @param url: The url of the object to be downloaded
170- * @return: A I{MochiKit.Async.Deferred} which will callback with an instance of
171- * I{javascriptrrd.BinaryFile}
172- **/
173 jarmon.downloadBinary = function(url) {
174+ /**
175+ * Download a binary file asynchronously using the jQuery.ajax function
176+ *
177+ * @method downloadBinary
178+ * @param url {String} The url of the object to be downloaded
179+ * @return {Object} A deferred which will callback with an instance of javascriptrrd.BinaryFile
180+ */
181+
182 var d = new MochiKit.Async.Deferred();
183
184 $.ajax({
185@@ -61,50 +71,16 @@
186 return d;
187 };
188
189-/**
190- * Limit the number of parallel async calls
191- *
192- * @param limit: The maximum number of in progress calls
193- **/
194-jarmon.Parallimiter = function(limit) {
195- this.limit = limit || 1;
196- this._callQueue = [];
197- this._currentCallCount = 0;
198-};
199-
200-jarmon.Parallimiter.prototype.addCallable = function(callable, args) {
201- /**
202- * Add a function to be called when the number of in progress calls drops
203- * below the configured limit
204- *
205- * @param callable: A function which returns a Deferred.
206- **/
207- var d = new MochiKit.Async.Deferred();
208- this._callQueue.unshift([d, callable, args]);
209- this._nextCall();
210- return d;
211-};
212-
213-jarmon.Parallimiter.prototype._nextCall = function() {
214- if(this._callQueue.length > 0) {
215- if(this._currentCallCount < this.limit) {
216- this._currentCallCount++;
217- var nextCall = this._callQueue.pop();
218- nextCall[1].apply(null, nextCall[2]).addBoth(
219- function(self, d, res) {
220- d.callback(res);
221- self._currentCallCount--;
222- self._nextCall();
223- }, this, nextCall[0]);
224- }
225- }
226-};
227-
228
229 jarmon.localTimeFormatter = function (v, axis) {
230 /**
231 * Copied from jquery.flot.js and modified to allow timezone
232 * adjustment.
233+ *
234+ * @method localTimeFormatter
235+ * @param v {Number} The timestamp to be formatted
236+ * @param axis {Object} A hash containing information about the time axis
237+ * @return {String} The formatted datetime string
238 **/
239 // map of app. size of time units in milliseconds
240 var timeUnitSize = {
241@@ -155,14 +131,10 @@
242 * convenient way to query the RRDFile based on time range, RRD data source (DS)
243 * and RRD consolidation function (CF).
244 *
245- * @param startTime: A javascript {Date} instance representing the start of query
246- * time range, or {null} to return earliest available data.
247- * @param endTime: A javascript {Date} instance representing the end of query
248- * time range, or {null} to return latest available data.
249- * @param dsId: A {String} name of an RRD DS or an {Int} DS index number or
250- * {null} to return the first available DS.
251- * @param cfName: A {String} name of an RRD consolidation function
252- * @return: A flot compatible data series object
253+ * @class jarmon.RrdQuery
254+ * @constructor
255+ * @param rrd {Object} A javascriptrrd.RRDFile
256+ * @param unit {String} The unit symbol for this data series
257 **/
258 jarmon.RrdQuery = function(rrd, unit) {
259 this.rrd = rrd;
260@@ -175,14 +147,14 @@
261 * end time. The rows are taken from the first RRA whose data spans the
262 * requested time range.
263 *
264- * @param startTime: The I{Date} start time
265- * @param endTime: The I{Date} end time
266- * @param dsId: An index I{Number} or key I{String} identifying the RRD
267- * datasource (DS).
268- * @param cfName: The name I{String} of an RRD consolidation function (CF)
269- * eg AVERAGE, MIN, MAX
270- * @return: A Flot compatible data series I{Object}
271- * eg {label:'', data:[], unit: ''}
272+ * @method getData
273+ * @param startTime {Number} start timestamp
274+ * @param endTime {Number} end timestamp
275+ * @param dsId {Variant} identifier of the RRD datasource (string or number)
276+ * @param cfName {String} The name of an RRD consolidation function (CF)
277+ * eg AVERAGE, MIN, MAX
278+ * @return {Object} A Flot compatible data series
279+ * eg label: '', data: [], unit: ''
280 **/
281 var startTimestamp = startTime/1000;
282
283@@ -258,8 +230,12 @@
284 * A wrapper around RrdQuery which provides asynchronous access to the data in a
285 * remote RRD file.
286 *
287- * @param url: The url I{String} of a remote RRD file
288- * @param unit: The unit suffix I{String} of this data eg 'bit/sec'
289+ * @class jarmon.RrdQueryRemote
290+ * @constructor
291+ * @param url {String} The url of a remote RRD file
292+ * @param unit {String} The unit suffix of this data eg 'bit/sec'
293+ * @param downloader {Function} A callable which returns a Deferred and calls
294+ * back with a javascriptrrd.BinaryFile when it has downloaded.
295 **/
296 jarmon.RrdQueryRemote = function(url, unit, downloader) {
297 this.url = url;
298@@ -273,10 +249,11 @@
299 /**
300 * Return a Flot compatible data series asynchronously.
301 *
302- * @param startTime: The start time I{Date}
303- * @param endTime: The end time I{Date}
304- * @returns: A I{MochiKit.Async.Deferred} which calls back with a flot data
305- * series object I{Object}
306+ * @method getData
307+ * @param startTime {Number} The start timestamp
308+ * @param endTime {Number} The end timestamp
309+ * @param dsId {Variant} identifier of the RRD datasource (string or number)
310+ * @return {Object} A Deferred which calls back with a flot data series.
311 **/
312 var endTimestamp = endTime/1000;
313
314@@ -320,11 +297,13 @@
315 };
316
317 /**
318- * Wraps a I{RrdQueryRemote} to provide access to a different RRD DSs within a
319+ * Wraps RrdQueryRemote to provide access to a different RRD DSs within a
320 * single RrdDataSource.
321 *
322- * @param rrdQuery: An I{RrdQueryRemote}
323- * @param dsId: An index or keyname of an RRD DS
324+ * @class jarmon.RrdQueryDsProxy
325+ * @constructor
326+ * @param rrdQuery {Object} An RrdQueryRemote instance
327+ * @param dsId {Variant} identifier of the RRD datasource (string or number)
328 **/
329 jarmon.RrdQueryDsProxy = function(rrdQuery, dsId) {
330 this.rrdQuery = rrdQuery;
331@@ -335,6 +314,11 @@
332 jarmon.RrdQueryDsProxy.prototype.getData = function(startTime, endTime) {
333 /**
334 * Call I{RrdQueryRemote.getData} with a particular dsId
335+ *
336+ * @method getData
337+ * @param startTime {Number} A unix timestamp marking the start time
338+ * @param endTime {Number} A unix timestamp marking the start time
339+ * @return {Object} A Deferred which calls back with a flot data series.
340 **/
341 return this.rrdQuery.getData(startTime, endTime, this.dsId);
342 };
343@@ -343,10 +327,12 @@
344 /**
345 * A class for creating a Flot chart from a series of RRD Queries
346 *
347- * @param template: A I{jQuery} containing a single element into which the chart
348- * will be drawn
349- * @param options: An I{Object} containing Flot options which describe how the
350- * chart should be drawn.
351+ * @class jarmon.Chart
352+ * @constructor
353+ * @param template {Object} A jQuery containing a single element into which the
354+ * chart will be drawn
355+ * @param options {Object} Flot options which control how the chart should be
356+ * drawn.
357 **/
358 jarmon.Chart = function(template, options) {
359 this.template = template;
360@@ -366,13 +352,13 @@
361
362
363 this.options['yaxis']['ticks'] = function(axis) {
364- /**
365+ /*
366 * Choose a suitable SI multiplier based on the min and max values from
367 * the axis and then generate appropriate yaxis tick labels.
368 *
369 * @param axis: An I{Object} with min and max properties
370 * @return: An array of ~5 tick labels
371- **/
372+ */
373 var siPrefixes = {
374 0: '',
375 1: 'K',
376@@ -431,11 +417,12 @@
377 * Add details of a remote RRD data source whose data will be added to this
378 * chart.
379 *
380- * @param label: A I{String} label for this data which will be shown in the
381+ * @method addData
382+ * @param label {String} The label for this data which will be shown in the
383 * chart legend
384- * @param db: The url of the remote RRD database
385- * @param enabled: true if you want this data plotted on the chart, false
386- * if not.
387+ * @param db {String} The url of the remote RRD database
388+ * @param enabled {Boolean} true if you want this data plotted on the chart,
389+ * false if not.
390 **/
391 if(typeof enabled == 'undefined') {
392 enabled = true;
393@@ -447,8 +434,9 @@
394 /**
395 * Enable / Disable a single data source
396 *
397- * @param label: The label I{String} of the data source to be enabled /
398- * disabled
399+ * @method switchDataEnabled
400+ * @param label {String} The label of the data source to be enabled /
401+ * disabled.
402 **/
403 for(var i=0; i<this.data.length; i++) {
404 if(this.data[i][0] == label) {
405@@ -461,8 +449,9 @@
406 /**
407 * Alter the time range of this chart and redraw
408 *
409- * @param startTime: The start time I{Date}
410- * @param endTime: The end time I{Date}
411+ * @method setTimeRange
412+ * @param startTime {Number} The start timestamp
413+ * @param endTime {Number} The end timestamp
414 **/
415 this.startTime = startTime;
416 this.endTime = endTime;
417@@ -475,8 +464,9 @@
418 * A 'chart_loading' event is triggered before the data is requested
419 * A 'chart_loaded' event is triggered when the chart has been drawn
420 *
421- * @return: A I{MochiKit.Async.Deferred} which calls back with the chart
422- * data when the chart has been rendered.
423+ * @method draw
424+ * @return {Object} A Deferred which calls back with the chart data when
425+ * the chart has been rendered.
426 **/
427 this.template.addClass('loading');
428
429@@ -584,13 +574,15 @@
430
431 jarmon.Chart.fromRecipe = function(recipes, templateFactory, downloader) {
432 /**
433- * A factory function to generate a list of I{Chart} from a list of recipes
434- * and a list of available rrd files in collectd path format.
435+ * A static factory method to generate a list of I{Chart} from a list of
436+ * recipes and a list of available rrd files in collectd path format.
437 *
438- * @param rrdUrlList: A list of rrd download paths
439- * @param recipes: A list of recipe objects
440- * @param templateFactory: A callable which generates an html template for a
441- * chart.
442+ * @method fromRecipe
443+ * @param recipes {Array} A list of recipe objects.
444+ * @param templateFactory {Function} A callable which generates an html
445+ * template for a chart.
446+ * @param downloader {Function} A download function which returns a Deferred
447+ * @return {Array} A list of Chart objects
448 **/
449
450 var charts = [];
451@@ -687,8 +679,10 @@
452 * Presents the user with a form and a timeline with which they can choose a
453 * time range and co-ordinates the refreshing of a series of charts.
454 *
455- * @param ui: A one element I{jQuery} containing an input form and placeholders
456- * for the timeline and for the series of charts.
457+ * @class jarmon.ChartCoordinator
458+ * @constructor
459+ * @param ui {Object} A one element jQuery containing an input form and
460+ * placeholders for the timeline and for the series of charts.
461 **/
462 jarmon.ChartCoordinator = function(ui) {
463 var self = this;
464@@ -799,6 +793,8 @@
465 /**
466 * Grab the start and end time from the ui form, highlight the range on the
467 * range timeline and set the time range of all the charts and redraw.
468+ *
469+ * @method update
470 **/
471
472 var selection = this.ui.find('[name="from_standard"]').val();
473@@ -891,8 +887,9 @@
474 /**
475 * Set the start and end time fields in the form and trigger an update
476 *
477- * @param startTime: The start time I{Date}
478- * @param endTime: The end time I{Date}
479+ * @method setTimeRange
480+ * @param startTime {Number} The start timestamp
481+ * @param endTime {Number} The end timestamp
482 **/
483 if(from != null) {
484 this.ui.find('[name="from"]').val(from);
485@@ -905,7 +902,53 @@
486 jarmon.ChartCoordinator.prototype.init = function() {
487 /**
488 * Reset all charts and the input form to the default time range - last hour
489+ *
490+ * @method init
491 **/
492 this.update();
493 };
494
495+/**
496+ * Limit the number of parallel async calls
497+ *
498+ * @class jarmon.Parallimiter
499+ * @constructor
500+ * @param limit {Number} The maximum number of in progress calls
501+ **/
502+jarmon.Parallimiter = function(limit) {
503+ this.limit = limit || 1;
504+ this._callQueue = [];
505+ this._currentCallCount = 0;
506+};
507+
508+jarmon.Parallimiter.prototype.addCallable = function(callable, args) {
509+ /**
510+ * Add a function to be called when the number of in progress calls drops
511+ * below the configured limit
512+ *
513+ * @method addCallable
514+ * @param callable {Function} A function which returns a Deferred.
515+ * @param args {Array} A list of arguments to pass to the callable
516+ * @return {Object} A Deferred which fires with the result of the callable
517+ * when it is called.
518+ **/
519+ var d = new MochiKit.Async.Deferred();
520+ this._callQueue.unshift([d, callable, args]);
521+ this._nextCall();
522+ return d;
523+};
524+
525+jarmon.Parallimiter.prototype._nextCall = function() {
526+ if(this._callQueue.length > 0) {
527+ if(this._currentCallCount < this.limit) {
528+ this._currentCallCount++;
529+ var nextCall = this._callQueue.pop();
530+ nextCall[1].apply(null, nextCall[2]).addBoth(
531+ function(self, d, res) {
532+ d.callback(res);
533+ self._currentCallCount--;
534+ self._nextCall();
535+ }, this, nextCall[0]);
536+ }
537+ }
538+};
539
540=== added directory 'jarmonbuild'
541=== added file 'jarmonbuild/__init__.py'
542=== added file 'jarmonbuild/commands.py'
543--- jarmonbuild/commands.py 1970-01-01 00:00:00 +0000
544+++ jarmonbuild/commands.py 2010-08-22 21:23:38 +0000
545@@ -0,0 +1,239 @@
546+# Copyright (c) 2010 Richard Wall <richard (at) the-moon.net>
547+"""
548+Functions and Classes for automating the release of Jarmon
549+"""
550+
551+import hashlib
552+import logging
553+import os
554+import shutil
555+import sys
556+
557+from optparse import OptionParser
558+from subprocess import check_call, PIPE
559+from tempfile import gettempdir
560+from urllib2 import urlopen
561+from zipfile import ZipFile, ZIP_DEFLATED
562+
563+import pkg_resources
564+
565+
566+JARMON_PROJECT_TITLE='Jarmon'
567+JARMON_PROJECT_URL='http://www.launchpad.net/jarmon'
568+
569+YUIDOC_URL = 'http://yuilibrary.com/downloads/yuidoc/yuidoc_1.0.0b1.zip'
570+YUIDOC_MD5 = 'cd5545d2dec8f7afe3d18e793538162c'
571+YUIDOC_DEPENDENCIES = ['setuptools', 'pygments', 'cheetah']
572+
573+
574+class BuildError(Exception):
575+ """
576+ A base Exception for errors in the build system
577+ """
578+ pass
579+
580+
581+class BuildCommand(object):
582+ def __init__(self, buildversion, log=None):
583+ self.buildversion = buildversion
584+ if log is not None:
585+ self.log = log
586+ else:
587+ self.log = logging.getLogger(
588+ '%s.%s' % (__name__, self.__class__.__name__))
589+
590+ self.workingbranch_dir = os.path.abspath(
591+ os.path.join(os.path.dirname(__file__), '..'))
592+
593+ # setup working dir
594+ self.build_dir = os.path.join(self.workingbranch_dir, 'build')
595+
596+ if not os.path.isdir(self.build_dir):
597+ self.log.debug('Creating build dir: %s' % (self.build_dir,))
598+ os.mkdir(self.build_dir)
599+ else:
600+ self.log.debug('Using build dir: %s' % (self.build_dir,))
601+
602+
603+class BuildApidocsCommand(BuildCommand):
604+ """
605+ Download YUI Doc and use it to generate apidocs for jarmon
606+ """
607+
608+ def main(self, argv):
609+ """
610+ The main entry point for the build-apidocs command
611+
612+ @param argv: The list of arguments passed to the build-apidocs command
613+ """
614+ tmpdir = gettempdir()
615+ workingbranch_dir = self.workingbranch_dir
616+ build_dir = self.build_dir
617+
618+ # Check for yuidoc dependencies
619+ for r in pkg_resources.parse_requirements(YUIDOC_DEPENDENCIES):
620+ if not pkg_resources.working_set.find(r):
621+ raise BuildError('Unsatisfied yuidoc dependency: %r' % (r,))
622+
623+ # download and cache yuidoc
624+ yuizip_path = os.path.join(tmpdir, os.path.basename(YUIDOC_URL))
625+ if os.path.exists(yuizip_path):
626+ self.log.debug('Using cached YUI doc')
627+ def producer():
628+ yield open(yuizip_path).read()
629+ else:
630+ self.log.debug('Downloading YUI Doc')
631+ def producer():
632+ with open(yuizip_path, 'w') as yuizip:
633+ download = urlopen(YUIDOC_URL)
634+ while True:
635+ bytes = download.read(1024*10)
636+ if not bytes:
637+ break
638+ else:
639+ yuizip.write(bytes)
640+ yield bytes
641+
642+ checksum = hashlib.md5()
643+ for bytes in producer():
644+ checksum.update(bytes)
645+
646+ actual_md5 = checksum.hexdigest()
647+ if actual_md5 != YUIDOC_MD5:
648+ raise BuildError(
649+ 'YUI Doc checksum error. File: %s, '
650+ 'Expected: %s, Got: %s' % (yuizip_path, YUIDOC_MD5, actual_md5))
651+ else:
652+ self.log.debug('YUI Doc checksum verified')
653+
654+ # Remove any existing apidocs so that we can track removed files
655+ shutil.rmtree(os.path.join(build_dir, 'docs', 'apidocs'), True)
656+
657+ yuidoc_dir = os.path.join(build_dir, 'yuidoc')
658+
659+ # extract yuidoc folder from the downloaded zip file
660+ self.log.debug(
661+ 'Extracting YUI Doc from %s to %s' % (yuizip_path, yuidoc_dir))
662+ zip = ZipFile(yuizip_path)
663+ zip.extractall(
664+ build_dir, (m for m in zip.namelist() if m.startswith('yuidoc')))
665+
666+ # Use the yuidoc script that we just extracted to generate new docs
667+ self.log.debug('Running YUI Doc')
668+ check_call((
669+ sys.executable,
670+ os.path.join(yuidoc_dir, 'bin', 'yuidoc.py'),
671+ os.path.join(workingbranch_dir, 'jarmon'),
672+ '--parseroutdir=%s' % (
673+ os.path.join(build_dir, 'docs', 'apidocs'),),
674+ '--outputdir=%s' % (
675+ os.path.join(build_dir, 'docs', 'apidocs'),),
676+ '--template=%s' % (
677+ os.path.join(
678+ workingbranch_dir, 'jarmonbuild', 'yuidoc_template'),),
679+ '--version=%s' % (self.buildversion,),
680+ '--project=%s' % (JARMON_PROJECT_TITLE,),
681+ '--projecturl=%s' % (JARMON_PROJECT_URL,)
682+ ), stdout=PIPE, stderr=PIPE,)
683+
684+ shutil.rmtree(yuidoc_dir)
685+
686+
687+class BuildReleaseCommand(BuildCommand):
688+ """
689+ Export all source files, generate apidocs and create a zip archive for
690+ upload to Launchpad.
691+ """
692+
693+ def main(self, argv):
694+ workingbranch_dir = self.workingbranch_dir
695+ build_dir = self.build_dir
696+
697+ self.log.debug('Export versioned files to a build folder')
698+ from bzrlib.commands import main as bzr_main
699+ status = bzr_main(['bzr', 'export', build_dir, workingbranch_dir])
700+ if status != 0:
701+ raise BuildError('bzr export failure. Status: %r' % (status,))
702+
703+
704+ self.log.debug('Record the branch version')
705+ from bzrlib.branch import Branch
706+ from bzrlib.version_info_formats import format_python
707+ v = format_python.PythonVersionInfoBuilder(
708+ Branch.open(workingbranch_dir))
709+ versionfile_path = os.path.join(build_dir, 'jarmonbuild', '_version.py')
710+ with open(versionfile_path, 'w') as f:
711+ v.generate(f)
712+
713+
714+ self.log.debug('Generate apidocs')
715+ BuildApidocsCommand(buildversion=self.buildversion).main(argv)
716+
717+
718+ self.log.debug('Generate archive')
719+ archive_root = 'jarmon-%s' % (self.buildversion,)
720+ prefix_len = len(build_dir) + 1
721+ z = ZipFile('%s.zip' % (archive_root,), 'w', ZIP_DEFLATED)
722+ try:
723+ for root, dirs, files in os.walk(build_dir):
724+ for file in files:
725+ z.write(
726+ os.path.join(root, file),
727+ os.path.join(archive_root, root[prefix_len:], file)
728+ )
729+ finally:
730+ z.close()
731+
732+
733+# The available sub commands
734+build_commands = {
735+ 'apidocs': BuildApidocsCommand,
736+ 'release': BuildReleaseCommand,
737+}
738+
739+
740+def main(argv=sys.argv[1:]):
741+ """
742+ The root build command which dispatches to various subcommands for eg
743+ building apidocs and release zip files.
744+ """
745+ parser = OptionParser(usage='%prog [options] SUBCOMMAND [options]')
746+ parser.add_option(
747+ '-V', '--build-version', dest='buildversion', default='0',
748+ metavar='BUILDVERSION', help='Specify the build version')
749+ parser.add_option(
750+ '-d', '--debug', action='store_true', default=False, dest='debug',
751+ help='Print verbose debug log to stderr')
752+
753+ parser.disable_interspersed_args()
754+
755+ options, args = parser.parse_args(argv)
756+
757+ if len(args) < 1:
758+ parser.error('Please specify a sub command. '
759+ 'Available commands: %r' % (build_commands.keys()))
760+
761+ # First argument is the name of a subcommand
762+ command_name = args.pop(0)
763+ command_factory = build_commands.get(command_name)
764+ if not command_factory:
765+ parser.error('Unrecognised subcommand: %r' % (command_name,))
766+
767+ # Setup logging
768+ log = logging.getLogger(__name__)
769+ log.setLevel(logging.INFO)
770+ # create console handler and set level to debug
771+ ch = logging.StreamHandler()
772+ ch.setLevel(logging.INFO)
773+ # create formatter
774+ formatter = logging.Formatter(
775+ '%(asctime)s - %(name)s - %(levelname)s - %(message)s')
776+ # add formatter to ch
777+ ch.setFormatter(formatter)
778+ log.addHandler(ch)
779+
780+ if options.debug:
781+ log.setLevel(logging.DEBUG)
782+ ch.setLevel(logging.DEBUG)
783+
784+ command_factory(buildversion=options.buildversion).main(argv=args)
785
786=== added directory 'jarmonbuild/yuidoc_template'
787=== added directory 'jarmonbuild/yuidoc_template/assets'
788=== added file 'jarmonbuild/yuidoc_template/assets/ac-js'
789--- jarmonbuild/yuidoc_template/assets/ac-js 1970-01-01 00:00:00 +0000
790+++ jarmonbuild/yuidoc_template/assets/ac-js 2010-08-22 21:23:38 +0000
791@@ -0,0 +1,162 @@
792+(function() {
793+ var Event=YAHOO.util.Event,
794+ Dom=YAHOO.util.Dom,
795+ oACDS, oAutoComp,
796+ show = {
797+ 'private': false,
798+ 'protected': false,
799+ 'deprecated': false
800+ };
801+
802+Event.onAvailable('yui-classopts-form', function() {
803+ //Checkboxes are available..
804+ var handleClick = function(e) {
805+ var id, checked = false;
806+ if (YAHOO.lang.isString(e)) {
807+ id = e;
808+ } else {
809+ var tar = Event.getTarget(e);
810+ id = tar.id;
811+ }
812+ var el = Dom.get(id);
813+ checked = el.checked;
814+
815+ var className = id;
816+ if (checked) {
817+ show[id.replace('show_', '')] = true;
818+ Dom.addClass(document.body, className);
819+ YAHOO.util.Cookie.setSub('yuidoc', id, 'checked');
820+ } else {
821+ show[id.replace('show_', '')] = false;
822+ Dom.removeClass(document.body, className);
823+ YAHOO.util.Cookie.setSub('yuidoc', id, '');
824+ }
825+ };
826+
827+ var checkCookie = function(id) {
828+ var value = YAHOO.util.Cookie.getSub('yuidoc', id),
829+ el = Dom.get(id), checked = (value === 'checked');;
830+
831+ /*
832+ if (value === 'checked') {
833+ el.checked = true;
834+ } else {
835+ el.checked = false;
836+ }
837+ */
838+
839+ el.checked = checked;
840+ return checked;
841+ };
842+
843+ var els = ['show_deprecated', 'show_protected', 'show_private'],
844+ reapplyHash = false;
845+
846+ for (var i = 0; i < els.length; i++) {
847+ Event.on(els[i], 'click', handleClick);
848+ reapplyHash = checkCookie(els[i]) || reapplyHash;
849+ handleClick(els[i]);
850+ }
851+
852+ // If we dynamically show private/protected/etc items during
853+ // load, we need to reapply anchors so that the search feature
854+ // works correctly for items that are initially hidden.
855+ if (reapplyHash) {
856+ var dl = document.location, hash = dl.hash;
857+ if (hash) {
858+ dl.hash = hash;
859+ }
860+ }
861+
862+});
863+
864+//Starting the AutoComplete code
865+ var getResults = function(query) {
866+ var results = [];
867+ if(query && query.length > 0) {
868+
869+ var q = query.toLowerCase();
870+
871+ for (var i=0, len=ALL_YUI_PROPS.length; i<len; ++i) {
872+
873+ var prop = ALL_YUI_PROPS[i];
874+
875+ if (!show['protected'] && prop.access == "protected") {
876+ // skip
877+ } else if (!show['private'] && prop.access == "private") {
878+ // skip
879+ } else if (!show['deprecated'] && prop.deprecated) {
880+ // skip
881+ } else {
882+ var s = (prop.host + "." + prop.name).toLowerCase();
883+ if (s.indexOf(q) > -1 ) {
884+ results.push([query, prop]);
885+ }
886+ }
887+ }
888+ }
889+
890+ return results;
891+ };
892+
893+ // Define Custom Event handlers
894+ var myOnDataReturn = function(sType, aArgs) {
895+ var oAutoComp = aArgs[0];
896+ var query = aArgs[1];
897+ var aResults = aArgs[2];
898+
899+ if(aResults.length == 0) {
900+ if (query.length > 0) {
901+ oAutoComp.setBody("<div id=\"resultsdefault\">Not found</div>");
902+ }
903+ }
904+ };
905+
906+ var myOnItemSelect = function(sType, aArgs) {
907+ var ac = aArgs[0];
908+ var item = aArgs[2];
909+ location.href = item[1].url;
910+ };
911+
912+
913+ Event.onAvailable("searchresults", function() {
914+
915+ // Instantiate JS Function DataSource
916+ oACDS = new YAHOO.widget.DS_JSFunction(getResults);
917+ oACDS.maxCacheEntries = 30;
918+
919+ // Instantiate AutoComplete
920+ oAutoComp = new YAHOO.widget.AutoComplete('searchinput','searchresults', oACDS);
921+ //oAutoComp.alwaysShowContainer = true;
922+ oAutoComp.queryDelay = 0.2;
923+ oAutoComp.maxResultsDisplayed = 200;
924+ oAutoComp.minQueryLength = 0;
925+ oAutoComp.formatResult = function(oResultItem, query) {
926+ var sMarkup = "<em>" + oResultItem[1].host + '</em> <span>' + oResultItem[1].name + '</span>';
927+ return sMarkup;
928+ };
929+
930+ // Subscribe to Custom Events
931+ oAutoComp.dataReturnEvent.subscribe(myOnDataReturn);
932+ oAutoComp.itemSelectEvent.subscribe(myOnItemSelect);
933+
934+ // Set initial content in the container
935+ oAutoComp.sendQuery(Dom.get("searchinput").value);
936+
937+ });
938+
939+ var validateForm = function() {
940+ return false;
941+ };
942+
943+ YAHOO.util.Event.onAvailable('classTab', function() {
944+ var tabs = new YAHOO.widget.TabView('classTab');
945+ });
946+ /*
947+ YAHOO.util.Event.onAvailable('codeTree', function() {
948+ var tree1 = new YAHOO.widget.TreeView('codeTree');
949+ tree1.render();
950+ });
951+ */
952+
953+})();
954
955=== added file 'jarmonbuild/yuidoc_template/assets/api-js'
956--- jarmonbuild/yuidoc_template/assets/api-js 1970-01-01 00:00:00 +0000
957+++ jarmonbuild/yuidoc_template/assets/api-js 2010-08-22 21:23:38 +0000
958@@ -0,0 +1,42 @@
959+/*
960+Copyright (c) 2008, Yahoo! Inc. All rights reserved.
961+Code licensed under the BSD License:
962+http://developer.yahoo.net/yui/license.txt
963+version: 2.6.0
964+*/
965+if(typeof YAHOO=="undefined"||!YAHOO){var YAHOO={};}YAHOO.namespace=function(){var A=arguments,E=null,C,B,D;for(C=0;C<A.length;C=C+1){D=A[C].split(".");E=YAHOO;for(B=(D[0]=="YAHOO")?1:0;B<D.length;B=B+1){E[D[B]]=E[D[B]]||{};E=E[D[B]];}}return E;};YAHOO.log=function(D,A,C){var B=YAHOO.widget.Logger;if(B&&B.log){return B.log(D,A,C);}else{return false;}};YAHOO.register=function(A,E,D){var I=YAHOO.env.modules;if(!I[A]){I[A]={versions:[],builds:[]};}var B=I[A],H=D.version,G=D.build,F=YAHOO.env.listeners;B.name=A;B.version=H;B.build=G;B.versions.push(H);B.builds.push(G);B.mainClass=E;for(var C=0;C<F.length;C=C+1){F[C](B);}if(E){E.VERSION=H;E.BUILD=G;}else{YAHOO.log("mainClass is undefined for module "+A,"warn");}};YAHOO.env=YAHOO.env||{modules:[],listeners:[]};YAHOO.env.getVersion=function(A){return YAHOO.env.modules[A]||null;};YAHOO.env.ua=function(){var C={ie:0,opera:0,gecko:0,webkit:0,mobile:null,air:0};var B=navigator.userAgent,A;if((/KHTML/).test(B)){C.webkit=1;}A=B.match(/AppleWebKit\/([^\s]*)/);if(A&&A[1]){C.webkit=parseFloat(A[1]);if(/ Mobile\//.test(B)){C.mobile="Apple";}else{A=B.match(/NokiaN[^\/]*/);if(A){C.mobile=A[0];}}A=B.match(/AdobeAIR\/([^\s]*)/);if(A){C.air=A[0];}}if(!C.webkit){A=B.match(/Opera[\s\/]([^\s]*)/);if(A&&A[1]){C.opera=parseFloat(A[1]);A=B.match(/Opera Mini[^;]*/);if(A){C.mobile=A[0];}}else{A=B.match(/MSIE\s([^;]*)/);if(A&&A[1]){C.ie=parseFloat(A[1]);}else{A=B.match(/Gecko\/([^\s]*)/);if(A){C.gecko=1;A=B.match(/rv:([^\s\)]*)/);if(A&&A[1]){C.gecko=parseFloat(A[1]);}}}}}return C;}();(function(){YAHOO.namespace("util","widget","example");if("undefined"!==typeof YAHOO_config){var B=YAHOO_config.listener,A=YAHOO.env.listeners,D=true,C;if(B){for(C=0;C<A.length;C=C+1){if(A[C]==B){D=false;break;}}if(D){A.push(B);}}}})();YAHOO.lang=YAHOO.lang||{};(function(){var A=YAHOO.lang,C=["toString","valueOf"],B={isArray:function(D){if(D){return A.isNumber(D.length)&&A.isFunction(D.splice);}return false;},isBoolean:function(D){return typeof D==="boolean";},isFunction:function(D){return typeof D==="function";},isNull:function(D){return D===null;},isNumber:function(D){return typeof D==="number"&&isFinite(D);},isObject:function(D){return(D&&(typeof D==="object"||A.isFunction(D)))||false;},isString:function(D){return typeof D==="string";},isUndefined:function(D){return typeof D==="undefined";},_IEEnumFix:(YAHOO.env.ua.ie)?function(F,E){for(var D=0;D<C.length;D=D+1){var H=C[D],G=E[H];if(A.isFunction(G)&&G!=Object.prototype[H]){F[H]=G;}}}:function(){},extend:function(H,I,G){if(!I||!H){throw new Error("extend failed, please check that "+"all dependencies are included.");}var E=function(){};E.prototype=I.prototype;H.prototype=new E();H.prototype.constructor=H;H.superclass=I.prototype;if(I.prototype.constructor==Object.prototype.constructor){I.prototype.constructor=I;}if(G){for(var D in G){if(A.hasOwnProperty(G,D)){H.prototype[D]=G[D];}}A._IEEnumFix(H.prototype,G);}},augmentObject:function(H,G){if(!G||!H){throw new Error("Absorb failed, verify dependencies.");}var D=arguments,F,I,E=D[2];if(E&&E!==true){for(F=2;F<D.length;F=F+1){H[D[F]]=G[D[F]];}}else{for(I in G){if(E||!(I in H)){H[I]=G[I];}}A._IEEnumFix(H,G);}},augmentProto:function(G,F){if(!F||!G){throw new Error("Augment failed, verify dependencies.");}var D=[G.prototype,F.prototype];for(var E=2;E<arguments.length;E=E+1){D.push(arguments[E]);}A.augmentObject.apply(this,D);},dump:function(D,I){var F,H,K=[],L="{...}",E="f(){...}",J=", ",G=" => ";if(!A.isObject(D)){return D+"";}else{if(D instanceof Date||("nodeType" in D&&"tagName" in D)){return D;}else{if(A.isFunction(D)){return E;}}}I=(A.isNumber(I))?I:3;if(A.isArray(D)){K.push("[");for(F=0,H=D.length;F<H;F=F+1){if(A.isObject(D[F])){K.push((I>0)?A.dump(D[F],I-1):L);}else{K.push(D[F]);}K.push(J);}if(K.length>1){K.pop();}K.push("]");}else{K.push("{");for(F in D){if(A.hasOwnProperty(D,F)){K.push(F+G);if(A.isObject(D[F])){K.push((I>0)?A.dump(D[F],I-1):L);}else{K.push(D[F]);}K.push(J);}}if(K.length>1){K.pop();}K.push("}");}return K.join("");},substitute:function(S,E,L){var I,H,G,O,P,R,N=[],F,J="dump",M=" ",D="{",Q="}";for(;;){I=S.lastIndexOf(D);if(I<0){break;}H=S.indexOf(Q,I);if(I+1>=H){break;}F=S.substring(I+1,H);O=F;R=null;G=O.indexOf(M);if(G>-1){R=O.substring(G+1);O=O.substring(0,G);}P=E[O];if(L){P=L(O,P,R);}if(A.isObject(P)){if(A.isArray(P)){P=A.dump(P,parseInt(R,10));}else{R=R||"";var K=R.indexOf(J);if(K>-1){R=R.substring(4);}if(P.toString===Object.prototype.toString||K>-1){P=A.dump(P,parseInt(R,10));}else{P=P.toString();}}}else{if(!A.isString(P)&&!A.isNumber(P)){P="~-"+N.length+"-~";N[N.length]=F;}}S=S.substring(0,I)+P+S.substring(H+1);}for(I=N.length-1;I>=0;I=I-1){S=S.replace(new RegExp("~-"+I+"-~"),"{"+N[I]+"}","g");}return S;},trim:function(D){try{return D.replace(/^\s+|\s+$/g,"");}catch(E){return D;}},merge:function(){var G={},E=arguments;for(var F=0,D=E.length;F<D;F=F+1){A.augmentObject(G,E[F],true);}return G;},later:function(K,E,L,G,H){K=K||0;E=E||{};var F=L,J=G,I,D;if(A.isString(L)){F=E[L];}if(!F){throw new TypeError("method undefined");}if(!A.isArray(J)){J=[G];}I=function(){F.apply(E,J);};D=(H)?setInterval(I,K):setTimeout(I,K);return{interval:H,cancel:function(){if(this.interval){clearInterval(D);}else{clearTimeout(D);}}};},isValue:function(D){return(A.isObject(D)||A.isString(D)||A.isNumber(D)||A.isBoolean(D));}};A.hasOwnProperty=(Object.prototype.hasOwnProperty)?function(D,E){return D&&D.hasOwnProperty(E);}:function(D,E){return !A.isUndefined(D[E])&&D.constructor.prototype[E]!==D[E];};B.augmentObject(A,B,true);YAHOO.util.Lang=A;A.augment=A.augmentProto;YAHOO.augment=A.augmentProto;YAHOO.extend=A.extend;})();YAHOO.register("yahoo",YAHOO,{version:"2.6.0",build:"1321"});(function(){var B=YAHOO.util,F=YAHOO.lang,L,J,K={},G={},N=window.document;YAHOO.env._id_counter=YAHOO.env._id_counter||0;var C=YAHOO.env.ua.opera,M=YAHOO.env.ua.webkit,A=YAHOO.env.ua.gecko,H=YAHOO.env.ua.ie;var E={HYPHEN:/(-[a-z])/i,ROOT_TAG:/^body|html$/i,OP_SCROLL:/^(?:inline|table-row)$/i};var O=function(Q){if(!E.HYPHEN.test(Q)){return Q;}if(K[Q]){return K[Q];}var R=Q;while(E.HYPHEN.exec(R)){R=R.replace(RegExp.$1,RegExp.$1.substr(1).toUpperCase());}K[Q]=R;return R;};var P=function(R){var Q=G[R];if(!Q){Q=new RegExp("(?:^|\\s+)"+R+"(?:\\s+|$)");G[R]=Q;}return Q;};if(N.defaultView&&N.defaultView.getComputedStyle){L=function(Q,T){var S=null;if(T=="float"){T="cssFloat";}var R=Q.ownerDocument.defaultView.getComputedStyle(Q,"");if(R){S=R[O(T)];}return Q.style[T]||S;};}else{if(N.documentElement.currentStyle&&H){L=function(Q,S){switch(O(S)){case"opacity":var U=100;try{U=Q.filters["DXImageTransform.Microsoft.Alpha"].opacity;}catch(T){try{U=Q.filters("alpha").opacity;}catch(T){}}return U/100;case"float":S="styleFloat";default:var R=Q.currentStyle?Q.currentStyle[S]:null;return(Q.style[S]||R);}};}else{L=function(Q,R){return Q.style[R];};}}if(H){J=function(Q,R,S){switch(R){case"opacity":if(F.isString(Q.style.filter)){Q.style.filter="alpha(opacity="+S*100+")";if(!Q.currentStyle||!Q.currentStyle.hasLayout){Q.style.zoom=1;}}break;case"float":R="styleFloat";default:Q.style[R]=S;}};}else{J=function(Q,R,S){if(R=="float"){R="cssFloat";}Q.style[R]=S;};}var D=function(Q,R){return Q&&Q.nodeType==1&&(!R||R(Q));};YAHOO.util.Dom={get:function(S){if(S){if(S.nodeType||S.item){return S;}if(typeof S==="string"){return N.getElementById(S);}if("length" in S){var T=[];for(var R=0,Q=S.length;R<Q;++R){T[T.length]=B.Dom.get(S[R]);}return T;}return S;}return null;},getStyle:function(Q,S){S=O(S);var R=function(T){return L(T,S);};return B.Dom.batch(Q,R,B.Dom,true);},setStyle:function(Q,S,T){S=O(S);var R=function(U){J(U,S,T);};B.Dom.batch(Q,R,B.Dom,true);},getXY:function(Q){var R=function(S){if((S.parentNode===null||S.offsetParent===null||this.getStyle(S,"display")=="none")&&S!=S.ownerDocument.body){return false;}return I(S);};return B.Dom.batch(Q,R,B.Dom,true);},getX:function(Q){var R=function(S){return B.Dom.getXY(S)[0];};return B.Dom.batch(Q,R,B.Dom,true);},getY:function(Q){var R=function(S){return B.Dom.getXY(S)[1];};return B.Dom.batch(Q,R,B.Dom,true);},setXY:function(Q,T,S){var R=function(W){var V=this.getStyle(W,"position");if(V=="static"){this.setStyle(W,"position","relative");V="relative";}var Y=this.getXY(W);if(Y===false){return false;}var X=[parseInt(this.getStyle(W,"left"),10),parseInt(this.getStyle(W,"top"),10)];if(isNaN(X[0])){X[0]=(V=="relative")?0:W.offsetLeft;}if(isNaN(X[1])){X[1]=(V=="relative")?0:W.offsetTop;}if(T[0]!==null){W.style.left=T[0]-Y[0]+X[0]+"px";}if(T[1]!==null){W.style.top=T[1]-Y[1]+X[1]+"px";}if(!S){var U=this.getXY(W);if((T[0]!==null&&U[0]!=T[0])||(T[1]!==null&&U[1]!=T[1])){this.setXY(W,T,true);}}};B.Dom.batch(Q,R,B.Dom,true);},setX:function(R,Q){B.Dom.setXY(R,[Q,null]);},setY:function(Q,R){B.Dom.setXY(Q,[null,R]);},getRegion:function(Q){var R=function(S){if((S.parentNode===null||S.offsetParent===null||this.getStyle(S,"display")=="none")&&S!=S.ownerDocument.body){return false;}var T=B.Region.getRegion(S);return T;};return B.Dom.batch(Q,R,B.Dom,true);},getClientWidth:function(){return B.Dom.getViewportWidth();},getClientHeight:function(){return B.Dom.getViewportHeight();},getElementsByClassName:function(U,Y,V,W){U=F.trim(U);Y=Y||"*";V=(V)?B.Dom.get(V):null||N;if(!V){return[];}var R=[],Q=V.getElementsByTagName(Y),X=P(U);for(var S=0,T=Q.length;S<T;++S){if(X.test(Q[S].className)){R[R.length]=Q[S];if(W){W.call(Q[S],Q[S]);}}}return R;},hasClass:function(S,R){var Q=P(R);var T=function(U){return Q.test(U.className);};return B.Dom.batch(S,T,B.Dom,true);},addClass:function(R,Q){var S=function(T){if(this.hasClass(T,Q)){return false;}T.className=F.trim([T.className,Q].join(" "));return true;};return B.Dom.batch(R,S,B.Dom,true);},removeClass:function(S,R){var Q=P(R);var T=function(W){var V=false,X=W.className;if(R&&X&&this.hasClass(W,R)){W.className=X.replace(Q," ");if(this.hasClass(W,R)){this.removeClass(W,R);}W.className=F.trim(W.className);if(W.className===""){var U=(W.hasAttribute)?"class":"className";W.removeAttribute(U);}V=true;}return V;};return B.Dom.batch(S,T,B.Dom,true);},replaceClass:function(T,R,Q){if(!Q||R===Q){return false;}var S=P(R);var U=function(V){if(!this.hasClass(V,R)){this.addClass(V,Q);return true;}V.className=V.className.replace(S," "+Q+" ");if(this.hasClass(V,R)){this.removeClass(V,R);}V.className=F.trim(V.className);return true;};return B.Dom.batch(T,U,B.Dom,true);},generateId:function(Q,S){S=S||"yui-gen";var R=function(T){if(T&&T.id){return T.id;}var U=S+YAHOO.env._id_counter++;if(T){T.id=U;}return U;};return B.Dom.batch(Q,R,B.Dom,true)||R.apply(B.Dom,arguments);},isAncestor:function(R,S){R=B.Dom.get(R);S=B.Dom.get(S);var Q=false;if((R&&S)&&(R.nodeType&&S.nodeType)){if(R.contains&&R!==S){Q=R.contains(S);}else{if(R.compareDocumentPosition){Q=!!(R.compareDocumentPosition(S)&16);}}}else{}return Q;},inDocument:function(Q){return this.isAncestor(N.documentElement,Q);},getElementsBy:function(X,R,S,U){R=R||"*";S=(S)?B.Dom.get(S):null||N;if(!S){return[];}var T=[],W=S.getElementsByTagName(R);for(var V=0,Q=W.length;V<Q;++V){if(X(W[V])){T[T.length]=W[V];if(U){U(W[V]);}}}return T;},batch:function(U,X,W,S){U=(U&&(U.tagName||U.item))?U:B.Dom.get(U);if(!U||!X){return false;}var T=(S)?W:window;if(U.tagName||U.length===undefined){return X.call(T,U,W);}var V=[];for(var R=0,Q=U.length;R<Q;++R){V[V.length]=X.call(T,U[R],W);}return V;},getDocumentHeight:function(){var R=(N.compatMode!="CSS1Compat")?N.body.scrollHeight:N.documentElement.scrollHeight;var Q=Math.max(R,B.Dom.getViewportHeight());return Q;},getDocumentWidth:function(){var R=(N.compatMode!="CSS1Compat")?N.body.scrollWidth:N.documentElement.scrollWidth;var Q=Math.max(R,B.Dom.getViewportWidth());return Q;},getViewportHeight:function(){var Q=self.innerHeight;
966+var R=N.compatMode;if((R||H)&&!C){Q=(R=="CSS1Compat")?N.documentElement.clientHeight:N.body.clientHeight;}return Q;},getViewportWidth:function(){var Q=self.innerWidth;var R=N.compatMode;if(R||H){Q=(R=="CSS1Compat")?N.documentElement.clientWidth:N.body.clientWidth;}return Q;},getAncestorBy:function(Q,R){while((Q=Q.parentNode)){if(D(Q,R)){return Q;}}return null;},getAncestorByClassName:function(R,Q){R=B.Dom.get(R);if(!R){return null;}var S=function(T){return B.Dom.hasClass(T,Q);};return B.Dom.getAncestorBy(R,S);},getAncestorByTagName:function(R,Q){R=B.Dom.get(R);if(!R){return null;}var S=function(T){return T.tagName&&T.tagName.toUpperCase()==Q.toUpperCase();};return B.Dom.getAncestorBy(R,S);},getPreviousSiblingBy:function(Q,R){while(Q){Q=Q.previousSibling;if(D(Q,R)){return Q;}}return null;},getPreviousSibling:function(Q){Q=B.Dom.get(Q);if(!Q){return null;}return B.Dom.getPreviousSiblingBy(Q);},getNextSiblingBy:function(Q,R){while(Q){Q=Q.nextSibling;if(D(Q,R)){return Q;}}return null;},getNextSibling:function(Q){Q=B.Dom.get(Q);if(!Q){return null;}return B.Dom.getNextSiblingBy(Q);},getFirstChildBy:function(Q,S){var R=(D(Q.firstChild,S))?Q.firstChild:null;return R||B.Dom.getNextSiblingBy(Q.firstChild,S);},getFirstChild:function(Q,R){Q=B.Dom.get(Q);if(!Q){return null;}return B.Dom.getFirstChildBy(Q);},getLastChildBy:function(Q,S){if(!Q){return null;}var R=(D(Q.lastChild,S))?Q.lastChild:null;return R||B.Dom.getPreviousSiblingBy(Q.lastChild,S);},getLastChild:function(Q){Q=B.Dom.get(Q);return B.Dom.getLastChildBy(Q);},getChildrenBy:function(R,T){var S=B.Dom.getFirstChildBy(R,T);var Q=S?[S]:[];B.Dom.getNextSiblingBy(S,function(U){if(!T||T(U)){Q[Q.length]=U;}return false;});return Q;},getChildren:function(Q){Q=B.Dom.get(Q);if(!Q){}return B.Dom.getChildrenBy(Q);},getDocumentScrollLeft:function(Q){Q=Q||N;return Math.max(Q.documentElement.scrollLeft,Q.body.scrollLeft);},getDocumentScrollTop:function(Q){Q=Q||N;return Math.max(Q.documentElement.scrollTop,Q.body.scrollTop);},insertBefore:function(R,Q){R=B.Dom.get(R);Q=B.Dom.get(Q);if(!R||!Q||!Q.parentNode){return null;}return Q.parentNode.insertBefore(R,Q);},insertAfter:function(R,Q){R=B.Dom.get(R);Q=B.Dom.get(Q);if(!R||!Q||!Q.parentNode){return null;}if(Q.nextSibling){return Q.parentNode.insertBefore(R,Q.nextSibling);}else{return Q.parentNode.appendChild(R);}},getClientRegion:function(){var S=B.Dom.getDocumentScrollTop(),R=B.Dom.getDocumentScrollLeft(),T=B.Dom.getViewportWidth()+R,Q=B.Dom.getViewportHeight()+S;return new B.Region(S,T,Q,R);}};var I=function(){if(N.documentElement.getBoundingClientRect){return function(S){var T=S.getBoundingClientRect(),R=Math.round;var Q=S.ownerDocument;return[R(T.left+B.Dom.getDocumentScrollLeft(Q)),R(T.top+B.Dom.getDocumentScrollTop(Q))];};}else{return function(S){var T=[S.offsetLeft,S.offsetTop];var R=S.offsetParent;var Q=(M&&B.Dom.getStyle(S,"position")=="absolute"&&S.offsetParent==S.ownerDocument.body);if(R!=S){while(R){T[0]+=R.offsetLeft;T[1]+=R.offsetTop;if(!Q&&M&&B.Dom.getStyle(R,"position")=="absolute"){Q=true;}R=R.offsetParent;}}if(Q){T[0]-=S.ownerDocument.body.offsetLeft;T[1]-=S.ownerDocument.body.offsetTop;}R=S.parentNode;while(R.tagName&&!E.ROOT_TAG.test(R.tagName)){if(R.scrollTop||R.scrollLeft){T[0]-=R.scrollLeft;T[1]-=R.scrollTop;}R=R.parentNode;}return T;};}}();})();YAHOO.util.Region=function(C,D,A,B){this.top=C;this[1]=C;this.right=D;this.bottom=A;this.left=B;this[0]=B;};YAHOO.util.Region.prototype.contains=function(A){return(A.left>=this.left&&A.right<=this.right&&A.top>=this.top&&A.bottom<=this.bottom);};YAHOO.util.Region.prototype.getArea=function(){return((this.bottom-this.top)*(this.right-this.left));};YAHOO.util.Region.prototype.intersect=function(E){var C=Math.max(this.top,E.top);var D=Math.min(this.right,E.right);var A=Math.min(this.bottom,E.bottom);var B=Math.max(this.left,E.left);if(A>=C&&D>=B){return new YAHOO.util.Region(C,D,A,B);}else{return null;}};YAHOO.util.Region.prototype.union=function(E){var C=Math.min(this.top,E.top);var D=Math.max(this.right,E.right);var A=Math.max(this.bottom,E.bottom);var B=Math.min(this.left,E.left);return new YAHOO.util.Region(C,D,A,B);};YAHOO.util.Region.prototype.toString=function(){return("Region {"+"top: "+this.top+", right: "+this.right+", bottom: "+this.bottom+", left: "+this.left+"}");};YAHOO.util.Region.getRegion=function(D){var F=YAHOO.util.Dom.getXY(D);var C=F[1];var E=F[0]+D.offsetWidth;var A=F[1]+D.offsetHeight;var B=F[0];return new YAHOO.util.Region(C,E,A,B);};YAHOO.util.Point=function(A,B){if(YAHOO.lang.isArray(A)){B=A[1];A=A[0];}this.x=this.right=this.left=this[0]=A;this.y=this.top=this.bottom=this[1]=B;};YAHOO.util.Point.prototype=new YAHOO.util.Region();YAHOO.register("dom",YAHOO.util.Dom,{version:"2.6.0",build:"1321"});YAHOO.util.CustomEvent=function(D,B,C,A){this.type=D;this.scope=B||window;this.silent=C;this.signature=A||YAHOO.util.CustomEvent.LIST;this.subscribers=[];if(!this.silent){}var E="_YUICEOnSubscribe";if(D!==E){this.subscribeEvent=new YAHOO.util.CustomEvent(E,this,true);}this.lastError=null;};YAHOO.util.CustomEvent.LIST=0;YAHOO.util.CustomEvent.FLAT=1;YAHOO.util.CustomEvent.prototype={subscribe:function(B,C,A){if(!B){throw new Error("Invalid callback for subscriber to '"+this.type+"'");}if(this.subscribeEvent){this.subscribeEvent.fire(B,C,A);}this.subscribers.push(new YAHOO.util.Subscriber(B,C,A));},unsubscribe:function(D,F){if(!D){return this.unsubscribeAll();}var E=false;for(var B=0,A=this.subscribers.length;B<A;++B){var C=this.subscribers[B];if(C&&C.contains(D,F)){this._delete(B);E=true;}}return E;},fire:function(){this.lastError=null;var K=[],E=this.subscribers.length;if(!E&&this.silent){return true;}var I=[].slice.call(arguments,0),G=true,D,J=false;if(!this.silent){}var C=this.subscribers.slice(),A=YAHOO.util.Event.throwErrors;for(D=0;D<E;++D){var M=C[D];if(!M){J=true;}else{if(!this.silent){}var L=M.getScope(this.scope);if(this.signature==YAHOO.util.CustomEvent.FLAT){var B=null;if(I.length>0){B=I[0];}try{G=M.fn.call(L,B,M.obj);}catch(F){this.lastError=F;if(A){throw F;}}}else{try{G=M.fn.call(L,this.type,I,M.obj);}catch(H){this.lastError=H;if(A){throw H;}}}if(false===G){if(!this.silent){}break;}}}return(G!==false);},unsubscribeAll:function(){for(var A=this.subscribers.length-1;A>-1;A--){this._delete(A);}this.subscribers=[];return A;},_delete:function(A){var B=this.subscribers[A];if(B){delete B.fn;delete B.obj;}this.subscribers.splice(A,1);},toString:function(){return"CustomEvent: "+"'"+this.type+"', "+"scope: "+this.scope;}};YAHOO.util.Subscriber=function(B,C,A){this.fn=B;this.obj=YAHOO.lang.isUndefined(C)?null:C;this.override=A;};YAHOO.util.Subscriber.prototype.getScope=function(A){if(this.override){if(this.override===true){return this.obj;}else{return this.override;}}return A;};YAHOO.util.Subscriber.prototype.contains=function(A,B){if(B){return(this.fn==A&&this.obj==B);}else{return(this.fn==A);}};YAHOO.util.Subscriber.prototype.toString=function(){return"Subscriber { obj: "+this.obj+", override: "+(this.override||"no")+" }";};if(!YAHOO.util.Event){YAHOO.util.Event=function(){var H=false;var I=[];var J=[];var G=[];var E=[];var C=0;var F=[];var B=[];var A=0;var D={63232:38,63233:40,63234:37,63235:39,63276:33,63277:34,25:9};var K=YAHOO.env.ua.ie?"focusin":"focus";var L=YAHOO.env.ua.ie?"focusout":"blur";return{POLL_RETRYS:2000,POLL_INTERVAL:20,EL:0,TYPE:1,FN:2,WFN:3,UNLOAD_OBJ:3,ADJ_SCOPE:4,OBJ:5,OVERRIDE:6,CAPTURE:7,lastError:null,isSafari:YAHOO.env.ua.webkit,webkit:YAHOO.env.ua.webkit,isIE:YAHOO.env.ua.ie,_interval:null,_dri:null,DOMReady:false,throwErrors:false,startInterval:function(){if(!this._interval){var M=this;var N=function(){M._tryPreloadAttach();};this._interval=setInterval(N,this.POLL_INTERVAL);}},onAvailable:function(R,O,S,Q,P){var M=(YAHOO.lang.isString(R))?[R]:R;for(var N=0;N<M.length;N=N+1){F.push({id:M[N],fn:O,obj:S,override:Q,checkReady:P});}C=this.POLL_RETRYS;this.startInterval();},onContentReady:function(O,M,P,N){this.onAvailable(O,M,P,N,true);},onDOMReady:function(M,O,N){if(this.DOMReady){setTimeout(function(){var P=window;if(N){if(N===true){P=O;}else{P=N;}}M.call(P,"DOMReady",[],O);},0);}else{this.DOMReadyEvent.subscribe(M,O,N);}},_addListener:function(O,M,X,S,N,a){if(!X||!X.call){return false;}if(this._isValidCollection(O)){var Y=true;for(var T=0,V=O.length;T<V;++T){Y=this._addListener(O[T],M,X,S,N,a)&&Y;}return Y;}else{if(YAHOO.lang.isString(O)){var R=this.getEl(O);if(R){O=R;}else{this.onAvailable(O,function(){YAHOO.util.Event._addListener(O,M,X,S,N,a);});return true;}}}if(!O){return false;}if("unload"==M&&S!==this){J[J.length]=[O,M,X,S,N,a];return true;}var b=O;if(N){if(N===true){b=S;}else{b=N;}}var P=function(c){return X.call(b,YAHOO.util.Event.getEvent(c,O),S);};var Z=[O,M,X,P,b,S,N,a];var U=I.length;I[U]=Z;if(this.useLegacyEvent(O,M)){var Q=this.getLegacyIndex(O,M);if(Q==-1||O!=G[Q][0]){Q=G.length;B[O.id+M]=Q;G[Q]=[O,M,O["on"+M]];E[Q]=[];O["on"+M]=function(c){YAHOO.util.Event.fireLegacyEvent(YAHOO.util.Event.getEvent(c),Q);};}E[Q].push(Z);}else{try{this._simpleAdd(O,M,P,a);}catch(W){this.lastError=W;this._removeListener(O,M,X,a);return false;}}return true;},addListener:function(O,Q,N,P,M){return this._addListener(O,Q,N,P,M,false);},addFocusListener:function(O,N,P,M){return this._addListener(O,K,N,P,M,true);},removeFocusListener:function(N,M){return this._removeListener(N,K,M,true);},addBlurListener:function(O,N,P,M){return this._addListener(O,L,N,P,M,true);},removeBlurListener:function(N,M){return this._removeListener(N,L,M,true);},fireLegacyEvent:function(Q,O){var S=true,M,U,T,V,R;U=E[O].slice();for(var N=0,P=U.length;N<P;++N){T=U[N];if(T&&T[this.WFN]){V=T[this.ADJ_SCOPE];R=T[this.WFN].call(V,Q);S=(S&&R);}}M=G[O];if(M&&M[2]){M[2](Q);}return S;},getLegacyIndex:function(N,O){var M=this.generateId(N)+O;if(typeof B[M]=="undefined"){return -1;}else{return B[M];}},useLegacyEvent:function(M,N){return(this.webkit&&this.webkit<419&&("click"==N||"dblclick"==N));},_removeListener:function(N,M,V,Y){var Q,T,X;if(typeof N=="string"){N=this.getEl(N);}else{if(this._isValidCollection(N)){var W=true;for(Q=N.length-1;Q>-1;Q--){W=(this._removeListener(N[Q],M,V,Y)&&W);}return W;}}if(!V||!V.call){return this.purgeElement(N,false,M);}if("unload"==M){for(Q=J.length-1;Q>-1;Q--){X=J[Q];if(X&&X[0]==N&&X[1]==M&&X[2]==V){J.splice(Q,1);return true;}}return false;}var R=null;var S=arguments[4];if("undefined"===typeof S){S=this._getCacheIndex(N,M,V);}if(S>=0){R=I[S];}if(!N||!R){return false;}if(this.useLegacyEvent(N,M)){var P=this.getLegacyIndex(N,M);var O=E[P];if(O){for(Q=0,T=O.length;Q<T;++Q){X=O[Q];if(X&&X[this.EL]==N&&X[this.TYPE]==M&&X[this.FN]==V){O.splice(Q,1);break;}}}}else{try{this._simpleRemove(N,M,R[this.WFN],Y);}catch(U){this.lastError=U;return false;}}delete I[S][this.WFN];delete I[S][this.FN];
967+I.splice(S,1);return true;},removeListener:function(N,O,M){return this._removeListener(N,O,M,false);},getTarget:function(O,N){var M=O.target||O.srcElement;return this.resolveTextNode(M);},resolveTextNode:function(N){try{if(N&&3==N.nodeType){return N.parentNode;}}catch(M){}return N;},getPageX:function(N){var M=N.pageX;if(!M&&0!==M){M=N.clientX||0;if(this.isIE){M+=this._getScrollLeft();}}return M;},getPageY:function(M){var N=M.pageY;if(!N&&0!==N){N=M.clientY||0;if(this.isIE){N+=this._getScrollTop();}}return N;},getXY:function(M){return[this.getPageX(M),this.getPageY(M)];},getRelatedTarget:function(N){var M=N.relatedTarget;if(!M){if(N.type=="mouseout"){M=N.toElement;}else{if(N.type=="mouseover"){M=N.fromElement;}}}return this.resolveTextNode(M);},getTime:function(O){if(!O.time){var N=new Date().getTime();try{O.time=N;}catch(M){this.lastError=M;return N;}}return O.time;},stopEvent:function(M){this.stopPropagation(M);this.preventDefault(M);},stopPropagation:function(M){if(M.stopPropagation){M.stopPropagation();}else{M.cancelBubble=true;}},preventDefault:function(M){if(M.preventDefault){M.preventDefault();}else{M.returnValue=false;}},getEvent:function(O,M){var N=O||window.event;if(!N){var P=this.getEvent.caller;while(P){N=P.arguments[0];if(N&&Event==N.constructor){break;}P=P.caller;}}return N;},getCharCode:function(N){var M=N.keyCode||N.charCode||0;if(YAHOO.env.ua.webkit&&(M in D)){M=D[M];}return M;},_getCacheIndex:function(Q,R,P){for(var O=0,N=I.length;O<N;O=O+1){var M=I[O];if(M&&M[this.FN]==P&&M[this.EL]==Q&&M[this.TYPE]==R){return O;}}return -1;},generateId:function(M){var N=M.id;if(!N){N="yuievtautoid-"+A;++A;M.id=N;}return N;},_isValidCollection:function(N){try{return(N&&typeof N!=="string"&&N.length&&!N.tagName&&!N.alert&&typeof N[0]!=="undefined");}catch(M){return false;}},elCache:{},getEl:function(M){return(typeof M==="string")?document.getElementById(M):M;},clearCache:function(){},DOMReadyEvent:new YAHOO.util.CustomEvent("DOMReady",this),_load:function(N){if(!H){H=true;var M=YAHOO.util.Event;M._ready();M._tryPreloadAttach();}},_ready:function(N){var M=YAHOO.util.Event;if(!M.DOMReady){M.DOMReady=true;M.DOMReadyEvent.fire();M._simpleRemove(document,"DOMContentLoaded",M._ready);}},_tryPreloadAttach:function(){if(F.length===0){C=0;clearInterval(this._interval);this._interval=null;return ;}if(this.locked){return ;}if(this.isIE){if(!this.DOMReady){this.startInterval();return ;}}this.locked=true;var S=!H;if(!S){S=(C>0&&F.length>0);}var R=[];var T=function(V,W){var U=V;if(W.override){if(W.override===true){U=W.obj;}else{U=W.override;}}W.fn.call(U,W.obj);};var N,M,Q,P,O=[];for(N=0,M=F.length;N<M;N=N+1){Q=F[N];if(Q){P=this.getEl(Q.id);if(P){if(Q.checkReady){if(H||P.nextSibling||!S){O.push(Q);F[N]=null;}}else{T(P,Q);F[N]=null;}}else{R.push(Q);}}}for(N=0,M=O.length;N<M;N=N+1){Q=O[N];T(this.getEl(Q.id),Q);}C--;if(S){for(N=F.length-1;N>-1;N--){Q=F[N];if(!Q||!Q.id){F.splice(N,1);}}this.startInterval();}else{clearInterval(this._interval);this._interval=null;}this.locked=false;},purgeElement:function(Q,R,T){var O=(YAHOO.lang.isString(Q))?this.getEl(Q):Q;var S=this.getListeners(O,T),P,M;if(S){for(P=S.length-1;P>-1;P--){var N=S[P];this._removeListener(O,N.type,N.fn,N.capture);}}if(R&&O&&O.childNodes){for(P=0,M=O.childNodes.length;P<M;++P){this.purgeElement(O.childNodes[P],R,T);}}},getListeners:function(O,M){var R=[],N;if(!M){N=[I,J];}else{if(M==="unload"){N=[J];}else{N=[I];}}var T=(YAHOO.lang.isString(O))?this.getEl(O):O;for(var Q=0;Q<N.length;Q=Q+1){var V=N[Q];if(V){for(var S=0,U=V.length;S<U;++S){var P=V[S];if(P&&P[this.EL]===T&&(!M||M===P[this.TYPE])){R.push({type:P[this.TYPE],fn:P[this.FN],obj:P[this.OBJ],adjust:P[this.OVERRIDE],scope:P[this.ADJ_SCOPE],capture:P[this.CAPTURE],index:S});}}}}return(R.length)?R:null;},_unload:function(S){var M=YAHOO.util.Event,P,O,N,R,Q,T=J.slice();for(P=0,R=J.length;P<R;++P){N=T[P];if(N){var U=window;if(N[M.ADJ_SCOPE]){if(N[M.ADJ_SCOPE]===true){U=N[M.UNLOAD_OBJ];}else{U=N[M.ADJ_SCOPE];}}N[M.FN].call(U,M.getEvent(S,N[M.EL]),N[M.UNLOAD_OBJ]);T[P]=null;N=null;U=null;}}J=null;if(I){for(O=I.length-1;O>-1;O--){N=I[O];if(N){M._removeListener(N[M.EL],N[M.TYPE],N[M.FN],N[M.CAPTURE],O);}}N=null;}G=null;M._simpleRemove(window,"unload",M._unload);},_getScrollLeft:function(){return this._getScroll()[1];},_getScrollTop:function(){return this._getScroll()[0];},_getScroll:function(){var M=document.documentElement,N=document.body;if(M&&(M.scrollTop||M.scrollLeft)){return[M.scrollTop,M.scrollLeft];}else{if(N){return[N.scrollTop,N.scrollLeft];}else{return[0,0];}}},regCE:function(){},_simpleAdd:function(){if(window.addEventListener){return function(O,P,N,M){O.addEventListener(P,N,(M));};}else{if(window.attachEvent){return function(O,P,N,M){O.attachEvent("on"+P,N);};}else{return function(){};}}}(),_simpleRemove:function(){if(window.removeEventListener){return function(O,P,N,M){O.removeEventListener(P,N,(M));};}else{if(window.detachEvent){return function(N,O,M){N.detachEvent("on"+O,M);};}else{return function(){};}}}()};}();(function(){var EU=YAHOO.util.Event;EU.on=EU.addListener;EU.onFocus=EU.addFocusListener;EU.onBlur=EU.addBlurListener;
968+/* DOMReady: based on work by: Dean Edwards/John Resig/Matthias Miller */
969+if(EU.isIE){YAHOO.util.Event.onDOMReady(YAHOO.util.Event._tryPreloadAttach,YAHOO.util.Event,true);var n=document.createElement("p");EU._dri=setInterval(function(){try{n.doScroll("left");clearInterval(EU._dri);EU._dri=null;EU._ready();n=null;}catch(ex){}},EU.POLL_INTERVAL);}else{if(EU.webkit&&EU.webkit<525){EU._dri=setInterval(function(){var rs=document.readyState;if("loaded"==rs||"complete"==rs){clearInterval(EU._dri);EU._dri=null;EU._ready();}},EU.POLL_INTERVAL);}else{EU._simpleAdd(document,"DOMContentLoaded",EU._ready);}}EU._simpleAdd(window,"load",EU._load);EU._simpleAdd(window,"unload",EU._unload);EU._tryPreloadAttach();})();}YAHOO.util.EventProvider=function(){};YAHOO.util.EventProvider.prototype={__yui_events:null,__yui_subscribers:null,subscribe:function(A,C,F,E){this.__yui_events=this.__yui_events||{};
970+var D=this.__yui_events[A];if(D){D.subscribe(C,F,E);}else{this.__yui_subscribers=this.__yui_subscribers||{};var B=this.__yui_subscribers;if(!B[A]){B[A]=[];}B[A].push({fn:C,obj:F,override:E});}},unsubscribe:function(C,E,G){this.__yui_events=this.__yui_events||{};var A=this.__yui_events;if(C){var F=A[C];if(F){return F.unsubscribe(E,G);}}else{var B=true;for(var D in A){if(YAHOO.lang.hasOwnProperty(A,D)){B=B&&A[D].unsubscribe(E,G);}}return B;}return false;},unsubscribeAll:function(A){return this.unsubscribe(A);},createEvent:function(G,D){this.__yui_events=this.__yui_events||{};var A=D||{};var I=this.__yui_events;if(I[G]){}else{var H=A.scope||this;var E=(A.silent);var B=new YAHOO.util.CustomEvent(G,H,E,YAHOO.util.CustomEvent.FLAT);I[G]=B;if(A.onSubscribeCallback){B.subscribeEvent.subscribe(A.onSubscribeCallback);}this.__yui_subscribers=this.__yui_subscribers||{};var F=this.__yui_subscribers[G];if(F){for(var C=0;C<F.length;++C){B.subscribe(F[C].fn,F[C].obj,F[C].override);}}}return I[G];},fireEvent:function(E,D,A,C){this.__yui_events=this.__yui_events||{};var G=this.__yui_events[E];if(!G){return null;}var B=[];for(var F=1;F<arguments.length;++F){B.push(arguments[F]);}return G.fire.apply(G,B);},hasEvent:function(A){if(this.__yui_events){if(this.__yui_events[A]){return true;}}return false;}};YAHOO.util.KeyListener=function(A,F,B,C){if(!A){}else{if(!F){}else{if(!B){}}}if(!C){C=YAHOO.util.KeyListener.KEYDOWN;}var D=new YAHOO.util.CustomEvent("keyPressed");this.enabledEvent=new YAHOO.util.CustomEvent("enabled");this.disabledEvent=new YAHOO.util.CustomEvent("disabled");if(typeof A=="string"){A=document.getElementById(A);}if(typeof B=="function"){D.subscribe(B);}else{D.subscribe(B.fn,B.scope,B.correctScope);}function E(J,I){if(!F.shift){F.shift=false;}if(!F.alt){F.alt=false;}if(!F.ctrl){F.ctrl=false;}if(J.shiftKey==F.shift&&J.altKey==F.alt&&J.ctrlKey==F.ctrl){var G;if(F.keys instanceof Array){for(var H=0;H<F.keys.length;H++){G=F.keys[H];if(G==J.charCode){D.fire(J.charCode,J);break;}else{if(G==J.keyCode){D.fire(J.keyCode,J);break;}}}}else{G=F.keys;if(G==J.charCode){D.fire(J.charCode,J);}else{if(G==J.keyCode){D.fire(J.keyCode,J);}}}}}this.enable=function(){if(!this.enabled){YAHOO.util.Event.addListener(A,C,E);this.enabledEvent.fire(F);}this.enabled=true;};this.disable=function(){if(this.enabled){YAHOO.util.Event.removeListener(A,C,E);this.disabledEvent.fire(F);}this.enabled=false;};this.toString=function(){return"KeyListener ["+F.keys+"] "+A.tagName+(A.id?"["+A.id+"]":"");};};YAHOO.util.KeyListener.KEYDOWN="keydown";YAHOO.util.KeyListener.KEYUP="keyup";YAHOO.util.KeyListener.KEY={ALT:18,BACK_SPACE:8,CAPS_LOCK:20,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,META:224,NUM_LOCK:144,PAGE_DOWN:34,PAGE_UP:33,PAUSE:19,PRINTSCREEN:44,RIGHT:39,SCROLL_LOCK:145,SHIFT:16,SPACE:32,TAB:9,UP:38};YAHOO.register("event",YAHOO.util.Event,{version:"2.6.0",build:"1321"});YAHOO.register("yahoo-dom-event", YAHOO, {version: "2.6.0", build: "1321"});
971+/*
972+Copyright (c) 2008, Yahoo! Inc. All rights reserved.
973+Code licensed under the BSD License:
974+http://developer.yahoo.net/yui/license.txt
975+version: 2.6.0
976+*/
977+(function(){var lang=YAHOO.lang,util=YAHOO.util,Ev=util.Event;util.DataSourceBase=function(oLiveData,oConfigs){if(oLiveData===null||oLiveData===undefined){return ;}this.liveData=oLiveData;this._oQueue={interval:null,conn:null,requests:[]};this.responseSchema={};if(oConfigs&&(oConfigs.constructor==Object)){for(var sConfig in oConfigs){if(sConfig){this[sConfig]=oConfigs[sConfig];}}}var maxCacheEntries=this.maxCacheEntries;if(!lang.isNumber(maxCacheEntries)||(maxCacheEntries<0)){maxCacheEntries=0;}this._aIntervals=[];this.createEvent("cacheRequestEvent");this.createEvent("cacheResponseEvent");this.createEvent("requestEvent");this.createEvent("responseEvent");this.createEvent("responseParseEvent");this.createEvent("responseCacheEvent");this.createEvent("dataErrorEvent");this.createEvent("cacheFlushEvent");var DS=util.DataSourceBase;this._sName="DataSource instance"+DS._nIndex;DS._nIndex++;};var DS=util.DataSourceBase;lang.augmentObject(DS,{TYPE_UNKNOWN:-1,TYPE_JSARRAY:0,TYPE_JSFUNCTION:1,TYPE_XHR:2,TYPE_JSON:3,TYPE_XML:4,TYPE_TEXT:5,TYPE_HTMLTABLE:6,TYPE_SCRIPTNODE:7,TYPE_LOCAL:8,ERROR_DATAINVALID:"Invalid data",ERROR_DATANULL:"Null data",_nIndex:0,_nTransactionId:0,issueCallback:function(callback,params,error,scope){if(lang.isFunction(callback)){callback.apply(scope,params);}else{if(lang.isObject(callback)){scope=callback.scope||scope||window;var callbackFunc=callback.success;if(error){callbackFunc=callback.failure;}if(callbackFunc){callbackFunc.apply(scope,params.concat([callback.argument]));}}}},parseString:function(oData){if(!lang.isValue(oData)){return null;}var string=oData+"";if(lang.isString(string)){return string;}else{return null;}},parseNumber:function(oData){var number=oData*1;if(lang.isNumber(number)){return number;}else{return null;}},convertNumber:function(oData){return DS.parseNumber(oData);},parseDate:function(oData){var date=null;if(!(oData instanceof Date)){date=new Date(oData);}else{return oData;}if(date instanceof Date){return date;}else{return null;}},convertDate:function(oData){return DS.parseDate(oData);}});DS.Parser={string:DS.parseString,number:DS.parseNumber,date:DS.parseDate};DS.prototype={_sName:null,_aCache:null,_oQueue:null,_aIntervals:null,maxCacheEntries:0,liveData:null,dataType:DS.TYPE_UNKNOWN,responseType:DS.TYPE_UNKNOWN,responseSchema:null,toString:function(){return this._sName;},getCachedResponse:function(oRequest,oCallback,oCaller){var aCache=this._aCache;if(this.maxCacheEntries>0){if(!aCache){this._aCache=[];}else{var nCacheLength=aCache.length;if(nCacheLength>0){var oResponse=null;this.fireEvent("cacheRequestEvent",{request:oRequest,callback:oCallback,caller:oCaller});for(var i=nCacheLength-1;i>=0;i--){var oCacheElem=aCache[i];if(this.isCacheHit(oRequest,oCacheElem.request)){oResponse=oCacheElem.response;this.fireEvent("cacheResponseEvent",{request:oRequest,response:oResponse,callback:oCallback,caller:oCaller});if(i<nCacheLength-1){aCache.splice(i,1);this.addToCache(oRequest,oResponse);}oResponse.cached=true;break;}}return oResponse;}}}else{if(aCache){this._aCache=null;}}return null;},isCacheHit:function(oRequest,oCachedRequest){return(oRequest===oCachedRequest);},addToCache:function(oRequest,oResponse){var aCache=this._aCache;if(!aCache){return ;}while(aCache.length>=this.maxCacheEntries){aCache.shift();}var oCacheElem={request:oRequest,response:oResponse};aCache[aCache.length]=oCacheElem;this.fireEvent("responseCacheEvent",{request:oRequest,response:oResponse});},flushCache:function(){if(this._aCache){this._aCache=[];this.fireEvent("cacheFlushEvent");}},setInterval:function(nMsec,oRequest,oCallback,oCaller){if(lang.isNumber(nMsec)&&(nMsec>=0)){var oSelf=this;var nId=setInterval(function(){oSelf.makeConnection(oRequest,oCallback,oCaller);},nMsec);this._aIntervals.push(nId);return nId;}else{}},clearInterval:function(nId){var tracker=this._aIntervals||[];for(var i=tracker.length-1;i>-1;i--){if(tracker[i]===nId){tracker.splice(i,1);clearInterval(nId);}}},clearAllIntervals:function(){var tracker=this._aIntervals||[];for(var i=tracker.length-1;i>-1;i--){clearInterval(tracker[i]);}tracker=[];},sendRequest:function(oRequest,oCallback,oCaller){var oCachedResponse=this.getCachedResponse(oRequest,oCallback,oCaller);if(oCachedResponse){DS.issueCallback(oCallback,[oRequest,oCachedResponse],false,oCaller);return null;}return this.makeConnection(oRequest,oCallback,oCaller);},makeConnection:function(oRequest,oCallback,oCaller){var tId=DS._nTransactionId++;this.fireEvent("requestEvent",{tId:tId,request:oRequest,callback:oCallback,caller:oCaller});var oRawResponse=this.liveData;this.handleResponse(oRequest,oRawResponse,oCallback,oCaller,tId);return tId;},handleResponse:function(oRequest,oRawResponse,oCallback,oCaller,tId){this.fireEvent("responseEvent",{tId:tId,request:oRequest,response:oRawResponse,callback:oCallback,caller:oCaller});var xhr=(this.dataType==DS.TYPE_XHR)?true:false;var oParsedResponse=null;var oFullResponse=oRawResponse;if(this.responseType===DS.TYPE_UNKNOWN){var ctype=(oRawResponse&&oRawResponse.getResponseHeader)?oRawResponse.getResponseHeader["Content-Type"]:null;if(ctype){if(ctype.indexOf("text/xml")>-1){this.responseType=DS.TYPE_XML;}else{if(ctype.indexOf("application/json")>-1){this.responseType=DS.TYPE_JSON;}else{if(ctype.indexOf("text/plain")>-1){this.responseType=DS.TYPE_TEXT;}}}}else{if(YAHOO.lang.isArray(oRawResponse)){this.responseType=DS.TYPE_JSARRAY;}else{if(oRawResponse&&oRawResponse.nodeType&&oRawResponse.nodeType==9){this.responseType=DS.TYPE_XML;}else{if(oRawResponse&&oRawResponse.nodeName&&(oRawResponse.nodeName.toLowerCase()=="table")){this.responseType=DS.TYPE_HTMLTABLE;}else{if(YAHOO.lang.isObject(oRawResponse)){this.responseType=DS.TYPE_JSON;}else{if(YAHOO.lang.isString(oRawResponse)){this.responseType=DS.TYPE_TEXT;}}}}}}}switch(this.responseType){case DS.TYPE_JSARRAY:if(xhr&&oRawResponse&&oRawResponse.responseText){oFullResponse=oRawResponse.responseText;}oFullResponse=this.doBeforeParseData(oRequest,oFullResponse,oCallback);oParsedResponse=this.parseArrayData(oRequest,oFullResponse);
978+break;case DS.TYPE_JSON:if(xhr&&oRawResponse&&oRawResponse.responseText){oFullResponse=oRawResponse.responseText;}try{if(lang.isString(oFullResponse)){if(lang.JSON){oFullResponse=lang.JSON.parse(oFullResponse);}else{if(window.JSON&&JSON.parse){oFullResponse=JSON.parse(oFullResponse);}else{if(oFullResponse.parseJSON){oFullResponse=oFullResponse.parseJSON();}else{while(oFullResponse.length>0&&(oFullResponse.charAt(0)!="{")&&(oFullResponse.charAt(0)!="[")){oFullResponse=oFullResponse.substring(1,oFullResponse.length);}if(oFullResponse.length>0){var objEnd=Math.max(oFullResponse.lastIndexOf("]"),oFullResponse.lastIndexOf("}"));oFullResponse=oFullResponse.substring(0,objEnd+1);oFullResponse=eval("("+oFullResponse+")");}}}}}}catch(e){}oFullResponse=this.doBeforeParseData(oRequest,oFullResponse,oCallback);oParsedResponse=this.parseJSONData(oRequest,oFullResponse);break;case DS.TYPE_HTMLTABLE:if(xhr&&oRawResponse.responseText){oFullResponse=oRawResponse.responseText;}oFullResponse=this.doBeforeParseData(oRequest,oFullResponse,oCallback);oParsedResponse=this.parseHTMLTableData(oRequest,oFullResponse);break;case DS.TYPE_XML:if(xhr&&oRawResponse.responseXML){oFullResponse=oRawResponse.responseXML;}oFullResponse=this.doBeforeParseData(oRequest,oFullResponse,oCallback);oParsedResponse=this.parseXMLData(oRequest,oFullResponse);break;case DS.TYPE_TEXT:if(xhr&&lang.isString(oRawResponse.responseText)){oFullResponse=oRawResponse.responseText;}oFullResponse=this.doBeforeParseData(oRequest,oFullResponse,oCallback);oParsedResponse=this.parseTextData(oRequest,oFullResponse);break;default:oFullResponse=this.doBeforeParseData(oRequest,oFullResponse,oCallback);oParsedResponse=this.parseData(oRequest,oFullResponse);break;}oParsedResponse=oParsedResponse||{};if(!oParsedResponse.results){oParsedResponse.results=[];}if(!oParsedResponse.meta){oParsedResponse.meta={};}if(oParsedResponse&&!oParsedResponse.error){oParsedResponse=this.doBeforeCallback(oRequest,oFullResponse,oParsedResponse,oCallback);this.fireEvent("responseParseEvent",{request:oRequest,response:oParsedResponse,callback:oCallback,caller:oCaller});this.addToCache(oRequest,oParsedResponse);}else{oParsedResponse.error=true;this.fireEvent("dataErrorEvent",{request:oRequest,response:oRawResponse,callback:oCallback,caller:oCaller,message:DS.ERROR_DATANULL});}oParsedResponse.tId=tId;DS.issueCallback(oCallback,[oRequest,oParsedResponse],oParsedResponse.error,oCaller);},doBeforeParseData:function(oRequest,oFullResponse,oCallback){return oFullResponse;},doBeforeCallback:function(oRequest,oFullResponse,oParsedResponse,oCallback){return oParsedResponse;},parseData:function(oRequest,oFullResponse){if(lang.isValue(oFullResponse)){var oParsedResponse={results:oFullResponse,meta:{}};return oParsedResponse;}return null;},parseArrayData:function(oRequest,oFullResponse){if(lang.isArray(oFullResponse)){var results=[],i,j,rec,field,data;if(lang.isArray(this.responseSchema.fields)){var fields=this.responseSchema.fields;for(i=fields.length-1;i>=0;--i){if(typeof fields[i]!=="object"){fields[i]={key:fields[i]};}}var parsers={},p;for(i=fields.length-1;i>=0;--i){p=(typeof fields[i].parser==="function"?fields[i].parser:DS.Parser[fields[i].parser+""])||fields[i].converter;if(p){parsers[fields[i].key]=p;}}var arrType=lang.isArray(oFullResponse[0]);for(i=oFullResponse.length-1;i>-1;i--){var oResult={};rec=oFullResponse[i];if(typeof rec==="object"){for(j=fields.length-1;j>-1;j--){field=fields[j];data=arrType?rec[j]:rec[field.key];if(parsers[field.key]){data=parsers[field.key].call(this,data);}if(data===undefined){data=null;}oResult[field.key]=data;}}else{if(lang.isString(rec)){for(j=fields.length-1;j>-1;j--){field=fields[j];data=rec;if(parsers[field.key]){data=parsers[field.key].call(this,data);}if(data===undefined){data=null;}oResult[field.key]=data;}}}results[i]=oResult;}}else{results=oFullResponse;}var oParsedResponse={results:results};return oParsedResponse;}return null;},parseTextData:function(oRequest,oFullResponse){if(lang.isString(oFullResponse)){if(lang.isString(this.responseSchema.recordDelim)&&lang.isString(this.responseSchema.fieldDelim)){var oParsedResponse={results:[]};var recDelim=this.responseSchema.recordDelim;var fieldDelim=this.responseSchema.fieldDelim;if(oFullResponse.length>0){var newLength=oFullResponse.length-recDelim.length;if(oFullResponse.substr(newLength)==recDelim){oFullResponse=oFullResponse.substr(0,newLength);}if(oFullResponse.length>0){var recordsarray=oFullResponse.split(recDelim);for(var i=0,len=recordsarray.length,recIdx=0;i<len;++i){var bError=false,sRecord=recordsarray[i];if(lang.isString(sRecord)&&(sRecord.length>0)){var fielddataarray=recordsarray[i].split(fieldDelim);var oResult={};if(lang.isArray(this.responseSchema.fields)){var fields=this.responseSchema.fields;for(var j=fields.length-1;j>-1;j--){try{var data=fielddataarray[j];if(lang.isString(data)){if(data.charAt(0)=='"'){data=data.substr(1);}if(data.charAt(data.length-1)=='"'){data=data.substr(0,data.length-1);}var field=fields[j];var key=(lang.isValue(field.key))?field.key:field;if(!field.parser&&field.converter){field.parser=field.converter;}var parser=(typeof field.parser==="function")?field.parser:DS.Parser[field.parser+""];if(parser){data=parser.call(this,data);}if(data===undefined){data=null;}oResult[key]=data;}else{bError=true;}}catch(e){bError=true;}}}else{oResult=fielddataarray;}if(!bError){oParsedResponse.results[recIdx++]=oResult;}}}}}return oParsedResponse;}}return null;},parseXMLResult:function(result){var oResult={},schema=this.responseSchema;try{for(var m=schema.fields.length-1;m>=0;m--){var field=schema.fields[m];var key=(lang.isValue(field.key))?field.key:field;var data=null;var xmlAttr=result.attributes.getNamedItem(key);if(xmlAttr){data=xmlAttr.value;}else{var xmlNode=result.getElementsByTagName(key);if(xmlNode&&xmlNode.item(0)&&xmlNode.item(0)){data=xmlNode.item(0).firstChild.nodeValue;var item=xmlNode.item(0);data=(item.text)?item.text:(item.textContent)?item.textContent:null;
979+if(!data){var datapieces=[];for(var j=0,len=item.childNodes.length;j<len;j++){if(item.childNodes[j].nodeValue){datapieces[datapieces.length]=item.childNodes[j].nodeValue;}}if(datapieces.length>0){data=datapieces.join("");}}}}if(data===null){data="";}if(!field.parser&&field.converter){field.parser=field.converter;}var parser=(typeof field.parser==="function")?field.parser:DS.Parser[field.parser+""];if(parser){data=parser.call(this,data);}if(data===undefined){data=null;}oResult[key]=data;}}catch(e){}return oResult;},parseXMLData:function(oRequest,oFullResponse){var bError=false,schema=this.responseSchema,oParsedResponse={meta:{}},xmlList=null,metaNode=schema.metaNode,metaLocators=schema.metaFields||{},i,k,loc,v;try{xmlList=(schema.resultNode)?oFullResponse.getElementsByTagName(schema.resultNode):null;metaNode=metaNode?oFullResponse.getElementsByTagName(metaNode)[0]:oFullResponse;if(metaNode){for(k in metaLocators){if(lang.hasOwnProperty(metaLocators,k)){loc=metaLocators[k];v=metaNode.getElementsByTagName(loc)[0];if(v){v=v.firstChild.nodeValue;}else{v=metaNode.attributes.getNamedItem(loc);if(v){v=v.value;}}if(lang.isValue(v)){oParsedResponse.meta[k]=v;}}}}}catch(e){}if(!xmlList||!lang.isArray(schema.fields)){bError=true;}else{oParsedResponse.results=[];for(i=xmlList.length-1;i>=0;--i){var oResult=this.parseXMLResult(xmlList.item(i));oParsedResponse.results[i]=oResult;}}if(bError){oParsedResponse.error=true;}else{}return oParsedResponse;},parseJSONData:function(oRequest,oFullResponse){var oParsedResponse={results:[],meta:{}};if(lang.isObject(oFullResponse)&&this.responseSchema.resultsList){var schema=this.responseSchema,fields=schema.fields,resultsList=oFullResponse,results=[],metaFields=schema.metaFields||{},fieldParsers=[],fieldPaths=[],simpleFields=[],bError=false,i,len,j,v,key,parser,path;var buildPath=function(needle){var path=null,keys=[],i=0;if(needle){needle=needle.replace(/\[(['"])(.*?)\1\]/g,function(x,$1,$2){keys[i]=$2;return".@"+(i++);}).replace(/\[(\d+)\]/g,function(x,$1){keys[i]=parseInt($1,10)|0;return".@"+(i++);}).replace(/^\./,"");if(!/[^\w\.\$@]/.test(needle)){path=needle.split(".");for(i=path.length-1;i>=0;--i){if(path[i].charAt(0)==="@"){path[i]=keys[parseInt(path[i].substr(1),10)];}}}else{}}return path;};var walkPath=function(path,origin){var v=origin,i=0,len=path.length;for(;i<len&&v;++i){v=v[path[i]];}return v;};path=buildPath(schema.resultsList);if(path){resultsList=walkPath(path,oFullResponse);if(resultsList===undefined){bError=true;}}else{bError=true;}if(!resultsList){resultsList=[];}if(!lang.isArray(resultsList)){resultsList=[resultsList];}if(!bError){if(schema.fields){var field;for(i=0,len=fields.length;i<len;i++){field=fields[i];key=field.key||field;parser=((typeof field.parser==="function")?field.parser:DS.Parser[field.parser+""])||field.converter;path=buildPath(key);if(parser){fieldParsers[fieldParsers.length]={key:key,parser:parser};}if(path){if(path.length>1){fieldPaths[fieldPaths.length]={key:key,path:path};}else{simpleFields[simpleFields.length]={key:key,path:path[0]};}}else{}}for(i=resultsList.length-1;i>=0;--i){var r=resultsList[i],rec={};for(j=simpleFields.length-1;j>=0;--j){rec[simpleFields[j].key]=(r[simpleFields[j].path]!==undefined)?r[simpleFields[j].path]:r[j];}for(j=fieldPaths.length-1;j>=0;--j){rec[fieldPaths[j].key]=walkPath(fieldPaths[j].path,r);}for(j=fieldParsers.length-1;j>=0;--j){var p=fieldParsers[j].key;rec[p]=fieldParsers[j].parser(rec[p]);if(rec[p]===undefined){rec[p]=null;}}results[i]=rec;}}else{results=resultsList;}for(key in metaFields){if(lang.hasOwnProperty(metaFields,key)){path=buildPath(metaFields[key]);if(path){v=walkPath(path,oFullResponse);oParsedResponse.meta[key]=v;}}}}else{oParsedResponse.error=true;}oParsedResponse.results=results;}else{oParsedResponse.error=true;}return oParsedResponse;},parseHTMLTableData:function(oRequest,oFullResponse){var bError=false;var elTable=oFullResponse;var fields=this.responseSchema.fields;var oParsedResponse={results:[]};for(var i=0;i<elTable.tBodies.length;i++){var elTbody=elTable.tBodies[i];for(var j=elTbody.rows.length-1;j>-1;j--){var elRow=elTbody.rows[j];var oResult={};for(var k=fields.length-1;k>-1;k--){var field=fields[k];var key=(lang.isValue(field.key))?field.key:field;var data=elRow.cells[k].innerHTML;if(!field.parser&&field.converter){field.parser=field.converter;}var parser=(typeof field.parser==="function")?field.parser:DS.Parser[field.parser+""];if(parser){data=parser.call(this,data);}if(data===undefined){data=null;}oResult[key]=data;}oParsedResponse.results[j]=oResult;}}if(bError){oParsedResponse.error=true;}else{}return oParsedResponse;}};lang.augmentProto(DS,util.EventProvider);util.LocalDataSource=function(oLiveData,oConfigs){this.dataType=DS.TYPE_LOCAL;if(oLiveData){if(YAHOO.lang.isArray(oLiveData)){this.responseType=DS.TYPE_JSARRAY;}else{if(oLiveData.nodeType&&oLiveData.nodeType==9){this.responseType=DS.TYPE_XML;}else{if(oLiveData.nodeName&&(oLiveData.nodeName.toLowerCase()=="table")){this.responseType=DS.TYPE_HTMLTABLE;oLiveData=oLiveData.cloneNode(true);}else{if(YAHOO.lang.isString(oLiveData)){this.responseType=DS.TYPE_TEXT;}else{if(YAHOO.lang.isObject(oLiveData)){this.responseType=DS.TYPE_JSON;}}}}}}else{oLiveData=[];this.responseType=DS.TYPE_JSARRAY;}this.constructor.superclass.constructor.call(this,oLiveData,oConfigs);};lang.extend(util.LocalDataSource,DS);lang.augmentObject(util.LocalDataSource,DS);util.FunctionDataSource=function(oLiveData,oConfigs){this.dataType=DS.TYPE_JSFUNCTION;oLiveData=oLiveData||function(){};this.constructor.superclass.constructor.call(this,oLiveData,oConfigs);};lang.extend(util.FunctionDataSource,DS,{makeConnection:function(oRequest,oCallback,oCaller){var tId=DS._nTransactionId++;this.fireEvent("requestEvent",{tId:tId,request:oRequest,callback:oCallback,caller:oCaller});var oRawResponse=this.liveData(oRequest);if(this.responseType===DS.TYPE_UNKNOWN){if(YAHOO.lang.isArray(oRawResponse)){this.responseType=DS.TYPE_JSARRAY;}else{if(oRawResponse&&oRawResponse.nodeType&&oRawResponse.nodeType==9){this.responseType=DS.TYPE_XML;
980+}else{if(oRawResponse&&oRawResponse.nodeName&&(oRawResponse.nodeName.toLowerCase()=="table")){this.responseType=DS.TYPE_HTMLTABLE;}else{if(YAHOO.lang.isObject(oRawResponse)){this.responseType=DS.TYPE_JSON;}else{if(YAHOO.lang.isString(oRawResponse)){this.responseType=DS.TYPE_TEXT;}}}}}}this.handleResponse(oRequest,oRawResponse,oCallback,oCaller,tId);return tId;}});lang.augmentObject(util.FunctionDataSource,DS);util.ScriptNodeDataSource=function(oLiveData,oConfigs){this.dataType=DS.TYPE_SCRIPTNODE;oLiveData=oLiveData||"";this.constructor.superclass.constructor.call(this,oLiveData,oConfigs);};lang.extend(util.ScriptNodeDataSource,DS,{getUtility:util.Get,asyncMode:"allowAll",scriptCallbackParam:"callback",generateRequestCallback:function(id){return"&"+this.scriptCallbackParam+"=YAHOO.util.ScriptNodeDataSource.callbacks["+id+"]";},makeConnection:function(oRequest,oCallback,oCaller){var tId=DS._nTransactionId++;this.fireEvent("requestEvent",{tId:tId,request:oRequest,callback:oCallback,caller:oCaller});if(util.ScriptNodeDataSource._nPending===0){util.ScriptNodeDataSource.callbacks=[];util.ScriptNodeDataSource._nId=0;}var id=util.ScriptNodeDataSource._nId;util.ScriptNodeDataSource._nId++;var oSelf=this;util.ScriptNodeDataSource.callbacks[id]=function(oRawResponse){if((oSelf.asyncMode!=="ignoreStaleResponses")||(id===util.ScriptNodeDataSource.callbacks.length-1)){if(oSelf.responseType===DS.TYPE_UNKNOWN){if(YAHOO.lang.isArray(oRawResponse)){oSelf.responseType=DS.TYPE_JSARRAY;}else{if(oRawResponse.nodeType&&oRawResponse.nodeType==9){oSelf.responseType=DS.TYPE_XML;}else{if(oRawResponse.nodeName&&(oRawResponse.nodeName.toLowerCase()=="table")){oSelf.responseType=DS.TYPE_HTMLTABLE;}else{if(YAHOO.lang.isObject(oRawResponse)){oSelf.responseType=DS.TYPE_JSON;}else{if(YAHOO.lang.isString(oRawResponse)){oSelf.responseType=DS.TYPE_TEXT;}}}}}}oSelf.handleResponse(oRequest,oRawResponse,oCallback,oCaller,tId);}else{}delete util.ScriptNodeDataSource.callbacks[id];};util.ScriptNodeDataSource._nPending++;var sUri=this.liveData+oRequest+this.generateRequestCallback(id);this.getUtility.script(sUri,{autopurge:true,onsuccess:util.ScriptNodeDataSource._bumpPendingDown,onfail:util.ScriptNodeDataSource._bumpPendingDown});return tId;}});lang.augmentObject(util.ScriptNodeDataSource,DS);lang.augmentObject(util.ScriptNodeDataSource,{_nId:0,_nPending:0,callbacks:[]});util.XHRDataSource=function(oLiveData,oConfigs){this.dataType=DS.TYPE_XHR;this.connMgr=this.connMgr||util.Connect;oLiveData=oLiveData||"";this.constructor.superclass.constructor.call(this,oLiveData,oConfigs);};lang.extend(util.XHRDataSource,DS,{connMgr:null,connXhrMode:"allowAll",connMethodPost:false,connTimeout:0,makeConnection:function(oRequest,oCallback,oCaller){var oRawResponse=null;var tId=DS._nTransactionId++;this.fireEvent("requestEvent",{tId:tId,request:oRequest,callback:oCallback,caller:oCaller});var oSelf=this;var oConnMgr=this.connMgr;var oQueue=this._oQueue;var _xhrSuccess=function(oResponse){if(oResponse&&(this.asyncMode=="ignoreStaleResponses")&&(oResponse.tId!=oQueue.conn.tId)){return null;}else{if(!oResponse){this.fireEvent("dataErrorEvent",{request:oRequest,callback:oCallback,caller:oCaller,message:DS.ERROR_DATANULL});DS.issueCallback(oCallback,[oRequest,{error:true}],true,oCaller);return null;}else{if(this.responseType===DS.TYPE_UNKNOWN){var ctype=(oResponse.getResponseHeader)?oResponse.getResponseHeader["Content-Type"]:null;if(ctype){if(ctype.indexOf("text/xml")>-1){this.responseType=DS.TYPE_XML;}else{if(ctype.indexOf("application/json")>-1){this.responseType=DS.TYPE_JSON;}else{if(ctype.indexOf("text/plain")>-1){this.responseType=DS.TYPE_TEXT;}}}}}this.handleResponse(oRequest,oResponse,oCallback,oCaller,tId);}}};var _xhrFailure=function(oResponse){this.fireEvent("dataErrorEvent",{request:oRequest,callback:oCallback,caller:oCaller,message:DS.ERROR_DATAINVALID});if(lang.isString(this.liveData)&&lang.isString(oRequest)&&(this.liveData.lastIndexOf("?")!==this.liveData.length-1)&&(oRequest.indexOf("?")!==0)){}oResponse=oResponse||{};oResponse.error=true;DS.issueCallback(oCallback,[oRequest,oResponse],true,oCaller);return null;};var _xhrCallback={success:_xhrSuccess,failure:_xhrFailure,scope:this};if(lang.isNumber(this.connTimeout)){_xhrCallback.timeout=this.connTimeout;}if(this.connXhrMode=="cancelStaleRequests"){if(oQueue.conn){if(oConnMgr.abort){oConnMgr.abort(oQueue.conn);oQueue.conn=null;}else{}}}if(oConnMgr&&oConnMgr.asyncRequest){var sLiveData=this.liveData;var isPost=this.connMethodPost;var sMethod=(isPost)?"POST":"GET";var sUri=(isPost||!lang.isValue(oRequest))?sLiveData:sLiveData+oRequest;var sRequest=(isPost)?oRequest:null;if(this.connXhrMode!="queueRequests"){oQueue.conn=oConnMgr.asyncRequest(sMethod,sUri,_xhrCallback,sRequest);}else{if(oQueue.conn){var allRequests=oQueue.requests;allRequests.push({request:oRequest,callback:_xhrCallback});if(!oQueue.interval){oQueue.interval=setInterval(function(){if(oConnMgr.isCallInProgress(oQueue.conn)){return ;}else{if(allRequests.length>0){sUri=(isPost||!lang.isValue(allRequests[0].request))?sLiveData:sLiveData+allRequests[0].request;sRequest=(isPost)?allRequests[0].request:null;oQueue.conn=oConnMgr.asyncRequest(sMethod,sUri,allRequests[0].callback,sRequest);allRequests.shift();}else{clearInterval(oQueue.interval);oQueue.interval=null;}}},50);}}else{oQueue.conn=oConnMgr.asyncRequest(sMethod,sUri,_xhrCallback,sRequest);}}}else{DS.issueCallback(oCallback,[oRequest,{error:true}],true,oCaller);}return tId;}});lang.augmentObject(util.XHRDataSource,DS);util.DataSource=function(oLiveData,oConfigs){oConfigs=oConfigs||{};var dataType=oConfigs.dataType;if(dataType){if(dataType==DS.TYPE_LOCAL){lang.augmentObject(util.DataSource,util.LocalDataSource);return new util.LocalDataSource(oLiveData,oConfigs);}else{if(dataType==DS.TYPE_XHR){lang.augmentObject(util.DataSource,util.XHRDataSource);return new util.XHRDataSource(oLiveData,oConfigs);}else{if(dataType==DS.TYPE_SCRIPTNODE){lang.augmentObject(util.DataSource,util.ScriptNodeDataSource);
981+return new util.ScriptNodeDataSource(oLiveData,oConfigs);}else{if(dataType==DS.TYPE_JSFUNCTION){lang.augmentObject(util.DataSource,util.FunctionDataSource);return new util.FunctionDataSource(oLiveData,oConfigs);}}}}}if(YAHOO.lang.isString(oLiveData)){lang.augmentObject(util.DataSource,util.XHRDataSource);return new util.XHRDataSource(oLiveData,oConfigs);}else{if(YAHOO.lang.isFunction(oLiveData)){lang.augmentObject(util.DataSource,util.FunctionDataSource);return new util.FunctionDataSource(oLiveData,oConfigs);}else{lang.augmentObject(util.DataSource,util.LocalDataSource);return new util.LocalDataSource(oLiveData,oConfigs);}}};lang.augmentObject(util.DataSource,DS);})();YAHOO.util.Number={format:function(B,F){F=F||{};if(!YAHOO.lang.isNumber(B)){B*=1;}if(YAHOO.lang.isNumber(B)){var D=(B<0);var J=B+"";var G=(F.decimalSeparator)?F.decimalSeparator:".";var H;if(YAHOO.lang.isNumber(F.decimalPlaces)){var I=F.decimalPlaces;var C=Math.pow(10,I);J=Math.round(B*C)/C+"";H=J.lastIndexOf(".");if(I>0){if(H<0){J+=G;H=J.length-1;}else{if(G!=="."){J=J.replace(".",G);}}while((J.length-1-H)<I){J+="0";}}}if(F.thousandsSeparator){var L=F.thousandsSeparator;H=J.lastIndexOf(G);H=(H>-1)?H:J.length;var K=J.substring(H);var A=-1;for(var E=H;E>0;E--){A++;if((A%3===0)&&(E!==H)&&(!D||(E>1))){K=L+K;}K=J.charAt(E-1)+K;}J=K;}J=(F.prefix)?F.prefix+J:J;J=(F.suffix)?J+F.suffix:J;return J;}else{return B;}}};(function(){var A=function(C,E,D){if(typeof D==="undefined"){D=10;}for(;parseInt(C,10)<D&&D>1;D/=10){C=E.toString()+C;}return C.toString();};var B={formats:{a:function(D,C){return C.a[D.getDay()];},A:function(D,C){return C.A[D.getDay()];},b:function(D,C){return C.b[D.getMonth()];},B:function(D,C){return C.B[D.getMonth()];},C:function(C){return A(parseInt(C.getFullYear()/100,10),0);},d:["getDate","0"],e:["getDate"," "],g:function(C){return A(parseInt(B.formats.G(C)%100,10),0);},G:function(E){var F=E.getFullYear();var D=parseInt(B.formats.V(E),10);var C=parseInt(B.formats.W(E),10);if(C>D){F++;}else{if(C===0&&D>=52){F--;}}return F;},H:["getHours","0"],I:function(D){var C=D.getHours()%12;return A(C===0?12:C,0);},j:function(G){var F=new Date(""+G.getFullYear()+"/1/1 GMT");var D=new Date(""+G.getFullYear()+"/"+(G.getMonth()+1)+"/"+G.getDate()+" GMT");var C=D-F;var E=parseInt(C/60000/60/24,10)+1;return A(E,0,100);},k:["getHours"," "],l:function(D){var C=D.getHours()%12;return A(C===0?12:C," ");},m:function(C){return A(C.getMonth()+1,0);},M:["getMinutes","0"],p:function(D,C){return C.p[D.getHours()>=12?1:0];},P:function(D,C){return C.P[D.getHours()>=12?1:0];},s:function(D,C){return parseInt(D.getTime()/1000,10);},S:["getSeconds","0"],u:function(C){var D=C.getDay();return D===0?7:D;},U:function(F){var C=parseInt(B.formats.j(F),10);var E=6-F.getDay();var D=parseInt((C+E)/7,10);return A(D,0);},V:function(F){var E=parseInt(B.formats.W(F),10);var C=(new Date(""+F.getFullYear()+"/1/1")).getDay();var D=E+(C>4||C<=1?0:1);if(D===53&&(new Date(""+F.getFullYear()+"/12/31")).getDay()<4){D=1;}else{if(D===0){D=B.formats.V(new Date(""+(F.getFullYear()-1)+"/12/31"));}}return A(D,0);},w:"getDay",W:function(F){var C=parseInt(B.formats.j(F),10);var E=7-B.formats.u(F);var D=parseInt((C+E)/7,10);return A(D,0,10);},y:function(C){return A(C.getFullYear()%100,0);},Y:"getFullYear",z:function(E){var D=E.getTimezoneOffset();var C=A(parseInt(Math.abs(D/60),10),0);var F=A(Math.abs(D%60),0);return(D>0?"-":"+")+C+F;},Z:function(C){var D=C.toString().replace(/^.*:\d\d( GMT[+-]\d+)? \(?([A-Za-z ]+)\)?\d*$/,"$2").replace(/[a-z ]/g,"");if(D.length>4){D=B.formats.z(C);}return D;},"%":function(C){return"%";}},aggregates:{c:"locale",D:"%m/%d/%y",F:"%Y-%m-%d",h:"%b",n:"\n",r:"locale",R:"%H:%M",t:"\t",T:"%H:%M:%S",x:"locale",X:"locale"},format:function(G,F,D){F=F||{};if(!(G instanceof Date)){return YAHOO.lang.isValue(G)?G:"";}var H=F.format||"%m/%d/%Y";if(H==="YYYY/MM/DD"){H="%Y/%m/%d";}else{if(H==="DD/MM/YYYY"){H="%d/%m/%Y";}else{if(H==="MM/DD/YYYY"){H="%m/%d/%Y";}}}D=D||"en";if(!(D in YAHOO.util.DateLocale)){if(D.replace(/-[a-zA-Z]+$/,"") in YAHOO.util.DateLocale){D=D.replace(/-[a-zA-Z]+$/,"");}else{D="en";}}var J=YAHOO.util.DateLocale[D];var C=function(L,K){var M=B.aggregates[K];return(M==="locale"?J[K]:M);};var E=function(L,K){var M=B.formats[K];if(typeof M==="string"){return G[M]();}else{if(typeof M==="function"){return M.call(G,G,J);}else{if(typeof M==="object"&&typeof M[0]==="string"){return A(G[M[0]](),M[1]);}else{return K;}}}};while(H.match(/%[cDFhnrRtTxX]/)){H=H.replace(/%([cDFhnrRtTxX])/g,C);}var I=H.replace(/%([aAbBCdegGHIjklmMpPsSuUVwWyYzZ%])/g,E);C=E=undefined;return I;}};YAHOO.namespace("YAHOO.util");YAHOO.util.Date=B;YAHOO.util.DateLocale={a:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],A:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],b:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],B:["January","February","March","April","May","June","July","August","September","October","November","December"],c:"%a %d %b %Y %T %Z",p:["AM","PM"],P:["am","pm"],r:"%I:%M:%S %p",x:"%d/%m/%y",X:"%T"};YAHOO.util.DateLocale["en"]=YAHOO.lang.merge(YAHOO.util.DateLocale,{});YAHOO.util.DateLocale["en-US"]=YAHOO.lang.merge(YAHOO.util.DateLocale["en"],{c:"%a %d %b %Y %I:%M:%S %p %Z",x:"%m/%d/%Y",X:"%I:%M:%S %p"});YAHOO.util.DateLocale["en-GB"]=YAHOO.lang.merge(YAHOO.util.DateLocale["en"],{r:"%l:%M:%S %P %Z"});YAHOO.util.DateLocale["en-AU"]=YAHOO.lang.merge(YAHOO.util.DateLocale["en"]);})();YAHOO.register("datasource",YAHOO.util.DataSource,{version:"2.6.0",build:"1321"});/*
982+Copyright (c) 2008, Yahoo! Inc. All rights reserved.
983+Code licensed under the BSD License:
984+http://developer.yahoo.net/yui/license.txt
985+version: 2.6.0
986+*/
987+YAHOO.widget.DS_JSArray=YAHOO.util.LocalDataSource;YAHOO.widget.DS_JSFunction=YAHOO.util.FunctionDataSource;YAHOO.widget.DS_XHR=function(B,A,D){var C=new YAHOO.util.XHRDataSource(B,D);C._aDeprecatedSchema=A;return C;};YAHOO.widget.DS_ScriptNode=function(B,A,D){var C=new YAHOO.util.ScriptNodeDataSource(B,D);C._aDeprecatedSchema=A;return C;};YAHOO.widget.DS_XHR.TYPE_JSON=YAHOO.util.DataSourceBase.TYPE_JSON;YAHOO.widget.DS_XHR.TYPE_XML=YAHOO.util.DataSourceBase.TYPE_XML;YAHOO.widget.DS_XHR.TYPE_FLAT=YAHOO.util.DataSourceBase.TYPE_TEXT;YAHOO.widget.AutoComplete=function(G,B,J,C){if(G&&B&&J){if(J instanceof YAHOO.util.DataSourceBase){this.dataSource=J;}else{return ;}this.key=0;var D=J.responseSchema;if(J._aDeprecatedSchema){var K=J._aDeprecatedSchema;if(YAHOO.lang.isArray(K)){if((J.responseType===YAHOO.util.DataSourceBase.TYPE_JSON)||(J.responseType===YAHOO.util.DataSourceBase.TYPE_UNKNOWN)){D.resultsList=K[0];this.key=K[1];D.fields=(K.length<3)?null:K.slice(1);}else{if(J.responseType===YAHOO.util.DataSourceBase.TYPE_XML){D.resultNode=K[0];this.key=K[1];D.fields=K.slice(1);}else{if(J.responseType===YAHOO.util.DataSourceBase.TYPE_TEXT){D.recordDelim=K[0];D.fieldDelim=K[1];}}}J.responseSchema=D;}}if(YAHOO.util.Dom.inDocument(G)){if(YAHOO.lang.isString(G)){this._sName="instance"+YAHOO.widget.AutoComplete._nIndex+" "+G;this._elTextbox=document.getElementById(G);}else{this._sName=(G.id)?"instance"+YAHOO.widget.AutoComplete._nIndex+" "+G.id:"instance"+YAHOO.widget.AutoComplete._nIndex;this._elTextbox=G;}YAHOO.util.Dom.addClass(this._elTextbox,"yui-ac-input");}else{return ;}if(YAHOO.util.Dom.inDocument(B)){if(YAHOO.lang.isString(B)){this._elContainer=document.getElementById(B);}else{this._elContainer=B;}if(this._elContainer.style.display=="none"){}var E=this._elContainer.parentNode;var A=E.tagName.toLowerCase();if(A=="div"){YAHOO.util.Dom.addClass(E,"yui-ac");}else{}}else{return ;}if(this.dataSource.dataType===YAHOO.util.DataSourceBase.TYPE_LOCAL){this.applyLocalFilter=true;}if(C&&(C.constructor==Object)){for(var I in C){if(I){this[I]=C[I];}}}this._initContainerEl();this._initProps();this._initListEl();this._initContainerHelperEls();var H=this;var F=this._elTextbox;YAHOO.util.Event.addListener(F,"keyup",H._onTextboxKeyUp,H);YAHOO.util.Event.addListener(F,"keydown",H._onTextboxKeyDown,H);YAHOO.util.Event.addListener(F,"focus",H._onTextboxFocus,H);YAHOO.util.Event.addListener(F,"blur",H._onTextboxBlur,H);YAHOO.util.Event.addListener(B,"mouseover",H._onContainerMouseover,H);YAHOO.util.Event.addListener(B,"mouseout",H._onContainerMouseout,H);YAHOO.util.Event.addListener(B,"click",H._onContainerClick,H);YAHOO.util.Event.addListener(B,"scroll",H._onContainerScroll,H);YAHOO.util.Event.addListener(B,"resize",H._onContainerResize,H);YAHOO.util.Event.addListener(F,"keypress",H._onTextboxKeyPress,H);YAHOO.util.Event.addListener(window,"unload",H._onWindowUnload,H);this.textboxFocusEvent=new YAHOO.util.CustomEvent("textboxFocus",this);this.textboxKeyEvent=new YAHOO.util.CustomEvent("textboxKey",this);this.dataRequestEvent=new YAHOO.util.CustomEvent("dataRequest",this);this.dataReturnEvent=new YAHOO.util.CustomEvent("dataReturn",this);this.dataErrorEvent=new YAHOO.util.CustomEvent("dataError",this);this.containerPopulateEvent=new YAHOO.util.CustomEvent("containerPopulate",this);this.containerExpandEvent=new YAHOO.util.CustomEvent("containerExpand",this);this.typeAheadEvent=new YAHOO.util.CustomEvent("typeAhead",this);this.itemMouseOverEvent=new YAHOO.util.CustomEvent("itemMouseOver",this);this.itemMouseOutEvent=new YAHOO.util.CustomEvent("itemMouseOut",this);this.itemArrowToEvent=new YAHOO.util.CustomEvent("itemArrowTo",this);this.itemArrowFromEvent=new YAHOO.util.CustomEvent("itemArrowFrom",this);this.itemSelectEvent=new YAHOO.util.CustomEvent("itemSelect",this);this.unmatchedItemSelectEvent=new YAHOO.util.CustomEvent("unmatchedItemSelect",this);this.selectionEnforceEvent=new YAHOO.util.CustomEvent("selectionEnforce",this);this.containerCollapseEvent=new YAHOO.util.CustomEvent("containerCollapse",this);this.textboxBlurEvent=new YAHOO.util.CustomEvent("textboxBlur",this);this.textboxChangeEvent=new YAHOO.util.CustomEvent("textboxChange",this);F.setAttribute("autocomplete","off");YAHOO.widget.AutoComplete._nIndex++;}else{}};YAHOO.widget.AutoComplete.prototype.dataSource=null;YAHOO.widget.AutoComplete.prototype.applyLocalFilter=null;YAHOO.widget.AutoComplete.prototype.queryMatchCase=false;YAHOO.widget.AutoComplete.prototype.queryMatchContains=false;YAHOO.widget.AutoComplete.prototype.queryMatchSubset=false;YAHOO.widget.AutoComplete.prototype.minQueryLength=1;YAHOO.widget.AutoComplete.prototype.maxResultsDisplayed=10;YAHOO.widget.AutoComplete.prototype.queryDelay=0.2;YAHOO.widget.AutoComplete.prototype.typeAheadDelay=0.5;YAHOO.widget.AutoComplete.prototype.queryInterval=500;YAHOO.widget.AutoComplete.prototype.highlightClassName="yui-ac-highlight";YAHOO.widget.AutoComplete.prototype.prehighlightClassName=null;YAHOO.widget.AutoComplete.prototype.delimChar=null;YAHOO.widget.AutoComplete.prototype.autoHighlight=true;YAHOO.widget.AutoComplete.prototype.typeAhead=false;YAHOO.widget.AutoComplete.prototype.animHoriz=false;YAHOO.widget.AutoComplete.prototype.animVert=true;YAHOO.widget.AutoComplete.prototype.animSpeed=0.3;YAHOO.widget.AutoComplete.prototype.forceSelection=false;YAHOO.widget.AutoComplete.prototype.allowBrowserAutocomplete=true;YAHOO.widget.AutoComplete.prototype.alwaysShowContainer=false;YAHOO.widget.AutoComplete.prototype.useIFrame=false;YAHOO.widget.AutoComplete.prototype.useShadow=false;YAHOO.widget.AutoComplete.prototype.suppressInputUpdate=false;YAHOO.widget.AutoComplete.prototype.resultTypeList=true;YAHOO.widget.AutoComplete.prototype.queryQuestionMark=true;YAHOO.widget.AutoComplete.prototype.toString=function(){return"AutoComplete "+this._sName;};YAHOO.widget.AutoComplete.prototype.getInputEl=function(){return this._elTextbox;};YAHOO.widget.AutoComplete.prototype.getContainerEl=function(){return this._elContainer;
988+};YAHOO.widget.AutoComplete.prototype.isFocused=function(){return(this._bFocused===null)?false:this._bFocused;};YAHOO.widget.AutoComplete.prototype.isContainerOpen=function(){return this._bContainerOpen;};YAHOO.widget.AutoComplete.prototype.getListEl=function(){return this._elList;};YAHOO.widget.AutoComplete.prototype.getListItemMatch=function(A){if(A._sResultMatch){return A._sResultMatch;}else{return null;}};YAHOO.widget.AutoComplete.prototype.getListItemData=function(A){if(A._oResultData){return A._oResultData;}else{return null;}};YAHOO.widget.AutoComplete.prototype.getListItemIndex=function(A){if(YAHOO.lang.isNumber(A._nItemIndex)){return A._nItemIndex;}else{return null;}};YAHOO.widget.AutoComplete.prototype.setHeader=function(B){if(this._elHeader){var A=this._elHeader;if(B){A.innerHTML=B;A.style.display="block";}else{A.innerHTML="";A.style.display="none";}}};YAHOO.widget.AutoComplete.prototype.setFooter=function(B){if(this._elFooter){var A=this._elFooter;if(B){A.innerHTML=B;A.style.display="block";}else{A.innerHTML="";A.style.display="none";}}};YAHOO.widget.AutoComplete.prototype.setBody=function(A){if(this._elBody){var B=this._elBody;YAHOO.util.Event.purgeElement(B,true);if(A){B.innerHTML=A;B.style.display="block";}else{B.innerHTML="";B.style.display="none";}this._elList=null;}};YAHOO.widget.AutoComplete.prototype.generateRequest=function(B){var A=this.dataSource.dataType;if(A===YAHOO.util.DataSourceBase.TYPE_XHR){if(!this.dataSource.connMethodPost){B=(this.queryQuestionMark?"?":"")+(this.dataSource.scriptQueryParam||"query")+"="+B+(this.dataSource.scriptQueryAppend?("&"+this.dataSource.scriptQueryAppend):"");}else{B=(this.dataSource.scriptQueryParam||"query")+"="+B+(this.dataSource.scriptQueryAppend?("&"+this.dataSource.scriptQueryAppend):"");}}else{if(A===YAHOO.util.DataSourceBase.TYPE_SCRIPTNODE){B="&"+(this.dataSource.scriptQueryParam||"query")+"="+B+(this.dataSource.scriptQueryAppend?("&"+this.dataSource.scriptQueryAppend):"");}}return B;};YAHOO.widget.AutoComplete.prototype.sendQuery=function(B){var A=(this.delimChar)?this._elTextbox.value+B:B;this._sendQuery(A);};YAHOO.widget.AutoComplete.prototype.collapseContainer=function(){this._toggleContainer(false);};YAHOO.widget.AutoComplete.prototype.getSubsetMatches=function(E){var D,C,A;for(var B=E.length;B>=this.minQueryLength;B--){A=this.generateRequest(E.substr(0,B));this.dataRequestEvent.fire(this,D,A);C=this.dataSource.getCachedResponse(A);if(C){return this.filterResults.apply(this.dataSource,[E,C,C,{scope:this}]);}}return null;};YAHOO.widget.AutoComplete.prototype.preparseRawResponse=function(C,B,A){var D=((this.responseStripAfter!=="")&&(B.indexOf))?B.indexOf(this.responseStripAfter):-1;if(D!=-1){B=B.substring(0,D);}return B;};YAHOO.widget.AutoComplete.prototype.filterResults=function(J,L,P,K){if(J&&J!==""){P=YAHOO.widget.AutoComplete._cloneObject(P);var H=K.scope,O=this,B=P.results,M=[],D=false,I=(O.queryMatchCase||H.queryMatchCase),A=(O.queryMatchContains||H.queryMatchContains);for(var C=B.length-1;C>=0;C--){var F=B[C];var E=null;if(YAHOO.lang.isString(F)){E=F;}else{if(YAHOO.lang.isArray(F)){E=F[0];}else{if(this.responseSchema.fields){var N=this.responseSchema.fields[0].key||this.responseSchema.fields[0];E=F[N];}else{if(this.key){E=F[this.key];}}}}if(YAHOO.lang.isString(E)){var G=(I)?E.indexOf(decodeURIComponent(J)):E.toLowerCase().indexOf(decodeURIComponent(J).toLowerCase());if((!A&&(G===0))||(A&&(G>-1))){M.unshift(F);}}}P.results=M;}else{}return P;};YAHOO.widget.AutoComplete.prototype.handleResponse=function(C,A,B){if((this instanceof YAHOO.widget.AutoComplete)&&this._sName){this._populateList(C,A,B);}};YAHOO.widget.AutoComplete.prototype.doBeforeLoadData=function(C,A,B){return true;};YAHOO.widget.AutoComplete.prototype.formatResult=function(B,D,A){var C=(A)?A:"";return C;};YAHOO.widget.AutoComplete.prototype.doBeforeExpandContainer=function(D,A,C,B){return true;};YAHOO.widget.AutoComplete.prototype.destroy=function(){var B=this.toString();var A=this._elTextbox;var D=this._elContainer;this.textboxFocusEvent.unsubscribeAll();this.textboxKeyEvent.unsubscribeAll();this.dataRequestEvent.unsubscribeAll();this.dataReturnEvent.unsubscribeAll();this.dataErrorEvent.unsubscribeAll();this.containerPopulateEvent.unsubscribeAll();this.containerExpandEvent.unsubscribeAll();this.typeAheadEvent.unsubscribeAll();this.itemMouseOverEvent.unsubscribeAll();this.itemMouseOutEvent.unsubscribeAll();this.itemArrowToEvent.unsubscribeAll();this.itemArrowFromEvent.unsubscribeAll();this.itemSelectEvent.unsubscribeAll();this.unmatchedItemSelectEvent.unsubscribeAll();this.selectionEnforceEvent.unsubscribeAll();this.containerCollapseEvent.unsubscribeAll();this.textboxBlurEvent.unsubscribeAll();this.textboxChangeEvent.unsubscribeAll();YAHOO.util.Event.purgeElement(A,true);YAHOO.util.Event.purgeElement(D,true);D.innerHTML="";for(var C in this){if(YAHOO.lang.hasOwnProperty(this,C)){this[C]=null;}}};YAHOO.widget.AutoComplete.prototype.textboxFocusEvent=null;YAHOO.widget.AutoComplete.prototype.textboxKeyEvent=null;YAHOO.widget.AutoComplete.prototype.dataRequestEvent=null;YAHOO.widget.AutoComplete.prototype.dataReturnEvent=null;YAHOO.widget.AutoComplete.prototype.dataErrorEvent=null;YAHOO.widget.AutoComplete.prototype.containerPopulateEvent=null;YAHOO.widget.AutoComplete.prototype.containerExpandEvent=null;YAHOO.widget.AutoComplete.prototype.typeAheadEvent=null;YAHOO.widget.AutoComplete.prototype.itemMouseOverEvent=null;YAHOO.widget.AutoComplete.prototype.itemMouseOutEvent=null;YAHOO.widget.AutoComplete.prototype.itemArrowToEvent=null;YAHOO.widget.AutoComplete.prototype.itemArrowFromEvent=null;YAHOO.widget.AutoComplete.prototype.itemSelectEvent=null;YAHOO.widget.AutoComplete.prototype.unmatchedItemSelectEvent=null;YAHOO.widget.AutoComplete.prototype.selectionEnforceEvent=null;YAHOO.widget.AutoComplete.prototype.containerCollapseEvent=null;YAHOO.widget.AutoComplete.prototype.textboxBlurEvent=null;YAHOO.widget.AutoComplete.prototype.textboxChangeEvent=null;YAHOO.widget.AutoComplete._nIndex=0;
989+YAHOO.widget.AutoComplete.prototype._sName=null;YAHOO.widget.AutoComplete.prototype._elTextbox=null;YAHOO.widget.AutoComplete.prototype._elContainer=null;YAHOO.widget.AutoComplete.prototype._elContent=null;YAHOO.widget.AutoComplete.prototype._elHeader=null;YAHOO.widget.AutoComplete.prototype._elBody=null;YAHOO.widget.AutoComplete.prototype._elFooter=null;YAHOO.widget.AutoComplete.prototype._elShadow=null;YAHOO.widget.AutoComplete.prototype._elIFrame=null;YAHOO.widget.AutoComplete.prototype._bFocused=null;YAHOO.widget.AutoComplete.prototype._oAnim=null;YAHOO.widget.AutoComplete.prototype._bContainerOpen=false;YAHOO.widget.AutoComplete.prototype._bOverContainer=false;YAHOO.widget.AutoComplete.prototype._elList=null;YAHOO.widget.AutoComplete.prototype._nDisplayedItems=0;YAHOO.widget.AutoComplete.prototype._sCurQuery=null;YAHOO.widget.AutoComplete.prototype._sPastSelections="";YAHOO.widget.AutoComplete.prototype._sInitInputValue=null;YAHOO.widget.AutoComplete.prototype._elCurListItem=null;YAHOO.widget.AutoComplete.prototype._bItemSelected=false;YAHOO.widget.AutoComplete.prototype._nKeyCode=null;YAHOO.widget.AutoComplete.prototype._nDelayID=-1;YAHOO.widget.AutoComplete.prototype._nTypeAheadDelayID=-1;YAHOO.widget.AutoComplete.prototype._iFrameSrc="javascript:false;";YAHOO.widget.AutoComplete.prototype._queryInterval=null;YAHOO.widget.AutoComplete.prototype._sLastTextboxValue=null;YAHOO.widget.AutoComplete.prototype._initProps=function(){var B=this.minQueryLength;if(!YAHOO.lang.isNumber(B)){this.minQueryLength=1;}var E=this.maxResultsDisplayed;if(!YAHOO.lang.isNumber(E)||(E<1)){this.maxResultsDisplayed=10;}var F=this.queryDelay;if(!YAHOO.lang.isNumber(F)||(F<0)){this.queryDelay=0.2;}var C=this.typeAheadDelay;if(!YAHOO.lang.isNumber(C)||(C<0)){this.typeAheadDelay=0.2;}var A=this.delimChar;if(YAHOO.lang.isString(A)&&(A.length>0)){this.delimChar=[A];}else{if(!YAHOO.lang.isArray(A)){this.delimChar=null;}}var D=this.animSpeed;if((this.animHoriz||this.animVert)&&YAHOO.util.Anim){if(!YAHOO.lang.isNumber(D)||(D<0)){this.animSpeed=0.3;}if(!this._oAnim){this._oAnim=new YAHOO.util.Anim(this._elContent,{},this.animSpeed);}else{this._oAnim.duration=this.animSpeed;}}if(this.forceSelection&&A){}};YAHOO.widget.AutoComplete.prototype._initContainerHelperEls=function(){if(this.useShadow&&!this._elShadow){var A=document.createElement("div");A.className="yui-ac-shadow";A.style.width=0;A.style.height=0;this._elShadow=this._elContainer.appendChild(A);}if(this.useIFrame&&!this._elIFrame){var B=document.createElement("iframe");B.src=this._iFrameSrc;B.frameBorder=0;B.scrolling="no";B.style.position="absolute";B.style.width=0;B.style.height=0;B.tabIndex=-1;B.style.padding=0;this._elIFrame=this._elContainer.appendChild(B);}};YAHOO.widget.AutoComplete.prototype._initContainerEl=function(){YAHOO.util.Dom.addClass(this._elContainer,"yui-ac-container");if(!this._elContent){var C=document.createElement("div");C.className="yui-ac-content";C.style.display="none";this._elContent=this._elContainer.appendChild(C);var B=document.createElement("div");B.className="yui-ac-hd";B.style.display="none";this._elHeader=this._elContent.appendChild(B);var D=document.createElement("div");D.className="yui-ac-bd";this._elBody=this._elContent.appendChild(D);var A=document.createElement("div");A.className="yui-ac-ft";A.style.display="none";this._elFooter=this._elContent.appendChild(A);}else{}};YAHOO.widget.AutoComplete.prototype._initListEl=function(){var C=this.maxResultsDisplayed;var A=this._elList||document.createElement("ul");var B;while(A.childNodes.length<C){B=document.createElement("li");B.style.display="none";B._nItemIndex=A.childNodes.length;A.appendChild(B);}if(!this._elList){var D=this._elBody;YAHOO.util.Event.purgeElement(D,true);D.innerHTML="";this._elList=D.appendChild(A);}};YAHOO.widget.AutoComplete.prototype._enableIntervalDetection=function(){var A=this;if(!A._queryInterval&&A.queryInterval){A._queryInterval=setInterval(function(){A._onInterval();},A.queryInterval);}};YAHOO.widget.AutoComplete.prototype._onInterval=function(){var A=this._elTextbox.value;var B=this._sLastTextboxValue;if(A!=B){this._sLastTextboxValue=A;this._sendQuery(A);}};YAHOO.widget.AutoComplete.prototype._clearInterval=function(){if(this._queryInterval){clearInterval(this._queryInterval);this._queryInterval=null;}};YAHOO.widget.AutoComplete.prototype._isIgnoreKey=function(A){if((A==9)||(A==13)||(A==16)||(A==17)||(A>=18&&A<=20)||(A==27)||(A>=33&&A<=35)||(A>=36&&A<=40)||(A>=44&&A<=45)||(A==229)){return true;}return false;};YAHOO.widget.AutoComplete.prototype._sendQuery=function(G){if(this.minQueryLength<0){this._toggleContainer(false);return ;}var I=(this.delimChar)?this.delimChar:null;if(I){var B=-1;for(var F=I.length-1;F>=0;F--){var D=G.lastIndexOf(I[F]);if(D>B){B=D;}}if(I[F]==" "){for(var E=I.length-1;E>=0;E--){if(G[B-1]==I[E]){B--;break;}}}if(B>-1){var H=B+1;while(G.charAt(H)==" "){H+=1;}this._sPastSelections=G.substring(0,H);G=G.substr(H);}else{this._sPastSelections="";}}if((G&&(G.length<this.minQueryLength))||(!G&&this.minQueryLength>0)){if(this._nDelayID!=-1){clearTimeout(this._nDelayID);}this._toggleContainer(false);return ;}G=encodeURIComponent(G);this._nDelayID=-1;if(this.dataSource.queryMatchSubset||this.queryMatchSubset){var A=this.getSubsetMatches(G);if(A){this.handleResponse(G,A,{query:G});return ;}}if(this.responseStripAfter){this.dataSource.doBeforeParseData=this.preparseRawResponse;}if(this.applyLocalFilter){this.dataSource.doBeforeCallback=this.filterResults;}var C=this.generateRequest(G);this.dataRequestEvent.fire(this,G,C);this.dataSource.sendRequest(C,{success:this.handleResponse,failure:this.handleResponse,scope:this,argument:{query:G}});};YAHOO.widget.AutoComplete.prototype._populateList=function(K,F,C){if(this._nTypeAheadDelayID!=-1){clearTimeout(this._nTypeAheadDelayID);}K=(C&&C.query)?C.query:K;var H=this.doBeforeLoadData(K,F,C);if(H&&!F.error){this.dataReturnEvent.fire(this,K,F.results);if(this._bFocused||(this._bFocused===null)){var M=decodeURIComponent(K);
990+this._sCurQuery=M;this._bItemSelected=false;var R=F.results,A=Math.min(R.length,this.maxResultsDisplayed),J=(this.dataSource.responseSchema.fields)?(this.dataSource.responseSchema.fields[0].key||this.dataSource.responseSchema.fields[0]):0;if(A>0){if(!this._elList||(this._elList.childNodes.length<A)){this._initListEl();}this._initContainerHelperEls();var I=this._elList.childNodes;for(var Q=A-1;Q>=0;Q--){var P=I[Q],E=R[Q];if(this.resultTypeList){var B=[];B[0]=(YAHOO.lang.isString(E))?E:E[J]||E[this.key];var L=this.dataSource.responseSchema.fields;if(YAHOO.lang.isArray(L)&&(L.length>1)){for(var N=1,S=L.length;N<S;N++){B[B.length]=E[L[N].key||L[N]];}}else{if(YAHOO.lang.isArray(E)){B=E;}else{if(YAHOO.lang.isString(E)){B=[E];}else{B[1]=E;}}}E=B;}P._sResultMatch=(YAHOO.lang.isString(E))?E:(YAHOO.lang.isArray(E))?E[0]:(E[J]||"");P._oResultData=E;P.innerHTML=this.formatResult(E,M,P._sResultMatch);P.style.display="";}if(A<I.length){var G;for(var O=I.length-1;O>=A;O--){G=I[O];G.style.display="none";}}this._nDisplayedItems=A;this.containerPopulateEvent.fire(this,K,R);if(this.autoHighlight){var D=this._elList.firstChild;this._toggleHighlight(D,"to");this.itemArrowToEvent.fire(this,D);this._typeAhead(D,K);}else{this._toggleHighlight(this._elCurListItem,"from");}H=this.doBeforeExpandContainer(this._elTextbox,this._elContainer,K,R);this._toggleContainer(H);}else{this._toggleContainer(false);}return ;}}else{this.dataErrorEvent.fire(this,K);}};YAHOO.widget.AutoComplete.prototype._clearSelection=function(){var C=this._elTextbox.value;var B=(this.delimChar)?this.delimChar[0]:null;var A=(B)?C.lastIndexOf(B,C.length-2):-1;if(A>-1){this._elTextbox.value=C.substring(0,A);}else{this._elTextbox.value="";}this._sPastSelections=this._elTextbox.value;this.selectionEnforceEvent.fire(this);};YAHOO.widget.AutoComplete.prototype._textMatchesOption=function(){var A=null;for(var B=this._nDisplayedItems-1;B>=0;B--){var C=this._elList.childNodes[B];var D=(""+C._sResultMatch).toLowerCase();if(D==this._sCurQuery.toLowerCase()){A=C;break;}}return(A);};YAHOO.widget.AutoComplete.prototype._typeAhead=function(B,D){if(!this.typeAhead||(this._nKeyCode==8)){return ;}var A=this,C=this._elTextbox;if(C.setSelectionRange||C.createTextRange){this._nTypeAheadDelayID=setTimeout(function(){var F=C.value.length;A._updateValue(B);var G=C.value.length;A._selectText(C,F,G);var E=C.value.substr(F,G);A.typeAheadEvent.fire(A,D,E);},(this.typeAheadDelay*1000));}};YAHOO.widget.AutoComplete.prototype._selectText=function(D,A,B){if(D.setSelectionRange){D.setSelectionRange(A,B);}else{if(D.createTextRange){var C=D.createTextRange();C.moveStart("character",A);C.moveEnd("character",B-D.value.length);C.select();}else{D.select();}}};YAHOO.widget.AutoComplete.prototype._toggleContainerHelpers=function(D){var E=this._elContent.offsetWidth+"px";var B=this._elContent.offsetHeight+"px";if(this.useIFrame&&this._elIFrame){var C=this._elIFrame;if(D){C.style.width=E;C.style.height=B;C.style.padding="";}else{C.style.width=0;C.style.height=0;C.style.padding=0;}}if(this.useShadow&&this._elShadow){var A=this._elShadow;if(D){A.style.width=E;A.style.height=B;}else{A.style.width=0;A.style.height=0;}}};YAHOO.widget.AutoComplete.prototype._toggleContainer=function(I){var D=this._elContainer;if(this.alwaysShowContainer&&this._bContainerOpen){return ;}if(!I){this._toggleHighlight(this._elCurListItem,"from");this._nDisplayedItems=0;this._sCurQuery=null;if(!this._bContainerOpen){this._elContent.style.display="none";return ;}}var A=this._oAnim;if(A&&A.getEl()&&(this.animHoriz||this.animVert)){if(A.isAnimated()){A.stop(true);}var G=this._elContent.cloneNode(true);D.appendChild(G);G.style.top="-9000px";G.style.width="";G.style.height="";G.style.display="";var F=G.offsetWidth;var C=G.offsetHeight;var B=(this.animHoriz)?0:F;var E=(this.animVert)?0:C;A.attributes=(I)?{width:{to:F},height:{to:C}}:{width:{to:B},height:{to:E}};if(I&&!this._bContainerOpen){this._elContent.style.width=B+"px";this._elContent.style.height=E+"px";}else{this._elContent.style.width=F+"px";this._elContent.style.height=C+"px";}D.removeChild(G);G=null;var H=this;var J=function(){A.onComplete.unsubscribeAll();if(I){H._toggleContainerHelpers(true);H._bContainerOpen=I;H.containerExpandEvent.fire(H);}else{H._elContent.style.display="none";H._bContainerOpen=I;H.containerCollapseEvent.fire(H);}};this._toggleContainerHelpers(false);this._elContent.style.display="";A.onComplete.subscribe(J);A.animate();}else{if(I){this._elContent.style.display="";this._toggleContainerHelpers(true);this._bContainerOpen=I;this.containerExpandEvent.fire(this);}else{this._toggleContainerHelpers(false);this._elContent.style.display="none";this._bContainerOpen=I;this.containerCollapseEvent.fire(this);}}};YAHOO.widget.AutoComplete.prototype._toggleHighlight=function(A,C){if(A){var B=this.highlightClassName;if(this._elCurListItem){YAHOO.util.Dom.removeClass(this._elCurListItem,B);this._elCurListItem=null;}if((C=="to")&&B){YAHOO.util.Dom.addClass(A,B);this._elCurListItem=A;}}};YAHOO.widget.AutoComplete.prototype._togglePrehighlight=function(B,C){if(B==this._elCurListItem){return ;}var A=this.prehighlightClassName;if((C=="mouseover")&&A){YAHOO.util.Dom.addClass(B,A);}else{YAHOO.util.Dom.removeClass(B,A);}};YAHOO.widget.AutoComplete.prototype._updateValue=function(C){if(!this.suppressInputUpdate){var F=this._elTextbox;var E=(this.delimChar)?(this.delimChar[0]||this.delimChar):null;var B=C._sResultMatch;var D="";if(E){D=this._sPastSelections;D+=B+E;if(E!=" "){D+=" ";}}else{D=B;}F.value=D;if(F.type=="textarea"){F.scrollTop=F.scrollHeight;}var A=F.value.length;this._selectText(F,A,A);this._elCurListItem=C;}};YAHOO.widget.AutoComplete.prototype._selectItem=function(A){this._bItemSelected=true;this._updateValue(A);this._sPastSelections=this._elTextbox.value;this._clearInterval();this.itemSelectEvent.fire(this,A,A._oResultData);this._toggleContainer(false);};YAHOO.widget.AutoComplete.prototype._jumpSelection=function(){if(this._elCurListItem){this._selectItem(this._elCurListItem);
991+}else{this._toggleContainer(false);}};YAHOO.widget.AutoComplete.prototype._moveSelection=function(G){if(this._bContainerOpen){var F=this._elCurListItem;var E=-1;if(F){E=F._nItemIndex;}var C=(G==40)?(E+1):(E-1);if(C<-2||C>=this._nDisplayedItems){return ;}if(F){this._toggleHighlight(F,"from");this.itemArrowFromEvent.fire(this,F);}if(C==-1){if(this.delimChar){this._elTextbox.value=this._sPastSelections+this._sCurQuery;}else{this._elTextbox.value=this._sCurQuery;}return ;}if(C==-2){this._toggleContainer(false);return ;}var D=this._elList.childNodes[C];var A=this._elContent;var B=((YAHOO.util.Dom.getStyle(A,"overflow")=="auto")||(YAHOO.util.Dom.getStyle(A,"overflowY")=="auto"));if(B&&(C>-1)&&(C<this._nDisplayedItems)){if(G==40){if((D.offsetTop+D.offsetHeight)>(A.scrollTop+A.offsetHeight)){A.scrollTop=(D.offsetTop+D.offsetHeight)-A.offsetHeight;}else{if((D.offsetTop+D.offsetHeight)<A.scrollTop){A.scrollTop=D.offsetTop;}}}else{if(D.offsetTop<A.scrollTop){this._elContent.scrollTop=D.offsetTop;}else{if(D.offsetTop>(A.scrollTop+A.offsetHeight)){this._elContent.scrollTop=(D.offsetTop+D.offsetHeight)-A.offsetHeight;}}}}this._toggleHighlight(D,"to");this.itemArrowToEvent.fire(this,D);if(this.typeAhead){this._updateValue(D);}}};YAHOO.widget.AutoComplete.prototype._onContainerMouseover=function(A,C){var D=YAHOO.util.Event.getTarget(A);var B=D.nodeName.toLowerCase();while(D&&(B!="table")){switch(B){case"body":return ;case"li":if(C.prehighlightClassName){C._togglePrehighlight(D,"mouseover");}else{C._toggleHighlight(D,"to");}C.itemMouseOverEvent.fire(C,D);break;case"div":if(YAHOO.util.Dom.hasClass(D,"yui-ac-container")){C._bOverContainer=true;return ;}break;default:break;}D=D.parentNode;if(D){B=D.nodeName.toLowerCase();}}};YAHOO.widget.AutoComplete.prototype._onContainerMouseout=function(A,C){var D=YAHOO.util.Event.getTarget(A);var B=D.nodeName.toLowerCase();while(D&&(B!="table")){switch(B){case"body":return ;case"li":if(C.prehighlightClassName){C._togglePrehighlight(D,"mouseout");}else{C._toggleHighlight(D,"from");}C.itemMouseOutEvent.fire(C,D);break;case"ul":C._toggleHighlight(C._elCurListItem,"to");break;case"div":if(YAHOO.util.Dom.hasClass(D,"yui-ac-container")){C._bOverContainer=false;return ;}break;default:break;}D=D.parentNode;if(D){B=D.nodeName.toLowerCase();}}};YAHOO.widget.AutoComplete.prototype._onContainerClick=function(A,C){var D=YAHOO.util.Event.getTarget(A);var B=D.nodeName.toLowerCase();while(D&&(B!="table")){switch(B){case"body":return ;case"li":C._toggleHighlight(D,"to");C._selectItem(D);return ;default:break;}D=D.parentNode;if(D){B=D.nodeName.toLowerCase();}}};YAHOO.widget.AutoComplete.prototype._onContainerScroll=function(A,B){B._elTextbox.focus();};YAHOO.widget.AutoComplete.prototype._onContainerResize=function(A,B){B._toggleContainerHelpers(B._bContainerOpen);};YAHOO.widget.AutoComplete.prototype._onTextboxKeyDown=function(A,B){var C=A.keyCode;if(B._nTypeAheadDelayID!=-1){clearTimeout(B._nTypeAheadDelayID);}switch(C){case 9:if(!YAHOO.env.ua.opera&&(navigator.userAgent.toLowerCase().indexOf("mac")==-1)||(YAHOO.env.ua.webkit>420)){if(B._elCurListItem){if(B.delimChar&&(B._nKeyCode!=C)){if(B._bContainerOpen){YAHOO.util.Event.stopEvent(A);}}B._selectItem(B._elCurListItem);}else{B._toggleContainer(false);}}break;case 13:if(!YAHOO.env.ua.opera&&(navigator.userAgent.toLowerCase().indexOf("mac")==-1)||(YAHOO.env.ua.webkit>420)){if(B._elCurListItem){if(B._nKeyCode!=C){if(B._bContainerOpen){YAHOO.util.Event.stopEvent(A);}}B._selectItem(B._elCurListItem);}else{B._toggleContainer(false);}}break;case 27:B._toggleContainer(false);return ;case 39:B._jumpSelection();break;case 38:if(B._bContainerOpen){YAHOO.util.Event.stopEvent(A);B._moveSelection(C);}break;case 40:if(B._bContainerOpen){YAHOO.util.Event.stopEvent(A);B._moveSelection(C);}break;default:B._bItemSelected=false;B._toggleHighlight(B._elCurListItem,"from");B.textboxKeyEvent.fire(B,C);break;}if(C===18){B._enableIntervalDetection();}B._nKeyCode=C;};YAHOO.widget.AutoComplete.prototype._onTextboxKeyPress=function(A,B){var C=A.keyCode;if(YAHOO.env.ua.opera||(navigator.userAgent.toLowerCase().indexOf("mac")!=-1)&&(YAHOO.env.ua.webkit<420)){switch(C){case 9:if(B._bContainerOpen){if(B.delimChar){YAHOO.util.Event.stopEvent(A);}if(B._elCurListItem){B._selectItem(B._elCurListItem);}else{B._toggleContainer(false);}}break;case 13:if(B._bContainerOpen){YAHOO.util.Event.stopEvent(A);if(B._elCurListItem){B._selectItem(B._elCurListItem);}else{B._toggleContainer(false);}}break;default:break;}}else{if(C==229){B._enableIntervalDetection();}}};YAHOO.widget.AutoComplete.prototype._onTextboxKeyUp=function(A,C){var B=this.value;C._initProps();var D=A.keyCode;if(C._isIgnoreKey(D)){return ;}if(C._nDelayID!=-1){clearTimeout(C._nDelayID);}C._nDelayID=setTimeout(function(){C._sendQuery(B);},(C.queryDelay*1000));};YAHOO.widget.AutoComplete.prototype._onTextboxFocus=function(A,B){if(!B._bFocused){B._elTextbox.setAttribute("autocomplete","off");B._bFocused=true;B._sInitInputValue=B._elTextbox.value;B.textboxFocusEvent.fire(B);}};YAHOO.widget.AutoComplete.prototype._onTextboxBlur=function(A,C){if(!C._bOverContainer||(C._nKeyCode==9)){if(!C._bItemSelected){var B=C._textMatchesOption();if(!C._bContainerOpen||(C._bContainerOpen&&(B===null))){if(C.forceSelection){C._clearSelection();}else{C.unmatchedItemSelectEvent.fire(C,C._sCurQuery);}}else{if(C.forceSelection){C._selectItem(B);}}}if(C._bContainerOpen){C._toggleContainer(false);}C._clearInterval();C._bFocused=false;if(C._sInitInputValue!==C._elTextbox.value){C.textboxChangeEvent.fire(C);}C.textboxBlurEvent.fire(C);}};YAHOO.widget.AutoComplete.prototype._onWindowUnload=function(A,B){if(B&&B._elTextbox&&B.allowBrowserAutocomplete){B._elTextbox.setAttribute("autocomplete","on");}};YAHOO.widget.AutoComplete.prototype.doBeforeSendQuery=function(A){return this.generateRequest(A);};YAHOO.widget.AutoComplete.prototype.getListItems=function(){var C=[],B=this._elList.childNodes;for(var A=B.length-1;A>=0;A--){C[A]=B[A];}return C;};YAHOO.widget.AutoComplete._cloneObject=function(D){if(!YAHOO.lang.isValue(D)){return D;
992+}var F={};if(YAHOO.lang.isFunction(D)){F=D;}else{if(YAHOO.lang.isArray(D)){var E=[];for(var C=0,B=D.length;C<B;C++){E[C]=YAHOO.widget.AutoComplete._cloneObject(D[C]);}F=E;}else{if(YAHOO.lang.isObject(D)){for(var A in D){if(YAHOO.lang.hasOwnProperty(D,A)){if(YAHOO.lang.isValue(D[A])&&YAHOO.lang.isObject(D[A])||YAHOO.lang.isArray(D[A])){F[A]=YAHOO.widget.AutoComplete._cloneObject(D[A]);}else{F[A]=D[A];}}}}else{F=D;}}}return F;};YAHOO.register("autocomplete",YAHOO.widget.AutoComplete,{version:"2.6.0",build:"1321"});/*
993+Copyright (c) 2008, Yahoo! Inc. All rights reserved.
994+Code licensed under the BSD License:
995+http://developer.yahoo.net/yui/license.txt
996+version: 2.6.0
997+*/
998+YAHOO.namespace("util");YAHOO.util.Cookie={_createCookieString:function(B,D,C,A){var F=YAHOO.lang;var E=encodeURIComponent(B)+"="+(C?encodeURIComponent(D):D);if(F.isObject(A)){if(A.expires instanceof Date){E+="; expires="+A.expires.toGMTString();}if(F.isString(A.path)&&A.path!=""){E+="; path="+A.path;}if(F.isString(A.domain)&&A.domain!=""){E+="; domain="+A.domain;}if(A.secure===true){E+="; secure";}}return E;},_createCookieHashString:function(B){var D=YAHOO.lang;if(!D.isObject(B)){throw new TypeError("Cookie._createCookieHashString(): Argument must be an object.");}var C=new Array();for(var A in B){if(D.hasOwnProperty(B,A)&&!D.isFunction(B[A])&&!D.isUndefined(B[A])){C.push(encodeURIComponent(A)+"="+encodeURIComponent(String(B[A])));}}return C.join("&");},_parseCookieHash:function(E){var D=E.split("&"),F=null,C=new Object();if(E.length>0){for(var B=0,A=D.length;B<A;B++){F=D[B].split("=");C[decodeURIComponent(F[0])]=decodeURIComponent(F[1]);}}return C;},_parseCookieString:function(I,A){var J=new Object();if(YAHOO.lang.isString(I)&&I.length>0){var B=(A===false?function(K){return K;}:decodeURIComponent);if(/[^=]+=[^=;]?(?:; [^=]+=[^=]?)?/.test(I)){var G=I.split(/;\s/g);var H=null;var C=null;var E=null;for(var D=0,F=G.length;D<F;D++){E=G[D].match(/([^=]+)=/i);if(E instanceof Array){H=decodeURIComponent(E[1]);C=B(G[D].substring(E[1].length+1));}else{H=decodeURIComponent(G[D]);C=H;}J[H]=C;}}}return J;},get:function(A,B){var D=YAHOO.lang;var C=this._parseCookieString(document.cookie);if(!D.isString(A)||A===""){throw new TypeError("Cookie.get(): Cookie name must be a non-empty string.");}if(D.isUndefined(C[A])){return null;}if(!D.isFunction(B)){return C[A];}else{return B(C[A]);}},getSub:function(A,C,B){var E=YAHOO.lang;var D=this.getSubs(A);if(D!==null){if(!E.isString(C)||C===""){throw new TypeError("Cookie.getSub(): Subcookie name must be a non-empty string.");}if(E.isUndefined(D[C])){return null;}if(!E.isFunction(B)){return D[C];}else{return B(D[C]);}}else{return null;}},getSubs:function(A){if(!YAHOO.lang.isString(A)||A===""){throw new TypeError("Cookie.getSubs(): Cookie name must be a non-empty string.");}var B=this._parseCookieString(document.cookie,false);if(YAHOO.lang.isString(B[A])){return this._parseCookieHash(B[A]);}return null;},remove:function(B,A){if(!YAHOO.lang.isString(B)||B===""){throw new TypeError("Cookie.remove(): Cookie name must be a non-empty string.");}A=A||{};A.expires=new Date(0);return this.set(B,"",A);},removeSub:function(B,D,A){if(!YAHOO.lang.isString(B)||B===""){throw new TypeError("Cookie.removeSub(): Cookie name must be a non-empty string.");}if(!YAHOO.lang.isString(D)||D===""){throw new TypeError("Cookie.removeSub(): Subcookie name must be a non-empty string.");}var C=this.getSubs(B);if(YAHOO.lang.isObject(C)&&YAHOO.lang.hasOwnProperty(C,D)){delete C[D];return this.setSubs(B,C,A);}else{return"";}},set:function(B,C,A){var E=YAHOO.lang;if(!E.isString(B)){throw new TypeError("Cookie.set(): Cookie name must be a string.");}if(E.isUndefined(C)){throw new TypeError("Cookie.set(): Value cannot be undefined.");}var D=this._createCookieString(B,C,true,A);document.cookie=D;return D;},setSub:function(B,D,C,A){var F=YAHOO.lang;if(!F.isString(B)||B===""){throw new TypeError("Cookie.setSub(): Cookie name must be a non-empty string.");}if(!F.isString(D)||D===""){throw new TypeError("Cookie.setSub(): Subcookie name must be a non-empty string.");}if(F.isUndefined(C)){throw new TypeError("Cookie.setSub(): Subcookie value cannot be undefined.");}var E=this.getSubs(B);if(!F.isObject(E)){E=new Object();}E[D]=C;return this.setSubs(B,E,A);},setSubs:function(B,C,A){var E=YAHOO.lang;if(!E.isString(B)){throw new TypeError("Cookie.setSubs(): Cookie name must be a string.");}if(!E.isObject(C)){throw new TypeError("Cookie.setSubs(): Cookie value must be an object.");}var D=this._createCookieString(B,this._createCookieHashString(C),false,A);document.cookie=D;return D;}};YAHOO.register("cookie",YAHOO.util.Cookie,{version:"2.6.0",build:"1321"});
999+
1000+
1001
1002=== added file 'jarmonbuild/yuidoc_template/assets/api.css'
1003--- jarmonbuild/yuidoc_template/assets/api.css 1970-01-01 00:00:00 +0000
1004+++ jarmonbuild/yuidoc_template/assets/api.css 2010-08-22 21:23:38 +0000
1005@@ -0,0 +1,242 @@
1006+
1007+
1008+body { background-color: #ECF0F6; }
1009+
1010+/* main page */
1011+a:link { color: #003399; }
1012+a:visited { color: #003399;}
1013+
1014+#doc3 #hd { margin-bottom:1em; position: relative; zoom: 1; }
1015+#doc3 #hd h1 { color: #545454; font-size: 170%; padding: 0; height: 60px; font-weight: bold; text-align: center;}
1016+#doc3 #hd h1 a { position: relative; top: 14px; }
1017+#doc3 #hd a { text-decoration: none; color: black; }
1018+#doc3 #hd h3 {
1019+ background: #98AAB1; background-image: url(bg_hd.gif); color: #000; font-size: 100%; padding: 4px 10px; margin: 0 0 7px 0;
1020+ border: 1px solid #98AAB1;
1021+}
1022+#ft hr {
1023+ display: none;
1024+}
1025+#ft {
1026+ background: #98AAB1; background-image: url(bg_hd.gif); color: #000; font-size: 100%; padding: 4px 10px; margin: 7px 0 0 0; border: 1px solid #98AAB1;
1027+}
1028+#doc3 #hd h3 A { color: #FFF; text-decoration: none; }
1029+#doc3 #hd .breadcrumbs { font-size: 85%; margin-bottom:10px;}
1030+#doc3 #hd .subtitle {position: absolute; right:1em; padding: 0px;margin:0px}
1031+
1032+#doc3 dl { margin: 2px 0; }
1033+#doc3 dd { margin-left: 20px; }
1034+#doc3 .requires dt { font-style: italic; }
1035+#doc3 .default { margin-top:6px; }
1036+#doc3 .detail .deprecated { margin-top:4px; padding:4px; background-color: #EFECCA }
1037+#doc3 .detail .deprecated strong { color:#441054; }
1038+#doc3 code, pre {font-size:85%}
1039+
1040+#doc3 #hd h1 {
1041+ border: 1px solid #98AAB1;
1042+ background-color: #fff;
1043+ margin-bottom: .5em;
1044+
1045+}
1046+#bd {
1047+ border: 1px solid #98AAB1;
1048+ background-color: #fff;
1049+}
1050+
1051+.submodules dd {
1052+ font-size: 93%;
1053+ font-weight: italic;
1054+}
1055+
1056+
1057+#doc3 .classopts { font-size: 85%; float:right; margin:2px; padding: 2px; background-color:#ECF0F6;border: 1px solid #98AAB1;}
1058+#yui-classopts-form fieldset legend { display: none; }
1059+
1060+/* undo reset.css styles for description block formatting */
1061+#doc3 .description ul { padding: 10px 0 10px 28px; font-size: 90%; list-style: disc}
1062+#doc3 .description li { list-style: disc}
1063+#doc3 .description p { padding-bottom: 10px}
1064+#doc3 .description strong { font-weight: bold;}
1065+#doc3 .description em {padding: 2px; background-color: #EFECCA}
1066+#doc3 pre { padding: 10px;}
1067+
1068+#doc3 .summary { margin: 0px 10px 10px 0; padding:10px; background-color:#ECF0F6; border:1px solid #98AAB1; }
1069+#doc3 .extends {font-weight: normal; font-size: 90%}
1070+
1071+#doc3 .nav {min-height: 400px;}
1072+#doc3 .nav .module {
1073+ width:100%;
1074+ border-right: 1px solid #98AAB1;
1075+ border-bottom: 1px solid #98AAB1;
1076+ padding: 0; overflow:hidden;
1077+}
1078+#doc3 .nav .module h4 {
1079+ padding: 3px 5px;
1080+ border-bottom: 1px solid #98AAB1;
1081+ background-image: url(bg_hd.gif);
1082+}
1083+#doc3 .nav .module h4 A { color: #000; text-decoration: none; }
1084+#doc3 .nav .module .content { padding: 2px; }
1085+#doc3 .nav .module UL.content LI { font-size: 90%; }
1086+#doc3 .nav .module UL.content A { text-decoration: none; color: black; display: block; padding: 2px 4px 2px 4px; }
1087+#doc3 .nav .module LI,
1088+#doc3 .nav .module LI A {
1089+ zoom: 1;
1090+}
1091+#doc3 .nav .module LI.selected A,
1092+#doc3 .nav .module LI A:hover {
1093+ background-color: #ECF0F6;
1094+ zoom: 1;
1095+}
1096+
1097+#doc3 .section { margin: 0 7px 7px 0; }
1098+#doc3 .section strong { font-weight: bold;}
1099+#doc3 .section hr { border: none 0; border-top: 1px solid #ccc; }
1100+#doc3 .section h4 { font-size:110%;}
1101+#doc3 .section h3 { background: #98AAB1; background-image: url(bg_hd.gif); width: 98%; color: #000; padding: 3px; margin: 0 0 7px 0;
1102+ border: 1px solid #98AAB1;
1103+
1104+}
1105+#doc3 .section h3 .top { font-size: 60%; font-weight: normal; width: 100%; font-family: verdana; padding-left: 20px; }
1106+#doc3 .section h3 .top A { color: #000; text-decoration: none; }
1107+
1108+#doc3 .section.details .content { padding: 0 0 0 10px; }
1109+#doc3 .section.details .description { padding: 10px 0 0 20px; }
1110+#doc3 .section.details .description dt { font-weight: bold; }
1111+#doc3 .section.details .description td { border:1px solid #ccc; margin:2px;padding:2px;}
1112+
1113+#doc3 .inheritance { padding:10px; background-color:#ECF0F6; border:1px solid #98AAB1; }
1114+#doc3 .inheritance h4 { font-size: 100%;}
1115+
1116+/* index page autocomplete */
1117+/*
1118+#propertysearch {;position:absolute;margin:1em;width:35em;}
1119+#searchinput {position:absolute;width:100%;height:1.4em;}
1120+#searchresults {position:absolute;top:1.7em;width:100%;}
1121+#searchresults .yui-ac-content {position:absolute;top:4px; left:0px; width:100%;height:20em;border:1px solid #aaa;background:#fff;overflow:auto;overflow-x:hidden;z-index:9050;}
1122+#searchresults .yui-ac-shadow {position:absolute;margin:.3em;width:100%;background:#a0a0a0;z-index:9049;}:
1123+#searchresults ul {padding:5px 0;width:100%;}
1124+#searchresults li {padding:0 5px;cursor:default;white-space:nowrap;}
1125+#searchresults li.yui-ac-highlight {background:#D1C6DA;}
1126+#searchresults li em { position:absolute; width:44%; overflow:hidden; color:#654D6C;}
1127+#searchresults li span { position:relative; left:46% }
1128+*/
1129+
1130+#propertysearch {
1131+ width: 25em;
1132+ position: absolute;
1133+ right: 5px;
1134+ bottom: -4px;
1135+}
1136+#searchinput {
1137+ width: 83%;
1138+ height: 1.4em;
1139+}
1140+#searchresults {
1141+ position: absolute;
1142+ right: 25em;
1143+ top: 25px;
1144+ height: 0;
1145+}
1146+#searchresults .yui-ac-content {
1147+ position: absolute;
1148+ top: 0;
1149+ left: 0;
1150+ width: 25em;
1151+ height: 20em;
1152+ border: 1px solid #98AAB1;
1153+ background: #fff;
1154+ overflow: auto;
1155+ overflow-x: hidden;
1156+ z-index: 9050;
1157+}
1158+#searchresults li.yui-ac-highlight {
1159+ background-color: #ECF0F6;
1160+}
1161+#searchresults li em {
1162+ width:44%;
1163+ overflow: hidden;
1164+ color: #98AAB1;
1165+}
1166+
1167+.deprecated, .private, .protected {
1168+ display: none;
1169+}
1170+
1171+body.show_deprecated .deprecated,
1172+body.show_private .private,
1173+body.show_protected .protected {
1174+ display: inherit;
1175+}
1176+
1177+#splash_classList ul {
1178+ margin: 1em;
1179+ margin-left:2em;
1180+}
1181+#splash_classList ul li {
1182+ list-style: disc outside;
1183+}
1184+
1185+
1186+/* source code view */
1187+#srcout {min-width: 580px; }
1188+*html #srcout { width: 100%; padding-bottom:1em; overflow-x:auto }
1189+
1190+.highlight .c { color: #60a0b0; font-style: italic } /* Comment */
1191+.highlight .err { border: 1px solid #FF0000 } /* Error */
1192+.highlight .k { color: #007020; font-weight: bold } /* Keyword */
1193+.highlight .o { color: #666666 } /* Operator */
1194+.highlight .cm { color: #60a0b0; font-style: italic } /* Comment.Multiline */
1195+.highlight .cp { color: #007020 } /* Comment.Preproc */
1196+.highlight .c1 { color: #60a0b0; font-style: italic } /* Comment.Single */
1197+.highlight .gd { color: #A00000 } /* Generic.Deleted */
1198+.highlight .ge { font-style: italic } /* Generic.Emph */
1199+.highlight .gr { color: #FF0000 } /* Generic.Error */
1200+.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
1201+.highlight .gi { color: #00A000 } /* Generic.Inserted */
1202+.highlight .go { color: #808080 } /* Generic.Output */
1203+.highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */
1204+.highlight .gs { font-weight: bold } /* Generic.Strong */
1205+.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
1206+.highlight .gt { color: #0040D0 } /* Generic.Traceback */
1207+.highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */
1208+.highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */
1209+.highlight .kp { color: #007020 } /* Keyword.Pseudo */
1210+.highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */
1211+.highlight .kt { color: #007020; font-weight: bold } /* Keyword.Type */
1212+.highlight .m { color: #40a070 } /* Literal.Number */
1213+.highlight .s { color: #4070a0 } /* Literal.String */
1214+.highlight .na { color: #4070a0 } /* Name.Attribute */
1215+.highlight .nb { color: #007020 } /* Name.Builtin */
1216+.highlight .nc { color: #0e84b5; font-weight: bold } /* Name.Class */
1217+.highlight .no { color: #60add5 } /* Name.Constant */
1218+.highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */
1219+.highlight .ni { color: #d55537; font-weight: bold } /* Name.Entity */
1220+.highlight .ne { color: #007020 } /* Name.Exception */
1221+.highlight .nf { color: #06287e } /* Name.Function */
1222+.highlight .nl { color: #002070; font-weight: bold } /* Name.Label */
1223+.highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */
1224+.highlight .nt { color: #062873; font-weight: bold } /* Name.Tag */
1225+.highlight .nv { color: #bb60d5 } /* Name.Variable */
1226+.highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */
1227+.highlight .mf { color: #40a070 } /* Literal.Number.Float */
1228+.highlight .mh { color: #40a070 } /* Literal.Number.Hex */
1229+.highlight .mi { color: #40a070 } /* Literal.Number.Integer */
1230+.highlight .mo { color: #40a070 } /* Literal.Number.Oct */
1231+.highlight .sb { color: #4070a0 } /* Literal.String.Backtick */
1232+.highlight .sc { color: #4070a0 } /* Literal.String.Char */
1233+.highlight .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */
1234+.highlight .s2 { color: #4070a0 } /* Literal.String.Double */
1235+.highlight .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */
1236+.highlight .sh { color: #4070a0 } /* Literal.String.Heredoc */
1237+.highlight .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */
1238+.highlight .sx { color: #c65d09 } /* Literal.String.Other */
1239+.highlight .sr { color: #235388 } /* Literal.String.Regex */
1240+.highlight .s1 { color: #4070a0 } /* Literal.String.Single */
1241+.highlight .ss { color: #517918 } /* Literal.String.Symbol */
1242+.highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */
1243+.highlight .vc { color: #bb60d5 } /* Name.Variable.Class */
1244+.highlight .vg { color: #bb60d5 } /* Name.Variable.Global */
1245+.highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */
1246+.highlight .il { color: #40a070 } /* Literal.Number.Integer.Long */
1247+
1248
1249=== added file 'jarmonbuild/yuidoc_template/assets/bg_hd.gif'
1250Binary files jarmonbuild/yuidoc_template/assets/bg_hd.gif 1970-01-01 00:00:00 +0000 and jarmonbuild/yuidoc_template/assets/bg_hd.gif 2010-08-22 21:23:38 +0000 differ
1251=== added file 'jarmonbuild/yuidoc_template/assets/reset-fonts-grids-min.css'
1252--- jarmonbuild/yuidoc_template/assets/reset-fonts-grids-min.css 1970-01-01 00:00:00 +0000
1253+++ jarmonbuild/yuidoc_template/assets/reset-fonts-grids-min.css 2010-08-22 21:23:38 +0000
1254@@ -0,0 +1,7 @@
1255+/*
1256+Copyright (c) 2008, Yahoo! Inc. All rights reserved.
1257+Code licensed under the BSD License:
1258+http://developer.yahoo.net/yui/license.txt
1259+version: 2.6.0
1260+*/
1261+html{color:#000;background:#FFF;}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{margin:0;padding:0;}table{border-collapse:collapse;border-spacing:0;}fieldset,img{border:0;}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;}li{list-style:none;}caption,th{text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;}q:before,q:after{content:'';}abbr,acronym{border:0;font-variant:normal;}sup{vertical-align:text-top;}sub{vertical-align:text-bottom;}input,textarea,select{font-family:inherit;font-size:inherit;font-weight:inherit;}input,textarea,select{*font-size:100%;}legend{color:#000;}del,ins{text-decoration:none;}body{font:13px/1.231 arial,helvetica,clean,sans-serif;*font-size:small;*font:x-small;}select,input,button,textarea{font:99% arial,helvetica,clean,sans-serif;}table{font-size:inherit;font:100%;}pre,code,kbd,samp,tt{font-family:monospace;*font-size:108%;line-height:100%;}body{text-align:center;}#ft{clear:both;}#doc,#doc2,#doc3,#doc4,.yui-t1,.yui-t2,.yui-t3,.yui-t4,.yui-t5,.yui-t6,.yui-t7{margin:auto;text-align:left;width:57.69em;*width:56.25em;min-width:750px;}#doc2{width:73.076em;*width:71.25em;}#doc3{margin:auto 10px;width:auto;}#doc4{width:74.923em;*width:73.05em;}.yui-b{position:relative;}.yui-b{_position:static;}#yui-main .yui-b{position:static;}#yui-main,.yui-g .yui-u .yui-g{width:100%;}{width:100%;}.yui-t1 #yui-main,.yui-t2 #yui-main,.yui-t3 #yui-main{float:right;margin-left:-25em;}.yui-t4 #yui-main,.yui-t5 #yui-main,.yui-t6 #yui-main{float:left;margin-right:-25em;}.yui-t1 .yui-b{float:left;width:12.30769em;*width:12.00em;}.yui-t1 #yui-main .yui-b{margin-left:13.30769em;*margin-left:13.05em;}.yui-t2 .yui-b{float:left;width:13.8461em;*width:13.50em;}.yui-t2 #yui-main .yui-b{margin-left:14.8461em;*margin-left:14.55em;}.yui-t3 .yui-b{float:left;width:23.0769em;*width:22.50em;}.yui-t3 #yui-main .yui-b{margin-left:24.0769em;*margin-left:23.62em;}.yui-t4 .yui-b{float:right;width:13.8456em;*width:13.50em;}.yui-t4 #yui-main .yui-b{margin-right:14.8456em;*margin-right:14.55em;}.yui-t5 .yui-b{float:right;width:18.4615em;*width:18.00em;}.yui-t5 #yui-main .yui-b{margin-right:19.4615em;*margin-right:19.125em;}.yui-t6 .yui-b{float:right;width:23.0769em;*width:22.50em;}.yui-t6 #yui-main .yui-b{margin-right:24.0769em;*margin-right:23.62em;}.yui-t7 #yui-main .yui-b{display:block;margin:0 0 1em 0;}#yui-main .yui-b{float:none;width:auto;}.yui-gb .yui-u,.yui-g .yui-gb .yui-u,.yui-gb .yui-g,.yui-gb .yui-gb,.yui-gb .yui-gc,.yui-gb .yui-gd,.yui-gb .yui-ge,.yui-gb .yui-gf,.yui-gc .yui-u,.yui-gc .yui-g,.yui-gd .yui-u{float:left;}.yui-g .yui-u,.yui-g .yui-g,.yui-g .yui-gb,.yui-g .yui-gc,.yui-g .yui-gd,.yui-g .yui-ge,.yui-g .yui-gf,.yui-gc .yui-u,.yui-gd .yui-g,.yui-g .yui-gc .yui-u,.yui-ge .yui-u,.yui-ge .yui-g,.yui-gf .yui-g,.yui-gf .yui-u{float:right;}.yui-g div.first,.yui-gb div.first,.yui-gc div.first,.yui-gd div.first,.yui-ge div.first,.yui-gf div.first,.yui-g .yui-gc div.first,.yui-g .yui-ge div.first,.yui-gc div.first div.first{float:left;}.yui-g .yui-u,.yui-g .yui-g,.yui-g .yui-gb,.yui-g .yui-gc,.yui-g .yui-gd,.yui-g .yui-ge,.yui-g .yui-gf{width:49.1%;}.yui-gb .yui-u,.yui-g .yui-gb .yui-u,.yui-gb .yui-g,.yui-gb .yui-gb,.yui-gb .yui-gc,.yui-gb .yui-gd,.yui-gb .yui-ge,.yui-gb .yui-gf,.yui-gc .yui-u,.yui-gc .yui-g,.yui-gd .yui-u{width:32%;margin-left:1.99%;}.yui-gb .yui-u{*margin-left:1.9%;*width:31.9%;}.yui-gc div.first,.yui-gd .yui-u{width:66%;}.yui-gd div.first{width:32%;}.yui-ge div.first,.yui-gf .yui-u{width:74.2%;}.yui-ge .yui-u,.yui-gf div.first{width:24%;}.yui-g .yui-gb div.first,.yui-gb div.first,.yui-gc div.first,.yui-gd div.first{margin-left:0;}.yui-g .yui-g .yui-u,.yui-gb .yui-g .yui-u,.yui-gc .yui-g .yui-u,.yui-gd .yui-g .yui-u,.yui-ge .yui-g .yui-u,.yui-gf .yui-g .yui-u{width:49%;*width:48.1%;*margin-left:0;}.yui-g .yui-g .yui-u{width:48.1%;}.yui-g .yui-gb div.first,.yui-gb .yui-gb div.first{*margin-right:0;*width:32%;_width:31.7%;}.yui-g .yui-gc div.first,.yui-gd .yui-g{width:66%;}.yui-gb .yui-g div.first{*margin-right:4%;_margin-right:1.3%;}.yui-gb .yui-gc div.first,.yui-gb .yui-gd div.first{*margin-right:0;}.yui-gb .yui-gb .yui-u,.yui-gb .yui-gc .yui-u{*margin-left:1.8%;_margin-left:4%;}.yui-g .yui-gb .yui-u{_margin-left:1.0%;}.yui-gb .yui-gd .yui-u{*width:66%;_width:61.2%;}.yui-gb .yui-gd div.first{*width:31%;_width:29.5%;}.yui-g .yui-gc .yui-u,.yui-gb .yui-gc .yui-u{width:32%;_float:right;margin-right:0;_margin-left:0;}.yui-gb .yui-gc div.first{width:66%;*float:left;*margin-left:0;}.yui-gb .yui-ge .yui-u,.yui-gb .yui-gf .yui-u{margin:0;}.yui-gb .yui-gb .yui-u{_margin-left:.7%;}.yui-gb .yui-g div.first,.yui-gb .yui-gb div.first{*margin-left:0;}.yui-gc .yui-g .yui-u,.yui-gd .yui-g .yui-u{*width:48.1%;*margin-left:0;} .yui-gb .yui-gd div.first{width:32%;}.yui-g .yui-gd div.first{_width:29.9%;}.yui-ge .yui-g{width:24%;}.yui-gf .yui-g{width:74.2%;}.yui-gb .yui-ge div.yui-u,.yui-gb .yui-gf div.yui-u{float:right;}.yui-gb .yui-ge div.first,.yui-gb .yui-gf div.first{float:left;}.yui-gb .yui-ge .yui-u,.yui-gb .yui-gf div.first{*width:24%;_width:20%;}.yui-gb .yui-ge div.first,.yui-gb .yui-gf .yui-u{*width:73.5%;_width:65.5%;}.yui-ge div.first .yui-gd .yui-u{width:65%;}.yui-ge div.first .yui-gd div.first{width:32%;}#bd:after,.yui-g:after,.yui-gb:after,.yui-gc:after,.yui-gd:after,.yui-ge:after,.yui-gf:after{content:".";display:block;height:0;clear:both;visibility:hidden;}#bd,.yui-g,.yui-gb,.yui-gc,.yui-gd,.yui-ge,.yui-gf{zoom:1;}
1262
1263=== added file 'jarmonbuild/yuidoc_template/classmap.tmpl'
1264--- jarmonbuild/yuidoc_template/classmap.tmpl 1970-01-01 00:00:00 +0000
1265+++ jarmonbuild/yuidoc_template/classmap.tmpl 2010-08-22 21:23:38 +0000
1266@@ -0,0 +1,15 @@
1267+YAHOO.env.classMap = ${pkgmap};
1268+
1269+YAHOO.env.resolveClass = function(className) {
1270+ var a=className.split('.'), ns=YAHOO.env.classMap;
1271+
1272+ for (var i=0; i<a.length; i=i+1) {
1273+ if (ns[a[i]]) {
1274+ ns = ns[a[i]];
1275+ } else {
1276+ return null;
1277+ }
1278+ }
1279+
1280+ return ns;
1281+};
1282
1283=== added file 'jarmonbuild/yuidoc_template/index.tmpl'
1284--- jarmonbuild/yuidoc_template/index.tmpl 1970-01-01 00:00:00 +0000
1285+++ jarmonbuild/yuidoc_template/index.tmpl 2010-08-22 21:23:38 +0000
1286@@ -0,0 +1,9 @@
1287+<html>
1288+<head>
1289+ <script type="text/javascript">
1290+ document.location.replace("${cleansedmodulename}.html");
1291+ </script>
1292+</head>
1293+<body>
1294+</body>
1295+</html>
1296
1297=== added file 'jarmonbuild/yuidoc_template/main.tmpl'
1298--- jarmonbuild/yuidoc_template/main.tmpl 1970-01-01 00:00:00 +0000
1299+++ jarmonbuild/yuidoc_template/main.tmpl 2010-08-22 21:23:38 +0000
1300@@ -0,0 +1,685 @@
1301+#encoding UTF-8
1302+#filter EncodeUnicode
1303+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
1304+<html xmlns:yui="http://yuilibrary.com/rdf/1.0/yui.rdf#">
1305+<head>
1306+ <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
1307+ <title>API: $modulename #if $classname# $classname #end if# #if $filename# $filename #end if#</title>
1308+
1309+ <link rel="stylesheet" type="text/css" href="assets/reset-fonts-grids-min.css" />
1310+ <link rel="stylesheet" type="text/css" href="assets/api.css" />
1311+
1312+ <script type="text/javascript" src="assets/api-js"></script>
1313+ <script type="text/javascript" src="assets/ac-js"></script>
1314+</head>
1315+
1316+<body id="yahoo-com">
1317+
1318+<div id="doc3" class="yui-t2">
1319+ <div id="hd">
1320+ <h1><a href="$projecturl" title="$projectname">$projectname v$version API Documentation</a></h1>
1321+ <h3>$moduletitle&nbsp; <span class="subtitle">$version</span></h3>
1322+ <a href="./index.html" title="$projectname">$projectname</a>
1323+ #if $modulename
1324+ &gt; <a href="./${cleansedmodulename}.html" title="$modulename">$modulename</a>
1325+ #if $classname# &gt; $classname #end if#
1326+ #if $filename# &gt; $filename (source view) #end if#
1327+ #end if
1328+ <form onsubmit="return false">
1329+ <div id="propertysearch">
1330+ Search: <input autocomplete="off" id="searchinput" />
1331+ <div id="searchresults">
1332+ &nbsp;
1333+ </div>
1334+ </div>
1335+ </form>
1336+ </div>
1337+
1338+ <div id="bd">
1339+ <div id="yui-main">
1340+ <div class="yui-b">
1341+ <form action="#" name="yui-classopts-form" method="get" id="yui-classopts-form">
1342+ <fieldset>
1343+ <legend>Filters</legend>
1344+ <span class="classopts"><input type="checkbox" name="show_private" id="show_private" /> <label for="show_private">Show Private</label></span>
1345+ <span class="classopts"><input type="checkbox" name="show_protected" id="show_protected" /> <label for="show_protected">Show Protected</label></span>
1346+ <span class="classopts"><input type="checkbox" name="show_deprecated" id="show_deprecated" /> <label for="show_deprecated">Show Deprecated</label></span>
1347+ </fieldset>
1348+ </form>
1349+ #if $index
1350+
1351+ <div class="summary description">
1352+ This is the API documentation for
1353+ <a href="$projecturl">$projectname</a>.
1354+ <p>Choose a module name from the list for more information.</p>
1355+ </div>
1356+
1357+ #end if
1358+
1359+ #if $filename
1360+ <div id="srcout">
1361+ <style>
1362+ #doc3 .classopts { display:none; }
1363+ </style>
1364+ #include raw $filepath_highlighted
1365+ </div>
1366+ #else if $classname
1367+ <h2>
1368+ #if $access#<code>$access</code>#end if#
1369+
1370+ #if $static#<code>$static</code>#end if#
1371+ #if $final#<code>$final</code>#end if#
1372+ Class <b property="yui:name">$classname</b>
1373+ <span class="extends">
1374+ #if $extends
1375+ - extends <a href="${extends}.html" title="$extends">$extends</a>
1376+ #end if
1377+ </span>
1378+
1379+ #if $uses
1380+ <span class="extends" rel="yui:extends">
1381+ - uses
1382+ #set $i=0
1383+ #for $provider in $uses##if $i > 0#, #end if#
1384+ <span rel="extend" resource="${provider}.html">
1385+ <a href="${provider}.html" property="yui:name" title="$provider">$provider</a>#set $i=$i+1#
1386+ </span>
1387+ #end for#
1388+
1389+ </span>
1390+ #end if
1391+ </h2>
1392+ <!-- class tree goes here -->
1393+
1394+ #if $subclasses
1395+ <dl class="subclasses" rel="yui:subclasses">
1396+ <dt>Known Subclasses:</dt>
1397+ <dd>
1398+ #for $subclass in $subclasses
1399+ <span rel="yui:subclass" resource="${subclass}.html">
1400+ <a href="${subclass}.html" property="yui:name" title="$subclass">$subclass</a>
1401+ </span>
1402+ #end for
1403+ </dd>
1404+ </dl>
1405+ #end if
1406+
1407+ #if $deprecated
1408+ <div class="deprecated"><strong>Deprecated:</strong> $deprecated</div>
1409+ #end if
1410+
1411+ #if $see
1412+ <div class="deprecated"><strong>See also:</strong> $see</div>
1413+ #end if
1414+
1415+ <div class="summary description" property="yui:description">
1416+ $description
1417+ </div>
1418+
1419+ #if $constructor
1420+ <div class="section constructor details" rel="yui:constructor" resource="#constructor">
1421+ <h3 id="constructor">Constructor</h3>
1422+ <div class="content">
1423+ <div class="detail">
1424+ <strong property="yui:name">$classname</strong>
1425+ <code>
1426+ (
1427+ #if $constructor.params
1428+ #set $i=0
1429+ #set $current=""
1430+
1431+ #for $param in $constructor.params#
1432+ #if $current != $param.name
1433+ #if $i > 0#, #end if#
1434+ #set $i = $i + 1
1435+ #set $current = $param.name
1436+ $param.name
1437+ #end if
1438+ #end for
1439+ #end if
1440+ )
1441+ </code>
1442+ <div class="description">
1443+ #if $constructor.params
1444+ <dl rel="yui:parameters">
1445+ <dt>Parameters:</dt>
1446+ #for $param in $constructor.params
1447+ <dd rel="yui:parameter">
1448+ <code><span property="yui:name">$param.name</span>
1449+ &lt;<span property="yui:type">$param.type</span>&gt;
1450+ </code>
1451+ <span property="yui:description">$param.description</span>
1452+ </dd>
1453+ #end for
1454+ </dl>
1455+ #end if
1456+
1457+ #if $constructor.return
1458+ <dl>
1459+ <dt>Returns:</dt>
1460+ <dd property="yui:return">
1461+ $constructor.return
1462+ </dd>
1463+ </dl>
1464+ #end if
1465+
1466+ </div>
1467+ </div>
1468+ </div>
1469+ </div>
1470+ #end if
1471+
1472+ <div rel="yui:properties" resource="#properties">
1473+ #if $properties
1474+ <div class="section field details">
1475+ <h3 id="properties">Properties</h3>
1476+ <div class="content">
1477+ #for $property in $properties
1478+ <div class="$property.access#if $property.deprecated# deprecated#end if#" rel="yui:property" resource="#property_$property.name">
1479+ <h4><a name="property_$property.name" property="yui:name">$property.name</a>
1480+ - <code>#if $property.access#$property.access #end if##if $property.static#$property.static #end if##if $property.final#$property.final #end if#<span property="yui:type">$property.type</span></code>
1481+ </h4>
1482+ <div class="detail">
1483+ <div class="description" property="yui:description">
1484+ $property.description
1485+ </div>
1486+ </div>
1487+
1488+
1489+ #if $property.default
1490+ <div class="default" property="yui:defaultValue">
1491+ Default Value: $property.default
1492+ </div>
1493+ #end if
1494+
1495+ #if $property.deprecated
1496+ <div class="deprecated" property="yui:deprecated">
1497+ <strong>Deprecated:</strong> $property.deprecated
1498+ </div>
1499+ #end if
1500+
1501+ <hr />
1502+ </div>
1503+ #end for
1504+ </div>
1505+ </div>
1506+ #end if
1507+
1508+ #if $inherited.properties
1509+ <div rel="yui:inheritance">
1510+ #for $superclassname in $inherited.properties
1511+ <div class="section field inheritance" rel="yui:superclass" resource="${superclassname}.html">
1512+ <h4>Properties inherited from <a href="${superclassname}.html" property="yui:name" title="$superclassname">$superclassname</a>:</h4>
1513+ <div class="content" rel="yui:properties">
1514+ <code>
1515+ #set i=0
1516+ #set l=len($inherited.properties[$superclassname])-1
1517+ #for $prop in $inherited.properties[$superclassname]#
1518+ <span rel="yui:property" resource="${superclassname}.html#property_$prop.name">
1519+ <a class="$prop.access#if $prop.deprecated# deprecated#end if#" href="${superclassname}.html#property_$prop.name" property="yui:name" title="$prop.name">$prop.name</a>#if $i<$l#<span class="$prop.access#if $prop.deprecated# deprecated#end if#">,</span>#end if#
1520+ </span>
1521+ #set i=i+1
1522+ #end for#
1523+ </code>
1524+ </div>
1525+ </div>
1526+ #end for
1527+ </div>
1528+ #end if
1529+ </div>
1530+
1531+ <div rel="yui:methods" resource="#methods">
1532+ #if $methods
1533+ <div class="section method details">
1534+ <h3 id="methods">Methods</h3>
1535+ <div class="content">
1536+ #for $method in $methods
1537+ <div class="$method.access#if $method.deprecated# deprecated#end if#" rel="yui:method" resource="#method_$method.name">
1538+ <h4>
1539+ <a name="method_$method.name">$method.name</a></h4>
1540+ <div class="detail" >
1541+ <code>
1542+ #if $method.access# $method.access #end if#
1543+ #if $method.static# $method.static #end if#
1544+ #if $method.final# $method.final #end if#
1545+ $method.return.type
1546+ <strong property="yui:name">$method.name</strong>
1547+ (
1548+ #if $method.params
1549+ #set $i=0
1550+ #set $current = ""
1551+ #for $param in $method.params#
1552+ #if $current != $param.name
1553+ #if $i > 0#, #end if#
1554+ #set $i = $i + 1
1555+ #set $current = $param.name
1556+ $param.name
1557+ #end if#
1558+ #end for#
1559+ #end if
1560+ )
1561+ </code>
1562+
1563+ <div class="description" property="yui:description">
1564+ $method.description
1565+ </div>
1566+
1567+ <div class="description">
1568+
1569+ #if $method.params
1570+ <dl rel="yui:parameters">
1571+ <dt>Parameters:</dt>
1572+ #for $param in $method.params
1573+ <dd rel="yui:parameter">
1574+ <code><span property="yui:name">$param.name</span>
1575+ &lt;<span property="yui:type">$param.type</span>&gt;
1576+ </code>
1577+ <span property="yui:description">$param.description</span>
1578+ </dd>
1579+ #end for
1580+ </dl>
1581+ #end if
1582+
1583+ #if $method.return.type
1584+ <dl>
1585+ <dt>Returns:
1586+ <code property="yui:return">
1587+ $method.return.type
1588+ </code></dt>
1589+ <dd property="yui:returnInfo">$method.return.description</dd>
1590+ </dl>
1591+ #end if
1592+
1593+ #if $method.chainable
1594+ <div class="chainable">
1595+ <strong>Chainable:</strong> This method is chainable.
1596+ </div>
1597+ #end if
1598+
1599+
1600+ #if $method.deprecated
1601+ <div class="deprecated">
1602+ <strong>Deprecated</strong> $method.deprecated
1603+ </div>
1604+ #end if
1605+
1606+ </div>
1607+
1608+ </div>
1609+ <hr />
1610+ </div>
1611+ #end for
1612+ </div>
1613+ </div>
1614+ #end if
1615+
1616+ #if $inherited.methods
1617+ <div rel="yui:inheritance">
1618+ #for $superclassname in $inherited.methods
1619+ <div class="section field inheritance" rel="yui:superclass" resource="${superclassname}.html">
1620+ <h4>Methods inherited from <a href="${superclassname}.html" property="yui:name" title="$superclassname">$superclassname</a>:</h4>
1621+ <div class="content" rel="yui:methods">
1622+ <code>
1623+ #set i=0
1624+ #set l=len($inherited.methods[$superclassname])-1
1625+ #for $method in $inherited.methods[$superclassname]
1626+ <span rel="yui:method" resource="${superclassname}.html#method_$method.name">
1627+ <a class="$method.access#if $method.deprecated# deprecated#end if#" href="${superclassname}.html#method_$method.name" property="yui:name" title="$method.name">$method.name</a>#if $i<$l#<span class="$method.access#if $method.deprecated# deprecated#end if#">,</span>#end if#
1628+ </span>
1629+ #set i=i+1
1630+ #end for
1631+ </code>
1632+ </div>
1633+ </div>
1634+ #end for
1635+ </div>
1636+ #end if
1637+ </div>
1638+
1639+ <div rel="yui:events" resource="#events">
1640+ #if $events
1641+ <div class="section method details">
1642+ <h3 id="events">Events</h3>
1643+ <div class="content">
1644+ #for $event in $events
1645+ <div class="$event.access#if $event.deprecated# deprecated#end if#" rel="yui:event" resource="#event_$event.name">
1646+ <h4>
1647+ <a name="event_$event.name">$event.name</a></h4>
1648+ <div class="detail">
1649+ <code>
1650+ #if $event.access# $event.access #end if#
1651+ #if $event.static# $event.static #end if#
1652+ #if $event.final# $event.final #end if#
1653+ <strong property="yui:name">$event.name</strong>
1654+
1655+ (
1656+ #if $event.params
1657+ #set $i=0
1658+ #set $current = ""
1659+ #for $param in $event.params#
1660+ #if $current != $param.name
1661+ #if $i > 0#, #end if#
1662+ #set $i = $i + 1
1663+ #set $current = $param.name
1664+ $param.name
1665+ #end if#
1666+ #end for#
1667+ #end if
1668+ )
1669+
1670+ </code>
1671+
1672+ <div class="description" property="yui:description">
1673+ $event.description
1674+ </div>
1675+
1676+ <div class="description">
1677+
1678+
1679+ #if $event.params
1680+ <dl rel="yui:parameters">
1681+ <dt>Parameters:</dt>
1682+ #for $param in $event.params
1683+ <dd rel="yui:parameter">
1684+ <code><span property="yui:name">$param.name</span>
1685+ &lt;<span property="yui:type">$param.type</span>&gt;
1686+ </code>
1687+ <span property="yui:description">$param.description</span>
1688+ </dd>
1689+
1690+ #end for
1691+ </dl>
1692+ #end if
1693+
1694+ #if $event.bubbles
1695+ <div class="bubbles">
1696+ <strong>Bubbles:</strong> This event bubbles to <a href="${event.bubbles}.html" title="$event.bubbles">$event.bubbles</a>.
1697+ </div>
1698+ #end if
1699+ #if $event.preventable
1700+ <div class="preventable">
1701+ <strong>Preventable:</strong> This event is preventable by method: $event.preventable.
1702+ </div>
1703+ #end if
1704+
1705+ #if $event.deprecated
1706+ <div class="deprecated">
1707+ <strong>Deprecated</strong> $event.deprecated
1708+ </div>
1709+ #end if
1710+ </div>
1711+
1712+ </div>
1713+ <hr />
1714+ </div>
1715+ #end for
1716+ </div>
1717+ </div>
1718+ #end if
1719+
1720+
1721+ #if $inherited.events
1722+ <div rel="yui:inheritance">
1723+ #for $superclassname in $inherited.events
1724+ <div class="section field inheritance" rel="yui:superclass" resource="${superclassname}.html">
1725+ <h4>Events inherited from <a href="${superclassname}.html" property="yui:name" title="$superclassname">$superclassname</a>:</h4>
1726+ <div class="content" rel="yui:events">
1727+ <code>
1728+ #set i=0
1729+ #set l=len($inherited.methods[$superclassname])-1
1730+ #for $event in $inherited.events[$superclassname]
1731+ #set i=i+1
1732+ <span rel="yui:event" resource="${superclassname}.html#event_$event.name">
1733+ <a class="$event.access#if $event.deprecated# deprecated#end if#" href="${superclassname}.html#event_$event.name" property="yui:name" title="$event.name">$event.name</a>#if $i<$l#<span class="$event.access#if $event.deprecated# deprecated#end if#">,</span>#end if##set i=i+1#
1734+ </span>
1735+ #end for#
1736+ </code>
1737+ </div>
1738+ </div>
1739+ #end for
1740+ </div>
1741+ #end if
1742+ </div>
1743+
1744+ <div rel="yui:attributes" resource="#configattributes">
1745+ #if $configs
1746+ <div class="section field details">
1747+ <h3 id="configattributes">Configuration Attributes</h3>
1748+ <div class="content">
1749+ #for $config in $configs
1750+ <div class="$config.access#if $config.deprecated# deprecated#end if#" rel="yui:attribute" resource="#config_$config.name">
1751+ <h4><a name="config_$config.name">$config.name</a>
1752+ <code>- #if $config.access#$config.access #end if##if $config.static#$config.static #end if##if $config.writeonce#$config.writeonce #end if##if $config.final#$config.final #end if#<span property="yui:type">$config.type</span></code>
1753+ </h4>
1754+ <div class="detail">
1755+ <div class="description" property="yui:description">
1756+ $config.description
1757+ </div>
1758+ </div>
1759+
1760+ #if $config.deprecated
1761+ <div class="deprecated">
1762+ <strong>Deprecated</strong> $config.deprecated
1763+ </div>
1764+ #end if
1765+
1766+ #if $config.default
1767+ <div class="default">
1768+ Default Value: $config.default
1769+ </div>
1770+ #end if
1771+
1772+ <hr />
1773+ </div>
1774+ #end for
1775+
1776+ </div>
1777+ </div>
1778+ #end if
1779+
1780+ #if $inherited.configs
1781+ <div rel="yui:inheritance">
1782+ #for $superclassname in $inherited.configs
1783+ <div class="section field inheritance" rel="yui:superclass" resource="${superclassname}.html">
1784+ <h4>Configuration attributes inherited from <a href="${superclassname}.html" property="yui:name" title="$superclassname">$superclassname</a>:</h4>
1785+ <div class="content" rel="yui:attributes">
1786+ <code>
1787+ #set i=0
1788+ #set l=len($inherited.methods[$superclassname])-1
1789+ #for $config in $inherited.configs[$superclassname]
1790+ #set i=i+1
1791+ <span rel="yui:attribute" resource="${superclassname}.html#config_$config.name">
1792+ <a class="$config.access#if $config.deprecated# deprecated#end if#" href="${superclassname}.html#config_$config.name" property="yui:name" title="$config.name">$config.name</a>#if $i<$l#<span class="$config.access#if $config.deprecated# deprecated#end if#">,</span>#end if#
1793+ </span>
1794+ #set i=i+1
1795+ #end for#
1796+ </code>
1797+ </div>
1798+ </div>
1799+ #end for
1800+ </div>
1801+ #end if
1802+ </div>
1803+
1804+ #else if $modulename
1805+
1806+ <h3>Module: $modulename
1807+
1808+ #if $beta
1809+ <span class="description"><em>Beta</em></span>
1810+ #end if
1811+
1812+ #if $experimental
1813+ <span class="description"><em>Experimental</em></span>
1814+ #end if
1815+
1816+ </h3>
1817+ <div class="description summary">
1818+ $moduledesc
1819+ </div>
1820+
1821+
1822+ #if $requires
1823+ <div class="content">
1824+ Requires: $requires
1825+ </div>
1826+ #end if
1827+ #if $optional
1828+ <div class="content">
1829+ Optional: $optional
1830+ </div>
1831+ #end if
1832+
1833+ <div class="yui-gc">
1834+ <div class="yui-u first">
1835+
1836+ #if $classnames
1837+ <p>This module contains the following classes:</p>
1838+ <script>
1839+ //var YUI_CLASS_LIST = $classList;
1840+ </script>
1841+ <div id="splash_classList">
1842+ <ul>
1843+ #set $counter = 0
1844+ #for $classNames in $classList_raw
1845+ <li><a href="${classNames.name}.html" title="$classNames.name" id="class_${counter}">$classNames.guessedname</a></li>
1846+ #set $counter = $counter + 1
1847+ #end for
1848+ </ul>
1849+ </div>
1850+ #end if
1851+ </div>
1852+ <div class="yui-u">
1853+ #set count = 0;
1854+ #for $info in $submodules
1855+ #set count = count + 1
1856+ #end for
1857+ #if count != 0
1858+ <div class="submodules">
1859+ <h4>Submodules:</h4>
1860+ <dl>
1861+ #for $info in $submodules
1862+ <dt><code><a href="${$subdata[$info].name}.html" title="$info">$info</a></code></dt>
1863+ <dd>$subdata[$info].description</dd>
1864+ #end for
1865+ </dl>
1866+ </div>
1867+ #end if
1868+
1869+ </div>
1870+ </div>
1871+
1872+ #end if
1873+ </div>
1874+ </div>
1875+ <div class="yui-b">
1876+ <div class="nav">
1877+
1878+ #if $modulenames
1879+ <div id="moduleList" class="module">
1880+ <h4>Modules</h4>
1881+ <ul class="content">
1882+ #for $moduledef in $modulenames
1883+ #set $css = ""
1884+ #if $moduledef == $modulename
1885+ #set $css = "selected"
1886+ #end if
1887+ <li class="$css"><a href="module_${moduledef}.html" title="$moduledef">$moduledef</a></li>
1888+ #end for
1889+ </ul>
1890+ </div>
1891+ #end if
1892+
1893+ #if $classnames
1894+ <div id="classList" class="module">
1895+ <h4>Classes</h4>
1896+ <ul class="content">
1897+ #for $classdef in $classnames
1898+ #set $css = ""
1899+ #if $classdef == $classname
1900+ #set $css = "selected"
1901+ #end if
1902+ <li class="$css"><a href="${classdef}.html" title="$classdef">$classdef</a></li>
1903+ #end for
1904+ </ul>
1905+ </div>
1906+ #end if
1907+
1908+ #if $filenames
1909+ <div id="fileList" class="module">
1910+ <h4>Files</h4>
1911+ <ul class="content">
1912+ #for $filedef in $filenames
1913+ #set $css = ""
1914+ #if $filedef == $filename
1915+ #set $css = "selected"
1916+ #end if
1917+ <li class="$css"><a href="${filedef}.html" title="$filedef">$filedef</a></li>
1918+ #end for
1919+ </ul>
1920+ </div>
1921+ #end if
1922+
1923+ #if $properties
1924+ <div id="propertyList" class="module">
1925+ <h4>Properties</h4>
1926+ <ul class="content">
1927+ #for $prop in $properties
1928+ <li class="${prop.access}#if $prop.deprecated# deprecated#end if#"><a href="#property_${prop.name}" title="$prop.name">$prop.name</a></li>
1929+ #end for
1930+ </ul>
1931+ </div>
1932+ #end if
1933+
1934+ #if $methods
1935+ <div id="methodsList" class="module">
1936+ <h4>Methods</h4>
1937+ <ul class="content">
1938+ #for $method in $methods
1939+ <li class="${method.access}#if $method.deprecated# deprecated#end if#"><a href="#method_${method.name}" title="$method.name">$method.name</a></li>
1940+ #end for
1941+ </ul>
1942+ </div>
1943+ #end if
1944+
1945+ #if $events
1946+ <div id="eventsList" class="module">
1947+ <h4>Events</h4>
1948+ <ul class="content">
1949+ #for $event in $events
1950+ <li class="${event.access}#if $event.deprecated# deprecated#end if#"><a href="#event_${event.name}" title="$event.name">$event.name</a></li>
1951+ #end for
1952+ </ul>
1953+ </div>
1954+ #end if
1955+
1956+ #if $configs
1957+ <div id="configList" class="module">
1958+ <h4>Configuration Attributes</h4>
1959+ <ul class="content">
1960+ #for $config in $configs
1961+ <li class="${config.access}#if $config.deprecated# deprecated#end if#"><a href="#config_${config.name}" title="$config.name">$config.name</a></li>
1962+ #end for
1963+ </ul>
1964+ </div>
1965+ #end if
1966+
1967+ </div>
1968+ </div>
1969+ </div>
1970+ <div id="ft">
1971+ <hr />
1972+ Copyright &copy; $year Richard Wall. All rights reserved.
1973+ </div>
1974+</div>
1975+<script type="text/javascript">
1976+ ALL_YUI_PROPS = $allprops;
1977+</script>
1978+#if $ydn
1979+<!--MyBlogLog instrumentation-->
1980+<script type="text/javascript"
1981+src="http://track2.mybloglog.com/js/jsserv.php?mblID=2007020704011645"></script>
1982+#end if
1983+</body>
1984+</html>
1985+#end filter

Subscribers

People subscribed via source and target branches

to all changes: