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
=== modified file 'README'
--- README 2010-06-23 22:24:21 +0000
+++ README 2010-08-22 21:23:38 +0000
@@ -1,15 +1,19 @@
1Jarmon 0.0.11Jarmon 10.7
22
33
4What is this?4What is this?
5=============5=============
6Wrappers and convenience fuctions for working with the javascriptRRD, Flot and6jarmon.js contains various wrappers and convenience fuctions for working with
7Collectd.7the javascriptRRD, Flot and RRD files generated by eg Collectd.
8Additionally, there is a fully working example which demonstrates how to use
9jarmon.js and how to integrate it with other javascript components - such as
10calendar date pickers etc.
811
912
10Debian / Ubuntu Quick Start13Debian / Ubuntu Quick Start
11===========================14===========================
12To get this demo working, you will need to serve this page from a15There is a demo html page in the docs/examples folder.
16To get this demo working, you will need to serve that page from a
13local webserver and serve the folder that contains your RRD files.17local webserver and serve the folder that contains your RRD files.
1418
15This demo is designed to work with the RRD files generated by19This demo is designed to work with the RRD files generated by
@@ -25,10 +29,20 @@
25$ cd trunk29$ cd trunk
2630
27# Link to the collectd rrd folder31# Link to the collectd rrd folder
28$ ln -s /var/lib/collectd/rrd/localhost data32$ ln -s /var/lib/collectd/rrd/localhost docs/examples/data
2933
30# Start a local webserver - here we use Twisted, but there are other web server34# Start a local webserver - here we use Twisted, but there are other web server
31# config examples in docs/35# config examples in docs/
32$ aptitude install twisted36$ aptitude install twisted
33$ twistd -n web --port 8080 --path .37$ twistd -n web --port 8080 --path .
3438
39$ firefox http://localhost:8080/docs/examples/index.html
40
41
42Next Steps
43==========
44Examine:
45 * docs/examples/index.html
46 * docs/examples/jarmon_example_recipes.js
47
48...for examples of how to use jarmon.js then add your own chart recipes.
3549
=== added directory 'bin'
=== added file 'bin/build'
--- bin/build 1970-01-01 00:00:00 +0000
+++ bin/build 2010-08-22 21:23:38 +0000
@@ -0,0 +1,10 @@
1#!/usr/bin/env python
2import os
3import sys
4
5# Add the current branch to the python path
6sys.path.append(os.path.join(os.path.dirname(__file__), '..'))
7
8from jarmonbuild.commands import main
9
10raise SystemExit(main())
011
=== added directory 'docs/apidocs'
=== added directory 'docs/examples'
=== renamed directory 'assets' => 'docs/examples/assets'
=== renamed file 'index.html' => 'docs/examples/index.html'
--- index.html 2010-08-01 11:12:55 +0000
+++ docs/examples/index.html 2010-08-22 21:23:38 +0000
@@ -13,8 +13,8 @@
1313
14 <script type="text/javascript" src="assets/js/dependencies.js"></script>14 <script type="text/javascript" src="assets/js/dependencies.js"></script>
1515
16 <script type="text/javascript" src="jarmon.js"></script>16 <script type="text/javascript" src="../../jarmon/jarmon.js"></script>
17 <script type="text/javascript" src="docs/jarmon_example_recipes.js"></script>17 <script type="text/javascript" src="jarmon_example_recipes.js"></script>
18 <script type="text/javascript">18 <script type="text/javascript">
19 // Recipes for the charts on this page19 // Recipes for the charts on this page
2020
2121
=== renamed file 'docs/jarmon_example_recipes.js' => 'docs/examples/jarmon_example_recipes.js'
=== renamed file 'docs/nginx.conf.example' => 'docs/examples/nginx.conf.example'
--- docs/nginx.conf.example 2010-06-23 22:24:21 +0000
+++ docs/examples/nginx.conf.example 2010-08-22 21:23:38 +0000
@@ -56,9 +56,10 @@
56 location / {56 location / {
57 root .;57 root .;
58 index index.html;58 index index.html;
59 autoindex on;
59 }60 }
6061
61 location /data {62 location /docs/examples/data {
62 alias /var/lib/collectd/rrd/aziz;63 alias /var/lib/collectd/rrd/aziz;
63 autoindex on;64 autoindex on;
64 }65 }
6566
=== modified file 'docs/index.html'
--- docs/index.html 2010-08-03 23:48:15 +0000
+++ docs/index.html 2010-08-22 21:23:38 +0000
@@ -8,6 +8,8 @@
8 <h2>Contents</h2>8 <h2>Contents</h2>
9 <ol>9 <ol>
10 <li><a href="#browser-compatibility">Browser Compatibility</a></li>10 <li><a href="#browser-compatibility">Browser Compatibility</a></li>
11 <li><a href="#api-documentation">API documentation</a></li>
12 <li><a href="#release-process">Release process and tools</a></li>
11 </ol>13 </ol>
12 <h2 id="browser-compatibility">Browser Compatibility</h2>14 <h2 id="browser-compatibility">Browser Compatibility</h2>
13 <p>Jarmon depends upon the <a href="http://code.google.com/p/flot/">Flot15 <p>Jarmon depends upon the <a href="http://code.google.com/p/flot/">Flot
@@ -77,3 +79,16 @@
77 </dl>79 </dl>
78 </dl>80 </dl>
7981
82 <h2 id="api-documentation">API Documentation</h2>
83 <p>Jarmon includes <a href="apidocs/index.html">comprehensive API
84 documentation</a>
85 <p>This API documentation is generated automatically by the release command,
86 but you can also build it yourself by issuing the
87 <code>./bin/build apidoc</code> command from within a Jarmon source tree.
88 The documentation will be saved in a build subfolder.</p>
89
90 <h2 id="release-process">Release Process and Tools</h2>
91 <p>Jarmon includes tools to automate source archive releases. First check
92 out the source code, then issue the
93 <code>./bin/build -V 10.8 release</code> command from within the source
94 tree.</p>
8095
=== added directory 'jarmon'
=== renamed file 'jarmon.js' => 'jarmon/jarmon.js'
--- jarmon.js 2010-08-01 11:12:55 +0000
+++ jarmon/jarmon.js 2010-08-22 21:23:38 +0000
@@ -1,8 +1,9 @@
1/* Copyright (c) 2010 Richard Wall <richard (at) the-moon.net>1/**
2 * Copyright (c) 2010 Richard Wall <richard (at) the-moon.net>
2 * See LICENSE for details.3 * See LICENSE for details.
3 *4 *
4 * Wrappers and convenience fuctions for working with the javascriptRRD, jQuery,5 * Wrappers and convenience fuctions for working with the javascriptRRD, jQuery,
5 * and flot charting packages.6 * and Flot charting packages.
6 *7 *
7 * Designed to work well with the RRD files generated by Collectd:8 * Designed to work well with the RRD files generated by Collectd:
8 * - http://collectd.org/9 * - http://collectd.org/
@@ -12,20 +13,29 @@
12 * - jQuery: http://jquery.com/13 * - jQuery: http://jquery.com/
13 * - Flot: http://code.google.com/p/flot/14 * - Flot: http://code.google.com/p/flot/
14 * - MochiKit.Async: http://www.mochikit.com/15 * - MochiKit.Async: http://www.mochikit.com/
16 *
17 * @module jarmon
15 */18 */
1619
20/**
21 * A namespace for Jarmon
22 *
23 * @class jarmon
24 * @static
25 */
17if(typeof jarmon == 'undefined') {26if(typeof jarmon == 'undefined') {
18 var jarmon = {};27 var jarmon = {};
19}28}
2029
21/**
22 * Download a binary file asynchronously using the jQuery.ajax function
23 *
24 * @param url: The url of the object to be downloaded
25 * @return: A I{MochiKit.Async.Deferred} which will callback with an instance of
26 * I{javascriptrrd.BinaryFile}
27 **/
28jarmon.downloadBinary = function(url) {30jarmon.downloadBinary = function(url) {
31 /**
32 * Download a binary file asynchronously using the jQuery.ajax function
33 *
34 * @method downloadBinary
35 * @param url {String} The url of the object to be downloaded
36 * @return {Object} A deferred which will callback with an instance of javascriptrrd.BinaryFile
37 */
38
29 var d = new MochiKit.Async.Deferred();39 var d = new MochiKit.Async.Deferred();
3040
31 $.ajax({41 $.ajax({
@@ -61,50 +71,16 @@
61 return d;71 return d;
62};72};
6373
64/**
65 * Limit the number of parallel async calls
66 *
67 * @param limit: The maximum number of in progress calls
68 **/
69jarmon.Parallimiter = function(limit) {
70 this.limit = limit || 1;
71 this._callQueue = [];
72 this._currentCallCount = 0;
73};
74
75jarmon.Parallimiter.prototype.addCallable = function(callable, args) {
76 /**
77 * Add a function to be called when the number of in progress calls drops
78 * below the configured limit
79 *
80 * @param callable: A function which returns a Deferred.
81 **/
82 var d = new MochiKit.Async.Deferred();
83 this._callQueue.unshift([d, callable, args]);
84 this._nextCall();
85 return d;
86};
87
88jarmon.Parallimiter.prototype._nextCall = function() {
89 if(this._callQueue.length > 0) {
90 if(this._currentCallCount < this.limit) {
91 this._currentCallCount++;
92 var nextCall = this._callQueue.pop();
93 nextCall[1].apply(null, nextCall[2]).addBoth(
94 function(self, d, res) {
95 d.callback(res);
96 self._currentCallCount--;
97 self._nextCall();
98 }, this, nextCall[0]);
99 }
100 }
101};
102
10374
104jarmon.localTimeFormatter = function (v, axis) {75jarmon.localTimeFormatter = function (v, axis) {
105 /**76 /**
106 * Copied from jquery.flot.js and modified to allow timezone77 * Copied from jquery.flot.js and modified to allow timezone
107 * adjustment.78 * adjustment.
79 *
80 * @method localTimeFormatter
81 * @param v {Number} The timestamp to be formatted
82 * @param axis {Object} A hash containing information about the time axis
83 * @return {String} The formatted datetime string
108 **/84 **/
109 // map of app. size of time units in milliseconds85 // map of app. size of time units in milliseconds
110 var timeUnitSize = {86 var timeUnitSize = {
@@ -155,14 +131,10 @@
155 * convenient way to query the RRDFile based on time range, RRD data source (DS)131 * convenient way to query the RRDFile based on time range, RRD data source (DS)
156 * and RRD consolidation function (CF).132 * and RRD consolidation function (CF).
157 *133 *
158 * @param startTime: A javascript {Date} instance representing the start of query134 * @class jarmon.RrdQuery
159 * time range, or {null} to return earliest available data.135 * @constructor
160 * @param endTime: A javascript {Date} instance representing the end of query136 * @param rrd {Object} A javascriptrrd.RRDFile
161 * time range, or {null} to return latest available data.137 * @param unit {String} The unit symbol for this data series
162 * @param dsId: A {String} name of an RRD DS or an {Int} DS index number or
163 * {null} to return the first available DS.
164 * @param cfName: A {String} name of an RRD consolidation function
165 * @return: A flot compatible data series object
166 **/138 **/
167jarmon.RrdQuery = function(rrd, unit) {139jarmon.RrdQuery = function(rrd, unit) {
168 this.rrd = rrd;140 this.rrd = rrd;
@@ -175,14 +147,14 @@
175 * end time. The rows are taken from the first RRA whose data spans the147 * end time. The rows are taken from the first RRA whose data spans the
176 * requested time range.148 * requested time range.
177 *149 *
178 * @param startTime: The I{Date} start time150 * @method getData
179 * @param endTime: The I{Date} end time151 * @param startTime {Number} start timestamp
180 * @param dsId: An index I{Number} or key I{String} identifying the RRD152 * @param endTime {Number} end timestamp
181 * datasource (DS).153 * @param dsId {Variant} identifier of the RRD datasource (string or number)
182 * @param cfName: The name I{String} of an RRD consolidation function (CF)154 * @param cfName {String} The name of an RRD consolidation function (CF)
183 * eg AVERAGE, MIN, MAX155 * eg AVERAGE, MIN, MAX
184 * @return: A Flot compatible data series I{Object}156 * @return {Object} A Flot compatible data series
185 * eg {label:'', data:[], unit: ''}157 * eg label: '', data: [], unit: ''
186 **/158 **/
187 var startTimestamp = startTime/1000;159 var startTimestamp = startTime/1000;
188160
@@ -258,8 +230,12 @@
258 * A wrapper around RrdQuery which provides asynchronous access to the data in a230 * A wrapper around RrdQuery which provides asynchronous access to the data in a
259 * remote RRD file.231 * remote RRD file.
260 *232 *
261 * @param url: The url I{String} of a remote RRD file233 * @class jarmon.RrdQueryRemote
262 * @param unit: The unit suffix I{String} of this data eg 'bit/sec'234 * @constructor
235 * @param url {String} The url of a remote RRD file
236 * @param unit {String} The unit suffix of this data eg 'bit/sec'
237 * @param downloader {Function} A callable which returns a Deferred and calls
238 * back with a javascriptrrd.BinaryFile when it has downloaded.
263 **/239 **/
264jarmon.RrdQueryRemote = function(url, unit, downloader) {240jarmon.RrdQueryRemote = function(url, unit, downloader) {
265 this.url = url;241 this.url = url;
@@ -273,10 +249,11 @@
273 /**249 /**
274 * Return a Flot compatible data series asynchronously.250 * Return a Flot compatible data series asynchronously.
275 *251 *
276 * @param startTime: The start time I{Date}252 * @method getData
277 * @param endTime: The end time I{Date}253 * @param startTime {Number} The start timestamp
278 * @returns: A I{MochiKit.Async.Deferred} which calls back with a flot data254 * @param endTime {Number} The end timestamp
279 * series object I{Object}255 * @param dsId {Variant} identifier of the RRD datasource (string or number)
256 * @return {Object} A Deferred which calls back with a flot data series.
280 **/257 **/
281 var endTimestamp = endTime/1000;258 var endTimestamp = endTime/1000;
282259
@@ -320,11 +297,13 @@
320};297};
321298
322/**299/**
323 * Wraps a I{RrdQueryRemote} to provide access to a different RRD DSs within a300 * Wraps RrdQueryRemote to provide access to a different RRD DSs within a
324 * single RrdDataSource.301 * single RrdDataSource.
325 *302 *
326 * @param rrdQuery: An I{RrdQueryRemote}303 * @class jarmon.RrdQueryDsProxy
327 * @param dsId: An index or keyname of an RRD DS304 * @constructor
305 * @param rrdQuery {Object} An RrdQueryRemote instance
306 * @param dsId {Variant} identifier of the RRD datasource (string or number)
328 **/307 **/
329jarmon.RrdQueryDsProxy = function(rrdQuery, dsId) {308jarmon.RrdQueryDsProxy = function(rrdQuery, dsId) {
330 this.rrdQuery = rrdQuery;309 this.rrdQuery = rrdQuery;
@@ -335,6 +314,11 @@
335jarmon.RrdQueryDsProxy.prototype.getData = function(startTime, endTime) {314jarmon.RrdQueryDsProxy.prototype.getData = function(startTime, endTime) {
336 /**315 /**
337 * Call I{RrdQueryRemote.getData} with a particular dsId316 * Call I{RrdQueryRemote.getData} with a particular dsId
317 *
318 * @method getData
319 * @param startTime {Number} A unix timestamp marking the start time
320 * @param endTime {Number} A unix timestamp marking the start time
321 * @return {Object} A Deferred which calls back with a flot data series.
338 **/322 **/
339 return this.rrdQuery.getData(startTime, endTime, this.dsId);323 return this.rrdQuery.getData(startTime, endTime, this.dsId);
340};324};
@@ -343,10 +327,12 @@
343/**327/**
344 * A class for creating a Flot chart from a series of RRD Queries328 * A class for creating a Flot chart from a series of RRD Queries
345 *329 *
346 * @param template: A I{jQuery} containing a single element into which the chart330 * @class jarmon.Chart
347 * will be drawn331 * @constructor
348 * @param options: An I{Object} containing Flot options which describe how the332 * @param template {Object} A jQuery containing a single element into which the
349 * chart should be drawn.333 * chart will be drawn
334 * @param options {Object} Flot options which control how the chart should be
335 * drawn.
350 **/336 **/
351jarmon.Chart = function(template, options) {337jarmon.Chart = function(template, options) {
352 this.template = template;338 this.template = template;
@@ -366,13 +352,13 @@
366352
367353
368 this.options['yaxis']['ticks'] = function(axis) {354 this.options['yaxis']['ticks'] = function(axis) {
369 /**355 /*
370 * Choose a suitable SI multiplier based on the min and max values from356 * Choose a suitable SI multiplier based on the min and max values from
371 * the axis and then generate appropriate yaxis tick labels.357 * the axis and then generate appropriate yaxis tick labels.
372 *358 *
373 * @param axis: An I{Object} with min and max properties359 * @param axis: An I{Object} with min and max properties
374 * @return: An array of ~5 tick labels360 * @return: An array of ~5 tick labels
375 **/361 */
376 var siPrefixes = {362 var siPrefixes = {
377 0: '',363 0: '',
378 1: 'K',364 1: 'K',
@@ -431,11 +417,12 @@
431 * Add details of a remote RRD data source whose data will be added to this417 * Add details of a remote RRD data source whose data will be added to this
432 * chart.418 * chart.
433 *419 *
434 * @param label: A I{String} label for this data which will be shown in the420 * @method addData
421 * @param label {String} The label for this data which will be shown in the
435 * chart legend422 * chart legend
436 * @param db: The url of the remote RRD database423 * @param db {String} The url of the remote RRD database
437 * @param enabled: true if you want this data plotted on the chart, false424 * @param enabled {Boolean} true if you want this data plotted on the chart,
438 * if not.425 * false if not.
439 **/426 **/
440 if(typeof enabled == 'undefined') {427 if(typeof enabled == 'undefined') {
441 enabled = true;428 enabled = true;
@@ -447,8 +434,9 @@
447 /**434 /**
448 * Enable / Disable a single data source435 * Enable / Disable a single data source
449 *436 *
450 * @param label: The label I{String} of the data source to be enabled /437 * @method switchDataEnabled
451 * disabled438 * @param label {String} The label of the data source to be enabled /
439 * disabled.
452 **/440 **/
453 for(var i=0; i<this.data.length; i++) {441 for(var i=0; i<this.data.length; i++) {
454 if(this.data[i][0] == label) {442 if(this.data[i][0] == label) {
@@ -461,8 +449,9 @@
461 /**449 /**
462 * Alter the time range of this chart and redraw450 * Alter the time range of this chart and redraw
463 *451 *
464 * @param startTime: The start time I{Date}452 * @method setTimeRange
465 * @param endTime: The end time I{Date}453 * @param startTime {Number} The start timestamp
454 * @param endTime {Number} The end timestamp
466 **/455 **/
467 this.startTime = startTime;456 this.startTime = startTime;
468 this.endTime = endTime;457 this.endTime = endTime;
@@ -475,8 +464,9 @@
475 * A 'chart_loading' event is triggered before the data is requested464 * A 'chart_loading' event is triggered before the data is requested
476 * A 'chart_loaded' event is triggered when the chart has been drawn465 * A 'chart_loaded' event is triggered when the chart has been drawn
477 *466 *
478 * @return: A I{MochiKit.Async.Deferred} which calls back with the chart467 * @method draw
479 * data when the chart has been rendered.468 * @return {Object} A Deferred which calls back with the chart data when
469 * the chart has been rendered.
480 **/470 **/
481 this.template.addClass('loading');471 this.template.addClass('loading');
482472
@@ -584,13 +574,15 @@
584574
585jarmon.Chart.fromRecipe = function(recipes, templateFactory, downloader) {575jarmon.Chart.fromRecipe = function(recipes, templateFactory, downloader) {
586 /**576 /**
587 * A factory function to generate a list of I{Chart} from a list of recipes577 * A static factory method to generate a list of I{Chart} from a list of
588 * and a list of available rrd files in collectd path format.578 * recipes and a list of available rrd files in collectd path format.
589 *579 *
590 * @param rrdUrlList: A list of rrd download paths580 * @method fromRecipe
591 * @param recipes: A list of recipe objects581 * @param recipes {Array} A list of recipe objects.
592 * @param templateFactory: A callable which generates an html template for a582 * @param templateFactory {Function} A callable which generates an html
593 * chart.583 * template for a chart.
584 * @param downloader {Function} A download function which returns a Deferred
585 * @return {Array} A list of Chart objects
594 **/586 **/
595587
596 var charts = [];588 var charts = [];
@@ -687,8 +679,10 @@
687 * Presents the user with a form and a timeline with which they can choose a679 * Presents the user with a form and a timeline with which they can choose a
688 * time range and co-ordinates the refreshing of a series of charts.680 * time range and co-ordinates the refreshing of a series of charts.
689 *681 *
690 * @param ui: A one element I{jQuery} containing an input form and placeholders682 * @class jarmon.ChartCoordinator
691 * for the timeline and for the series of charts.683 * @constructor
684 * @param ui {Object} A one element jQuery containing an input form and
685 * placeholders for the timeline and for the series of charts.
692 **/686 **/
693jarmon.ChartCoordinator = function(ui) {687jarmon.ChartCoordinator = function(ui) {
694 var self = this;688 var self = this;
@@ -799,6 +793,8 @@
799 /**793 /**
800 * Grab the start and end time from the ui form, highlight the range on the794 * Grab the start and end time from the ui form, highlight the range on the
801 * range timeline and set the time range of all the charts and redraw.795 * range timeline and set the time range of all the charts and redraw.
796 *
797 * @method update
802 **/798 **/
803799
804 var selection = this.ui.find('[name="from_standard"]').val();800 var selection = this.ui.find('[name="from_standard"]').val();
@@ -891,8 +887,9 @@
891 /**887 /**
892 * Set the start and end time fields in the form and trigger an update888 * Set the start and end time fields in the form and trigger an update
893 *889 *
894 * @param startTime: The start time I{Date}890 * @method setTimeRange
895 * @param endTime: The end time I{Date}891 * @param startTime {Number} The start timestamp
892 * @param endTime {Number} The end timestamp
896 **/893 **/
897 if(from != null) {894 if(from != null) {
898 this.ui.find('[name="from"]').val(from);895 this.ui.find('[name="from"]').val(from);
@@ -905,7 +902,53 @@
905jarmon.ChartCoordinator.prototype.init = function() {902jarmon.ChartCoordinator.prototype.init = function() {
906 /**903 /**
907 * Reset all charts and the input form to the default time range - last hour904 * Reset all charts and the input form to the default time range - last hour
905 *
906 * @method init
908 **/907 **/
909 this.update();908 this.update();
910};909};
911910
911/**
912 * Limit the number of parallel async calls
913 *
914 * @class jarmon.Parallimiter
915 * @constructor
916 * @param limit {Number} The maximum number of in progress calls
917 **/
918jarmon.Parallimiter = function(limit) {
919 this.limit = limit || 1;
920 this._callQueue = [];
921 this._currentCallCount = 0;
922};
923
924jarmon.Parallimiter.prototype.addCallable = function(callable, args) {
925 /**
926 * Add a function to be called when the number of in progress calls drops
927 * below the configured limit
928 *
929 * @method addCallable
930 * @param callable {Function} A function which returns a Deferred.
931 * @param args {Array} A list of arguments to pass to the callable
932 * @return {Object} A Deferred which fires with the result of the callable
933 * when it is called.
934 **/
935 var d = new MochiKit.Async.Deferred();
936 this._callQueue.unshift([d, callable, args]);
937 this._nextCall();
938 return d;
939};
940
941jarmon.Parallimiter.prototype._nextCall = function() {
942 if(this._callQueue.length > 0) {
943 if(this._currentCallCount < this.limit) {
944 this._currentCallCount++;
945 var nextCall = this._callQueue.pop();
946 nextCall[1].apply(null, nextCall[2]).addBoth(
947 function(self, d, res) {
948 d.callback(res);
949 self._currentCallCount--;
950 self._nextCall();
951 }, this, nextCall[0]);
952 }
953 }
954};
912955
=== added directory 'jarmonbuild'
=== added file 'jarmonbuild/__init__.py'
=== added file 'jarmonbuild/commands.py'
--- jarmonbuild/commands.py 1970-01-01 00:00:00 +0000
+++ jarmonbuild/commands.py 2010-08-22 21:23:38 +0000
@@ -0,0 +1,239 @@
1# Copyright (c) 2010 Richard Wall <richard (at) the-moon.net>
2"""
3Functions and Classes for automating the release of Jarmon
4"""
5
6import hashlib
7import logging
8import os
9import shutil
10import sys
11
12from optparse import OptionParser
13from subprocess import check_call, PIPE
14from tempfile import gettempdir
15from urllib2 import urlopen
16from zipfile import ZipFile, ZIP_DEFLATED
17
18import pkg_resources
19
20
21JARMON_PROJECT_TITLE='Jarmon'
22JARMON_PROJECT_URL='http://www.launchpad.net/jarmon'
23
24YUIDOC_URL = 'http://yuilibrary.com/downloads/yuidoc/yuidoc_1.0.0b1.zip'
25YUIDOC_MD5 = 'cd5545d2dec8f7afe3d18e793538162c'
26YUIDOC_DEPENDENCIES = ['setuptools', 'pygments', 'cheetah']
27
28
29class BuildError(Exception):
30 """
31 A base Exception for errors in the build system
32 """
33 pass
34
35
36class BuildCommand(object):
37 def __init__(self, buildversion, log=None):
38 self.buildversion = buildversion
39 if log is not None:
40 self.log = log
41 else:
42 self.log = logging.getLogger(
43 '%s.%s' % (__name__, self.__class__.__name__))
44
45 self.workingbranch_dir = os.path.abspath(
46 os.path.join(os.path.dirname(__file__), '..'))
47
48 # setup working dir
49 self.build_dir = os.path.join(self.workingbranch_dir, 'build')
50
51 if not os.path.isdir(self.build_dir):
52 self.log.debug('Creating build dir: %s' % (self.build_dir,))
53 os.mkdir(self.build_dir)
54 else:
55 self.log.debug('Using build dir: %s' % (self.build_dir,))
56
57
58class BuildApidocsCommand(BuildCommand):
59 """
60 Download YUI Doc and use it to generate apidocs for jarmon
61 """
62
63 def main(self, argv):
64 """
65 The main entry point for the build-apidocs command
66
67 @param argv: The list of arguments passed to the build-apidocs command
68 """
69 tmpdir = gettempdir()
70 workingbranch_dir = self.workingbranch_dir
71 build_dir = self.build_dir
72
73 # Check for yuidoc dependencies
74 for r in pkg_resources.parse_requirements(YUIDOC_DEPENDENCIES):
75 if not pkg_resources.working_set.find(r):
76 raise BuildError('Unsatisfied yuidoc dependency: %r' % (r,))
77
78 # download and cache yuidoc
79 yuizip_path = os.path.join(tmpdir, os.path.basename(YUIDOC_URL))
80 if os.path.exists(yuizip_path):
81 self.log.debug('Using cached YUI doc')
82 def producer():
83 yield open(yuizip_path).read()
84 else:
85 self.log.debug('Downloading YUI Doc')
86 def producer():
87 with open(yuizip_path, 'w') as yuizip:
88 download = urlopen(YUIDOC_URL)
89 while True:
90 bytes = download.read(1024*10)
91 if not bytes:
92 break
93 else:
94 yuizip.write(bytes)
95 yield bytes
96
97 checksum = hashlib.md5()
98 for bytes in producer():
99 checksum.update(bytes)
100
101 actual_md5 = checksum.hexdigest()
102 if actual_md5 != YUIDOC_MD5:
103 raise BuildError(
104 'YUI Doc checksum error. File: %s, '
105 'Expected: %s, Got: %s' % (yuizip_path, YUIDOC_MD5, actual_md5))
106 else:
107 self.log.debug('YUI Doc checksum verified')
108
109 # Remove any existing apidocs so that we can track removed files
110 shutil.rmtree(os.path.join(build_dir, 'docs', 'apidocs'), True)
111
112 yuidoc_dir = os.path.join(build_dir, 'yuidoc')
113
114 # extract yuidoc folder from the downloaded zip file
115 self.log.debug(
116 'Extracting YUI Doc from %s to %s' % (yuizip_path, yuidoc_dir))
117 zip = ZipFile(yuizip_path)
118 zip.extractall(
119 build_dir, (m for m in zip.namelist() if m.startswith('yuidoc')))
120
121 # Use the yuidoc script that we just extracted to generate new docs
122 self.log.debug('Running YUI Doc')
123 check_call((
124 sys.executable,
125 os.path.join(yuidoc_dir, 'bin', 'yuidoc.py'),
126 os.path.join(workingbranch_dir, 'jarmon'),
127 '--parseroutdir=%s' % (
128 os.path.join(build_dir, 'docs', 'apidocs'),),
129 '--outputdir=%s' % (
130 os.path.join(build_dir, 'docs', 'apidocs'),),
131 '--template=%s' % (
132 os.path.join(
133 workingbranch_dir, 'jarmonbuild', 'yuidoc_template'),),
134 '--version=%s' % (self.buildversion,),
135 '--project=%s' % (JARMON_PROJECT_TITLE,),
136 '--projecturl=%s' % (JARMON_PROJECT_URL,)
137 ), stdout=PIPE, stderr=PIPE,)
138
139 shutil.rmtree(yuidoc_dir)
140
141
142class BuildReleaseCommand(BuildCommand):
143 """
144 Export all source files, generate apidocs and create a zip archive for
145 upload to Launchpad.
146 """
147
148 def main(self, argv):
149 workingbranch_dir = self.workingbranch_dir
150 build_dir = self.build_dir
151
152 self.log.debug('Export versioned files to a build folder')
153 from bzrlib.commands import main as bzr_main
154 status = bzr_main(['bzr', 'export', build_dir, workingbranch_dir])
155 if status != 0:
156 raise BuildError('bzr export failure. Status: %r' % (status,))
157
158
159 self.log.debug('Record the branch version')
160 from bzrlib.branch import Branch
161 from bzrlib.version_info_formats import format_python
162 v = format_python.PythonVersionInfoBuilder(
163 Branch.open(workingbranch_dir))
164 versionfile_path = os.path.join(build_dir, 'jarmonbuild', '_version.py')
165 with open(versionfile_path, 'w') as f:
166 v.generate(f)
167
168
169 self.log.debug('Generate apidocs')
170 BuildApidocsCommand(buildversion=self.buildversion).main(argv)
171
172
173 self.log.debug('Generate archive')
174 archive_root = 'jarmon-%s' % (self.buildversion,)
175 prefix_len = len(build_dir) + 1
176 z = ZipFile('%s.zip' % (archive_root,), 'w', ZIP_DEFLATED)
177 try:
178 for root, dirs, files in os.walk(build_dir):
179 for file in files:
180 z.write(
181 os.path.join(root, file),
182 os.path.join(archive_root, root[prefix_len:], file)
183 )
184 finally:
185 z.close()
186
187
188# The available sub commands
189build_commands = {
190 'apidocs': BuildApidocsCommand,
191 'release': BuildReleaseCommand,
192}
193
194
195def main(argv=sys.argv[1:]):
196 """
197 The root build command which dispatches to various subcommands for eg
198 building apidocs and release zip files.
199 """
200 parser = OptionParser(usage='%prog [options] SUBCOMMAND [options]')
201 parser.add_option(
202 '-V', '--build-version', dest='buildversion', default='0',
203 metavar='BUILDVERSION', help='Specify the build version')
204 parser.add_option(
205 '-d', '--debug', action='store_true', default=False, dest='debug',
206 help='Print verbose debug log to stderr')
207
208 parser.disable_interspersed_args()
209
210 options, args = parser.parse_args(argv)
211
212 if len(args) < 1:
213 parser.error('Please specify a sub command. '
214 'Available commands: %r' % (build_commands.keys()))
215
216 # First argument is the name of a subcommand
217 command_name = args.pop(0)
218 command_factory = build_commands.get(command_name)
219 if not command_factory:
220 parser.error('Unrecognised subcommand: %r' % (command_name,))
221
222 # Setup logging
223 log = logging.getLogger(__name__)
224 log.setLevel(logging.INFO)
225 # create console handler and set level to debug
226 ch = logging.StreamHandler()
227 ch.setLevel(logging.INFO)
228 # create formatter
229 formatter = logging.Formatter(
230 '%(asctime)s - %(name)s - %(levelname)s - %(message)s')
231 # add formatter to ch
232 ch.setFormatter(formatter)
233 log.addHandler(ch)
234
235 if options.debug:
236 log.setLevel(logging.DEBUG)
237 ch.setLevel(logging.DEBUG)
238
239 command_factory(buildversion=options.buildversion).main(argv=args)
0240
=== added directory 'jarmonbuild/yuidoc_template'
=== added directory 'jarmonbuild/yuidoc_template/assets'
=== added file 'jarmonbuild/yuidoc_template/assets/ac-js'
--- jarmonbuild/yuidoc_template/assets/ac-js 1970-01-01 00:00:00 +0000
+++ jarmonbuild/yuidoc_template/assets/ac-js 2010-08-22 21:23:38 +0000
@@ -0,0 +1,162 @@
1(function() {
2 var Event=YAHOO.util.Event,
3 Dom=YAHOO.util.Dom,
4 oACDS, oAutoComp,
5 show = {
6 'private': false,
7 'protected': false,
8 'deprecated': false
9 };
10
11Event.onAvailable('yui-classopts-form', function() {
12 //Checkboxes are available..
13 var handleClick = function(e) {
14 var id, checked = false;
15 if (YAHOO.lang.isString(e)) {
16 id = e;
17 } else {
18 var tar = Event.getTarget(e);
19 id = tar.id;
20 }
21 var el = Dom.get(id);
22 checked = el.checked;
23
24 var className = id;
25 if (checked) {
26 show[id.replace('show_', '')] = true;
27 Dom.addClass(document.body, className);
28 YAHOO.util.Cookie.setSub('yuidoc', id, 'checked');
29 } else {
30 show[id.replace('show_', '')] = false;
31 Dom.removeClass(document.body, className);
32 YAHOO.util.Cookie.setSub('yuidoc', id, '');
33 }
34 };
35
36 var checkCookie = function(id) {
37 var value = YAHOO.util.Cookie.getSub('yuidoc', id),
38 el = Dom.get(id), checked = (value === 'checked');;
39
40 /*
41 if (value === 'checked') {
42 el.checked = true;
43 } else {
44 el.checked = false;
45 }
46 */
47
48 el.checked = checked;
49 return checked;
50 };
51
52 var els = ['show_deprecated', 'show_protected', 'show_private'],
53 reapplyHash = false;
54
55 for (var i = 0; i < els.length; i++) {
56 Event.on(els[i], 'click', handleClick);
57 reapplyHash = checkCookie(els[i]) || reapplyHash;
58 handleClick(els[i]);
59 }
60
61 // If we dynamically show private/protected/etc items during
62 // load, we need to reapply anchors so that the search feature
63 // works correctly for items that are initially hidden.
64 if (reapplyHash) {
65 var dl = document.location, hash = dl.hash;
66 if (hash) {
67 dl.hash = hash;
68 }
69 }
70
71});
72
73//Starting the AutoComplete code
74 var getResults = function(query) {
75 var results = [];
76 if(query && query.length > 0) {
77
78 var q = query.toLowerCase();
79
80 for (var i=0, len=ALL_YUI_PROPS.length; i<len; ++i) {
81
82 var prop = ALL_YUI_PROPS[i];
83
84 if (!show['protected'] && prop.access == "protected") {
85 // skip
86 } else if (!show['private'] && prop.access == "private") {
87 // skip
88 } else if (!show['deprecated'] && prop.deprecated) {
89 // skip
90 } else {
91 var s = (prop.host + "." + prop.name).toLowerCase();
92 if (s.indexOf(q) > -1 ) {
93 results.push([query, prop]);
94 }
95 }
96 }
97 }
98
99 return results;
100 };
101
102 // Define Custom Event handlers
103 var myOnDataReturn = function(sType, aArgs) {
104 var oAutoComp = aArgs[0];
105 var query = aArgs[1];
106 var aResults = aArgs[2];
107
108 if(aResults.length == 0) {
109 if (query.length > 0) {
110 oAutoComp.setBody("<div id=\"resultsdefault\">Not found</div>");
111 }
112 }
113 };
114
115 var myOnItemSelect = function(sType, aArgs) {
116 var ac = aArgs[0];
117 var item = aArgs[2];
118 location.href = item[1].url;
119 };
120
121
122 Event.onAvailable("searchresults", function() {
123
124 // Instantiate JS Function DataSource
125 oACDS = new YAHOO.widget.DS_JSFunction(getResults);
126 oACDS.maxCacheEntries = 30;
127
128 // Instantiate AutoComplete
129 oAutoComp = new YAHOO.widget.AutoComplete('searchinput','searchresults', oACDS);
130 //oAutoComp.alwaysShowContainer = true;
131 oAutoComp.queryDelay = 0.2;
132 oAutoComp.maxResultsDisplayed = 200;
133 oAutoComp.minQueryLength = 0;
134 oAutoComp.formatResult = function(oResultItem, query) {
135 var sMarkup = "<em>" + oResultItem[1].host + '</em> <span>' + oResultItem[1].name + '</span>';
136 return sMarkup;
137 };
138
139 // Subscribe to Custom Events
140 oAutoComp.dataReturnEvent.subscribe(myOnDataReturn);
141 oAutoComp.itemSelectEvent.subscribe(myOnItemSelect);
142
143 // Set initial content in the container
144 oAutoComp.sendQuery(Dom.get("searchinput").value);
145
146 });
147
148 var validateForm = function() {
149 return false;
150 };
151
152 YAHOO.util.Event.onAvailable('classTab', function() {
153 var tabs = new YAHOO.widget.TabView('classTab');
154 });
155 /*
156 YAHOO.util.Event.onAvailable('codeTree', function() {
157 var tree1 = new YAHOO.widget.TreeView('codeTree');
158 tree1.render();
159 });
160 */
161
162})();
0163
=== added file 'jarmonbuild/yuidoc_template/assets/api-js'
--- jarmonbuild/yuidoc_template/assets/api-js 1970-01-01 00:00:00 +0000
+++ jarmonbuild/yuidoc_template/assets/api-js 2010-08-22 21:23:38 +0000
@@ -0,0 +1,42 @@
1/*
2Copyright (c) 2008, Yahoo! Inc. All rights reserved.
3Code licensed under the BSD License:
4http://developer.yahoo.net/yui/license.txt
5version: 2.6.0
6*/
7if(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;
8var 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];
9I.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;
10/* DOMReady: based on work by: Dean Edwards/John Resig/Matthias Miller */
11if(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||{};
12var 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"});
13/*
14Copyright (c) 2008, Yahoo! Inc. All rights reserved.
15Code licensed under the BSD License:
16http://developer.yahoo.net/yui/license.txt
17version: 2.6.0
18*/
19(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);
20break;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;
21if(!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;
22}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);
23return 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"});/*
24Copyright (c) 2008, Yahoo! Inc. All rights reserved.
25Code licensed under the BSD License:
26http://developer.yahoo.net/yui/license.txt
27version: 2.6.0
28*/
29YAHOO.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;
30};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;
31YAHOO.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);
32this._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);
33}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;
34}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"});/*
35Copyright (c) 2008, Yahoo! Inc. All rights reserved.
36Code licensed under the BSD License:
37http://developer.yahoo.net/yui/license.txt
38version: 2.6.0
39*/
40YAHOO.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"});
41
42
043
=== added file 'jarmonbuild/yuidoc_template/assets/api.css'
--- jarmonbuild/yuidoc_template/assets/api.css 1970-01-01 00:00:00 +0000
+++ jarmonbuild/yuidoc_template/assets/api.css 2010-08-22 21:23:38 +0000
@@ -0,0 +1,242 @@
1
2
3body { background-color: #ECF0F6; }
4
5/* main page */
6a:link { color: #003399; }
7a:visited { color: #003399;}
8
9#doc3 #hd { margin-bottom:1em; position: relative; zoom: 1; }
10#doc3 #hd h1 { color: #545454; font-size: 170%; padding: 0; height: 60px; font-weight: bold; text-align: center;}
11#doc3 #hd h1 a { position: relative; top: 14px; }
12#doc3 #hd a { text-decoration: none; color: black; }
13#doc3 #hd h3 {
14 background: #98AAB1; background-image: url(bg_hd.gif); color: #000; font-size: 100%; padding: 4px 10px; margin: 0 0 7px 0;
15 border: 1px solid #98AAB1;
16}
17#ft hr {
18 display: none;
19}
20#ft {
21 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;
22}
23#doc3 #hd h3 A { color: #FFF; text-decoration: none; }
24#doc3 #hd .breadcrumbs { font-size: 85%; margin-bottom:10px;}
25#doc3 #hd .subtitle {position: absolute; right:1em; padding: 0px;margin:0px}
26
27#doc3 dl { margin: 2px 0; }
28#doc3 dd { margin-left: 20px; }
29#doc3 .requires dt { font-style: italic; }
30#doc3 .default { margin-top:6px; }
31#doc3 .detail .deprecated { margin-top:4px; padding:4px; background-color: #EFECCA }
32#doc3 .detail .deprecated strong { color:#441054; }
33#doc3 code, pre {font-size:85%}
34
35#doc3 #hd h1 {
36 border: 1px solid #98AAB1;
37 background-color: #fff;
38 margin-bottom: .5em;
39
40}
41#bd {
42 border: 1px solid #98AAB1;
43 background-color: #fff;
44}
45
46.submodules dd {
47 font-size: 93%;
48 font-weight: italic;
49}
50
51
52#doc3 .classopts { font-size: 85%; float:right; margin:2px; padding: 2px; background-color:#ECF0F6;border: 1px solid #98AAB1;}
53#yui-classopts-form fieldset legend { display: none; }
54
55/* undo reset.css styles for description block formatting */
56#doc3 .description ul { padding: 10px 0 10px 28px; font-size: 90%; list-style: disc}
57#doc3 .description li { list-style: disc}
58#doc3 .description p { padding-bottom: 10px}
59#doc3 .description strong { font-weight: bold;}
60#doc3 .description em {padding: 2px; background-color: #EFECCA}
61#doc3 pre { padding: 10px;}
62
63#doc3 .summary { margin: 0px 10px 10px 0; padding:10px; background-color:#ECF0F6; border:1px solid #98AAB1; }
64#doc3 .extends {font-weight: normal; font-size: 90%}
65
66#doc3 .nav {min-height: 400px;}
67#doc3 .nav .module {
68 width:100%;
69 border-right: 1px solid #98AAB1;
70 border-bottom: 1px solid #98AAB1;
71 padding: 0; overflow:hidden;
72}
73#doc3 .nav .module h4 {
74 padding: 3px 5px;
75 border-bottom: 1px solid #98AAB1;
76 background-image: url(bg_hd.gif);
77}
78#doc3 .nav .module h4 A { color: #000; text-decoration: none; }
79#doc3 .nav .module .content { padding: 2px; }
80#doc3 .nav .module UL.content LI { font-size: 90%; }
81#doc3 .nav .module UL.content A { text-decoration: none; color: black; display: block; padding: 2px 4px 2px 4px; }
82#doc3 .nav .module LI,
83#doc3 .nav .module LI A {
84 zoom: 1;
85}
86#doc3 .nav .module LI.selected A,
87#doc3 .nav .module LI A:hover {
88 background-color: #ECF0F6;
89 zoom: 1;
90}
91
92#doc3 .section { margin: 0 7px 7px 0; }
93#doc3 .section strong { font-weight: bold;}
94#doc3 .section hr { border: none 0; border-top: 1px solid #ccc; }
95#doc3 .section h4 { font-size:110%;}
96#doc3 .section h3 { background: #98AAB1; background-image: url(bg_hd.gif); width: 98%; color: #000; padding: 3px; margin: 0 0 7px 0;
97 border: 1px solid #98AAB1;
98
99}
100#doc3 .section h3 .top { font-size: 60%; font-weight: normal; width: 100%; font-family: verdana; padding-left: 20px; }
101#doc3 .section h3 .top A { color: #000; text-decoration: none; }
102
103#doc3 .section.details .content { padding: 0 0 0 10px; }
104#doc3 .section.details .description { padding: 10px 0 0 20px; }
105#doc3 .section.details .description dt { font-weight: bold; }
106#doc3 .section.details .description td { border:1px solid #ccc; margin:2px;padding:2px;}
107
108#doc3 .inheritance { padding:10px; background-color:#ECF0F6; border:1px solid #98AAB1; }
109#doc3 .inheritance h4 { font-size: 100%;}
110
111/* index page autocomplete */
112/*
113#propertysearch {;position:absolute;margin:1em;width:35em;}
114#searchinput {position:absolute;width:100%;height:1.4em;}
115#searchresults {position:absolute;top:1.7em;width:100%;}
116#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;}
117#searchresults .yui-ac-shadow {position:absolute;margin:.3em;width:100%;background:#a0a0a0;z-index:9049;}:
118#searchresults ul {padding:5px 0;width:100%;}
119#searchresults li {padding:0 5px;cursor:default;white-space:nowrap;}
120#searchresults li.yui-ac-highlight {background:#D1C6DA;}
121#searchresults li em { position:absolute; width:44%; overflow:hidden; color:#654D6C;}
122#searchresults li span { position:relative; left:46% }
123*/
124
125#propertysearch {
126 width: 25em;
127 position: absolute;
128 right: 5px;
129 bottom: -4px;
130}
131#searchinput {
132 width: 83%;
133 height: 1.4em;
134}
135#searchresults {
136 position: absolute;
137 right: 25em;
138 top: 25px;
139 height: 0;
140}
141#searchresults .yui-ac-content {
142 position: absolute;
143 top: 0;
144 left: 0;
145 width: 25em;
146 height: 20em;
147 border: 1px solid #98AAB1;
148 background: #fff;
149 overflow: auto;
150 overflow-x: hidden;
151 z-index: 9050;
152}
153#searchresults li.yui-ac-highlight {
154 background-color: #ECF0F6;
155}
156#searchresults li em {
157 width:44%;
158 overflow: hidden;
159 color: #98AAB1;
160}
161
162.deprecated, .private, .protected {
163 display: none;
164}
165
166body.show_deprecated .deprecated,
167body.show_private .private,
168body.show_protected .protected {
169 display: inherit;
170}
171
172#splash_classList ul {
173 margin: 1em;
174 margin-left:2em;
175}
176#splash_classList ul li {
177 list-style: disc outside;
178}
179
180
181/* source code view */
182#srcout {min-width: 580px; }
183*html #srcout { width: 100%; padding-bottom:1em; overflow-x:auto }
184
185.highlight .c { color: #60a0b0; font-style: italic } /* Comment */
186.highlight .err { border: 1px solid #FF0000 } /* Error */
187.highlight .k { color: #007020; font-weight: bold } /* Keyword */
188.highlight .o { color: #666666 } /* Operator */
189.highlight .cm { color: #60a0b0; font-style: italic } /* Comment.Multiline */
190.highlight .cp { color: #007020 } /* Comment.Preproc */
191.highlight .c1 { color: #60a0b0; font-style: italic } /* Comment.Single */
192.highlight .gd { color: #A00000 } /* Generic.Deleted */
193.highlight .ge { font-style: italic } /* Generic.Emph */
194.highlight .gr { color: #FF0000 } /* Generic.Error */
195.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
196.highlight .gi { color: #00A000 } /* Generic.Inserted */
197.highlight .go { color: #808080 } /* Generic.Output */
198.highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */
199.highlight .gs { font-weight: bold } /* Generic.Strong */
200.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
201.highlight .gt { color: #0040D0 } /* Generic.Traceback */
202.highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */
203.highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */
204.highlight .kp { color: #007020 } /* Keyword.Pseudo */
205.highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */
206.highlight .kt { color: #007020; font-weight: bold } /* Keyword.Type */
207.highlight .m { color: #40a070 } /* Literal.Number */
208.highlight .s { color: #4070a0 } /* Literal.String */
209.highlight .na { color: #4070a0 } /* Name.Attribute */
210.highlight .nb { color: #007020 } /* Name.Builtin */
211.highlight .nc { color: #0e84b5; font-weight: bold } /* Name.Class */
212.highlight .no { color: #60add5 } /* Name.Constant */
213.highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */
214.highlight .ni { color: #d55537; font-weight: bold } /* Name.Entity */
215.highlight .ne { color: #007020 } /* Name.Exception */
216.highlight .nf { color: #06287e } /* Name.Function */
217.highlight .nl { color: #002070; font-weight: bold } /* Name.Label */
218.highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */
219.highlight .nt { color: #062873; font-weight: bold } /* Name.Tag */
220.highlight .nv { color: #bb60d5 } /* Name.Variable */
221.highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */
222.highlight .mf { color: #40a070 } /* Literal.Number.Float */
223.highlight .mh { color: #40a070 } /* Literal.Number.Hex */
224.highlight .mi { color: #40a070 } /* Literal.Number.Integer */
225.highlight .mo { color: #40a070 } /* Literal.Number.Oct */
226.highlight .sb { color: #4070a0 } /* Literal.String.Backtick */
227.highlight .sc { color: #4070a0 } /* Literal.String.Char */
228.highlight .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */
229.highlight .s2 { color: #4070a0 } /* Literal.String.Double */
230.highlight .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */
231.highlight .sh { color: #4070a0 } /* Literal.String.Heredoc */
232.highlight .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */
233.highlight .sx { color: #c65d09 } /* Literal.String.Other */
234.highlight .sr { color: #235388 } /* Literal.String.Regex */
235.highlight .s1 { color: #4070a0 } /* Literal.String.Single */
236.highlight .ss { color: #517918 } /* Literal.String.Symbol */
237.highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */
238.highlight .vc { color: #bb60d5 } /* Name.Variable.Class */
239.highlight .vg { color: #bb60d5 } /* Name.Variable.Global */
240.highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */
241.highlight .il { color: #40a070 } /* Literal.Number.Integer.Long */
242
0243
=== added file 'jarmonbuild/yuidoc_template/assets/bg_hd.gif'
1Binary 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 differ244Binary 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
=== added file 'jarmonbuild/yuidoc_template/assets/reset-fonts-grids-min.css'
--- jarmonbuild/yuidoc_template/assets/reset-fonts-grids-min.css 1970-01-01 00:00:00 +0000
+++ jarmonbuild/yuidoc_template/assets/reset-fonts-grids-min.css 2010-08-22 21:23:38 +0000
@@ -0,0 +1,7 @@
1/*
2Copyright (c) 2008, Yahoo! Inc. All rights reserved.
3Code licensed under the BSD License:
4http://developer.yahoo.net/yui/license.txt
5version: 2.6.0
6*/
7html{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;}
08
=== added file 'jarmonbuild/yuidoc_template/classmap.tmpl'
--- jarmonbuild/yuidoc_template/classmap.tmpl 1970-01-01 00:00:00 +0000
+++ jarmonbuild/yuidoc_template/classmap.tmpl 2010-08-22 21:23:38 +0000
@@ -0,0 +1,15 @@
1YAHOO.env.classMap = ${pkgmap};
2
3YAHOO.env.resolveClass = function(className) {
4 var a=className.split('.'), ns=YAHOO.env.classMap;
5
6 for (var i=0; i<a.length; i=i+1) {
7 if (ns[a[i]]) {
8 ns = ns[a[i]];
9 } else {
10 return null;
11 }
12 }
13
14 return ns;
15};
016
=== added file 'jarmonbuild/yuidoc_template/index.tmpl'
--- jarmonbuild/yuidoc_template/index.tmpl 1970-01-01 00:00:00 +0000
+++ jarmonbuild/yuidoc_template/index.tmpl 2010-08-22 21:23:38 +0000
@@ -0,0 +1,9 @@
1<html>
2<head>
3 <script type="text/javascript">
4 document.location.replace("${cleansedmodulename}.html");
5 </script>
6</head>
7<body>
8</body>
9</html>
010
=== added file 'jarmonbuild/yuidoc_template/main.tmpl'
--- jarmonbuild/yuidoc_template/main.tmpl 1970-01-01 00:00:00 +0000
+++ jarmonbuild/yuidoc_template/main.tmpl 2010-08-22 21:23:38 +0000
@@ -0,0 +1,685 @@
1#encoding UTF-8
2#filter EncodeUnicode
3<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
4<html xmlns:yui="http://yuilibrary.com/rdf/1.0/yui.rdf#">
5<head>
6 <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
7 <title>API: $modulename #if $classname# $classname #end if# #if $filename# $filename #end if#</title>
8
9 <link rel="stylesheet" type="text/css" href="assets/reset-fonts-grids-min.css" />
10 <link rel="stylesheet" type="text/css" href="assets/api.css" />
11
12 <script type="text/javascript" src="assets/api-js"></script>
13 <script type="text/javascript" src="assets/ac-js"></script>
14</head>
15
16<body id="yahoo-com">
17
18<div id="doc3" class="yui-t2">
19 <div id="hd">
20 <h1><a href="$projecturl" title="$projectname">$projectname v$version API Documentation</a></h1>
21 <h3>$moduletitle&nbsp; <span class="subtitle">$version</span></h3>
22 <a href="./index.html" title="$projectname">$projectname</a>
23 #if $modulename
24 &gt; <a href="./${cleansedmodulename}.html" title="$modulename">$modulename</a>
25 #if $classname# &gt; $classname #end if#
26 #if $filename# &gt; $filename (source view) #end if#
27 #end if
28 <form onsubmit="return false">
29 <div id="propertysearch">
30 Search: <input autocomplete="off" id="searchinput" />
31 <div id="searchresults">
32 &nbsp;
33 </div>
34 </div>
35 </form>
36 </div>
37
38 <div id="bd">
39 <div id="yui-main">
40 <div class="yui-b">
41 <form action="#" name="yui-classopts-form" method="get" id="yui-classopts-form">
42 <fieldset>
43 <legend>Filters</legend>
44 <span class="classopts"><input type="checkbox" name="show_private" id="show_private" /> <label for="show_private">Show Private</label></span>
45 <span class="classopts"><input type="checkbox" name="show_protected" id="show_protected" /> <label for="show_protected">Show Protected</label></span>
46 <span class="classopts"><input type="checkbox" name="show_deprecated" id="show_deprecated" /> <label for="show_deprecated">Show Deprecated</label></span>
47 </fieldset>
48 </form>
49 #if $index
50
51 <div class="summary description">
52 This is the API documentation for
53 <a href="$projecturl">$projectname</a>.
54 <p>Choose a module name from the list for more information.</p>
55 </div>
56
57 #end if
58
59 #if $filename
60 <div id="srcout">
61 <style>
62 #doc3 .classopts { display:none; }
63 </style>
64 #include raw $filepath_highlighted
65 </div>
66 #else if $classname
67 <h2>
68 #if $access#<code>$access</code>#end if#
69
70 #if $static#<code>$static</code>#end if#
71 #if $final#<code>$final</code>#end if#
72 Class <b property="yui:name">$classname</b>
73 <span class="extends">
74 #if $extends
75 - extends <a href="${extends}.html" title="$extends">$extends</a>
76 #end if
77 </span>
78
79 #if $uses
80 <span class="extends" rel="yui:extends">
81 - uses
82 #set $i=0
83 #for $provider in $uses##if $i > 0#, #end if#
84 <span rel="extend" resource="${provider}.html">
85 <a href="${provider}.html" property="yui:name" title="$provider">$provider</a>#set $i=$i+1#
86 </span>
87 #end for#
88
89 </span>
90 #end if
91 </h2>
92 <!-- class tree goes here -->
93
94 #if $subclasses
95 <dl class="subclasses" rel="yui:subclasses">
96 <dt>Known Subclasses:</dt>
97 <dd>
98 #for $subclass in $subclasses
99 <span rel="yui:subclass" resource="${subclass}.html">
100 <a href="${subclass}.html" property="yui:name" title="$subclass">$subclass</a>
101 </span>
102 #end for
103 </dd>
104 </dl>
105 #end if
106
107 #if $deprecated
108 <div class="deprecated"><strong>Deprecated:</strong> $deprecated</div>
109 #end if
110
111 #if $see
112 <div class="deprecated"><strong>See also:</strong> $see</div>
113 #end if
114
115 <div class="summary description" property="yui:description">
116 $description
117 </div>
118
119 #if $constructor
120 <div class="section constructor details" rel="yui:constructor" resource="#constructor">
121 <h3 id="constructor">Constructor</h3>
122 <div class="content">
123 <div class="detail">
124 <strong property="yui:name">$classname</strong>
125 <code>
126 (
127 #if $constructor.params
128 #set $i=0
129 #set $current=""
130
131 #for $param in $constructor.params#
132 #if $current != $param.name
133 #if $i > 0#, #end if#
134 #set $i = $i + 1
135 #set $current = $param.name
136 $param.name
137 #end if
138 #end for
139 #end if
140 )
141 </code>
142 <div class="description">
143 #if $constructor.params
144 <dl rel="yui:parameters">
145 <dt>Parameters:</dt>
146 #for $param in $constructor.params
147 <dd rel="yui:parameter">
148 <code><span property="yui:name">$param.name</span>
149 &lt;<span property="yui:type">$param.type</span>&gt;
150 </code>
151 <span property="yui:description">$param.description</span>
152 </dd>
153 #end for
154 </dl>
155 #end if
156
157 #if $constructor.return
158 <dl>
159 <dt>Returns:</dt>
160 <dd property="yui:return">
161 $constructor.return
162 </dd>
163 </dl>
164 #end if
165
166 </div>
167 </div>
168 </div>
169 </div>
170 #end if
171
172 <div rel="yui:properties" resource="#properties">
173 #if $properties
174 <div class="section field details">
175 <h3 id="properties">Properties</h3>
176 <div class="content">
177 #for $property in $properties
178 <div class="$property.access#if $property.deprecated# deprecated#end if#" rel="yui:property" resource="#property_$property.name">
179 <h4><a name="property_$property.name" property="yui:name">$property.name</a>
180 - <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>
181 </h4>
182 <div class="detail">
183 <div class="description" property="yui:description">
184 $property.description
185 </div>
186 </div>
187
188
189 #if $property.default
190 <div class="default" property="yui:defaultValue">
191 Default Value: $property.default
192 </div>
193 #end if
194
195 #if $property.deprecated
196 <div class="deprecated" property="yui:deprecated">
197 <strong>Deprecated:</strong> $property.deprecated
198 </div>
199 #end if
200
201 <hr />
202 </div>
203 #end for
204 </div>
205 </div>
206 #end if
207
208 #if $inherited.properties
209 <div rel="yui:inheritance">
210 #for $superclassname in $inherited.properties
211 <div class="section field inheritance" rel="yui:superclass" resource="${superclassname}.html">
212 <h4>Properties inherited from <a href="${superclassname}.html" property="yui:name" title="$superclassname">$superclassname</a>:</h4>
213 <div class="content" rel="yui:properties">
214 <code>
215 #set i=0
216 #set l=len($inherited.properties[$superclassname])-1
217 #for $prop in $inherited.properties[$superclassname]#
218 <span rel="yui:property" resource="${superclassname}.html#property_$prop.name">
219 <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#
220 </span>
221 #set i=i+1
222 #end for#
223 </code>
224 </div>
225 </div>
226 #end for
227 </div>
228 #end if
229 </div>
230
231 <div rel="yui:methods" resource="#methods">
232 #if $methods
233 <div class="section method details">
234 <h3 id="methods">Methods</h3>
235 <div class="content">
236 #for $method in $methods
237 <div class="$method.access#if $method.deprecated# deprecated#end if#" rel="yui:method" resource="#method_$method.name">
238 <h4>
239 <a name="method_$method.name">$method.name</a></h4>
240 <div class="detail" >
241 <code>
242 #if $method.access# $method.access #end if#
243 #if $method.static# $method.static #end if#
244 #if $method.final# $method.final #end if#
245 $method.return.type
246 <strong property="yui:name">$method.name</strong>
247 (
248 #if $method.params
249 #set $i=0
250 #set $current = ""
251 #for $param in $method.params#
252 #if $current != $param.name
253 #if $i > 0#, #end if#
254 #set $i = $i + 1
255 #set $current = $param.name
256 $param.name
257 #end if#
258 #end for#
259 #end if
260 )
261 </code>
262
263 <div class="description" property="yui:description">
264 $method.description
265 </div>
266
267 <div class="description">
268
269 #if $method.params
270 <dl rel="yui:parameters">
271 <dt>Parameters:</dt>
272 #for $param in $method.params
273 <dd rel="yui:parameter">
274 <code><span property="yui:name">$param.name</span>
275 &lt;<span property="yui:type">$param.type</span>&gt;
276 </code>
277 <span property="yui:description">$param.description</span>
278 </dd>
279 #end for
280 </dl>
281 #end if
282
283 #if $method.return.type
284 <dl>
285 <dt>Returns:
286 <code property="yui:return">
287 $method.return.type
288 </code></dt>
289 <dd property="yui:returnInfo">$method.return.description</dd>
290 </dl>
291 #end if
292
293 #if $method.chainable
294 <div class="chainable">
295 <strong>Chainable:</strong> This method is chainable.
296 </div>
297 #end if
298
299
300 #if $method.deprecated
301 <div class="deprecated">
302 <strong>Deprecated</strong> $method.deprecated
303 </div>
304 #end if
305
306 </div>
307
308 </div>
309 <hr />
310 </div>
311 #end for
312 </div>
313 </div>
314 #end if
315
316 #if $inherited.methods
317 <div rel="yui:inheritance">
318 #for $superclassname in $inherited.methods
319 <div class="section field inheritance" rel="yui:superclass" resource="${superclassname}.html">
320 <h4>Methods inherited from <a href="${superclassname}.html" property="yui:name" title="$superclassname">$superclassname</a>:</h4>
321 <div class="content" rel="yui:methods">
322 <code>
323 #set i=0
324 #set l=len($inherited.methods[$superclassname])-1
325 #for $method in $inherited.methods[$superclassname]
326 <span rel="yui:method" resource="${superclassname}.html#method_$method.name">
327 <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#
328 </span>
329 #set i=i+1
330 #end for
331 </code>
332 </div>
333 </div>
334 #end for
335 </div>
336 #end if
337 </div>
338
339 <div rel="yui:events" resource="#events">
340 #if $events
341 <div class="section method details">
342 <h3 id="events">Events</h3>
343 <div class="content">
344 #for $event in $events
345 <div class="$event.access#if $event.deprecated# deprecated#end if#" rel="yui:event" resource="#event_$event.name">
346 <h4>
347 <a name="event_$event.name">$event.name</a></h4>
348 <div class="detail">
349 <code>
350 #if $event.access# $event.access #end if#
351 #if $event.static# $event.static #end if#
352 #if $event.final# $event.final #end if#
353 <strong property="yui:name">$event.name</strong>
354
355 (
356 #if $event.params
357 #set $i=0
358 #set $current = ""
359 #for $param in $event.params#
360 #if $current != $param.name
361 #if $i > 0#, #end if#
362 #set $i = $i + 1
363 #set $current = $param.name
364 $param.name
365 #end if#
366 #end for#
367 #end if
368 )
369
370 </code>
371
372 <div class="description" property="yui:description">
373 $event.description
374 </div>
375
376 <div class="description">
377
378
379 #if $event.params
380 <dl rel="yui:parameters">
381 <dt>Parameters:</dt>
382 #for $param in $event.params
383 <dd rel="yui:parameter">
384 <code><span property="yui:name">$param.name</span>
385 &lt;<span property="yui:type">$param.type</span>&gt;
386 </code>
387 <span property="yui:description">$param.description</span>
388 </dd>
389
390 #end for
391 </dl>
392 #end if
393
394 #if $event.bubbles
395 <div class="bubbles">
396 <strong>Bubbles:</strong> This event bubbles to <a href="${event.bubbles}.html" title="$event.bubbles">$event.bubbles</a>.
397 </div>
398 #end if
399 #if $event.preventable
400 <div class="preventable">
401 <strong>Preventable:</strong> This event is preventable by method: $event.preventable.
402 </div>
403 #end if
404
405 #if $event.deprecated
406 <div class="deprecated">
407 <strong>Deprecated</strong> $event.deprecated
408 </div>
409 #end if
410 </div>
411
412 </div>
413 <hr />
414 </div>
415 #end for
416 </div>
417 </div>
418 #end if
419
420
421 #if $inherited.events
422 <div rel="yui:inheritance">
423 #for $superclassname in $inherited.events
424 <div class="section field inheritance" rel="yui:superclass" resource="${superclassname}.html">
425 <h4>Events inherited from <a href="${superclassname}.html" property="yui:name" title="$superclassname">$superclassname</a>:</h4>
426 <div class="content" rel="yui:events">
427 <code>
428 #set i=0
429 #set l=len($inherited.methods[$superclassname])-1
430 #for $event in $inherited.events[$superclassname]
431 #set i=i+1
432 <span rel="yui:event" resource="${superclassname}.html#event_$event.name">
433 <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#
434 </span>
435 #end for#
436 </code>
437 </div>
438 </div>
439 #end for
440 </div>
441 #end if
442 </div>
443
444 <div rel="yui:attributes" resource="#configattributes">
445 #if $configs
446 <div class="section field details">
447 <h3 id="configattributes">Configuration Attributes</h3>
448 <div class="content">
449 #for $config in $configs
450 <div class="$config.access#if $config.deprecated# deprecated#end if#" rel="yui:attribute" resource="#config_$config.name">
451 <h4><a name="config_$config.name">$config.name</a>
452 <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>
453 </h4>
454 <div class="detail">
455 <div class="description" property="yui:description">
456 $config.description
457 </div>
458 </div>
459
460 #if $config.deprecated
461 <div class="deprecated">
462 <strong>Deprecated</strong> $config.deprecated
463 </div>
464 #end if
465
466 #if $config.default
467 <div class="default">
468 Default Value: $config.default
469 </div>
470 #end if
471
472 <hr />
473 </div>
474 #end for
475
476 </div>
477 </div>
478 #end if
479
480 #if $inherited.configs
481 <div rel="yui:inheritance">
482 #for $superclassname in $inherited.configs
483 <div class="section field inheritance" rel="yui:superclass" resource="${superclassname}.html">
484 <h4>Configuration attributes inherited from <a href="${superclassname}.html" property="yui:name" title="$superclassname">$superclassname</a>:</h4>
485 <div class="content" rel="yui:attributes">
486 <code>
487 #set i=0
488 #set l=len($inherited.methods[$superclassname])-1
489 #for $config in $inherited.configs[$superclassname]
490 #set i=i+1
491 <span rel="yui:attribute" resource="${superclassname}.html#config_$config.name">
492 <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#
493 </span>
494 #set i=i+1
495 #end for#
496 </code>
497 </div>
498 </div>
499 #end for
500 </div>
501 #end if
502 </div>
503
504 #else if $modulename
505
506 <h3>Module: $modulename
507
508 #if $beta
509 <span class="description"><em>Beta</em></span>
510 #end if
511
512 #if $experimental
513 <span class="description"><em>Experimental</em></span>
514 #end if
515
516 </h3>
517 <div class="description summary">
518 $moduledesc
519 </div>
520
521
522 #if $requires
523 <div class="content">
524 Requires: $requires
525 </div>
526 #end if
527 #if $optional
528 <div class="content">
529 Optional: $optional
530 </div>
531 #end if
532
533 <div class="yui-gc">
534 <div class="yui-u first">
535
536 #if $classnames
537 <p>This module contains the following classes:</p>
538 <script>
539 //var YUI_CLASS_LIST = $classList;
540 </script>
541 <div id="splash_classList">
542 <ul>
543 #set $counter = 0
544 #for $classNames in $classList_raw
545 <li><a href="${classNames.name}.html" title="$classNames.name" id="class_${counter}">$classNames.guessedname</a></li>
546 #set $counter = $counter + 1
547 #end for
548 </ul>
549 </div>
550 #end if
551 </div>
552 <div class="yui-u">
553 #set count = 0;
554 #for $info in $submodules
555 #set count = count + 1
556 #end for
557 #if count != 0
558 <div class="submodules">
559 <h4>Submodules:</h4>
560 <dl>
561 #for $info in $submodules
562 <dt><code><a href="${$subdata[$info].name}.html" title="$info">$info</a></code></dt>
563 <dd>$subdata[$info].description</dd>
564 #end for
565 </dl>
566 </div>
567 #end if
568
569 </div>
570 </div>
571
572 #end if
573 </div>
574 </div>
575 <div class="yui-b">
576 <div class="nav">
577
578 #if $modulenames
579 <div id="moduleList" class="module">
580 <h4>Modules</h4>
581 <ul class="content">
582 #for $moduledef in $modulenames
583 #set $css = ""
584 #if $moduledef == $modulename
585 #set $css = "selected"
586 #end if
587 <li class="$css"><a href="module_${moduledef}.html" title="$moduledef">$moduledef</a></li>
588 #end for
589 </ul>
590 </div>
591 #end if
592
593 #if $classnames
594 <div id="classList" class="module">
595 <h4>Classes</h4>
596 <ul class="content">
597 #for $classdef in $classnames
598 #set $css = ""
599 #if $classdef == $classname
600 #set $css = "selected"
601 #end if
602 <li class="$css"><a href="${classdef}.html" title="$classdef">$classdef</a></li>
603 #end for
604 </ul>
605 </div>
606 #end if
607
608 #if $filenames
609 <div id="fileList" class="module">
610 <h4>Files</h4>
611 <ul class="content">
612 #for $filedef in $filenames
613 #set $css = ""
614 #if $filedef == $filename
615 #set $css = "selected"
616 #end if
617 <li class="$css"><a href="${filedef}.html" title="$filedef">$filedef</a></li>
618 #end for
619 </ul>
620 </div>
621 #end if
622
623 #if $properties
624 <div id="propertyList" class="module">
625 <h4>Properties</h4>
626 <ul class="content">
627 #for $prop in $properties
628 <li class="${prop.access}#if $prop.deprecated# deprecated#end if#"><a href="#property_${prop.name}" title="$prop.name">$prop.name</a></li>
629 #end for
630 </ul>
631 </div>
632 #end if
633
634 #if $methods
635 <div id="methodsList" class="module">
636 <h4>Methods</h4>
637 <ul class="content">
638 #for $method in $methods
639 <li class="${method.access}#if $method.deprecated# deprecated#end if#"><a href="#method_${method.name}" title="$method.name">$method.name</a></li>
640 #end for
641 </ul>
642 </div>
643 #end if
644
645 #if $events
646 <div id="eventsList" class="module">
647 <h4>Events</h4>
648 <ul class="content">
649 #for $event in $events
650 <li class="${event.access}#if $event.deprecated# deprecated#end if#"><a href="#event_${event.name}" title="$event.name">$event.name</a></li>
651 #end for
652 </ul>
653 </div>
654 #end if
655
656 #if $configs
657 <div id="configList" class="module">
658 <h4>Configuration Attributes</h4>
659 <ul class="content">
660 #for $config in $configs
661 <li class="${config.access}#if $config.deprecated# deprecated#end if#"><a href="#config_${config.name}" title="$config.name">$config.name</a></li>
662 #end for
663 </ul>
664 </div>
665 #end if
666
667 </div>
668 </div>
669 </div>
670 <div id="ft">
671 <hr />
672 Copyright &copy; $year Richard Wall. All rights reserved.
673 </div>
674</div>
675<script type="text/javascript">
676 ALL_YUI_PROPS = $allprops;
677</script>
678#if $ydn
679<!--MyBlogLog instrumentation-->
680<script type="text/javascript"
681src="http://track2.mybloglog.com/js/jsserv.php?mblID=2007020704011645"></script>
682#end if
683</body>
684</html>
685#end filter

Subscribers

People subscribed via source and target branches

to all changes: