← Back to team overview

launchpad-reviewers team mailing list archive

[Merge] lp:~rockstar/launchpad/javascript-refresh into lp:launchpad/devel

 

Paul Hummer has proposed merging lp:~rockstar/launchpad/javascript-refresh into lp:launchpad/devel.

Requested reviews:
  Launchpad code reviewers (launchpad-reviewers)


This branch updates the lazr-js/yui code to YUI 3.2 and the most up-to-date lazr-js widgets.  This branch had lots of problems in the process of doing this.  I'll be writing up a wiki page on how to do this in the future.  Here's some caveats that I should point out:

Since we're not using the loader, we have to use <script> tags for EVERY js file lazr-js AND yui.  This means that base-layout-macros had some big changes, because we were missing a lot of javascript files as it was, and there were LOTS of new files between 3.0 and 3.2 (look at all those datatype libraries!).

Hopefully, the 512K javascript file bug we had in windmill has gone away in the newest windmill, because otherwise we're SOL, because yui 3.2 is BIG.  launchpad.js is now larger than 1M with everything combined.  I've removed the jssize check from the Makefile, and if we no longer need it, I'll remove it.  I'm running the windmill tests in ec2 right now (I'm not sure if my windmill environment is sane enough to REALLY say, but it seems like things should be fine).

The generated class file names in yui3 widgets uses yui3- instead of yui-, so I had to make those changes.

I've moved the old cssgrids into our tree so that I didn't have to update EVERYTHING use the new cssgrids module.  I've gone through many pages (because I was testing interactively with windmill) and the styles seem to be okay doing this.
-- 
https://code.launchpad.net/~rockstar/launchpad/javascript-refresh/+merge/38373
Your team Launchpad code reviewers is requested to review the proposed merge of lp:~rockstar/launchpad/javascript-refresh into lp:launchpad/devel.
=== modified file 'Makefile'
--- Makefile	2010-09-07 18:15:01 +0000
+++ Makefile	2010-10-14 00:09:02 +0000
@@ -154,7 +154,6 @@
 		$(shell $(HERE)/utilities/yui-deps.py) \
 		$(shell $(PY) $(HERE)/utilities/lp-deps.py) \
 		lib/canonical/launchpad/icing/lazr/build/lazr.js
-	${SHHH} bin/jssize
 
 eggs:
 	# Usually this is linked via link-external-sourcecode, but in

=== modified file 'buildout-templates/bin/combine-css.in'
--- buildout-templates/bin/combine-css.in	2010-04-20 19:10:35 +0000
+++ buildout-templates/bin/combine-css.in	2010-10-14 00:09:02 +0000
@@ -23,6 +23,9 @@
     'style.css',
     'lazr/build/yui/cssreset/reset.css',
     'lazr/build/yui/cssfonts/fonts.css',
+    # Use the old cssgrids instead of the new cssgrids.
+    #'lazr/build/yui/cssgrids/grids.css',
+    'cssgrids/grids.css',
     'lazr/build/yui/cssgrids/grids.css',
     'lazr/build/lazr/assets/skins/sam/lazr.css',
     'lazr/build/inlineedit/assets/skins/sam/editor.css',

=== added directory 'lib/canonical/launchpad/icing/cssgrids'
=== added file 'lib/canonical/launchpad/icing/cssgrids/grids-context-min.css'
--- lib/canonical/launchpad/icing/cssgrids/grids-context-min.css	1970-01-01 00:00:00 +0000
+++ lib/canonical/launchpad/icing/cssgrids/grids-context-min.css	2010-10-14 00:09:02 +0000
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2009, Yahoo! Inc. All rights reserved.
+Code licensed under the BSD License:
+http://developer.yahoo.net/yui/license.txt
+version: 3.0.0
+build: 1549
+*/
+.yui-cssgrids body{text-align:center;margin-left:auto;margin-right:auto;}.yui-cssgrids .yui-d0,.yui-cssgrids .yui-d1,.yui-cssgrids .yui-d1f,.yui-cssgrids .yui-d2,.yui-cssgrids .yui-d2f,.yui-cssgrids .yui-d3,.yui-cssgrids .yui-d3f{margin:auto;text-align:left;width:57.69em;*width:56.25em;}.yui-cssgrids .yui-t1,.yui-cssgrids .yui-t2,.yui-cssgrids .yui-t3,.yui-cssgrids .yui-t4,.yui-cssgrids .yui-t5,.yui-cssgrids .yui-t6{margin:auto;text-align:left;width:100%;}.yui-cssgrids .yui-d0{margin:auto 10px;width:auto;}.yui-cssgrids .yui-d0f{width:100%;}.yui-cssgrids .yui-d2{width:73.076em;*width:71.25em;}.yui-cssgrids .yui-d2f{width:950px;}.yui-cssgrids .yui-d3{width:74.923em;*width:73.05em;}.yui-cssgrids .yui-d3f{width:974px;}.yui-cssgrids .yui-b{position:relative;}.yui-cssgrids .yui-b{_position:static;}.yui-cssgrids .yui-main .yui-b{position:static;}.yui-cssgrids .yui-main{width:100%;}.yui-cssgrids .yui-t1 .yui-main,.yui-cssgrids .yui-t2 .yui-main,.yui-cssgrids .yui-t3 .yui-main{float:right;margin-left:-25em;}.yui-cssgrids .yui-t4 .yui-main,.yui-cssgrids .yui-t5 .yui-main,.yui-cssgrids .yui-t6 .yui-main{float:left;margin-right:-25em;}.yui-cssgrids .yui-t1 .yui-b{float:left;width:12.30769em;*width:12.00em;}.yui-cssgrids .yui-t1 .yui-main .yui-b{margin-left:13.30769em;*margin-left:12.975em;}.yui-cssgrids .yui-t2 .yui-b{float:left;width:13.84615em;*width:13.50em;}.yui-cssgrids .yui-t2 .yui-main .yui-b{margin-left:14.84615em;*margin-left:14.475em;}.yui-cssgrids .yui-t3 .yui-b{float:left;width:23.0769em;*width:22.50em;}.yui-cssgrids .yui-t3 .yui-main .yui-b{margin-left:24.0769em;*margin-left:23.475em;}.yui-cssgrids .yui-t4 .yui-b{float:right;width:13.8456em;*width:13.50em;}.yui-cssgrids .yui-t4 .yui-main .yui-b{margin-right:14.8456em;*margin-right:14.475em;}.yui-cssgrids .yui-t5 .yui-b{float:right;width:18.4615em;*width:18.00em;}.yui-cssgrids .yui-t5 .yui-main .yui-b{margin-right:19.4615em;*margin-right:18.975em;}.yui-cssgrids .yui-t6 .yui-b{float:right;width:23.0769em;*width:22.50em;}.yui-cssgrids .yui-t6 .yui-main .yui-b{margin-right:24.0769em;*margin-right:23.475em;}.yui-cssgrids .yui-main .yui-b{float:none;width:auto;}.yui-cssgrids .yui-gb .yui-u,.yui-cssgrids .yui-g .yui-gb .yui-u,.yui-cssgrids .yui-gb .yui-g,.yui-cssgrids .yui-gb .yui-gb,.yui-cssgrids .yui-gb .yui-gc,.yui-cssgrids .yui-gb .yui-gd,.yui-cssgrids .yui-gb .yui-ge,.yui-cssgrids .yui-gb .yui-gf,.yui-cssgrids .yui-gc .yui-u,.yui-cssgrids .yui-gc .yui-g,.yui-cssgrids .yui-gd .yui-u{float:left;}.yui-cssgrids .yui-g .yui-u,.yui-cssgrids .yui-g .yui-g,.yui-cssgrids .yui-g .yui-gb,.yui-cssgrids .yui-g .yui-gc,.yui-cssgrids .yui-g .yui-gd,.yui-cssgrids .yui-g .yui-ge,.yui-cssgrids .yui-g .yui-gf,.yui-cssgrids .yui-gc .yui-u,.yui-cssgrids .yui-gd .yui-g,.yui-cssgrids .yui-g .yui-gc .yui-u,.yui-cssgrids .yui-ge .yui-u,.yui-cssgrids .yui-ge .yui-g,.yui-cssgrids .yui-gf .yui-g,.yui-cssgrids .yui-gf .yui-u{float:right;}.yui-cssgrids .yui-g div.first,.yui-cssgrids .yui-gb div.first,.yui-cssgrids .yui-gc div.first,.yui-cssgrids .yui-gd div.first,.yui-cssgrids .yui-ge div.first,.yui-cssgrids .yui-gf div.first,.yui-cssgrids .yui-g .yui-gc div.first,.yui-cssgrids .yui-g .yui-ge div.first,.yui-cssgrids .yui-gc div.first div.first{float:left;}.yui-cssgrids .yui-g .yui-u,.yui-cssgrids .yui-g .yui-g,.yui-cssgrids .yui-g .yui-gb,.yui-cssgrids .yui-g .yui-gc,.yui-cssgrids .yui-g .yui-gd,.yui-cssgrids .yui-g .yui-ge,.yui-cssgrids .yui-g .yui-gf{width:49.1%;}.yui-cssgrids .yui-gb .yui-u,.yui-cssgrids .yui-g .yui-gb .yui-u,.yui-cssgrids .yui-gb .yui-g,.yui-cssgrids .yui-gb .yui-gb,.yui-cssgrids .yui-gb .yui-gc,.yui-cssgrids .yui-gb .yui-gd,.yui-cssgrids .yui-gb .yui-ge,.yui-cssgrids .yui-gb .yui-gf,.yui-cssgrids .yui-gc .yui-u,.yui-cssgrids .yui-gc .yui-g,.yui-cssgrids .yui-gd .yui-u{width:32%;margin-left:2.0%;}.yui-cssgrids .yui-gb .yui-u{*width:31.8%;*margin-left:1.9%;}.yui-cssgrids .yui-gc div.first,.yui-cssgrids .yui-gd .yui-u{width:66%;_width:65.7%;}.yui-cssgrids .yui-gd div.first{width:32%;_width:31.5%;}.yui-cssgrids .yui-ge div.first,.yui-cssgrids .yui-gf .yui-u{width:74.2%;_width:74%;}.yui-cssgrids .yui-ge .yui-u,.yui-cssgrids .yui-gf div.first{width:24%;_width:23.8%;}.yui-cssgrids .yui-g .yui-gb div.first,.yui-cssgrids .yui-gb div.first,.yui-cssgrids .yui-gc div.first,.yui-cssgrids .yui-gd div.first{margin-left:0;}.yui-cssgrids .yui-g .yui-g .yui-u,.yui-cssgrids .yui-gb .yui-g .yui-u,.yui-cssgrids .yui-gc .yui-g .yui-u,.yui-cssgrids .yui-gd .yui-g .yui-u,.yui-cssgrids .yui-ge .yui-g .yui-u,.yui-cssgrids .yui-gf .yui-g .yui-u{width:49%;*width:48.1%;*margin-left:0;}.yui-cssgrids .yui-g .yui-gb div.first,.yui-cssgrids .yui-gb .yui-gb div.first{*margin-right:0;*width:32%;_width:31.7%;}.yui-cssgrids .yui-g .yui-gc div.first,.yui-cssgrids .yui-gd .yui-g{width:66%;}.yui-cssgrids .yui-gb .yui-g div.first{*margin-right:4%;_margin-right:1.3%;}.yui-cssgrids .yui-gb .yui-gc div.first,.yui-cssgrids .yui-gb .yui-gd div.first{*margin-right:0;}.yui-cssgrids .yui-gb .yui-gb .yui-u,.yui-cssgrids .yui-gb .yui-gc .yui-u{*margin-left:1.8%;_margin-left:4%;}.yui-cssgrids .yui-g .yui-gb .yui-u{_margin-left:1.0%;}.yui-cssgrids .yui-gb .yui-gd .yui-u{*width:66%;_width:61.2%;}.yui-cssgrids .yui-gb .yui-gd div.first{*width:31%;_width:29.5%;}.yui-cssgrids .yui-g .yui-gc .yui-u,.yui-cssgrids .yui-gb .yui-gc .yui-u{width:32%;_float:right;margin-right:0;_margin-left:0;}.yui-cssgrids .yui-gb .yui-gc div.first{width:66%;*float:left;*margin-left:0;}.yui-cssgrids .yui-gb .yui-ge .yui-u,.yui-cssgrids .yui-gb .yui-gf .yui-u{margin:0;}.yui-cssgrids .yui-gb .yui-gb .yui-u{_margin-left:.7%;}.yui-cssgrids .yui-gb .yui-g div.first,.yui-cssgrids .yui-gb .yui-gb div.first{*margin-left:0;}.yui-cssgrids .yui-gc .yui-g .yui-u,.yui-cssgrids .yui-gd .yui-g .yui-u{*width:48.1%;*margin-left:0;}.yui-cssgrids .yui-gb .yui-gd div.first{width:32%;}.yui-cssgrids .yui-g .yui-gd div.first{_width:29.9%;}.yui-cssgrids .yui-ge .yui-g{width:24%;}.yui-cssgrids .yui-gf .yui-g{width:74.2%;}.yui-cssgrids .yui-gb .yui-ge div.yui-u,.yui-cssgrids .yui-gb .yui-gf div.yui-u{float:right;}.yui-cssgrids .yui-gb .yui-ge div.first,.yui-cssgrids .yui-gb .yui-gf div.first{float:left;}.yui-cssgrids .yui-gb .yui-ge .yui-u,.yui-cssgrids .yui-gb .yui-gf div.first{*width:24%;_width:20%;}.yui-cssgrids .yui-gc .yui-gf .yui-u{width:74%;_width:73%;}.yui-cssgrids .yui-gc .yui-gf div.first{width:24%;}.yui-cssgrids .yui-gb .yui-ge div.first,.yui-cssgrids .yui-gb .yui-gf .yui-u{*width:73.5%;_width:65.5%;}.yui-cssgrids .yui-ge div.first .yui-gd .yui-u{width:65%;}.yui-cssgrids .yui-ge div.first .yui-gd div.first{width:32%;}.yui-cssgrids #bd:after,.yui-cssgrids .yui-g:after,.yui-cssgrids .yui-gb:after,.yui-cssgrids .yui-gc:after,.yui-cssgrids .yui-gd:after,.yui-cssgrids .yui-ge:after,.yui-cssgrids .yui-gf:after,.yui-cssgrids .yui-t1:after,.yui-cssgrids .yui-t2:after,.yui-cssgrids .yui-t3:after,.yui-cssgrids .yui-t4:after,.yui-cssgrids .yui-t5:after,.yui-cssgrids .yui-t6:after{content:".";display:block;height:0;clear:both;visibility:hidden;}.yui-cssgrids #bd,.yui-cssgrids .yui-g,.yui-cssgrids .yui-gb,.yui-cssgrids .yui-gc,.yui-cssgrids .yui-gd,.yui-cssgrids .yui-ge,.yui-cssgrids .yui-gf,.yui-cssgrids .yui-t1,.yui-cssgrids .yui-t2,.yui-cssgrids .yui-t3,.yui-cssgrids .yui-t4,.yui-cssgrids .yui-t5,.yui-cssgrids .yui-t6{zoom:1;}
\ No newline at end of file

=== added file 'lib/canonical/launchpad/icing/cssgrids/grids-context.css'
--- lib/canonical/launchpad/icing/cssgrids/grids-context.css	1970-01-01 00:00:00 +0000
+++ lib/canonical/launchpad/icing/cssgrids/grids-context.css	2010-10-14 00:09:02 +0000
@@ -0,0 +1,491 @@
+/*
+Copyright (c) 2009, Yahoo! Inc. All rights reserved.
+Code licensed under the BSD License:
+http://developer.yahoo.net/yui/license.txt
+version: 3.0.0
+build: 1549
+*/
+/*
+*
+* The YUI CSS Foundation uses the *property and _property CSS filter
+* techniques to shield a value from A-grade browsers [1] other than
+* IE6 & IE7 (*property) and IE6 (_property)
+*
+/
+Section: General Rules
+*/
+.yui-cssgrids body {
+	/* center the page */
+	text-align: center;
+	margin-left: auto;
+	margin-right: auto;
+}
+/*
+Section: Page Width Rules (#doc, #doc2, #doc3, #doc4)
+*/
+/*
+Subsection: General
+*/
+.yui-cssgrids .yui-d0, /* 100% */
+.yui-cssgrids .yui-d1, /* 750px */
+.yui-cssgrids .yui-d1f, /* 750px fixed */
+.yui-cssgrids .yui-d2, /* 950px */
+.yui-cssgrids .yui-d2f, /* 950px fixed */
+.yui-cssgrids .yui-d3, /* 974px */
+.yui-cssgrids .yui-d3f { /* 974px fixed */
+	margin: auto;
+	text-align: left;
+	width: 57.69em;
+	*width: 56.25em; /* doc1*/
+}
+
+.yui-cssgrids .yui-t1,
+.yui-cssgrids .yui-t2,
+.yui-cssgrids .yui-t3,
+.yui-cssgrids .yui-t4,
+.yui-cssgrids .yui-t5,
+.yui-cssgrids .yui-t6 {
+	margin: auto;
+	text-align: left;
+	width: 100%;
+}
+
+/*
+Subsection: 100% (doc)
+*/
+.yui-cssgrids .yui-d0 {
+	/* Left and Right margins are not a structural part of Grids. Without them Grids
+	works fine, but content bleeds to the very edge of the document, which often
+	impairs readability and usability. They are
+	provided because they prevent the content from "bleeding" into the browser's chrome.*/
+	margin: auto 10px;
+	width: auto;
+}
+.yui-cssgrids .yui-d0f {
+	width: 100%;
+}
+
+/*
+Subsection: 950 Centered (doc2)
+*/
+.yui-cssgrids .yui-d2 {
+	width: 73.076em;
+	*width: 71.25em;
+}
+.yui-cssgrids .yui-d2f {
+	width: 950px;
+}
+/*
+Subsection: 974 Centered (doc3)
+*/
+.yui-cssgrids .yui-d3 {
+	width: 74.923em;
+	*width: 73.05em;
+}
+.yui-cssgrids .yui-d3f {
+	width: 974px;
+}
+/*
+Section: Preset Template Rules (.yui-t[1-6])
+*/
+/*
+Subsection: General
+*/
+
+/* to preserve source-order independence for Gecko without breaking IE */
+.yui-cssgrids .yui-b {
+	position: relative;
+}
+.yui-cssgrids .yui-b {
+	_position: static;
+}
+.yui-cssgrids .yui-main .yui-b {
+	position: static;
+}
+.yui-cssgrids .yui-main {
+	width: 100%;
+}
+.yui-cssgrids .yui-t1 .yui-main,
+.yui-cssgrids .yui-t2 .yui-main,
+.yui-cssgrids .yui-t3 .yui-main {
+	float: right;
+	/* IE: preserve layout at narrow widths */
+	margin-left: -25em;
+}
+.yui-cssgrids .yui-t4 .yui-main,
+.yui-cssgrids .yui-t5 .yui-main,
+.yui-cssgrids .yui-t6 .yui-main {
+	float: left;
+	/* IE: preserve layout at narrow widths */
+	margin-right: -25em;
+}
+
+/* Subsection: For Specific Template Presets */
+
+/**
+* Nudge down to get to 13px equivalent for these form elements
+*/
+
+/*
+TODO Create t1-6's that are based on fixed widths
+*/
+/* t1 narrow block = left, equivalent of 160px */
+.yui-cssgrids .yui-t1 .yui-b {
+	float: left;
+	width: 12.30769em;
+	*width: 12.00em;
+}
+.yui-cssgrids .yui-t1 .yui-main .yui-b {
+	margin-left: 13.30769em;
+	*margin-left:12.975em;
+}
+/* t2 narrow block = left, equivalent of 180px */
+.yui-cssgrids .yui-t2 .yui-b {
+	float: left;
+	width: 13.84615em;
+	*width: 13.50em;
+}
+.yui-cssgrids .yui-t2 .yui-main .yui-b {
+	margin-left: 14.84615em;
+	*margin-left: 14.475em;
+}
+/* t3 narrow block = left, equivalent of 300px */
+.yui-cssgrids .yui-t3 .yui-b {
+	float: left;
+	width: 23.0769em;
+	*width: 22.50em;
+}
+.yui-cssgrids .yui-t3 .yui-main .yui-b {
+	margin-left: 24.0769em;
+	*margin-left: 23.475em;
+}
+/* t4 narrow block = right, equivalent of 180px */
+.yui-cssgrids .yui-t4 .yui-b {
+	float: right;
+	width: 13.8456em;
+	*width: 13.50em;
+}
+.yui-cssgrids .yui-t4 .yui-main .yui-b {
+	margin-right: 14.8456em;
+	*margin-right: 14.475em;
+}
+/* t5 narrow block = right, equivalent of 240px */
+.yui-cssgrids .yui-t5 .yui-b {
+	float: right;
+	width: 18.4615em;
+	*width: 18.00em;
+}
+.yui-cssgrids .yui-t5 .yui-main .yui-b {
+	margin-right: 19.4615em;
+	*margin-right: 18.975em;
+}
+/* t6 narrow block = equivalent of 300px */
+.yui-cssgrids .yui-t6 .yui-b {
+	float: right;
+	width: 23.0769em;
+	*width: 22.50em;
+}
+.yui-cssgrids .yui-t6 .yui-main .yui-b {
+	margin-right: 24.0769em;
+	*margin-right: 23.475em;
+}
+
+.yui-cssgrids .yui-main .yui-b {
+	float: none;
+	width: auto;
+}
+
+/*
+Section: Grids and Nesting Grids
+*/
+
+/*
+Subsection: Children generally take half the available space
+*/
+
+.yui-cssgrids .yui-gb .yui-u,
+.yui-cssgrids .yui-g .yui-gb .yui-u,
+.yui-cssgrids .yui-gb .yui-g,
+.yui-cssgrids .yui-gb .yui-gb,
+.yui-cssgrids .yui-gb .yui-gc,
+.yui-cssgrids .yui-gb .yui-gd,
+.yui-cssgrids .yui-gb .yui-ge,
+.yui-cssgrids .yui-gb .yui-gf,
+.yui-cssgrids .yui-gc .yui-u,
+.yui-cssgrids .yui-gc .yui-g,
+.yui-cssgrids .yui-gd .yui-u {
+	float: left;
+}
+
+/*Float units (and sub grids) to the right */
+.yui-cssgrids .yui-g .yui-u,
+.yui-cssgrids .yui-g .yui-g,
+.yui-cssgrids .yui-g .yui-gb,
+.yui-cssgrids .yui-g .yui-gc,
+.yui-cssgrids .yui-g .yui-gd,
+.yui-cssgrids .yui-g .yui-ge,
+.yui-cssgrids .yui-g .yui-gf,
+.yui-cssgrids .yui-gc .yui-u,
+.yui-cssgrids .yui-gd .yui-g,
+.yui-cssgrids .yui-g .yui-gc .yui-u,
+.yui-cssgrids .yui-ge .yui-u,
+.yui-cssgrids .yui-ge .yui-g,
+.yui-cssgrids .yui-gf .yui-g,
+.yui-cssgrids .yui-gf .yui-u {
+	float: right;
+}
+
+/*Float units (and sub grids) to the left */
+.yui-cssgrids .yui-g div.first,
+.yui-cssgrids .yui-gb div.first,
+.yui-cssgrids .yui-gc div.first,
+.yui-cssgrids .yui-gd div.first,
+.yui-cssgrids .yui-ge div.first,
+.yui-cssgrids .yui-gf div.first,
+.yui-cssgrids .yui-g .yui-gc div.first,
+.yui-cssgrids .yui-g .yui-ge div.first,
+.yui-cssgrids .yui-gc div.first div.first {
+	float: left;
+}
+
+.yui-cssgrids .yui-g .yui-u,
+.yui-cssgrids .yui-g .yui-g,
+.yui-cssgrids .yui-g .yui-gb,
+.yui-cssgrids .yui-g .yui-gc,
+.yui-cssgrids .yui-g .yui-gd,
+.yui-cssgrids .yui-g .yui-ge,
+.yui-cssgrids .yui-g .yui-gf {
+	width: 49.1%;
+}
+
+.yui-cssgrids .yui-gb .yui-u,
+.yui-cssgrids .yui-g .yui-gb .yui-u,
+.yui-cssgrids .yui-gb .yui-g,
+.yui-cssgrids .yui-gb .yui-gb,
+.yui-cssgrids .yui-gb .yui-gc,
+.yui-cssgrids .yui-gb .yui-gd,
+.yui-cssgrids .yui-gb .yui-ge,
+.yui-cssgrids .yui-gb .yui-gf,
+.yui-cssgrids .yui-gc .yui-u,
+.yui-cssgrids .yui-gc .yui-g,
+.yui-cssgrids .yui-gd .yui-u {
+	width: 32%;
+	margin-left: 2.0%;
+}
+
+/* Give IE some extra breathing room for 1/3-based rounding issues */
+.yui-cssgrids .yui-gb .yui-u {
+	*width: 31.8%;
+	*margin-left: 1.9%;
+}
+
+.yui-cssgrids .yui-gc div.first,
+.yui-cssgrids .yui-gd .yui-u {
+	width: 66%;
+	_width: 65.7%;
+}
+.yui-cssgrids .yui-gd div.first {
+	width: 32%;
+	_width: 31.5%;
+}
+
+.yui-cssgrids .yui-ge div.first,
+.yui-cssgrids .yui-gf .yui-u {
+	width: 74.2%;
+	_width: 74%;
+}
+
+.yui-cssgrids .yui-ge .yui-u,
+.yui-cssgrids .yui-gf div.first {
+	width: 24%;
+	_width: 23.8%;
+}
+
+.yui-cssgrids .yui-g .yui-gb div.first,
+.yui-cssgrids .yui-gb div.first,
+.yui-cssgrids .yui-gc div.first,
+.yui-cssgrids .yui-gd div.first {
+	margin-left: 0;
+}
+
+/*
+Section: Deep Nesting
+*/
+.yui-cssgrids .yui-g .yui-g .yui-u,
+.yui-cssgrids .yui-gb .yui-g .yui-u,
+.yui-cssgrids .yui-gc .yui-g .yui-u,
+.yui-cssgrids .yui-gd .yui-g .yui-u,
+.yui-cssgrids .yui-ge .yui-g .yui-u,
+.yui-cssgrids .yui-gf .yui-g .yui-u {
+	width: 49%;
+	*width: 48.1%;
+	*margin-left: 0;
+}
+
+.yui-cssgrids .yui-g .yui-gb div.first,
+.yui-cssgrids .yui-gb .yui-gb div.first {
+	*margin-right: 0;
+	*width: 32%;
+	_width: 31.7%;
+}
+
+.yui-cssgrids .yui-g .yui-gc div.first,
+.yui-cssgrids .yui-gd .yui-g {
+	width: 66%;
+}
+
+.yui-cssgrids .yui-gb .yui-g div.first {
+	*margin-right: 4%;
+	_margin-right: 1.3%;
+}
+
+.yui-cssgrids .yui-gb .yui-gc div.first,
+.yui-cssgrids .yui-gb .yui-gd div.first {
+	*margin-right: 0;
+}
+
+.yui-cssgrids .yui-gb .yui-gb .yui-u,
+.yui-cssgrids .yui-gb .yui-gc .yui-u {
+	*margin-left: 1.8%;
+	_margin-left: 4%;
+}
+
+.yui-cssgrids .yui-g .yui-gb .yui-u {
+	_margin-left: 1.0%;
+}
+
+.yui-cssgrids .yui-gb .yui-gd .yui-u {
+	*width: 66%;
+	_width: 61.2%;
+}
+.yui-cssgrids .yui-gb .yui-gd div.first {
+	*width: 31%;
+	_width: 29.5%;
+}
+
+.yui-cssgrids .yui-g .yui-gc .yui-u,
+.yui-cssgrids .yui-gb .yui-gc .yui-u {
+	width: 32%;
+	_float: right;
+	margin-right: 0;
+	_margin-left: 0;
+}
+.yui-cssgrids .yui-gb .yui-gc div.first {
+	width: 66%;
+	*float: left;
+	*margin-left: 0;
+}
+
+.yui-cssgrids .yui-gb .yui-ge .yui-u,
+.yui-cssgrids .yui-gb .yui-gf .yui-u {
+	margin: 0;
+}
+
+.yui-cssgrids .yui-gb .yui-gb .yui-u {
+	_margin-left: .7%;
+}
+
+.yui-cssgrids .yui-gb .yui-g div.first,
+.yui-cssgrids .yui-gb .yui-gb div.first {
+	*margin-left:0;
+}
+
+.yui-cssgrids .yui-gc .yui-g .yui-u,
+.yui-cssgrids .yui-gd .yui-g .yui-u {
+	*width: 48.1%;
+	*margin-left: 0;
+}
+
+.yui-cssgrids .yui-gb .yui-gd div.first {
+	width: 32%;
+}
+.yui-cssgrids .yui-g .yui-gd div.first {
+	_width: 29.9%;
+}
+
+.yui-cssgrids .yui-ge .yui-g {
+	width: 24%;
+}
+.yui-cssgrids .yui-gf .yui-g {
+	width: 74.2%;
+}
+
+.yui-cssgrids .yui-gb .yui-ge div.yui-u,
+.yui-cssgrids .yui-gb .yui-gf div.yui-u {
+	float: right;
+}
+.yui-cssgrids .yui-gb .yui-ge div.first,
+.yui-cssgrids .yui-gb .yui-gf div.first {
+	float: left;
+}
+
+/* Width Accommodation for Nested Contexts */
+.yui-cssgrids .yui-gb .yui-ge .yui-u,
+.yui-cssgrids .yui-gb .yui-gf div.first {
+	*width: 24%;
+	_width: 20%;
+}
+
+/* Width Accommodation for Nested Contexts */
+
+.yui-cssgrids .yui-gc .yui-gf .yui-u {
+	width: 74%;
+	_width: 73%;
+}
+
+.yui-cssgrids .yui-gc .yui-gf div.first {
+	width: 24%;
+}
+
+.yui-cssgrids .yui-gb .yui-ge div.first,
+.yui-cssgrids .yui-gb .yui-gf .yui-u {
+	*width: 73.5%;
+	_width: 65.5%;
+}
+
+/* Patch for GD within GE */
+.yui-cssgrids .yui-ge div.first .yui-gd .yui-u {
+	width: 65%;
+}
+.yui-cssgrids .yui-ge div.first .yui-gd div.first {
+	width: 32%;
+}
+
+/*
+Section: Clearing. zoom for IE, :after for others
+*/
+
+.yui-cssgrids #bd:after,
+.yui-cssgrids .yui-g:after,
+.yui-cssgrids .yui-gb:after,
+.yui-cssgrids .yui-gc:after,
+.yui-cssgrids .yui-gd:after,
+.yui-cssgrids .yui-ge:after,
+.yui-cssgrids .yui-gf:after,
+.yui-cssgrids .yui-t1:after,
+.yui-cssgrids .yui-t2:after,
+.yui-cssgrids .yui-t3:after,
+.yui-cssgrids .yui-t4:after,
+.yui-cssgrids .yui-t5:after,
+.yui-cssgrids .yui-t6:after {
+	content: ".";
+	display: block;
+	height: 0;
+	clear: both;
+	visibility: hidden;
+}
+.yui-cssgrids #bd,
+.yui-cssgrids .yui-g,
+.yui-cssgrids .yui-gb,
+.yui-cssgrids .yui-gc,
+.yui-cssgrids .yui-gd,
+.yui-cssgrids .yui-ge,
+.yui-cssgrids .yui-gf,
+.yui-cssgrids .yui-t1,
+.yui-cssgrids .yui-t2,
+.yui-cssgrids .yui-t3,
+.yui-cssgrids .yui-t4,
+.yui-cssgrids .yui-t5,
+.yui-cssgrids .yui-t6 {
+	zoom: 1;
+}
\ No newline at end of file

=== added file 'lib/canonical/launchpad/icing/cssgrids/grids-min.css'
--- lib/canonical/launchpad/icing/cssgrids/grids-min.css	1970-01-01 00:00:00 +0000
+++ lib/canonical/launchpad/icing/cssgrids/grids-min.css	2010-10-14 00:09:02 +0000
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2009, Yahoo! Inc. All rights reserved.
+Code licensed under the BSD License:
+http://developer.yahoo.net/yui/license.txt
+version: 3.0.0
+build: 1549
+*/
+body{text-align:center;margin-left:auto;margin-right:auto;}.yui-d0,.yui-d1,.yui-d1f,.yui-d2,.yui-d2f,.yui-d3,.yui-d3f{margin:auto;text-align:left;width:57.69em;*width:56.25em;}.yui-t1,.yui-t2,.yui-t3,.yui-t4,.yui-t5,.yui-t6{margin:auto;text-align:left;width:100%;}.yui-d0{margin:auto 10px;width:auto;}.yui-d0f{width:100%;}.yui-d2{width:73.076em;*width:71.25em;}.yui-d2f{width:950px;}.yui-d3{width:74.923em;*width:73.05em;}.yui-d3f{width:974px;}.yui-b{position:relative;}.yui-b{_position:static;}.yui-main .yui-b{position:static;}.yui-main{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:12.975em;}.yui-t2 .yui-b{float:left;width:13.84615em;*width:13.50em;}.yui-t2 .yui-main .yui-b{margin-left:14.84615em;*margin-left:14.475em;}.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.475em;}.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.475em;}.yui-t5 .yui-b{float:right;width:18.4615em;*width:18.00em;}.yui-t5 .yui-main .yui-b{margin-right:19.4615em;*margin-right:18.975em;}.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.475em;}.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:2.0%;}.yui-gb .yui-u{*width:31.8%;*margin-left:1.9%;}.yui-gc div.first,.yui-gd .yui-u{width:66%;_width:65.7%;}.yui-gd div.first{width:32%;_width:31.5%;}.yui-ge div.first,.yui-gf .yui-u{width:74.2%;_width:74%;}.yui-ge .yui-u,.yui-gf div.first{width:24%;_width:23.8%;}.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-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,.yui-t1:after,.yui-t2:after,.yui-t3:after,.yui-t4:after,.yui-t5:after,.yui-t6:after{content:".";display:block;height:0;clear:both;visibility:hidden;}#bd,.yui-g,.yui-gb,.yui-gc,.yui-gd,.yui-ge,.yui-gf,.yui-t1,.yui-t2,.yui-t3,.yui-t4,.yui-t5,.yui-t6{zoom:1;}
\ No newline at end of file

=== added file 'lib/canonical/launchpad/icing/cssgrids/grids.css'
--- lib/canonical/launchpad/icing/cssgrids/grids.css	1970-01-01 00:00:00 +0000
+++ lib/canonical/launchpad/icing/cssgrids/grids.css	2010-10-14 00:09:02 +0000
@@ -0,0 +1,481 @@
+/*
+Copyright (c) 2009, Yahoo! Inc. All rights reserved.
+Code licensed under the BSD License:
+http://developer.yahoo.net/yui/license.txt
+version: 3.0.0
+build: 1549
+*/
+/*
+*
+* The YUI CSS Foundation uses the *property and _property CSS filter
+* techniques to shield a value from A-grade browsers [1] other than
+* IE6 & IE7 (*property) and IE6 (_property)
+*
+/
+Section: General Rules
+*/
+body {
+	/* center the page */
+	text-align: center;
+	margin-left: auto;
+	margin-right: auto;
+}
+/*
+Section: Page Width Rules (#doc, #doc2, #doc3, #doc4)
+*/
+/*
+Subsection: General
+*/
+.yui-d0, /* 100% */
+.yui-d1, /* 750px */
+.yui-d1f, /* 750px fixed */
+.yui-d2, /* 950px */
+.yui-d2f, /* 950px fixed */
+.yui-d3, /* 974px */
+.yui-d3f { /* 974px fixed */
+	margin: auto;
+	text-align: left;
+	width: 57.69em;
+	*width: 56.25em; /* doc1*/
+}
+
+.yui-t1,
+.yui-t2,
+.yui-t3,
+.yui-t4,
+.yui-t5,
+.yui-t6 {
+	margin: auto;
+	text-align: left;
+	width: 100%;
+}
+
+/*
+Subsection: 100% (doc)
+*/
+.yui-d0 {
+	/* Left and Right margins are not a structural part of Grids. Without them Grids
+	works fine, but content bleeds to the very edge of the document, which often
+	impairs readability and usability. They are
+	provided because they prevent the content from "bleeding" into the browser's chrome.*/
+	margin: auto 10px;
+	width: auto;
+}
+.yui-d0f {
+	width: 100%;
+}
+
+/*
+Subsection: 950 Centered (doc2)
+*/
+.yui-d2 {
+	width: 73.076em;
+	*width: 71.25em;
+}
+.yui-d2f {
+	width: 950px;
+}
+/*
+Subsection: 974 Centered (doc3)
+*/
+.yui-d3 {
+	width: 74.923em;
+	*width: 73.05em;
+}
+.yui-d3f {
+	width: 974px;
+}
+/*
+Section: Preset Template Rules (.yui-t[1-6])
+*/
+/*
+Subsection: General
+*/
+
+/* to preserve source-order independence for Gecko without breaking IE */
+.yui-b {
+	position: relative;
+}
+.yui-b {
+	_position: static;
+}
+.yui-main .yui-b {
+	position: static;
+}
+.yui-main {
+	width: 100%;
+}
+.yui-t1 .yui-main,
+.yui-t2 .yui-main,
+.yui-t3 .yui-main {
+	float: right;
+	/* IE: preserve layout at narrow widths */
+	margin-left: -25em;
+}
+.yui-t4 .yui-main,
+.yui-t5 .yui-main,
+.yui-t6 .yui-main {
+	float: left;
+	/* IE: preserve layout at narrow widths */
+	margin-right: -25em;
+}
+
+/* Subsection: For Specific Template Presets */
+
+/**
+* Nudge down to get to 13px equivalent for these form elements
+*/
+
+/*
+TODO Create t1-6's that are based on fixed widths
+*/
+/* t1 narrow block = left, equivalent of 160px */
+.yui-t1 .yui-b {
+	float: left;
+	width: 12.30769em;
+	*width: 12.00em;
+}
+.yui-t1 .yui-main .yui-b {
+	margin-left: 13.30769em;
+	*margin-left:12.975em;
+}
+/* t2 narrow block = left, equivalent of 180px */
+.yui-t2 .yui-b {
+	float: left;
+	width: 13.84615em;
+	*width: 13.50em;
+}
+.yui-t2 .yui-main .yui-b {
+	margin-left: 14.84615em;
+	*margin-left: 14.475em;
+}
+/* t3 narrow block = left, equivalent of 300px */
+.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.475em;
+}
+/* t4 narrow block = right, equivalent of 180px */
+.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.475em;
+}
+/* t5 narrow block = right, equivalent of 240px */
+.yui-t5 .yui-b {
+	float: right;
+	width: 18.4615em;
+	*width: 18.00em;
+}
+.yui-t5 .yui-main .yui-b {
+	margin-right: 19.4615em;
+	*margin-right: 18.975em;
+}
+/* t6 narrow block = equivalent of 300px */
+.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.475em;
+}
+
+.yui-main .yui-b {
+	float: none;
+	width: auto;
+}
+
+/*
+Section: Grids and Nesting Grids
+*/
+
+/*
+Subsection: Children generally take half the available space
+*/
+
+.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;
+}
+
+/*Float units (and sub grids) to the right */
+.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;
+}
+
+/*Float units (and sub grids) to the left */
+.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: 2.0%;
+}
+
+/* Give IE some extra breathing room for 1/3-based rounding issues */
+.yui-gb .yui-u {
+	*width: 31.8%;
+	*margin-left: 1.9%;
+}
+
+.yui-gc div.first,
+.yui-gd .yui-u {
+	width: 66%;
+	_width: 65.7%;
+}
+.yui-gd div.first {
+	width: 32%;
+	_width: 31.5%;
+}
+
+.yui-ge div.first,
+.yui-gf .yui-u {
+	width: 74.2%;
+	_width: 74%;
+}
+
+.yui-ge .yui-u,
+.yui-gf div.first {
+	width: 24%;
+	_width: 23.8%;
+}
+
+.yui-g .yui-gb div.first,
+.yui-gb div.first,
+.yui-gc div.first,
+.yui-gd div.first {
+	margin-left: 0;
+}
+
+/*
+Section: Deep Nesting
+*/
+.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-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;
+}
+
+/* Width Accommodation for Nested Contexts */
+.yui-gb .yui-ge .yui-u,
+.yui-gb .yui-gf div.first {
+	*width: 24%;
+	_width: 20%;
+}
+
+/* Width Accommodation for Nested Contexts */
+.yui-gb .yui-ge div.first,
+.yui-gb .yui-gf .yui-u {
+	*width: 73.5%;
+	_width: 65.5%;
+}
+
+/* Patch for GD within GE */
+.yui-ge div.first .yui-gd .yui-u {
+	width: 65%;
+}
+.yui-ge div.first .yui-gd div.first {
+	width: 32%;
+}
+
+/*
+Section: Clearing. zoom for IE, :after for others
+*/
+
+#bd:after,
+.yui-g:after,
+.yui-gb:after,
+.yui-gc:after,
+.yui-gd:after,
+.yui-ge:after,
+.yui-gf:after,
+.yui-t1:after,
+.yui-t2:after,
+.yui-t3:after,
+.yui-t4:after,
+.yui-t5:after,
+.yui-t6:after {
+	content: ".";
+	display: block;
+	height: 0;
+	clear: both;
+	visibility: hidden;
+}
+#bd,
+.yui-g,
+.yui-gb,
+.yui-gc,
+.yui-gd,
+.yui-ge,
+.yui-gf,
+.yui-t1,
+.yui-t2,
+.yui-t3,
+.yui-t4,
+.yui-t5,
+.yui-t6 {
+	zoom: 1;
+}
\ No newline at end of file

=== modified file 'lib/lp/app/templates/base-layout-macros.pt'
--- lib/lp/app/templates/base-layout-macros.pt	2010-09-29 03:26:01 +0000
+++ lib/lp/app/templates/base-layout-macros.pt	2010-10-14 00:09:02 +0000
@@ -83,71 +83,459 @@
       yui-base-debug.js and move the <script/> node outside of this block.
 
       This will hopefully be fixed in YUI itself.
-      See http://yuilibrary.com/projects/yui3/ticket/2528368
+      See http://yuilibrary.com/projects/yui/ticket/2528368
     </tal:comment>
-    <script type="text/javascript"
-            tal:attributes="src string:${yui}/yui/yui-base.js"></script>
-    <script type="text/javascript"
-            tal:attributes="src string:${yui}/yui/yui-log.js"></script>
-    <script type="text/javascript"
-            tal:attributes="src string:${yui}/yui/yui-later.js"></script>
-
-    <script type="text/javascript"
-            tal:attributes="src string:${yui}/oop/oop.js"></script>
-    <script type="text/javascript"
-            tal:attributes="src string:${yui}/event/event.js"></script>
-    <script type="text/javascript"
-            tal:attributes="src string:${yui}/event/event-key.js"></script>
-    <script type="text/javascript"
-            tal:attributes="src string:${yui}/event-custom/event-custom.js"></script>
-    <script type="text/javascript"
-            tal:attributes="src string:${yui}/event-simulate/event-simulate.js"></script>
-    <script type="text/javascript"
-            tal:attributes="src string:${yui}/dom/dom.js"></script>
-    <script type="text/javascript"
-            tal:attributes="src string:${yui}/node/node.js"></script>
-    <script type="text/javascript"
-            tal:attributes="src string:${yui}/node-focusmanager/node-focusmanager.js"></script>
-    <script type="text/javascript"
-            tal:attributes="src string:${yui}/node/node-event-simulate.js"></script>
-    <script type="text/javascript"
-            tal:attributes="src string:${yui}/dump/dump.js"></script>
-    <script type="text/javascript"
-            tal:attributes="src string:${yui}/io/io.js"></script>
-    <script type="text/javascript"
-            tal:attributes="src string:${yui}/json/json.js"></script>
-    <script type="text/javascript"
-            tal:attributes="src string:${yui}/attribute/attribute.js"></script>
-    <script type="text/javascript"
-            tal:attributes="src string:${yui}/base/base.js"></script>
-    <script type="text/javascript"
-            tal:attributes="src string:${yui}/substitute/substitute.js"></script>
-    <script type="text/javascript"
-            tal:attributes="src string:${yui}/anim/anim.js"></script>
-    <script type="text/javascript"
-            tal:attributes="src string:${yui}/classnamemanager/classnamemanager.js"></script>
-    <script type="text/javascript"
-            tal:attributes="src string:${yui}/plugin/plugin.js"></script>
-    <script type="text/javascript"
-            tal:attributes="src string:${yui}/pluginhost/pluginhost.js"></script>
-    <script type="text/javascript"
-            tal:attributes="src string:${yui}/widget/widget.js"></script>
-    <script type="text/javascript"
-            tal:attributes="src string:${yui}/widget/widget-position-ext.js"></script>
-    <script type="text/javascript"
-            tal:attributes="src string:${yui}/cookie/cookie.js"></script>
-    <script type="text/javascript"
-            tal:attributes="src string:${yui}/widget/widget-position.js"></script>
-    <script type="text/javascript"
-            tal:attributes="src string:${yui}/widget/widget-position-ext.js"></script>
-    <script type="text/javascript"
-            tal:attributes="src string:${yui}/widget/widget-stack.js"></script>
-    <script type="text/javascript"
-            tal:attributes="src string:${yui}/widget/widget-stdmod.js"></script>
-    <script type="text/javascript"
-            tal:attributes="src string:${yui}/overlay/overlay.js"></script>
-    <script type="text/javascript"
-            tal:attributes="src string:${yui}/node-menunav/node-menunav.js"></script>
+
+        <script type="text/javascript" tal:attributes="src string:${yui}/yui/yui-base.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/yui/yui-later.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/yui/yui-log.js"></script>
+
+        <script type="text/javascript" tal:attributes="src string:${yui}/dom/dom-base.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/dom/dom-screen.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/dom/dom-style-ie.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/dom/dom-style.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/dom/dom.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/dom/selector-css2.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/dom/selector-css3.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/dom/selector-native.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/dom/selector.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/dump/dump.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/event-custom/event-custom-base.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/event-custom/event-custom-complex.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/event-custom/event-custom.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/event-gestures/event-flick.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/event-gestures/event-gestures.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/event-gestures/event-move.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/event-simulate/event-simulate.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/event-valuechange/event-valuechange.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/event/event-base.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/event/event-delegate.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/event/event-focus.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/event/event-key.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/event/event-mouseenter.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/event/event-mousewheel.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/event/event-resize.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/event/event-synthetic.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/event/event-touch.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/event/event.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/oop/oop.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/substitute/substitute.js"></script>
+
+
+        <script type="text/javascript" tal:attributes="src string:${yui}/anim/anim-base.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/anim/anim-color.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/anim/anim-curve.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/anim/anim-easing.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/anim/anim-node-plugin.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/anim/anim-scroll.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/anim/anim-xy.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/anim/anim.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/async-queue/async-queue.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/attribute/attribute-base.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/attribute/attribute-complex.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/attribute/attribute.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/base/base-base.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/base/base-build.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/base/base-pluginhost.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/base/base.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/cache/cache-base.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/cache/cache-offline.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/cache/cache-plugin.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/cache/cache.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/classnamemanager/classnamemanager.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/collection/array-extras.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/collection/array-invoke.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/collection/arraylist-add.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/collection/arraylist-filter.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/collection/arraylist.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/collection/collection.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/compat/compat.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/console/console-filters.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/console/console.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/console/lang/console.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/console/lang/console_en.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/console/lang/console_es.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/cookie/cookie.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/dataschema/dataschema-array.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/dataschema/dataschema-base.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/dataschema/dataschema-json.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/dataschema/dataschema-text.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/dataschema/dataschema-xml.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/dataschema/dataschema.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datasource/datasource-arrayschema.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datasource/datasource-cache.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datasource/datasource-function.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datasource/datasource-get.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datasource/datasource-io.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datasource/datasource-jsonschema.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datasource/datasource-local.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datasource/datasource-polling.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datasource/datasource-textschema.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datasource/datasource-xmlschema.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datasource/datasource.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/datatype-date-format.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/datatype-date-parse.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/datatype-date.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/datatype-number-format.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/datatype-number-parse.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/datatype-number.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/datatype-xml-format.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/datatype-xml-parse.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/datatype-xml.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/datatype.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_ar-JO.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_ar.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_ca-ES.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_ca.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_da-DK.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_da.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_de-AT.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_de-DE.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_de.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_el-GR.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_el.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_en-AU.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_en-CA.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_en-GB.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_en-IE.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_en-IN.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_en-JO.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_en-MY.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_en-NZ.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_en-PH.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_en-SG.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_en-US.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_en.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_es-AR.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_es-BO.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_es-CL.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_es-CO.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_es-EC.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_es-ES.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_es-MX.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_es-PE.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_es-PY.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_es-US.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_es-UY.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_es-VE.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_es.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_fi-FI.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_fi.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_fr-BE.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_fr-CA.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_fr-FR.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_fr.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_hi-IN.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_hi.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_id-ID.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_id.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_it-IT.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_it.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_ja-JP.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_ja.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_ko-KR.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_ko.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_ms-MY.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_ms.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_nb-NO.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_nb.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_nl-BE.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_nl-NL.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_nl.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_pl-PL.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_pl.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_pt-BR.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_pt.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_ro-RO.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_ro.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_ru-RU.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_ru.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_sv-SE.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_sv.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_th-TH.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_th.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_tr-TR.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_tr.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_vi-VN.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_vi.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_zh-Hans-CN.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_zh-Hans.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_zh-Hant-HK.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_zh-Hant-TW.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date-format_zh-Hant.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_ar-JO.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_ar.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_ca-ES.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_ca.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_da-DK.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_da.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_de-AT.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_de-DE.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_de.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_el-GR.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_el.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_en-AU.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_en-CA.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_en-GB.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_en-IE.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_en-IN.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_en-JO.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_en-MY.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_en-NZ.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_en-PH.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_en-SG.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_en-US.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_en.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_es-AR.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_es-BO.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_es-CL.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_es-CO.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_es-EC.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_es-ES.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_es-MX.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_es-PE.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_es-PY.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_es-US.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_es-UY.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_es-VE.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_es.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_fi-FI.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_fi.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_fr-BE.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_fr-CA.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_fr-FR.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_fr.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_hi-IN.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_hi.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_id-ID.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_id.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_it-IT.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_it.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_ja-JP.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_ja.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_ko-KR.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_ko.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_ms-MY.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_ms.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_nb-NO.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_nb.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_nl-BE.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_nl-NL.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_nl.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_pl-PL.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_pl.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_pt-BR.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_pt.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_ro-RO.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_ro.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_ru-RU.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_ru.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_sv-SE.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_sv.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_th-TH.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_th.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_tr-TR.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_tr.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_vi-VN.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_vi.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_zh-Hans-CN.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_zh-Hans.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_zh-Hant-HK.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_zh-Hant-TW.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype-date_zh-Hant.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_ar-JO.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_ar.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_ca-ES.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_ca.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_da-DK.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_da.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_de-AT.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_de-DE.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_de.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_el-GR.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_el.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_en-AU.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_en-CA.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_en-GB.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_en-IE.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_en-IN.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_en-JO.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_en-MY.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_en-NZ.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_en-PH.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_en-SG.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_en-US.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_en.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_es-AR.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_es-BO.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_es-CL.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_es-CO.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_es-EC.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_es-ES.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_es-MX.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_es-PE.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_es-PY.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_es-US.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_es-UY.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_es-VE.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_es.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_fi-FI.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_fi.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_fr-BE.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_fr-CA.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_fr-FR.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_fr.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_hi-IN.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_hi.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_id-ID.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_id.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_it-IT.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_it.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_ja-JP.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_ja.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_ko-KR.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_ko.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_ms-MY.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_ms.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_nb-NO.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_nb.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_nl-BE.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_nl-NL.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_nl.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_pl-PL.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_pl.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_pt-BR.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_pt.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_ro-RO.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_ro.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_ru-RU.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_ru.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_sv-SE.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_sv.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_th-TH.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_th.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_tr-TR.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_tr.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_vi-VN.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_vi.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_zh-Hans-CN.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_zh-Hans.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_zh-Hant-HK.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_zh-Hant-TW.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/datatype/lang/datatype_zh-Hant.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/dd/dd-constrain.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/dd/dd-ddm-base.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/dd/dd-ddm-drop.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/dd/dd-ddm.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/dd/dd-delegate.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/dd/dd-drag.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/dd/dd-drop-plugin.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/dd/dd-drop.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/dd/dd-gestures.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/dd/dd-plugin.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/dd/dd-proxy.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/dd/dd-scroll.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/dd/dd.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/editor/createlink-base.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/editor/editor-base.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/editor/editor-bidi.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/editor/editor-lists.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/editor/editor-para.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/editor/editor-tab.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/editor/editor.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/editor/exec-command.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/editor/frame.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/editor/selection.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/history-deprecated/history-deprecated.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/history/history-base.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/history/history-hash-ie.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/history/history-hash.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/history/history-html5.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/history/history.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/imageloader/imageloader.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/intl/intl.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/io/io-base.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/io/io-form.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/io/io-queue.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/io/io-upload-iframe.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/io/io-xdr.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/io/io.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/json/json-parse.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/json/json-stringify.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/json/json.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/jsonp/jsonp-url.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/jsonp/jsonp.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/loader/loader-base.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/loader/loader-rollup.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/loader/loader-yui3.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/loader/loader.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/node-flick/node-flick.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/node-focusmanager/node-focusmanager.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/node-menunav/node-menunav.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/node/align-plugin.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/node/node-base.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/node/node-event-delegate.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/node/node-event-html5.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/node/node-event-simulate.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/node/node-pluginhost.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/node/node-screen.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/node/node-style.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/node/node.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/node/shim-plugin.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/overlay/overlay.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/plugin/plugin.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/pluginhost/pluginhost.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/profiler/profiler.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/querystring/querystring-parse-simple.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/querystring/querystring-parse.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/querystring/querystring-stringify-simple.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/querystring/querystring-stringify.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/querystring/querystring.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/queue-promote/queue-promote.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/scrollview/scrollview-base.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/scrollview/scrollview-paginator.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/scrollview/scrollview-scrollbars.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/scrollview/scrollview.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/slider/clickable-rail.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/slider/range-slider.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/slider/slider-base.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/slider/slider-value-range.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/slider/slider.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/sortable/sortable-scroll.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/sortable/sortable.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/stylesheet/stylesheet.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/swf/swf.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/swfdetect/swfdetect.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/tabview/tabview-base.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/tabview/tabview-plugin.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/tabview/tabview.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/test/test.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/transition/transition-native.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/transition/transition-timer.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/transition/transition.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/uploader/uploader.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/widget-anim/widget-anim.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/widget/widget-base.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/widget/widget-child.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/widget/widget-htmlparser.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/widget/widget-locale.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/widget/widget-parent.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/widget/widget-position-align.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/widget/widget-position-constrain.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/widget/widget-position.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/widget/widget-stack.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/widget/widget-stdmod.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/widget/widget.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/yql/yql.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/yui/features.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/yui/get.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/yui/intl-base.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/yui/rls.js"></script>
+        <script type="text/javascript" tal:attributes="src string:${yui}/yui/yui-throttle.js"></script>
+
 
     <script type="text/javascript"
             tal:attributes="src string:${lazr_js}/lazr/lazr.js"></script>
@@ -264,7 +652,7 @@
       tal:content="string:var cookie_scope = '${request/lp:cookie_scope}';"></script>
   <script type="text/javascript">
     // Define a global YUI sandbox that should be used by everyone.
-    var LPS = YUI();
+  var LPS = YUI();
   </script>
 </metal:load-javascript>
 

=== modified file 'lib/lp/bugs/windmill/tests/test_bug_inline_subscriber.py'
--- lib/lp/bugs/windmill/tests/test_bug_inline_subscriber.py	2010-08-20 20:31:18 +0000
+++ lib/lp/bugs/windmill/tests/test_bug_inline_subscriber.py	2010-10-14 00:09:02 +0000
@@ -91,18 +91,18 @@
             name=u'search', timeout=FOR_ELEMENT)
         client.type(
             text=u'ubuntu-team',
-            xpath=u'//div[contains(@class, "yui-picker ") '
-                   'and not(contains(@class, "yui-picker-hidden"))]'
-                   '//div[@class="yui-picker-search-box"]'
+            xpath=u'//div[contains(@class, "yui3-picker ") '
+                   'and not(contains(@class, "yui3-picker-hidden"))]'
+                   '//div[@class="yui3-picker-search-box"]'
                    '/input[@name="search"]')
         client.click(
-            xpath=u'//div[contains(@class, "yui-picker ") '
-                   'and not(contains(@class, "yui-picker-hidden"))]'
-                   '//div[@class="yui-picker-search-box"]/button')
+            xpath=u'//div[contains(@class, "yui3-picker ") '
+                   'and not(contains(@class, "yui3-picker-hidden"))]'
+                   '//div[@class="yui3-picker-search-box"]/button')
         search_result_xpath = (
-            u'//div[contains(@class, "yui-picker ") '
-            'and not(contains(@class, "yui-picker-hidden"))]'
-            '//ul[@class="yui-picker-results"]/li[1]/span')
+            u'//div[contains(@class, "yui3-picker ") '
+            'and not(contains(@class, "yui3-picker-hidden"))]'
+            '//ul[@class="yui3-picker-results"]/li[1]/span')
         client.waits.forElement(
             xpath=search_result_xpath, timeout=FOR_ELEMENT)
         client.click(xpath=search_result_xpath)

=== modified file 'lib/lp/bugs/windmill/tests/test_bug_me_too.py'
--- lib/lp/bugs/windmill/tests/test_bug_me_too.py	2010-08-20 20:31:18 +0000
+++ lib/lp/bugs/windmill/tests/test_bug_me_too.py	2010-10-14 00:09:02 +0000
@@ -19,7 +19,7 @@
 VALUE_LOCATION_XPATH = DYNAMIC_SPAN_XPATH + u"//span[@class='value']"
 EDIT_ICON_XPATH = DYNAMIC_SPAN_XPATH + u"//img[@class='editicon']"
 
-OVERLAY_XPATH = u"//div[@id='yui-pretty-overlay-modal']"
+OVERLAY_XPATH = u"//div[@id='yui3-pretty-overlay-modal']"
 
 def retry(client, attempts=3, delay=2000, initial_delay=1000):
     """Decorator for attempting Windmill operations multiple times.
@@ -75,11 +75,11 @@
         client.click(xpath=EDIT_ICON_XPATH)
 
         # Wait for the modal dialog to appear.
-        client.waits.forElement(id=u'yui-pretty-overlay-modal')
+        client.waits.forElement(id=u'yui3-pretty-overlay-modal')
 
         # There's a close button if we change our mind.
         client.click(
-            xpath=(u"//div[@id='yui-pretty-overlay-modal']//"
+            xpath=(u"//div[@id='yui3-pretty-overlay-modal']//"
                    u"a[@class='close-button']"))
 
         # Wait for the modal dialog to disappear. Unfortunately the test
@@ -87,7 +87,7 @@
         # could think of, so it's commented out.
 
         # client.asserts.assertElemJS(
-        #     id=u'yui-pretty-overlay-modal',
+        #     id=u'yui3-pretty-overlay-modal',
         #     js=(u'getComputedStyle(element, '
         #         u'"visibility").visibility == "hidden"'))
 
@@ -95,7 +95,7 @@
         # user. We can also click on the content box of the "me too"
         # widget; we are not forced to use the edit icon.
         client.click(xpath=AFFECTS_ME_TOO_XPATH)
-        client.waits.forElement(id=u'yui-pretty-overlay-modal')
+        client.waits.forElement(id=u'yui3-pretty-overlay-modal')
 
         # Let's say the bug does not affect the logged-in user.
         client.click(
@@ -112,7 +112,7 @@
         # Hah! But this bug does affect the logged-in user! The logged-in
         # user made a mistake, oh noes. Better fix that.
         client.click(xpath=AFFECTS_ME_TOO_XPATH)
-        client.waits.forElement(id=u'yui-pretty-overlay-modal')
+        client.waits.forElement(id=u'yui3-pretty-overlay-modal')
         client.click(
             xpath=OVERLAY_XPATH + u"//a[contains(@href, '#true')]")
 

=== modified file 'lib/lp/bugs/windmill/tests/test_bug_privacy_settings.py'
--- lib/lp/bugs/windmill/tests/test_bug_privacy_settings.py	2010-08-20 20:31:18 +0000
+++ lib/lp/bugs/windmill/tests/test_bug_privacy_settings.py	2010-10-14 00:09:02 +0000
@@ -14,9 +14,9 @@
 BUG_URL = u'http://bugs.launchpad.dev:8085/bugs/15'
 MAIN_FORM_ELEMENT = u'//div[@id="privacy-form-container"]/div'
 FORM_NOT_VISIBLE = (
-    u'element.className.search("yui-lazr-formoverlay-hidden") != -1')
+    u'element.className.search("yui3-lazr-formoverlay-hidden") != -1')
 FORM_VISIBLE = (
-    u'element.className.search("yui-lazr-formoverlay-hidden") == -1')
+    u'element.className.search("yui3-lazr-formoverlay-hidden") == -1')
 FIELD_PRIVATE = u'field.private'
 FIELD_SECURITY_RELATED = u'field.security_related'
 CHANGE_BUTTON = (

=== modified file 'lib/lp/bugs/windmill/tests/test_bug_tags_entry.py'
--- lib/lp/bugs/windmill/tests/test_bug_tags_entry.py	2010-08-20 20:31:18 +0000
+++ lib/lp/bugs/windmill/tests/test_bug_tags_entry.py	2010-10-14 00:09:02 +0000
@@ -59,7 +59,7 @@
             id=u'tag-input', timeout=constants.FOR_ELEMENT)
         client.type(text=u'ee', id=u'tag-input')
         client.waits.sleep(milliseconds=constants.SLEEP)
-        client.asserts.assertNode(classname=u'yui-autocomplete-list')
+        client.asserts.assertNode(classname=u'yui3-autocomplete-list')
         client.click(id=u'item0')
         client.click(id=u'edit-tags-ok')
         client.waits.sleep(milliseconds=constants.SLEEP)

=== modified file 'lib/lp/bugs/windmill/tests/test_filebug_dupe_finder.py'
--- lib/lp/bugs/windmill/tests/test_filebug_dupe_finder.py	2010-08-20 20:31:18 +0000
+++ lib/lp/bugs/windmill/tests/test_filebug_dupe_finder.py	2010-10-14 00:09:02 +0000
@@ -23,9 +23,9 @@
 
 # JavaScript expressions for testing.
 FORM_NOT_VISIBLE = (
-    u'element.className.search("yui-lazr-formoverlay-hidden") != -1')
+    u'element.className.search("yui3-lazr-formoverlay-hidden") != -1')
 FORM_VISIBLE = (
-    u'element.className.search("yui-lazr-formoverlay-hidden") == -1')
+    u'element.className.search("yui3-lazr-formoverlay-hidden") == -1')
 
 BUG_INFO_HIDDEN = 'style.height|0px'
 BUG_INFO_SHOWN_JS = 'element.style.height != "0px"'

=== modified file 'lib/lp/bugs/windmill/tests/test_mark_duplicate.py'
--- lib/lp/bugs/windmill/tests/test_mark_duplicate.py	2010-08-20 20:31:18 +0000
+++ lib/lp/bugs/windmill/tests/test_mark_duplicate.py	2010-10-14 00:09:02 +0000
@@ -18,9 +18,9 @@
 
 MAIN_FORM_ELEMENT = u'//div[@id="duplicate-form-container"]/div'
 FORM_NOT_VISIBLE = (
-    u'element.className.search("yui-lazr-formoverlay-hidden") != -1')
+    u'element.className.search("yui3-lazr-formoverlay-hidden") != -1')
 FORM_VISIBLE = (
-    u'element.className.search("yui-lazr-formoverlay-hidden") == -1')
+    u'element.className.search("yui3-lazr-formoverlay-hidden") == -1')
 CHANGE_BUTTON = (
     u'//div[@id="duplicate-form-container"]'
     '//button[@name="field.actions.change"]')
@@ -89,7 +89,7 @@
         client.click(xpath=CHANGE_BUTTON)
         error_xpath = (
             MAIN_FORM_ELEMENT +
-            "//div[contains(@class, 'yui-lazr-formoverlay-errors')]/ul/li")
+            "//div[contains(@class, 'yui3-lazr-formoverlay-errors')]/ul/li")
         client.waits.forElement(xpath=error_xpath)
 
         # Clicking change again brings back the error dialog again

=== modified file 'lib/lp/bugs/windmill/tests/test_official_bug_tags_management.py'
--- lib/lp/bugs/windmill/tests/test_official_bug_tags_management.py	2010-08-20 20:31:18 +0000
+++ lib/lp/bugs/windmill/tests/test_official_bug_tags_management.py	2010-10-14 00:09:02 +0000
@@ -80,7 +80,7 @@
 
     # The tag is invalid, so we get an error message in an overlay.
 
-        client.asserts.assertNode(id=u'yui-pretty-overlay-modal')
+        client.asserts.assertNode(id=u'yui3-pretty-overlay-modal')
 
     # We click the close button to dismiss the error message, type a correct
     # tag and try again.

=== modified file 'lib/lp/code/javascript/branchmergeproposal.diff.js'
--- lib/lp/code/javascript/branchmergeproposal.diff.js	2010-03-01 21:57:20 +0000
+++ lib/lp/code/javascript/branchmergeproposal.diff.js	2010-10-14 00:09:02 +0000
@@ -131,4 +131,4 @@
     }
 };
 
-    }, '0.1', {requires: ['event', 'io', 'node', 'lazr.overlay', 'lp.client']});
+    }, '0.1', {requires: ['event', 'io', 'node', 'lazr.overlay']});

=== modified file 'lib/lp/code/windmill/tests/test_branch_popupdiff.py'
--- lib/lp/code/windmill/tests/test_branch_popupdiff.py	2010-08-20 20:31:18 +0000
+++ lib/lp/code/windmill/tests/test_branch_popupdiff.py	2010-10-14 00:09:02 +0000
@@ -28,22 +28,22 @@
     u'//dd[contains(@class, "popup-diff")]'
     '/a[contains(@class, "js-action")]')
 VISIBLE_DIFF = (
-    u'//div[contains(@class, "yui-diff-overlay ") and '
-     'not(contains(@class, "yui-diff-overlay-hidden"))]')
+    u'//div[contains(@class, "yui3-diff-overlay ") and '
+     'not(contains(@class, "yui3-diff-overlay-hidden"))]')
 CLOSE_VISIBLE_DIFF = (
-    u'//div[contains(@class, "yui-diff-overlay ")]'
+    u'//div[contains(@class, "yui3-diff-overlay ")]'
      '//a[@class="close-button"]')
 JS_ONLOAD_EXECUTE_DELAY = 2000
 ADD_BRANCH_MENU = u'//a[contains(@class, "menu-link-addbranch")]'
 VISIBLE_PICKER_OVERLAY = (
-    u'//div[contains(@class, "yui-picker ") and '
-     'not(contains(@class, "yui-picker-hidden"))]')
+    u'//div[contains(@class, "yui3-picker ") and '
+     'not(contains(@class, "yui3-picker-hidden"))]')
 BRANCH_SEARCH_FIELD = VISIBLE_PICKER_OVERLAY + u'//input[@name="search"]'
 BRANCH_SEARCH_BUTTON = (
-    VISIBLE_PICKER_OVERLAY + u'//div[@class="yui-picker-search-box"]//button')
+    VISIBLE_PICKER_OVERLAY + u'//div[@class="yui3-picker-search-box"]//button')
 BRANCH_SEARCCH_RESULT = (
     VISIBLE_PICKER_OVERLAY +
-    u'//ul[@class="yui-picker-results"]//span[@class="yui-picker-result-title"]')
+    u'//ul[@class="yui3-picker-results"]//span[@class="yui3-picker-result-title"]')
 
 
 #class TestPopupOnBranchPage(WindmillTestCase):

=== modified file 'lib/lp/code/windmill/tests/test_branch_status.py'
--- lib/lp/code/windmill/tests/test_branch_status.py	2010-08-20 20:31:18 +0000
+++ lib/lp/code/windmill/tests/test_branch_status.py	2010-10-14 00:09:02 +0000
@@ -48,7 +48,7 @@
             id=u'branch-details-status-value', timeout=PAGE_LOAD)
         client.click(id=u'branch-details-status-value')
         client.waits.forElement(
-            xpath=u'//div[contains(@class, "yui-ichoicelist-content")]')
+            xpath=u'//div[contains(@class, "yui3-ichoicelist-content")]')
 
         # Change the status to experimental.
         client.click(link=u'Experimental')

=== modified file 'lib/lp/code/windmill/tests/test_branch_subscriptions.py'
--- lib/lp/code/windmill/tests/test_branch_subscriptions.py	2010-08-20 20:31:18 +0000
+++ lib/lp/code/windmill/tests/test_branch_subscriptions.py	2010-10-14 00:09:02 +0000
@@ -39,7 +39,7 @@
 
         client.click(
             xpath=u'//a[@class="sprite add subscribe-self js-action"]')
-        client.waits.forElement(id=u'yui-pretty-overlay-modal')
+        client.waits.forElement(id=u'yui3-pretty-overlay-modal')
         client.click(xpath=u'//button[@name="field.actions.subscribe"]')
 
         client.waits.forElement(id=u'editsubscription-icon-name16',

=== modified file 'lib/lp/code/windmill/tests/test_branchmergeproposal_commitmessage.py'
--- lib/lp/code/windmill/tests/test_branchmergeproposal_commitmessage.py	2010-08-20 20:31:18 +0000
+++ lib/lp/code/windmill/tests/test_branchmergeproposal_commitmessage.py	2010-10-14 00:09:02 +0000
@@ -22,15 +22,15 @@
 
 
 EDIT_COMMIT_LINK = u'//a[contains(@href, "+edit-commit-message")]'
-# There seem to be two textareas rendered for the yui-ieditor-input for some
+# There seem to be two textareas rendered for the yui3-ieditor-input for some
 # reason.
 EDIT_COMMENT_TEXTBOX = (
-    u'//div[@id="edit-commit_message"]//textarea[@class="yui-ieditor-input"][1]')
+    u'//div[@id="edit-commit_message"]//textarea[@class="yui3-ieditor-input"][1]')
 EDIT_COMMENT_SUBMIT = (
     u'//div[@id="edit-commit_message"]//'
-    'button[contains(@class, "yui-ieditor-submit_button")]')
+    'button[contains(@class, "yui3-ieditor-submit_button")]')
 COMMIT_MESSAGE_TEXT = (
-    u'//div[@id="edit-commit_message"]//div[@class="yui-editable_text-text"]')
+    u'//div[@id="edit-commit_message"]//div[@class="yui3-editable_text-text"]')
 
 
 class TestCommitMessage(WindmillTestCase):
@@ -101,7 +101,7 @@
             id=u'branchmergeproposal-status-value', timeout=PAGE_LOAD)
         client.click(id=u'branchmergeproposal-status-value')
         client.waits.forElement(
-            xpath=u'//div[contains(@class, "yui-ichoicelist-content")]')
+            xpath=u'//div[contains(@class, "yui3-ichoicelist-content")]')
 
         # Change the status to experimental.
         client.click(link=u'Approved')

=== modified file 'lib/lp/registry/windmill/tests/test_add_bugtracker.py'
--- lib/lp/registry/windmill/tests/test_add_bugtracker.py	2010-08-20 20:31:18 +0000
+++ lib/lp/registry/windmill/tests/test_add_bugtracker.py	2010-10-14 00:09:02 +0000
@@ -56,9 +56,9 @@
     client.type(id='field.name', text=bugtracker_name)
     client.click(id=u'formoverlay-add-bugtracker')
     client.waits.forElement(
-        xpath="//div[contains(@class, 'yui-lazr-formoverlay-errors')]/ul/li")
+        xpath="//div[contains(@class, 'yui3-lazr-formoverlay-errors')]/ul/li")
     client.asserts.assertTextIn(
-        classname='yui-lazr-formoverlay-errors',
+        classname='yui3-lazr-formoverlay-errors',
         validator='name: %s is already in use' % bugtracker_name.lower())
     client.click(classname='close-button')
 

=== modified file 'lib/lp/registry/windmill/tests/test_add_milestone.py'
--- lib/lp/registry/windmill/tests/test_add_milestone.py	2010-08-20 20:31:18 +0000
+++ lib/lp/registry/windmill/tests/test_add_milestone.py	2010-10-14 00:09:02 +0000
@@ -57,9 +57,9 @@
     client.type(id='field.name', text=milestone_name)
     client.click(id=u'formoverlay-add-milestone')
     client.waits.forElement(
-        xpath="//div[contains(@class, 'yui-lazr-formoverlay-errors')]/ul/li")
+        xpath="//div[contains(@class, 'yui3-lazr-formoverlay-errors')]/ul/li")
     client.asserts.assertTextIn(
-        classname='yui-lazr-formoverlay-errors',
+        classname='yui3-lazr-formoverlay-errors',
         validator='The name %s is already used' % milestone_name.lower())
     client.click(classname='close-button')
 

=== modified file 'lib/lp/registry/windmill/tests/test_datetime_picker.py'
--- lib/lp/registry/windmill/tests/test_datetime_picker.py	2010-08-20 20:31:18 +0000
+++ lib/lp/registry/windmill/tests/test_datetime_picker.py	2010-10-14 00:09:02 +0000
@@ -23,7 +23,7 @@
         """Test the calendar widget's general functionality.
 
         This test ensures that, with Javascript enabled, an input field
-        with the 'yui-calendar' class will get an extra 'choose...' link
+        with the 'yui3-calendar' class will get an extra 'choose...' link
         which opens up a calendar widget. The extra class 'withtime' is
         used to optionally include time fields.
         """

=== modified file 'lib/lp/registry/windmill/tests/test_person_picker.py'
--- lib/lp/registry/windmill/tests/test_person_picker.py	2010-08-20 20:31:18 +0000
+++ lib/lp/registry/windmill/tests/test_person_picker.py	2010-10-14 00:09:02 +0000
@@ -17,8 +17,8 @@
 
 
 VISIBLE_PICKER_OVERLAY = (
-    u'//div[contains(@class, "yui-picker ") and '
-     'not(contains(@class, "yui-picker-hidden"))]')
+    u'//div[contains(@class, "yui3-picker ") and '
+     'not(contains(@class, "yui3-picker-hidden"))]')
 
 
 class TesPersonPickerWidget(WindmillTestCase):
@@ -42,13 +42,13 @@
                                 timeout=constants.FOR_ELEMENT)
 
         client.asserts.assertProperty(
-            xpath=u'//div[@class="yui-picker-search-box"]/input',
+            xpath=u'//div[@class="yui3-picker-search-box"]/input',
             validator=u'value|guilherme')
 
-        client.click(xpath=u'//div[@class="yui-picker-search-box"]/button')
+        client.click(xpath=u'//div[@class="yui3-picker-search-box"]/button')
         client.waits.sleep(milliseconds=constants.SLEEP)
 
-        client.click(xpath=u'//ul[@class="yui-picker-results"]/li[1]')
+        client.click(xpath=u'//ul[@class="yui3-picker-results"]/li[1]')
         client.asserts.assertProperty(
             xpath=u'//input[@name="field.dupe_person"]',
             validator='value|salgado')

=== modified file 'lib/lp/soyuz/windmill/tests/test_archivesubscribersindex.py'
--- lib/lp/soyuz/windmill/tests/test_archivesubscribersindex.py	2010-08-20 20:31:18 +0000
+++ lib/lp/soyuz/windmill/tests/test_archivesubscribersindex.py	2010-10-14 00:09:02 +0000
@@ -25,11 +25,11 @@
 ADD_ACCESS_LINK = u'//a[@class="js-action sprite add"]'
 CHOOSE_SUBSCRIBER_LINK = u'//a[@id="show-widget-field-subscriber"]'
 SUBSCRIBER_SEARCH_FIELD = (
-    u'//div[@id="yui-pretty-overlay-modal"]//input[@name="search"]')
-SUBSCRIBER_SEARCH_BUTTON = u'//div[@id="yui-pretty-overlay-modal"]//button'
+    u'//div[@id="yui3-pretty-overlay-modal"]//input[@name="search"]')
+SUBSCRIBER_SEARCH_BUTTON = u'//div[@id="yui3-pretty-overlay-modal"]//button'
 FIRST_SUBSCRIBER_RESULT = (
-    u'//div[@id="yui-pretty-overlay-modal"]'
-     '//span[@class="yui-picker-result-title"]')
+    u'//div[@id="yui3-pretty-overlay-modal"]'
+     '//span[@class="yui3-picker-result-title"]')
 MESSAGE_WINDOW = u'//div[@class="informational message"]'
 
 

=== modified file 'lib/lp/translations/windmill/tests/test_import_queue.py'
--- lib/lp/translations/windmill/tests/test_import_queue.py	2010-08-30 21:54:56 +0000
+++ lib/lp/translations/windmill/tests/test_import_queue.py	2010-10-14 00:09:02 +0000
@@ -235,7 +235,7 @@
 
 IMPORT_STATUS = u"//tr[@id='%d']//span[contains(@class,'status-choice')]"
 IMPORT_STATUS_1 = IMPORT_STATUS % 1
-OPEN_CHOICELIST = u"//div[contains(@class, 'yui-ichoicelist-content')]"
+OPEN_CHOICELIST = u"//div[contains(@class, 'yui3-ichoicelist-content')]"
 
 
 class ImportQueueStatusTest(WindmillTestCase):

=== modified file 'versions.cfg'
--- versions.cfg	2010-10-01 01:55:57 +0000
+++ versions.cfg	2010-10-14 00:09:02 +0000
@@ -37,7 +37,7 @@
 lazr.smtptest = 1.1
 lazr.testing = 0.1.1
 lazr.uri = 1.0.2
-lazr-js = 1.0beta2
+lazr-js = 1.5DEV-r188
 manuel = 1.1.1
 martian = 0.11
 mechanize = 0.1.11